»ö« Welcome to Perl 6! | perl6.org/ | evalbot usage: 'perl6: say 3;' or rakudo:, niecza:, std:, or /msg camelia perl6: ... | irclog: irc.perl6.org/ | UTF-8 is our friend!
Set by diakopter on 14 April 2013.
BenGoldberg parrot links to libtommath, which has an implementation of miller-rabin, which uses (where appropriate) expmod and sqrmod. 00:08
Hopefully rakudo uses that for it's implementation of is-prime. 00:10
00:11 drbean joined
BenGoldberg Hmm, rakudo's is-prime makes use of nqp::isprime_I 00:16
diakopter BenGoldberg: github.com/perl6/nqp/blob/bfb36697....nqp#L1725 00:18
github.com/perl6/nqp/blob/e93a51d2...t.ops#L209 00:19
github.com/perl6/nqp/blob/3370a7d1...rime.c#L25
hmm, there is a line missing in that comment 00:22
also in nearly every other fork/inclusion of that comment on the 'net
gpl.back2roots.org/source/routertec...is_prime.c 00:23
BenGoldberg mp_prime_is_prime doesn't check if the number of trials is bigger than the prime table
err, nevermind it does
diakopter Probability of error after t rounds
is the line preceding the one missing
maybe someone removed it b/c it was wrong 00:24
but left the sentence dangling
00:35 kivutar left, ifimbres joined 00:46 kbenson left 00:49 woosley joined 00:57 ifimbres left 00:58 berekuk left 01:03 anuby joined 01:07 skids joined 01:09 lichtkind left
raiph r: say "1,2,3,5,8,9,10,11" ~~ s/ <digit>* % ',' / $<digit> / 01:16
camelia rakudo ef73eb: OUTPUT«Cannot modify an immutable value␤ in sub infix:<=> at src/gen/CORE.setting:12891␤ in block at /tmp/bh_bR0tRr3:1␤␤»
raiph r: $_ = "1,2,3,5,8,9,10,11"; tr/ <digit>* % ',' / $<digit> /; .say 01:17
camelia rakudo ef73eb: OUTPUT«===SORRY!===␤Non-declarative sigil is missing its name␤at /tmp/za6O7olr0C:1␤------> $_ = "1,2,3,5,8,9,10,11"; tr/ <digit>* %⏏ ',' / $<digit> /; .say␤ expecting any of:␤ postfix␤ infix stopper␤ infix or me…
raiph r: $_ = "1,2,3,5,8,9,10,11"; s/ <digit>* % ',' / $<digit> /; .say
camelia rakudo ef73eb: OUTPUT« 1 2 3 5 8 9 1 0,11␤»
raiph r: $_ = "1,2,3,5,8,9,10,11"; s/ <digit>+ % ',' / $<digit> /; .say 01:19
camelia rakudo ef73eb: OUTPUT« 1 2 3 5 8 9 1 0,11␤»
raiph r: $_ = "1,2,3,5,8,9,10,11"; s/ <digit>** % ',' / $<digit> /; .say
camelia rakudo ef73eb: OUTPUT«===SORRY!===␤Quantifier quantifies nothing␤at /tmp/YAtcz1GwVz:1␤------> $_ = "1,2,3,5,8,9,10,11"; s/ <digit>** ⏏% ',' / $<digit> /; .say␤ expecting any of:␤ postfix␤ statement end␤ statement modifier␤ …
raiph r: $_ = "1,2,3,5,8,9,10,11"; s/ <digit> ** 2..* % ',' / $<digit> /; .say
camelia rakudo ef73eb: OUTPUT« 1 2 3 5 8 9 1 0,11␤»
01:27 wswiss joined
wswiss my question is should i keep learning perl 5, or start following perl 6? 01:29
01:30 wswiss left
geekosaur perl5 won't go away because of perl6, any more than python2 stopped being used when python3 was released 01:35
dalek blets: 3764ccc | (Herbert Breunung)++ | docs/appendix-a-index.txt:
more links to glossary in intro of A
01:42
01:46 FROGGS_ joined 01:50 FROGGS left
flussence just playing around with some code, .DUMP seems a little bit slow: gist.github.com/flussence/5449017 01:59
02:10 lustlife joined 02:12 drbean left 02:14 drbean joined
japhb flussence, DUMP has not been speed-optimized 02:19
Also, it is likely to be MUCH larger output than the others.
You might want to compare the length of each output as well. 02:20
02:21 census left
flussence yeah, it's 4 times the size of the .perl... having a readable tree is really useful though. 02:24
japhb r: say 1382.5 / (86.8 * 4) 02:26
camelia rakudo ef73eb: OUTPUT«3.981855␤»
japhb So perhaps 1/4 of the speed one would expect merely from difference in output size.
diakopter or quadratic 02:28
japhb diakopter, true. I haven't done a real analysis of the code looking for that sort of stuff. 02:29
02:30 xinming left
japhb (Though there are a couple places I build up arrays and join, rather than doing piecemeal concatenation, I haven't tried to make sure the latter never happens -- and as someone discovered a week or two ago, join isn't necessarily performant either, SIGH) 02:30
flussence I guess there's not much point worrying about it as long as the other two are also processing text about as fast as a 2400 baud modem... 02:31
02:32 xinming joined
diakopter
.oO( what's slower than a camel? ) .oO( a butterfly flying underwater )
02:32
japhb Part of me is annoyed that some of the basic operations on which we build things like DUMP are so damned slow -- making it really hard to make something like DUMP even vaguely performant -- at the same time I recognize that building a VM takes LOTS OF WORK and I can't really expect "fast" before "complete" and "correct" 02:33
(That said, "correct" would be awfully nice ...) 02:34
diakopter japhb: I'm looking forward to your yapc talk where you identify all the little bits that are so much slower individually
japhb Oh man, that's going to be "fun"
diakopter alternatively, .oO( a butterfly flying in a vacuum )
02:37 orafu left
diakopter
.oO( also, a butterfly flying in a vacuum cleaner is pretty slow too )
02:37
02:38 BenGoldberg left
diakopter er, s/butterfly/parrot/g 02:39
02:39 orafu joined
DrEeevil a spherical parrot flying in a vacuum on a frictionless plane? 02:42
diakopter yes, with no gravity
02:49 Targen joined 03:09 jaldhar left 03:10 eternaleye joined
raiph r: $_ = "1,2,3,5,8,9,10,11"; s/ [<digit>+]+ % ',' / $<digit> /; .say 03:15
camelia rakudo ef73eb: OUTPUT« 1 2 3 5 8 9 1 0 1 1 ␤»
03:44 orafu left 03:45 orafu joined 04:19 adu joined 04:24 Psyche^ joined
diakopter r: $_ = "1,2,3,5,8,9,10,11"; s/ [$<digit> = (<digit>+)]+ % ',' / $<digit> /; .say 04:26
camelia rakudo ef73eb: OUTPUT« 1 2 3 5 8 9 10 11 ␤»
diakopter raiph: ^ 04:27
04:28 Patterner left, Psyche^ is now known as Patterner
lue r: $_ = "1,2,3,5,8,9,10,11"; s/ [$<num> = (<digit>+)]+ % ',' / $<num> /; .say # just for slight increase in readability 04:35
camelia rakudo ef73eb: OUTPUT« 1 2 3 5 8 9 10 11 ␤»
04:38 drbean left 04:44 drbean joined 04:57 SamuraiJack joined
Nom- cls 05:09
oops
diakopter
.oO( command.com or cmd.exe? )
05:10
Nom- me? 05:11
diakopter yes :)
Nom- That was me trying to do a screen shotcut in tmux and typing ahead without noticing it didn't work :P
05:20 FROGGS_ left 05:21 frdmn left 05:36 SamuraiJack_ joined 05:38 SamuraiJack left
Nom- I thought the answer to this question would be obvious, but doesn't seem to be.... is there a simple way one can run the nqp compiler from source? ... ie use a built version of nqp to run the unbuilt source so I can make quick changes and test 05:43
arnsholt If you're hacking on NQP, you have to recompile to test 05:49
Nom- bugger :(
arnsholt A couple of exceptions if you're doing stuff with the C code, mind 05:50
Yeah, it's a bit impractical
Nom- I'm coming back to a project I started looking at last weekend... want to look at starting NQP running on the Rubinius VM
arnsholt Oh, right. I have no idea how to best do that 05:51
Take a look at the early history of jnthn's nqp-jvm-prep perhaps?
Nom- Yeah, I've looked at that before
Maybe i'll have to look again
It makes me wish the parser & lexer were written in C though since that'd be much easier to hook into pretty much anything 05:52
C'est la vie
05:54 census joined
arnsholt The problem is that it has to been extensible, more or less arbitrarily, at run-time 05:56
Which is less fun when it's in C =)
If it's any consolation, the parser code is a lot more manageable these days 05:57
It used to be all in PIR (lots and lots of it), but now it's in NQP =)
adu nqp++
06:01 frdmn joined
diakopter rn: <~~>~~/<~~>/ 06:03
camelia rakudo ef73eb: OUTPUT«maximum recursion depth exceeded␤current instr.: 'print_exception' pc 111391 (src/gen/CORE.setting.pir:50074) (src/gen/CORE.setting:9712)␤called from Sub '!cursor_start_all' pc 10320 (src/stage2/QRegex.pir:4270) (src/stage2/QRegex.nqp:542)␤called from Sub '' pc 155…
..niecza v24-37-gf9c8fc2: OUTPUT«===SORRY!===␤␤Action method assertion:sym<~~> not yet implemented at /tmp/qUXJoTPxEC line 1:␤------> <~~>~~/<~~⏏>/␤␤Unhandled exception: Unable to resolve method oplift in type Any␤ at /home/p6eval/niecza/src/RxOp.pm6 …
diakopter pugs: <~~>~~/<~~>/ 06:04
camelia pugs: OUTPUT«Error eval perl5: "if (!$INC{'Pugs/Runtime/Match/HsBridge.pm'}) {␤ unshift @INC, '/home/p6eval/.cabal/share/Pugs-6.2.13.20120717/blib6/pugs/perl5/lib';␤ eval q[require 'Pugs/Runtime/Match/HsBridge.pm'] or die $@;␤}␤'Pugs::Runtime::Match::HsBridge'␤"␤*** Can't locate P…
Nom- Yeah, I think I'm starting to see how jnthn did it all, so it's just a matter of putting in the hours now 06:18
diakopter o_O
Nom- If I can get to something that will generate something similar to his original JAST intermediate format this weekend I'll be on my way I think :) 06:19
diakopter O_O :D
06:26 adu left
diakopter Nom-: there's a fairly frequent pattern of folks starting nqp implementations for one VM/platform or another but losing interest after a while.. I don't think anyone's tried Rubinious though 06:27
er 06:28
Rubinius
Nom- Yeah, I've got a pretty good idea why they give up :P 06:41
It's not exactly easy to quickly iterate on changes
I've actually gotten further from an implementation perspective writing a parser/lexer from scratch than using the existing ones 06:42
But obviously that's not what would be needed for a proper implementation
diakopter the way it's been done before is to use nqp on parrot as a cross compiler 06:43
06:43 jerome_ joined
Nom- Yeah.. getting that set up seems to be the hard part, but once that hurdle it crossed... 06:43
diakopter yeah.
depending on how big you're defining "getting that set up"
I mean, if you include "make the bootstrap work" .... ;) 06:44
but to get it to generate *something* your runtime can run shouldn't be horribly hard
Nom- Way further down the track than I'm targeting for now :P
Step 1 is to get some kind of IR which I can parse and turn into bytecode on the Rubinius side
diakopter if I were you, I'd compile to the bytecode in the cross compiler 06:45
(initially)
Nom- Well I have to bridge the parrot-rubinius bridge first :)
That's why I was targeting some simple IR like the JAST stuff 06:46
diakopter don't run 'em in the same process :P no one's made a cross compiler that fancy ;)
yeah... RAST
Nom- Already created the folder ;)
diakopter heh. 06:47
well, your awakeness seems to indicate you're not in Europe
well.
actually, it's morning there now
Nom- 'Straya
Australia for those who don't understand 'straylian stang typed out :P
06:48 SamThomas joined, quester joined
diakopter
.oO( stang )
06:48
Nom- *slang
t is just an l with an extra - :P 06:49
diakopter r: my stang Foo is Perl6 { }
camelia rakudo ef73eb: OUTPUT«===SORRY!===␤Type 'stang' is not declared␤at /tmp/DMWmhLsIoA:1␤------> my stang⏏ Foo is Perl6 { }␤Malformed my␤at /tmp/DMWmhLsIoA:1␤------> my ⏏stang Foo is Perl6 { }␤ expecting any of:␤ scoped decla…
SamThomas ls 06:50
diakopter . 06:51
..
06:53 SamThomas left
diakopter haha 06:53
06:58 dickinsm joined 06:59 baest joined 07:03 pupoque joined 07:04 Rix left 07:06 autumn joined, kurahaupo left, domidumont joined 07:08 daxim joined
Nom- Hopefully I do make some progress... I think a Rubinius implementation could actually be useful... it's a solid VM that's in use in production today 07:09
sorear słang?
Nom- I'm sure I'll be back here later though once I really dive into it... need to pretend to do some work for the day job for now :)
07:12 Rix joined 07:20 salv0 left
diakopter r: my Int|Str $a; 07:21
camelia rakudo ef73eb: OUTPUT«===SORRY!===␤Type 'Int' is not declared. Did you mean 'int'?␤at /tmp/gMKUoEcH5P:1␤------> my Int⏏|Str $a;␤Malformed my␤at /tmp/gMKUoEcH5P:1␤------> my Int⏏|Str $a;␤ expecting any of:␤ scoped declarat…
diakopter r: my int|Str $a;
camelia rakudo ef73eb: OUTPUT«===SORRY!===␤Type 'int' is not declared. Did you mean 'Int'?␤at /tmp/oaeowoKE49:1␤------> my int⏏|Str $a;␤Malformed my␤at /tmp/oaeowoKE49:1␤------> my int⏏|Str $a;␤ expecting any of:␤ scoped declarat…
diakopter hee
labster good *, * 07:24
diakopter *
07:27 rindolf joined, FROGGS joined
FROGGS morning 07:27
census morning FROGGS and rindolf! 07:28
FROGGS hi census
labster r: sub infix:<is> (\a,\b) {a ~~ b}; if $*PERL is Cool and all(',') { say Whatever }
camelia rakudo ef73eb: OUTPUT«(Whatever)␤»
rindolf census: morning. 07:30
FROGGS: morning.
census, FROGGS : what's up?
FROGGS rindolf: $work 07:32
census $coding
rindolf: $coding
FROGGS well, ya, $coding :o)
census :)
rindolf census: what are you coding? 07:33
census: please stop /msg ing me. 07:34
census rindolf: oh i msged you because i know this channel does not like me directly discussing non-perl6 topics in here ...
i'm doing some p5 work ...
rindolf census: OK. 07:35
FROGGS rindolf: you should've asked 10-12 hours ago though :o)
diakopter if anyone would like to help census, please join #help-census
census ;:)
07:36 domidumont left, domidumont joined 07:41 kaleem joined
FROGGS labster: how is the state about IOs and Paths and Specs within rakudo? 07:42
are there issues left or is there just the open question about core modules?
labster Well, I think I'm going to need to move File::Spec stuff into core. At least, it needs to be available to the setting, so I think it makes the most sense there. 07:43
Compiling it in seems to infinite loop on me, so there's more debugging in my future... 07:44
github.com/rakudo/rakudo/pull/129 is literally an open issue :)
that makes changes IO to IO::Handle (but leaves .IO, because I don't see a real reason to change that), and makes IO an empty tagging class -- I'm not sure I can do it as a role as in S32::IO, because IO::subclasses need someplace to live for lookups. 07:47
moritz r: role Foo { }; class Foo::Bar { }; say Foo::Bar.new
camelia rakudo ef73eb: OUTPUT«Foo::Bar.new()␤»
moritz labster: is there any reason the same couldn't work for IO? 07:48
r: role Foo { }; class Foo::Bar does Foo { }; say Foo::Bar.new
camelia rakudo ef73eb: OUTPUT«Foo::Bar.new()␤»
labster r: my role Foo { }; my class Foo::Bar { }; say foo::Bar.new
camelia rakudo ef73eb: OUTPUT«Could not find symbol '&Bar'␤ in method <anon> at src/gen/CORE.setting:10834␤ in any at src/gen/Metamodel.nqp:2504␤ in any find_method_fallback at src/gen/Metamodel.nqp:2492␤ in any find_method at src/gen/Metamodel.nqp:939␤ in block at /tmp/3I0QZrQv_X:1␤␤»…
labster because they're lexically scoped.
moritz r: my role Foo { }; my class Foo::Bar { }; say Foo::Bar.new
camelia rakudo ef73eb: OUTPUT«Foo::Bar.new()␤»
moritz works if you spell it correctly :-) 07:49
foo vs. Foo
labster wait... my damn IRC client... those are not URLs!
okay, I'll look at that some more 07:50
07:50 rindolf left, rindolf joined, crab2313 joined
labster But I think the thing that really needs some work is S16. 07:51
07:51 cognominal joined
labster I'm not sure -- do we really want qp//? 07:52
diakopter r: class foo { method blah { our $bar = 33 }; method boo { say $bar } }; foo.boo; foo.blah; foo.boo 07:54
camelia rakudo ef73eb: OUTPUT«(Mu)␤33␤»
FROGGS quote path? 07:56
07:56 rindolf left
FROGGS hmmm, where is the problem with qp/q:p ? 07:56
07:57 census left, rindolf joined
labster There's not much problem, I just wonder about the use case being significant enough. 07:57
07:58 pupoque left
FROGGS labster: well, I like qq very much, but you usually dont have " and ' in paths 07:59
08:00 dalek left
FROGGS but maybe there are cases where you have both, and that'd be ugly without qq 08:00
moritz labster: qp is a feature that everybody so far has refused to implement
FROGGS moritz: but why?
labster One more thing: I'd like a function to do readlink. I'm too stupid in C to do it myself, and parrot doesn't have an op for it. But if we ever want something like Path::Class->resolve()
...we'd need it
08:00 dalek joined, ChanServ sets mode: +v dalek, [Coke] joined
FROGGS labster: maybe I can help you there 08:01
moritz labster: you can open a parrot issue requesting that feature
FROGGS: because it's mostly stupid (more)
1) UNIX paths are actually bytes, but literals are Str
labster n: say qp/foo/ # not everyone
camelia niecza v24-37-gf9c8fc2: OUTPUT«"foo".IO␤»
moritz 2) there's not much point in having an extra quoting construct if you don't do anything special with it, in the parser 08:02
but it's spec, so if you feel like, implement it
labster: I didn't know that 08:03
08:04 kresike joined
kresike hello all you happy perl6 people 08:05
labster qp:win// might be nice due to the lack of double-backslashes, I suppose
08:07 rindolf left, rindolf joined
diakopter heh. rakudo disallows @_ 08:10
std doesn't
moritz where? 08:11
diakopter r: my @_
camelia rakudo ef73eb: OUTPUT«===SORRY!===␤Cannot use placeholder parameter @_ in the mainline␤at /tmp/HaTvSzCyen:1␤------> my @_⏏<EOL>␤»
diakopter std: my @_
camelia std 86b102f: OUTPUT«ok 00:00 41m␤»
labster okay, sent in a Parrot issue about readlink, I hope it gets some attention. 08:13
08:15 pecastro left
labster I'm tempted to rename File::Spec to IO::Spec because it goes with those classes thematically. 08:17
FROGGS diakopter: STD isnt perfect in all cases :o) 08:18
moritz I guess this time it's rakudo that isn't perfect 08:19
std: @_
camelia std 86b102f: OUTPUT«===SORRY!===␤Placeholder variable @_ may not be used outside of a block at /tmp/btONj2CC9M line 1:␤------> <BOL>⏏@_␤Check failed␤FAILED 00:00 41m␤»
moritz that error should only appear in declarational context
diakopter r: { say "@_" }() 08:20
camelia rakudo ef73eb: OUTPUT«@_␤»
FROGGS moritz: if only unix paths are bytes, then a qp{} should still be a Str, no?
diakopter whaaaaaaa
FROGGS diakopter: email address parsing?
diakopter n: { say "@_" }()
camelia niecza v24-37-gf9c8fc2: OUTPUT«@_␤»
diakopter oh.
FROGGS r: { say "@_[]" }()
camelia rakudo ef73eb: OUTPUT«␤»
diakopter n: { say "@_[]" }() 08:21
camelia niecza v24-37-gf9c8fc2: OUTPUT«␤»
08:21 salv0 joined, berekuk joined
diakopter rn: { @_ := [5,6]; say "@_[]" }() 08:21
camelia niecza v24-37-gf9c8fc2: OUTPUT«5 6␤»
..rakudo ef73eb: OUTPUT«===SORRY!===␤Cannot use bind operator with this left-hand side␤at /tmp/xO6AzI6g30:1␤------> { @_ := [5,6]⏏; say "@_[]" }()␤ expecting any of:␤ postfix␤»
diakopter rn: { @_ = [5,6]; say "@_[]" }()
camelia rakudo ef73eb: OUTPUT«5 6␤»
..niecza v24-37-gf9c8fc2: OUTPUT«Unhandled exception: Unable to resolve method LISTSTORE in type List␤ at <unknown> line 0 (ExitRunloop @ 0) ␤ at /tmp/5IoG7VkKGk line 1 (ANON @ 2) ␤ at /tmp/5IoG7VkKGk line 1 (mainline @ 3) ␤ at /home/p6eval/niecza/lib/CORE.setting line 4299 (ANON @ 3)…
diakopter r: { @_ = 5,6; say "@_[].elems" }() 08:23
camelia rakudo ef73eb: OUTPUT«5 6.elems␤»
diakopter o_O
r: { @_ = 5,6; say "@_[].elems()" }()
camelia rakudo ef73eb: OUTPUT«2␤»
labster r: str ~~ Str
camelia rakudo ef73eb: ( no output )
labster r: say str ~~ Str
camelia rakudo ef73eb: OUTPUT«True␤»
diakopter r: say Str ~~ str
camelia rakudo ef73eb: OUTPUT«False␤»
diakopter r: say str ~~ Stringy
camelia rakudo ef73eb: OUTPUT«False␤»
08:24 rindolf left
moritz labster: I have a local patch on top of your pull request that makes IO a role; spectesting it now 08:25
it builds, which is a good sign :-)
labster oh, good
08:25 rindolf joined
moritz one pitfall to avoid was that class IO is stubbed before it's declared 08:25
r: class A { ... }; role A { }
camelia rakudo ef73eb: OUTPUT«===SORRY!===␤Redeclaration of symbol A␤at /tmp/rmLsDiulnt:1␤------> class A { ... }; role A ⏏{ }␤ expecting any of:␤ argument list␤ postfix␤ statement end␤ statement modifier␤ statement mod…
moritz r: role A { ... }; role A { } 08:26
camelia rakudo ef73eb: ( no output )
moritz r: package A { ... }; role A { }
camelia rakudo ef73eb: OUTPUT«===SORRY!===␤The following packages were stubbed but not defined:␤ A␤at /tmp/xFdpARkC7u:1␤------> package A { ... }; role A { }⏏<EOL>␤ expecting any of:␤ statement list␤ postfix␤ statement end␤»…
moritz so the stubbing need to be of the right kind (package/role/class)
diakopter r: sub foo { return 5,6,:foo(:foo(:foo)) }; my (*@x,*%y) := foo(); say @x; say %y
camelia rakudo ef73eb: OUTPUT«5 6␤("foo" => Mu).hash␤»
08:37 drbean left 08:38 drbean joined 08:43 rindolf left, rindolf joined
dalek ecs: 055f688 | diakopter++ | S01-overview.pod:
missing
08:43
ecs: 26ec6d9 | diakopter++ | S02-bits.pod:
tiny errs
08:45 census joined 08:46 pupoque joined 08:47 quester left 08:48 dakkar joined 08:53 MrMeek-afk joined 08:54 MrMeek left 08:57 domidumont left, domidumont joined 08:58 domidumont left 08:59 rindolf left, rindolf joined
diakopter r: $_ = macro foo { {{ }} }; say $() 09:00
camelia rakudo ef73eb: OUTPUT«===SORRY!===␤Error while compiling block (source text: "$_ = macro foo { {{ }} }; say $()"): Error while compiling op call: Error while compiling block : Error while compiling op p6store (source text: "="): Unknown QAST node type NQPMu␤»
09:00 pupoque left
diakopter r: $_ = macro { }; 09:00
camelia rakudo ef73eb: OUTPUT«===SORRY!===␤Error while compiling block (source text: "$_ = macro { };"): Error while compiling op call: Error while compiling block : Error while compiling op p6store (source text: "="): Unknown QAST node type NQPMu␤»
09:00 pupoque joined
arnsholt I'm guessing the AST of a macro block doesn't have the bits an op call expects to find 09:01
diakopter r: $_ = BEGIN macro { }; 09:02
camelia rakudo ef73eb: OUTPUT«===SORRY!===␤Error while compiling block : Error while compiling block (source text: " macro { }"): Unknown QAST node type NQPMu␤»
hoelzro :sus
damn, sorry
diakopter /kickban hoelzro
oops
FROGGS hehe
09:14 rindolf left, rindolf joined 09:16 fgomez left 09:21 tgt joined 09:23 gtodd1 joined, gtodd left 09:24 rindolf left, domidumont joined, rindolf joined
diakopter S02 makes my head hurt 09:25
hoelzro it's a bit overwhelming =/
09:26 Kharec left
diakopter moritz: I'm making a list of unimplemented thingies - ethercalc.org/i982ooyabg 09:26
anyone: please leave some row gaps and start adding things if you like
for other synopses
S02 is making me cry 09:27
09:27 Kharec joined
FROGGS .ask TimToady Should the PairSet type go too is Set gets removed? perlcabal.org/syn/S02.html#line_1902 09:27
yoleaux FROGGS: I'll pass your message to TimToady.
FROGGS diakopter: I'll add things later for at least S10 and S11 09:28
diakopter cool 09:29
FROGGS diakopter: btw, this is working now locally since last night: perl6 -e '{ use v5; use Test2; eval "say $^V" }; { use 5.10; say $0 };' # Test2 will be treated as a Perl5 module, even if there is no v5 in it... 09:35
diakopter cool.
FROGGS**=FROGGS
masak good antenoon, #perl6
FROGGS ahh, and use v6; use Test2:from<Perl5>; is working too
hoelzro whoa, that's sweet
FROGGS hi masak
09:36 pecastro joined, rindolf left 09:37 rindolf joined
diakopter decides to skip the rest of S02 ("Names") for now, since last I remember, most of that was implemented 09:37
okay, that's nify. 09:38
nifty.
$(blah) and such are introduced 3 times in S02 as if it's the first time
09:39 araujo left 09:44 berekuk left 09:47 census left 09:48 rindolf left, rindolf joined, tgt left 09:57 jaffa4 joined, rindolf left, rindolf joined
tadzik ello ello 10:00
apparently my h is broken
FROGGS ewww 10:02
tadzik: you should buy a new keyboard and send timotimo you tab and left alt key :o)
10:04 spider-mario joined 10:05 anuby left
diakopter r: sub infix:[/./] { say $^a, $^b }; 5@4 10:17
camelia rakudo ef73eb: OUTPUT«===SORRY!===␤Method 'ast' not found for invocant of class 'NQPMu'␤»
diakopter heh, a genuine bug
10:19 krunen joined
diakopter r: say :99999999999999999999999('dd') 10:19
camelia rakudo ef73eb: OUTPUT«Cannot convert string to number: radix (in decimal) expected after ':' in ':⏏-2147483648<dd>' (indicated by ⏏)␤ in method sink at src/gen/CORE.setting:10837␤ in method BUILDALL at src/gen/CORE.setting:801␤ in method bless at src/gen/CORE.setting:743␤ in method …
diakopter 'nother genuine bug
where's masakbot when you need him
masak submits rakudobug 10:20
masak submits rakudobug 10:21
diakopter heh. try golfing that former one. :D
10:23 daxim left, daxim joined
masak diakopter++ # an artist in disguise 10:25
diakopter r: sub infix:[/./] 10:26
camelia rakudo ef73eb: OUTPUT«===SORRY!===␤Method 'ast' not found for invocant of class 'NQPMu'␤»
masak there you go. 10:28
masak includes that in the ticket
10:37 cognominal left 10:38 cognominal joined 10:50 jerome_ left 10:52 kaleem left 11:02 sqirrel joined 11:06 jerome_ joined 11:11 crab2313 left
FROGGS masak++ 11:13
masak why are people talking about "ripping out Set" in the backlog? what prior conversation did I miss? :) 11:18
FROGGS masak: I remember that TimToady said that Set should be removed, but it seems like this happened when ilbot was absent :/ 11:24
11:26 xinming left
moritz <gandalf> What madness is this? </gandalf> 11:26
masak +1 11:27
Set? removed? why in the world...?
11:28 xinming joined
masak of all the weird container classes we have in Perl 6, Set is by far the least useless, IMO. 11:28
FROGGS hmmm 11:29
maybe I am thinking of BagSet?
shachaf Is Set a... Set? That doesn't sound very weird. 11:31
FROGGS damn, my braino sucks 11:32
masak shachaf: sorry, what? 11:33
FROGGS masak: github.com/perl6/roast/commit/0359...ab4d16c405
masak looks
FROGGS it was Seq, not Set -.-
diakopter r: ;
masak oh, Seq! 11:34
shachaf Never mind.
FROGGS timotimo should have said: Did you mean Seq?
:P
masak FROGGS: I feel much less confused and apprehensive now.
camelia rakudo ef73eb: ( no output )
diakopter wait, I thought you were timotimo
FROGGS ?
diakopter kidding, nm
FROGGS hehe
okay 11:35
*g*
masak surely not, the Levenshtein distance between "FROGGS" and "timotimo" must be huge.
moritz just 7, if you discount case 11:36
FROGGS O.o 11:37
masak .oO( "I'm a PC" -- "I'm a Mac. I discount case." )
diakopter both Mac and PC discount case 11:38
by default
masak oh, that is true. 11:39
masak hugs Unix 11:40
oh btw.
I have a Perl 6 day today.
my plan: *finish* the t2 reviewing. blog about the #masakism course. blog about t2. 11:41
(yeah, $work is finally easing up.)
moritz \o/ 11:42
11:45 xinming left
daxim masak, here's a prediction: 4c6348acc9ce3d37ff5930209fe2eb602db64d91 I will reveal it later. this hash proves I have made the prediction at this time 11:45
masak daxim: whatever that is, using a SHA-1 for that is pretty cool.
daxim: though SHA-1 is cracked enough for that to be exploitable, you know that, right? :P 11:46
11:46 xinming joined
daxim everyone's free to try to crack it within the time frame it becomes moot. you hear that, echelon? 11:46
masak daxim: in any case, I'm now very curious. :) 11:47
11:47 rindolf left
masak daxim: what's the time frame? when will you tell us? or is that part of the secret? 11:47
masak .oO( or can't you tell us that *either*?! ) 11:48
daxim later
arnsholt I'm thinking perhaps a git commit?
masak yeah. or any git object. 11:50
11:52 kaleem joined
moritz used the sha-1 trick for his iterated prisoner's dilemma strategy 11:52
masak daxim++ moritz++
moritz masak: have you heard of zero-knowledge proofs? 11:53
masak sounds familiar.
masak reads on Wikipedia 11:54
moritz mathoverflow.net/questions/22624/ex...2628#22628 this is a very intuitive example 11:55
masak I love the world we're living in. I can literally search for anything within the span for five seconds.
nwc10 but likely you can't find details of anything minor that happened more than 10 years ago
11:55 rindolf joined
nwc10 (which is frustrating) 11:56
moritz it only works for the body of "common knowledge". Luckily that's rather big, and growing 11:57
but once you look for very specific stuff (heat conductivity of a certain alloy, for example) you quickly run into its limits :-)
11:58 tgt joined
nwc10 or historical news reports on terrorist bombs that caused no casualties 11:58
masak well, it just so happens that I'm not finished with all the common knowledge yet! :P
masak .oO( don't rush me! ) 11:59
moritz and the common knowledge probably grows faster that any single human can learn it
FROGGS there is a new problem, the available information will become to big at some point so one might isn't able to find what you want
s/you/one/
12:00 pupoque left
moritz FROGGS: search engines seem to handle that nicely, and they'll also continue to progress 12:00
12:00 pupoque joined
dalek kudo/nom: 2dca6ed | (Brent Laabs)++ | src/ (5 files):
rename class IO to IO::Handle, tag IO subclasses with base class IO
12:02
kudo/nom: 5630ceb | moritz++ | src/ (5 files):
Merge branch 'nom' of github.com/labster/rakudo into nom
kudo/nom: 37c9956 | moritz++ | src/core/ (3 files):
make IO a role
FROGGS moritz: I hope so
dalek ast: b60b89b | moritz++ | S (2 files):
chase some IO -> IO::Path spec changes
12:05
masak FROGGS: there's a Swedish SF short story about how the Web evolves into the (galactic) Snarl, so enourmously huge that anything that you could conceivably think of has already been put online.
FROGGS: hammer mindlessly on your keyboard and hit search? hundreds of beings have already written *poems* with exactly those random letters in them.
it's a nice story. kinda makes one think. :) 12:06
12:12 skids left
cognominal masak: sounds like en.wikipedia.org/wiki/The_Garden_of...king_Paths 12:15
someday I will learn spanish just to learn Borges in the text 12:16
masak sounds like a plan :) 12:17
12:18 kaleem left
cognominal In fact the title, I searched is en.wikipedia.org/wiki/The_Library_of_Babel 12:18
Nom- man parrot is so slow 12:21
:P
12:21 pupoque left
cognominal The library of babel is a metaphor for the modern world where we are flooded by meaningless information, and if the information makes senses, it is not accurate. 12:22
12:24 kaleem joined
Nom- Method 'compunit_mainline' not found for invocant of class 'HLL::Backend::JVM' <-- anyone know if that's new? 12:26
moritz Nom-: I haven't heard it before. What did you do to trigger that error? 12:28
FROGGS Nom-: is that when building nqp-jvm? note: there is no rakudo-jvm yet 12:30
12:32 Targen left 12:40 gtodd1 is now known as gtodd
Nom- Yeah it is 12:43
It looks like it builds the files I wanted anyway... just bombs out with that error immediately after 12:44
12:46 FROGGS left, pupoque joined 12:50 Targen joined
masak "Not only did he arguably invent the hypertext novel—Borges went on to describe a theory of the universe based upon the structure of such a novel." en.wikipedia.org/wiki/The_Garden_of...king_Paths 12:52
whoa.
cognominal masak: I knew you would like it 12:55
12:56 PacoAir joined
masak it sounds familiar. I've started in on Borges, and probably heard the name of that novella. but I haven't read it. 12:57
13:01 FROGGS joined 13:10 SamuraiJack_ left 13:13 colomon left
masak '"Edelweiss" is not the national anthem of Austria, but is in fact an original composition created for the musical The Sound of Music.' -- en.wikipedia.org/wiki/List_of_comm...onceptions 13:13
I think this channel might be the most informed IRC channel wrt that very misconception :P
(at least about "Edelweiss" not being the national anthem of Austria) 13:14
13:19 colomon joined
daxim www.youtube.com/watch?v=TLVIICWRbjM # your earworm for the rest of the day 13:27
13:31 Targen left 13:41 skids joined 13:58 baest left 14:00 sizz left 14:01 sizz joined, araujo joined
masak daxim: what I don't even 14:03
daxim I hear it was fab
back then.
masak today's autopun: twitter.com/ceterum_censeo/status/...1292022786 14:07
14:14 xilo left 14:19 dickinsm left 14:27 Targen joined 14:34 xilo joined
masak this t2 solution scares me a little. 14:36
14:36 daxim left, daxim_ joined
arnsholt In a good way or a bad way? =) 14:36
masak in a good way. 14:37
arnsholt Excellent!
masak two things: (a) first off, this person knows how to code Perl 6. the improvement from year to year is noticeable. 14:38
(b) also, the solution does it hard-core with grammar derivations.
I get the feeling that this *program* knows more about grammars than I do!
arnsholt =D =D
14:40 census joined 14:41 tgt left 14:44 pupoque left 14:48 kaare_ joined
[Coke] wonders how you'd use grammars on t2, and eagerly awaits the solution. 14:52
14:53 census left 14:54 tgt joined
masak oh, I meant 'grammar production rules' in a very loose sense. as data structures and algorithms. 14:55
14:55 FROGGS left
masak and here's a haiku it just produced: 14:55
sheep hide at bad rains
bitterly modest slumber
its star to their rains
masak weeps happily
cognominal t2?
14:55 kaleem left
masak cognominal: once upon a time, I ran a contest. 14:55
I'm not done reviewing the solutions yet...
cognominal: strangelyconsistent.org/blog/the-20...ng-contest 14:57
arnsholt masak: Oh, it uses something like a CFG to generate? That's very cool! 14:58
14:58 thou joined
moritz looks forward to seeing that solution 15:01
masak seriously, I could just spend the rest of the day pasting haikus on the channel. 15:02
I think I'll collect them into a gist instead... :)
arnsholt Or if you finish the reviews, you can post the code and we can generate them indefinitely =D 15:05
masak "darkness of white birds". wow.
arnsholt Might be a cool little Perl 6 demo webapp, actually =D
masak gist.github.com/masak/5452839
I'll keep filling that gist during the day :)
another thing: never have I been so tempted to supply my *own* solution to one of the problems. 15:07
knowing the best tricks of all the contestants' solutions.
I may still do that, in fact.
not to the contest, mind. even if I were eligible, the contest is closed ;)
kresike bye folks 15:09
15:09 kresike left 15:10 frdmn left 15:11 FROGGS joined 15:22 census joined
masak moritz: "achy force dentist" :) 15:22
masak now has a full set at gist.github.com/masak/5452839
moritz can see the fun in reviewing 15:29
[Coke] edgar's definitely read better. 15:30
as doo vvoor's. 15:31
er, "as doo vvoorr's" (compared to mine, anyway)
I wonder if anyone else is calculating syllable length or if they are storing that in their lexicon. (or if that's even allowed, I don't even remember anyway)
*anymore
masak anything's allowed, including generating the same static haiku each time. 15:32
[Coke] "mimmood dispeople deed" ? Guess I should have done more than ack'd through /usr/share/dict/words . ;) 15:33
15:34 pupoque joined, daxim_ left, sjohnson left
masak :) 15:35
the two significant axes seem to be (a) speed and (b) quality/haiku-ness. 15:36
[Coke] ugh. Guess I lose on both.
masak well, your solution isn't among the fastest. 15:37
GlitchMr++ and moritz++ tie on speed.
[Coke] please note that my solution gets faster if you run it more than once. ;)
masak :)
[Coke] (but not much faster, no doubt.)
masak around 20 seconds each time, here on my laptop.
[Coke] the main thing to like about my solution is that it led to a module in the ecosystem, I think. 15:38
masak yeah.
me too.
15:38 pupoque left 15:39 pupoque joined 15:40 iacob joined, pupoque left 15:42 rindolf left 15:46 Targen left 15:49 rindolf joined 15:50 MrMeek joined 15:52 MrMeek-afk left
timotimo in some places p6 reminds me a little bit of LINQ. 16:02
yoleaux 22 Apr 2013 20:45Z <japhb_> timotimo: re: irclog.perlgeek.de/perl6/2013-04-22#i_6733138 you might be able to co-opt some of the logic perl6-bench uses to build multiple versions of each compiler. It puts special effort into keeping only *one* network-updated clone of each repo (rakudo, nqp, parrot, etc.), and doing carefully-handled local clones to make it really fast to create and build a new, independent rakudo that can coexist with …
the others.
moritz qiao.github.io/PathFinding.js/visual/ 16:06
16:10 Targen joined
masak srsly, we should have a ".classify Awareness Day" or something. 16:11
16:15 Chillance joined
dalek : 60c68f2 | (Tobias Leich)++ | STATUS.md:
sorted by pass/plan
16:16
16:17 Subterra is now known as Ayiko
pmichaud good morning, #perl6 16:19
cognominal \o/ 16:20
PerlJam greetings Pm
masak pmichaud! \o/ 16:21
16:22 supernovus joined
timotimo (although i didn't use LINQ yet, ever) 16:22
16:23 FROGGS left 16:34 SmokeMachine joined 16:44 FROGGS joined 16:45 silug left
supernovus Has there been any news from llamarider about refactoring the Timezone portion of DateTime? I'd be willing to do it in my spare time. I could also write a Perl 6 equivalent of DateTime::TimeZone, built with the new model in mind. 16:45
FROGGS I havn't heard anything 16:46
16:48 REPLeffect joined 16:53 PacoAir left
FROGGS jnthn: I take that as the approve to allow all of v5.* for Perl5 ('v' required as opposed to my earlier patch): irclog.perlgeek.de/perl6/2013-03-23#i_6621432 16:54
17:00 SamuraiJack_ joined 17:01 dakkar left
GlitchMr <masak> [15:37:17] GlitchMr++ and moritz++ tie on speed. 17:03
Why I've a feeling it's because my entry had insanely short dictionary...
Actually I wonder how would it work with bigger dictionary... 17:04
(also, it didn't even tried to make anything good) 17:05
dalek : 3c28e27 | (Tobias Leich)++ | STATUS.md:
remove debug out, fix "features" typo in grammar
17:06
17:06 silug joined 17:07 PacoAir joined 17:11 amkrankruleuen left, lizmat left, woolfy left 17:14 lizmat joined 17:16 woolfy joined
pmichaud did the qrpa (de)serialization code ever make it into nqp master? 17:33
I might have some short burts of tuits in the next couple of weeks, and could spend some on improving lists if that's beend one.
*been done
I'm not particularly interested in the whole set of RPA->QRPA conversions in one massive commit, though; I'd prefer to see the serialization features added+tested, then gradual commits to move RPA->QRPA with adequate testing. 17:34
17:34 ggoebel left
jnthn pmichaud: I suspect it's already handled. If it's not, it's probably a 10-15 minute job for me. 17:34
pmichaud I know someone was working on it in a branch. 17:35
jnthn In fact, I can check...
pmichaud when I last looked at QRPA last summer, it wasn't being handled.
supernovus Okay, I have $*TZ as an integer, representing the local offset rather than a Callable object. It now seems to return the proper offset in negative time zones. Is there any reason to keep support for using Callable objects as the Timezone?
17:35 ggoebel joined
jnthn pmichaud: Serialization? 17:35
masak supernovus: no.
pmichaud jnthn: serialization, yes.
masak supernovus: please remove all traces of such nonsense :)
supernovus: posterity will thank you ;)
jnthn pmichaud: Do you have an indication of what failed to work?
PerlJam supernovus: In what unit of time is $*TZ expressed? 17:36
pmichaud when I started converting serialized things to use qrpa instead of rpa, bootstraps failed
the main one was to convert List in rakudo to use QRPA instead of RPA 17:37
just a sec, I may be able to find a one-line patch
supernovus PerlJam: seconds
jnthn pmichaud: Ah...yeah, the serializer doesn't handle it. 17:38
supernovus It shows my Timezone as -25200 for instance. I'm planning to make friendly offset wrappers for returning the value in hours:minutes format.
jnthn But I can fix that really easy
Even on the train :)
pmichaud jnthn: that would be awesome.
PerlJam supernovus: seconds is just fine by me :) 17:39
pmichaud I won't need it immediately; I just noticed yesterday that I had some pockets of potential hacking time where I could've played with that.
(I played with other p6-stuff instead)
anyway, if someone can get QRPA to play well with serialization, it unblocks me on a couple of items :)
PerlJam pmichaud: what p6-stuff is on your radar these days?
pmichaud PerlJam: some nqp-jvm stuff, Lists, and various small performance improvements and code cleanups 17:40
well, "small performance improvements" in the sense of "small code changes that might have large impacts"
with emphasis on "might" :)
dalek rl6-roast-data: a8eab0a | coke++ | / (4 files):
today (automated commit)
17:41
pmichaud also I'll want to find time to prepare my yapc::na talks :)
PerlJam as long as you're having fun :)
TimToady attempts to fuzz into existence again, hopefully this time without a relapse...
yoleaux 19 Apr 2013 11:53Z <FROGGS> TimToady: Should the grammar switch to Peril5 too if it detects a 'use 5.10', rather just for a 'use v5' ?
09:27Z <FROGGS> TimToady: Should the PairSet type go too is Set gets removed? perlcabal.org/syn/S02.html#line_1902
pmichaud PerlJam: I don't have time for anything else :)
diakopter TimToady: wb 17:42
TimToady notes the Set vs Seq confusion
pmichaud TimToady: \o/
[Coke] TimToady: hio!
supernovus I guess this means all the saved-offset stuff is unneeded too, which will make it slightly cleaner. 17:43
jnthn pmichaud: Compiling a patch now. This will let you make progress, though they'll come back as RPAs.
pmichaud jnthn: okay. will be a lot nicer when they can come back as QRPAs :) 17:44
jnthn pmichaud: I can correct that, but that's a bit of an all-or-nothing, so we may want to convert the rest.
And then switch the deserialization over.
pmichaud oh, you'll have everything convert back to an RPA?
sorry, QRPA?
hmmmm
okay, I think I can live with that.
jnthn pmichaud: At the moment I'm just doing the "serialize QRPAs as if they were RPAs" 17:45
[B[A
...darn tunnels.
pmichaud jnthn: okay, I can work with that.
jnthn pmichaud: I can switch over the deserialization when you wish. 17:46
pmichaud it may all be temporary-ish anyway :)
to be replaced by VMarray or somesuch
jnthn Yeah, well, VMArray on JVM has the same algorithm as QRPA
TimToady
.oO(tunnel carps)
jnthn Ah well, the train is heading to Skaane, which is too flat for tunnels... :)
pmichaud okay, I need to grab lunch here -- bbl. 17:47
TimToady London's pretty flat, but that doesn't stop 'em...
jnthn ;)
To be fair, there is a huge tunnel under Malmo too. But I ain't going there today.
pmichaud quantum tunnels to a lunching place.
jnthn bah, I thought my QRPA serialization fix had busted some tests, then realized I had just built nqp-jvm instead of nqp-parrot... :) 17:48
dalek p: 0e0428a | jonathan++ | src/vm/parrot/6model/serialization.c:
Enable serialization of QRPA.

Comes back as an RPA; can switch that over when we're ready.
17:54
[Coke] wonders if the serialization is the same if you're on nqp-jvm vs. nqp-parrot 18:04
jnthn [Coke]: Same format, yes.
The JVM implementation is, in some senses, a bit simpler because everything is a 6model object. 18:05
18:08 cognominal left
supernovus Anyone here work for the Perl Foundation, or has any way to know if they received my CLA? 18:08
[Coke] Sort of, but no.
18:08 cognominal joined
[Coke] ISTR pmichaud has keys to see those. 18:08
18:13 tgt left
dalek ecs: 5692ced | (Timothy Totten)++ | S32-setting-library/Temporal.pod:
Updated Temporal reflecting Int-only Timezones.
18:23
timotimo jnthn: are you integrating the QRPA work into nqp? 18:24
could any of the work froggs and me did get salvaged?
[Coke] timotimo: Ints?
what about India?
masak TimToady! \o/ 18:25
[Coke] oh, it's in seconds, not hours.
nwc10 [Coke]: India isn't quirky enough. Think Nepal
[Coke] that seems LTA. 18:26
supernovus So, given I have no read/write access to Rakudo at the moment (no idea if my CLA ever reached TPF, I never heard anything back from them), do I just submit a [PATCH] to [email@hidden.address] ? 18:28
timotimo PR on github
is easiast
nwc10 and `git format-patch` is probably better than just a [PATCH] (but Pull Request is best) 18:29
sorear supernovus: You need a CLA only before you can apply for direct commit access. All other channels for submitting code do not require one
timotimo and [PATCH] is better than pasting the diff into IRC line by line 18:30
supernovus sorear: Yeah, I have submitted patches before. Prior to this it was always done via 'git format-patch' and emailing it to a bug tracker. The pull request method seems a lot friendlier.
[Coke] pull requests work.
18:30 iacob left
[Coke] when we first switched to git there was resistance, but I think we've had quite a few things applied via pull request in the past years. 18:31
FROGGS * TimToady notes the Set vs Seq confusion <---- Ya, was just a braino of mine :( 18:34
jnthn: I take that as the approve to allow all of v5.* for Perl5 ('v' required as opposed to my earlier patch): irclog.perlgeek.de/perl6/2013-03-23#i_6621432 18:35
jnthn: so I'll patch the grammar these days with a required 'v' 18:36
jnthn FROGGS: wtfm
*wfm even
FROGGS that is some sort of 'yes' ? :o) 18:37
jnthn "works for me" :)
(as in, I've no objections) 18:38
FROGGS ya, just wanted to make sure *g*
supernovus There, pull request sent.
dalek : 64cdca0 | (Tobias Leich)++ | STATUS.md:
"proper" fix "use feature", it still does nothing though
18:39
lizmat TimToady: since the "use" functionality in Perl 6 is conceptually very different from "use" in Perl 5, I was wondering whether we shouldn't have another name for it in Perl 6 18:43
because grokking "use" in Perl 6 is going to be hard to Perl 5 programmers 18:44
I was thinking about "enjoy" as an alternative to "use"
enjoy |ɪnˈdʒɔɪ, ɛn-| verb
1 take delight or pleasure in (an activity or occasion):
2 possess and benefit from:
enjoyer noun
FROGGS uhhh 18:45
if we ever want to have a 6.0.0 we shouldn'z change things just because it may be hard when coming from "another language" 18:46
and for me "use" is pretty much the same "use" of perl 5
lizmat "use" in Perl 5 leaks, and Perl 5 programmers are used to that 18:47
FROGGS for me that is more in the category of doing things right
lizmat leaks outside the lexical scope it is called in
FROGGS same goes for eval
lizmat indeed… 18:48
FROGGS ... not about the scope, but about "doing things right" and "beeing very different to perl5"
because perl5's eval is a misused try/catch
lizmat agreed, and modern Perl users already use Try::Tiny and its ilk 18:49
so are already used to doing "try" versus a block eval 18:50
flussence ...use in v6 is already specced with a way to put stuff in the outer scope, it's just NYI
FROGGS flussence: how?
lizmat anyways, "enjoy" was just a thought that maybe good for an April Fool's joke if nothing else :-)
FROGGS use Module :OUR or something like that?
lizmat++ # :o) 18:51
lizmat and we all know that April Fool's jokes can come back to bite you :-)
flussence lemme find it, I know it's there because I've wanted to use it several times myself...
S11:132 18:52
use ... :EXPORT
18:53 tgt joined
[Coke] we now have 9 outstanding pull requests. 18:54
jnthn Languages tend to re-use old words for new concepts.
When there's a clear connection.
I think there is in the case of "use"
flussence
.oO( and at the opposite end of the scale, we have Rust... )
FROGGS right, it would be a big surprise if there wasnt this 'use' in perl6
jnthn You, uh, use it for the same purposes, even if the semantics are - depending on your standpoint - a little or a lot different.
pmichaud "enjoy" reminds me of Coca-Cola, now that I think about it. :-) 18:58
jnthn But module use is generally considered healthy ;)
FROGGS coca-cola is good for cleaning 18:59
jnthn: I'd like you to show you a diff, but you must promise not to cry, okay? 19:00
jnthn: gist.github.com/FROGGS/59b7f7a890381005eda7
jnthn: please have a look at the way I pass the adverbs around... I think it maybe be nicer to pass a hash, instead of named optionals... 19:01
(ignore the version thingy and the Perl5 hardcoded bit)
huf ljhlksdhfkjh <- nice name :) 19:02
pmichaud "adopt" "play" "borrow" "opt" "tap"
FROGGS and pushing things inside :form(XXX) as -M isnt nice too, won't push that way
19:02 jaffa4 left
FROGGS huf: well, that is for debugging only :o) 19:03
huf :)
FROGGS huf: but it does its job well
huf as long as nobody actually defines that method
some little terrorist ;)
(if i understood the code correctly)
FROGGS huf: this will never be comitted
huf so the terrorist is you? :) 19:04
FROGGS hehe, ya, maybe :o)
moritz lizmat: I don't think 'use' is all too different in p5 and p6 19:05
pmichaud "load" :-P
FROGGS jnthn + pmichaud: and we maybe should have to think about what :from() should actually do, even for the nqp case
I could image that there is an nqp module, which only adds the nqp lib dirs
lizmat moritz: the strict lexicalness of -use- in Perl 6 is going to trip up many Perl 5 developers 19:06
moritz lizmat: 'use' isn't strictly lexical 19:07
lizmat: it's subroutine lookup that's strictly lexical
pmichaud I suspect P5 devels will get tripped up by more than just "use" :)
FROGGS lizmat: how often does one 'use' a module within a block in perl5?
19:07 berekuk joined
lizmat together with the NYI fact that you can have multiple versions "online" 19:07
moritz lizmat: and no matter what the rename the 'use' statement to, the lexality of the subroutine lookup will trip up p5 programmers 19:08
lizmat you wouldn't, but you would expect any submodules to be able to access anything that a main module would have loaded
supernovus Okay, so I've updated Rakudo, and the specs, now I'll update the spec tests to make sure they are using Int-only timezone offsets.
gtodd maybe using v6's use will be a way to learn to use v6 ...
lizmat perhaps…
gtodd so use will be useful
usually 19:09
FROGGS use-ually?
lizmat moritz: so what isn't strictly lexical, then?
moritz lizmat: type name lookups, for example
lizmat tests 19:10
moritz r: { use Test }; say Test
camelia rakudo 37c995: OUTPUT«(Test)␤»
moritz r: say Test
camelia rakudo 37c995: OUTPUT«===SORRY!===␤Undeclared name:␤ Test used at line 1␤␤»
lizmat this is according to spec? 19:11
moritz yes 19:12
masak type names are global, yes.
moritz type declarations are 'our' by default, and the 'our' worlds from modules and mainline are merged at 'use' time
though of course nothing stops you from writing my class Flurb is export { ... } 19:13
lizmat rn: say Test; { use Test }
camelia rakudo 37c995: OUTPUT«===SORRY!===␤Undeclared name:␤ Test used at line 1␤␤»
..niecza v24-37-gf9c8fc2: OUTPUT«===SORRY!===␤␤Undeclared name:␤ 'Test' used at line 1␤␤Unhandled exception: Check failed␤␤ at /home/p6eval/niecza/boot/lib/CORE.setting line 1443 (die @ 5) ␤ at /home/p6eval/niecza/src/STD.pm6 line 1147 (P6.comp_unit @ 37) ␤ at /home/p…
lizmat khmmm... 19:14
FROGGS lizmat: it checks for names at compile time too
lizmat I guess it does :-)
FROGGS rn: say ::('Test'); { use Test }
camelia rakudo 37c995: OUTPUT«(Test)␤»
..niecza v24-37-gf9c8fc2: OUTPUT«Unhandled exception: System.NullReferenceException: Object reference not set to an instance of an object␤ at Niecza.StashCursor.Core (System.String key, Boolean final, Niecza.StashCursor& sc, Niecza.Variable& v, Niecza.Variable bind_to) [0x00000] in <file…
supernovus Well, looks like none of the spec tests for Temporal used Callable timezone's anyway. :-) 19:15
FROGGS \o/ no tests no fails \o/
19:16 alester joined
raiph #perl6 and #p6p5 take on cpanish metacpan.org/module/Pinto and stratopan.com/ ? 19:16
labster good morning, all you happy perl 6 people 19:18
moritz I don't understand what stratopan is 19:19
is it a code hosting service?
FROGGS good morning labster :o)
19:19 kaare_ left
moritz or more of a SaaS thing, like heroku? 19:20
PerlJam moritz: I thought it was a cloud-based CPAN
moritz but isn't CPAN already cloud-based?
gtodd history question: did perl5 modules used to use more XS (for speed) and then evolve gradually to a more "pure perl" implementation as cpus evolved ?
moritz I mean, it has lots of mirrors, and I don't care who hosts them. Which is quite cloudy to me
PerlJam gtodd: I don't think XS existed when CPAN was first created. 19:21
moritz gtodd: I don't think so
lizmat gtodd: I think the reverse, actually, as initialiy XS was used to interface with external libraries (e.g. DBI)
gtodd ah yes of course ... just wondered if the early gains by using XS were outdone by the gains in portability maintainability of pure perl 19:22
raiph moritz: only just saw stratopan. aiui it's a SaaS pinto.
gtodd and if something similar will happen with various vms, parrot, perl6 implementations ... 19:23
raiph moritz: for pinto checkout metacpan.org/module/Pinto::Manual::Introduction
FROGGS gtodd: but you must keep in mind that when XS was new, the build target was just unixish 19:24
19:26 domidumont left
labster moritz: thanks for fixing and merging my patch 19:28
moritz labster: thanks for providing it in the first place :-)
labster I had a feeling you were wanting it 19:29
moritz indeed 19:32
19:33 SamuraiJack_ left
supernovus kicks off "make spectest" 19:34
pmichaud /kick make spectest
supernovus ;-)
guh apparently I need to rebuild the CORE.setting first... 19:35
19:37 dmol joined
masak rn: my $foo = { leave 42 }; say $foo 19:42
camelia niecza v24-37-gf9c8fc2: OUTPUT«===SORRY!===␤␤Undeclared routine:␤ 'leave' used at line 1␤␤Unhandled exception: Check failed␤␤ at /home/p6eval/niecza/boot/lib/CORE.setting line 1443 (die @ 5) ␤ at /home/p6eval/niecza/src/STD.pm6 line 1147 (P6.comp_unit @ 37) ␤ at /ho…
..rakudo 37c995: OUTPUT«===SORRY!===␤Undeclared routine:␤ leave used at line 1␤␤»
masak huh. why don't we have 'leave' yet?
flussence rn: my $foo = { LEAVE 42 }; say $foo 19:43
camelia niecza v24-37-gf9c8fc2: OUTPUT«{ ... }␤»
..rakudo 37c995: OUTPUT«Block.new()␤»
jnthn masak: 'cus we don't have eats and shoots yet... 19:44
PerlJam why don't we have labels yet?
[Coke] my $foo = { take 42 } ; say $foo
r: my $foo = { take 42 } ; say $foo
camelia rakudo 37c995: OUTPUT«Block.new()␤»
[Coke] r: my $foo = { take 42 } ; say $foo()
camelia rakudo 37c995: OUTPUT«take without gather␤ in block at src/gen/CORE.setting:452␤ in block at src/gen/CORE.setting:502␤ in block at /tmp/58LPE6Tx2J:1␤␤»
[Coke] r: my $foo = { make 42 } ; say $foo
camelia rakudo 37c995: OUTPUT«Block.new()␤»
[Coke] r: my $foo = { make 42 } ; say $foo()
camelia rakudo 37c995: OUTPUT«Cannot bind attributes in a type object␤ in sub make at src/gen/CORE.setting:10941␤ in block at /tmp/1DlDly76Vr:1␤␤»
timotimo rn: my $crit = 1; my $state = ("fleets" => ((:owner_id(1), :target(2), :eta(3)).hash, (:owner_id(1), :target(3), :eta(4)).hash)); $state<fleets>.grep(*.<owner_id> ~~ $crit).perl.say; 19:47
camelia niecza v24-37-gf9c8fc2: OUTPUT«Unhandled exception: Cannot use value like WhateverCode as a number␤ at <unknown> line 0 (ExitRunloop @ 0) ␤ at /home/p6eval/niecza/lib/CORE.setting line 293 (Any.Numeric @ 6) ␤ at <unknown> line 0 (ExitRunloop @ 0) ␤ at /home/p6eval/niecza/lib/CORE.se…
..rakudo 37c995: OUTPUT«Cannot call 'Numeric'; none of these signatures match:␤:(Mu:U \v: Mu *%_)␤ in method Numeric at src/gen/CORE.setting:865␤ in sub infix:<==> at src/gen/CORE.setting:3008␤ in sub infix:<==> at src/gen/CORE.setting:3006␤ in method ACCEPTS at src/gen/CORE.setting:2…
masak PerlJam: that is another good question. 19:48
timotimo rn: say 5 ~~ 5;
camelia rakudo 37c995, niecza v24-37-gf9c8fc2: OUTPUT«True␤»
timotimo rn: (1, 2, 3, 4).grep(is-prime *).perl.say
camelia rakudo 37c995: OUTPUT«No such method 'Int' for invocant of type 'Whatever'␤ in sub is-prime at src/gen/CORE.setting:3456␤ in sub is-prime at src/gen/CORE.setting:3451␤ in block at /tmp/cVKax5PLLL:1␤␤»
..niecza v24-37-gf9c8fc2: OUTPUT«Unhandled exception: Unable to resolve method Int in type Whatever␤ at /home/p6eval/niecza/lib/CORE.setting line 3965 (is-prime @ 4) ␤ at /tmp/hiqMKyUaxa line 1 (mainline @ 3) ␤ at /home/p6eval/niecza/lib/CORE.setting line 4299 (ANON @ 3) ␤ at /home/p6…
timotimo rn: my $crit = 1; my $state = ("fleets" => ((:owner_id(1), :target(2), :eta(3)).hash, (:owner_id(1), :target(3), :eta(4)).hash)); $state<fleets>.grep({ $_.<owner_id> ~~ $crit}).perl.say; 19:49
camelia niecza v24-37-gf9c8fc2: OUTPUT«Unhandled exception: Cannot use hash access on an object of type Pair␤ at <unknown> line 0 (ExitRunloop @ 0) ␤ at /home/p6eval/niecza/lib/CORE.setting line 352 (Any.at_key @ 9) ␤ at <unknown> line 0 (ExitRunloop @ 0) ␤ at /tmp/3byo44i2td line 1 (mainli…
..rakudo 37c995: OUTPUT«Nominal type check failed for parameter ''; expected Any but got Mu instead␤ in sub infix:<===> at src/gen/CORE.setting:1741␤ in method ACCEPTS at src/gen/CORE.setting:1334␤ in method ACCEPTS at src/gen/CORE.setting:683␤ in block at /tmp/vmZMTZV2v5:1␤␤»…
timotimo huh
not sure what's going on
FROGGS diakopter: about the spec list, I am doing S10 now locally 19:50
PerlJam huh. Just got "maximum recursion depth exceeded" trying to build rakudo 19:52
masak it's Rakudos all the way down. 19:53
19:53 iacob joined
PerlJam gist.github.com/perlpilot/5455046 19:54
look familiar to anyone?
FROGGS hmmm, syntax error
19:55 DreamingInCode joined
PerlJam doh! never mind. Apparently I had some unstaged changes. 19:55
jnthn Battery flat, but nearly home anyway...bbiab & 19:56
PerlJam (toying with getting rakudo to grok PERL6OPT just like p5 does with PERL5OPT and forgot my changes were still there) 19:57
19:59 Chillance left 20:05 tgt left 20:11 nebuchadnezzar joined 20:15 tgt joined
masak out of 7 submissions, 4 manage to agree with me on the definition of "syllable". 20:17
or manage to implement it correctly, to be exact.
...so I guess the trap worked on this one. :)
(making a difficult subproblem look trivial in the task) 20:18
supernovus Gah, there is a Callable timezone in the spec tests. I shall kill it with fire. 20:23
PerlJam Why did we have Callable timezones in the first place? 20:25
[Coke] masak: I wonder if I am one of the ones that did not due to bugs in the initial port of that module. :| 20:26
supernovus It was to make TimeZone objects calculate their offsets dynamically. Which is better done in a module than in the core setting, IMHO. 20:27
masak [Coke]: no, I counted you twice as "getting it".
[Coke]: so, it's you, you, and two others :P 20:28
supernovus: +1
[Coke] masak: ... you can't count me twice, can you? 20:32
oh. I submitted 2x.
20:32 rindolf left
masak right. 20:33
jnthn back
masak there's something wrong with your first submission -- it doesn't run -- but that might be Rakudo slippage.
FROGGS jnthn: do you think there is much to allow proper INIT blocks in nqp? 20:34
jnthn: this would make my run_export hack obsolete
[Coke] masak: good thing only the second one counts?
jnthn FROGGS: NQP already has INIT blocks, no? 20:35
pmichaud yeah, NQP has INIT already.
supernovus Hmm, there's a lot of Callable stuff in here. The reason being that converting between timezones where DST rules may differ requires knowledge of the DateTime in question.
pmichaud whether it has "proper INIT blocks" is in the eye of the beholder. Or the pumpking. :) 20:36
FROGGS jnthn: ya, but they are not re-executed every 'use'/'need'
supernovus Changing this to a raw Int is going to require some rethinking on how to deal with daylight savings time. :-/
jnthn FROGGS: They should not be.
FROGGS S10:109 tells differently
jnthn It's importation that happens every time, not loading.
Then we should fix S10. 20:37
FROGGS :/
pmichaud S10:109 says "run to run" 20:38
not on "each load"
20:38 pecastro_ joined 20:39 pecastro left
jnthn checks 20:39
(to see it in context, to be sure he understands)
FROGGS hmmm, I see
pmichaud although in contrast with the previous paragraph, it does make it sound as though it expects INIT to be executed on each 'use' instance. 20:40
FROGGS changes the spec quick to say "each load"
masak folks,
jnthn yes, it says run to run.
pmichaud FROGGS: no, wait, let's make sure we understand the spec, and how the "varies from run to run" should be interpreted.
masak t2 reviewing is *finished*.
FROGGS pmichaud: JOKE
I dont change anything
masak [Coke]: "only the second one counts"? now where did you read that? :D 20:41
jnthn I'm pretty sure a lot of stuff relies on the semantics as Rakudo has them today. Certainly, a lot in NQP does.
lizmat FROGGS: that's the way INIT works in P5, no?
only when loading...
FROGGS lizmat: I'm not sure how it works there
pmichaud jnthn: is there a way to have code in a module that is executed on each 'use'?
masak [Coke]: "All solutions will be published after the conclusion of the contest. All are up for review." github.com/masak/p6cc2012/blob/master/rules.md
pmichaud (if so, what is it?)
supernovus You know, I think I'll pull all of the DST tests out of DateTime.t and move them into DateTime::TimeZone, as the Core setting shouldn't have to know about DST. 20:42
lizmat pmichaud: imports?
jnthn pmichaud: Yes, in Rakudo you write a sub EXPORT() { ... }
FROGGS pmichaud: making an EXPORT sub does it, but this is only executed if you provide positional imports
jnthn FROGGS: We could make that more reliable :) 20:43
FROGGS jnthn: so that it will be called indeed aways?
jnthn I mean, it probably wants to receive the positionals but I don't think a lack of them should mean "don't call it"
FROGGS always*
jnthn FROGGS: Yeah.
FROGGS hmmm, sounds pretty good to me 20:44
jnthn FROGGS: It feels to me like you write one you expect it to be called :)
*if you write one...
FROGGS ya
pmichaud jnthn: yeah, I agree with that.
FROGGS well, tbh I dont really expect something :o)
\o/
pmichaud that feels cleaner-ish than using INIT to do it.
which, returning to FROGGS' initial question ...
lizmat fwiw, pmichaud++ 20:45
pmichaud FROGGS: so, do you need a way to have a module in NQP execute some code on each use/need ?
FROGGS yes
my Perl5 module, which has to set the current slang
like: { use v5; say $^O }; { use v5; say $^V } 20:46
pmichaud your v5 module is NQP, here? 20:47
jnthn I don't think it'd be hard to provide the EXPORT thingy in NQP, fwiw.
pmichaud I'd think it'd want to be Perl 6.
it could be a thin Perl 6 wrapper around some NQP stuff, if that helps.
FROGGS pmichaud: it is at the same level like Perl6::Grammar (in fact, it inherits from it)
pmichaud but as a p6 module, it could easily provide a sub EXPORT (as well as handle other Perl6 integration-type stuff) before handling control off to a NQP-specific portion of the code. 20:48
20:48 dmol left
pmichaud just a thought. 20:48
FROGGS well, that EXPORT sub already does its job
dalek ast: c07b14a | (Timothy Totten)++ | S32-temporal/ (2 files):
Pulled Callable Timezone related tests out, unfudged some tests.
pmichaud I'll let you and jnthn++ figure out the right abstraction layer for now. :) 20:49
FROGGS *g*
pmichaud somehow I feel a bit better about a p6 wrapper around nqp stuff than going straight to nqp. 20:50
FROGGS I'm pretty happy with it atm
pmichaud depends on how much we want to bury p6 semantics into nqp stuff.
*p6 module semantics
20:52 thou left
pmichaud lizmat: you can see the reality of my earlier comment that S10/S11 stuff tends to be a bit slushy as opposed to definitive :) 20:53
20:54 MrMeek-afk joined
masak hm, I see `sub nul-byte-workaround($string) { $string.subst(/\x00/, '', :g }` in my blog software code. anyone remember what that was about? something to do with Parrot IO, right? 20:56
20:56 MrMeek left
masak I find nothing in RT. 20:56
flussence oh I remember that one 20:57
masak maybe I just got so sick of it at that point that I fixed it but didn't submit a bug report.
masak hits the clogs
20:57 silug left
flussence socket writes or something were padding up to a multiple of 1024, or something like that. 20:57
masak I remember the frustration I felt when I discovered it, but nothing else.
it was like "wow, do the Parrot devs deliberately screw with us now or what? :(" 20:58
unfair, I know. they're understaffed and doing their best, just like we are.
flussence found it :D irclog.perlgeek.de/perl6/2013-01-31#i_6399112 20:59
masak just found it too.
right. I was not amused.
20:59 erkan left
masak seems I didn't file a bug report on it. 21:00
whatever happened to the problem? which Parrot versions have it? do we still need to take action somehow? 21:01
I am no longer angry, so I can put some effort into filing/fixing it if that's still needed.
jnthn masak: Do things break if you remove the hack?
masak I... I'd prefer to make a test that doesn't involve my blogging software... :) 21:02
Justin Case.
flussence my testcase file above there passes
(guess I misremembered, it was *files* that were broken here... sockets were another thing I had a problem with [that got fixed]) 21:03
masak yeah, files.
pmichaud flussence's test case fails in Rakudo Star 2013.02
flussence hm
I'm on 2013.04-9-gef73eb9
masak so somehow it got fixed in the meantime, then? 21:04
pmichaud I'm thinking it's one of those Parrot IO buggies
masak yeah.
pmichaud I know that 5.0.0 had some bugs that were fixed in 5.1.0
oh, and Rakudo Star 2013.02 was still using 4.10.0, I think.
so it could be a fix from anywhere after 4.10
FROGGS jnthn: I updated gist.github.com/FROGGS/59b7f7a890381005eda7 and I almost start to like it 21:05
masak ok, but it got fixed. good.
FROGGS (except line 83)
masak I still haven't completely understood how Parrot could screw up their IO refactor so.
it's not a refactor if lots of things break. 21:06
FROGGS ENOTENOUGHTESTS
masak yeahbut
spurious NUL bytes at the end of files?
how is that when what I don't even
oh well.
21:07 silug joined 21:12 skids left
supernovus woo hoo, the spec tests pass with the new DateTime changes. 21:14
masak \o/ 21:19
21:21 thou joined
FROGGS r: gist.github.com/FROGGS/d8f83a939e5c52d5b33c 21:23
camelia rakudo 37c995: OUTPUT«===SORRY!===␤Two terms in a row␤at /tmp/sbkCRFKpdh:1␤------> https⏏://gist.github.com/FROGGS/d8f83a939e5c52␤ expecting any of:␤ argument list␤ postfix␤ infix stopper␤ infix or meta-infix␤ st…
FROGGS damn
class myPackage { }; multi CANDO ( myPackage, &:($), $name, *%args) { }; myPackage::("hurz")()
r. class myPackage { }; multi CANDO ( myPackage, &:($), $name, *%args) { }; myPackage::("hurz")()
r: class myPackage { }; multi CANDO ( myPackage, &:($), $name, *%args) { }; myPackage::("hurz")() 21:24
camelia rakudo 37c995: OUTPUT«===SORRY!===␤invoke() not implemented in class 'QAST::WVal'␤»
diakopter FROGGS: gotta be non-private gist 21:25
FROGGS ahh, okay
lue hello world o/ 21:26
FROGGS hi lue
lue
.oO(That's completely unfair. Who doesn't like data whose size is a nice round number?)
21:29
FROGGS true
lue (referring of course to the backlog around the top of the hour.) 21:31
FROGGS ya, my fellows at work dont understand my excitement when I tell'em: Your userid is 256, coll ehh? 21:32
lizmat pmichaud: yes :-) 21:35
21:35 frdmn joined 21:37 frdmn left, frdmn joined
FROGGS r: class bar { }; module :: is bar { } 21:40
camelia rakudo 37c995: OUTPUT«===SORRY!===␤Method 'add_parent' not found for invocant of class 'Perl6::Metamodel::ModuleHOW'␤at /tmp/AQKrbR67vN:1␤------> ␤»
lue another joke that's fun (which I first saw on xkcd), is to see a number, e.g. 1000, and say "that's only 24 away from a round number."
FROGGS hehe
I am thinking more of an eight when seeing 1000 21:41
diakopter FROGGS: once you start down that fuzzing path.. forever will it dominate your destiny....
FROGGS (but that is still 24 away from a round number)
diakopter: ohh, it is already to late to turn round :o) 21:42
21:43 frdmn left 21:44 frdmn joined 21:46 mavcunha joined, mavcunha left
masak ok, given an IO::Path, how do I get the path-less filename? just the filename, after all the slashes and all? 21:47
jnthn r: say IO::Path.^methods
camelia rakudo 37c995: OUTPUT«Could not find symbol '&Path'␤ in method <anon> at src/gen/CORE.setting:10836␤ in any at src/gen/Metamodel.nqp:2504␤ in any find_method_fallback at src/gen/Metamodel.nqp:2492␤ in any find_method at src/gen/Metamodel.nqp:939␤ in block at /tmp/lJsT8o2b0j:1␤␤»…
jnthn ...there's an IO::Path? :)
lizmat I would suspect $path.filename ?
masak r: say dir('.')[0]
camelia rakudo 37c995: OUTPUT«IO::Path<star>␤»
masak r: say dir('.')[0].filename
camelia rakudo 37c995: OUTPUT«No such method 'filename' for invocant of type 'IO::Path'␤ in block at /tmp/3xOz3r7g0u:1␤␤» 21:48
jnthn Oh, of course...it's protected
masak "protected"?
jnthn r: say dir('.')[0].^methods
camelia rakudo 37c995: OUTPUT«dir BUILD Bridge Int path IO open contents d e f l r s w x z modified accessed changed new Str gist Numeric <anon> <anon> <anon>␤»
jnthn masak: restricted setting
r: say dir('.')[0]
camelia rakudo 37c995: OUTPUT«IO::Path<star>␤»
jnthn r: say dir('.').path
camelia rakudo 37c995: OUTPUT«No such method 'path' for invocant of type 'Array'␤ in block at /tmp/0FGwqqG6r_:1␤␤»
masak well, there's an IO::Path right there :) 21:49
jnthn r: say dir('.')[0].path
camelia rakudo 37c995: OUTPUT«IO::Path<star>␤»
masak this is frustrating :)
jnthn r: say dir('.')[0].dir
camelia rakudo 37c995: OUTPUT«IO::Path.dir is deprecated in favor of .directory␤ in method dir at src/gen/CORE.setting:8048␤ in block at /tmp/z9H7RNjgPj:1␤␤»
jnthn r: say dir('.')[0].directory
camelia rakudo 37c995: OUTPUT«.␤»
masak heh.
yeah, I want the other part :P
the filename.
jnthn Why wsa .directory not in the method list?
masak goes looking in the source
r: say dir('.')[0].basename 21:50
camelia rakudo 37c995: OUTPUT«star␤»
masak there we go.
dalek kudo/jvm-support: dea4f25 | jnthn++ | src/Perl6/ (2 files):
Unbust build after recent World changes.
jnthn Phew. Now I've found that I can get useful stuff done on the porting effort tomorrow... 21:51
FROGGS ohh, the world has changed?
to the better I hope
jnthn FROGGS: Got rid of its last pir:: 21:52
Also got rid of some Q:PIR in BOOTSTRAP
FROGGS cool!
jnthn There's no more Q:PIR in src/Perl6 any more.
lizmat ++jnthn++
jnthn Still some pir::. 21:53
diakopter is it just me or is search.cpan.org not working: search.cpan.org/search?query=Acme&mode=all
masak ok, now my blogging software hangs. 21:54
FROGGS diakopter: no, had this issue earlier
diakopter: links like these work though: search.cpan.org/dist/SDL/ 21:56
(if you know the dist)
lue wonders why adding six characters to the .dir method name was a good idea 21:57
FROGGS lue: maybe someone thinks .dir will give one the directories' content? 21:59
masak oh wow, something in the vicinity of string handling is *much* slower in recent Rakudos.
lue would only expect .ls to do such a thing
masak I thought the blogging software had simply locked up, but it turns out it's processing things as it should, just very slowly. 22:00
FROGGS lue: well, jnthn might expect .dir :o)
and I would too fwiw 22:01
lue :) I just think that getting directory/filename parts from IO::Path would be common, and thus a short name
(but there's always class augmentation to fix the problem externally...) 22:02
FROGGS hehe >.<
lizmat gnight #perl6!
masak 'night, lizmat
FROGGS gnight lizmat
masak I definitely need to bisect this slowness tomorrow. this will not stand. 22:03
I have located the block of code that got *lots* slower.
anyway... lol, I blogged! strangelyconsistent.org/blog/the-ma...m-workshop
22:03 lustlife left
FROGGS hmmm, the only thing about string+concat is timotimo's path for [~], but I have no idea if it was applied 22:04
masak (I've run out of $day, so the t2 blog post will have to wait for tomorrow)
FROGGS: it can't be that.
FROGGS: I'm using ~=, but not [~] in that code.
22:04 xilo left
FROGGS but ~= is just concat of the two plus assignment, no? 22:05
masak anyway, it's not just *significantly* slower, it's *ridiculously* slower.
FROGGS: yeah.
FROGGS :/
masak so slow that I thought it had locked up.
22:06 spider-mario left
Tene masak: You voluntarily decided to inflict that pun in the title on yourself? 22:08
masak Tene: yeah, I was like "what's the worst that can happen?"
Tene: oh, I see what you did there. 22:09
Tene masak: ;)
masak autopun to you too, sir.
lue sadly doesn't see the autopun :/ 22:11
Tene masak: I'll be around; I'd love to help. 22:12
masak lue: "inflict X on oneself" <-> "masochism"
Tene: awesome.
lue geekosaur just told me :)
masak: would a fair definition of an autopun be "a play on situations"? (The definition itself a play on the common definition of a pun being "a play on words") 22:13
jnthn Time for some rest...my tuit supply should be good tomorrow :)
'night o/
lue good ♞, jnthn o/ 22:14
FROGGS gnight jnthn
masak lue: no, an autopun is a mixing-together of the level where we're describing things and the level where the things described are. 22:15
lue: often referred to as "mention" and "use", respectively.
lue wants to say then "a play on usage", but feels that probably isn't right either 22:19
22:19 Targen left 22:21 xilo joined
dalek : d7d2645 | (Tobias Leich)++ | STATUS.md:
added "use utf8" noop
22:24
: 77fe2c7 | (Tobias Leich)++ | STATUS.md:
update
22:25 PacoAir left 22:30 skids joined 22:43 iacob left 22:47 BenGoldberg joined 22:48 fgomez joined 22:49 alester left 22:55 pjcj joined 22:58 sqirrel left 23:00 fgomez left
BenGoldberg nqp-jvm: say("jaNQPh"); 23:01
camelia nqp-jvm: OUTPUT«jaNQPh␤»
BenGoldberg nqp: say("jaNQPh"); 23:02
camelia nqp: OUTPUT«jaNQPh␤»
BenGoldberg nqp-parrot: say("jaNQPh"); 23:03
nqp-pir: say("jaNQPh");
masak rn: sub foo { fail "this didn't go too well" }; my $a = foo(); say "still alive!"
camelia rakudo 37c995: OUTPUT«still alive!␤» 23:04
..niecza v24-37-gf9c8fc2: OUTPUT«===SORRY!===␤␤Undeclared routine:␤ 'fail' used at line 1␤␤Potential difficulties:␤ $a is declared but not used at /tmp/q73H_Dczy6 line 1:␤------> { fail "this didn't go too well" }; my ⏏$a = foo(); say "still alive!"␤…
masak r: sub foo { fail "this didn't go too well" }; my $a = foo(); say $a; say "not alive anymore"
camelia rakudo 37c995: OUTPUT«this didn't go too well␤ in method gist at src/gen/CORE.setting:10831␤ in method gist at src/gen/CORE.setting:893␤ in sub say at src/gen/CORE.setting:7807␤ in block at /tmp/JsLklxc7bV:1␤␤»
labster looks like niecza failed earlier 23:05
masak labster: so, &fail is like returning with a booby-trapped exception.
yeah, Niecza doesn't seem to do &fail yet.
ignore Niecza for now.
do you see what the example does?
r: sub foo { fail "this didn't go too well" }; my $a = foo(); say "still alive, before checking \$a"; say $a 23:06
camelia rakudo 37c995: OUTPUT«still alive, before checking $a␤this didn't go too well␤ in method gist at src/gen/CORE.setting:10831␤ in method gist at src/gen/CORE.setting:893␤ in sub say at src/gen/CORE.setting:7807␤ in block at /tmp/b0E5aXorK1:1␤␤»
labster I do. I've played around with it a little bit.
r: sub foo { fail "this didn't go too well" }; my $a = foo(); say $a ~~ Failure; say "alive?" 23:07
camelia rakudo 37c995: OUTPUT«True␤alive?␤»
labster r: sub foo { fail "this didn't go too well" }; my $a = foo(); say $a ~~ /foo/; say "alive?" 23:08
camelia rakudo 37c995: OUTPUT«this didn't go too well␤ in method Str at src/gen/CORE.setting:10830␤ in method Str at src/gen/CORE.setting:876␤ in any !cursor_init at src/stage2/QRegex.nqp:528␤ in method ACCEPTS at src/gen/CORE.setting:11178␤ in method ACCEPTS at src/gen/CORE.setting:683␤ …
masak right. you can smartmatch on the failure, but not much else.
BenGoldberg r: my $a = Failure.new("asdf"); say "alive"; 23:09
camelia rakudo 37c995: OUTPUT«alive␤»
BenGoldberg r: my $a = Failure.new("asdf");
camelia rakudo 37c995: OUTPUT«Method 'throw' not found for invocant of class 'Str'␤current instr.: 'sink' pc 390388 (src/gen/CORE.setting.pir:168820) (src/gen/CORE.setting:10839)␤called from Sub 'MAIN' pc 381 (src/gen/perl6.pir:147) (src/main.nqp src/gen/main-version.nqp:42)␤called from Sub '' …
labster wha? oh sink context.
23:10 fgomez joined
masak yeah. 23:11
well, no.
I think it's last-statement-of-block that triggers it here.
BenGoldberg r: Failure.new("asdf");
camelia rakudo 37c995: OUTPUT«Method 'throw' not found for invocant of class 'Str'␤current instr.: 'sink' pc 390388 (src/gen/CORE.setting.pir:168820) (src/gen/CORE.setting:10839)␤called from Sub 'MAIN' pc 381 (src/gen/perl6.pir:147) (src/main.nqp src/gen/main-version.nqp:42)␤called from Sub '' …
masak it needs to return something from the mainline block, so it evaluates the thing. 23:12
BenGoldberg n: Failure.new("asdf");
camelia niecza v24-37-gf9c8fc2: OUTPUT«===SORRY!===␤␤Undeclared name:␤ 'Failure' used at line 1␤␤Unhandled exception: Check failed␤␤ at /home/p6eval/niecza/boot/lib/CORE.setting line 1443 (die @ 5) ␤ at /home/p6eval/niecza/src/STD.pm6 line 1147 (P6.comp_unit @ 37) ␤ at /hom…
masak which triggers the booby-trap.
Niecza has neither &fail nor Failure, it seems.
23:12 thou left
labster So the failure types are just a way of handling some errors but not others? 23:13
BenGoldberg rn: Exception.new("asdf"); 23:14
camelia rakudo 37c995: OUTPUT«Default constructor for 'Exception' only takes named arguments␤ in method new at src/gen/CORE.setting:731␤ in method new at src/gen/CORE.setting:726␤ in block at /tmp/xtzLbTlbZT:1␤␤»
..niecza v24-37-gf9c8fc2: OUTPUT«===SORRY!===␤␤Undeclared name:␤ 'Exception' used at line 1␤␤Unhandled exception: Check failed␤␤ at /home/p6eval/niecza/boot/lib/CORE.setting line 1443 (die @ 5) ␤ at /home/p6eval/niecza/src/STD.pm6 line 1147 (P6.comp_unit @ 37) ␤ at /h…
BenGoldberg r: Exception.new(exception => "asdf"); 23:18
camelia rakudo 37c995: ( no output )
BenGoldberg r: Exception.new(exception => "asdf").say;
camelia rakudo 37c995: OUTPUT«␤␤Error while creating backtrace: No such method 'backtrace' for invocant of type 'Any'␤ in method new at src/gen/CORE.setting:9401␤ in method new at src/gen/CORE.setting:9398␤ in method backtrace at src/gen/CORE.setting:9535␤ in code at src/gen/CORE.setting:9…
masak labster: yeah. 23:23
23:23 cognominal left
labster ah, finally found what caused the setting not to compile. apparently putting BEGIN in there was a Bad Thing. 23:23
23:23 cognominal joined
masak labster: failures are "potential problems". i.e. they will never be a problem if you don't care about the result. but as soon as you do, they're an error. 23:23
an exception, even. 23:24
'night, #perl6
labster night
thanks
23:30 geekosaur joined
dalek osystem: 1eec48d | (Timothy Totten)++ | META.list:
Added DateTime::TimeZone in its early form.
23:31
census good night masak! 23:37
23:38 tgt left 23:40 tgt joined 23:48 supernovus left 23:56 DreamingInCode left 23:57 thou joined 23:59 thou left