00:00:00 --- log: started forth/13.05.15 00:25:23 --- nick: ASau` -> ASau 00:33:36 --- join: epicmonkey (~epicmonke@188.134.41.112) joined #forth 01:02:41 --- quit: karswell` (Read error: Operation timed out) 01:02:44 --- quit: epicmonkey (Ping timeout: 256 seconds) 02:09:05 --- quit: Eth|cal (Ping timeout: 252 seconds) 02:13:20 --- join: epicmonkey (~epicmonke@host-224-51.dataart.net) joined #forth 02:26:40 --- join: Eth|cal (~sam@ppp59-167-172-238.static.internode.on.net) joined #forth 02:39:52 --- quit: john_metcalf (Ping timeout: 246 seconds) 02:43:02 --- quit: epicmonkey (Ping timeout: 256 seconds) 02:55:05 --- join: epicmonkey (~epicmonke@host-224-58.dataart.net) joined #forth 04:45:39 --- quit: Adeon (Ping timeout: 264 seconds) 04:49:08 --- join: Adeon (~makrillit@109.73.169.52) joined #forth 05:15:31 --- join: dto (~user@pool-96-252-62-13.bstnma.fios.verizon.net) joined #forth 05:35:11 --- quit: epicmonkey (Remote host closed the connection) 05:35:21 --- join: epicmonkey (~epicmonke@host-224-58.dataart.net) joined #forth 06:31:17 --- quit: dto (Remote host closed the connection) 06:37:05 --- quit: goingretro (Read error: Connection reset by peer) 06:43:39 --- join: goingretro (~kbmaniac@host31-51-110-231.range31-51.btcentralplus.com) joined #forth 07:20:03 --- join: jdavidboyd (~user@72.185.97.240) joined #forth 07:27:45 --- join: pointfree (~awagner@69.43.65.148) joined #forth 07:28:18 --- quit: pointfree (Client Quit) 08:04:56 --- quit: segher (Quit: This computer has gone to sleep) 08:06:33 --- join: segher (~segher@5ED3C8DF.cm-7-4d.dynamic.ziggo.nl) joined #forth 09:22:17 --- join: Nisstyre-laptop (~yours@oftn/member/Nisstyre) joined #forth 09:30:57 --- join: dto (~user@pool-96-252-62-13.bstnma.fios.verizon.net) joined #forth 09:40:23 --- quit: dto (Remote host closed the connection) 11:14:39 --- nick: bluekelp_ -> bluekelp 11:25:08 --- quit: epicmonkey (Ping timeout: 260 seconds) 11:41:05 another small step: got my kernel to run compiled Forth words 11:41:32 definitely developing a deeper appreciation of the simplicity and power of Forth, writing my own 12:07:34 --- join: impomatic (~digital_w@43.22.125.91.dyn.plus.net) joined #forth 12:10:16 --- quit: Nisstyre-laptop (Quit: Leaving) 12:20:44 --- nick: dzho_ -> dzho 12:32:06 --- join: Nisstyre-laptop (~yours@oftn/member/Nisstyre) joined #forth 12:42:00 --- quit: goingretro (Ping timeout: 256 seconds) 12:48:33 --- join: goingretro (~kbmaniac@host86-186-154-2.range86-186.btcentralplus.com) joined #forth 12:52:04 cool, bluekelp ... do you have a site somewhere? 12:55:45 it'd be nice to have a list of sites of the people that are active with forth in here 12:56:48 --- join: Onionnion (~ryan@76.199.149.44) joined #forth 13:01:43 --- join: ncv (~quassel@79.114.120.25) joined #forth 13:01:43 --- quit: ncv (Changing host) 13:01:43 --- join: ncv (~quassel@unaffiliated/neceve) joined #forth 13:18:22 tangentstorm: github.com/bluekelp/uforth86 13:18:38 documentation of any sort of lacking. still very much work in progress (no compiler yet) 13:19:16 i just need to share to keep my motivation up b/c there's still sooooo much to do to get a "real" working forth :) 13:19:46 oh in assembly language, too. old-school! 13:22:34 i wanted to see how small i could get it. i read about "10k" for some and wasn't sure if that was still feasible 13:22:38 plus i get to relearn asm 13:23:03 otherwise i'd have horked for code for yforth (i think) and called it my own :) 13:25:49 --- quit: ncv (Remote host closed the connection) 13:29:41 --- join: ncv (~quassel@79.114.120.25) joined #forth 13:29:41 --- quit: ncv (Changing host) 13:29:41 --- join: ncv (~quassel@unaffiliated/neceve) joined #forth 13:30:30 --- quit: Nisstyre-laptop (Quit: Leaving) 13:31:49 --- join: Mat2 (~claude@91-65-144-133-dynip.superkabel.de) joined #forth 13:32:15 --- quit: ncv (Remote host closed the connection) 13:33:56 --- join: Nisstyre-laptop (~yours@oftn/member/Nisstyre) joined #forth 14:02:22 --- quit: Mat2 (Ping timeout: 246 seconds) 14:27:21 --- join: epicmonkey (~epicmonke@188.134.41.113) joined #forth 14:58:43 --- join: dto (~user@pool-96-252-62-13.bstnma.fios.verizon.net) joined #forth 15:06:31 --- quit: dto (Remote host closed the connection) 15:15:44 --- join: karswell (~user@46.208.83.73) joined #forth 15:17:28 --- join: Tod-Work (~thansmann@50-202-143-210-static.hfc.comcastbusiness.net) joined #forth 15:24:05 --- join: Mat2 (~claude@91-65-144-133-dynip.superkabel.de) joined #forth 15:29:13 --- quit: Mat2 (Quit: Verlassend) 16:04:27 --- quit: Tod-Work (Quit: Leaving) 16:28:11 --- quit: Nisstyre-laptop (Ping timeout: 245 seconds) 16:29:47 --- join: Nisstyre-laptop (~yours@oftn/member/Nisstyre) joined #forth 16:45:04 is there a "standard" word to clear/reset the stack? 16:45:12 other than quit 16:45:41 --- quit: epicmonkey (Ping timeout: 245 seconds) 16:46:32 reset 16:46:55 maybe? 16:47:04 hrm. i really don't know. that's what retro calls it. 16:47:33 guess that's nonstandard... 16:47:40 does that reset the return stack as well (i asssume so) 16:47:59 yeah i figure it might be a nonstandard "standard" word :) 16:48:03 dunno. 16:49:19 i think quit is the standard word 16:49:29 it's there in 83 anyway http://forth.sourceforge.net/std/fst83/fst83-12.htm#quit 16:49:41 yeah. quit is still an asm-only for me right now 16:50:23 i'm just thinking of something you'd actually type when messing around. don't know i've ever seen quit called directly except by innards of things 16:50:49 --- join: ASau` (~user@p5797EE12.dip0.t-ipconnect.de) joined #forth 16:53:42 --- quit: ASau (Read error: Operation timed out) 17:25:07 --- quit: Nisstyre-laptop (Quit: Leaving) 17:40:38 --- join: mark4 (~mark4@71-85-195-85.dhcp.stls.mo.charter.com) joined #forth 18:01:26 --- quit: tangentstorm (Ping timeout: 264 seconds) 19:20:28 --- quit: impomatic (Quit: impomatic) 19:32:48 --- join: RodgerTheGreat (~rodger@50-198-177-185-static.hfc.comcastbusiness.net) joined #forth 19:38:30 --- quit: Eth|cal (Ping timeout: 256 seconds) 19:41:05 --- quit: Onionnion (Quit: Leaving) 19:44:42 --- join: Eth|cal (~sam@ppp59-167-172-238.static.internode.on.net) joined #forth 19:45:58 there must be internal "words" for pushing/poping from the return stack - i was also going to add 'r and r0 (like 's and s0) - or is there a better way? seems like i'll want/need to do some stack manip on R and not just S, no? 19:54:41 --- join: DocPlatypus (~skquinn@98.195.26.149) joined #forth 19:57:42 bluekelp: the forth word name is quite relevant to asm 20:13:37 do forths generally check r stack for underflow? i haven't seen anything about that. not even sure what a kernel should do in that case. call abort/quit? 20:18:52 usually Forth will bomb out anyway if return stack underflows 20:19:25 do you know internally how it bombs out? i.e., calls QUIT directly, etc. 20:19:48 that might work but then the asm stack might (eventually) fill up with those recursive calls 20:26:18 i guess its just check the RSP resigster 20:30:50 if the rstack is corrupted pretty much anything could happen 20:30:56 especially in a subroutine threaded forth 20:31:29 since you wouldn't necessarily have an inner interpreter to perform a sanity check before popping the rstack 20:31:46 and doing such a sanity check adds quite a bit of overhead 20:45:39 yeah, it could do anything 20:46:18 it's sort of like how ! could do almost anything if you give it a bad address 20:46:44 ok i won't worry about it for now and will let it crash/etc. current implementation just returns 0 indefinately for both stacks on underflow - need to detect/correct for data stack at least 20:46:45 segfault, corrupt a stack, subtly alter the program, harmlessly biff, etc 20:47:44 yeah... the nastiest errors are where the address lands in code space and changes, say, the xt of + to * 20:48:11 or changes a 0 to 1 or some other number that is usually okay but gives weird results once in a while 20:50:09 especially if it's scrambling code in an infrequently taken branch 20:50:22 and/or if the corruption occurs during an infrequent code path 20:51:10 my VM tends to have some impressive error conditions because address zero contains the PC and the default position of the data stack will overflow and start writing into the rstack 20:52:00 what VM? 20:52:30 are there good, readable examples of small (!) forths out there? i haven't found any. gforth is absolutely huge, e.g. 20:52:36 that's why i started uforth86 20:52:54 DocPlatypus: Mako: https://github.com/JohnEarnest/Mako 20:53:10 but i have no idea yet not to implement the compiler and the next level up from basic words like + R> etc. 20:53:36 "Forth-like language" -- is it Forth, or is it something else? 20:53:41 i.e. can you give it Forth code and it will grok it? 20:57:37 DocPlatypus: Maker uses a restricted subset of forth, or alternatively you can think of it as an assembler which happens to closely resemble forth. It's compile-only rather than compiled/interpreted and thus lacks defining words 20:57:55 ah 20:58:20 https://github.com/JohnEarnest/Mako/blob/master/demos/Voters.fs <- here's an example 21:00:28 I don't think it qualifies as a "complete" forth but it's fairly forthy 21:00:39 and I've used it to bootstrap more legitimate forths 21:08:25 --- join: phao (~phao@tdnet-rt.tdnet.com.br) joined #forth 21:27:23 --- part: phao left #forth 21:40:28 do most forth loops have states? not sure how to compile. esp w/things like IF...THEN and how to compiled that into a list of forth words, etc. 21:41:00 the simple explanation is "use the stack" 21:42:17 IF for example lays down a forward branch and THEN is a word which resolves the target of that forward branch 21:42:19 yeah i'm having a hard time visualizing how to implement these. not sure if i need asm or if it can be pure forth words, etc. 21:42:38 these words need to communicate intermediate information to one another and you use the stack for this 21:42:52 this naturally makes those words nest 21:43:26 bluekelp: usually the primitive underlying "IF" is called BRANCH0 or similar 21:43:57 or 0BRANCH 21:46:50 so the words to execute by IF are pushed on rstack and executed/dropped? 21:47:06 i think i don't "get" the forth way here so having hard time deciding how to implement 21:47:25 I think you should study an existing forth until it makes sense 21:47:40 JonesForth is a common suggestion although be aware it does a few things in non-standard ways 21:47:47 it is a clear explanation of the basic ideas 21:47:56 can you recommend a small, accessible one to learn from? most i've found are huge - or like yforth implemented (oddly) in C 21:48:07 ok, i'll look for it 21:48:23 JonesForth is x86 assembly and Forth 21:48:46 but it is extensively commented so it should be useful even if you are not intimately familiar with either 21:50:39 uforth86 is all x86 asm so at least i have that much going for me :) 22:02:21 oh wow. jonesforth is what i was trying to do with uforth86, except using at&t syntax and not intel :) 22:02:32 well how about that 22:03:13 I would also suggest that you should try writing some programs in forth before writing your own forth from scratch 22:03:16 well, except i wanted to write one so i can learn by doing - but i'll revisit or abandon depending on my jf research 22:04:00 it's hard to properly appreciate why things work as they do if you never use them for their intended purpose 22:04:26 and if you aren't at all interested in writing code in forth, what's the point of writing the forth? 22:08:01 i want to use it primarily on smaller embedded systems and for poking hardware 22:08:12 a runtine interpreted asm, sort of 22:08:20 I'm just saying actually write some forth 22:08:31 do a fizzbuzz or an HQ9+ interpreter or whatever 22:08:33 but i love its simplicity and self-supporting nature 22:08:36 just write some forth 22:08:40 k 22:11:24 it's very easy to fall in love with the idea of a programming language and lose sight of the real thing 22:11:27 see also lisp 22:16:44 RodgerTheGreat: how ! do anything if it runs on a os with segment protect? 22:17:12 yunfan_: refer to my list of things ! might possibly do 22:19:10 i use ! for resetting the stack pointers, etc. but only stuff in-process 22:19:18 but it's there for when i strip the OS away (eventually) 22:19:20 peace, I'm out 22:19:30 --- quit: RodgerTheGreat (Quit: RodgerTheGreat) 22:26:10 so is there any arm/mips arm version forth? 23:08:32 just saw google compute engine opened to all 23:59:59 --- log: ended forth/13.05.15