Perl 6 - the future is here, just unevenly distributed

IRC log for #6macros, 2015-10-18

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

All times shown according to UTC.

Time Nick Message
01:45 masak ok, so no prior art, then.
01:45 masak but it *is* what naturally falls out of (a) we process macros ASAP when we know all the parts and (b) unquotes are parts that we don't know yet.
01:45 masak ah; I've seen http://bracha.org/pluggableTypesPosition.pdf before -- think jnthn++ linked to it
01:45 * masak reads it now, as it's a short read
01:48 ilbot3 joined #6macros
01:51 masak ugh. the paper is not proof-read enough. :/
01:57 masak "The austere discipline of optional typing forces [a] more minimalist and simple language design, to the benefit of the system as a whole." -- I can feel this effect in action in 007
01:58 masak "every feature tends to effect every other feature" -- ffs, Bracha! :(
02:11 masak ok, finished reading the paper
02:11 masak it contains a review of mandatory/optional type systems
02:11 masak and then two ideas
02:11 masak "what if type systems were pluggable?"
02:12 masak and "what if type inference strategies were pluggable?"
02:14 masak it doesn't develop either idea particularly, although it does suggest that the program AST could be annotated from the outside with type information
02:14 masak I believe that's a good idea, and one we should probably make use of for 007
02:15 masak for that to work, 007 needs two things, as far as I can see:
02:15 masak (a) a way to navigate from every use to the corresponding definition -- something that's on the roadmap for Qtree introspection anyway
02:17 masak (b) a way to map from Qtree nodes to type annotation information. hashing algorithm aside, that means Qtree nodes need unique IDs. but that was probably inevitable anyway.
02:19 masak Ven, vendethiel: this was flagged up in my twitter stream this morning: http://arxiv.org/pdf/1510.03726v1.pdf -- you might find it interesting, too.
05:12 ilbot3 joined #6macros
08:10 masak er. crucially, the type thing in `{{{fn: Q::Statement::Sub}}}` is *not* a type annotation.
08:10 masak and I don't see that it can be outside of core the way the rest of the typing syntax/framework can be.
08:11 masak I think the easiest way to manage it is to just make it a core part of the unquote syntax.
08:49 Ven joined #6macros
08:50 vendethiel joined #6macros
09:31 vendethiel cargo-culting form perl 6 :P
09:32 masak from hypothetical Perl 6 :P
09:32 masak oh, or you meant the accidental typing of "say expr" all the time?
09:33 masak yes, grr!
09:33 masak it's in my fingers somehow. and I still don't want to add listop call syntax :)
09:39 vendethiel I did, yes :P
09:42 vendethiel kebabcase \o/
09:42 masak I'm having another nice hacking/tinkering day with 007 here :)
09:42 masak will be quite busy next week, though
09:42 masak hoping to still get some tuits with quasis and unquotes and stuff
09:45 vendethiel I need to finish implementing my PR. only the runtime value is missing right?
09:49 FROGGS_ joined #6macros
09:57 * masak checks
09:59 masak in https://github.com/vendethiel/007/commit/​f26825839dec584d252ff1e5c7a051a5b6481efa -- I don't think you need an .eval on Q::Propery, because it's not first-class
10:00 masak also, I'd still be very much interested in a s:g/pair/property/ rename, for consistency
10:00 masak (not a merge blocker, though. I'm prepared to merge it and then change it meself)
10:00 masak your branch seems to need a rebase. do you want me to do one?
10:02 masak in https://github.com/vendethiel/007/commit/​d19058c2dde5ea79292906c70b714480475bc544 , I think it should be Q::Sub, not Q::Block. except we don't have a Q::Sub...
10:02 masak the thing that feels wrong to me about Q::Block is that I feel it should have a name, since the sugar `{ fn() { ... } }` is short for `fn: sub fn() { ... }`
10:03 masak all this indicates that we should get a Q::Sub (Q::Literal::Sub?) and also get subs-as-expressions, which there has been some pressure to get for some time now.
10:04 masak but if you don't want to do that in this branch (since it's fairly unrelated), then please keep it as Q::Block, and we'll fix it later.
10:04 masak vendethiel++
10:09 vendethiel it shouldn't be a Q::Sub, because those imply lexical presence, from what I've seen
10:10 vendethiel correct me if I'm wrong
10:10 masak but the methods in objects do close over their surrounding scope
10:11 masak (as do blocks, by the way)
10:11 vendethiel they do
10:11 vendethiel but the name is not present lexically
10:11 masak or did you mean "registers in the surrounding lexical scope"?
10:11 vendethiel ^ rather t hat
10:11 masak yeah, that's what I was thinking would be different with Q::Sub
10:11 masak mirroring JavaScript
10:11 vendethiel {fn(){}} mirroring {fn: sub fn(){}) <- doesn't the latter have the name lexically installed?
10:12 masak i.e. `var blahoo = function twigzwat() { };` -- `blahoo` gets installed in the surrounding scope; `twigzwat` doesn't
10:12 masak though `twigzwat` is still a visible name from within that function
11:52 Ven joined #6macros
11:53 Ven_ joined #6macros
12:50 vendethiel joined #6macros
14:34 Ven_ joined #6macros
14:35 Ven_ joined #6macros
14:54 Ven_ joined #6macros
15:10 Ven joined #6macros
15:44 Ven joined #6macros
15:47 vendethiel joined #6macros
16:13 Ven joined #6macros
16:26 Ven joined #6macros
16:37 Ven joined #6macros
17:38 Ven joined #6macros
17:54 Ven joined #6macros
18:07 Ven joined #6macros
18:58 Ven joined #6macros
19:17 Ven joined #6macros
19:26 Ven joined #6macros
19:45 Ven joined #6macros
19:54 vendethiel joined #6macros
20:49 vendethiel > "every feature tends to effect every other feature" -- ffs, Bracha! :(
20:49 vendethiel masak: I believe "effect" is right here :-).
20:50 vendethiel "effect (verb): To make or bring about; to implement."
20:52 vendethiel who knows
20:52 vendethiel anyway, sorry for the backlog delay :)
23:34 masak I know "effect" can be used in that way. there's an xkcd strip about it: https://www.xkcd.com/326/
23:35 masak but "affect" would have made more sense in Bracha's text.
23:36 masak as in "there are interdependencies such that every feature has some influence on all the other features"

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