»ö« 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!===␤Confused␤at /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<4␤␤Trait 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<42␤␤Trait 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 side␤at /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«1␤2␤3␤»
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!===␤Confused␤at /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 checking␤ok 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!===␤Confused␤at /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«new␤g␤␤␤»
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«1␤1␤2␤2␤3␤»
..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«1␤2␤3␤»
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 block␤at /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 block␤at /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«1␤2␤3␤»
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 = instead␤at 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 = instead␤at /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 (􏿽xE2􏿽xAB􏿽x9C)
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«1␤2␤3␤»
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«1␤2␤3␤»
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 1␤Check failed␤FAILED 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 failed␤FAILED 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 1␤Check failed␤FAILED 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