00:00:00 --- log: started forth/18.01.03 00:02:07 --- join: dys (~dys@2003:5b:203b:100:6af7:28ff:fe06:801) joined #forth 00:23:55 --- join: nonlinear (~nonlinear@unaffiliated/discrttm) joined #forth 00:28:59 --- quit: nonlinear (Quit: WeeChat 1.9.1) 00:57:52 --- quit: xek (Remote host closed the connection) 00:58:12 --- join: xek (xek@nat/intel/x-vfqbdfsizieydeuo) joined #forth 02:24:55 --- join: mtsd (4d6e3d64@gateway/web/freenode/ip.77.110.61.100) joined #forth 04:14:45 --- join: dddddd (~dddddd@unaffiliated/dddddd) joined #forth 04:27:35 --- join: proteus-guy (~proteusgu@183.88.73.138) joined #forth 04:28:43 --- quit: proteusguy (Ping timeout: 260 seconds) 04:42:28 --- quit: zy]x[yz (Ping timeout: 240 seconds) 04:49:59 --- join: zy]x[yz (~corey@unaffiliated/cmtptr) joined #forth 04:53:49 --- quit: ThirtyOne32nds (Read error: Connection reset by peer) 05:08:29 http://win32forth.sourceforge.net/downloads/tetris.f 05:21:01 --- join: ncv (~neceve@unaffiliated/neceve) joined #forth 05:42:48 --- quit: dddddd (Ping timeout: 248 seconds) 05:44:13 --- join: dddddd (~dddddd@unaffiliated/dddddd) joined #forth 05:48:20 --- quit: dddddd (Ping timeout: 240 seconds) 06:01:04 --- join: dddddd (~dddddd@unaffiliated/dddddd) joined #forth 06:20:47 --- join: proteusguy (~proteus-g@2405:9800:bc10:1ca:e8fa:7caf:cb9:45be) joined #forth 06:20:47 --- mode: ChanServ set +v proteusguy 06:29:49 --- part: mtsd left #forth 06:33:45 are there any examples of forths that write their headers into a separate memory region from the compiled code? 06:35:16 I'm trying to decide how I want to do this: either I could just do it all invisibly behind the scenes (create just doesn't use allot and , and friends), or I could create and expose two classes of dictionary words, but then I'd have to come up with a name for them and I suck at that 06:56:42 headers meaning the word structures? likely any with Harvard architectures do this, no? 07:01:38 uh huh 07:03:56 --- join: ThirtyOne32nds (~rtmanpage@76.sub-174-204-16.myvzw.com) joined #forth 07:47:09 zy]x[yz: headers? You mean like the seperate name dictionary in eForth? 07:48:11 I don't know, I haven't used eforth 07:48:41 when you write : foo bar ;, that gets compiled to some dictionary entry with the name "foo" followed by the compiled definition 07:49:14 the name part is just so that it can be looked up with find. it isn't actually required for execution 07:49:33 that interpreter-time-only part is what I'm calling a header 07:49:48 I thought that was widely-accepted forth terminology 07:49:54 basically: 0x04 "foo" , no? 07:49:59 yes 07:51:12 then you should definitly look into how eForth does it. It has two part dictionary, Those two parts grow toward each other. (Code from lower addresses up and name from higher addresses down) 07:51:48 that's fine, I know the mechanics of how I plan to do it 07:52:31 I'm more asking about how they did it from the user's perspective: is it implicitely done that way, or does eforth have a collection of low-dictionary words and high-dictionary words 07:52:59 since the high dictionary grows down, I would assume that's sort of a hidden implementation and not exposed to the user 07:53:14 implictly afaict 07:53:25 cool, thanks 07:55:50 what I like about eForth is how educating it is and fiendishly easy it is to port to diffrent architectures. (Just a few primitive words) 07:57:27 sounds like I need to go check it out, then 07:58:14 it probably would do me a lot of good to spend some time on a real forth instead of rubbing sticks together for eternity with my own piece of shit 07:59:10 I think but not sure that mecrisp is based off it and that is being used for various medium powerfull MCUs. 08:06:42 I don't think discovering forth has been good for me 08:07:12 it's unleashed all of my worst NIH tendencies 08:12:02 yeah, it can do that to you. In my case the I in NIH doesnt stand for Invented though but Implemented. I have nothing against 'stealing' good ideas (with attribution when I remember) and put them into practice. 08:21:30 --- join: nighty-- (~nighty@s229123.ppp.asahi-net.or.jp) joined #forth 08:25:50 --- quit: nighty-- (Ping timeout: 240 seconds) 08:38:25 --- join: nighty-- (~nighty@s229123.ppp.asahi-net.or.jp) joined #forth 08:45:24 just saw that news about Intels latest design flaw issue. 08:45:46 sucks, doesn't it? 08:46:07 what is it that makes context switching so expensive? just TLB flushing or is there much more to it? 08:47:16 sounded to me like that was it, but tbh that level of stuff is a bit over my head 08:47:45 I know that ARM (the company) mitigates that with ASIDs. Which is basically a priviledged register whose contents gets prepended to virtual addresses. 08:51:06 That means that virtual address to physical address mappings of diffrent address spaces can intermingle in the TLB without much issues. 08:56:22 I'm anxious to see the true performance impact 08:56:58 I'm hearing stories of people using du to measure it, but a filesystem crawl is really not representative of most normal operation 08:57:11 (using du to measure it and seeing massive performance loss, I mean) 08:58:11 most performance-critical things try to optimize to as few syscalls, anyway, so maybe it won't be so bad 08:58:39 it is both syscalls and _interrupts_. 08:58:56 oh, right... I forgot about that 09:04:08 and what is this infatuation with (K)ASLR? it is a small band aid on grevious wound imnho 09:06:16 yeah? I thought it sounded like security by obscurity, but I've never seen anyone criticize it so I just figured I didn't know what I was talking about 09:08:25 it is security by obscurity, nearly literally. 09:09:47 the idea is to not map sections of an executable (eather a stand alone or dynamically loaded library) always at the same starting addresses. 09:10:38 only, many libs and executables need to be cell aligned or even page aligned 09:10:55 they'll always be page-aligned 09:11:18 the randomization is only at the page granularity 09:11:45 which cuts down on how many bits are available to be randomized. 09:11:49 yeah 09:12:18 then there is how big those sections are which further cuts down that number 09:13:56 and because running code needs to know where stuff it calls is they need to use indirection through tables that are at know addresses. 09:15:27 that indirection costs cache space and increases cache pressure 09:19:02 basically, it is just another (badly made) hurdle against attackers who are attempting to confuse an process with desirable uid (root or user in wheel group) to do their bidding. 09:25:57 --- quit: ncv (Ping timeout: 255 seconds) 09:27:06 --- quit: dys (Ping timeout: 276 seconds) 11:33:43 --- quit: gravicappa (Ping timeout: 264 seconds) 11:35:00 --- join: dys (~dys@tmo-112-230.customers.d1-online.com) joined #forth 12:32:26 --- join: roygbiv (600400ce@pdpc/supporter/active/roygbiv) joined #forth 14:05:14 --- quit: roygbiv (Quit: Page closed) 14:56:22 --- quit: dys (Ping timeout: 248 seconds) 16:19:46 --- quit: hobbes- (Quit: ZNC - http://znc.in) 16:54:55 --- join: lijero (~lijero@unaffiliated/lijero) joined #forth 16:55:01 --- part: lijero left #forth 16:55:04 --- join: lijero (~lijero@unaffiliated/lijero) joined #forth 17:12:12 --- join: jcob (~user@cpe-172-74-189-35.nc.res.rr.com) joined #forth 18:04:10 --- join: Gromboli (~Gromboli@static-72-88-80-103.bflony.fios.verizon.net) joined #forth 18:21:48 --- join: ryoshu (~kamil@netbsd/developer/kamil) joined #forth 18:22:00 can we call syscalls from forth? 18:22:09 why not? 18:22:18 no idea 18:22:55 ryoshu: depends on the architecture. 18:22:55 I can 18:22:59 idk if you can 18:23:17 on a unix kernel 18:23:23 in userland 18:23:45 can I do it with gforth? 18:23:51 yes 18:24:36 to invoke a syscall you just use a software int with prepared register value on linux system 18:24:56 that's 32-bit. 64-bit has a syscall instruction 18:25:14 if your forth could accessing system register and raise a int, of course it could invoke syscalls 18:25:41 and i think gforth could done that of course, since it could submit asm code 18:26:12 https://www.complang.tuwien.ac.at/forth/gforth/Docs-html/386-Assembler.html#g_t386-Assembler 18:26:16 looking 18:34:04 is it normal to call a syscall in forth? :) 18:34:21 I'm researching how to interact with the kernel 18:34:57 you sort of have to for it to do anything useful 18:35:17 you might be interested in this: https://software.intel.com/sites/default/files/article/402129/mpx-linux64-abi.pdf 18:35:44 I'm familiar with ABI 18:36:30 specifically there are sections in there about making syscalls 18:36:43 also i think lina and kforth have word to raise a syscall 18:37:06 well, maybe it's just linux. judging from your cloak I'm guessing you're more interested in the bsd kernel 18:37:24 NetBSD uses the same standard ABI 18:37:40 --- quit: nighty-- (Ping timeout: 252 seconds) 18:37:44 at least for x86 CPUs 18:38:19 looking at lina and kforth 18:38:25 handshake, i like netbsd team too 18:38:40 well, then I don't know if this is useful to you or not but starting on page 136 is a section about amd64 linux kernel conventions 18:38:47 you guys first support using lua to developing kernel mod, its a brave action :D 18:39:05 handshake 18:39:17 i am waiting for you guys support a official forth for developing kernel mod 18:39:22 btw. we also have forth in the kernel to script the in-kernel interactive debugger 18:39:58 oh really, any links? 18:40:04 still not merged with mainline.. ok, just a sec 18:40:19 https://blog.netbsd.org/tnf/entry/eurobsdcon_2017_travel_notes_after 18:44:44 thanks 18:49:27 I've bought two books for learning forth.. one happened to be language referrence and the other one.. learning forth's paradigm.. I recall a good PDF book with pictures with an introduction to the language; looking for it 18:50:11 --- join: nighty-- (~nighty@s229123.ppp.asahi-net.or.jp) joined #forth 18:51:16 probably starting forth 18:51:58 https://www.forth.com/starting-forth/ 18:53:24 I think it was something else.. looking at options; but thanks! 18:54:06 were they pictures of some douchebag in a bowtie? https://1scyem2bunjw1ghzsf1cjwwn-wpengine.netdna-ssl.com/wp-content/uploads/2015/03/ch1-xlerb.gif 18:54:59 I recall that it was colourful 18:56:36 oh 18:57:09 ryoshu: does bsd has docker like tools? 18:57:42 namespace for userland applications? 18:58:44 perhaps the best option is jails in freebsd 18:59:22 it can probably even emulate and execute real (linux) docker images 18:59:36 combined with compat-linux ABI 18:59:50 aha, that's cool 19:00:04 jails are 20 years old or so 19:00:18 --- join: [1]MrMobius (~MrMobius@h84.166.28.71.dynamic.ip.windstream.net) joined #forth 19:02:31 --- quit: MrMobius (Ping timeout: 264 seconds) 19:02:32 --- nick: [1]MrMobius -> MrMobius 19:20:20 ryoshu: looks like pinebook is the cheapest laptop to run netbsd? 19:23:28 I don't know, I recall that we support it, and it's ARM 19:28:30 maybe I was staring at 'starting forth' 19:32:32 ok just do it 19:50:40 --- quit: Gromboli (Quit: Leaving) 20:27:19 --- quit: dddddd (Remote host closed the connection) 21:22:29 --- join: gravicappa (~gravicapp@h62-133-162-167.dyn.bashtel.ru) joined #forth 22:10:38 --- quit: lijero (Remote host closed the connection) 22:39:45 --- quit: Keshl (Quit: Konversation terminated!) 22:46:40 --- join: smokeink (~smokeink@101.78.169.208) joined #forth 23:44:37 --- quit: nighty-- (Remote host closed the connection) 23:59:59 --- log: ended forth/18.01.03