|
»ö« Welcome to Perl 6! | perl6.org/ | evalbot usage: 'perl6: say 3;' or rakudo:, niecza:, std:, or /msg p6eval perl6: ... | irclog: irc.perl6.org/ | UTF-8 is our friend! Set by sorear on 4 February 2011. |
|||
|
00:02
MayDaniel left
00:04
ChoHag left
00:08
jaldhar_ left
00:10
dayangkun joined
00:12
ChoHag joined,
havenn left
00:13
havenn joined,
kurahaupo left
00:15
havenn_ joined,
havenn left,
jaldhar_ joined
00:17
havenn joined
00:20
havenn_ left,
fgomez joined
00:26
havenn left
00:30
Khisanth joined,
Chillance left
00:35
plobsing joined
00:42
sudokode left
00:48
stocks joined
00:55
anuby joined
01:03
bowtie left
01:09
hypolin joined
01:42
leont left
02:08
meilin joined
02:13
dayangkun left
|
|||
| meilin | ? | 02:19 | |
|
02:20
meilin left
02:23
skids joined
03:00
larks left
03:02
larks joined
03:12
orafu left,
orafu joined
03:16
topo` left
03:25
dayangkun joined
03:26
tokuhiro_ left,
tokuhiro_ joined
03:31
tokuhiro_ left
03:38
larks left,
larks joined
03:39
meilin joined
03:40
meilin left
03:45
havenn joined
03:47
havenn left
03:48
havenn joined
03:52
havenn left
04:02
[particle]1 joined
04:04
[particle] left
04:08
gootle joined
04:29
stocks left
04:36
havenn joined
04:47
chinese_man joined
04:48
chinese_man left
05:05
kaleem joined
05:24
CharellKing joined
|
|||
| CharellKing | which browser are you using? | 05:24 | |
| sorear | chrome and elinks | 05:26 | |
|
05:33
telex left
05:39
telex joined
05:41
sudokode joined
05:44
meilin joined
05:45
kaleem_ joined
05:46
kaleem left
05:47
birdwindupbird joined
05:55
grondilu left
06:02
benabik joined,
wk left
06:09
meilin left
06:10
CharellKing left
06:18
minmax joined,
wtw left
|
|||
| minmax | moritz: ping | 06:20 | |
| moritz | minmax: pong | 06:24 | |
| jnthn: iirc FROGGS volunteered for the next rakudo release | |||
| minmax | moritz: is there a way to run perl6 expressions in a REPL via a webservice? | ||
|
06:25
minmax is now known as azawawi
|
|||
| azawawi | :) | 06:25 | |
| or better use the local perl6 REPL | 06:26 | ||
|
06:26
meilin joined
|
|||
| azawawi | basically i want to put a perl6 REPL inside farabi6 :) | 06:26 | |
| moritz | azawawi: try.rakudo.org contains some code that does that | 06:27 | |
| azawawi | im actually looking at it... github.com/moritz/try.rakudo.org/b...-rakudo.pl | ||
| sjohnson | hi | 06:28 | |
| azawawi breakfast & | |||
| moritz: thanks :) | |||
| cotto | general question from Parrotland: I see an old branch from chromatic that implements timely destruction and seem to remember that being something that Rakudo cares about. | 06:39 | |
| Does Rakudo care about this, and if so what's a good way to test that it does what Rakudo needs? | |||
| sorear | how timely is it, and how fast is it? | 06:40 | |
| running a full mark/sweep cycle every time a variable is set is not something Rakudo wants | 06:41 | ||
| cotto | github.com/parrot/parrot/compare/m...rly_pmc_gc | ||
| It's smarter than that, though it assumes that any GCables in need of early destruction will be in the most recent generation. | |||
| sorear | also it assumes that GCables in need of early destruction will never be referenced from the remembered set | 06:43 | |
| moritz | cotto: rakudo wants that, because otherwise we don't have a way to close files whose handles go out of scope | ||
|
06:44
wtw joined
|
|||
| moritz | my $f = open 'file', :w; $f.say: "some content"; # oops, empty file created, because $f is never closed | 06:44 | |
| sorear | I do not like scope-related file closing; niecza will (may or may not currently) flush files on GC or at program exit, whichever comes first | 06:46 | |
| I really hope what you just did didn't constitute a binding decision on all p6 implementations | 06:47 | ||
|
06:50
wtw left
|
|||
| cotto | looks like it requires the previously-useless needs_destroy pir op, which nqp and Rakudo unsurprisingly don't make use of | 06:50 | |
| moritz | sorear: I didn't decide anything. I just want the .close to happen not too late after the scope exit, doesn't need to be immediately | 06:54 | |
| cotto | moritz, isn't that a separate issue? The destructor should get called at some point. | 06:56 | |
| rt? | |||
| moritz | cotto: yes, and the sooner the better | ||
|
06:57
wtw joined
|
|||
| moritz | though maybe the main motivation behind that branch was something else; pmichaud probably remembers | 06:57 | |
| cotto | I'll try to catch him. | 06:58 | |
| sorear | moritz: how late is 'too late'? | 06:59 | |
|
07:01
azawawi left
07:02
SamuraiJack joined
|
|||
| moritz | sorear: the later the worse | 07:32 | |
| sorear: if it surprises the user, it's too late | 07:33 | ||
| sorear | _anything_ we do will suprise users. | 07:36 | |
| will surprise somebody, I mean | |||
| moritz | so the goal is to surprise few people | 07:38 | |
|
07:40
jaldhar_ left
|
|||
| moritz | just because we can't achieve perfection doesn't mean we shouldn't try | 07:41 | |
|
07:41
mucker joined
|
|||
| sorear | there's a local optimum and beyond that you'll cause people to say "I can't beleive how stupid that implementation is" | 07:43 | |
| in the general case, detecting a dead file handle requires a major collection | 07:44 | ||
| if the heap is pretty big and a major collection needs 300ms, then to detect and close a file handle within 3 seconds would require spending 10% of CPU time on detecting file handles to close | 07:45 | ||
| assuming a CPU-intensive task | |||
|
07:58
kurahaupo joined
|
|||
| cotto throws a surprise party, but only for moritz | 08:01 | ||
|
08:02
telex left
08:04
telex joined
08:05
brrt joined
08:07
GlitchMr joined
08:13
wk joined
|
|||
| brrt | msg [Coke] the fix in parrot was merged, you should be able to build nqp now | 08:14 | |
|
08:15
flightrecorder joined
08:21
domidumont joined,
FROGGS joined,
am0c joined
08:25
domidumont left
08:27
marloshouse_ left,
domidumont joined
08:29
pmichaud_ joined
08:31
CharellKing joined,
pmichaud left,
havenn left
|
|||
| CharellKing | I use opera,chrome,firefox | 08:31 | |
| Elink maybe be too stupid | 08:32 | ||
|
08:33
marloshouse joined,
mucker left
08:34
meilin left
|
|||
| moritz | \o/ cotto++ | 08:35 | |
| brrt | \o moritz | 08:37 | |
| moritz | o/ brrt | ||
| brrt: fwiw in #perl6 you can use phenny to send messages with 'phenny, tell [Coke] ...' | 08:38 | ||
| msg won't work here | |||
| brrt | ok | ||
| i believe he already saw it | |||
| judging by the github thread | |||
|
08:40
fhelmberger joined
08:42
marloshouse left,
marloshouse joined
08:44
marloshouse left,
marloshouse joined
08:46
marloshouse left
08:47
marloshouse joined
08:53
kurahaupo left
08:54
domidumont left
08:55
domidumont joined
08:58
azawawi joined
|
|||
| azawawi | hi | 08:58 | |
| azawawi reads perl 6 book | 09:04 | ||
|
09:07
dayangkun left
|
|||
| jnthn | The reliable way to handle stuff that should happen at scope exit in Perl 6 is to have it triggered by LEAVE | 09:09 | |
|
09:16
cognominal joined
|
|||
| CharellKing | hi everyone | 09:26 | |
| azawawi | CharellKing: hi | 09:27 | |
|
09:28
grondilu joined
|
|||
| grondilu created rosettacode.org/wiki/SHA-256 | 09:28 | ||
| tadzik | wow | 09:29 | |
| arnsholt | o/ | ||
| tadzik | \o | 09:30 | |
| brrt | impressive grondilu | 09:31 | |
| tadzik | grondilu: so, is that a module already? :) | ||
| jnthn | r: my $x = 42; say Q{lol $x!}; say Q:s{lol $x!}; | 09:32 | |
| p6eval | rakudo c45b02: OUTPUT«lol $x!lol 42!» | ||
| grondilu | it's more or less what I had written in github.com/grondilu/libdigest-perl6 but it's a bit too messy to submit ot the ecosystem. | ||
| brrt likes the pressence of LoL, Cat, and Rat in p6 | 09:33 | ||
| although Cat() isn't implemented? | 09:34 | ||
| r: say LoL.new(Rat()).perl | 09:35 | ||
| p6eval | rakudo c45b02: OUTPUT«LoL.new(0/1)» | ||
| jnthn | Wow, it even declares an infix to use it in a metaop :) | ||
| grondilu++ | |||
| brrt | r: say Cat().perl | ||
| p6eval | rakudo c45b02: OUTPUT«===SORRY!===CHECK FAILED:Undefined routine '&Cat' called (line 1)» | ||
| jnthn | No Cat yet. | ||
|
09:37
imarcusthis left
09:39
hoelzro|away is now known as hoelzro
09:44
domidumont left
09:49
woosley left
09:57
domidumont joined
09:59
Woodi left
10:06
imarcusthis joined
10:07
hypolin left
10:11
anuby left
|
|||
| CharellKing | It's time to go off work | 10:12 | |
| ByeBye | |||
|
10:13
CharellKing left
10:16
SamuraiJack left,
SamuraiJack joined,
leont joined
10:32
MayDaniel joined
10:34
azawawi left
10:43
MayDaniel left
10:45
dayangkun joined
10:50
rindolf joined
10:58
flightrecorder left
10:59
flightrecorder joined,
grondilu left
11:00
fhelmberger left
11:12
hoelzro is now known as hoelzro|away
11:15
brrt left,
spider-mario joined
11:19
sorenso joined
11:31
leont left
|
|||
| masak | r: macro twice($code) { quasi { {{{$code}}}; {{{$code}}} } }; my $x; BEGIN { $x = 0 }; twice $x++; BEGIN { say $x }; say $x | 11:32 | |
| p6eval | rakudo c45b02: OUTPUT«00» | ||
| masak | hm. | ||
|
11:33
MayDaniel joined
11:38
cognominal left
|
|||
| arnsholt | masak: Is 1830 or so a good time for us to meet in Malmö tonight? | 11:41 | |
| masak | dude, that's like 178 years ago. | 11:43 | |
| (yes, that time worksforme) | 11:44 | ||
| jnthn | wtf too | ||
| er, wfm! | |||
| jnthn will also arrive by train | 11:45 | ||
| So malmo centralstation is probably a good place to meet | |||
| masak | aye. | 11:46 | |
| any plans for tonight? | |||
| jnthn | Will the plans involve eating something? :) | 11:47 | |
| masak hopes so | 11:52 | ||
| by longstanding tradition, I usually have a warm meal at that approximate time in the evening. | 11:53 | ||
| jnthn | OK, provided arnsholt is up for food too, then I think we can settle on the plan at least involving, "eat something, somewhere". | 11:54 | |
| That can probably be late-bound... It's not like Malmo has a restaurant shortage :P | 11:55 | ||
| arnsholt | Noms will be good | ||
| Like masak I have a tradition to uphold ^_^ | 11:56 | ||
| jnthn | \o/ | ||
| masak | jnthn: wait... are you suggesting we leave the fate of our finding food for the evening to *chance*? o.O | ||
| jnthn | masak: Yes, but if past success is a predictor of the future, that's less scary than it sounds :P | 11:57 | |
| arnsholt | It worked out well enough at the hackathon in Copenhagen at least =) | 11:58 | |
| masak strains to see the complete lack of A Plan as something positive :) | 12:00 | ||
|
12:16
brrt joined
12:17
bowtie joined
12:19
sorenso left
12:20
tokuhiro_ joined
12:21
hoelzro|away is now known as hoelzro
|
|||
| masak | moritz: (timely destruction) I think I agree with sorear. the only "too late" for closing filehandles is "never". if someone wants the closing of the file to happen at a certain point, that's a good case for doing $f.close | 12:21 | |
|
12:22
sorenso joined
|
|||
| masak | or what jnthn said, use LEAVE. | 12:23 | |
| the notion of having things GC "basically at block exit" (a la refcounting) is counterindicated by the move to many-core computing. this was the theme of an early p6l thread about RAII. | 12:25 | ||
| erm, 182 years ago. | 12:26 | ||
| jnthn | No, p6l hasn't been going on that long, even if it feels like it :P | ||
| brrt | refcounting will cost you at runtime | 12:27 | |
| masak | don't worry, we're not doing refcounting. | 12:28 | |
| brrt | :-) | ||
| jnthn | Reachability-based GC also costs you at runtime :) | ||
| brrt | because even in the positive case, you still have to gc to clear cycles, which means you're doing double work | ||
| yes | |||
| what about cheney-on-the-mta? | |||
| i've found that intriguing since forever | 12:29 | ||
| arnsholt | I guess if you really need closing on block exit, we could make a using macro | ||
| jnthn | .oO( Cheney is visting New York? ) |
12:30 | |
| brrt | which cheney, i recall there being many | ||
| jnthn | I was thinking of Dick :) | 12:32 | |
| masak | arnsholt: 'a using macro'? | ||
| jnthn | brrt: I thougth the Cheney appraoch was a copying GC scheme... | 12:33 | |
| brrt | it is | ||
| basically, iirc | |||
| you allocate everything on stack | |||
| arnsholt | masak: Something like using in Python | ||
| brrt | you never return from a function (so the stack isn't cleared) | ||
| jnthn | hah, that's cute... | ||
| arnsholt | Which does cleanup on block exit | ||
| jnthn | you use the c stack as...wow, that's disgusting :D | 12:34 | |
| brrt | and when you overflow the stack, you copy everything | ||
| doesn't have to be the c stack, can be a stack of your own design as well | |||
| jnthn | Yeah | ||
| brrt | i like copying gc, dunno why | ||
| its just elegant | |||
| jnthn | Semispace copying is nice because dead things are basically free | ||
| brrt | i recall seeing an article on hacker news, which suggested that the copying fase basically consisted of pushing a pointer | 12:35 | |
| now i implemented one once and it had to copy the whole object | |||
| so | |||
| who is right? | |||
| jnthn | Certainly the typical approach is copying the whole object | 12:37 | |
| That's what the GC handbook describes, anyways. | 12:38 | ||
| brrt | good, then i'm not crazy | ||
| jnthn | I guess you could just keep an "alive list" that points to the actual bodies and just copy the alive things out of that, but it's a level of indirection for everything and probably suffers fragmentation issues... | ||
| brrt | that is a bit wasteful when you have a large live set compared to the dead set | ||
| copying was designed to stop fragmentation | 12:39 | ||
| jnthn | Semispace is mostly wasteful 'cus you need twice as much heap as you get to use | ||
| brrt | (i almost said inhibit, biological mind playing up) | ||
| jnthn | otoh, you don't have to do it for all the generations :) | ||
| brrt | thats is basically the other side of it; a copying generational collector would be pretty nice | 12:41 | |
| [Coke] drinks coffee | 12:47 | ||
| arnsholt | brrt: Isn't that sort of how many Lisps do GC? | 12:48 | |
| brrt | it comes from the scheme community, yes | 12:49 | |
|
12:49
am0c left
|
|||
| [Coke] | brrt: saw it was fixed. haven't had time to test out partcl-nqp on the latest and greatest yet. | 12:53 | |
| brrt wonders why it didn't break on non-mac systems | 12:54 | ||
| maybe mac is more aggressive with zeroing | |||
|
12:59
sqirrel joined
13:00
xinming left
13:04
Psyche^ joined
13:08
Patterner left,
Psyche^ is now known as Patterner
13:24
kaleem_ left
13:25
kaleem joined
13:29
[particle]1 is now known as [particle]
13:32
PacoAir joined
13:34
tokuhiro_ left
13:35
tokuhiro_ joined
|
|||
| [Coke] | we need a better name for #115540 than "possible rakudo bug". suggestions? | 13:38 | |
|
13:39
tokuhiro_ left
13:40
tokuhiro_ joined
|
|||
| masak | [Coke]: "IO::Socket::INET.new times out on multiple .open() calls for the same port" | 13:43 | |
| (also, it seems a non-bug to me) | |||
| jnthn | "How is socket formed" | ||
| I'm not surprised by the behavior either, fwiw. | 13:44 | ||
|
13:44
tokuhiro_ left,
plobsing left,
tokuhiro_ joined
13:48
kaleem left
13:49
tokuhiro_ left
13:51
kaleem joined
13:57
skids left
14:07
stopbit joined
14:08
flightrecorder left
14:09
hoelzro is now known as hoelzro|away,
FROGGS left
14:11
flightrecorder joined,
stopbit left
14:12
stopbit joined
14:14
benabik left
14:21
sqirrel left
14:22
gootle left,
sorenso left,
FROGGS joined
14:28
kaare_ joined
14:39
dayangkun left
14:41
birdwindupbird left
14:46
SamuraiJack left
14:52
Woodi joined
14:53
cognominal joined
|
|||
| dalek | kudo/nom: e7ab9ac | masak++ | src/Perl6/Actions.pm: [Perl6::Actions] refactor De-duplicated some code. This will help us during the next commit, because we'll be adding more code in that path. |
14:56 | |
| kudo/nom: 9bb7de6 | masak++ | src/Perl6/Actions.pm: [Perl6::Actions] wrap macro-arg ASTs in thunks This causes the macro arguments to correctly carry their lexical environment with them, and so everything inside of them is now correctly, hygienically resolved. |
|||
| brrt | dalek in overdrive | 14:57 | |
| dalek | ast: bfeeefb | masak++ | S06-macros/unquoting.t: [S06-macros/unquoting.t] unfudge for Rakudo |
||
| masak | folks, your attention please. | 14:58 | |
| as of this day, macros in Rakudo are usable. | |||
| jnthn | \o/ | ||
| arnsholt | =D | ||
| jnthn | masak++ | ||
| masak | I will demo it for you as soon as p6eval does a recompile. | ||
| arnsholt | masak++ indeed | ||
| jnthn | Wow, November release will really rock | ||
| masak | essentially, 'twice $x++' works now. | ||
| the deeper reason being that macro-argument ASTs now correctly carry around their lexical context. | 14:59 | ||
| blog post(s) upcoming. | |||
| [Coke] | masak++ | ||
| masak | r: macro twice($code) { quasi { {{{$code}}}; {{{$code}}} } }; my $counter = 0; twice $counter++; say $counter | 15:00 | |
| p6eval | rakudo c45b02: OUTPUT«0» | ||
| masak | just one last time wrongly for sentimental reasons :P | ||
| Woodi | allo everyone :) | 15:01 | |
| masak | I'd like to explicitly thank jnthn, who through all this is a great mentor-ish discussion partner, and who through D2 especially said more than once "hm, wonder if we're not making things overly complex here...". I finally listened to him, and the above solution is indeed very simple. | ||
| Woodi! \o/ | 15:02 | ||
| Woodi | gz masak++! :) | ||
| masak | dz :) | ||
| PerlJam | masak++ (I can't say that enough :) | 15:03 | |
| masak | this concludes the D2 part of the macros grant. | ||
| Woodi | what's D3 ? | ||
| masak | (though I'm going to look at a code path unification now) | ||
| Woodi: D3 is "implicit hygiene, explicit lack of hygiene". | |||
| and D2 essentially already gave us the former for free, so I'll focus on the latter. | 15:04 | ||
| here's the original grant application: news.perlfoundation.org/2011/09/hag...mplem.html | |||
| Woodi | masak: I have no idea what you talking about but tutorial for macros would be nice :) | 15:05 | |
| looking | |||
|
15:05
benabik joined
|
|||
| Woodi | D5 is nice :) | 15:06 | |
| masak | haven't need to do much aligning. | ||
| though TimToady++'s promise/threat about ¤ is still looming, I guess... :) | 15:07 | ||
| felher | masak++ # /me is eagerly awaiting the blog post :) | ||
| masak | I'm going to make two blog posts. | ||
| one regular progress report, the first one in quite a while. | |||
| and one TPF halfway report. | |||
|
15:08
benabik left
|
|||
| masak | r: say "updated yet"? | 15:08 | |
| p6eval | rakudo c45b02: OUTPUT«===SORRY!===Confusedat /tmp/gS4lAGHTr8:1» | ||
| masak | nope. | ||
| jnthn | std: say "updated yet"? | ||
| p6eval | std edd7715: OUTPUT«===SORRY!===Confused at /tmp/k1zq0cc5p4 line 1:------> say "updated yet"⏏? expecting any of: POST infix infix or meta-infix infixed function postcircumfix postfix postfix_prefix_meta_operator postop | ||
| ..statement modifi… | |||
| masak | jnthn: yes, I was confused :) | ||
| felher | *two* blogposts <3 :) | ||
| jnthn | Just seeing if STD did any better ;) | 15:09 | |
| masak | probably not a common typo :) | ||
| jnthn | Aye. The keys aren't right next to each other. | ||
| masak | fwiw, bohr() still fails in unquotes.t | ||
| jnthn | How bohring. | ||
| Isn't that due to cloning mess-ups? | |||
| masak | r: macro bohr() { my $q1 = quasi { 6 }; my $q2 = quasi { 6 * 10 }; my $q3 = quasi { 100 + 200 + 300 }; quasi { {{{$q1}}} + {{{$q2}}} + {{{$q3}}} } }; say bohr() | 15:10 | |
| p6eval | rakudo c45b02: OUTPUT«Cannot call 'infix:<+>'; none of these signatures match::($x = { ... }):(int $a, int $b):(num $a, num $b):(Int:D \a, Int:D \b):(Num:D \a, Num:D \b):(Rational \a, Rational \b):(Rational \a, Int \b):(Int \a, Rational \b):(Complex:D \a, Complex:D \b):(Instan… | ||
| masak | the other week we found and fixed some mess-ups having to do with cloning of AST nodes in evaluate_unquotes in the QAST classes in NQP. | ||
| but it didn't fix the above, which was connected to some very weird relationship between $q1 and $q2 and the expressions inside of them. | |||
| r: macro bohr() { my $q1 = quasi { 6 }; my $q2 = quasi { 6 * 10 }; quasi { {{{$q1}}} + {{{$q2}}} } }; say bohr() | 15:11 | ||
| p6eval | rakudo c45b02: OUTPUT«Cannot call 'infix:<+>'; none of these signatures match::($x = { ... }):(int $a, int $b):(num $a, num $b):(Int:D \a, Int:D \b):(Num:D \a, Num:D \b):(Rational \a, Rational \b):(Rational \a, Int \b):(Int \a, Rational \b):(Complex:D \a, Complex:D \b):(Instan… | ||
|
15:13
spider-mario left
|
|||
| jnthn | r: macro bohr() { my $q1 = quasi { 6 }; my $q2 = quasi { 6 * 10 }; quasi { {{{say 'x'; $q1}}} + {{{say 'y'; $q2}}} } }; say bohr() | 15:15 | |
| p6eval | rakudo 9bb7de: OUTPUT«xyCannot call 'infix:<+>'; none of these signatures match::($x = { ... }):(int $a, int $b):(num $a, num $b):(Int:D \a, Int:D \b):(Num:D \a, Num:D \b):(Rational \a, Rational \b):(Rational \a, Int \b):(Int \a, Rational \b):(Complex:D \a, Complex:D \b):(In… | ||
| jnthn | r: macro bohr() { my $q1 = quasi { say 'badger'; 6 }; my $q2 = quasi { say 'mushroom'; 6 * 10 }; quasi { {{{say 'x'; $q1}}} + {{{say 'y'; $q2}}} } }; say bohr() | 15:16 | |
| p6eval | rakudo 9bb7de: OUTPUT«xybadgermushroomCannot call 'infix:<+>'; none of these signatures match::($x = { ... }):(int $a, int $b):(num $a, num $b):(Int:D \a, Int:D \b):(Num:D \a, Num:D \b):(Rational \a, Rational \b):(Rational \a, Int \b):(Int \a, Rational \b):(Complex:D \a, Co… | ||
| jnthn | hm, odd indeed | ||
|
15:17
havenn joined
|
|||
| masak | r: macro twice($code) { quasi { {{{$code}}}; {{{$code}}} } }; my $counter = 0; twice $counter++; say $counter | 15:20 | |
| p6eval | rakudo 9bb7de: OUTPUT«2» | ||
| masak | \o/ | ||
| jnthn: yeah, well. it's RT'd. | |||
| jnthn | hah, I running that under the debugger will be fun :) | ||
| "I said next statement...y u no progress?" | 15:21 | ||
| masak | r: macro pathological { AST.new }; pathological | ||
| p6eval | rakudo 9bb7de: OUTPUT«===SORRY!===Error while compiling block : Error while compiling op call: Error while compiling block : Error while compiling block : Unknown QAST node type Any» | ||
| masak looks into fixing this bug, too. | |||
|
15:23
skids joined
|
|||
| [Coke] | r: say quasi { say "OH HAI" }; | 15:35 | |
| p6eval | rakudo 9bb7de: OUTPUT«AST.new()» | ||
| [Coke] | r: my $a = quasi { say "OH HAI" }; $a(); | ||
| p6eval | rakudo 9bb7de: OUTPUT«No such method 'postcircumfix:<( )>' for invocant of type 'AST' in at src/gen/BOOTSTRAP.pm:852 in any at src/gen/BOOTSTRAP.pm:836 in block at /tmp/OQSAtjJjUh:1» | ||
| [Coke] | r: my $a = quasi { say "OH HAI" }; $a.(); | 15:36 | |
| p6eval | rakudo 9bb7de: OUTPUT«No such method 'postcircumfix:<( )>' for invocant of type 'AST' in at src/gen/BOOTSTRAP.pm:852 in any at src/gen/BOOTSTRAP.pm:836 in block at /tmp/Z0bCsv1mJM:1» | ||
| [Coke] | r: my $a = quasi { say "OH HAI" }; $a.^methods.say; | ||
| p6eval | rakudo 9bb7de: OUTPUT«BUILD incarnate evaluate_unquotes is_quasi_ast» | ||
| [Coke] | r: my $a = quasi { say "OH HAI" }; $a.incarnate | ||
| p6eval | rakudo 9bb7de: OUTPUT«Not enough positional parameters passed; got 1 but expected 3 in method incarnate at src/gen/CORE.setting:10262 in block at /tmp/_pQdLM5U5Z:1» | ||
| masak | [Coke]: no, you can't call AST objects. they're tree structures. | 15:37 | |
| [Coke] | r: my $a = quasi { say "OH HAI" }; {{{$a}}}; | ||
| p6eval | rakudo 9bb7de: ( no output ) | ||
| masak | .incarnate is essentially a compiler-internal method, but it's exposed to userland. | ||
| [Coke] | r: my $a = quasi { say "OH HAI" }; {{{$a}}}(); | ||
| p6eval | rakudo 9bb7de: ( no output ) | ||
| masak | [Coke]: {{{$a}}} doesn't "work" outside of quasi blocks. | ||
| it just parses as three nested blocks. | |||
| (that's a feature, not a bug) | 15:38 | ||
| jnthn | Aye, STD has it that way | ||
| In fact, we can even factor it the way STD does now, I imagine. | |||
| I think that means we get arbitrary delims :) | |||
| [Coke] | Can you do anything with $a in that snippet? | ||
| masak | [Coke]: if you constructed $a in a macro, yes. | 15:39 | |
| jnthn | r: my $a = quasi { say "OH HAI" }; macro foo() { $a }; foo; | ||
| [Coke] | or: is there a point to quasi outside of macros | ||
| p6eval | rakudo 9bb7de: OUTPUT«===SORRY!===too few positional arguments: 2 passed, 3 (or more) expected» | ||
| masak | then you could return it from the macro and have it incorporated in your program. | ||
| [Coke] | ? | ||
| jnthn | hah :) | ||
| r: BEGIN my $a = quasi { say "OH HAI" }; macro foo() { $a }; foo; | |||
| p6eval | rakudo 9bb7de: OUTPUT«OH HAI» | ||
| masak | [Coke]: quasi outside of macros work fine, but unless you have a way to go back in time, there's not much you can do with them. | 15:40 | |
| they're meant to integrate into the program during compilation. | |||
| jnthn | You can use an eval to go forward in time :P | ||
| [Coke] | (back in time) like BEGIN. :) | ||
| masak | right. | ||
| [Coke] | masak: my point being if there's not much point to them outside macros, why not disallow them there. | ||
| jnthn | r: my $a = quasi { say "OH HAI" }; macro foo() { $a }; eval 'foo;' | ||
| p6eval | rakudo 9bb7de: OUTPUT«OH HAI» | ||
| masak | [Coke]: why not disallow 'when' outside of 'given'? | ||
|
15:40
thou joined
|
|||
| [Coke] | WFM. :) | 15:41 | |
| masak | [Coke]: why not disallow methods outside of classes? | ||
| [Coke] | Yes. These are all good ideas. | ||
| jnthn | [Coke]: Somebody will find a creative use. I'm struggling for a concrete one, but that's probably because I've not written many macros yet :) | ||
| masak | [Coke]: why not disallow 'take' outside of 'gather'? | ||
|
15:41
thou left
|
|||
| jnthn | All the above examples worked as I expected \o/ | 15:41 | |
| masak | (my point being that all those cases *have* found creative uses) | ||
| jnthn | Taht's nice :) | ||
| masak | yes :) | ||
| jnthn | I'll have to work harder to find bugs for masak :D | 15:42 | |
| [Coke] | r: macro a() { 1 } | 15:43 | |
| p6eval | rakudo 9bb7de: ( no output ) | ||
| [Coke] | r: macro a() { 1 }; a | ||
| p6eval | rakudo 9bb7de: OUTPUT«===SORRY!===too few positional arguments: 2 passed, 3 (or more) expected» | ||
| [Coke] | r: macro a() { 1 }; a(); | 15:44 | |
| p6eval | rakudo 9bb7de: OUTPUT«===SORRY!===too few positional arguments: 2 passed, 3 (or more) expected» | ||
| [Coke] | I know the macro should be returning a quasi - is that what the error is trying to tell me? | ||
| masak | hm, no, it should complain that the macro doesn't return an AST. | 15:45 | |
| seem to have regressed on that. | |||
| will look into it. | |||
| [Coke] | masak++ | 15:46 | |
| arnsholt | masak: You can use take outside gather? (The dynamic scope of gather, that is) | 15:47 | |
| masak | arnsholt: not outside the dynamic scope, no. | 15:48 | |
| arnsholt: my point is that take is *allowed* outside of the dynamic scope of gather, not that you can use it there. | 15:49 | ||
| arnsholt | Yeah, definitely | ||
| masak | (because, since it's a dynamic scope, static checking of its appropriateness is not possible) | ||
| arnsholt | Yup | 15:50 | |
|
15:50
cognominal left
|
|||
| arnsholt | And disallowing something just because noone can see the point has never really been an argument 'round here =) | 15:51 | |
|
15:52
kaleem left
|
|||
| jnthn | r: take 'me' | 15:53 | |
| p6eval | rakudo 9bb7de: OUTPUT«take without gather in block at src/gen/CORE.setting:429 in block at src/gen/CORE.setting:478 in block at /tmp/NRputOwqD5:1» | ||
| jnthn | Good. Sane error. :) | ||
| masak | I'm pretty confident someone will find a use for quasis even outside of macros. | ||
| jnthn | masak: I'm imagining situations where its convenient to collect quasis outside a macro and use them in multiple macros, for example. | 15:54 | |
| arnsholt | That's a very good use of it | 15:55 | |
|
15:55
sizz joined
|
|||
| masak | right. tricks having to do with context may play in here as well. | 15:56 | |
| (i.e. the quasi needs to be build in one module and then passed to another) | |||
| built* | |||
| arnsholt | Oooh, nice! | ||
| Neat way to punch an appropriate-sized hole in encapsulation | 15:57 | ||
|
15:57
cognominal joined,
benabik joined
|
|||
| masak | the hole isn't any bigger than with passing closures. | 15:57 | |
| it's just done at another stage of the compile/run cycle. | |||
| arnsholt | True | ||
|
16:01
birdwindupbird joined
16:02
brrt left
16:06
xinming joined
16:07
benabik left
16:11
flightrecorder left
16:12
FROGGS left
|
|||
| [Coke] | masak: repl doesn't complain about macro redefinition, happily keeps showing result of original macro. | 16:24 | |
| masak | REPLs generally aren't known to complain about routine redefinitions. | 16:27 | |
| that's usually considered a feature. | |||
| though why it insists on showing the first one defined, I don't know. | |||
|
16:28
rindolf left
16:29
rindolf joined
|
|||
| arnsholt heads for the train station | 16:30 | ||
| eiro | hello guys | 16:31 | |
| masak | eiro! \o/ | ||
| eiro | wip: i start to write about writing modules. is there any official doc about the official way to use panda ? | 16:32 | |
|
16:32
thou joined
|
|||
| eiro | masak, \o from france | 16:32 | |
| damned! kivutar didn't join | 16:33 | ||
| masak | say hi to france from me. | ||
| or "bonjour", or whatever... :) | |||
| eiro | haha :) "hello" becomes as frequent as bonjour actually :) | 16:34 | |
| "salut" is also commonly used | |||
| masak | just nod curtly and say "alors". | 16:35 | |
| eiro | yep | 16:37 | |
| so! it seems there is no doc for panda: i start to read the code | |||
| jnthn | There is a "who to make your module panda compliant" thingy linked from modules.perl6.org | ||
| masak | if there's a doc for panda, it's probably in the panda repo. | ||
| jnthn | er, how :) | ||
| tadzik | eiro: ooh, I have an image Just Waiting For This | 16:38 | |
| eiro | oh! it's not in the source but in a wiki: wiki.perl6.org/Create%20and%20Distr...%20Modules | 16:39 | |
| tadzik | Panda docs! imgur.com/WAyGR | ||
| eiro | haha :) | ||
| instagram.com/p/LBWST9HsHd/ | 16:40 | ||
| tadzik | :D | 16:41 | |
| eiro | oh! there is no submit form! maybe we wan write it with Bailador? | 16:45 | |
| Ping someone on IRC (#perl6 at freenode) to either show you how to add your module to the ecosystem, or else ask them if they could please add it for you. | |||
| tadzik | hm | 16:49 | |
| we could do that with Bailador, yes | |||
| but the wiki is not Bailador-driven | |||
| eiro | i don't think of wiki instructions but a new set of commands in panda to manage the modules | 16:50 | |
| panda new | |||
| panda publish | |||
| panda announce | |||
| how about that ? | 16:51 | ||
| tadzik | hmm | ||
| sounds good to me :) | 16:52 | ||
| jnthn | back later & | 16:55 | |
|
17:06
domidumont1 joined,
sudokode left
17:07
birdwindupbird left
17:08
domidumont left
17:14
sudokode joined
17:23
havenn left
17:24
havenn joined
17:28
havenn left
17:44
sudokode left
17:47
sirrobert joined
|
|||
| sirrobert | hi p6 | 17:47 | |
| sorear | o/ | ||
| masak: heh, that bottle has an inherently funny label :D | 17:49 | ||
| sirrobert | This does what I expect: | 17:58 | |
| r: my %foo = a => 1; say %foo; %foo ,= b => 2; say %foo; | |||
| p6eval | rakudo 9bb7de: OUTPUT«("a" => 1).hash("a" => 1, "b" => 2).hash» | ||
| sirrobert | Why doesn't this do what I expect? | ||
| r: my %bar= a => {c=>3}; say %bar<a>; %bar<a> ,= d=>4; say %bar<a>; | |||
| p6eval | rakudo 9bb7de: OUTPUT«(timeout)("c" => 3).hash» | 17:59 | |
| sirrobert | or, rather, it hangs (which isn't what I expect =) | ||
|
18:03
leont joined,
adu joined
18:05
sudokode joined
18:12
benabik joined
18:15
wk left
18:22
SamuraiJack joined
18:33
zby_home joined
18:34
spider-mario joined
18:55
havenn joined
18:57
nyuszika7h left
19:00
cognominal left,
nyuszika7h joined
19:05
cognominal joined
19:10
Chillance joined
19:11
spider-mario left
19:16
spider-mario joined
19:22
wk joined
19:45
s3333 joined
19:54
s3333 left
20:01
fgomez left
|
|||
| moritz | \o/ macros | 20:03 | |
| masak++ | |||
| flussence | masakros! | ||
| [Coke] | r: macro marco($a, $b) { eval "macro $a { quasi {{{ $b }}} }" }; marco polo { say "marco!" }; polo | 20:06 | |
| p6eval | rakudo 9bb7de: OUTPUT«===SORRY!===Not enough positional parameters passed; got 1 but expected 2at /tmp/jKTg8CSkRO:1» | ||
| [Coke] | *snap* | ||
|
20:07
adu left
20:09
sirrobert left,
GlitchMr left
20:15
am0c joined
20:18
havenn left,
havenn joined
20:19
wk left
20:23
havenn left
20:25
domidumont1 left
20:27
havenn joined
20:28
sirrobert joined
|
|||
| sirrobert | back | 20:28 | |
| rindolf | sorear: hi. | 20:34 | |
|
20:36
wk joined
20:48
benabik left
20:59
sudokode left,
SamuraiJack left
21:02
skids left
|
|||
| sirrobert | is there a good way to deal with precompiling circular dependencies yet? | 21:07 | |
|
21:09
bbkr left
21:10
havenn left,
azawawi joined
21:11
havenn joined,
benabik joined
|
|||
| azawawi | is github.com/rakudo/rakudo/blob/nom/...mpiler.nqp usable within a Perl 6 script or not? | 21:14 | |
| star: Perl6::Compiler.interactive | 21:15 | ||
| p6eval | star 2012.10: OUTPUT«Could not find symbol '&Compiler' in method <anon> at src/gen/CORE.setting:9956 in at src/gen/Metamodel.pm:2401 in any find_method_fallback at src/gen/Metamodel.pm:2389 in any find_method at src/gen/Metamodel.pm:925 in at src/gen/BOOTSTRAP.pm:827 in an… | ||
|
21:15
havenn left
|
|||
| azawawi | star: ::('Perl6::Compiler') | 21:15 | |
| p6eval | star 2012.10: ( no output ) | ||
| azawawi | Perl6::Compiler.interactive no longer usable in rakudo irclog.perlgeek.de/perl6/2010-06-25#i_2480559 ? | 21:18 | |
| azawawi sleep & | |||
|
21:18
azawawi left
21:25
fgomez joined
21:28
bruges_ left
21:30
bruges joined
21:34
am0c left
21:36
zby_home left
21:37
bapa left
21:38
bapa joined
21:39
benabik left
21:47
havenn joined
21:56
jaldhar_ joined,
havenn_ joined
21:58
Gothmog__ joined,
twinshadow_ joined,
jrockway_ joined,
havenn left,
Patterner left,
Gothmog_ left,
twinshadow left,
jrockway left,
twinshadow_ is now known as twinshadow,
Gothmog__ is now known as Gothmog_
21:59
Psyche^ joined,
Psyche^ is now known as Patterner
22:08
stopbit left
|
|||
| sorear | rindolf: ? | 22:15 | |
| rindolf | sorear: what? | ||
| sorear: oh, I meant someone else. | 22:16 | ||
| sorear: I meant sirrobert | 22:17 | ||
|
22:17
bapa left
22:23
havenn_ left,
havenn joined,
bapa joined
|
|||
| TimToady | hi, you guys are on the screen at Westmont | 22:24 | |
| diakopter | howdy Westmont | ||
| flussence | o/ | ||
| colomon | \o | 22:25 | |
| sorear | o/ | ||
|
22:26
rindolf left
22:28
havenn left
|
|||
| flussence | .oO( "please don't tap on the fish tank" ) |
22:33 | |
|
22:35
kaare_ left
22:38
skids joined
22:42
cognominal left
22:49
cognominal joined
|
|||
| masak | greetings, Westmont. | 23:04 | |
|
23:10
stocks joined
23:22
thou left
23:33
fgomez left
23:34
havenn joined
|
|||
| jnthn | Is Westmont in the west, and has it a mountain? | 23:34 | |
|
23:39
havenn left
|
|||
| sorear | I suspect the reference is to en.wikipedia.org/wiki/Westmont_College | 23:39 | |
| jnthn | Ah :) | ||
|
23:40
fgomez joined
|
|||
| masak | etymology is "WEST Moreland and VerMONT". cute. | 23:42 | |
| good night, #perl6 | 23:51 | ||
| sorear | o/ masak | 23:52 | |
| ...I just started a P5 test file with use Test::More; plan 50; | 23:56 | ||
| flussence | *only* 50? :) | ||
| doy | (people still use explicit test plans?) | 23:57 | |
| sorear | doy: explicit plans are prefered in the spectest suite because we like to know the total number of tests, even when some files run on zero implementations | 23:58 | |