Perl 6 - the future is here, just unevenly distributed

IRC log for #6macros, 2015-11-14

| Channels | #6macros index | Today | | Search | Google Search | Plain-Text | summary

All times shown according to UTC.

Time Nick Message
02:22 FROGGS_ joined #6macros
02:48 ilbot3 joined #6macros
05:06 pdcawley joined #6macros
05:54 ilbot3 joined #6macros
06:25 ilbot3 joined #6macros
11:46 vendethiel joined #6macros
11:46 vendethiel \o
12:21 vendethiel joined #6macros
12:24 masak o/
12:27 vendethiel it's not scheme btw, it's clojure quasiquoting :P (answering yesterday's last remark)
12:30 masak ah, of course.
12:30 masak I'm thinking of putting together a gist (as suggested) "why Perl 6 `quasi` ASTs seem to need to have a lexical scope"
12:55 vendethiel please do :)
14:49 masak ok, here we go
14:49 masak I didn't have time to proof, and I didn't have time to write a summary
14:49 masak but here it is -- https://gist.github.com/masak/978d6e7c0ad131da0334
14:50 masak pdcawley: you might want to have a look, too ^
14:51 masak detrain &
15:00 vendethiel "macro arguments ASTs", "quasi ASTs" no, those should be *exactly the same*
15:01 vendethiel if foo is a macro, then the result from foo(a, b, c)
15:01 vendethiel should be the same as if foo were a function, and you called foo(quasi { a }, quasi { b }, quasi { c })
15:10 vendethiel also, I understand why perl6's operators are subs and not methods, but I dislike it
15:10 vendethiel because that means this:
15:11 vendethiel macro add(a, b){quasi{a+b}}; { sub infix:<+>(Klass, Klass) { ... }; add(Klass.new, Klass.new); }
15:11 vendethiel will not work as expected
15:12 vendethiel it's a bit like perl6 gets the worse of both worlds in that regard... We have custom operators, but we can't pass array-like structures, or otherwise we have to invent workarounds like "AT-INDEX"
15:13 vendethiel so, yeah, my bit about clojure was mostly about that quasi capturing: I learned to see why
15:14 vendethiel Just like clojure's reader (and others) walks to prepend the namespace to its identifiers, perl6 marks its quasi variables as lexical.
15:14 vendethiel but, since we have a way around that in clojure, and we'll need one if we want to break hygiene, we need one such way as well in perl6
15:16 vendethiel I'm not gonna go back to the "times" discussion we had before. There's an interesting fact I'm going to point at, though: in racket, if you want to be able to use "foo" in another level (template/syntax ...), you need to (require (for-syntax ...))
15:17 vendethiel each "execution level" has its own lexical scope. Like a 3d matrix
15:18 vendethiel in perl 6, that ship sailed long ago: we already have "other times" (obviously BEGIN and al), and they share the lexical scope
15:54 Ven joined #6macros
15:56 Ven joined #6macros
16:12 Ven joined #6macros
16:41 Ven joined #6macros
16:56 Ven joined #6macros
17:12 Ven joined #6macros
17:27 Ven joined #6macros
17:41 Ven joined #6macros
18:12 Ven joined #6macros
18:48 Ven joined #6macros
18:57 Ven joined #6macros
19:00 Ven joined #6macros
19:17 FROGGS joined #6macros
19:28 Ven joined #6macros
20:11 Ven joined #6macros
20:13 Ven joined #6macros
20:24 Ven joined #6macros
20:42 Ven joined #6macros
20:59 Ven joined #6macros
21:12 Ven joined #6macros
21:45 Ven joined #6macros
22:01 Ven joined #6macros
22:12 Ven https://github.com/vendethiel/hydra‚Äčte6/blob/master/lib/Hydrate.pm#L20
22:13 Ven joined #6macros
22:13 Ven I really don't like flattening :(. the whole containerization thing is often veeery confusing
22:14 Ven the fact I can't just blindly any() is also a gotcha you need to be aware.
22:14 Ven perl 6 has quite a few corner cases
22:37 Ven joined #6macros
22:44 Ven joined #6macros
22:58 Ven joined #6macros
22:59 Ven joined #6macros
23:13 Ven joined #6macros
23:32 Ven joined #6macros
23:44 Ven joined #6macros

| Channels | #6macros index | Today | | Search | Google Search | Plain-Text | summary