00:00:00 --- log: started forth/13.08.18 00:24:11 --- quit: RodgerTheGreat (Quit: RodgerTheGreat) 00:26:36 --- quit: Bahman (Quit: Leaving.) 01:03:49 --- join: true-grue (~quassel@95-27-152-142.broadband.corbina.ru) joined #forth 01:21:12 --- quit: mark4_ (Read error: Connection reset by peer) 01:31:16 yep 01:31:55 and it is nice on embedded devices where you can easily put this into begin until for getting out of the loop 02:04:20 --- quit: true-grue (Read error: Connection reset by peer) 02:34:07 --- quit: kludge` (Ping timeout: 264 seconds) 02:39:03 --- join: kludge` (~comet@unaffiliated/espiral) joined #forth 03:34:00 --- join: true-grue (~quassel@95-25-79-55.broadband.corbina.ru) joined #forth 03:59:55 --- quit: ASau (Ping timeout: 264 seconds) 04:03:00 --- join: ASau (~user@p5797FF33.dip0.t-ipconnect.de) joined #forth 04:23:50 --- join: Indecipherable (~Indeciphe@41.11.210.250) joined #forth 04:41:46 --- quit: Indecipherable (Quit: used jmIrc) 04:43:30 --- join: ASau` (~user@p5797FB72.dip0.t-ipconnect.de) joined #forth 04:46:10 --- quit: ASau (Read error: Operation timed out) 04:50:51 --- quit: tangentstorm (Quit: night night) 05:23:26 --- join: dessos (~dessos@c-174-60-176-249.hsd1.pa.comcast.net) joined #forth 05:29:31 --- join: Bahman (~Bahman@2.146.218.28) joined #forth 05:30:22 --- quit: Bahman (Client Quit) 05:35:02 --- nick: ASau` -> ASau 06:11:14 --- part: dessos left #forth 06:57:42 --- join: dkordic (~danilo@178-222-84-9.dynamic.isp.telekom.rs) joined #forth 08:09:01 --- join: nys (~YXWX@blk-142-60-139.eastlink.ca) joined #forth 09:21:04 --- join: protist (~protist@65.224.69.111.dynamic.snap.net.nz) joined #forth 09:25:06 --- join: RodgerTheGreat (~rodger@c-98-202-115-133.hsd1.ut.comcast.net) joined #forth 09:36:04 --- join: Nisstyre-laptop (~yours@oftn/member/Nisstyre) joined #forth 09:36:42 --- nick: Nisstyre-laptop -> Nisstyre 10:21:57 --- quit: c00kiemon5ter (Ping timeout: 260 seconds) 10:22:46 --- join: c00kiemon5ter (~c00kiemon@foss-aueb/coder/c00kiemon5ter) joined #forth 10:42:01 --- join: rixard (~rixard@81-235-139-119-no63.tbcn.telia.com) joined #forth 11:15:06 --- quit: protist (Quit: Konversation terminated!) 11:56:32 --- join: tangentstorm (~michal@108-218-151-22.lightspeed.rcsntx.sbcglobal.net) joined #forth 13:36:38 --- quit: true-grue (Read error: Connection reset by peer) 14:27:23 --- quit: c00kiemon5ter (Ping timeout: 246 seconds) 15:53:46 --- join: malicious (~weechat@pool-108-9-106-234.tampfl.fios.verizon.net) joined #forth 16:24:17 --- quit: Eth|cal (Ping timeout: 246 seconds) 16:36:35 --- join: Eth|cal (~sam@ppp59-167-172-238.static.internode.on.net) joined #forth 17:08:24 --- join: Bahman (~Bahman@2.147.83.9) joined #forth 19:12:18 can someone point me toward the eforth impl (asm source, preferrably well documented) or a document about the core 30 primitives to be coded in asm? 19:12:36 finished the jonesforth review and would like to see another forth and how it's implemented 19:16:10 bluekelp: First hit on a DDG search: http://www.forth.org/eforth.html 19:18:28 ttmrichter: can you find something useful in all that? i was unable to. the downloadables do not contain overviews, readmes, of annotated source. it's generally pre-compiled .com or .exe files, e.g 19:18:54 i tried the eforth site, eforth32, and i think some others 19:19:23 e.g., what are the "30 primitives" it's built on? i was unable to even find that. i can't even tell if it's radically different from jonesforth 19:19:44 or if porting is just basically writing a new forth for the cpu (like porting jonesforth) 19:20:16 I just opened up one at random (6812ef). 19:20:20 It has source. 19:20:52 If you want annotated source, I think you're pretty much doomed 19:21:03 But this is 5000 lines of assembler. 19:21:08 It's not really that hard. 19:21:45 Looking at this at first glance it looks like it's a subroutine-threaded Forth implementation. 19:21:53 And I don't even speak 68HC12. 19:22:08 (I speak 68HC11, mind, but am pretty rusty.) 19:23:58 The x86 version (eforth86) also comes with source. 19:24:18 That's only 2000 lines of assembler. 19:24:42 Well-commented too. Much better than the HC12 version. 19:52:27 i'll try eforth86, thanks. i trued eforth32 but perhaps overlooked the source there as well 19:58:23 Since eForth is a subroutine threaded Forth, reading the code is pretty simple. 19:58:28 https://ideone.com/K404ng 19:58:37 I picked a word at random from eforth86. 19:59:01 The assembler source is there in a comment and I've done a quick back-of-the-envelope conversion into what equivalent Forth code would look like. 19:59:45 ttmrichter: have you any thoughts on jonesforth? it's the only "real" forth i've looked at (other than disassembling colorForth almost a decade ago :) 20:00:08 Jonesforth is a good pedagogical Forth. 20:00:17 since i haven't seen any others i don't know how they "should" look and if there are other ways (other than threaded, subroutine, etc.) 20:00:25 (Unfortunately it doesn't work on my system any longer.) 20:00:38 Oh, if you want to know different ways to implement Forth, hold on a sec. 20:01:47 http://www.bradrodriguez.com/papers/moving1.htm 20:01:57 That begins a series of articles in how to design a Forth kernel. 20:02:05 It covers a lot of ground that is usually left to lore. 20:02:21 i've seen that but not gotten too deep into it. wanted to finish jones first so i had a mental model to compare to 20:02:35 Jonesforth is an ITC model (the first of the given implementation techniques). 20:02:48 i also see references to a "forth model" in eforth - is that common vocab for the non-asm portion of a forth? 20:03:10 Not that I know of, no. 20:03:31 The STM32 Forth I'm working on will be using the second kind of threading: DTC (direct threading). 20:04:28 eForth uses STC (subroutine threading), the third kind shown in that article. 20:05:32 The fourth major implementation style is token threading (TTC). 20:05:45 Then, of course, there's various hybrid approaches. 20:06:12 But that article will give you loads of coverage and detail to help you understand the source to any Forth once you know its threading model. 20:08:03 i'm glad i saw the implementation of one - much more elegant than the "boatloads of asm" i was writing before 20:08:44 --- part: malicious left #forth 20:10:22 Well depending on how you approach Forth you can view it as a programming language, a virtual machine or a really useful way of organizing a library of assembler routines. :) 20:10:41 or all of the above 20:11:26 for now, i'm using it to get me back into asm, and then to replace asm as the low-level system exploration platform 20:11:41 so i don't need to write custom asm code the every thing i want to try/test 20:13:18 That's why I'm making my ARM Forth. 20:13:26 To have a tool for exploring my various MCUs. 20:14:15 that was also on deck - port jones to arm (to ake sure i know arm asm) 20:21:26 is your forth open source? github? i'd like to poke around and see another implementationt ype 20:23:01 It will be open source when it's ready to go, yes. 20:23:05 I don't do public development. 20:23:08 I share completed code. 20:23:45 i understand. i'm a bit embarrased by my forth (it can't even do IF THEN) but it's public now so i have to deal :) 20:24:22 all i had when i started was soem really rusty asm skills from my DOS days and Brodie's "Starting Forth" 20:24:27 (As an aside, I don't do social media either...) 21:52:20 --- quit: RodgerTheGreat (Quit: RodgerTheGreat) 22:13:10 --- quit: Nisstyre (Ping timeout: 260 seconds) 22:36:25 --- join: true-grue (~quassel@95-26-181-74.broadband.corbina.ru) joined #forth 23:09:08 --- quit: nys (Quit: quit) 23:20:46 --- join: protist (~protist@58.224.69.111.dynamic.snap.net.nz) joined #forth 23:59:59 --- log: ended forth/13.08.18