[00:16:30] * fuzzyhorns [fuzzyhorns!~fuzzyhorn@c-73-38-57-191.hsd1.ma.comcast.net] has joined the channel. [00:17:18] * delvinj [delvinj!~delvinj@2601:449:4001:5400:81d6:8ec4:3b40:11a0] has joined the channel. [00:29:11] * evincar [evincar!~jonathanp@208.87.56.202] has quit (Ping timeout: 272 seconds). [00:35:12] * fuzzyhorns [fuzzyhorns!~fuzzyhorn@c-73-38-57-191.hsd1.ma.comcast.net] has quit (Quit: Leaving.). [00:47:22] * delvinj [delvinj!~delvinj@2601:449:4001:5400:81d6:8ec4:3b40:11a0] has quit (Quit: bye for now.). [01:41:42] * fuzzyhorns [fuzzyhorns!~fuzzyhorn@c-73-38-57-191.hsd1.ma.comcast.net] has joined the channel. [03:38:37] * fuzzyhorns [fuzzyhorns!~fuzzyhorn@c-73-38-57-191.hsd1.ma.comcast.net] has quit (Quit: Leaving.). [03:45:08] * fuzzyhorns [fuzzyhorns!~fuzzyhorn@c-73-38-57-191.hsd1.ma.comcast.net] has joined the channel. [03:48:37] * fuzzyhorns [fuzzyhorns!~fuzzyhorn@c-73-38-57-191.hsd1.ma.comcast.net] has quit (Client Quit). [04:38:23] * rgrinberg [rgrinberg!~rgrinberg@24-246-56-85.cable.teksavvy.com] has quit (Ping timeout: 260 seconds). [06:37:29] * jtimon [jtimon!~quassel@4.28.134.37.dynamic.jazztel.es] has quit (Ping timeout: 240 seconds). [10:21:01] * groovy2shoes [groovy2shoes!~groovy2sh@unaffiliated/groovebot] has quit (Quit: Leaving). [11:58:46] * fuzzyhorns [fuzzyhorns!~fuzzyhorn@c-73-38-57-191.hsd1.ma.comcast.net] has joined the channel. [12:14:42] * rgrinberg [rgrinberg!~rgrinberg@24-246-56-85.cable.teksavvy.com] has joined the channel. [12:31:28] * fuzzyhorns [fuzzyhorns!~fuzzyhorn@c-73-38-57-191.hsd1.ma.comcast.net] has quit (Quit: Leaving.). [13:06:33] * jtimon [jtimon!~quassel@4.28.134.37.dynamic.jazztel.es] has joined the channel. [14:00:55] * delvinj [delvinj!~Miranda@173-160-116-46-Minnesota.hfc.comcastbusiness.net] has joined the channel. [18:18:11] * Carisius [Carisius!~Carisius@cm-188-171-4-60.telecable.es] has joined the channel. [19:02:08] * Carisius [Carisius!~Carisius@cm-188-171-4-60.telecable.es] has quit. [19:22:29] 33d5ece Björn Lindqvist: VM: refactor a struct into a c++11 lambda [19:22:30] 6b95813 Björn Lindqvist: VM: refactor the immediate_p check out of visit_pointer() [19:22:31] 6984bae Björn Lindqvist: VM: rename of JIT_PUSH_IMMEDIATE to JIT_PUSH_LITERAL [20:02:31] * ii-v [ii-v!~Thunderbi@h161n2-vb-v-d1.ias.bredband.telia.com] has joined the channel. [20:26:36] * ii-v [ii-v!~Thunderbi@h161n2-vb-v-d1.ias.bredband.telia.com] has quit (Ping timeout: 264 seconds). [20:47:32] * evincar [evincar!~jonathanp@208.87.56.202] has joined the channel. [20:53:26] * Pastaf [Pastaf!~pastaf@unaffiliated/pastaf] has quit (Ping timeout: 272 seconds). [20:59:50] * rgrinberg [rgrinberg!~rgrinberg@24-246-56-85.cable.teksavvy.com] has quit (Ping timeout: 276 seconds). [21:38:39] yo [21:39:20] i'm thinking of making all definitions CAPS: .. ; and making the ; optional, except for : .. ; [21:40:41] each word knows its own arity. new CAPS: would interrupt the current definition and start a new one. so CONSTANT: CONSTANT: a 1 would make an empty CONSTANT: that would check for two params and throw a parse error [21:41:12] then IN: foo works still, and everything looks basically like it did before but you still dont need parsing words [21:42:31] CONSTANT: a b c CONSTANT: z 2 would throw a parse error on the first CONSTANT: for having too many args [21:42:53] and ; is optional for CAPS: words [21:43:04] i dunno [21:45:42] * rgrinberg [rgrinberg!~rgrinberg@TOROON12-3096782042.sdsl.bell.ca] has joined the channel. [22:17:18] * fuzzyhorns [fuzzyhorns!~fuzzyhorn@c-73-38-57-191.hsd1.ma.comcast.net] has joined the channel. [22:24:17] erg: The semicolon provides useful redundancy for error messages. [22:24:55] E.g., "got 2 arguments, expected 1". [22:30:16] How else would you differentiate an extra argument from a regular word call? [22:33:23] evincar: all top level code is CAPS:, or else it's an error. so anything before the first CAPS: or between CAPS: ... ; forms is an error [22:34:44] I see. [22:34:53] now for CAPS: words, either they end in a ; or get interrupted by another CAPS: form which can't nest. semi case is boring, but if they get interrupted, if they have a fixed arity like CONSTANT: expecting 2 args, then if they get 0,1 arg then file ended or top level form interrupted. if they get 3+ then it's an error on arity check [22:35:29] Sounds reasonable then. [22:35:55] and if we hardcode : ... ; as required semicolon, then you dont really lose anything and you dont get ugly code like : 1+ ( a -- b ) 1 + : 2+ ( a -- b ) 2 + ... [22:36:51] that's for a module file. for a script file, you can have code wherever i suppose [22:40:17] i could even require a semicolon if the definition has 3+ tokens [22:42:29] just want the common cases of ``IN: vocab`` and ``CONSTANT: label value`` to work [22:44:47] * fuzzyhorns [fuzzyhorns!~fuzzyhorn@c-73-38-57-191.hsd1.ma.comcast.net] has quit (Quit: Leaving.). [22:48:25] * fuzzyhorns [fuzzyhorns!~fuzzyhorn@c-73-38-57-191.hsd1.ma.comcast.net] has joined the channel. [22:57:22] * fuzzyhorns [fuzzyhorns!~fuzzyhorn@c-73-38-57-191.hsd1.ma.comcast.net] has quit (Quit: Leaving.). [23:49:03] erg: does that work for tuples? I don't think ; can be optional for TUPLE: ? [23:53:02] Sonderblade: i think what has to happen is that nothing knows about arity, just that CAPS: words can interrupt each other. lex everything. then in another pass do the arity rules. any word that doesn't have the right arity throws an error, and if a word doesn't have an arity, then a semi is required [23:53:32] * delvinj [delvinj!~Miranda@173-160-116-46-Minnesota.hfc.comcastbusiness.net] has quit (Quit: it's the end). [23:56:48] * fuzzyhorns [fuzzyhorns!~fuzzyhorn@c-73-38-57-191.hsd1.ma.comcast.net] has joined the channel. [23:57:54] erg: so one full scan of the file before the syntax words become "live"?