»ö« 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. |
|||
diakopter spent a lot of time on this a few years ago: alioth.debian.org/tracker/download...integer.js | 00:08 | ||
(and this) shootout.alioth.debian.org/u64/prog...8&id=1 | 00:09 | ||
unfortunately it's extremely slow compared to the other languages | |||
lichtkind | ahoj #perl6 | 00:15 | |
japhb_ | diakopter, the first of those two links triggers an evil website warning in Firefox | 00:16 | |
diakopter | I noticed that too | ||
00:17
simcop2387 joined
|
|||
benabik | safebrowsing.clients.google.com/saf...p;hl=en-US | 00:17 | |
diakopter | but... I'm pretty certain there are no javascript exploits in that code, since I touched every line and have no idea about any exploits. here, I'll gist it for you: | ||
benabik | Probably because alioth is too liberal in comment contents or something. | ||
diakopter | weird | 00:18 | |
gist.github.com/3345041 | |||
00:26
fgomez joined
00:28
adu joined
00:34
skids joined
|
|||
dalek | ecza: c86e8e5 | (Solomon Foster)++ | lib/CORE.setting: When pushing a Pair onto a Hash, convert the key to a Str. |
00:35 | |
00:54
Guest62198 left
01:04
adu left
|
|||
diakopter | most of the other languages use gmp or some other bigint library (like the built-in one in ghc) | 01:07 | |
dalek | c: 45793f0 | (Tim Smith)++ | lib/ (9 files): Normalize use of X<>, L<>, and C<> somewhat In particular, change some X<foo> to L<foo>. Not all L<foo> are generating working links yet; this is something for future commits to handle. When a term is used frequently in a region of text, the first occurrance is usually linked (with L<foo>), and later ones are marked as code (C<foo>) or emphasized (I<foo>) as appropriate. |
01:14 | |
c: 94bc5b0 | (Tim Smith)++ | .gitignore: Ignore html/op |
01:19 | ||
diakopter | [Coke]: the reason I said I found it hard to imagine it was a problem with PASM is: why would parrot accept invalid bytecode or bytecode that would make it segfault? PASM compiles to bytecode, right? So either the bytecode validator is missing something, there is no bytecode validator, or on amd64 parrot has a problem with the program represented by the bytecode from that PASM. | 01:29 | |
benabik | diakopter: I don't think there's a validator. | 01:30 | |
01:31
japhb_ left
|
|||
diakopter | oh :) | 01:31 | |
it's just.. how could changing a constant integer value by 1 in the program make it segfault | 01:34 | ||
sorear | diakopter: context? | 01:36 | |
diakopter | oh, primes.pasm in parrot's examples/benchmarks - 17619 works, 17620 segfaults | 01:38 | |
and anything I tried above 17620 | |||
sorear | 17620 isn't a prime | ||
diakopter | on amd64 linux, and amd64 windows | ||
who said it was a prime? | |||
I found it by bisecting | 01:39 | ||
sorear | how did you put 17619 into primes.pasm? | ||
diakopter | line 26 | ||
set P2 | 01:40 | ||
rurban said he couldn't reproduce it on 32-bit | |||
sorear | my guess is that 17619 is the first number that triggers a garbage collection, and running imcc over pasm files corrupts memory in a way that crashes the GC when run on 64-bit | ||
as far as I know PASM is unused and unmaintained | 01:41 | ||
diakopter | well, it could easily be translated to a PIR version | ||
sorear | I wonder if the PIR version also segfaults | 01:42 | |
diakopter | .. that's what I was saying :P | ||
diakopter stares at 1600 lines of completely un-run/un-tested code | 01:46 | ||
01:47
telex left,
scott_ joined,
scott_ is now known as Guest89821
01:48
telex joined
01:53
jeffreykegler joined
01:57
cognominal left
01:58
cognominal joined
02:02
sftp left,
sftp joined
02:05
Entonian joined
02:06
Entonian left
02:09
perigrin joined
02:35
leprevost left
02:38
Psyche^ joined
02:42
Patterner left,
Psyche^ is now known as Patterner
02:43
orafu left,
orafu joined
02:55
colomon left
02:56
lichtkind left
03:18
colomon joined,
sftp left
|
|||
benabik | Converting it to PIR is... pretty darn simple. | 03:35 | |
gist.github.com/3346083 | 03:36 | ||
That's not the way PIR code is normally written, but it's perfectly valid. | |||
03:39
cognominal left
03:55
adu joined
03:59
jaldhar joined
04:00
skids left
|
|||
diakopter | benabik: it doesn't run for me; error:imcc:syntax error, unexpected IDENTIFIER, expecting '\n' ('main') in file 'primes.pir' line 20 | 04:02 | |
04:02
Guest89821 left
04:04
scott_ joined
04:05
scott_ is now known as Guest93569
04:06
adu left,
dbr left,
woosley left,
DarthGandalf left,
larks left
|
|||
benabik | diakopter: Strange. Runs for me... Even after copy/pasting back from gist. | 04:10 | |
04:10
telex left
|
|||
TimToady | masak++ for the idea to add rosettacode.org/mw/index.php?title=...cid=146944 | 04:13 | |
04:15
telex joined
|
|||
diakopter | benabik: I'm confused - your gist is PIR? | 04:17 | |
benabik | diakopter: Yes. | ||
diakopter: The difference between PIR and PASM are fairly small. | |||
04:18
DarthGandalf joined
04:26
telex left
04:37
telex joined
|
|||
pmichaud | .u ✌ | 04:50 | |
phenny | U+270C VICTORY HAND (✌) | ||
sorear | o/ pmichaud | 04:51 | |
04:59
adu joined,
dbr joined,
woosley joined,
larks joined
05:04
dayangkun joined
05:14
xinming_ joined
05:16
xinming left
05:19
adu left,
dbr left,
woosley left,
larks left
|
|||
jeffreykegler | r: grammar g; regex r { a }; say 'a' ~~ m/<r>/ | 05:21 | |
p6eval | rakudo 94aa2b: OUTPUT«No such method 'r' for invocant of type 'Cursor' in regex at /tmp/em8ZxKwFEX:1 in method match at src/gen/CORE.setting:4009 in block at /tmp/em8ZxKwFEX:1» | ||
05:21
birdwindupbird joined
|
|||
jeffreykegler | What's the problem here? Why doesn't it find subrule <r>? | 05:22 | |
TimToady | well, that's kinda like calling a method without a self | 05:23 | |
grammar g { regex r { a } }; g.parse('a', :rule('r')).say | 05:24 | ||
nr: grammar g { regex r { a } }; g.parse('a', :rule('r')).say | |||
p6eval | rakudo 94aa2b: OUTPUT«「a」» | ||
..niecza v19-21-gc86e8e5: OUTPUT«#<match from(0) to(1) text(a) pos([].list) named({}.hash)>» | |||
TimToady | .parse is a constructor for a current parse | 05:25 | |
a "Cursor" | |||
jeffreykegler | Gotcha | ||
Is there a cleaner syntax to define regexes on the fly and apply them? | 05:26 | ||
TimToady | nr: my regex r { a }; say 'a' ~~ / <&r> / | ||
p6eval | rakudo 94aa2b: OUTPUT«「a」» | ||
..niecza v19-21-gc86e8e5: OUTPUT«#<match from(0) to(1) text(a) pos([].list) named({}.hash)>» | |||
05:26
Senthil joined
|
|||
jeffreykegler | r: my regex r { a }; say 'a' ~~ / <&r> / | 05:27 | |
p6eval | rakudo 94aa2b: OUTPUT«「a」» | ||
TimToady | nr: my $r = rx /a/; say 'a' ~~ / <$r> / | ||
p6eval | rakudo 94aa2b: OUTPUT«===SORRY!===CHECK FAILED:Undefined routine '&rx' called (line 1)» | ||
..niecza v19-21-gc86e8e5: OUTPUT«#<match from(0) to(1) text(a) pos([].list) named({}.hash)>» | |||
TimToady | nr: my $r = rx/a/; say 'a' ~~ / <$r> / | 05:28 | |
p6eval | rakudo 94aa2b: OUTPUT«「a」» | ||
..niecza v19-21-gc86e8e5: OUTPUT«#<match from(0) to(1) text(a) pos([].list) named({}.hash)>» | |||
TimToady | I guess rakudo doesn't like the space there | ||
jeffreykegler | Gotcha | 05:29 | |
pmichaud | rakudo likes the space fine; it just thinks that 'rx' is no longer a quote token then. | ||
TimToady | anyway, an assertion with a sigil is whatever scope the symbol is, while <r> is class scoped to the grammar | ||
r: say q /foo/ | 05:30 | ||
p6eval | rakudo 94aa2b: OUTPUT«foo» | ||
TimToady | treats that differently then | ||
jeffreykegler | Yeah, but for, say, a command line the bare <r> sure looks nicer | ||
pmichaud | TimToady: yeah, checking. | ||
TimToady: yes, they're getting treated differently (and shouldn't). | 05:31 | ||
TimToady | r: my $r = rx:i/a/; say 'a' ~~ / <$r> / | ||
p6eval | rakudo 94aa2b: OUTPUT«「a」» | ||
TimToady | r: my $r = rx :i/a/; say 'a' ~~ / <$r> / | ||
p6eval | rakudo 94aa2b: OUTPUT«===SORRY!===Confusedat /tmp/Y67ADM1LEl:1» | ||
TimToady | jeffreykegler: we're not optimizing much for the command line these days :) | 05:32 | |
jeffreykegler | Understood | ||
I'm trying to make the syntax do stuff it wasn't designed for | 05:33 | ||
pmichaud | that's challenging, since the syntax is designed to enable things we didn't think of :) | ||
jeffreykegler | Yeah | ||
pmichaud | bedtime for me -- bbl | 05:34 | |
05:34
snearch joined
|
|||
jeffreykegler | The approach I think I'll take is do a first cut with the actuall Perl 6 syntax | 05:34 | |
Learn to ride the bike before rebuilding it | 05:35 | ||
Sleep is a good idea | 05:36 | ||
Thanks, all!!! | |||
05:51
wtw joined
05:55
jeffreykegler left,
jeffreykegler joined
05:56
jeffreykegler left
05:58
am0c joined
06:02
charsbar_____ left
06:03
charsbar_____ joined
06:08
jaldhar left
06:09
jaldhar joined
06:14
kaleem joined
06:23
jaldhar left
06:25
jaldhar joined
06:32
SamuraiJack joined
06:34
dbr joined,
woosley joined,
larks joined
06:41
DarthGandalf left
06:44
SamuraiJack_ joined,
SamuraiJack left
06:47
am0c left
07:02
DarthGandalf joined
07:05
topo left
07:06
topo joined
07:16
brrt joined
07:23
topo left,
topo joined
07:26
dayangkun left
|
|||
moritz | \o | 07:30 | |
brrt | o/ | ||
phenny | brrt: 11 Aug 18:31Z <colomon> tell brrt Cat is a hypothetical lazy string type. (Unless someone implemented it while I was on vacation.) | ||
brrt | colomon++ thats awesome | 07:31 | |
07:33
dayangkun joined
|
|||
shachaf | Cat? | 07:34 | |
moritz | Cat. | 07:38 | |
07:44
kresike joined
|
|||
kresike | good morning all you happy perl6 people | 07:44 | |
07:45
gongyiliao left
07:47
SamuraiJack_ left
|
|||
moritz | good morning all you happy kresike :-) | 07:48 | |
kresike | hello moritz | ||
07:52
gongyiliao joined
07:54
hoelzro|away is now known as hoelzro
|
|||
hoelzro | o/ perl6 crew | 07:56 | |
dalek | c/htmlify-refactor: 7dc74d2 | moritz++ | htmlify.pl: use the registry for writing operator files |
07:58 | |
c/htmlify-refactor: feb6c9a | moritz++ | htmlify.pl: small simplification |
|||
sorear | o/ moritz, brrt, kresike, shachaf, hoelzro | 07:59 | |
shachaf | \o sorear | 08:00 | |
moritz | good UGT morning * | ||
brrt | \o sorear | ||
moritz | sorear: how are your travel plans coming along? | ||
sorear | moritz: I am at this point absolutely coming. Trip to is booked and payed for. | 08:01 | |
moritz | \o/ | 08:02 | |
sorear | once masak/jnthn/mberends are awake I'm going to chat with them and determine absolutely how long I'm staying post-YAPC so I can get the return trip booked | ||
moritz | now I just need to fix mine :-) | ||
hoelzro | when I call self.Role::method(|@args), the self in Role::method *should* be the same as the original self, right? | 08:03 | |
moritz | hoelzro: correct | ||
sorear | hoelzro: it should be but it's not due to yucky interactions | ||
moritz | sorear: how so? | ||
hoelzro | =( | ||
kresike | \o sorear | 08:04 | |
sorear | moritz: it becomes Role.^find_method('method')(self, |@args), which autopuns | ||
tadzik | hello #perl6 | ||
sorear | so "self" is replaced automatically by Role.new | ||
maybe we need a :noautopun flag to find_method | |||
hoelzro | right, that's what I'm observing | 08:05 | |
sorear | niecza copied rakudo's design for .:: and autopunning and has the same bug because I couldn't see an easy fix for it | 08:06 | |
.oO( a bug-compatible reimplementation of Perl 6 ) |
08:09 | ||
hoelzro | sorear: do you know of any good work-arounds? | 08:11 | |
moritz | nr: role R { method x() { say self } }; class C does R { has $.s handles <Str>; method x { self.R::x() } }; C.new(:s<42>).x | 08:13 | |
p6eval | rakudo 94aa2b: OUTPUT«R()» | 08:14 | |
..niecza v19-21-gc86e8e5: OUTPUT«===SORRY!===Action method trait_mod:handles not yet implemented at /tmp/mEa_nSV46G line 1:------> ; class C does R { has $.s handles <Str>⏏; method x { self.R::x() } }; C.new(:s<4Trait 0 not available on variables … | |||
moritz | :( | ||
sorear | nr: role R { our method x() { say self } }; class C does R { has $.s handles <Str>; method x { R::x(self) } }; C.new(:s<42>).x | 08:15 | |
p6eval | rakudo 94aa2b: OUTPUT«Could not find symbol '&x' in method <anon> at src/gen/CORE.setting:9704 in <anon> at src/gen/Metamodel.pm:2304 in any find_method_fallback at src/gen/Metamodel.pm:2302 in any find_method at src/gen/Metamodel.pm:843 in <anon> at src/gen/BOOTSTRAP.pm:824 … | ||
..niecza v19-21-gc86e8e5: OUTPUT«===SORRY!===Action method trait_mod:handles not yet implemented at /tmp/rill693kg5 line 1:------> ; class C does R { has $.s handles <Str>⏏; method x { R::x(self) } }; C.new(:s<42Trait 0 not available on variables … | |||
sorear | nr: role R { our method x() { say self.s } }; class C does R { has $.s; method x { R::x(self) } }; C.new(:s<42>).x | ||
p6eval | rakudo 94aa2b: OUTPUT«Could not find symbol '&x' in method <anon> at src/gen/CORE.setting:9704 in <anon> at src/gen/Metamodel.pm:2304 in any find_method_fallback at src/gen/Metamodel.pm:2302 in any find_method at src/gen/Metamodel.pm:843 in <anon> at src/gen/BOOTSTRAP.pm:824 … | ||
..niecza v19-21-gc86e8e5: OUTPUT«42» | |||
sorear | suprised rakduo doesn't like that one | 08:16 | |
hoelzro | I have a (fairly) minimal example here: gist.github.com/3344225 | ||
(this is for my chat bot) | |||
sorear | oh, R is parametric in rakudo | ||
moritz | all roles are parameteric in rakudo | ||
sorear | nr: role R { &R::x := method x() { say self.s } }; class C does R { has $.s; method x { R::x(self) } }; C.new(:s<42>).x | ||
p6eval | niecza v19-21-gc86e8e5: OUTPUT«42» | ||
..rakudo 94aa2b: OUTPUT«===SORRY!===Cannot use bind operator with this left-hand sideat /tmp/TLg56cWqoP:1» | 08:17 | ||
moritz | (parametric on ::?CLASS) | ||
sorear | nr: role R { &R::x = method x() { say self.s } }; class C does R { has $.s; method x { R::x(self) } }; C.new(:s<42>).x | ||
p6eval | niecza v19-21-gc86e8e5: OUTPUT«42» | ||
..rakudo 94aa2b: OUTPUT«Nominal type check failed for parameter ''; expected $?CLASS but got C instead in method x at /tmp/xVbu12BuFA:1 in method x at /tmp/xVbu12BuFA:1 in block at /tmp/xVbu12BuFA:1» | |||
sorear | r: role R { our method x() { say self.s } }; class C does R { has $.s; method x { R::x(self) } }; say R.WHO.keys # C.new(:s<42>).x | 08:18 | |
p6eval | rakudo 94aa2b: OUTPUT«» | ||
sorear | r: role R { our method x() { say self.s } }; class C does R { has $.s; method x { R::x(self) } }; say R[].WHO.keys # C.new(:s<42>).x | ||
p6eval | rakudo 94aa2b: OUTPUT«Null PMC access in find_method('keys') in block at /tmp/K_mtiPFRbh:1» | ||
sorear | r: role R { our method x() { say self.s } }; class C does R { has $.s; method x { R::x(self) } }; say C.^roles.map(*.name) # C.new(:s<42>).x | ||
p6eval | rakudo 94aa2b: OUTPUT«No such method 'name' for invocant of type 'R' in <anon> at src/gen/Metamodel.pm:1191 in block at /tmp/rWeczCK8GH:1» | ||
sorear | r: role R { our method x() { say self.s } }; class C does R { has $.s; method x { R::x(self) } }; say C.^roles.map({.^name}) # C.new(:s<42>).x | ||
p6eval | rakudo 94aa2b: OUTPUT«R» | 08:19 | |
sorear | r: role R { our method x() { say self.s } }; class C does R { has $.s; method x { R::x(self) } }; say C.^roles[0].WHO.keys # C.new(:s<42>).x | ||
p6eval | rakudo 94aa2b: OUTPUT«» | ||
08:19
thou left
|
|||
hoelzro | thanks for the input guys; I'll be back later | 08:19 | |
08:19
hoelzro is now known as hoelzro|away
08:24
lumi__ joined
08:26
dakkar joined
08:37
tarch joined,
tarch left,
lumi_ joined
08:40
lumi__ left
08:53
snearch left
08:56
frettled left,
bbkr joined,
frettled joined
|
|||
dalek | kudo/sigilless: 060e430 | moritz++ | src/Perl6/ (2 files): fix "our" constants |
08:57 | |
08:58
Coleoid joined
|
|||
masak | good antenoon, #perl6 | 09:15 | |
09:15
gongyiliao left
|
|||
moritz | good UGT morning, masak | 09:15 | |
tadzik | hello masak | 09:16 | |
09:21
dayangkun left
09:22
fhelmberger joined
|
|||
sorear | masak! | 09:25 | |
dalek | kudo/sigilless: 50c1845 | moritz++ | src/core/Any.pm: switch Any to sigilless parameters |
09:38 | |
09:45
dakkar left
|
|||
masak | TimToady: 'return' in an unquote returns from the macro body, right? just checking. | 09:50 | |
in fact, it seems that for all intents and purposes, unquote code runs as if it were not part of a quasi at all, directly in the macro body. | 09:51 | ||
moritz | yes | 09:56 | |
09:57
spider-mario joined
|
|||
moritz | just like "foo { closure here }" runs as part of the outer routine, not of the string | 09:57 | |
masak | right. | ||
though the closure has its own lexical scope. I'm not sure the unquotes do. | |||
unquotes are slowly starting to work locally. it's thrilling to observe. | |||
moritz | \o/ | 09:58 | |
09:59
dakkar joined
|
|||
moritz | masak: commit early, commit often :-) | 09:59 | |
10:00
fgomez left,
birdwindupbird left
|
|||
masak hasn't forgotten :) | 10:00 | ||
just ironing out a few show-stopper bugs. | |||
10:01
sergot joined,
Guest93569 left
|
|||
sergot | Hi! o/ | 10:01 | |
10:01
birdwindupbird joined
|
|||
tadzik | o/ | 10:01 | |
10:02
hoelzro|away is now known as hoelzro
|
|||
hoelzro | what would be the correct term for a method call like this: $obj.Super::Class::method()? | 10:03 | |
I'm adding a test to roast for the behavior I'm seeing | |||
moritz | qualified method call | 10:05 | |
hoelzro | moritz: thanks | ||
dalek | c/htmlify-refactor: df46991 | moritz++ | / (2 files): switch writing index and disambiguation files to ues the Registry currently not quite awesome yet, since it duplicates entries |
10:09 | |
c/htmlify-refactor: e6d28fd | moritz++ | / (3 files): make disambiguations more awesome |
|||
10:10
fhelmberger left
10:14
MayDaniel joined
|
|||
hoelzro | is it ok to use 'is' to compare objects for testing? or is there a more suitable function to use? | 10:14 | |
masak | 'is' will stringify the objects and compare the strings. that may or may not be what you want. | 10:18 | |
r: use Test; class A { has $.x }; is A.new(:x(5)), A.new(:x(42)) | 10:19 | ||
p6eval | rakudo 94aa2b: OUTPUT«not ok 1 - # got: 'A<-809628722>'# expected: 'A<-809602341>'» | ||
masak | r: use Test; class A { has $.x }; is A.new(:x(5)), A.new(:x(5)) | ||
p6eval | rakudo 94aa2b: OUTPUT«not ok 1 - # got: 'A<-1153073948>'# expected: 'A<-1153093643>'» | ||
hoelzro | masak: I mean, that's acceptable | ||
because the default stringification should be the class + address | |||
masak | aye. | ||
so it essentially compares on object identity. | 10:20 | ||
dalek | ast: 892a1d7 | (Rob Hoelz)++ | S12-methods/qualified.t: Add test for self-preservation in qualified method calls |
||
sorear | masak: hi | ||
is jnthn around? | |||
10:21
Senthil1 joined
|
|||
hoelzro | ok, I've written a few tests for roast; time to start pulling my weight =) | 10:21 | |
masak | sorear: no, he doesn't seem to be around at the moment. | 10:22 | |
hoelzro | how do you Rakudo folk work on Rakudo? do you just work with the binary out of your working copy, or do you do a temp install somewhere? | ||
I'd like to contribute to Rakudo, but I also want to maintain my Rakudo ★ installation | 10:23 | ||
10:23
MayDaniel left
10:24
Senthil left
|
|||
masak | I mostly have a working copy per branch I own, plus one for the nom branch. I install the one for the nom branch, not the others. | 10:24 | |
hoelzro | so ./perl6 *should* just work, right? | ||
masak | does here. | 10:25 | |
hoelzro | ok, cool =) | 10:26 | |
tadzik | hoelzro: as long as you did 'make install' | ||
hoelzro | tadzik: huh? | ||
10:26
topo left
10:27
topo joined
|
|||
tadzik | hoelzro: you need 'make install' for stuff to work | 10:28 | |
hoelzro | I see.. | ||
is there a way to call a role's version of a method other than $obj.My::Role::method()? I need to get around the bug with that to continue with my chat bot | 10:34 | ||
something along the lines of My::Role.^find_method('method').bind(self).call(|@args) | 10:38 | ||
sorear | hoelzro: Try using a class instead? MI | 10:41 | |
10:45
JimmyZ_ joined
|
|||
JimmyZ_ | good evening, #perl6 | 10:47 | |
moritz | good UGT morning, JimmyZ_ | 10:48 | |
JimmyZ_ | morning, moritz | 10:49 | |
hoelzro | sorear: =( | ||
sorear | hoelzro: that's the internalized MI-phobia talking. Drop the long face and give it a try. | 10:50 | |
hoelzro | but...but...roles? | 10:51 | |
sorear | Are roles working for you? | ||
hoelzro | they were | 10:54 | |
dalek | c/htmlify-refactor: 98aa7f7 | moritz++ | htmlify.pl: switch write-routine-file to use the type registry. Get rid of some global vars |
11:03 | |
11:05
daxim joined
|
|||
jnthn | ohhai | 11:08 | |
jnthn the whole morning in meetings | |||
daxim gives jnthn a cookie | 11:09 | ||
jnthn 14 | 11:10 | ||
er, /win, not /me | |||
11:10
Coleoid left
|
|||
sorear | jnthn: ping. | 11:11 | |
jnthn | sorear: pong | ||
sorear | pm. | 11:12 | |
jnthn | ? | ||
daxim | ↑ query incoming ↑ | 11:13 | |
11:14
broquain1 joined,
cosimo__ joined,
masak_ joined
11:18
drbean left
11:19
drbean joined,
masak_ is now known as masak,
jeffreykegler joined
11:22
tadzik joined
11:24
prammer joined
11:25
hoelzro is now known as hoelzro|away
|
|||
arnsholt | Huh. Apparently one of the changes in my dyncall-sized-num breaks Rakudo | 11:34 | |
masak | chromatic writes about testing and Perl: www.modernperlbooks.com/mt/2012/08/...sting.html | 11:49 | |
moritz | www.perlmonks.org/?node_id=987033 # optimizing compiler for Perl 5? | 11:50 | |
masak | I half-expected the influence of the Pugs project to be mentioned in the article. knowing chromatic, I'd guess the omission is intentional and he has some good reason. | ||
11:50
Senthil1 left
|
|||
masak | (but of course, this is not a place where we psycho-analyze chromatic) :) | 11:50 | |
tadzik | I'd love to get it done and released at YAPC 2013, which will hopefully be held here in Austin. | 11:52 | |
Invent a time machine and send the code back from 2023. | |||
rurban++ nails it ;) | |||
oh, that's chromatic++ actually | |||
masak | moritz++ # nice answer! | ||
jnthn | You know you have a tricky problem on your hands when implemetning a time machine is the easier option. | ||
moritz | well, at least you don't have scheduling problems with the time machine (if you manage to build it at all) | 11:53 | |
masak .oO( "the time machine was tricky too, but made signficantly simpler because I had this design I sent back!" ) | 11:54 | ||
I think that's an autopun. | |||
11:54
jeffreykegler left
|
|||
tadzik | so you have the bootstraping problem to which the solution is "wait"? | 11:55 | |
moritz | tadzik: no need for waiting | 11:57 | |
jnthn | Doesn't this approach mean that you're assuming your future self would rather leave your past self waiting around for longer than needed, rather than going back to the point when you first had started wanting the time machine? | 11:58 | |
moritz | tadzik: because if you'll have a time machine, your future self would present it to you right *now* | ||
(unless your future self wants to wait until you're on your own :-) | |||
jnthn | .oO( Why does my future self always think he knows better than I do now? :P ) |
11:59 | |
11:59
Senthil joined
|
|||
moritz | jnthn: second system syndrome, I'm sure :-) | 11:59 | |
masak | jnthn: seems to be a very human way of thinking. | 12:01 | |
similarly, we feel we know better than people in the 19th century, not because science has progressed by leaps and bounds since then -- which it has -- but since they come from an era where photographs were black-and-white, if that, and they dressed very outmodedly and said funny things. | 12:02 | ||
jnthn | Yeah. I bet they didn't even dress in hacker t-shirts when they went to hackathons. :P | 12:04 | |
12:05
Senthil left
|
|||
masak | :D | 12:06 | |
jnthn tries to focus on this $reporting task | |||
On the up side, I just had the hand-off meeting about it :) | |||
masak | jnthn: they were probably helped by some cocky valley girl who spoke their language. | ||
wow, the comment about Perl in news.ycombinator.com/item?id=4379541 are not negative. | 12:07 | ||
moritz | maybe the ruby folks haven't woken up yet? :-) | ||
masak | there was at least one Ruby person among the commenters. | 12:08 | |
moritz | I know. I was joking. | 12:09 | |
masak | right. hence the smiley. :) | 12:13 | |
12:13
fridim_ joined
|
|||
jnthn | Ruby folks get to sleep in? Geez...good job I didn't know that when picking a language to hack on :P | 12:14 | |
moritz | nr: say <a b c A B>.uniq(*.uc) | 12:17 | |
p6eval | rakudo 94aa2b: OUTPUT«Too many positional parameters passed; got 2 but expected 1 in method uniq at src/gen/CORE.setting:1094 in block at /tmp/RtD_SMbk4a:1» | ||
..niecza v19-21-gc86e8e5: OUTPUT«Unhandled exception: Excess arguments to Any.uniq, used 1 of 2 positionals at /home/p6eval/niecza/lib/CORE.setting line 0 (Any.uniq @ 1)  at /tmp/hi_m4Ozt3i line 1 (mainline @ 3)  at /home/p6eval/niecza/lib/CORE.setting line 3929 (ANON @ 3)  at /ho… | 12:18 | ||
jnthn | awww | 12:19 | |
It'd be nice if .uniq could do that :) | |||
tadzik | oh yes | 12:21 | |
even List::Util has uniq_by in TODO | |||
I'm missing it from time to time | 12:22 | ||
jnthn uses the Linq equivalent to that a reasonable amount in real world code | 12:23 | ||
colomon | seems like it would be easy enough to add to List::Utils... | 12:29 | |
tadzik | yep | ||
I was planning to make that my first contribution to Perl 5 :) | |||
dalek | c/htmlify-refactor: 43ee365 | moritz++ | htmlify.pl: kill some dead code |
12:32 | |
c/htmlify-refactor: 0945572 | moritz++ | htmlify.pl: remove %types. Switch search to the type registry instead |
|||
sirrobert | I really agree with this from that article (fwiw): Of all the languages I've used for pay and for hobby, none compare to Perl in terms of testing culture and ecosystem. | 12:33 | |
take out "testing" and it's still true | |||
moritz | ok, htmlify-refactor branch is ready for merging | ||
I've synced its output to doc.perl6.org | |||
daxim | tadzik, leonerd said he wants to merge his <p3rl.org/List::UtilsBy> *_by functions into List::Util | ||
12:33
scottdware joined
|
|||
moritz | if anybody finds something wrong the site, please tell me soon | 12:34 | |
otherwise I'll merge later today | |||
colomon | tadzik: no, List::Utils, the p6 version. ;) | ||
tadzik | colomon: oh, I see :) | ||
daxim: bah, too late then :) | |||
daxim | a reminder can't hurt, I also want MOAR functional prog | 12:35 | |
moritz | disambiguation pages like doc.perl6.org/Str have changed, they now list each separately documented variant of a routine | ||
sirrobert | doc.perl6.org/routine/Str | 12:39 | |
there's an odd ordered list at the top of the page. | |||
(at least, *I* don't understand it =) | |||
or rather | 12:41 | ||
daxim | that list should say: Str from Mu, Str from List and so on | ||
sirrobert | I guess I mean: I think the section labels could be better | ||
moritz | right | ||
jnthn | maybe "routine Str from Mu" | 12:42 | |
is it hard to differentiate sub from method? | |||
sirrobert | Mu.Str ? | ||
It's nice when docs use language-like syntax | 12:43 | ||
reduces the cognitive load | |||
jnthn | Mu.Str (method) | ||
Str (type) | |||
perhaps | |||
sirrobert | on that page, the primary info is Mu, List, etc. | ||
not Str | |||
moritz | jnthn: not hard, just nasty (differentiate sub from method) | ||
sirrobert: ok, will fix | 12:44 | ||
sirrobert | I'll scan for other stuff | ||
jnthn | moritz: Nasty in what sense? | ||
moritz | jnthn: I need to extract the first code block from the pod tree, and see if it declares a sub or a method | ||
and all of that is nasty to do | |||
the first needs nasty walking of nasty doc tree | 12:45 | ||
the second needs partial parsing of Perl 6 declarations | |||
12:45
MayDaniel joined
|
|||
jnthn | ah, ok | 12:46 | |
I'll settle with routine for now then :) | |||
12:48
scottdware left
|
|||
sirrobert | looks good. (this is the first time I've seen doc.perl6.org) Thanks =) | 12:48 | |
12:50
cognominal joined
12:55
scottdware joined
12:56
PacoAir joined
12:57
scottdware left
12:58
scottdware joined
12:59
JimmyZ_ left
13:01
scottdware left
13:02
scottdware joined,
snearch joined
|
|||
sirrobert | when I worked at my old company, we used a proprietary docs format (not POD). Where can I find the docs on perl6 POD -- especially for someone not used to POD | 13:05 | |
diakopter | it's complicated, because there's the perl6 POD that's specified in S26, and then there's what's implemented, and they're extremely different | 13:06 | |
sirrobert | ok ... I'll go with implemented for now =) | ||
I'm writing production code | |||
heh | |||
diakopter | afaik, what's implemented is basically the same as p5 | 13:07 | |
jnthn | huh? | ||
sirrobert | ok hmm | ||
diakopter | ? | ||
sirrobert | ? | ||
=) | |||
jnthn thought the implementation tadzik++ did in Rakudo followed S26 rather well | |||
diakopter missed a year or two here or there | |||
jnthn | As in, it can parse S26 which is written in Perl 6 Pod. :) | 13:08 | |
sirrobert | tell you what, I'll just follow S26 and let you know if anything breaks. | ||
moritz | not all of S26 is implemented, but a good part of it | ||
diakopter | ohh.. | ||
I didn't realize it was better than STD in that regard.... | 13:09 | ||
moritz | doc.perl6.org/routine/Str now with more varied headings | ||
doc.perl6.org is all powered by p6 doc and Pod::To::HTML and a large piece of custom glue code | |||
sirrobert | thanks, Moritz | ||
moritz | ) can't easily get rid of the 'Str' subheadings, at least not now | 13:10 | |
sirrobert | oh wait, I mean: moritz++ =) | ||
dalek | c/htmlify-refactor: ee09646 | moritz++ | htmlify.pl: better headings for routine files |
||
c: 6e06b33 | moritz++ | lib/Perl6/Documentable.pm: Perl6::Documentable skeleton |
13:11 | ||
doc: 05d0485 | moritz++ | lib/Perl6/Documentable.pm: | |||
doc: flesh out Documentable a bit | |||
13:11
dalek left
13:12
dalek joined,
ChanServ sets mode: +v dalek
13:13
scottdware left
13:14
bluescreen10 joined,
scottdware joined
|
|||
mathw | While I would very much like to be writing this code in a glorious Perl 6 implementation, I have to admit that Perl 5 is pretty awesome in itself :) | 13:17 | |
13:20
leprevost joined
|
|||
tadzik | well, I +1 jnthn, I think I implented S26 rather well ;) | 13:22 | |
sirrobert: if you find something which S26 likes and Rakudo doesn't, please yell at me until I fix it | |||
moritz | tadzik: speaking of pod stuff... | 13:23 | |
sirrobert | tadzik: wilco | ||
moritz | tadzik: in htmlify.pl in the perl6/doc repo, I have sub pod-gist | ||
tadzik: which I use to debug/inspect pod trees | |||
tadzik: please try it on some pod docs, and see if you like the output | |||
tadzik: if yes, I'll be happy to port it to rakudo | 13:24 | ||
(or you can do it) | |||
tadzik | moritz: so it's like Pod.gist? | 13:25 | |
moritz | tadzik: no, IMHO it's better :-) | 13:26 | |
tadzik | ;) | ||
moritz | tadzik: but a possible replacement for Pod::Block.gist, yes | ||
tadzik | okay, I'll take a look after $work | ||
13:27
fhelmberger joined
13:30
JimmyZ joined
|
|||
masak | TimToady++ # rosettacode.org/mw/index.php?title=...nge#Perl_6 | 13:30 | |
13:30
fhelmberger left
|
|||
masak | TimToady: how can 'not samefringe $a, $x' work? doesn't Z=== stop when the shortest list finishes? | 13:33 | |
rn: say 1,2,3,4,5,6,7,8 Z=== 1,2,3,4,5,6,7,8,9 | |||
[Coke] ~~ | |||
p6eval | rakudo 94aa2b, niecza v19-21-gc86e8e5: OUTPUT«True True True True True True True True» | ||
masak | rn: say all 1,2,3,4,5,6,7,8 Z=== 1,2,3,4,5,6,7,8,9 | 13:34 | |
p6eval | niecza v19-21-gc86e8e5: OUTPUT«all(Bool::True, Bool::True, Bool::True, Bool::True, Bool::True, Bool::True, Bool::True, Bool::True)» | ||
..rakudo 94aa2b: OUTPUT«all(True, True, True, True, True, True, True, True)» | |||
masak | rn: say so all 1,2,3,4,5,6,7,8 Z=== 1,2,3,4,5,6,7,8,9 | ||
p6eval | rakudo 94aa2b, niecza v19-21-gc86e8e5: OUTPUT«True» | ||
masak | [Coke]: \o | ||
moritz | masak: if we had a meta-operator for roundrobin, that might be a use case for it | 13:35 | |
(if you want the comparison to return False because one list is longer) | |||
13:36
skids joined
|
|||
masak | I don't want more metaoperator, I want fewer. :/ | 13:36 | |
s* | |||
13:37
fridim_ left
|
|||
[Coke] | gabor sez: "Note! This site is about Perl 6, the future version of Perl." Is that "close enough" or should we suggest an alternate phrasing. | 13:38 | |
perl6maven.com/perl5-to-perl6-arrays | |||
pmichaud | I'd prefer an alternate phrasing, yes. | ||
masak | I think "the future version of Perl" hits two of the red buttons that mst and I agreed we would try not to push. | ||
"future" angers sixers, "version" angers fivers. | 13:39 | ||
moritz | "This site is about Perl 6. If you don't know which Perl version you are using, it is likely version 5. See perl5maven.com for more information on Perl 5" | 13:43 | |
13:45
scottdware left
|
|||
masak | s/Perl version/Perl/ | 13:46 | |
s/version 5/Perl 5/ | |||
moritz | "This site is about Perl 6. If you don't know which Perl you are using, it is likely Perl 5" | 13:48 | |
dalek | kudo/sigilless: d3d3555 | moritz++ | src/core/Str.pm: switch Str to sigilless params |
13:49 | |
kudo/sigilless: c9417ca | moritz++ | src/core/ (5 files): switch IO, PseudoStash, traits, control.pm and stubs.pm to sigilless params |
|||
kudo/sigilless: 217d1e3 | moritz++ | src/core/Bool.pm: switch Bool to sigilless params |
|||
kudo/sigilless: 44730d6 | moritz++ | src/core/ (2 files): switch Regex and MapIter to sigilless params |
|||
kudo/sigilless: 96e60eb | moritz++ | src/core/Enum (2 files): switch Enum and EnumMap to sigilless params |
|||
kudo/sigilless: 56f00c7 | moritz++ | src/core/ (2 files): switch Num and a few others to use sigilless params |
|||
[Coke] | news.perlfoundation.org/2012/08/201...osals.html - | 13:50 | |
public comments on the 2 grants this quarter welcome. | |||
moritz | anybody wants a dumb but necessary Perl 6 task? | ||
[Coke] | (one of them is sixian.) | ||
no, I'm full up on <insert name of developer here>! | |||
moritz | in the sigilless branch, go through the setting and replace sub f(\$x) { uses $x here } with sub f(\x) { uses x here } | 13:51 | |
13:52
BlueT_ left
|
|||
felher | moritz: why do we change everything to sigilless? | 13:52 | |
[Coke] | anyone know Aliaksandr Zahatski? | ||
sigils impose a context which the setting doesn't want to use. | |||
pmichaud | impose? or imply? | ||
jnthn | .oO( nobody expects the sigil imposition ) |
13:53 | |
[Coke] | I believe impose was the word used yesterday: I am merely parroting. | ||
moritz | [Coke]: because the old syntax isn't valid Perl 6 anymore | ||
and yes, they (are supposed to) impose a context | |||
[Coke] | oh, \$x, not $x | ||
pmichaud | if they impose a context, then that's a significant change to Rakudo. | 13:54 | |
moritz | that's why there are now several hundred (felt) warnings while compiling the setting, in the the sigilless branch | ||
pmichaud | you mean that the following no longer holds...? | ||
r: my $x := Array.new(1,2,3); for $x { .say }; | 13:55 | ||
p6eval | rakudo 94aa2b: OUTPUT«123» | ||
moritz | pmichaud: correct | ||
pmichaud | is that fixed in the sigilless branch? | ||
moritz | no | ||
it's only the first step | |||
pmichaud | that's going to be a significant task to implement. | ||
because it means that flattening behavior is no longer tied to containerness. | 13:56 | ||
felher | Ah, okay. sub a (\$variable) is not valid anymore. It's sub a (\variable) now ? | ||
moritz | unless every scalar var gets a container | ||
felher: correct | |||
pmichaud | if every scalar var gets a container, then my $x := doesn't dtrt | ||
felher | moritz, coke: okay, thanks :) | ||
jnthn | fwiw, I hadn't understood that we were changing the semtnics of binding to a scalar | 13:57 | |
moritz | pmichaud: sigilless now just provides the correct way to do it without the $ sigil | ||
pmichaud | moritz: I'm worried about the notion that the $ imposes a context. | ||
moritz | n: my $a := Array.new(1, 2, 3); .say for $a | ||
p6eval | niecza v19-21-gc86e8e5: OUTPUT«Unhandled exception: Excess arguments to List.new, used 1 of 4 positionals at /home/p6eval/niecza/lib/CORE.setting line 0 (List.new @ 1)  at /tmp/OKetQ47nnG line 1 (mainline @ 3)  at /home/p6eval/niecza/lib/CORE.setting line 3929 (ANON @ 3)  at /ho… | ||
moritz | n: my $a := (1, 2, 3); .say for $a | ||
p6eval | niecza v19-21-gc86e8e5: OUTPUT«1 2 3» | ||
jnthn | I'd understood it as "having the $ sigil on something that we know may or may not be a container is suboptimal" | 13:58 | |
pmichaud: I'm bothered about that too :( | |||
13:59
kaleem left
|
|||
jnthn | If it's the case and spec'd. | 13:59 | |
pmichaud | I'm just saying that if we say that the $ always imposes a non-flattening context, even under := binding, then that's a very significant change to Rakudo and its internals. | 14:00 | |
jnthn | Indeed | 14:01 | |
pmichaud | it also greatly affects lists and flattening behavior. | ||
as in, I have to rethink the model yet again a bit. | |||
jnthn | :( | ||
pmichaud | I'm afk again for a few minutes. | ||
jnthn wonders when enough is enough on this stuff | |||
masak | I guess part of the torment is the ground moving under the implementor. | 14:02 | |
if it's any consolation, it's painful for app developers, too. | 14:03 | ||
jnthn | Yes, but there's limited tuits and we're worrying about increasingly tiny warts, fixing of which threatens to spend a lot of tuits. | 14:05 | |
masak | aye. | ||
jnthn | Imagine if we spent them on, oh, I dunno, async IO, or making pre-comp more robust, or more memory/performance improvements, or S09... | ||
masak | you know those tuits aren't fungible :) but point taken. | 14:06 | |
well, what pmichaud is doing is *very* important: distilling a sane underlying model on top of which we can build the rest. | |||
what I'd like to optimize for more than other things is for pmichaud to be able to do that as efficiently as possible. | |||
moritz | fwiw even if we decide that $ does not always impose context, I think the sigilless stuff is worth it | 14:07 | |
because it reduce the number of times that a user is exposed to a $-sigiled var that is not a scalar | 14:08 | ||
jnthn | moritz: Oh, the sigilless stuff is worth it, I agree. | ||
moritz: Well, yes, if you have to *explicitly* bind with := then I think it's much less of an issue. | |||
14:10
tanzdebil joined
|
|||
tanzdebil | morning, peoples | 14:10 | |
14:10
SamuraiJack joined
|
|||
tanzdebil | r: say caller.WHAT | 14:10 | |
p6eval | rakudo 94aa2b: OUTPUT«===SORRY!===CHECK FAILED:Undefined routine '&caller' called (line 1)» | 14:11 | |
tanzdebil | n: say caller.WHAT | ||
p6eval | niecza v19-21-gc86e8e5: OUTPUT«Unhandled exception: System.NullReferenceException: Object reference not set to an instance of an object at Anon.1.Run.MAIN.C0mainline (Niecza.Frame ) [0x00000] in <filename unknown>:0  at Niecza.Kernel.RunCore (Niecza.Frame& cur) [0x00000] in <filenam… | ||
tanzdebil | so, no caller? | ||
jnthn | No, though CALLER:: pseudo-packager is implemented if that does what you want | 14:12 | |
tanzdebil | ok... | 14:13 | |
jnthn | What do you need to do, ooc? | ||
moritz | tanzdebil: it's called callframe in Perl 6 | 14:15 | |
jnthn | oh! | ||
pmichaud | back again | ||
14:16
fridim_ joined
|
|||
pmichaud | I totally agree that sigilless is worth it. I'm not arguing against that at all. | 14:16 | |
masak | r: say callframe.^name | ||
p6eval | rakudo 94aa2b: OUTPUT«CallFrame» | ||
sirrobert | trying to install DBIish with panda: Unrecognized nqp:: opcode 'nqp::nativecallrefresh' at line 274, near ";\n 1;\n}" | ||
masak | r: say callframe.^methods>>.name | ||
p6eval | rakudo 94aa2b: OUTPUT«new line file callframe <anon> <anon> <anon>» | ||
sirrobert | apparently it couldn't resolve some dependency resolution for "NativeCall" | 14:17 | |
is this a known issue? | |||
pmichaud | I very much like the notion that I can bind a symbol to something without a sigil implying something that isn't true. | ||
masak | sirrobert: that's zavolaj. | ||
moritz | sirrobert: does 'use NativeCall;' work? | ||
jnthn | arnsholt++ has been doing quite a few bits with NativeCall of late. | ||
sirrobert | moritz: seems to | ||
jnthn | Maybe current depends on having a very recent Rakudo or NQP or something. | ||
tanzdebil | r: sub foo { say callframe^.name } foo() | ||
p6eval | rakudo 94aa2b: OUTPUT«===SORRY!===Confusedat /tmp/2ZV7903UMx:1» | ||
pmichaud | semicolon | 14:18 | |
std: sub abc(\$x) { say $x; }; # just checking | |||
p6eval | std 235f71b: OUTPUT«Potential difficulties: Unsupported use of \ with sigil; nowadays please use \ without sigil at /tmp/mhtuVVR8iL line 1:------> sub abc(\$x⏏) { say $x; }; # just checkingok 00:00 43m» | 14:19 | |
14:19
snearch left
|
|||
moritz | tanzdebil: .^ is always a call to the meta class -- not what you want | 14:19 | |
sirrobert | despite the fact that "use NativeCall;" works when I try it, installing DBIish still tries to grab and install it (maybe a version thing?) | ||
when I did: panda install NativeCall it gives the same error. | |||
pmichaud | std: sub abc(\@x) { say @x; }; | ||
p6eval | std 235f71b: OUTPUT«Potential difficulties: Unsupported use of \ with sigil; nowadays please use \ without sigil at /tmp/y3VRz4jIsp line 1:------> sub abc(\@x⏏) { say @x; };ok 00:00 43m» | ||
arnsholt | It's the bat^wNativeCall signal! | 14:20 | |
arnsholt reads | |||
pmichaud | That gives me a twinge; it means we no longer have the equivalent of "is ref" for sigiled variables. | 14:21 | |
tanzdebil | r: sub foo { say callframe.WHAT } foo() | ||
p6eval | rakudo 94aa2b: OUTPUT«===SORRY!===Confusedat /tmp/H_c_q5VZuw:1» | ||
pmichaud | maybe we don't need (or want) it, but it feels like we've lost something there. | ||
jnthn | r: sub foo { say callframe.WHAT }; foo() | ||
p6eval | rakudo 94aa2b: OUTPUT«CallFrame()» | ||
sirrobert | woops... MiniDBI uses NativeCall too =) | ||
arnsholt | sirrobert: I think it might be an old Rakudo/NQP pair. Do you compile and install your own, or do your install a package from somewhere? | ||
sirrobert | install my own, but it's been a month or so | 14:22 | |
tanzdebil | moritz: ok, thanks -- I just want something that, well, acts sort of like the way caller is described in S06-advanced/caller.t | ||
sirrobert | compile my own, I mean | ||
tanzdebil | if such a thingy exists | ||
moritz | tanzdebil: what do you need it for? | ||
arnsholt | Hmm. Think that should be recent enough | ||
Oh, no! | |||
moritz | tanzdebil: if you want the caller's name, Backtrace is currently the best route | ||
sirrobert | arnsholt: let me do a re-compile and see (just takes a few minutes) | ||
tanzdebil | to behave like caller() in p5 | ||
arnsholt | That'll fix it | ||
sirrobert | arnsholt: ok =) What's the thing, do you think? | 14:23 | |
14:23
brrt left
|
|||
arnsholt | nativecallrefresh is a recent addition | 14:23 | |
pmichaud | anyway, since STD.pm6 doesn't like \ in front of sigiled variables, I totally agree that the sigilless branch will need to convert all of the \$x to \x in the setting. | ||
moritz | r: sub f { g() }; sub g { say Backtrace.new.[0].subname }; f() | ||
p6eval | rakudo 94aa2b: OUTPUT«new» | ||
jnthn | moritz: We will warn about it in the next release, iiuc? | ||
moritz | r: sub f { g() }; sub g { say Backtrace.new.[1].subname }; f() | ||
p6eval | rakudo 94aa2b: OUTPUT«g» | ||
arnsholt | It's an opcode to manually refresh objects that have been twiddled by C code while you weren't looking, so to speak | ||
moritz | r: sub f { g() }; sub g { say Backtrace.new.[2].subname }; f() | ||
jnthn | moritz: And remove it further down the line? | ||
p6eval | rakudo 94aa2b: OUTPUT«f» | ||
moritz | jnthn: that's up for discussion | ||
pmichaud | Whether we go further and say that $ on a variable ->imposes<- a context in expressions needs further discussion. | ||
moritz | jnthn: currently the parser issues a warning, and that's hard-coded | 14:24 | |
jnthn: whether we merge the branch before or after the release can be discussed | |||
14:24
scottdware joined
|
|||
arnsholt | (We check arguments to functions for modifications, but if a previous function has saved a reference to a memory location and a later function, not taking the object as an argument directly, changes it, you have to manually refresh) | 14:24 | |
tanzdebil | r: sub g { say Backtrace.new.[0].WHAT }; g() | ||
p6eval | rakudo 94aa2b: OUTPUT«Backtrace::Frame()» | ||
tanzdebil | r: sub g { say Backtrace.new.[0].subname }; g() | ||
p6eval | rakudo 94aa2b: OUTPUT«new» | ||
tanzdebil | r: sub g { say Backtrace.new.[1].subname }; g() | ||
p6eval | rakudo 94aa2b: OUTPUT«g» | ||
tanzdebil | awesome! | 14:25 | |
moritz | also depends a bit on if and what policy we adopt for managing changes | ||
[Coke] | does std have a test suite? --lazyCoke | ||
moritz | [Coke]: roast :-) | ||
pmichaud | [Coke]: std uses roast also | ||
I have to run errands; I'm afk for a while. | 14:26 | ||
tanzdebil | moritz -- thanks! | ||
[Coke] | I wonder if I should add std to the list of daily spec testers. | 14:27 | |
moritz | doc.perl6.org/Str # now knows that some of them are methods | ||
masak | r: sub g { .say for Backtrace.new.list>>.subname }; g | 14:28 | |
p6eval | rakudo 94aa2b: OUTPUT«newg» | ||
dalek | rl6-roast-data: 8d6f501 | coke++ | / (4 files): today |
||
moritz | rakudo introduces two callframes for the mainline | ||
that's why there are two empty lines in the output | 14:29 | ||
[Coke] | rakudo just hit 23000 | ||
masak | \o/ | ||
jnthn | \o/ | 14:30 | |
14:31
scottdware left,
scottdware joined
14:32
scottdware left,
scottdware joined,
thou joined
14:33
scottdware left,
scottdware joined
14:34
scottdware left
14:35
sftp joined,
wtw left
|
|||
arnsholt | [Coke]: Having std check the spectests sounds good to me | 14:36 | |
14:37
alester joined
14:40
benabik left
14:42
benabik joined
|
|||
colomon had to foolishly go and add one more test for existing code to List::Utils, and it doesn't work under Niecza. :( | 14:44 | ||
colomon will take some of the credit for 23000, having added new tests in the last couple of days. ;) | 14:45 | ||
diakopter can't push to github :( | 14:46 | ||
masak | diakopter: works here. | 14:47 | |
14:47
scottdware joined
|
|||
diakopter | :/ looks like dns problem at my end. | 14:47 | |
14:52
tanzdebil left
|
|||
kresike | bye all | 14:59 | |
15:00
kresike left
15:01
JimmyZ left
|
|||
TimToady | masak: that is why I tack an Any on the end of each list | 15:02 | |
colomon | oh, you are testing this case, aren't you? TimToady++ | 15:04 | |
wait... what about 1 => 2 => 3 => 4 => 5 => 6 => 7 => 8 => Any versus 1 => 2 => 3 => 4 => 5 => 6 => 7 => 8 ? | |||
TimToady | Any === Any | 15:05 | |
and I assume the leaves don't contain an Any | |||
I wanted to use Nil, but it disappears in list context by the currently implemented semantics | 15:06 | ||
(I think that's one of the things OKness was going to change) | |||
masak | TimToady: ah, that clears it up. | 15:19 | |
15:19
havenn joined
15:25
jeffreykegler joined
|
|||
TimToady | a couple other things: rakudo's Z isn't lazy, and niecza doesn't allow fringeˊ with the MODIFIER LETTER ACUTE ACCENT on the end | 15:27 | |
and while niecza's Z is lazy, Z=== isn't | 15:29 | ||
masak | there's three bug reports in what you just said. I think only the first may have been submitted. | 15:30 | |
15:32
Timothy69 joined
|
|||
jnthn | decommute & | 15:32 | |
Timothy69 | bleh:) | 15:33 | |
colomon | is for really supposed to be eager if the list passed is not known infinite, or is that a rakudo-bug? | 15:34 | |
15:34
Timothy69 left
|
|||
colomon | nr: for 1..* Z 1..* -> $a { say $a; last if $a == 3 } | 15:34 | |
p6eval | niecza v19-21-gc86e8e5: OUTPUT«11223» | ||
..rakudo 94aa2b: OUTPUT«(timeout)» | |||
colomon | nr: for 1..* -> $a { say $a; last if $a == 3 } | 15:37 | |
p6eval | rakudo 94aa2b, niecza v19-21-gc86e8e5: OUTPUT«123» | ||
15:39
havenn left
15:40
tanzdebil joined,
thelazydeveloper joined
|
|||
TimToady | to see the lack of laziness, put 'say $leaf' in with the 'take $leaf' | 15:41 | |
for is supposed to be eager in sink context, and lazy when it's functioning as a map | 15:42 | ||
colomon | oh! Is my bug a Z bug rather than a for bug? | ||
TimToady | I don't see a bug in what you put up above | 15:43 | |
oh, wait | |||
that was niecza | |||
colomon | do we have an idiom for "I want to lazily loop through this array and have side-effects rather than results?" | ||
wait, is map also supposed to be eager in sink context? | 15:44 | ||
moritz | sure | ||
TimToady | yes | ||
colomon: sure, we have such an idiom, called read the next element of the list | 15:45 | ||
colomon | TimToady: how do you do that without destroying the list? | ||
TimToady | but using lazy lists for side effects is kinda...fraught... | ||
lists are meant to be destroyed | |||
moritz | colomon: a lazy loop without results would just never do anything | ||
TimToady | use an array if you want to keep the values | 15:46 | |
colomon | of for pete's sake | ||
gist.github.com/3350408 # how do you suggest implementing this so it can handle lazy lists as input? | 15:47 | ||
colomon has already used "gather for" four times this morning... | 15:48 | ||
sirrobert | arnshold et al.: recompiling rakudo from the latest tarball didn't fix the NativeCall error | ||
going to look into a workaround =) | 15:49 | ||
TimToady | why wouldn't that handle lazy lists? gather provides a sink context, so the for runs, and it stops at the take unless there is demand for the next value | ||
15:49
tokuhiro_ left
|
|||
arnsholt | sirrobert: You need a new NQP as well. Not sure if the NQP revision Rakudo currently wants is new enough | 15:49 | |
(If it isn't we'll probably want to fix that) | |||
15:49
tokuhiro_ joined
|
|||
sirrobert | arnsholt: hrm. Where do I get a new NQP (and what's NQP? =) | 15:50 | |
colomon | TimToady: "for is supposed to be eager in sink context" | ||
sirrobert | ah, found it on github. reading | ||
moritz | arnsholt: should I bump rakudo's NQP_REVISION to nqp master? | ||
TimToady | the for is eager, sure | ||
that doesn't mean the loop doesn't hang when it needs to | |||
sirrobert | moritz: let me see if that fixes my problem, at least | ||
(or do it for other reasons) | |||
arnsholt | moritz: I think that should fix it | 15:51 | |
TimToady | okay, let's rephrase that | ||
colomon | TimToady: maybe we're not talking about for being eager in the same way. I mean eagerly evaluating the list it is passed before starting to executre | ||
moritz | arnsholt: it's already on newest | ||
TimToady | right | ||
moritz | arnsholt: maybe you need to merge your branch first? | ||
arnsholt | Oh! | ||
I feel silly now =) | |||
:q | |||
hugme hugs arnsholt, good vi(m) user! | |||
TimToady | the 'for' is eager in the sense that it keeps trying to get the next value of the lazy list | ||
sirrobert | arnsholt: any ideas about my issue? | 15:52 | |
TimToady | it is not eager in the sense of slapping an eager() around the argument list | ||
colomon | TimToady: ah. it certainly has done that in Rakudo in the past. | ||
TimToady | and that confusion may be at the root of most of the eagerness bugs in rakudo | ||
masak | TimToady: that's not a distinction I've seen made anywhere before. | ||
15:53
joyv joined
|
|||
TimToady | anything eager just keeps reading the lazy list. eager() merely does that till it runs out of list, and returns the whole list | 15:53 | |
masak | TimToady: so, you're saying that the difference in eagerness between 'for' and 'map'... is non-syntactical? | ||
TimToady | there is no difference | ||
masak | ok. | ||
moritz | (if we do sink context properly, there is no difference) | ||
TimToady | there is not supposed to be a difference, I should say | 15:54 | |
15:54
tokuhiro_ left
|
|||
colomon | nr: gist.github.com/3350456 | 15:54 | |
p6eval | rakudo 94aa2b: OUTPUT«===SORRY!===Missing blockat /tmp/c4vhQQ9sz9:10» | ||
..niecza v19-21-gc86e8e5: OUTPUT«===SORRY!===Missing block at /tmp/oOIw6xlR_V line 10 (EOF):------> }⏏<EOL>Parse failed» | |||
colomon | nr: gist.github.com/3350456 | 15:55 | |
p6eval | rakudo 94aa2b: OUTPUT«===SORRY!===Missing blockat /tmp/0622KMBDYq:10» | ||
..niecza v19-21-gc86e8e5: OUTPUT«===SORRY!===Missing block at /tmp/Ti2HUhvHyM line 10 (EOF):------> }⏏<EOL>Parse failed» | |||
arnsholt | moritz: It's not in a branch | 15:56 | |
master has nqp::nativecallrefresh inserted in QAST/Operations.nqp | |||
So latest NQP should fix it | |||
TimToady | std: gist.github.com/3350456 | ||
p6eval | std 235f71b: OUTPUT«ok 00:00 45m» | ||
colomon | nr: gist.github.com/3350456 | 15:57 | |
moritz | arnsholt: we are talking about 83e2a14cc9f8e6fd09bb78a897c39deba8809f70 in nqp as "latest master", right? | ||
sirrobert | arnsholt: compiling now | ||
p6eval | rakudo 94aa2b: OUTPUT«(timeout)» | ||
..niecza v19-21-gc86e8e5: OUTPUT«123» | |||
arnsholt | moritz: Yup | ||
moritz | that's what rakudo/nom uses as NQP_REVISION | 15:58 | |
arnsholt | Bah! | ||
colomon | TimToady: yeah, Rakudo's for effectively slaps an eager around the argument list still. (Though only if it is not known infinite) | ||
arnsholt | In that case, I have no idea what's wrong | ||
TimToady | colomon: I'm surprised niecza didn't give you a better message there | ||
colomon | TimToady: me too | ||
TimToady | std: for lines -> {...} | ||
p6eval | std 235f71b: OUTPUT«===SORRY!===Function 'lines' needs parens to avoid gobbling block at /tmp/e8a8p3obI7 line 1:------> for lines⏏ -> {...}Missing block (apparently gobbled by 'lines') at /tmp/e8a8p3obI7 line 1:------> for lines -> {...}[33… | 15:59 | |
TimToady | that message | ||
std: sub generate {...}; for generate -> {...} | |||
p6eval | std 235f71b: OUTPUT«===SORRY!===Function 'generate' needs parens to avoid gobbling block at /tmp/IeAbHuFnGC line 1:------> sub generate {...}; for generate⏏ -> {...}Missing block (apparently gobbled by 'generate') at /tmp/IeAbHuFnGC line 1:------… | ||
colomon | n: sub generate {...}; for generate -> {...} | ||
p6eval | niecza v19-21-gc86e8e5: OUTPUT«===SORRY!===Missing block at /tmp/qRGlHPjh1o line 1 (EOF):------> ub generate {...}; for generate -> {...}⏏<EOL>Parse failed» | ||
TimToady | oh, I think that uses %*MEMOS, which niecza has avoided | ||
15:59
am0c joined
|
|||
TimToady | errands & | 16:00 | |
sirrobert | arnsholt: hrm... ok. Going to get some lunch. Will try to think of something while I'm gone =) | 16:01 | |
worst case scenario is I can just wire it up manually for this deadline and integrate with a DBI later. | 16:02 | ||
16:03
joyv left
|
|||
arnsholt | Sounds like a plan, yeah =) | 16:04 | |
colomon | Okay, List::Utils now has uniq-by, though one of the tests for it hangs in Rakudo. (Everything works in Niecza.) | 16:05 | |
masak | hm, I wonder if there's a case for spec'ing .uniq to do what .uniq-by does... | 16:07 | |
jnthn home | |||
tadzik | I'd +1 that | 16:09 | |
colomon | masak: I believe so. | 16:12 | |
masak: but part of the rationale for List::Utils has always been, "maybe some of these should be a core part of p6" | 16:13 | ||
masak | well, in that case, colomon++ | ||
colomon | note that there are some interesting questions about just how it should work | ||
masak | it doesn't feel *obvious* that .uniq should have an optional &by argument... but it feels kinda, um, strangely consistent that it do. | 16:14 | |
thus placing it in the same "class" of methods as .min and .sort | |||
colomon | The niecza source code says "[uniq] needs a way of taking a user-defined comparison specifier, but AFAIK nothing has been spec'd yet." Mind you, I probably wrote that myself. ;) | 16:15 | |
masak | heh. | 16:16 | |
as to "some interesting questions about just how it should work" -- how about this: run the &by code, and compare results with === :) | 16:17 | ||
simple and works for anything I can think of. | 16:18 | ||
colomon | and O(N^2), no? | ||
jeffreykegler | Reading STD.pm it looks like precedence is set using an <O(...)> assertion | 16:19 | |
Which synopsis is that documented in? | |||
colomon | I meant specifically, do you return the original $element from the list, or &by($element)? | ||
masak | colomon: original, of course. | ||
colomon | yeah, that's what I'm thinking too | ||
masak | otherwise you'd just .map.uniq | ||
colomon | exactly | ||
masak | jeffreykegler: in STD.pm :) | 16:20 | |
jeffreykegler | masak: Doesn't count!! I said synopsis :-) | ||
arnsholt | I'm not sure the exact mechanism of setting precedence levels is specced | 16:21 | |
masak | S05 definitely talks about precedence levels. | ||
I don't hink it talks about <O(...)> | 16:22 | ||
but I've always thought of that one as STD.pm6-specific. | |||
arnsholt | Yeah, I'm pretty sure it is | 16:25 | |
Although NQP (and by extension Rakudo, I guess) have adopted the same convention I think | 16:26 | ||
16:26
tanzdebil left
|
|||
moritz | <O($level)> parses any expression with precedence tighter (or equal?) than $level | 16:26 | |
thou | tadzik: i found a few things that don't work right w/ rakudo S26 handling | ||
r: my $pod = eval "=head1 Foo\n\n =head1 Bar\n\n\$=pod\n"; say $pod.perl; | |||
p6eval | rakudo 94aa2b: OUTPUT«===SORRY!===Preceding context expects a term, but found infix = insteadat eval_0:3» | ||
16:26
scottdware left
|
|||
jeffreykegler | Is <O(...)> a builtin? | 16:26 | |
moritz | not in Perl 6, no | 16:27 | |
we haven't found a good way to expose the precedence parse to user space | |||
thou | (indented pod block doesn't work unless it's the first block) | ||
moritz | but it's soemthing we've been wanting to do for ages | ||
jeffreykegler | moritz: I'd always wondered about that | 16:28 | |
tadzik | thou: gist please? | ||
thou | tadzik: sure, one minute | ||
jeffreykegler | I mean I get the basic idea of mixing operation precedence and LL | ||
But now that I have experience with boundaries between parsers I know they can be very hard to document in any reasonable way | 16:29 | ||
masak | you do? cool! | ||
yeah, and there's been some bugs in the boundaries as well. | |||
so it's not trivial. | |||
moritz | one thing that always bothered me about the precedence parser is that it "just" uses special names | ||
ie things like 'term' are hard coded in there | |||
16:30
dakkar left
|
|||
jeffreykegler | Sure, the basic idea is when you need to parse you call the "do what I mean" function and it chooses | 16:30 | |
moritz | (or at least that's my understanding... feel free to correct me) | ||
16:31
cognominal_ joined
|
|||
masak | moritz: well, there's only a finite set of those. I don't see the problem with hardcoding them. | 16:31 | |
moritz | masak: it's a problem if you want to use multiple OPPs in the same grammar | ||
thou | oops, wrong channel :-) | 16:32 | |
r: gist.github.com/3350640 | |||
masak | hm. | ||
p6eval | rakudo 94aa2b: OUTPUT«===SORRY!===Preceding context expects a term, but found infix = insteadat /tmp/3dYwKjXG4b:3» | ||
masak takes the opportunity to mention "precircumfix" in the backlog ;) | |||
16:32
jaldhar left
|
|||
tadzik | thou: interesting. Looking | 16:32 | |
16:33
cognominal left
16:35
birdwindupbird left
|
|||
diakopter | .u 2ADC | 16:39 | |
phenny | U+2ADC FORKING (xE2xABx9C) | ||
daxim | this character is ridiculous | 16:40 | |
tadzik | thou: ok, I have no idea why this happens :) | ||
thou | tadzik: here's another | ||
r: gist.github.com/3350658 | |||
p6eval | rakudo 94aa2b: OUTPUT«Array.new(Pod::Heading.new(level => 1, config => ("numbered" => "1").hash, content => Array.new(Pod::Block::Para.new(config => ().hash, content => Array.new("= :nested(2) This doesn't work right")))))» | ||
thou | the :nested(2) should wind up in %config | ||
tadzik | right | ||
thou | that one i know why. the regex in Perl6::Grammar is all kinds of ugly for that stuff | 16:41 | |
using $<spaces> in some places, and not in others.... | |||
and lots of cut-n-paste for that handling | |||
tadzik | scumbugs :) | 16:42 | |
thou | yeah | ||
tadzik | thou: which lines? | ||
that's all my work, I'm afraid :) | |||
masak | moritz: well, what it suggests is this. an OPP is a separate thing, like a grammar. you should be able to instantiate several of them from one grammar, and configure them with ops separately from each other. | ||
thou | tadzik: e.g., L291 | 16:43 | |
[ [\n '=']? \h+ <colonpair> ]* | |||
that line shows up a lot | |||
and it's always missing $<spaces> | |||
tadzik | yeah, that's wrong, indeed | ||
thou | i think there's some kind of factoring out of the indenting that could be done | 16:44 | |
tadzik | indeed | 16:45 | |
I'll make it work for now and refactor this thing on the YAPC | |||
or midway | |||
I'll need some sort of parametrized token | |||
like <configuration ($<spaces>)> | 16:46 | ||
I hope it could be done better than with some dynamic variable | 16:48 | ||
hah, token foo($a) { } just works :) | 16:50 | ||
jnthn | We use it in several places :) | ||
pmichaud | Rakudo's "for" eagerly evaluates its argument; mainly because we don't have a good handle on sink context yet. | 16:51 | |
no, wait, that's not right. | 16:52 | ||
pmichaud checks. | |||
(1) Rakudo's "for" is eagerly evaluated because we don't have a good handle on sink context yet. | |||
(2) The implementation of ListIter also inadvertently causees its argument to be evaluated more eagerly than it should; I'm currently working on this. | 16:53 | ||
but a lot of it is also tied up in getting Parcel and List handling worked out. | 16:54 | ||
so yes, Rakudo cheats a bit by converting for something { block } into (something,).map( { block } ).eager | 16:55 | ||
jeffreykegler | Big car show in Carmel today. Goodbye for now | ||
pmichaud wonders if Carmel has one really big car that is being shown. :-) | 16:56 | ||
TimToady | but it's acting like the eager is inside the .map rather than outside | ||
pmichaud | I think that's due to the ListIter bug. | ||
TimToady | more like (something).eager.map() | ||
okay | |||
pmichaud | that one ought to be somewhat easier to fix. | 16:57 | |
once I get away from Texas I'm expecting to have a bit more tuits/time to work on these things :) | |||
thou | tadzik: here's a hard one | ||
r: gist.github.com/3350812 | |||
p6eval | rakudo 94aa2b: OUTPUT«Array.new(Pod::Block::Table.new(caption => Any, headers => Array.new("Superhero", "Secret Identity", "Superpower"), config => ("caption" => "'The Other Guys'").hash, content => Array.new(["B<The Shoveller>", "Eddie Stevens", "King Arthur's singing shovel"], ["Blue … | ||
tadzik | okay, I hope it's not actually hard :) | 16:58 | |
16:58
jeffreykegler left
|
|||
pmichaud | I do wish my flight across the pond would have power, though. I might try bringing an extra battery. | 16:58 | |
tadzik | I'm spectesting the patch for the previous one | ||
17:00
MayDaniel left
|
|||
tadzik | thou++ #excellent bughunter | 17:00 | |
or Warrior, as the Perl 6 MMORPG describes it | |||
masak | heh. | 17:01 | |
17:02
bbkr left
|
|||
masak | actually, The Warrior seems to be an application writer in general. | 17:02 | |
thou | tadzik: i was using this on S26 source: gist.github.com/3350872 | ||
17:02
cognominal__ joined
|
|||
masak | but yes, that involves finding, fighting, and neutralizing a lot of bugs. | 17:02 | |
Priests submit bug tickets, apparently. | |||
thou | got onto that by wanting to hack on p6doc | 17:03 | |
hehe | |||
sorry, masak, i should be doing that :-) | |||
tadzik: on the 3350812 issue, i really don't know how to fix it, because I think the table rows need to be merged first, and *then* their contents re-parsed as pod_textcontent | 17:04 | ||
tadzik | nqp: my $a = Undef; | ||
p6eval | nqp: OUTPUT«Assignment ("=") not supported in NQP, use ":=" instead at line 2, near " Undef;"current instr.: 'nqp;HLL;Grammar;panic' pc 21408 (src/stage2/gen/NQPHLL.pir:8190) (src/stage2/gen/NQPHLL.pm:326)» | ||
tadzik | nqp: my $a := Undef; | ||
p6eval | nqp: ( no output ) | ||
pmichaud | I guess I'm a "Mage". If I was associated with Apple then I'd be an iMage :-) | 17:05 | |
afk, kid pickup | |||
tadzik | :> | ||
17:05
cognominal_ left
|
|||
masak | thou: I have no idea what you are apologizing for :P | 17:05 | |
thou | masak, for not being a priest in this instance, and just throwing bugs at tadzik instead of rakudobug | ||
tadzik | that's better | 17:06 | |
I forgot about tickets assigned to me :) | |||
masak | pmichaud: I thought Smalltalk programmers were the one worrying about their image... :) | ||
thou: no, that's useful too. | |||
tadzik | . o O ( if I'm not listening to Priest' request, does that make me an unbeliever in the game? :P ) | ||
thou | Heathen | 17:07 | |
masak | :D | ||
tadzik: nah, it just means you're not allowed a Christian burial... | |||
17:08
MayDaniel joined
|
|||
tadzik | oh noes | 17:08 | |
nqp: return unless 1; | 17:09 | ||
p6eval | nqp: OUTPUT«Confused at line 2, near "return unl"current instr.: 'nqp;HLL;Grammar;panic' pc 21408 (src/stage2/gen/NQPHLL.pir:8190) (src/stage2/gen/NQPHLL.pm:326)» | ||
masak | nqp: return; | ||
p6eval | nqp: ( no output ) | ||
tadzik | nqp: unless 1 { return }; | ||
p6eval | nqp: OUTPUT«Unable to parse blockoid, couldn't find final '}' at line 2, near "return };"current instr.: 'nqp;HLL;Grammar;panic' pc 21408 (src/stage2/gen/NQPHLL.pir:8190) (src/stage2/gen/NQPHLL.pm:326)» | ||
masak | nqp: return; say("OH HAI") | ||
p6eval | nqp: OUTPUT«OH HAI» | ||
tadzik | no unless I guess | ||
nqp: return if 1; | |||
p6eval | nqp: OUTPUT«Confused at line 2, near "return if "current instr.: 'nqp;HLL;Grammar;panic' pc 21408 (src/stage2/gen/NQPHLL.pir:8190) (src/stage2/gen/NQPHLL.pm:326)» | ||
masak | tadzik: no, see above. | ||
tadzik | nqp: if 1 { return }; # last chance... | ||
p6eval | nqp: OUTPUT«Unable to parse blockoid, couldn't find final '}' at line 2, near "return }; "current instr.: 'nqp;HLL;Grammar;panic' pc 21408 (src/stage2/gen/NQPHLL.pir:8190) (src/stage2/gen/NQPHLL.pm:326)» | ||
masak | tadzik: no argumentless 'return'. | ||
tadzik | a-ha | 17:10 | |
masak | tadzik: this has bitten me before. | ||
masak .oO( it has bitten me and made me bitter... ) | |||
tadzik | now I need a full-blown, serialized Any :) | ||
masak | heh :) | ||
tadzik | or not | ||
I wonder what the spec says | 17:11 | ||
thou | tadzik: is it easy to hook up --doc=Some::ModuleOrClass.routine and have DOC INIT (or whatever?) call routine($=pod) or similar? | ||
tadzik | thou: why won't you just write class Some::ModuleOrClass { method render($pod) { ... } } ? | 17:12 | |
thou | um | ||
tadzik | and if you're asking if it's easy to implement, then I guess it's possible | ||
moritz | if you run rakudo with the --doc=Foo switch, it'll try to load the Pod::To::Foo module | ||
thou | ah | ||
ok, that's what i was missing | |||
so htmlify.pl can actually call perl6 --doc=HTML instead of that nasty eval trick? | 17:13 | ||
(perl6/doc/htmlify.pl) | 17:14 | ||
my $pod = eval slurp($file.path) ~ "\n\$=pod"; | 17:15 | ||
or should that be Perl6::Grammar.parse(...) somehow | |||
tadzik | not really | ||
yes, it should, but it's not possible atm | |||
hence the hack | |||
(I think) | |||
thou | OK | ||
dalek | kudo/nom: c07eba2 | tadzik++ | src/Perl6/ (3 files): Refactor Pod configuration and make it more correct. thou++ |
17:17 | |
tadzik | thou: this fixes gist.github.com/3350658 partly, it still fails for the reason from your first gis | 17:18 | |
gist | |||
I'll see if I can quick-fix the tables thing | |||
ah yes, table rows are post-processed, and for a reason | 17:20 | ||
that's hard indeed then :) | 17:21 | ||
17:21
kaare__ joined
|
|||
thou | :-) | 17:21 | |
tadzik | thou: could you open RT tickets for those two things? I'll promise to look at them at the YAPC | ||
thou | pod_configuration looks good, tadzik++ | 17:22 | |
tadzik | and if I don't, tell masak to smack me ;) | ||
thou | tadzik: OK, will do (for the first and last ones I reported) | ||
moritz | nr: say Inf cmp Inf | ||
p6eval | rakudo 94aa2b, niecza v19-21-gc86e8e5: OUTPUT«Same» | ||
17:32
REPLeffect left
|
|||
thou | tadzik: here's another, maybe it's related to the 1st: gist.github.com/3351102 | 17:37 | |
tadzik | I think it may be to the spec actually | 17:38 | |
while it's not really DWYM | |||
thou | OK. then that one is a bug in S26 (to fix the diagram so it displays correctly) | 17:40 | |
tadzik | I may want to email-ask Damian about it actually | 17:42 | |
but that comes tomorrow or later | |||
afk& | |||
17:45
REPLeffect joined
17:51
fgomez joined
17:53
daxim left
17:55
fhelmberger joined
|
|||
TimToady | nr: say 'ˊ' ~~ /\w/ | 17:57 | |
p6eval | rakudo 94aa2b: OUTPUT«「ˊ」» | ||
..niecza v19-21-gc86e8e5: OUTPUT«Match()» | |||
TimToady wonders who is right | |||
moritz | .u ˊ | ||
phenny | U+02CA MODIFIER LETTER ACUTE ACCENT (ˊ) | ||
TimToady | eval: 'ˊ' =~ /\w/ | 17:58 | |
buubot_backup | TimToady: 1 | ||
TimToady | nieczabug, I suspect | ||
moritz | p5 considers all modifiers \w | ||
which kinda makes sense, so that \w+ matches a word that includes them | 17:59 | ||
TimToady | that's why it says "MODIFIER LETTER" | ||
dalek | c: e9b61ab | moritz++ | htmlify.pl: save a bit of duplicate work |
||
c: 2ca51ac | moritz++ | htmlify.pl: distiniguish subs and methods, if we can |
|||
c: adc0bd7 | moritz++ | lib/Str.pod: harmonize markup |
|||
TimToady | there are plenty of marks that aren't letters, of course | ||
std: my $fooˊ = 42; | 18:00 | ||
p6eval | std 235f71b: OUTPUT«ok 00:00 42m» | ||
TimToady | nieczabug then | ||
moritz | nr: say so ' ̈' ~~ /\w/ | 18:01 | |
p6eval | rakudo 94aa2b: OUTPUT«False» | ||
..niecza v19-21-gc86e8e5: OUTPUT«True» | |||
moritz | :-) | ||
.u ̈ | |||
phenny | U+0020 SPACE ( ) | ||
U+0308 COMBINING DIAERESIS (◌̈) | |||
TimToady | when we switch to NFG these should all just match \w when marking a letter as the base char | 18:02 | |
colomon wonders if he could sort out how to fix this in niecza.... | 18:05 | ||
18:14
fhelmberger left
18:15
fhelmberger joined
18:16
fhelmberger left
18:32
benabik left
18:35
flussence left
18:45
benabik joined
19:02
topo left
19:04
benabik left
19:07
benabik joined
|
|||
sorear | good * #perl6 | 19:08 | |
colomon | \o | 19:09 | |
19:11
SamuraiJack left
19:19
Patterner left,
Psyche^ joined,
Psyche^ is now known as Patterner,
brrt joined
19:28
mastersrp joined
19:29
mastersrp is now known as necrophcoder
19:34
vlixes joined
19:35
colomon left
19:37
birdwindupbird joined
|
|||
[Coke] | is phasers dead? | 19:45 | |
#phasers, sorry. | |||
masak | don't call it dead call it "a tradition worthy of a comeback" ;) | 19:46 | |
[Coke] | k. | 19:48 | |
moritz | it would have been 2 hours ago | 19:49 | |
and yes, I think we should have such meetings again | |||
maybe not weekly | |||
PerlJam | there are people joining #phasers all the time ... It can't be dead ;) | ||
TimToady | it's...stable... | 19:50 | |
19:51
leprevost left
|
|||
[Coke] tries to build std. | 19:54 | ||
20:01
kaare__ left
20:03
kaare__ joined,
leprevost joined
20:04
fgomez left
|
|||
japhb | moritz, doc.perl6.org/routine/Str is looking a bit like it has an echo ... can you get rid of the second level 'Str' headings underneath each 'Type.Str' heading? Might as well dump the 'From Type' line as well, since that's implied. You could make it fully parallel for subs by doing 'Type::Str' instead of 'Type.Str', so you don't have to have two code paths for method and sub. | 20:06 | |
moritz | japhb: dropping the second-level Str headings is non-trivial | 20:11 | |
japhb: and I've kept the "from" thing because it's a link | |||
20:12
colomon joined
20:14
sweet|kid joined
20:15
birdwindupbird left
20:18
kaare__ left
|
|||
japhb | moritz, sure, but the Type in 'Type.Str' should be that link. | 20:19 | |
And when I next have doc tuits, I can try thinking about the second level Str heading | 20:20 | ||
[Coke] needs to change "make snaptest" in std. to use "prove" | |||
japhb | moritz, actually, you could make the whole 'Type.Str' be a link to the other page, and start putting a '^Top' link in there somewhere (preferably de-emphasized so it doesn't compete) | 20:23 | |
20:32
am0c left
20:36
brrt left
|
|||
TimToady | I have been saying that $ never interpolates in a list for many years now | 20:43 | |
I don't see why this should be suddenly surprising | |||
masak | the example `my $x := Array.new(1,2,3); for $x { .say }` surprises me. | 20:47 | |
it surprises me that that flattens, I mean. | |||
sorear | um | ||
masak | r: my $x := Array.new(1,2,3); for $x { .say } | ||
p6eval | rakudo c07eba: OUTPUT«123» | ||
sorear | ahahahahaha | ||
masak | n: my $x := Array.new(1,2,3); for $x { .say } | ||
p6eval | niecza v19-21-gc86e8e5: OUTPUT«Unhandled exception: Excess arguments to List.new, used 1 of 4 positionals at /home/p6eval/niecza/lib/CORE.setting line 0 (List.new @ 1)  at /tmp/Ej1mH3vl0R line 1 (mainline @ 3)  at /home/p6eval/niecza/lib/CORE.setting line 3929 (ANON @ 3)  at /ho… | ||
sorear | rn: my $x := [1,2,3]; for $x { .say } | ||
p6eval | rakudo c07eba, niecza v19-21-gc86e8e5: OUTPUT«1 2 3» | ||
masak | niecza++ | ||
sorear | rn: my $x := [1,2,3].list; for $x { .say } | 20:48 | |
p6eval | niecza v19-21-gc86e8e5: OUTPUT«1 2 3» | ||
..rakudo c07eba: OUTPUT«123» | |||
sorear | I feel vindicated | ||
TimToady | just so you're not vindictive :) | ||
sorear | in Rakudo, any Iterable instance that isn't wrapped in a container is considered flattening | ||
in Niecza, flattening is strictly opt-in and the type of the object is irrelevant | 20:49 | ||
20:49
necrophcoder left
|
|||
sorear | now I _know_ my way is better :D | 20:49 | |
TimToady | well, at least for that example :) | 20:50 | |
sirrobert | what does "method !name ..." do? (the exclamation point) | 20:54 | |
private method? | |||
sorear | yes | ||
sirrobert | thanks | ||
japhb | sirrobert, you have to call it as $obj!foo rather than $obj.foo if you declare it with that leading ! | 20:55 | |
sirrobert | makes sense | ||
oh, you can call it from outside? | |||
not just self!foo? | |||
hey, so I haven't been able to get DBIish or miniDBI to install because of an error with "NativeCall" | 20:56 | ||
sorear | sirrobert: private methods are implicitly namespaces by the class | 20:57 | |
sirrobert | sorear: ok | ||
I'm trying to work to a deadline at work; what's the best way to get some help with getting DBIish or miniDBI working? | |||
sorear | $obj!foo means $obj!A::foo, where A is the statically enclosing class or GLOBAL if there is none | ||
sirrobert: it sounds like your actual problem might be with NativeCall, so ping the NativeCall maintainer | 20:58 | ||
sirrobert | sorear: ahh, that helps =) | ||
sorear | jnthn: ping | ||
sirrobert | good idea =) found it on github just now | ||
sorear | $obj!SomeOtherClass::method is syntactically valid but requires a 'trusts UsingClass' declaration in SomeOtherClass's body | 20:59 | |
jnthn | sirrobert: Are you using the NativeCall/DBIish from the last Star release or bleeding edge stuff from repos? | ||
21:00
cognominal__ left
|
|||
sirrobert | hmm. I don't know =) "panda install DBIish" just failed | 21:00 | |
Also I tried "panda install NativeCall" which also failed | |||
jnthn | OK, that'll be pulling the latest. | ||
sirrobert | I can give you a bitbucket of the error if that helps | ||
jnthn | Which, given arnsholt++ has been doing a load of work recently, means you probably need a very recent Rakudo/NQP too. | ||
sirrobert | (I updated Rakudo to the latest, btw, and it still happened | ||
Unrecognized nqp:: opcode 'nqp::nativecallrefresh' at line 274, near ";\n 1;\n}" | 21:01 | ||
(that's the error) | |||
woops... I'm driving the carpool today-- I'll ask again about it tomorrow. | |||
thanks sorear and jnthn | 21:02 | ||
jnthn | I think I see what may be up | ||
sirrobert | I'll scroll back and read what you say in the morning =) thanks | ||
jnthn | The last NQP_REVISION update was Sat Aug 11 | ||
oh... | |||
But hmm | |||
21:03
skids left
|
|||
[Coke] | TimToady: any object to adding a "tools/testfile" to std that generates tap compliant output? | 21:03 | |
jnthn | yeah, it looks like the NQP_REVISION in Rakudo is up to date enough after all :S | ||
jnthn is confused, then. | 21:04 | ||
[Coke] | (then I can run "prove -r -e tools/testfile ../roast") | ||
... this is not going to be a clean run. :| | 21:05 | ||
21:07
cognominal joined
|
|||
[Coke] | so, there's really no way to get a clean run of std against roast, is there? | 21:08 | |
since roast is explicitly testing broken things to make sure they're broken. | |||
21:14
perigrin left
21:15
perigrin joined
21:19
jeffreykegler joined
|
|||
jeffreykegler | pmichaud: I found out about the "big car show" in Carmel that you'd wondered about | 21:21 | |
pmichaud: It's the operator precedence parse, not the LL one | 21:22 | ||
21:22
bruges_ left
21:24
bruges joined
|
|||
sorear | [Coke]: anything which is supposed to not compile should be wrapped in eval_dies_ok so that std will ignore it | 21:29 | |
std USED to run over the spectests fine,it even has a test script | 21:30 | ||
21:39
leprevost left,
cog joined,
cog left
22:01
benabik left
22:03
benabik joined
|
|||
masak | 'night, #perl6 | 22:03 | |
22:06
MayDaniel left
22:09
bluescreen10 left
22:12
awwaiid left
22:14
awwaiid joined
22:15
bluescreen10 joined
22:18
broquaint joined,
broquain1 left
22:19
hanekomu joined
22:23
bluescreen10 left
|
|||
TimToady | well, it never really got above about 93% of the .t files parsing | 22:24 | |
[Coke] | TimToady: we | 22:27 | |
'll fix that. | |||
TimToady | though roughly half of the problems are really test problems | ||
Placeholder variable $^a may not be used here because the surrounding block takes no signature at /home/larry/perl6/roast/S32-list/sort.t line 147: | 22:28 | ||
Variable $.cool used where no 'self' is available at /home/larry/perl6/roast/S12-traits/parameterized.t line 19: | 22:30 | ||
Too late for semicolon form of class definition at /home/larry/perl6/roast/S12-attributes/undeclared.t line 16: | |||
things like that | |||
a lot of it is just missing library support | 22:32 | ||
or CORE not being entirely up-to-day | |||
[Coke] | feather.perl6.nl/~coke/std.fails | 22:33 | |
(the end of a test run, because I had to rely on screen hardcopy to get it.) | |||
let me rerun capturing the whole thing. | 22:34 | ||
22:35
thou left
|
|||
[Coke] | there's "make snaptest", but it's not using prove. | 22:36 | |
22:41
sergot left
|
|||
[Coke] | if eval_dies_ok works in std, then we should be able to get it 100%. \o/ | 22:45 | |
once I get the run, I'll invert the warnings so they're grouped by type, and folks can clean up the tests. | 22:46 | ||
(or std, whichever.) | |||
22:59
thou joined
23:01
alester left,
raiph joined
|
|||
raiph | phenny: tell pmichaud the 5 appears on supervisor's tees which are yellow, not the tees for sale; if you are getting yellow tees for sale with a big 6 on them, i think u should let the organizers know asap | 23:08 | |
phenny | raiph: I'll pass that on when pmichaud is around. | ||
23:23
araujo left
23:24
kst left,
araujo joined
23:27
Coleoid joined
23:29
ObseLeTe joined
23:30
whiteknight joined,
whiteknight is now known as Guest44561,
kst joined
23:33
thou left
|
|||
[Coke] | feather.perl6.nl/~coke/std.fails updated with all the fails | 23:33 | |
dalek | ast: ff41d5c | coke++ | S02-lexical-conventions/comments.t: Fix typo found by std++ |
23:36 | |
23:37
skids joined
|
|||
[Coke] | std: my $var := LAZY { $was_in_lazy++; 42 }; | 23:38 | |
p6eval | std 235f71b: OUTPUT«===SORRY!===Variable $was_in_lazy is not predeclared at /tmp/Ls3i_Y_FfN line 1:------> my $var := LAZY { ⏏$was_in_lazy++; 42 };Undeclared name: 'LAZY' used at line 1Check failedFAILED 00:00 42m» | ||
[Coke] | phenny: ask moritz : you added LAZY to S04-statements/lazy.t, but it's not spec, or recognized by std. Where's the bug? | 23:40 | |
phenny | [Coke]: I'll pass that on when moritz is around. | ||
23:41
PacoAir left
|
|||
[Coke] | std; multi with_cap($a,$b,|$cap) { return with_cap($a + $b, |$cap) } | 23:48 | |
std: multi with_cap($a,$b,|$cap) { return with_cap($a + $b, |$cap) } | |||
p6eval | std 235f71b: OUTPUT«Potential difficulties: Unsupported use of | with sigil; nowadays please use | without sigil at /tmp/01L51Tx4vu line 1:------> multi with_cap($a,$b,|$cap⏏) { return with_cap($a + $b, |$cap) }ok 00:00 45m» | ||
[Coke] | std: multi with_cap($a,$b,|cap) { return with_cap($a + $b, |$cap) } | 23:49 | |
p6eval | std 235f71b: OUTPUT«===SORRY!===Variable $cap is not predeclared at /tmp/DF0rXtDj44 line 1:------> $a,$b,|cap) { return with_cap($a + $b, |⏏$cap) }Check failedFAILED 00:00 45m» | ||
[Coke] | std: multi with_cap($a,$b,|cap) { return with_cap($a + $b, |cap) } | ||
p6eval | std 235f71b: OUTPUT«ok 00:00 45m» | ||
[Coke] | O_o | ||
. o O (I don't know what |cap means.) | |||
benabik | std: multi with_cap($a,$b,|cap) { return with_cap($a + $b, cap) } | 23:50 | |
p6eval | std 235f71b: OUTPUT«ok 00:00 45m» | ||
benabik | Flatten the capture into the call? | ||
[Coke] | benabik: there's a few tests in roast that have that and probably need updating. | ||
std: mkdir("hi") | 23:55 | ||
p6eval | std 235f71b: OUTPUT«===SORRY!===Undeclared routine: 'mkdir' used at line 1Check failedFAILED 00:00 41m» | ||
[Coke] | looks like mkdir is no longer a function, per std and the spec, aye? | ||
dalek | ast: 98e812a | coke++ | / (2 files): ucfirst is gone, wrap tc instead std++ |
23:58 | |
sorear | jnthn: around by any chance? | 23:59 |