00:00:00 --- log: started forth/19.04.04 00:27:45 --- quit: wa5qjh (Remote host closed the connection) 00:30:04 --- join: wa5qjh (~quassel@110.54.249.181) joined #forth 00:30:04 --- quit: wa5qjh (Changing host) 00:30:04 --- join: wa5qjh (~quassel@freebsd/user/wa5qjh) joined #forth 00:30:09 --- join: proteusguy (~proteusgu@mx-ll-180.183.121-251.dynamic.3bb.co.th) joined #forth 00:30:09 --- mode: ChanServ set +v proteusguy 00:34:29 --- quit: wa5qjh (Remote host closed the connection) 00:53:27 morgning forth 01:19:39 --- quit: Keshl (Read error: Connection reset by peer) 01:20:08 --- join: Keshl (~Purple@207.44.70.214.res-cmts.gld.ptd.net) joined #forth 01:30:49 --- quit: chunkypuffs (Quit: ZNC 1.7.1 - https://znc.in) 01:30:56 --- join: chunkypuffs (~chunkypuf@2a01:4f9:2b:16d5::1) joined #forth 02:02:46 --- quit: ashirase (Ping timeout: 244 seconds) 02:09:57 --- join: ashirase (~ashirase@modemcable098.166-22-96.mc.videotron.ca) joined #forth 02:14:41 --- join: wa5qjh (~quassel@110.54.249.181) joined #forth 02:14:41 --- quit: wa5qjh (Changing host) 02:14:41 --- join: wa5qjh (~quassel@freebsd/user/wa5qjh) joined #forth 02:21:37 --- quit: chunkypuffs (Quit: ZNC 1.7.1 - https://znc.in) 02:22:18 --- join: chunkypuffs (~chunkypuf@znc.gamecu.be) joined #forth 02:31:35 --- join: dddddd (~dddddd@unaffiliated/dddddd) joined #forth 03:26:01 --- quit: MrMobius (Ping timeout: 246 seconds) 03:30:30 --- quit: wa5qjh (Remote host closed the connection) 03:34:50 --- join: wa5qjh (~quassel@110.54.249.181) joined #forth 03:34:51 --- quit: wa5qjh (Changing host) 03:34:51 --- join: wa5qjh (~quassel@freebsd/user/wa5qjh) joined #forth 03:35:40 --- quit: wa5qjh (Remote host closed the connection) 03:45:32 --- quit: DKordic (Ping timeout: 250 seconds) 04:05:19 good morning 04:06:16 --- quit: proteusguy (Remote host closed the connection) 05:23:04 h'lo folks 05:23:44 hi 05:27:36 writing Nim today 05:27:59 maybe I should write Python so if I get fired someone else can maintain it 05:28:02 that's the only reas o 05:28:11 *reason I'm not forthing at work 05:38:03 write a forth in Nim, then use that :) 05:39:30 there's a concatenative language called min, written in nim 05:50:28 WilhelmVonWeiner: which Python? Python 2.7? Python 3.x? Or NuPython? 05:51:18 what's the latter? 05:51:23 Python 3.x. 05:52:12 the lattermost is NuPython iirc 05:53:00 never heard of NuPython and can't find anything about it 06:02:57 right, it wont be until the same sort of problems start to plaque 3.x that plaqued 2.7 06:03:25 like what? 06:06:41 how should I know? I dont use Python. 06:17:32 --- nick: cp- -> nighty- 06:42:58 --- quit: dave0 (Quit: dave's not here) 07:05:54 --- join: dys (~dys@tmo-102-137.customers.d1-online.com) joined #forth 07:22:13 * crc dislikes min's restrictions on names. can't define words with names including various punctuation characters 07:34:20 --- quit: tabemann (Ping timeout: 250 seconds) 08:01:49 --- join: proteusguy (~proteusgu@cm-58-10-208-131.revip7.asianet.co.th) joined #forth 08:01:49 --- mode: ChanServ set +v proteusguy 08:03:48 honestly if I were writing a Forth it would be Retro but a bit more... esoteric 08:04:11 ...and functional? 08:10:20 base 12 by default 08:10:49 base 20, of course 08:11:22 WilhelmVonWeiner, you mean like a strongly typed more functional style forth with an Actor concurrency model?!?!? ;-) Cause that's what I'm doing... 08:11:40 --- quit: dys (Ping timeout: 245 seconds) 08:15:15 completely untyped 08:18:08 i haven't used retro but isn't it already fairly functional? 08:18:19 or am i thinking of a different one 08:19:03 there was one that its control flow was entirely based around quotations and execution tokens 08:19:25 e.g., [ ( do something if true ) ] [ ( do something if false ) ] if 08:20:43 it's not entirely based around it 08:20:52 they're just language constructs 08:21:22 well in forth, aren't all control flow words "just language constructs?" 08:22:22 I mean quotations are actually written in Retro 08:23:15 retro isn't fairly functional no, imo 08:23:59 but functional style code is easy 08:23:59 maybe i'm thinking of factor 08:24:38 factor has support for functional programming 08:25:00 it also has an unfeathered raptor in the logo on the main page 08:25:03 very disappointing 08:25:34 well, it's that asian raptor - ours looked like a pissed-off vulture 08:26:00 the feathers came off reaching around all the gears inside the Factor machine 08:28:17 oic 08:31:34 --- join: MrMobius (~default@c-73-134-82-217.hsd1.va.comcast.net) joined #forth 08:37:55 retro is not functional; I'm quite open to mutable data. though I won't deny drawing influence from functional languages :) 08:42:57 yeah i think i was thinking of factor 08:43:10 all the forths kind of run together after a while 08:45:20 crc: in a recent version of retro I noticed that the 'image' gets baked into the elf binary executable. Why is that? 08:45:22 factor has a lot of mutables 08:49:33 Zarutian: (1) easier install and/or deployment and (2) most of my users weren't building custom images (and there is still facilities for using a separate image file as desired) 08:51:00 (3) since each interface has a specific image, this also avoids the need to keep track of a bunch of multiple image files 08:51:27 well, I was playing a bit with implementing something akin to Smalltalk80/Squeak outload. 08:53:58 basically, it put the stacks into memory, then wrote out the memory as a new image. A small preamble that loaded the stacks back from memory was added. 08:57:34 but I wrote that before the i/o interface change. And I had not thought of any way or policy to deal with open filedescriptors. 09:01:14 I'd like to do something similar eventually (for the native system at least) 09:03:17 one item I had not decided on was if I was going support delta-saves. A bit like how infocomm interactive fiction saves work. 09:04:51 in that case there would be a base image file and one or more delta image files. 09:18:46 the delta image file has a header which has an magic number (usual way to identify file formats), followed by a version byte. Then chunks of the form: starting address (one cell), length (one cell), and patch data (that many cells). Patch data is basically the result of XORing what was in memory at that address with what was in the base image, corrispondingly. 09:21:35 when end of the file is reached the loading is done. This means that new chunks could just be appended. 09:51:26 --- quit: Zarutian (Read error: Connection reset by peer) 09:51:48 --- join: Zarutian (~zarutian@173-133-17-89.fiber.hringdu.is) joined #forth 10:15:46 --- join: MrMobius_ (268ca56a@gateway/web/freenode/ip.38.140.165.106) joined #forth 10:23:30 --- join: reepca (~user@208.89.170.37) joined #forth 10:44:23 --- join: dys (~dys@2a01:598:a80d:3864:226:5eff:fee9:68d2) joined #forth 10:46:25 * crc has been working to see how small he can get the minimal VM in C. I'm at 276 lines, not sure I can get much further without making the code less readable. 10:46:46 that sounds like a really good size 10:47:16 http://forth.works/a57b166d6c9512d6e7488a43c99799b0 is the C source (no comments or blank lines), http://forth.works/6e728993aa3f704d966a7250df1ac248.html is a tiny repl to go with it. 10:49:40 why not have array bounds checks? 10:50:50 check em at edit time 10:51:05 check em in the core dump 10:51:14 --- quit: rprimus (Ping timeout: 245 seconds) 10:51:51 nga's source is really cool. My own things always read from stdin though 10:52:24 like my source is piped into the assembler which is piped into the program 10:53:24 --- join: rprimus (~micro@unaffiliated/micro) joined #forth 10:53:58 in the main interface (rre), I do check the bounds on the stack, but not memory. 10:56:44 I use circular stacks 10:57:18 so bounds checking is built in I guess 10:57:30 since everything is mod depth 10:57:31 oh nice! 11:07:05 why, though? is there ever a situation that it would wrap around that isn't a bug? 11:07:43 i guess you could structure a program as an infinitely-recursive state machine 11:07:45 that might be cool 11:16:21 means you don't have to worry about overflow 11:16:30 you can leave stuff on the stack if you're bored of it 11:16:48 li 11:17:32 *long as you don't write over what you want on the bottom 11:18:18 --- quit: dys (Ping timeout: 250 seconds) 11:18:42 which is exactly what happens the first time it wraps 11:19:03 yeah 11:19:19 long as you don't care about what it is all is well 11:19:23 so that's really only useful for the repl or the top-most word 11:19:52 any other word has to clean up after itself or else you end up with stack imbalance bugs everywhere 11:20:15 depends where you're leaving stuff 11:20:36 I also have a hunch it's easier to build in hardware? 11:20:39 * WilhelmVonWeiner shrugs 11:26:17 --- join: dys (~dys@2a01:598:a80d:3864:226:5eff:fee9:68d2) joined #forth 11:32:58 down to 253 lines, thanks to a little of refactoring. http://forth.works/d7ffff87cc46181c69c32a7d28b8e363 11:47:48 --- join: mtsd (~mtsd@94-137-100-130.customers.ownit.se) joined #forth 11:50:47 --- quit: dys (Ping timeout: 258 seconds) 12:01:49 make it a horrible case statement and you can save two or three lines 12:02:15 no. 12:02:40 LOL 12:03:54 i like the simple VM 12:04:29 seeing a dispatch table used like this changed my life 12:08:07 I used a big switch in ngaro, moving away from that was one of my objectives for this 12:09:19 Was were the issues you had with the big switch statement compared to that dispatch table? 12:09:47 the c code is so simple, it would be possible to implement the VM in plain assembly 12:09:51 --- quit: nerfur (Ping timeout: 244 seconds) 12:09:53 using it as reference 12:10:24 absolutely 12:10:27 --- join: nerfur (~nerfur@broadband-95-84-184-13.ip.moscow.rt.ru) joined #forth 12:14:30 I'd love to have a version of this in assembly, but lack the time and patience to write and debug it :( 12:33:04 --- quit: gravicappa (Ping timeout: 246 seconds) 12:59:36 --- join: dave0 (~dave0@223.072.dsl.syd.iprimus.net.au) joined #forth 13:00:34 hi 13:19:44 hi dave0 13:21:26 hi crc 13:31:39 --- quit: mtsd (Quit: leaving) 13:53:20 --- quit: MrMobius_ (Quit: Page closed) 14:17:46 --- quit: lchvdlch (Ping timeout: 250 seconds) 14:23:42 --- join: lchvdlch (~nestr0@191.98.151.137) joined #forth 15:03:34 --- join: dys (~dys@p200300C9D7007E0002265EFFFEE968D2.dip0.t-ipconnect.de) joined #forth 15:43:53 --- join: wa5qjh (~quassel@110.54.249.181) joined #forth 15:43:53 --- quit: wa5qjh (Changing host) 15:43:53 --- join: wa5qjh (~quassel@freebsd/user/wa5qjh) joined #forth 15:44:26 --- quit: PoppaVic (Ping timeout: 250 seconds) 15:48:31 --- join: PoppaVic (~PoppaVic@unaffiliated/poppavic) joined #forth 15:53:45 --- quit: wa5qjh (Remote host closed the connection) 16:13:14 --- quit: Zarutian (Read error: Connection reset by peer) 16:13:50 --- join: Zarutian (~zarutian@173-133-17-89.fiber.hringdu.is) joined #forth 16:28:29 --- quit: dys (Ping timeout: 264 seconds) 16:39:54 --- quit: john_cephalopoda (Ping timeout: 250 seconds) 16:46:14 --- quit: Zarutian (Ping timeout: 246 seconds) 16:53:33 --- join: Zarutian (~zarutian@173-133-17-89.fiber.hringdu.is) joined #forth 16:53:56 --- join: john_cephalopoda (~john@unaffiliated/john-cephalopoda/x-6407167) joined #forth 17:34:43 --- join: tabemann (~tabemann@rrcs-162-155-170-75.central.biz.rr.com) joined #forth 17:36:15 --- quit: pareidolia (Ping timeout: 268 seconds) 17:44:39 --- join: pareidolia (~pareidoli@87.213.124.143) joined #forth 18:03:22 --- quit: reepca (Remote host closed the connection) 18:20:26 --- quit: dave0 (Quit: dave's not here) 18:25:39 --- join: rdrop-exit (~markwilli@112.201.169.15) joined #forth 18:28:24 hey 18:28:39 * tabemann is busy reading Skippy's List 18:28:46 Good morning Tabemann 18:29:17 I'm trying to catch up on comp.lang.forth 18:29:29 people actually still use Usenet? 18:31:09 CLF is still active 18:32:05 Mostly standard Forth related debates 18:34:28 I *should* try out my line editor, but for some reason don't want to 18:35:21 probably because it will be a PITA to debug 18:39:23 dammit 18:39:25 I prefer not to have one, just backspace 18:39:47 I rebuild my images - and it just crashes, right away, even though I haven't built the line editor into the image yet 18:39:54 *image 18:43:20 --- join: bentai (~quassel@2601:881:8003:1948:509c:d03e:1ef8:c970) joined #forth 18:44:55 Hello. How do I clear the stack (without popping each item off)? 18:45:21 typing gibberish works ;-P 18:47:54 I have tried the gibberish approach. I am going through some exercises to manipulate things on the stack, like rot, swap, dup, but I don't get the right answer and it leaves the stack with stuff in it 18:48:45 1 2 3 .s <3> 1 2 3 ok 3 18:48:45 sdfsdf 18:48:45 *the terminal*:2: error: Undefined word 18:48:45 >>>sdfsdf<<< 18:48:45 Backtrace: 18:48:46 0 $7F34B2BAD268 throw 18:48:48 .s <0> ok 18:52:00 back 18:52:40 ABORT 18:52:54 ABORT will take you back to the prompt though 18:52:59 and, gforth sez CLEARSTACK and CLEARSTACKS 18:53:05 ..which is longer than asda 18:53:20 without those, when you start executing do SP@ CREATE SP0 , 18:53:45 and then later do BEGIN SP@ SP0 @ <> WHILE DROP REPEAT 18:53:52 actually 18:54:01 make that SP@ CONSTANT SP0 18:54:13 and BEGIN SP@ SP0 <> WHILE DROP REPEAT 18:54:15 or better yet 18:54:21 if you have SP! 18:54:29 first do SP@ CREATE SP0 18:54:35 and later do SP0 SP! 18:55:04 note that SP@ is strictly speaking not ANS Forth, but who cares about that 18:55:10 same with SP! 18:57:22 Check the source of ABORT and see how it clears the data stack in your particular Forth 18:58:02 if you have SP@ and SP!, what I suggested last is the most efficient way to do it 18:58:31 whoops 18:58:41 that was supposed to be SP@ CONSTANT SP0 19:01:02 ABORT on SwiftForth seems like the way to go...typing gibberish causes a call to ABORT 19:02:06 note that ABORT is not what you want if you don't want to return to the prompt 19:03:12 Sure, but he can just VIEW ABORT to see how it clears the stack 19:03:14 right now, I am just doing simple exercises of typing things in and switching them around to match the output of an exercise 19:05:38 trying to develop stack thinking 19:05:57 Cool 19:06:35 push it, they will come 19:06:46 pop it, they better go 19:06:58 * tabemann is finally getting to the point that he can keep the stack to a maximum of three items - through using the return stack liberally, and through using user variables pointing to data structures in the user space liberally 19:08:03 well, three items that are actively being juggled 19:08:33 I use circular stacks, they're never empty 19:12:57 someone wrote the answers in my workbook, but I want to work it out on my own 19:26:13 Only way to learn 19:42:19 --- part: bentai left #forth 19:51:41 --- quit: dddddd (Remote host closed the connection) 20:06:13 --- quit: tabemann (Ping timeout: 244 seconds) 20:31:26 --- join: gravicappa (~gravicapp@h109-187-18-29.dyn.bashtel.ru) joined #forth 20:48:00 All caught up with CLF, mostly debates on how to deal with special semantics, and on which of Forth's perceived ills can be cured with the recognizer silver bullet. 20:57:15 --- join: tabemann (~tabemann@2600:1700:7990:24e0:e9cf:9aca:5cdd:e5ee) joined #forth 21:21:18 Reading CLF brought back memories of Jeff Fox claiming ANSI Forth with the Anti-Forth :)) 21:21:32 * was the Anti-Forth 21:22:00 Catch you all later 21:22:08 --- quit: rdrop-exit (Quit: Lost terminal) 21:41:40 --- join: dys (~dys@p200300C9D700520002265EFFFEE968D2.dip0.t-ipconnect.de) joined #forth 22:04:16 --- join: rdrop-exit (~markwilli@112.201.169.15) joined #forth 22:04:26 back 22:21:01 --- join: dave0 (~dave0@223.072.dsl.syd.iprimus.net.au) joined #forth 22:28:05 re 22:45:12 Hi dave0 22:45:49 --- quit: Keshl (Read error: Connection reset by peer) 22:46:33 --- join: Keshl (~Purple@207.44.70.214.res-cmts.gld.ptd.net) joined #forth 22:47:49 hi rdrop-exit 23:10:35 --- join: wa5qjh (~quassel@freebsd/user/wa5qjh) joined #forth 23:31:43 --- quit: bb010g (Read error: Connection reset by peer) 23:31:56 --- quit: siraben (Read error: Connection reset by peer) 23:31:56 --- quit: jimt[m] (Write error: Connection reset by peer) 23:32:09 --- quit: alexshpilkin (Remote host closed the connection) 23:44:54 --- join: bb010g (bb010gmatr@gateway/shell/matrix.org/x-ywqjeftebrlazlqh) joined #forth 23:59:59 --- log: ended forth/19.04.04