00:00:00 --- log: started forth/18.01.31 00:00:23 --- quit: dys (Ping timeout: 248 seconds) 00:14:40 --- join: dys (~dys@tmo-102-152.customers.d1-online.com) joined #forth 00:19:10 --- quit: dys (Ping timeout: 240 seconds) 00:48:19 --- join: dys (~dys@2003:5b:203b:100:6af7:28ff:fe06:801) joined #forth 01:46:55 --- join: ncv__ (~neceve@2a02:c7d:c5c9:a900:1ec6:932f:1b02:d27e) joined #forth 01:46:55 --- quit: ncv__ (Changing host) 01:46:55 --- join: ncv__ (~neceve@unaffiliated/neceve) joined #forth 03:37:51 --- quit: nighty- (Quit: Disappears in a puff of smoke) 04:17:21 --- join: dddddd (~dddddd@unaffiliated/dddddd) joined #forth 05:03:49 --- quit: Zarutian_PI (Read error: Connection reset by peer) 05:04:45 --- join: Zarutian_PI (~3.1415@173-133-17-89.fiber.hringdu.is) joined #forth 05:58:18 --- join: lijero (~lijero@unaffiliated/lijero) joined #forth 06:01:49 --- join: nighty- (~nighty@s229123.ppp.asahi-net.or.jp) joined #forth 07:14:59 so I have a syntactical dilemma 07:17:23 I thought (and still do think) it would be nice to get rid of the create word and instead split up creating words and defining what they are into two parts. : now just defines a new word, and then you follow it up with something that describes what it is - e.g., : foo var ; : #page 4096 const ; : pagealign does #page aligned ; 07:18:05 the semicolon is necessary because it reveals the word being defined (like in the example of foo, foo isn't visible until after the semicolon) 07:19:24 but it turns out this is really tedious when writing defining words, like : :const does , does @ ; ( <-- this is wrong, because "69 :const xyz" will never reveal xyz ) 07:19:43 so you have to use : :const does , [postpone] ; does @ ; 07:20:18 so now I'm thinking does should reveal a word (the inner does; outer does still wouldn't so that a word's definition can't refer to itself just like in traditional forth) 07:20:44 bah, this is getting too long to explain 07:20:53 I haven't even gotten to the dilemma yet 07:21:02 maybe I should just say nevermind and sorry for the spam 07:24:46 long story short, the problem is with nested definitions and modifiers like export (you'd normally follow a word with "export" to make it visible outside of the given module) 07:25:59 like to define a struct - : #vector { : vector.x cell field export ; : vector.y cell field export ; : vector.z cell field export ; } ; export ( the fields' exports have to appear before the semicolon because outside of it, export would apply to #vector instead of to the field word) 07:26:39 that's ugly to begin with, but then if field reveals the word then it would be impossible entirely to export the field names 07:33:04 maybe the answer is just to come up with a way of nested definitions inheriting the export property from their parent 07:40:31 you wouldn't even need true nesting. could e.g. compile the field accessors to a separate wordlist and have the structure name word add that to the search order 07:41:16 and then the accessor does its thing and reverts the search order 07:42:59 heh, that sounds similar to something I was playing around with like a year ago when I was just first getting into forth (not that I've come very far since then) 07:43:18 maybe you're right though: maybe the problem is that I'm trying to implement this nesting business. 07:46:42 allowing nesting could work too; it just doesn't seem strictly necessary there 07:47:35 yeah, it's not. I guess I thought it was because that's how it looks syntactically, but it really isn't 07:50:04 you could also structure your dictionary in a way that lets you cons definitions onto the end of it without revealing and then update some pointer or whatever to do a bulk reveal 08:03:09 well reveal is not really the issue, but rather "how do words like immediate or export know what's the currently-active definition to apply to". I guess the issue is that removing the tedium of explicit reveal breaks that 08:05:31 yeah I think I need to revisit my whole "struct" notation and intention from scratch. thanks! 08:29:02 --- quit: Zarutian_PI (Ping timeout: 260 seconds) 08:51:10 --- join: Zarutian_PI (~3.1415@173-133-17-89.fiber.hringdu.is) joined #forth 09:19:15 --- join: gravicappa (~gravicapp@ppp83-237-166-37.pppoe.mtu-net.ru) joined #forth 09:39:46 --- quit: dys (Ping timeout: 252 seconds) 10:16:06 --- quit: ncv__ (Ping timeout: 256 seconds) 10:17:16 --- quit: karswell_ (Read error: Connection reset by peer) 10:22:02 --- join: Labu (~mik@mvice.pck.nerim.net) joined #forth 11:00:19 --- join: ncv__ (~neceve@2a02:c7d:c5c9:a900:1ec6:932f:1b02:d27e) joined #forth 11:00:25 --- quit: ncv__ (Changing host) 11:00:25 --- join: ncv__ (~neceve@unaffiliated/neceve) joined #forth 13:04:21 --- quit: gravicappa (Ping timeout: 268 seconds) 13:46:22 --- join: dys (~dys@tmo-100-208.customers.d1-online.com) joined #forth 14:16:07 --- quit: Labu (Quit: Leaving.) 14:21:10 --- quit: dddddd (Ping timeout: 240 seconds) 14:23:22 --- join: dddddd (~dddddd@unaffiliated/dddddd) joined #forth 14:36:52 --- quit: Darksecond (Read error: Connection reset by peer) 14:41:05 --- join: Darksecond (~darksecon@a82-94-53-70.adsl.xs4all.nl) joined #forth 14:41:21 --- join: Gromboli (~Gromboli@static-72-88-80-103.bflony.fios.verizon.net) joined #forth 14:53:46 --- quit: dys (Ping timeout: 256 seconds) 14:56:28 --- join: dys (~dys@tmo-106-77.customers.d1-online.com) joined #forth 15:08:02 --- quit: ncv__ (Ping timeout: 240 seconds) 15:29:02 --- quit: dys (Ping timeout: 260 seconds) 16:48:14 --- quit: dddddd (Ping timeout: 256 seconds) 16:52:22 --- join: nighty-- (~nighty@kyotolabs.asahinet.com) joined #forth 17:10:38 --- join: dddddd (~dddddd@unaffiliated/dddddd) joined #forth 18:33:06 so on the subject of activating and deactivating purpose-specific wordlists (like koisoke's suggestion for my structure notation earlier) - what's the general feeling regarding that sort of stuff? 18:34:00 I had originally written my assembler to do that. code would push an assembler vocabulary onto the context stack which also overrides ; to compile a next and pop the assembler vocabulary, but I decided against it and changed that 18:34:33 there have been a couple of other instances where that's crossed my mind (particularly to abuse for overriding certain words in certain contexts), but I'm not sure I'm okay with it 20:01:51 --- quit: Gromboli (Quit: Leaving) 20:27:29 --- quit: dddddd (Remote host closed the connection) 21:35:04 --- quit: lijero (Remote host closed the connection) 23:59:59 --- log: ended forth/18.01.31