00:00:00 --- log: started forth/17.01.03 00:26:16 --- quit: mnemnion (Remote host closed the connection) 00:53:57 pointfree, haha I've actually been talking with Sam quite a bit in the #riscv channel. But he's spending most of his time getting his implementation if risc-v working with the memory on his board for now. 00:54:59 koz_, it's this board: https://dev.sifive.com/hifive1/hifive1-getting-started-guide/ an arduino format with a custom risc-v chip. 01:18:37 --- part: John[Lisbeth] left #forth 01:37:52 proteus-guy: Oh, the HiFive. I was looking at that one, and was actually thinking it'd be a good Forth target. 01:37:54 Guess not then. 01:54:44 --- join: John[Lisbeth] (~user@2601:601:8f01:a6a0:bdb7:f502:974f:9782) joined #forth 02:03:44 --- nick: John[Lisbeth] -> lisbeth 02:07:20 --- nick: lisbeth -> wasp 02:21:41 --- nick: wasp -> lisbeth_s 02:23:38 --- join: groovy2shoes (~groovy2sh@unaffiliated/groovebot) joined #forth 02:37:21 --- quit: lisbeth_s (Ping timeout: 258 seconds) 03:21:26 --- quit: proteusguy (Ping timeout: 258 seconds) 03:23:46 --- join: proteusguy (~proteus-g@2405:9800:b400:495c:4a51:b7ff:fe38:d966) joined #forth 03:23:46 --- mode: ChanServ set +v proteusguy 03:29:54 --- join: true-grue (~true-grue@176.14.222.10) joined #forth 03:35:36 --- join: mnemnion (~mnemnion@2601:643:8102:7c95:4587:a838:db84:b74b) joined #forth 03:39:50 --- quit: mnemnion (Ping timeout: 258 seconds) 04:19:46 --- quit: ovf (*.net *.split) 04:24:21 --- join: ovf (sid19068@gateway/web/irccloud.com/x-clrqsmpcuoqxpcgq) joined #forth 04:53:31 --- quit: gravicappa (Ping timeout: 246 seconds) 05:30:53 --- join: ricky_ricardo (~rickyrica@2601:240:4203:ecb0:974:2e1c:6303:3be8) joined #forth 05:47:46 --- quit: Quozl` (*.net *.split) 05:47:46 --- quit: djinni (*.net *.split) 05:47:47 --- quit: taij33n (*.net *.split) 05:48:02 --- join: taij33n (dwq6RVd290@volans.uberspace.de) joined #forth 05:48:23 koz_, jury is still out about it being a good forth target. It's certainly an interesting one. I do think risc-v has some real traction and potential so it's not a chipset to be ignored. I certainly prefer it to ARM by far. 05:48:53 --- join: Quozl` (~quozl@antitheft.laptop.org) joined #forth 05:49:22 --- join: Keshl___ (~Purple@24.115.181.94.res-cmts.gld.ptd.net) joined #forth 05:49:22 --- quit: Keshl__ (Remote host closed the connection) 05:49:58 --- join: djinni (~djinni@68.ip-149-56-14.net) joined #forth 06:11:41 --- join: mnemnion (~mnemnion@71.198.73.193) joined #forth 06:16:19 --- quit: mnemnion (Ping timeout: 256 seconds) 06:35:01 --- join: gravicappa (~gravicapp@h62-133-162-46.static.bashtel.ru) joined #forth 07:01:22 --- join: reepca (~user@208.89.170.250) joined #forth 07:08:31 --- quit: mtsd () 07:16:41 --- join: rgrinberg (~rgrinberg@24-246-56-85.cable.teksavvy.com) joined #forth 07:25:01 --- quit: groovy2shoes (Ping timeout: 248 seconds) 07:52:08 Hm, so I've got a situation where I have a bunch of words that all define words which remember something and then set a variable to it when they are run. So I want to use create ... does> to define these defining words, but I only want the address of the variable to be duplicated once for each different defining word. 07:54:28 I'm really not sure how to do that or even if it's possible. It seems like I need to generate new does> clauses for each new defining word. 07:58:30 reepca: What would be an example use case? 07:58:30 Some Forths allow multiple DOES> in a word. This is forbidden in standard Forth for no reason. 08:00:20 Currently I've got : option1: create latest name>string 2, does> 2@ current-option1 2! ; and : option2: create latest name>string 2, does> 2@ current-option2 2! ; 08:00:41 (using gforth's name token stuff) 08:02:49 and I want to factor it out so I can just say current-option1 option: option1: instead of having to duplicate all that same stuff 08:04:42 but the only way I can think of doing that is to have anything defined by option1: store the address of the variable, which seems wasteful 08:04:57 (since it would be shared by all option1s...) 08:08:31 --- join: neceve (~ncv@79.115.225.255) joined #forth 08:08:31 --- quit: neceve (Changing host) 08:08:31 --- join: neceve (~ncv@unaffiliated/neceve) joined #forth 08:34:12 --- quit: karswell (Remote host closed the connection) 08:35:41 --- join: karswell (~user@252.135.46.217.dyn.plus.net) joined #forth 08:53:56 --- join: mnemnion (~mnemnion@2601:643:8102:7c95:4587:a838:db84:b74b) joined #forth 08:56:21 --- quit: rgrinberg (Read error: Connection reset by peer) 09:13:17 --- quit: gravicappa (Ping timeout: 248 seconds) 09:33:54 --- log: started forth/17.01.03 09:33:54 --- join: clog (~nef@bespin.org) joined #forth 09:33:54 --- topic: 'Forth Programming | logged by clog at http://bit.ly/91toWN | http://forthworks.com/forth/standards/DPANS/ | www.greenarraychips.com' 09:33:54 --- topic: set by crc!uid2647@gateway/web/irccloud.com/x-gafmfbjdyglmxbls on [Sun Nov 13 16:58:08 2016] 09:33:54 --- names: list (clog rgrinberg karswell neceve reepca djinni Keshl___ Quozl` taij33n ricky_ricardo ovf true-grue +proteusguy dograt pointfree crc proteus-guy dzho nighty dys DKordic rpcope M-jimt jeremyheiler josh5tone cajg koisoke nighty- ggherdov`___ irsol rprimus_ phadthai gordonjcp fiddlerwoaroof bluekelp_ koz_ carc segher backer cantstanya diginet2 zy]x[yz malyn APic pdewacht nerfur Vendan newcup eldre yunfan npr) 09:42:25 --- join: Zarutian (~zarutian@168-110-22-46.fiber.hringdu.is) joined #forth 09:48:50 --- join: mnemnion (~mnemnion@104.6.70.118) joined #forth 09:50:20 --- quit: mnemnion (Remote host closed the connection) 09:50:35 --- join: mnemnion (~mnemnion@104.6.70.118) joined #forth 10:08:00 --- quit: ricky_ricardo (Remote host closed the connection) 11:26:50 --- join: Mat4 (~Mat@ip5b417c27.dynamic.kabel-deutschland.de) joined #forth 11:36:06 --- quit: proteusguy (*.net *.split) 11:36:06 --- quit: josh5tone (*.net *.split) 11:36:07 --- quit: diginet2 (*.net *.split) 11:36:20 --- join: diginet2 (~diginet@107.170.146.29) joined #forth 11:36:23 --- join: josh5tone (~josh@99-51-169-74.lightspeed.nworla.sbcglobal.net) joined #forth 11:36:28 --- join: proteusguy (~proteus-g@2405:9800:b400:495c:4a51:b7ff:fe38:d966) joined #forth 11:36:45 --- mode: ChanServ set +v proteusguy 12:43:14 --- quit: neceve (Quit: Konversation terminated!) 12:53:39 --- quit: Mat4 (Quit: Verlassend) 12:53:55 --- join: Mat4 (~Mat@ip5b417c27.dynamic.kabel-deutschland.de) joined #forth 13:09:18 --- quit: Mat4 (Quit: Verlassend) 14:14:37 --- join: John[Lisbeth] (~user@40.86.75.178) joined #forth 14:27:39 --- quit: Zarutian (Read error: Connection reset by peer) 14:31:23 --- join: Zarutian (~zarutian@168-110-22-46.fiber.hringdu.is) joined #forth 14:40:32 reepca: It looks like you have a current-option for every option anyway. The only factor I could think to pull out in your example is 14:40:32 : option latest name>string 2constant ; 14:40:32 Do you want a self-setting variable with the current-option1 etc? Your example is a 1-to-1 mapping with option1 to current-option1 and option2 to current-option2 so it is not clear that you need that indirection. 15:10:33 --- join: beretta (~beretta@cpe-184-58-116-76.columbus.res.rr.com) joined #forth 15:11:29 --- quit: rgrinberg (Ping timeout: 246 seconds) 15:21:57 --- quit: Zarutian (Quit: Zarutian) 16:45:23 --- join: rgrinberg (~rgrinberg@cp209-202-78-3.cp.telus.net) joined #forth 16:57:56 --- quit: true-grue (Read error: Connection reset by peer) 17:26:00 --- quit: rgrinberg (Remote host closed the connection) 17:26:30 --- quit: mnemnion (Remote host closed the connection) 17:48:27 --- quit: karswell (Ping timeout: 248 seconds) 18:04:54 --- join: rgrinberg (~rgrinberg@cp209-202-78-3.cp.telus.net) joined #forth 18:12:24 --- join: neceve (~ncv@79.115.225.255) joined #forth 18:12:24 --- quit: neceve (Changing host) 18:12:24 --- join: neceve (~ncv@unaffiliated/neceve) joined #forth 18:55:46 --- quit: rgrinberg (Ping timeout: 272 seconds) 19:02:24 --- quit: neceve (Read error: Connection reset by peer) 19:02:45 --- join: neceve (~ncv@79.115.225.255) joined #forth 19:02:45 --- quit: neceve (Changing host) 19:02:45 --- join: neceve (~ncv@unaffiliated/neceve) joined #forth 19:46:48 --- quit: John[Lisbeth] (Remote host closed the connection) 19:47:46 --- join: John[Lisbeth] (~user@40.86.75.178) joined #forth 19:53:48 --- join: mnemnion (~mnemnion@71.198.73.193) joined #forth 19:55:51 --- quit: mnemnion (Remote host closed the connection) 19:56:07 --- join: mnemnion (~mnemnion@2601:643:8102:7c95:49fa:54e6:96b3:f641) joined #forth 20:54:24 --- join: rgrinberg (~rgrinberg@24-246-56-85.cable.teksavvy.com) joined #forth 20:57:37 --- quit: neceve (Quit: Konversation terminated!) 21:28:04 --- join: MrBusiness (~ArcMaster@104-50-90-48.lightspeed.brhmal.sbcglobal.net) joined #forth 21:34:25 --- quit: M-jimt (Write error: Connection reset by peer) 21:40:22 --- join: a3f (~a3f@unaffiliated/a3f) joined #forth 21:44:52 I found a quite nice annotated source code for a x86 FORTH implementation by Richard Jones here: https://code.google.com/archive/p/subtle-stack/downloads 21:44:57 I don't get this part though: 21:45:30 "The only last wrinkle in this is that while our word was being compiled, it was in a 21:45:30 half-finished state. We certainly wouldn't want DOUBLE to be called somehow during this time. There are several ways to stop this from happening, but in FORTH what we do is flag the word with the HIDDEN flag (F_HIDDEN in this code) just while it is being compiled." 21:46:30 If the compiler is just compiling, how would it call anything? 21:48:06 or well, it could call immediate flagged words, but how could the word just being compiled be called in a single-threaded implementation? 21:51:08 --- join: M-jimt (jimtmatrix@gateway/shell/matrix.org/x-xocupwatdjdbvohc) joined #forth 22:53:59 Oh, part two has more on this: By marking it hidden, references to the same word point to the previous definition. 22:54:36 --- quit: rgrinberg (Ping timeout: 248 seconds) 22:58:26 --- quit: proteusguy (Quit: Leaving) 23:03:39 --- join: mtsd (4d6e3d64@gateway/web/freenode/ip.77.110.61.100) joined #forth 23:59:59 --- log: ended forth/17.01.03