17:38 Ven`` joined 18:16 Ven`` left 18:19 Ven`` joined 18:33 Ven`` left 18:48 Ven`` joined
masak lucasb: I would tend to agree, except in all other aspects so far, 007 has managed to keep whitespace insignificant 19:36
arguably, it's a little bit different *while parsing an identifier*, though 19:37
the latest thing to really surprise me wrt whitespace insignificance: github.com/masak/007/issues/409 19:38
(simply because I never write my function calls with a space)
lucasb with regard the emit-stmt multis in js backend, I was mistaken, they are nested subs inside the method, so I guess it was your intention 19:51
masak yes, although having them after the return statement is admittedly a bit idiosyncratic 19:53
I regret a little bit that I/we haven't gotten further on the JS backend. it shouldn't be all that hard, actually. 007 is still a small language. 19:54
'sides, minor semantic differences (for example in Ints/numbers) should be tolerable 19:55
lucasb I would like to ask some questions, if you don't mind. It's ok if you leave them unanswered, don't mind if you're busy! :) 19:58
does "Val::" stands for... "value" ? 19:59
it's like all language values are... "Val::" type?
it's what you call "runtime values"? 20:01
they are only needed because you've build an interpreter, right? If you just wanted a a compiler (for ex. to JS), then you wouldn't need those types? Is this correct?
if you only wanted a compiler, only the Q:: types would be needed. Is it? 20:02
the Q:: types are the nodes in the AST? 20:04
it's like NQP's QAST then?
masak the Val:: type hierarchy is a bit artificial -- but (to a first approximation) any value found inside of a running 007 program should be either from Val:: or from Q:: 20:05
#242 eliminated that artificial distinction, but it never merged 20:06
"runtime values" is a good lie-to-children -- of course Val:: values can be compile-time and Q:: values can be runtime, too 20:07
yes, the Q:: types are all participants in the AST, like NQP's QAST. the "Q" in Q:: is partly named that way due to the name "QAST" 20:08
(and "QAST", as we all know, is named after the infamous Quantum Michaud)
again, note that we often find Val:: values inside of Qtrees also; for example, the .name inside of a Q::Identifier is a Val::Str 20:09
lucasb ah yes, I noticed, the Q:: types was wrappers around Val:: ones 20:10
masak an example of what I didn't expect from the get-go :P 20:12
lucasb thank you for explaing, masak! 20:13
masak here's my very latest idea of a way to implement Val:: and Q:: -- any 007 value can do a subset of these four things: (a) get type(o), (b) get a property like o.foo, (c) index, like o[ix], (d) call, like o(...) 20:15
from that, everything else should follow. specifically, there'd be no more need for Val::
Q:: would still exist, but be defined completely inside that object-land, not inside Perl 6
22:22 Ven`` left