6macros: discussing the finer points of Perl 6 macros, Qtrees, and how to stay sane | irclog: irclog.perlgeek.de/6macros/today
Set by moderator on 28 July 2015.
02:25 FROGGS_ joined 07:54 FROGGS joined 09:01 FROGGS joined 09:40 Ven joined
Ven o/ 09:40
masak: I thought I had linked some here, but apparently not – whoops! It's a scheme / racket-style system, at least 09:41
masak what is? that felt like a reply to something, but I don't know what 14:57
16:17 Ven joined
Ven masak: yes, 'twas a reply to the rust macro link 16:21
masak aha; Rust's macro system is a scheme/racket-style one? 16:24
I think I rejected that interpretation because I found it unlikely, for some reason :)
Ven yes, "templates" 16:27
at least macro_rules :) 16:28
well, it's more racket-ish than scheme-ish, because it allows more IIRC 16:29
> Rust's AST is untyped for two reasons, I think (though I'm not a Rust dev). First, type inference may depend on the expansion of macros, procedural or otherwise, and so the pre-expanded AST can't be fully typed properly. Second, the type system provides the fundamental soundness guarantees that Rust relies on, and typechecking must be run after all AST manipulations are finished. This is why the AST doesn't have access to Rust's seman 16:30
masak cut off at "Rust's semant" 16:57
Ven > access to Rust's semantic type information. 16:59
mmh, didn't cut off in the web client
masak well, the quote makes sense 17:00
18:53 vendethiel- joined 19:19 FROGGS joined 19:34 vendethiel joined
masak is on a roll tonight with the 007 commits 21:08
vendethiel haha. cute implementation of @ :) 21:14
masak it's coming along :) 21:15
the code is a tad repetitive so far, but I'm hoping to improve on that once I have more Q types covered
it feels like there should be some factoring that just puts everything in a hash, like we talked about
vendethiel yeah, that seems feasible 21:17
"@" <.ws> <name=...> '{' <.ws> <::(%rules{$<name>} // die "No such Q type: $<name>"> <.ws> '}' 21:18
masak sump'n like that 21:19
wacky idea #27: convert the 007 source code into a form where it regularly sets state in a global hash. have the program dump the hash at the end. randomly produce/twiddle/evolve 007 programs with the goal of getting as much "coverage" in terms of new states set in the hash. 23:03
inspired by en.wikipedia.org/wiki/American_fuz...p_(fuzzer) 23:04