»ö« 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 moritz on 3 May 2013.
colomon seems to have broken roast on rakudo. :( 00:03
FROGGS unbreak it :o) 00:04
colomon okay, a969a24df9b74bdf0c12882a3a8ca4f2200be503 is good
I think 1b0e1499bcb81605cd8f44134ada0505cedebb43 is bad 00:06
5a130781d8f97d241e5f3971b8b70c0e4cfbe872 is bad
so I guess 1b0e1499bcb81605cd8f44134ada0505cedebb43 is the problem.
colomon is going through keybag.t by hand, deleting tests and seeing if things run afterward. 00:09
00:14 arlinius left 00:17 cognominal left, cognominal joined
colomon is thoroughly puzzled here 00:22
oh, I think I have it. 00:24
let's see
the problem seems to be that I fudged a block that already had a fudge in it. 00:26
diakopter double fudge. 00:27
colomon apparent result is putting the fudging program into an infinite loop
Teratogen one time I was driving up to Pittsburgh from DC and in a landscape dotted with farms and factories there was a sign on an exit ramp that said "GOAT MILK FUDGE"
I always regret not stopping and trying it out
dalek ast: e669cdf | (Solomon Foster)++ | S02-types/keybag.t:
Try this new fudging for Rakudo.
00:30
sorear colomon: doesn't the rakudo spectest fudge one file at a time? 00:31
colomon Well, that makes keybag.t work again. and make spectest too.
sorear: apparently not.
sorear: or at least, I don't know quite what's going on, but the fudging problem in S02-types put it into an infinite loop where it never returned any test results at all. 00:32
00:32 lue left
FROGGS it fudges all at once 00:32
dalek ast: d9c98ad | (Solomon Foster)++ | S02-types/keybag.t:
Change one more Rakudo fudge to skip.
00:33
00:37 benabik joined 00:38 athomason left 00:43 arlinius joined 00:44 fgomez left 00:45 lue joined 00:54 rurban joined 00:59 rurban left 01:06 fgomez joined 01:08 wbill joined 01:10 FROGGS_ joined 01:14 FROGGS left 01:19 RedditAnalytics joined 01:22 shachaf joined 01:54 rurban joined 01:59 rurban left
lue doesn't immediately grasp the point of .tree 02:16
sorear r: say (1..10 Z 2..11).tree 02:19
camelia rakudo b2072f: OUTPUT«1 2 2 3 3 4 4 5 5 6 6 7 7 8 8 9 9 10 10 11␤»
sorear r: say (1..10 Z, 2..11).tree
camelia rakudo b2072f: OUTPUT«1 2 2 3 3 4 4 5 5 6 6 7 7 8 8 9 9 10 10 11␤»
sorear r: say (1..10 Z 2..11).tree.perl
camelia rakudo b2072f: OUTPUT«([1, 2], [2, 3], [3, 4], [4, 5], [5, 6], [6, 7], [7, 8], [8, 9], [9, 10], [10, 11]).list␤»
lue Oh! It seems to make sense if I read "level-sensitive map" as "level-sensitive C<map>" instead (but then I don't understand how you can pass a closure that's not wrapped in {}, unless they meant s/closure/WhateverCode/ or I don't really know closures) 02:21
sorear ...I do not understand the confusion of ideas there. {} is part of the syntax of a function, it is not a thing unto itself 02:22
lue or perhaps it's rakudo's fault that $parcel.tree(*.Seq) doesn't work. 02:23
r: say (1, (2,3)).tree(*.Seq)
camelia rakudo b2072f: OUTPUT«No such method 'Seq' for invocant of type 'Int'␤ in block at /tmp/2q1UsAy3gH:1␤␤»
lue std: say (1, (2,3)).tree(*.Seq) 02:24
camelia std 6348f35: OUTPUT«ok 00:00 44m␤»
lue Am I right in thinking that .tree(*.Seq) should work as advertised, only there's a rakudobug in the way here? 02:26
02:35 mrallen1 joined
colomon r: (1, (2, 3)).tree(*.say) 02:37
camelia rakudo b2072f: OUTPUT«1␤2 3␤»
colomon r: (1, (2, 3)).tree(*.say, *.say)
camelia rakudo b2072f: OUTPUT«Cannot call 'tree'; none of these signatures match:␤:(Any:U : Mu *%_)␤:(Any:D : Mu *%_)␤:(Any:D : Cool $count, Mu *%_)␤:(Any:D : &c, Mu *%_)␤ in method tree at src/gen/CORE.setting:1462␤ in block at /tmp/lwAuPWc3Uk:1␤␤»
colomon I don't think Rakudo's tree is all there yet....
lue OK. Would it be alright to change "level-sensitive map" so that there's a C<> around map (S02:4702)? If I'm right about that interpretation, it would be more immediately obvious as C<map> 02:39
colomon sorks for me
*works 02:40
dalek ecs: 5faf896 | lue++ | S02-bits.pod:
[S02] Small clarification about method .tree

Make it clear that the phrase "level-sensitive map" refers to the specific C<map> function/method, as opposed to some general concept of a map.
02:44
02:49 prevost joined 02:51 SamuraiJack joined
RedditAnalytics you all get a million dollar bonus if you finish by Christmas 02:53
keep up the fine work
lue Joke's on you; Christmas comes whenever Perl 6 is done :P 02:55
sorear we have a product already, and we never plan to stop improving it
so you need to be more explicit about the success condition
02:55 rurban joined
labster I'll finish my patch by Christmas, since spectests arent' infinite looping any more 02:55
This, of course depends on how you define "done" though. I'd say that currently we're somewhere around medium rare. 02:59
r: IO::Path.new("foo".path) 03:01
camelia rakudo b2072f: OUTPUT«Default constructor for 'IO::Path' 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/Kkclb75MpL:1␤␤»
labster my code is LTA.
03:02 rurban left 03:04 preflex_ joined, ChanServ sets mode: +v preflex_, preflex left 03:05 preflex_ is now known as preflex
RedditAnalytics I'll consider it done when the Specs for Perl 7 are announced 03:40
or when it's faster than perl5 *grin* 03:42
03:43 atroxaper joined 03:45 ldthien0 joined 03:53 ldthien0 left
labster Perl 7 will have neural-DWIM support, and right-afterwards compilation by using the tachyon processors. 03:53
RedditAnalytics i like tachyons 03:58
labster they move really fast
RedditAnalytics The bartender says, "We don't serve your kind here." 03:59
A tachyon walks into a bar.
03:59 rurban joined
labster XD 03:59
04:02 preflex_ joined, ChanServ sets mode: +v preflex_, preflex left, preflex_ is now known as preflex 04:03 rurban left 04:07 Khisanth left 04:21 Khisanth joined 04:27 Psyche^ joined 04:31 Patterner left, Psyche^ is now known as Patterner 04:35 xinming_ left 04:39 Tsuki-san joined 04:40 Tsuki-san left
breinbaas hi. I'm trying to run perl6 with database access (Pg). I installed perl6 in $HOME/rakudo/bin , and now try to install DBIish from git. make yields the error "Could not find NativeCall" -- how do I get that installed? 04:42
ah! zavolaj -- that looks to be it 04:45
04:46 arlinius left 04:47 MrMeek joined 04:55 birdwindupbird joined, zby_home_ joined 04:56 ldthien0 joined 04:59 rurban joined 05:04 rurban left 05:15 arlinius joined, mrallen1 left 05:16 ponbiki_ left 05:18 ponbiki joined, ponbiki is now known as Guest85037 05:19 dmol joined 05:21 takesako_____ left, takesako_____ joined
breinbaas ok, I installed DBIish and can connect to Pg. that's good. Next I'd like to connect via teh PG* environment variables. Does DBIish know about them? I can't seem to find an connect invocation without user/pass values 05:26
05:26 takesako_____ left 05:29 ldthien0 left 05:30 takesako_____ joined 05:31 ldthien0 joined
moritz breinbaas: no, it doesn't know about them 05:33
breinbaas: you have to supply them yourself with $*ENV<PG_USER> or whatever
breinbaas ah thanks, that's a good workaround 05:34
moritz currently DBIish is a rather thin wrapper around the C API 05:36
05:37 dmol left
breinbaas yeah, looking at Pg.pm6 I see the libpq calls 05:38
sorear good, moritz is up 05:54
welcome to #perl6! sorry I can't be more help with DBIish 05:55
05:55 prevost left
breinbaas I got it going, thanks :) 05:58
06:00 rurban joined 06:04 rurban left 06:06 Guest85037 left 06:15 ponbiki_ joined 06:25 ldthien0 left
diakopter doing open source is easy! you just click the green merge pull request button all day! 06:28
( JimmyZ++ )
06:31 ldthien0 joined
sorear hmm, ENOJIMMYZ 06:32
06:33 FROGGS_ left, kaleem joined 06:41 zby_home_ left
arnsholt breinbaas: Oh, and if you run into really weird things like segfaults, come here and ask about it. The FFI stuff isn't too well tested, so there may still be bugs lurking below the surface 06:42
(I'm the maintainer of that stuff) 06:43
sorear o/ arnsholt
06:43 ldthien0 left
arnsholt Hey sorear 06:43
06:44 ldthien0 joined 06:48 FROGGS joined
sorear o/ FROGGS 06:49
FROGGS morning sorear 06:51
06:59 domidumont joined 07:00 rurban joined 07:04 ldthien0 left 07:07 rurban left 07:10 birdwindupbird left 07:28 Stygia left 07:33 domidumont left 07:34 domidumont joined 07:35 sqirrel joined 07:36 kresike joined
kresike hello all you happy perl6 people 07:36
FROGGS hi kresike 07:38
kresike FROGGS, o/
diakopter any professional designers (paid to do visual graphics/layout/art/design) around? looking for Perl-related work? 07:39
labster good morning
diakopter labster: howdy :)
labster not a graphic designer, sorry
but howdy!
rn: try X::NYI.new(feature=>'foo').fail
camelia rakudo b2072f: OUTPUT«foo not yet implemented. Sorry. ␤current instr.: 'throw' pc 347557 (src/gen/CORE.setting.pir:151689) (src/gen/CORE.setting:8887)␤called from Sub 'sink' pc 379739 (src/gen/CORE.setting.pir:164183) (src/gen/CORE.setting:10169)␤called from Sub 'MAIN' pc 381 (src/gen/p…
..niecza v24-72-g3cebbf8: ( no output )
FROGGS diakopter: friends of mine do that professionally... 07:40
diakopter FROGGS: are they expensive? :)
labster rn: try X::NYI.new(feature=>'foo').throw
camelia rakudo b2072f, niecza v24-72-g3cebbf8: ( no output )
FROGGS hmmm, dont think so, but they need to get paid :o)
labster wait, so try throws a failure?
sorear fail doesn't throw an exception 07:44
07:44 birdwindupbird joined
sorear it returns a Failure object 07:44
which dies in sink context 07:45
try evaluates .fail and (since no exception was thrown) returns the value that .fail returned
which doesn't become an exception until just outside the scope of the try
one more reason why I think Failure is a mistake
labster Okay, I see why this is happening... but it still feels wrong.
sorear but I digress
labster Failure is a mistake by definition :) 07:46
sorear you could stick a .sink on the end to force it to die early enough for try to notice 07:47
labster Well, I could, but the whole point of try blocks is to catch errors, not to cause them to pass through. 07:49
07:49 thou left
labster S04: unless the try itself is in a sink context, in which case the inside of try is also in sink context. 07:51
okay, so this is a rakudobug
rn: try X::NYI.new(feature=>'foo').fail.sink 07:52
camelia rakudo b2072f: OUTPUT«foo not yet implemented. Sorry. ␤current instr.: 'throw' pc 347557 (src/gen/CORE.setting.pir:151689) (src/gen/CORE.setting:8887)␤called from Sub 'sink' pc 379739 (src/gen/CORE.setting.pir:164183) (src/gen/CORE.setting:10169)␤called from Sub 'MAIN' pc 381 (src/gen/p…
..niecza v24-72-g3cebbf8: ( no output )
labster rn: try { X::NYI.new(feature=>'foo').fail } 07:53
camelia rakudo b2072f: OUTPUT«foo not yet implemented. Sorry. ␤current instr.: 'throw' pc 347557 (src/gen/CORE.setting.pir:151689) (src/gen/CORE.setting:8887)␤called from Sub 'sink' pc 379739 (src/gen/CORE.setting.pir:164183) (src/gen/CORE.setting:10169)␤called from Sub 'MAIN' pc 381 (src/gen/p…
..niecza v24-72-g3cebbf8: ( no output )
labster rn: try { X::NYI.new(feature=>'foo').fail.sink }
camelia rakudo b2072f: OUTPUT«foo not yet implemented. Sorry. ␤current instr.: 'throw' pc 347557 (src/gen/CORE.setting.pir:151689) (src/gen/CORE.setting:8887)␤called from Sub 'sink' pc 379739 (src/gen/CORE.setting.pir:164183) (src/gen/CORE.setting:10169)␤called from Sub 'MAIN' pc 381 (src/gen/p…
..niecza v24-72-g3cebbf8: ( no output )
07:54 aindilis left
sorear rn: X::NYI.new(feature => 'foo') # labster: note that niecza does not do any better 07:54
camelia rakudo b2072f: ( no output )
..niecza v24-72-g3cebbf8: OUTPUT«Unhandled exception: Unable to resolve method postcircumfix:<( )> in type Any␤ at /tmp/CFK7pXjN6k line 1 (mainline @ 3) ␤ at /home/p6eval/niecza/lib/CORE.setting line 4531 (ANON @ 3) ␤ at /home/p6eval/niecza/lib/CORE.setting line 4532 (module-CORE @ 588…
sorear there's no type of that name, so X::NYI is parsed as X::NYI(); there's also no function of that name, so you get an undefined function error at runtime 07:55
labster Ah, I see. I was hoping your code was super-awesome, but it's just awesome. 07:57
labster files rakudobug 08:00
moritz what's the bug? 08:01
oh, try not propagating sink context?
labster sink context doesn't propagate inside the try
unless that's known already
moritz r: sub f() { fail 'foo' }; try { f }; say 42 08:02
camelia rakudo b2072f: OUTPUT«foo␤ in method sink at src/gen/CORE.setting:10169␤ in block at /tmp/UQm0LWbthI:1␤␤»
moritz labster: the real problem is much deeper 08:03
labster: TimToady seems to want/think that sink context propagates inwards, but it doesn't in rakudo
labster I had a feeling that context going inwards was an issue.
moritz example: sub f() { try }; say f(); f(); 42
08:04 rurban joined
moritz here the try is in non-sink context once, and in sink context once 08:04
but the inside the of try block (that I omitted here) isn't in sink context in rakudo, because that's a compile time decision
so the .sink call happens at the site where the f() call happens, and that's too late 08:05
the problem is that not all architectures make it easy to sneak in an extra bit for the sink context in calls
labster r: try { sink fail("foo") }
camelia rakudo b2072f: OUTPUT«foo␤current instr.: 'throw' pc 347557 (src/gen/CORE.setting.pir:151689) (src/gen/CORE.setting:8887)␤called from Sub 'sink' pc 379739 (src/gen/CORE.setting.pir:164183) (src/gen/CORE.setting:10169)␤called from Sub 'MAIN' pc 381 (src/gen/perl6.pir:147) (src/main.nqp s…
sorear remains unconvinced that Failure has *any* redeeming value 08:06
moritz labster: note that fail() aborts the current function 08:07
labster oh, right
moritz labster: so its behavior will always be weird when you execute it outside a routine
sorear: me too
labster Excluding that issue, my naive expectation is that try should catch thrown exceptions as well as failures. 08:08
08:08 ldthien0 joined, rurban left
labster rather than trying to get context to propagate inwards 08:08
dalek kudo/nom: 33c5e82 | (Brent Laabs)++ | src/core/terms.pm:
change $*CWD and $*TMPDIR to IO::Path objects
08:11
moritz labster: so you'd expect my $x = try ...; to never, ever put a Failure into $x? 08:13
labster Yes, exactly. 08:14
sorear or at least set $!handled 08:15
08:15 ldthien0 left
labster That could work too. I just think that anyone using a try block will expect that errors won't come through. 08:16
setting $!handled might make more sense.
08:16 ldthien0 joined 08:28 xdbr joined 08:29 census left 08:30 xdbr left
dalek ast: bc1a8f1 | (Brent Laabs)++ | S32-io/io-path (4 files):
make $*CWD stringy, since it's now already a path
08:30
08:49 dakkar joined 08:56 spider-mario joined 08:57 Stygia joined 09:04 rurban joined 09:05 daxim joined 09:06 fhelmberger joined 09:09 rurban left, ldthien0 left
dalek ecs: ced138f | labster++ | S (2 files):
add $*TMPDIR to S16; update S28 to distinguish IO::Handle/IO::Path
09:11
sorear .ask jnthn Am I correct to think that we always spill before a conditional branch to avoid a bad case where we spill in one half of the if but not the other? 09:19
yoleaux sorear: I'll pass your message to jnthn.
09:20 imIKARi joined
sorear .ask jnthn How is spilling handled for the InDy in the compilation of nqp::chain? 09:22
yoleaux sorear: I'll pass your message to jnthn.
09:28 Rix left 09:31 wbill left 09:33 Rix joined
sorear .ask jnthn What does noa stand for? 09:37
yoleaux sorear: I'll pass your message to jnthn.
09:50 Guest1337 joined 09:58 jerome__ left 10:01 rindolf joined 10:05 Stygia left, rurban joined 10:06 arlinius left 10:10 rurban left, Guest1337 left 10:11 jerome__ joined
jnthn good mor...afternoon, #perl6 10:17
yoleaux 09:19Z <sorear> jnthn: Am I correct to think that we always spill before a conditional branch to avoid a bad case where we spill in one half of the if but not the other?
09:22Z <sorear> jnthn: How is spilling handled for the InDy in the compilation of nqp::chain?
09:37Z <sorear> jnthn: What does noa stand for?
spider-mario noon here
jnthn Beating jet-lag FAIL :) 10:19
10:21 _jaldhar joined
FROGGS hi jnthn 10:23
jnthn .tell sorear (conditional) partly that but also because the stack must be empty around a try/catch, which may also occur inside different branches of the conditional. 10:24
yoleaux jnthn: I'll pass your message to sorear.
jnthn .tell sorear The lack of spilling in nqp::chain appears to be an oversight on my part. It should spill. 10:26
yoleaux jnthn: I'll pass your message to sorear.
jnthn .tell sorear noa = "no optional arguments". It is possible to pass extra arguments to an indy bootstrap method. But I ran into a JVM bug when doing this. :( So went back to just passing those things on the stack...and trusting the JIT to be smart enough (which it probably is...) 10:27
yoleaux jnthn: I'll pass your message to sorear.
sorear ok 10:33
yoleaux 10:24Z <jnthn> sorear: (conditional) partly that but also because the stack must be empty around a try/catch, which may also occur inside different branches of the conditional.
10:26Z <jnthn> sorear: The lack of spilling in nqp::chain appears to be an oversight on my part. It should spill.
10:27Z <jnthn> sorear: noa = "no optional arguments". It is possible to pass extra arguments to an indy bootstrap method. But I ran into a JVM bug when doing this. :( So went back to just passing those things on the stack...and trusting the JIT to be smart enough (which it probably is...)
10:33 cognominal left 10:34 cognominal joined 10:35 jaldhar_ joined, _jaldhar left 10:36 imIKARi left
masak good afternoon, #perl6 10:38
FROGGS masak o/
nwc10 afternoon is the new morning? 10:39
masak if you're recently back from the US, apparently.
colomon \o 10:40
jnthn heh, at least it ain't just me... :)
10:40 fgomez left
masak my plan for today: $dayjob, then dive into the t3 reviews! 10:40
FROGGS I had no problems except last sunday...
sorear o/ masak 10:41
10:51 arlinius joined 10:52 benabik left
masak TIL that rock-paper-scissors can be seen as a commutative but non-associative magma: en.wikipedia.org/wiki/Example_of_a...tive_magma 10:58
sorear nqp syntax error messages: still confuse me
jnthn sorear: No highwater doesn't help...though there's no reason it couldn't be done, given that's tracked in Cursor... 10:59
sorear OHHH
what would really help? #line, and support in the concatenator. :p 11:00
jnthn usually finds line numbers in nqp errors...
masak: I knew magma contained (molten) rock, but not paper and scissors... 11:01
11:01 atroxaper left
masak jnthn: hehe. 11:02
sorear masak: My favorite example of a commutative but non-associative magma is floating point addition. *ducks* 11:03
masak sorear: :D
jnthn: a monoid is what you get if you remove (the axiom for) invertibility from a group. a semigroup, similarly, is a group without identity. a magma is a semigroup but without associativity. 11:04
in other words, "anything goes".
the only requirement on a magma's operation is that it be total; that all elements are valid operands. 11:05
sorear magmas: too general to be useful for much of anything
masak except rock-paper-scissors! 11:06
11:06 rurban joined
daxim .u raised fist 11:07
yoleaux U+270A RAISED FIST [So] (✊)
daxim you only lol once. 11:08
11:08 census joined 11:09 gudahtt left, gudahtt joined 11:11 rurban left 11:18 huf left
sorear oh, I guess JVM doesn't do the CLR thing where all frame locals are initialized to null or zero... 11:19
jnthn No, it gets unhappy if something doesn't initialize it before first read, iirc 11:20
sorear yech 11:21
jnthn Yes, that was my reaction too 11:22
nwc10 unhappy in the "C" sense, or the valgrind sense?
11:22 huf joined
masak .oO( or in the Chthulu sense? ) 11:23
nwc10 ie is it actually tracking the "not initialised", or does it just do random stuff?
C is for Chthulu
masak :P
nwc10 I'm surprised that there isn't a Sesame Street parody
but yes, I was thinking in terms of "Nasal Daemons", but "Older One" is probably viable too
jnthn nwc10: Explodes on first read, iirc 11:24
With a nice confusing error about registers, iirc.
11:24 Stygia joined
sorear nwc10: does a definite assignment analysis and throws a java.lang.VerifyError if the definite assignment fails 11:25
at method JIT time
jnthn Not sure it's JIT time, given it interprets the first execution, iirc. 11:26
nwc10 "we do work to work out that you didn't do this"
jnthn :)
I think it tends to interpret, then decides if it's hot or not, and JITs appropriately...
sorear yeah, first execution 11:29
11:34 mikemol left
sorear adds code to initialize locals at the beginning of a method 11:37
11:38 ldthien0 joined 11:39 sqirrel left 11:40 ldthien0 left
sorear ...block methods aren't static?! 11:42
masak sorear: they are if they have 'static' before them.
sorear: you're right about magmas being useless. I will focus on semigroups and quasigroups instead. 11:43
moritz what is a block method?
sorear qb_NNN
jnthn sorear: No, they call stuff inherited from CompilationUnit, for example. 11:46
diakopter sorear: whoa it's 4:45
masak moritz: oh, I just assumed it's the thing in Java where you have braces directly at class level: 'class Foo { ... { ... } ... }'. seems I was wrong.
sorear diakopter: I know 11:47
jnthn sorear: They all get a .bind(...) done before they get stored in the CodeRef, however, which is why usages of them don't need to pass the instance.
diakopter: whoa it's 4:45 where you are too :P
diakopter D: 11:48
I mean
:D
11:52 ldthien0 joined 11:53 atroxaper joined, JimmyZ joined
masak ah, mathematicians! the preamble says "this object cannot exist", and then the rest of the article carries on about great length about its properties! en.wikipedia.org/wiki/Field_with_one_element 11:54
sorear more like "this object cannot exist, unless you fudge the definitions, which is occasionally useful" 11:56
masak oh, I'm all for that. 11:57
sorear o/ JimmyZ
JimmyZ good evening 11:58
11:59 ldthien0 left
moritz \o JimmyZ 12:01
JimmyZ: nice work on moarvm so far!
jnthn Indeed. JimmyZ++ 12:02
JimmyZ moritz: thanks, you want -Ofun on bigint ops again? ;)
moritz JimmyZ: I don't have much hacking time currently; feel free to do them if you want
JimmyZ: I might get around to them eventually, or might not. Who knows? 12:03
JimmyZ moritz: :)
speak of JIT, the luajit guys are crazy
diakopter guy?
masak is it the kind of crazy that we should aspire to, or the other kind? 12:04
JimmyZ I guess we should aspire to?
nwc10 can people other than the original author fix bugs in it?
JimmyZ luajit.org/dynasm.html 12:05
12:07 rurban joined 12:11 rurban left
sorear maybe I'll get the compile unbroken before morning 12:16
FROGGS iehhhh 12:18
my git is in german now O.o 12:19
nwc10 sorear: unpossible! It's always morning on #perl6, so it's never possible to do something *before* morning :-)
dalek : d6553bc | (Tobias Leich)++ | / (4 files):
better support for indirect object syntax (at least a bit)
FROGGS nwc10: but <?before 'morning'> has no length 12:21
12:22 benabik joined
dalek p: 6213c10 | sorear++ | src/vm/jvm/ (4 files):
Add code generator support for SaveStackException handling.
12:25
sorear well, it passes tests 12:26
sleep&
FROGGS gnight sorear 12:29
jnthn 'night, sorear++
.tell sorear PushSelf confused me at first; I thought of Perl 6 "self", e.g. that it was pushing "this". Seems it pushes the handle of the current method...maybe there's a better name. JAST::PushCurMeth perhaps... 12:38
yoleaux jnthn: I'll pass your message to sorear.
12:41 crab2313 joined
jnthn .tell sorear I'd initially planned to have one exception handler catching the save state exception per qb_NNN method, rather than one per call. That woulda involved keeping a local tracking the save index (updating it just before each call), probably giving smaller code (or at least, smaller exception tables). Maybe it breaks even on performance, though...hard to guess. 12:42
yoleaux jnthn: I'll pass your message to sorear.
12:44 ajr joined, ajr is now known as Guest51077 12:56 odoacre_ left 13:02 Guest51077 is now known as ajr_ 13:07 isBEKaml joined
nwc10 how many of the core Perl 5 tests is v5 being run against? just the tests below t? ie t/*/*.t ? 13:08
13:08 konundra joined 13:09 JimmyZ left
FROGGS nwc10: no, there is a roast5 repo too 13:09
13:09 skids left 13:10 JimmyZ joined
FROGGS nwc10: the tests in the rakudo-p5/v5 repo are from perlito 13:10
nwc10 aha 13:11
13:12 PacoAir joined 13:13 abnorman left 13:17 isBEKaml left 13:18 ldthien0 joined 13:29 ldthien0 left 13:31 crab2313 left 13:32 Stygia left 13:33 ldthien0 joined 13:37 alester joined 13:42 bluescreen10 joined, thou joined 13:44 kaare_ joined 13:45 rurban joined 13:55 JimmyZ left 13:57 rurban left
PerlJam good $localtime 13:59
nwc10 for some, $localtime appears to be a junction, (no) thanks to jetlag
colomon \o 14:00
14:03 stevan__ left
[Coke] jnthn: Any chance I could bum a few cycles off you to help me get partcl building again? 14:06
(stuck on an esoteric NQP error)
14:06 sqirrel joined
FROGGS [Coke]: do you have a paste? 14:07
[Coke] gist.github.com/anonymous/5757131 14:08
14:09 kaleem left
[Coke] Can provide gists of the various files also. (you can duplicate by cloning partcl/partcl-nqp from github, using the nqp2 branch. 14:10
FROGGS k, the repo will do
[Coke] FROGGS++
14:11 domidumont left, domidumont joined
FROGGS hmmm, is this kungfu still needed? github.com/partcl/partcl-nqp/blob/...Partcl.pir 14:12
14:12 btyler joined, xilo left
jnthn Is Partcl.pm a generated file? 14:13
[Coke] jnthn: Aye.
FROGGS but two years old (in the repo) 14:14
[Coke] I am /mostly/ sure it's not got the same thing shoved in it twice. mostly.
FROGGS: partcl is reaaally old. it started out using parrot's assembler, which doesn't even exist anymore. There may be some cruft hiding in there. :)
FROGGS: but it looks like that particular file might be used, aye. 14:15
when parcl-nqp is running on top of nqp, next step is to remove any Q:PIR or .pir
FROGGS k, will clone know the right branch 14:16
[Coke] it was originally PIR, then ported to nqp-rx, tring to finalize the port to nqp, esp. now that multiple backends are on teh way.
PerlJam [Coke]++ (herculean effort keeping partcl alive :)
14:17 lizmat joined
jnthn [Coke]: It's not immediately obvious to me what's the trigger for that error... 14:17
(just looking through the source)
[Coke] Eh, I've ignored it for a year, which is why I'm kind of stumped at this point.
lizmat greetings from Echt!
[Coke] looking at the nqp source, you mean?
diakopter lizmat: you made it! 14:18
jnthn oh wow, it uses the P6metaclass stuff too :)
FROGGS lizmat: o/ 14:19
lizmat finally, after being on the road for 47 hours (door to door)
[Coke] jnthn: perhaps this effort is too old to rescue. :|
14:20 ldthien0 left
jnthn lizmat: ouch! Welcome back. 14:21
[Coke]: Well, just ran Configure.pl and it mentions checking Parrot out of SVN when I try to give it a --parrot-config option...
lizmat note to self: put United lower on the list of accceptable airlines 14:22
[Coke] jnthn: what branch are you on?
jnthn master...what branch should I be on?
[Coke] nqp2
apologies.
jnthn oops, I probalby didn't read 14:23
[Coke] master was the original nqp-rx work.
jnthn <- not very clever today
[Coke] which as you've noticed is a smidge old. :)
jnthn oops
'cat' is not recognized as an internal or external command,
operable program or batch file.
:)
At least I got to make, though :)
[Coke] FROGGS: that file you mentioned was on master, wasn't it. so it's not used anymore either.
jnthn: oops. need to write some makemaker utils for nqp. 14:24
(did you replace them all with "type" ?)
jnthn I s/cat/type/ but now think it dislikes the >>
FROGGS [Coke]: true
jnthn oh no, forward slahes 14:25
FROGGS *g*
[Coke] jnthn: I appreciate the effort, and promise I will make this work on windows now. :) 14:26
jnthn OK, so various slashy fixes later...
[Coke]: Adding this to the end of the Makefile.in: 14:29
# nqp::makefile <-- tells NQP::Configure to treat this file as a makefile,
# performing win32 slash and makefile conversions
helps fix slashes
cat and echo are still problematic.
echo because on Windows it doesn't know what to do with the quotes so spits them right into the file
FROGGS [Coke]: gtg now, when looking at that codebase I feel a bit lost anyway 14:30
jnthn cat because there's no cat on Windows.
FROGGS and git doesnt ship it?
see ya 14:31
jnthn Commenting out "use src::Partcl::commands;" makes the build finish
14:32 ldthien0 joined
[Coke] jnthn: ok, that narrows it down. Thanks. 14:32
presumably one of those files includes something already included.
14:34 xilo joined
jnthn I think it's probably that things muddle with objects along different load paths 14:35
[Coke] I don't understand. 14:36
(I also don't see a duplicate load atm)
jnthn [Coke]: gist.github.com/jnthn/5757345 14:37
That seems to fix the build...
14:37 FROGGS left
jnthn uh, modulo the echo/cat thing. 14:37
[Coke] yay, a build. now to fix the runtime. :) 14:39
jnthn hides :) 14:40
[Coke] so, that diff is only adding a BEGIN block?
jnthn yes
well, moving some code to happen at BEGIN time
> 1 + 1
Method '1' not found for invocant of class 'Builtins'
[Coke] huh. (and it's for adding parrot vtable mappings, which obviously I want to get rid of)
jnthn hm :)
14:41 skids joined
jnthn I don't actually know any tcl :D 14:41
benabik hopes that 1 is still spelled 1 in tcl
14:41 JimmyZ joined
[Coke] gist.github.com/coke/5757381 14:41
but this seems like something I can track down. 14:42
14:43 ajr joined, ajr_ left 14:44 ajr is now known as Guest85301, Guest85301 is now known as ajr_
[Coke] oh, I'm an idiot. I had still commented out the use you mentioned. :) 14:45
14:45 Khisanth left
[Coke] ./partcl -e 'puts 3' 14:46
3
moritz \o/
[Coke] jnthn++ jnthn++ jnthn++ jnthn++ jnthn++
nwc10 this is partcl on NQP?
[Coke] yes.
nwc10 oooh.
Does it work on the JVM yet? :-)
nwc10 ducks 14:47
JimmyZ It will do ;)
[Coke] nwc10: ack -cl "pir|parrot" src | awk -F: '{ SUM += $2} END {print SUM}' 14:48
188
nwc10 awk? heresy! 14:49
timotimo_ what is parctl?
nwc10 a2p still works :-)
[Coke] timotimo_: partcl is "tcl on parrot"
jnthn [Coke]: Wow!
[Coke] ... but now it's on nqp instead.
timotimo_ oooh
i see
[Coke] nwc10: muscle memory, sorry.
timotimo_ i thought it was something like "par.* control" because i misread it :) 14:50
masak awk is a cute precursor to Perl. lots of nice ideas in there.
[Coke] nwc10: I would have used partcl to do it, but I have a slight bootstrapping problem. :P 14:51
also pmichaud++ as I suspect most of the working code in this version came from him a while back. 14:53
PerlJam [Coke]: what's the URL for the partcl repo? 14:55
[Coke] partcl/partcl-nqp 14:56
PerlJam ok
[Coke] partcl/partcl is the older PIR-only version.
latest dev is currently on nqp2 branch; once I get it passing tests again, will merge it back.
The version that's out there needs jnthn's patch.
nqp: my $a := Int.new(); say($a^.methods()); 14:57
camelia nqp: OUTPUT«Confused at line 2, near "say($a^.me"␤current instr.: 'panic' pc 14721 (src/stage2/gen/NQPHLL.pir:5232) (src/stage2/gen/NQPHLL.nqp:279)␤»
[Coke] nqp: my $a := Int.new(); say($a.HOW.methods());
camelia nqp: OUTPUT«too few positional arguments: 1 passed, 2 (or more) expected␤current instr.: 'methods' pc 12490 (src/stage2/gen/nqp-mo.pir:5677) (src/stage2/gen/nqp-mo.nqp:1233)␤»
14:59 FROGGS joined 15:02 FROGGS left, Khisanth joined
moritz nqp: my $a := Int.new(); say($a.HOW.methods($a)); 15:03
camelia nqp: OUTPUT«10␤»
moritz that returns an RPA, which stringifies to the number of elements
nqp: my $a := Int.new(); say(nqp::join(' ', $a.HOW.methods($a)));
camelia nqp: OUTPUT«get_string() not implemented in class 'NQPRoutine'␤current instr.: '' pc 125 ((file unknown):68) (/tmp/VEz6vYtVEA:1)␤»
jnthn I'm pretty sure NQP doesn't have an Int. :)
moritz nqp: my $a := {class A { }).new(); say(nqp::join(' ', $a.HOW.methods($a))); 15:04
camelia nqp: OUTPUT«Unable to parse expression in blockoid; couldn't find final '}' at line 2, near "class A { "␤current instr.: 'panic' pc 14721 (src/stage2/gen/NQPHLL.pir:5232) (src/stage2/gen/NQPHLL.nqp:279)␤»
moritz nqp: my $a := (class A { }).new(); say(nqp::join(' ', $a.HOW.methods($a)));
camelia nqp: OUTPUT«get_string() not implemented in class 'NQPRoutine'␤current instr.: '' pc 89 ((file unknown):52) (/tmp/EC5jmQrksI:1)␤»
jnthn sorear: Good news, your changes to JNQP didn't bust the Rakudo build :)
15:04 domidumont left
moritz nqp: my $a := (class A { }).new(); say($a.HOW.methods($a)); 15:04
camelia nqp: OUTPUT«10␤»
moritz probably just the methods from Mu
15:04 FROGGS joined
jnthn Yeah, I think so 15:04
15:08 birdwindupbird left
kresike bye folks 15:12
15:12 kresike left, rurban joined, ldthien0 left 15:14 btyler left 15:22 rurban left 15:25 btyler joined 15:27 avarab is now known as AVAR
nwc10 I wasn't aware that Java is stupid enough to make the console input/output non-selectable: blog.headius.com/2013/06/the-pain-o...ocess.html 15:27
as ever, it's a good read
15:27 AVAR is now known as avar
daxim blog.64p.org/entry/2013/06/11/211555 15:28
15:29 stevan_ joined, woolfy joined
benabik daxim: With MVMDEBUG you actually get a *.{moarvm,mvmdump,mastdump} per test in the file, not per file. So if there's a test 'division by 0', you'll get files 'division by 0.*' 15:31
daxim I'm not the author of that blog entry
benabik Whoops. 15:32
diakopter benabik: okay, now I'm curious how you know that :P 15:33
benabik diakopter: I've tried it.
masak "It's a good stuff I think." \o/
15:35 census left, twigel left 15:37 tgt joined, kaleem joined
lizmat French Perl workshop presentation on Saturday: journeesperl.fr/fpw2013/talk/4845 15:45
now where did I see LuaJIT just now? 15:46
I don't recall seeing fperrad around here
masak he doesn't tend to be around here. 15:47
lizmat anyways, looks like I will be able to attend
and hope I'll be able to make sense of a presentation in French :-) 15:48
15:48 ajr_ left 15:49 konundra left
masak .oO( faire sens du français, ce n'est pas cela dur ) 15:50
daxim n'est pas une perl6 15:51
lizmat ceci, peut-être un perl6
faire sens du francophones, c'est le plus dur 15:52
masak hehe 15:54
diakopter benabik: yeah.. but did you make a conclusion or assessment? 15:55
benabik diakopter: Of MoarVM? 15:56
diakopter yeah
oh seems, I didn't realize you were the same person as who submitted these two pull requests .. :) 15:57
benabik diakopter: Well, I've already got 6 commits in the repository. :-D
15:58 xinming joined
benabik MoarVM hits most/all of the "things I would do to rewrite Parrot", so I'm fairly interested. 15:58
15:58 awwaiid_ left
masak benabik++ 15:58
diakopter benabik: are you looking for something challenging but not spectacularly glamorous to work on? if so, you're in luck! bytecodeverify.c has a nice TODO list at the top that should be fairly straightforward 15:59
but fairly interesting to tackle, imho
15:59 awwaiid joined
diakopter er. 16:00
wrong filename.
validation.c is the right one
16:02 bluescreen10 left, prevost joined, GlitchMr left
diakopter anocelot: yo 16:02
16:03 takesako______ joined, sergot_ joined
diakopter benabik: there's a bunch of little->medium tasks that are fairly interesting but are "easy to delegate" and vary widely on the scale of how low their fruit hangs.. how would you suggest I organize/centralize such a helpwanted list? 16:04
I know. issues with HALPME in the title.
16:05 Ulti joined, _jaldhar_ joined 16:07 gdey joined, GlitchMr joined, ponbiki joined, ponbiki is now known as Guest21891
masak sometimes I really wish there was a way to tell vim "it's OK if the spaces in my regex are any <ws>". 16:09
(so often what I'm searching for has a line break in it, for example)
arnsholt Indeed
I've come across that occasionally while grepping in my TeX documents 16:10
16:11 imIKARi joined, takesako_____ left, sergot left, Ulti_ left, RedditAnalytics left, jaldhar_ left, ponbiki_ left 16:13 GlitchMr left
[Coke] masak: stackoverflow.com/questions/784176/...ort-in-vim 16:13
benabik I generally look for LHF, TODO, or similar docco. I suppose ack 'TODO|XXX' is probably a good one. Issues with LHF, newbie, etc tags are also not a bad way to do it.
[Coke] it's not quite what you asked for, but may still be helpful. \_.* == match any number of characters including newline.
masak [Coke]++ 16:14
16:15 salv0 left
[Coke] (which I never new until today.) 16:15
16:15 salv0 joined
[Coke] *knew 16:15
benabik vim regexen are a little strange. 16:17
16:18 RedditAnalytics joined
arnsholt Yeah. There's a switch to go to Perl compatible syntax though, thankfully 16:18
masak oh, nice
arnsholt \P IIRC
benabik Huh. If +perl is in your :ver, you can also do fun things like :perldo s/foo/bar/g 16:19
masak .oO( we all liked regexes so much, we decided to go all Babel's tower on it )
16:19 s1n left
timotimo_ i want perl6 regex for my vim :3 16:19
but i guess shelling out is good enough for the time being; highlight-as-you-type would be amazingly cool, though 16:20
benabik \P is printable - digits, not Perl like.
16:20 dmol joined
arnsholt Oh, I'm wrong. There is no such switch 16:21
arnsholt just looked it up
I must've confused it with something else
16:21 GlitchMr joined
timotimo_ maybe you're thinking of very-nomagic-mode? 16:24
16:24 snearch joined
arnsholt Yeah, might be 16:25
16:26 GlitchMr left, domidumont joined 16:28 SamuraiJack left 16:29 kaleem left, JimmyZ left, JimmyZ joined 16:31 GlitchMr joined
FROGGS am I just a bit stupid or are p5's heredocs a pretty weird thing and hard to parse? 16:33
16:33 fgomez joined
moritz FROGGS: they are indeed pretty weird and hard to parse 16:34
daxim but so useful for the programmer
FROGGS daxim: true
moritz FROGGS: rakudo took quite some time until it had heredoc support at all
daxim suck it, perl source parser
FROGGS moritz: but rakudo's syntax is much saner
moritz FROGGS: marginally 16:35
16:35 s1n joined
FROGGS do_something( <<OMG, 2, 3 );␤this is the first arg␤OMG␤ 16:35
16:35 JimmyZ left
moritz yes, p6 that supports that too 16:35
FROGGS hmmm, mine explodes 16:36
moritz but with q:to instead of <<OMG
FROGGS ahhh
okay, cool
so I can steal from it
moritz++
moritz r: say(q:to('foo'), 42);␤this is the first arg␤foo␤
camelia rakudo b2072f: OUTPUT«␀␀␀[␀␀␀3␀␀␀1␀␀␀m␀␀␀=␀␀␀=␀␀␀=␀␀␀␀␀␀[␀␀␀0␀␀␀m␀␀␀S␀␀␀O␀␀␀R␀␀␀R␀␀␀Y␀␀␀!␀␀␀␀␀␀[␀␀␀3␀␀␀1␀␀␀m␀␀␀=␀␀␀=␀␀␀=␀␀␀␀␀␀[␀␀␀0␀␀␀m␀␀␀␤␀␀␀C␀␀␀o␀␀␀u␀␀␀l␀␀␀d␀␀␀n␀␀␀'␀␀␀t␀␀␀ ␀␀␀f􏿽xE2
moritz n: say(q:to('foo'), 42);␤this is the first arg␤foo␤
camelia niecza v24-72-g3cebbf8: OUTPUT«===SORRY!===␤␤Undeclared routines:␤ 'arg' used at line 2␤ 'foo' used at line 3␤ 'is' used at line 2␤ 'q:to('foo')' used at line 1␤ 'the' used at line 2␤ 'this' used at line 2␤␤Unhandled exception: Check failed␤␤ at
../home/p6eval/niecza/bo…
16:36 SamuraiJack joined
FROGGS it interpolates? 16:37
timotimo_ q: shuldn't, should it?
FROGGS nr: say(q:to('foo'), 42);␤42.is-prime.say␤foo␤
camelia niecza v24-72-g3cebbf8: OUTPUT«===SORRY!===␤␤Two terms in a row (previous line missing its semicolon?) at /tmp/x_3qCvi_UP line 3:␤------> <BOL>⏏foo␤␤Undeclared routine:␤ 'q:to('foo')' used at line 1␤␤Parse failed␤␤»
..rakudo b2072f: OUTPUT«␀␀␀[␀␀␀3␀␀␀1␀␀␀m␀␀␀=␀␀␀=␀␀␀=␀␀␀␀␀␀[␀␀␀0␀␀␀m␀␀␀S␀␀␀O␀␀␀R␀␀␀R␀␀␀Y␀␀␀!␀␀␀␀␀␀[␀␀␀3␀␀␀1␀␀␀m␀␀␀=␀␀␀=␀␀␀=␀␀␀␀␀␀[␀␀␀0␀␀␀m␀␀␀␤␀␀␀C␀␀␀o␀␀␀u␀␀␀l␀␀␀d␀␀␀n␀␀␀'␀␀␀t␀␀␀ ␀␀␀
FROGGS hmmm
not very robust :P 16:38
masak r: say(q:to(/foo/), 42);␤42.is-prime.say␤foo␤say "OH HAI"
camelia rakudo b2072f: OUTPUT«===SORRY!===␤Invalid adverb value for :to(/foo/)␤at /tmp/5xQWNXSV3k:1␤------> say(q:to(/foo/)⏏, 42);␤ expecting any of:␤ postfix␤ statement end␤ statement modifier␤ statement modifier loop␤»…
masak a regex is an invalid adverb value for :to ?
masak hits the spec
moritz I think so
S02-literals/quoting.t has a few examples of p6 heredocs 16:39
jnthn It'd better be :P
masak no, S02:4405 has examples of qq:to/END/
moritz which isn't the same as :to(/END/)
or is it?
jnthn Right, it's just using /.../ as the quoter.
masak oh!
that's... confusing :/ 16:40
jnthn Then don't write it with that quoter :P
FROGGS r: say(q:to<foo> , 42);␤42.say␤foo␤
camelia rakudo b2072f: OUTPUT«42.say␤42␤»
masak then don't write SPEC which writes it with that quoter!
jnthn :P
FROGGS r: say(q:to('foo') , 42);␤42.say␤foo␤
camelia rakudo b2072f: OUTPUT«␀␀␀[␀␀␀3␀␀␀1␀␀␀m␀␀␀=␀␀␀=␀␀␀=␀␀␀␀␀␀[␀␀␀0␀␀␀m␀␀␀S␀␀␀O␀␀␀R␀␀␀R␀␀␀Y␀␀␀!␀␀␀␀␀␀[␀␀␀3␀␀␀1␀␀␀m␀␀␀=␀␀␀=␀␀␀=␀␀␀␀␀␀[␀␀␀0␀␀␀m␀␀␀␤␀␀␀C␀␀␀o␀␀␀u␀␀␀l␀␀␀d␀␀␀n␀␀␀'␀␀␀t␀␀␀ ␀␀␀f􏿽xE2
moritz masak: I'm glad you have a commit bit :-)
FROGGS it doesnt like (' ')
moritz r: say(q:to("foo") , 42);␤42.say␤foo␤ 16:41
camelia rakudo b2072f: OUTPUT«␀␀␀[␀␀␀3␀␀␀1␀␀␀m␀␀␀=␀␀␀=␀␀␀=␀␀␀␀␀␀[␀␀␀0␀␀␀m␀␀␀S␀␀␀O␀␀␀R␀␀␀R␀␀␀Y␀␀␀!␀␀␀␀␀␀[␀␀␀3␀␀␀1␀␀␀m␀␀␀=␀␀␀=␀␀␀=␀␀␀␀␀␀[␀␀␀0␀␀␀m␀␀␀␤␀␀␀C␀␀␀o␀␀␀u␀␀␀l␀␀␀d␀␀␀n␀␀␀'␀␀␀t␀␀␀ ␀␀␀f􏿽xE2
moritz same problem, it seems
masak moritz: I won't make such a change before running it through TimToady.
FROGGS r: say(q:to"foo" , 42);␤42.say␤foo␤
camelia rakudo b2072f: OUTPUT«42.say␤42␤»
FROGGS O.o
diakopter wat. 16:43
16:44 stevan_ left
jnthn ...what's surprising? 16:44
[Coke] r: say(q:to(foo), 42);␤42.say␤foo␤
camelia rakudo b2072f: OUTPUT«===SORRY!===␤Invalid adverb value for :to(foo)␤at /tmp/WU5_GK8llg:1␤------> say(q:to(foo)⏏, 42);␤ expecting any of:␤ argument list␤ postfix␤ statement end␤ statement modifier␤ statement modi…
[Coke] I'm assuming the "'s as delims.
jnthn (other than the dodgy error reporting)
16:46 konundra joined 16:47 SamuraiJack left
moritz r: say(q:to"foo" , 42);␤42.say␤foo␤ 16:49
camelia rakudo b2072f: OUTPUT«42.say␤42␤»
moritz I guess I expected :to to parse like any other adverb 16:50
benabik I think :to is an adverb that makes the contents of the quote terminate the heredoc. 16:51
16:52 imIKARi left
moritz sure, but the question is how the argument to :to are parsed 16:52
and it seems that it's parsed as a quote, not as an expression
benabik r: say(q:to(1)"foo", 42);␤42.say␤foo␤
camelia rakudo b2072f: OUTPUT«42.say␤42␤»
benabik r: say(q:to(0)"foo", 42);␤42.say␤foo␤ 16:53
camelia rakudo b2072f: OUTPUT«===SORRY!===␤Cannot look up attributes in a type object␤»
diakopter oh, all the 42s were confusing me. :)
benabik The argument to :to is True, not foo.
16:54 imIKARi joined
diakopter r: say(q:to"0" , 42);␤42.say␤foo␤ 16:54
moritz q:to(1)"foo" looks like a real WTF to me
camelia rakudo b2072f: OUTPUT«===SORRY!===␤Ending delimiter 0 not found␤at /tmp/kqxgOe_99n:4␤------> <BOL>⏏<EOL>␤ expecting any of:␤ whitespace␤ vertical whitespace␤»
moritz std: say(q:to(1)"foo", 42);␤42.say␤foo␤
diakopter r: say(q:to"0" , 42);␤42.say␤0
camelia std 6348f35: OUTPUT«ok 00:00 46m␤»
rakudo b2072f: OUTPUT«42.say␤42␤»
moritz std: say(q:to(2 + 4)"foo", 42);␤42.say␤foo␤ 16:55
camelia std 6348f35: OUTPUT«ok 00:00 46m␤»
benabik q:to"foo" ~~ q("foo", :to)
q:to(foo) ~~ q(:to => foo) # die w/ what's foo? 16:56
masak no, q:to"foo" simply means q:to("foo") 16:57
benabik That's not how it seems to be parsing.
timotimo_ :to means to=>True
16:58 konundra left
masak r: sub test(*%_) { say %_.perl }; test :to"foo" 16:59
camelia rakudo b2072f: OUTPUT«===SORRY!===␤Two terms in a row␤at /tmp/C9iS5aG4uX:1␤------> sub test(*%_) { say %_.perl }; test :to⏏"foo"␤ expecting any of:␤ pair value␤ postfix␤ infix stopper␤ infix or meta-infix␤ statem…
masak r: sub test(*%_) { say %_.perl }; test(:to"foo")
camelia rakudo b2072f: OUTPUT«===SORRY!===␤Unable to parse expression in argument list; couldn't find final ')'␤at /tmp/UEmaOV6glu:1␤------> sub test(*%_) { say %_.perl }; test(:to⏏"foo")␤ expecting any of:␤ pair value␤ postfix␤ infix…
diakopter r: say q:to''␤ ␤
camelia rakudo b2072f: OUTPUT«␤»
masak oh, is this some kind of special syntax just for q and qq et al.?
r: sub test(*%_) { say %_.perl }; test(:to[1,2,3]) 17:00
camelia rakudo b2072f: OUTPUT«("to" => [1, 2, 3]).hash␤»
masak I thought since we have syntax like :to[], we also had syntax like :to"" in Perl 6 itself. my bad.
arnsholt There's :to<foo> I guess? 17:01
benabik r: say(q:to<foo>, 42);␤42.say␤foo␤ 17:02
camelia rakudo b2072f: OUTPUT«42.say␤42␤»
benabik r: say(q:to<foo><foo>, 42);␤42.say␤foo␤
camelia rakudo b2072f: OUTPUT«postcircumfix:<{ }> not defined for type Str␤ in method gist at src/gen/CORE.setting:10161␤ in method gist at src/gen/CORE.setting:893␤ in sub say at src/gen/CORE.setting:11047␤ in block at /tmp/t9RP6cPSyG:1␤␤»
flussence
.oO( q:tofu )
17:02 stevan_ joined
flussence I wonder if that UTF32-garbled output problem will go away on other VMs... 17:04
diakopter :)
17:04 dakkar left 17:06 gdey_ joined 17:07 konundra joined 17:08 gdey left
[Coke] r: say 3.tofu 17:09
camelia rakudo b2072f: OUTPUT«No such method 'tofu' for invocant of type 'Int'␤ in block at /tmp/nM0480Jfk0:1␤␤»
[Coke] r: say 3.tofufu
camelia rakudo b2072f: OUTPUT«No such method 'tofufu' for invocant of type 'Int'␤ in block at /tmp/QkNdBAhitw:1␤␤»
[Coke] r: my $fi = 3; say $fi; 17:10
camelia rakudo b2072f: OUTPUT«3␤»
17:13 jeff_s1 joined
jeff_s1 I made some minor revisions to Pugs and its dependencies to make it compile under the latest Haskell Platform. ANyone know if there is a current maintainer or mailing list I should talk to before I upload the cabal file to Hackage? 17:14
arnsholt I think [Coke] is the current Pugs caretaker
[Coke]: ^^ 17:15
jeff_s1 Ah, excellent
I can probably make a diff or something if you want it. I think I only changed like 4 lines. 17:16
[Coke] I've got nothing to do with hackage.
Please just don't break my working version that I have running on feather.
(which gets rebuilt from scratch daily)
jeff_s1 What is feather? 17:17
[Coke] If you want, I can test out my build after you do your thing.
17:17 btyler left
[Coke] perl6 dev box. it's where I'm running this: 17:17
github.com/coke/perl6-roast-data/b...pass_rates 17:18
arnsholt Oh. I thought it was you who did the Pugs maintenance/life-support. Sorry =)
[Coke] ... ugh. someone broke bugs. colllllooooomoooooon
colomon \o/
[Coke] arnsholt: Yes, but I don't know jack about haskell or the build environment. 17:19
broke *pugs
colomon err... is pugs running the set tests?
arnsholt Ah, right 17:20
[Coke] colomon++
dagurval--
jeff_s1 I don't think I'll be doing anything to affect your testing unless you pull code from Hackage.
Hm, should I keep searching, or is it safe to say there's nobody really looking at Pugs these days? 17:21
[Coke] dagurval++
au is the only person who would care about it, and if you're improving it, I'm sure she's fine with it. 17:22
is hackage containing things I need to build pugs from scratch, or is it a built version of pugs?
dagurval++, btw.
jeff_s1 It's just for source code.
[Coke] require InnerModule:file($name) <quux>; 17:24
jeff_s1 Under the current Haskell Platform, you can't just do "cabal install Pugs", but after I upload new packages, it should work. It compiles on my mac, anyway.
[Coke] jeff_s1: that isn't either of my 2 options. what is it?
ah.
so it's for the build. ok. that is working for me on feather - as long as you're not breaking people running under an older version, that's fine.
that require statement above - is that syntax with the single colon real? 17:25
(it's in roast)
dalek ast: 5622f27 | coke++ | S11-modules/require.t:
pugs fudge
17:26 raiph joined
jeff_s1 Hackage does contain things you need to build pugs from scratch, yes. And some new requirements will have to be added when GHC 7.8 is released. At least unordered-containers. 17:26
PerlJam Did we just accrete another pugs person? 17:27
jeff_s1++ 17:28
jeff_s1 Haskell is my #1 language, and I recently started working at a Perl shop, so I have some natural affinity for it.
masak jeff_s1++ 17:29
17:29 zby_home_ joined
masak jeff_s1: I've often wanted to get involved with Pugs, and fix a few LHFs. but the on-ramp seems too steep for me. 17:29
PerlJam masak: really? AFter using Perl 6 for so long, I would have thought the transition to haskell wouldn't be that bad. 17:30
masak: or do you just mean the pugs codebase is inscrutible? 17:31
masak I'm moderately comfy with Haskell. what I've seen of the Pugs codebase, it's OK.
but I find the steps to get a working build off which to develop inscrutable.
PerlJam ah
diakopter the HF in pugs are low... if you climb th ebeanstalk for a few days 17:32
masak :)
timotimo_ so, did i understand correctly that pugs is a compiler that targets for instance parrot as its backend? 17:35
PerlJam timotimo_: yes. (it has many backends)
colomon pugs? no
PerlJam pugs is what set off this whole "implement Perl 6 For Real" idea :) 17:36
dalek p: 5adf255 | jnthn++ | src/vm/jvm/runtime/org/perl6/nqp/ (14 files):
Kill initialize REPR function for JVM 6model.

On the Parrot and Moar implementations, allocate is used in a range of situations (create, clone, deserialize). This is not the case on the JVM implementation of 6model, so it's essentially useless to separate allocate and initialize.
17:37
17:37 GlitchMr left
masak PerlJam: that's only partly accurate. 17:37
dalek kudo/nom: 978aeee | jnthn++ | src/vm/jvm/runtime/org/perl6/rakudo/ (2 files):
Updates to work on latest NQP.
masak PerlJam: at that point, the Parrot team, headed by pmichaud++, was busy building the underpinnings for Rakudo, but it wasn't called Rakudo then. 17:38
PerlJam: while PGE which was being built has since been replaced by some layers of nqp, its legacy lives on in some sense. and I would consider that work as "implement[ing] Perl 6 For Real", too :) 17:39
timotimo_ i suppose putting a moarvm backend in place for pugs isn't going to be very helpful until pugs catches up on a lot of features, right? 17:40
masak more illuminating perhaps to say that while Parrot/PGE was going at it bottom-up, Pugs came in and was the first to do it top-down.
17:40 imIKARi left
masak timotimo_: Pugs is pre-MOP, pre-LTM, and pre-6model. so, yes. 17:40
PerlJam timotimo_: so ... what masak just said :) 17:41
timotimo_ oh yikes, that's a lot of catching up
masak timotimo_: many major synopses have had major revisions since 2007, when Pugs development came to a halt.
17:41 rurban joined
PerlJam timotimo_: but if you *really* like haskell, it's bound to be fun. 17:42
timotimo_ i don't like it enough i'm afraid
17:42 SunilJoshi joined 17:45 fhelmberger left 17:50 SunilJoshi left 17:51 konundra left
PerlJam masak: btw, maybe I'm a little too focused on this one particular aspect, but pugs also provided some critical energy and excitement that really got the implementation ball rolling (IMHO). No other project to date had that energy. Also, Pugs really built out the test suite of Perl 6 features. So, while it's true that Pugs and PGE were working at the problem from different angles, Pugs brought some important pieces of Perl 6 development to the table. (IMHO) 17:51
masak: thus, I consider pugs the first "real" attempt at a Perl 6 implementation.
colomon pugs was awesome, no doubt about it. 17:52
PerlJam but that's just me. :)
17:53 rurban left 17:54 GlitchMr joined 17:56 konundra joined
masak PerlJam: I'm not disagreeing, except perhaps about the last part. 17:56
PerlJam: Pugs and the Parrot efforts were simultaneous, but Pugs had all of the spotlght.
but yes, Pugs had enormous cultural significance.
17:56 daxim left
masak without it, the Perl 6 project would probably have fizzled out into unrealized ambitions, and we wouldn't all be on this channel today. 17:56
colomon masak: that's not really fair -- parrot did have a book published about it, after all.
before pugs. 17:57
and pugs got the spotlight because it, you know, worked.
masak colomon: well, *that* perl6-oon-Parrot didn't survive. in fact, I've never run it.
it would be fun to dig it out and try it, actually.
on*
the point where the Parrot team realized that that perl6 was a dead end was the point where they recruited pmichaud as the lead Perl 6 dev. 17:58
colomon I've never heard that there was anything workable at all from p6 on parrot at that point.
masak there was.
but it was completely abandoned.
if you count that project, then yes, Parrot was definitely before Pugs in having a running Perl 6. 17:59
if you don't count that project, then well, Parrot had PGE but not Rakudo yet. Rakudo came along in... 2007?
though not under that name yet.
17:59 gdey_ left
jeff_s1 I uploaded my changes "cabal install Pugs" should work with the latest Haskell Platform. 17:59
I should make a git repo.
masak the best candidate for a name before Rakudo was "Onion". phew, that was a close one! :P
colomon jeff_s1++
masak .oO( the Perl 6 implementation that will bring tears to your eyes! ) 18:00
colomon masak: I'm a bit dumbfounded at the notion that there was a usable p6 before pugs. I mean, pugs was considered very exciting even when it was just the simplest of toys. was that all just clever Haskell PR? 18:01
masak colomon: Pugs was *awesome*, man. 18:02
18:02 btyler joined
masak colomon: it's hard to explain now, 8 years later. 18:02
colomon: but it was like waking up each day, and one more bit of Perl 6 was available.
colomon: since I haven't tried the old perl6-on-Parrot, I don't know at what point Pugs overtook it in terms of features... but that must have happened pretty quickly. 18:03
colomon masak: when I first used pugs, growing an array one element at a time was an O(N**2) operation. and people were already excited about it.
18:03 gdey joined
colomon at the time, I certainly was not aware there was any of p6 implementation that was worth trying. 18:03
masak in that sense, yes, Parrot's PR sucked and Pugs' didn't suck.
I am pretty sure I hadn't heard about perl6-on-Parrot either.
in fact, "I didn't know about the Perl 6 project that already existed on Parrot" strangelyconsistent.org/blog/happy-...ary-perl-6 18:04
18:04 raiph left
colomon was already reading that post 18:04
18:05 konundra left
colomon as I said, Parrot had an entire book published on it at least a year before pugs 18:05
18:05 raiph joined
masak almost two years. 18:06
first edition: June 2003.
second edition: June 2004.
Pugs: February 2005.
colomon according to your post (with a link that no longer works) that original perl 6 on parrot was given up as unworkable in 2004. 18:07
masak back in 2003, '2...' meant '2..Inf'. yes, it was postfix:<...>! :) though the syntax "postfix:<...>" didn't exist yet.
colomon: right, that's when they found pmichaud. they put out an ad.
colomon seriously?! ha! 18:08
pmichaud++
18:09 tgt left
[Coke] jeff_s1: if you're looking for things to update that would help us pass more tests, I'm happy to provide some items. :) (pugs) 18:09
masak colomon: working link: github.com/parrot/parrot/blob/RELE...rl6/README
I'll replace it in the blog post. 18:10
colomon masak++: crazy stuff 18:11
18:12 gdey left, konundra joined, mst joined
jeff_s1 [Coke]: I don't want to commit to anything, but if you have a few specific ideas I might look into it. 18:12
[Coke] S03-operators/autoincrement-range.t has a bunch of pugs todos that are all related. 18:14
if you can get this running: t/fudgeandrun S32-trig/cos.t 18:16
we'll probably be able to get several hundred more passing tests.
masak wow, and at that time 'perl6' was a Perl 5 program. :D
github.com/parrot/parrot/blob/RELE...erl6/perl6
rjbs Ha! :)
dalek rl6-roast-data: 89adf54 | coke++ | / (4 files):
today (automated commit)
18:17
masak downloads Parrot 0.3.0 to try this 'perl6' 18:18
dalek p: 4e615b3 | jnthn++ | src/vm/jvm/ (3 files):
Add op for looking up attribute access hints.

These allow better compilation of attribute lookups, saving a hash lookup per attribute access that can be resolved at compile time.
18:19
p: ffca963 | jnthn++ | src/vm/jvm/stage0/ (10 files):
Update bootstrap to get nqp::attrhintfor(...).
[Coke] jeff_s1: if those are too involved, let me know, I can look for simpler things that give us fewer tests.
dalek p: b06dc41 | jnthn++ | src/vm/jvm/ (2 files):
Generate hints for QAST::Var attribute accesses.
jeff_s1 [Coke]: Thanks for the suggestions. I can't promise anything, but I might be back in a couple of weeks with something interesting :) 18:20
PerlJam looking at that readme, the weird thing is I don't remember anyone working on "perl6" back then other than sean o'rourke and leo toetsch 18:21
BinGOs MoarVM built okay (if a little slowly) on Raspberry Pi (Linux rasta 3.6.11+ #456 PREEMPT Mon May 20 17:42:15 BST 2013 armv6l GNU/Linux)
18:22 stevan_ left 18:23 tgt joined, stevan_ joined 18:24 Bzek joined
[Coke] PerlJam: steve fink is the other name I see there. that sounds really familiar. 18:24
masak yay I haz a working 'perl6' from 2004! \o/ 18:27
$ perl6
> 2 + 2
4
um.
or not :)
moritz BinGOs: cool
masak that's Rakudo I'm running...
ah, here we go: 18:28
$ /usr/bin/perl perl6
'perl6-config' not found: No such file or directory at perl6 line 34.
ah, need to 'make' in this directory, too.
$ /usr/bin/perl perl6 test 18:29
Can't locate Perl6grammar.pm in @INC [...]
dear me, this 'perl6' is hard to use :(
hm, there's a Perl6grammar.pm in the current directory...
$ /usr/bin/perl -I. perl6 test 18:30
Can't call method "tree" on an undefined value at perl6 line 437.
:(
(the 'test' file contains a simple 'say "OH HAI";')
PerlJam [Coke]: maybe because of www.finkproject.org/ :)
18:30 census joined
masak I think I just lost interest in this 'perl6' from 2004. 18:31
would've been cool to get it running, but it doesn't seem too cooperative.
PerlJam welcome to the Time Before Pugs :) 18:32
colomon wonders if it would have been any easier to get running back in 2004.
18:35 tgt left
colomon rn: say "a" ~~ set <a b c> 18:37
camelia rakudo b2072f, niecza v24-72-g3cebbf8: OUTPUT«False␤»
colomon rn: say <a b c> ~~ set <a b c>
camelia rakudo b2072f, niecza v24-72-g3cebbf8: OUTPUT«False␤»
colomon thinks that one should be true 18:38
rm: say (set <a b c>) ~~ set <a b c>
moritz s/m/n/
colomon rn: say (set <a b c>) ~~ set <a b c> # know this one should be true
camelia rakudo b2072f, niecza v24-72-g3cebbf8: OUTPUT«False␤»
18:39 rurban joined
colomon rn: say (bag <a b c c>) ~~ set <a b c> # do not know about this one 18:40
camelia rakudo b2072f, niecza v24-72-g3cebbf8: OUTPUT«False␤» 18:41
18:41 stevan_ left
moritz wonders if it's a set of worms or a bag of worms :-) 18:41
masak colomon: I say it should match. 18:42
colomon: because the rhs has an .ACCEPTS, and clearly that Bag matches that Set.
if that makes any sense.
colomon sort of. 18:43
masak if you flipped the operands around, I wouldn't expect it to match.
moritz nr: my $a = set <a b c>; say $a ~~ $a
camelia rakudo b2072f, niecza v24-72-g3cebbf8: OUTPUT«True␤»
colomon I'm implementing Set.ACCEPTS as
method ACCEPTS($other) { $other ⊆ self and self ⊆ $other }
Bag as method ACCEPTS($other) { $other ≼ self and self ≼ $other }
which does what you want, I think. 18:44
18:44 sqirrel left
masak \o/ 18:44
dalek ecza: b8dd516 | (Solomon Foster)++ | lib/CORE.setting:
Add .ACCEPTS for Set, KeySet, Bag, and KeyBag.
masak or put differently, there's a forgetful functor from the category Bag to the category Set. but not the other way around. 18:45
colomon and if you want your Set to actually care about quantity, you just use .Bag to coerce it and it will.
colomon needs to add tests for this... 18:46
masak right. 18:47
colomon do we usually do ACCEPTS tests directly, or using ~~ ? 18:48
moritz using ~~
colomon k
moritz ACCEPTS really is an implementation detail of smart matching
masak .Bag is just the (universal) inclusion functor corresponding to the forgetful functor... :) 18:49
18:49 rurban left
moritz can emphasize with forgetful functors 18:50
colomon realizes he has forgotten the undefined case in his ACCEPTS... 18:51
and used and when he meant &&. sigh. 18:53
18:55 stevan_ joined 18:57 benabik_ joined 18:58 benabik left, benabik_ is now known as benabik
colomon rn: say (set < a b c>) (<=) bag <a a a b c> 19:00
camelia rakudo b2072f, niecza v24-72-g3cebbf8: OUTPUT«True␤»
19:01 abnorman joined
dalek ecza: d2580c9 | (Solomon Foster)++ | lib/CORE.setting:
Fix .ACCEPTS for Set, KeySet, Bag, and KeyBag.

Previously did not handle the type object case correctly.
19:03
19:04 rindolf left, rindolf joined 19:07 stevan_ left 19:11 raiph left
ingy waves o/ 19:14
19:14 gudahtt left 19:15 rindolf left
colomon \o ingy! 19:15
PerlJam ingy o/
ingy great to see you all at yapcna
19:15 rindolf joined
ingy considers an ISoP6 19:15
or at least an ISoAwP6 19:16
colomon ingy: it was great to see you, too. 19:17
PerlJam ingy: I just want to know .... is it customary for you to remove your clothing at a YAPC? I've only been to 2 and at both of them you removed some clothing :-) 19:18
awwaiid PerlJam, seem to be once every 5 years or so?
Maybe every 3 years
PerlJam And how come that wasn't on the YAPC bingo card? ;) 19:19
dalek ast: bbf6549 | (Solomon Foster)++ | S02-types/ (2 files):
Add tests for Set and KeySet smartmatching.
19:22
ast: c49e082 | (Solomon Foster)++ | S02-types/ (2 files):
Tests for Bag.ACCEPTS and KeyBag.Accepts.
ecza: 480a062 | (Solomon Foster)++ | lib/CORE.setting:
I reckon multi-subset and -superset should work with anything.

This reflects the behavior of regular subset and superset.
masak well, to give some perspective, github.com/parrot/parrot/blob/RELE...uiltins.pm defines a whopping 17 builtins: substr, length (!), reverse, join, index, time, sleep, print1 (?), print, exit, die, warn, grep, map, _setup (?), install_catch, and pop_catch. 19:25
[Coke] if there are parrot style catch handlers, that might be an intermediate level for commands to be built on. 19:26
nwc10 masak: did you look at the actual code implementing the compiler? 19:27
masak no.
not yet.
but all those builtins are in PIR, as was the custom at the time.
nwc10 I believe that the compiler was written in Perl 5 19:28
labster this sounds like insanity on top of insanity
nwc10 waits for VMS to make clean... 19:29
(that's Perl 5. A fast linux box can do 0-60-0 in less time)
PerlJam labster: it was all we had at the time.
labster Well, these were the years I was stuck coding FORTRAN, so I can't really complain 19:33
19:33 rindolf left 19:34 rindolf joined
lizmat calls it an early day 19:37
nwc10 good "early day", Perl6?
that's a new one
lue hello world o/ 19:38
masak according to en.wikipedia.org/wiki/Doomsday_argument it's a "late day"...
dalek kudo-star-daily: bea432b | coke++ | log/ (5 files):
today (automated commit)
19:39 Bzek left
lue masak: may I ask why you've decided to install such an old rakudo? 19:39
lee_ really wants JVM support for MapIter :D 19:40
i keep building it hoping it will magically appear 19:41
19:42 domidumont left
jnthn lee_: I'm hoping to get that in tomorrow. 19:43
lee_ yay! jnthn++
jnthn Was gonna do it today but my brane is still a bit mushy thanks to jetlag...
lue Ooh! I just found a bug concerning the two Twigils sections in S02 and the pod-to-html converter! [more] 19:48
19:48 census2 joined
lue Both "Twigils" entries in the ToC point to just the first Twigils header (because the anchors are #Twigils instead of #Section/Twigils) I've known this part of the bug for a while, but I just found the other part: 19:49
Both "Twigils" sections in the generated webpage include I<both> Twigils sections in the Pod, which is why they're carbon copies of each other in the html page. 19:50
masak lue: I decided to install it because backlog. (people said that they hadn't even heard of this old 'perl6', and I recalled saying the same. so I decided to try it out. couldn't make it run.) 19:51
19:51 rurban joined
lue OK. 19:51
flussence masak: is that the one where .get is spelled &prefix:<=>? 19:52
(or something like that...)
colomon flussence: I believe that was in early Rakudo as well. 19:53
(or possibly only)
moritz it was
seems the switch from prefix:<=> to get/lines was in 2009 19:54
colomon I remember it happening. But I don't think I had too much code to change because of it. :)
lue re heredocs: IIRC, q:to(0) *always* gives the parens to the adverb, you'd need q:to (0) to make them be quotes. Also, The heredoc takes the end delim from what's inbetween the quote delims. 19:55
(because parens and only parens supply arguments to quote adverbs)
labster okay, I was just reading S16 about $*CWD: "It must check whether the path exists before changing its value" Now, how the heck am I supposed to do that? 19:56
moritz labster: first of all, if you find this kind of API insane, remove it from the spec 19:57
flussence try { chdir($newcwd); $*CWD = $newcwd }
moritz labster: I find it quite insane, because a program can have many $*CWD variables, but only one working directory) 19:58
flussence oh, in that case I agree.
labster it's useful for testing some things. not much beyond that, I'm afraid 19:59
sorear good * #perl6
yoleaux 12:38Z <jnthn> sorear: PushSelf confused me at first; I thought of Perl 6 "self", e.g. that it was pushing "this". Seems it pushes the handle of the current method...maybe there's a better name. JAST::PushCurMeth perhaps...
12:42Z <jnthn> sorear: I'd initially planned to have one exception handler catching the save state exception per qb_NNN method, rather than one per call. That woulda involved keeping a local tracking the save index (updating it just before each call), probably giving smaller code (or at least, smaller exception tables). Maybe it breaks even on performance, though...hard to guess.
moritz that said, if you absolutely love that feature, you can do something evil like flussence++ suggested by binding a Proxy to $*CWD
flussence (would it be better for $*CWD to be readonly then?)
labster chdir still needs to change it.
moritz flussence: then you can still make a new one with 'my $*CWD'
jnthn o/ sorear 20:00
moritz flussence: and what then? chdir changes all variables named $*CWD?
sorear jnthn: haven't broken the rakudo build *yet*. :D
moritz and how does it even know about them?
jnthn :P
flussence I guess I'll just leave the decision up to someone with a good use case for having it work a certain way..
s,..$,..., 20:01
lue Could it perhaps be $?CWD then, if you don't want modifications?
moritz lue: the ? sigil is for stuff that's known at compile time
colomon In Niecza, I believe that $*CWD just calls the function to get the current directory.
moritz lue: and the run time path usually isn't known at compile time :-)
lue Oh, right. nevermind then :)
moritz is still firmly +2 on removing $*CWD 20:02
colomon moritz: then how would you figure out what the current directory is? 20:03
labster cwd()
colomon rn: say cwd
camelia niecza v24-75-g480a062: OUTPUT«Unhandled exception: cwd may not be used in safe mode␤ at /home/p6eval/niecza/lib/CORE.setting line 0 (cwd @ 0) ␤ at /tmp/LQB7NN9gGR line 1 (mainline @ 3) ␤ at /home/p6eval/niecza/lib/CORE.setting line 4542 (ANON @ 3) ␤ at /home/p6eval/niecza/lib/CORE.…
..rakudo b2072f: OUTPUT«/home/p6eval␤»
moritz colomon: cwd(), IO::Path.cwd, whatever we want to call it
colomon hmm... it's shorter and less violent to the eye... 20:04
sorear o/
colomon and no one would try to assign to it...
+1
\o, sorear
lue But... How else am I supposed to run commands like qqx"ls $*CWD" ? It's not like linux comes with a "current directory" symbol.
sorear cwd() == foo...
colomon qqx"ls { cwd }"
moritz lue: qqx"lc {cwd}"
*ls
sorear lue: .
colomon sorear++ 20:05
labster I'm not entirely against removing it, but overriding it does have its uses. Like setting $*CWD locally to "D:\foo" to test that IO::Path::Win32 doesn't make relative paths from "C:\bar".
sorear besides {cwd} is the same number of chars as $*CWD
labster but yeah, that's a pretty narrow case. overriding &cwd locally would work too
lue I have a feeling $*CWD was trying to do something that would be more appropriate with a different name. 20:06
colomon labster: how would $*CWD do something there than chdir cannot?
labster .oO ($*PWD)
lue (even better yet, qx"ls")
moritz lue: $*CWD would be cute if it worked as originally envisioned
labster qx"ls ."
colomon or does $*CWD magically chdir back when it goes out of scope?
moritz lue: but Perl 6 gives far too many options for scoping and control flow to keep the working directory and a dynamic variable in sync 20:07
labster changing $*CWD now currently does not actually change the process working directory
moritz colomon: $*CWD is scoped idfferently
my $*CWD = 'FAKE'; call_something()
now &call_something sees the fake $*CWD
lue wishes Firefox's awesome bar would take him to the right place when he typed S16<Enter> 20:08
moritz and at scope exit, it's gone again
sorear local *cwd = sub { 'FAKE' } ... :D
labster you beat me on typing that, sorear
moritz well, except that it doesn't work in p6 :-)
colomon \o/ 20:09
sorear my $h = &cwd.wrap({ 'FAKE' }); LEAVE $h.unwrap; ...
labster my sub cwd { 'FAKE" } does it?
moritz labster: for the lexical scope yes, but not for the dynamic scope
lue
.oO( my sub cwd { IO::Path("/") }; )
20:10
*IO::Path.new (sigh)
labster "/".path 20:11
20:11 atroxaper left
flussence after my time using php I've become paranoid of using the working directory in general... 20:13
20:13 rurban left
moritz flussence: good for you 20:14
colomon yeah, I was just trying to think how $*CWD would work with laziness, and my head exploded a little... 20:16
flussence I just want a nice language that insulates me from the insane parts of posix :( 20:17
moritz java?
flussence *nice* language :)
moritz ok, forgot about the "nice language" part, sorry
nwc10 and he only wanted to be isolated from the insane parts
tadzik Go? :)
moritz C#?
nwc10 not a straightjacket
20:17 rurban joined
moritz
.oO( not even a nice straightjacket? :-)
20:18
moritz -> sleep
colomon o/
lue RESTRICTED.setting ? 20:20
flussence
.oO( I wonder if this is accurate at all: PHP scripts are like green threads {which don't always get cleaned up properly} )
20:21
.oO( and extrapolating that line of thinking, Threads.pm6 in its current state might make a good base for a webapp )
20:22
20:31 konundra left 20:32 zby_home_ left 20:34 rurban left 20:39 tomyan joined 20:40 SmokeMachine joined 20:43 tgt joined 20:50 pochi_ left, kaare_ left 20:53 Chillance joined 20:56 rurban1 joined 21:04 rurban1 left
snearch Hello #perl6, I try to write some code which initializes a private attribute of an object and says its value, but the following code does not work (says "(Any)"), why? class a{ has $!x; method pr{ say $!x; } }; a.new( x => 124 ).pr(); 21:04
21:04 skids left, robinsmidsrod left
benabik I don't think .new initialized privates by default. 21:05
colomon rn: class a{ has $!x; method pr{ say $!x; } }; a.new( x => 124 ).pr();
camelia rakudo b2072f, niecza v24-75-g480a062: OUTPUT«(Any)␤»
colomon rn: class a{ has $.x; method pr{ say $.x; } }; a.new( x => 124 ).pr();
camelia rakudo b2072f, niecza v24-75-g480a062: OUTPUT«124␤»
colomon benabik++
benabik Indeed, colomon beat me to it.
21:06 robinsmidsrod joined
[Coke] so, next step, how do you initialize private attributes? 21:06
(BUILD, no?)
flussence r: class a { has $!x; }; say a.new( x => 124 ).DUMP 21:07
camelia rakudo b2072f: OUTPUT«a<1>(:$!x(Any))␤»
benabik submethod BUILD, I think?
colomon rn: class a{ has $!x; method new($x) { self.bless(*, $:x); }; method pr{ say $!x; } }; a.new( x => 124 ).pr();
camelia rakudo b2072f: OUTPUT«===SORRY!===␤Redeclaration of symbol $:x as a placeholder parameter␤at /tmp/d6t8aI0bET:1␤------> $!x; method new($x) { self.bless(*, $:x⏏); }; method pr{ say $!x; } }; a.new( x␤»
..niecza v24-75-g480a062: OUTPUT«===SORRY!===␤␤Placeholder variable $:x cannot override existing signature ($x) at /tmp/muckku6LEu line 1:␤------> has $!x; method new($x) { self.bless(*, ⏏$:x); }; method pr{ say $!x; } }; a.new␤␤Confused at /tmp/muckk…
dalek p: 080f0bf | jnthn++ | src/vm/jvm/runtime/org/perl6/nqp/sixmodel/reprs/P6Opaque (3 files):
Avoid reflection when allocating P6opaque.
p: a759e63 | jnthn++ | src/QAST/Regex.nqp:
Dump rxtype of QAST::Regex.
p: a640d5a | jnthn++ | src/vm/jvm/QAST/Compiler.nqp:
Use regionMatches, avoiding subString calls.

Avoids creating some short-lived strings during the parse.
dagurval Is it not possible to export a variable? This doesn't work for me: gist.github.com/dagurval/7522d8bf0f5464818611
colomon dagurval: you didn't eval that code, you just imported it as a string and printed it. 21:08
flussence some working BUILD code: github.com/flussence/perl6-XMMS2/b...ent.pm6#L6 21:09
benabik flussence++
colomon Woah, having to use BUILD is good enough reason in my mind never to use private attributes....
dagurval colomon: eval? I want it to be loaded via "use"
colomon dagurval: oh, I see, use a 21:10
snearch I can't believe that there is no easy solution
this is so easy in C++ 21:11
benabik colomon: It's probably better for the class to initialize its private attributes than allowing random users to do so.
r: class a { has $!x; submethod BUILD(:$x) { $!x = $x } }; say a.new(x => 42).DUMP 21:12
camelia rakudo b2072f: OUTPUT«a<1>(:$!x(42))␤»
masak r: class a { has $!x; submethod BUILD(:$!x) { } }; say a.new(x => 42).DUMP
camelia rakudo b2072f: OUTPUT«a<1>(:$!x(42))␤»
benabik snearch: new won't initialize a private variable by default. But if you define a BUILD submethod, you can do it.
snearch: It's P6's version of a constructor.
snearch benabik: thanks 21:13
benabik masak: :(:$!x) ? That's a nice trick.
dagurval snearch: I had the same frustration some days ago :)
PerlJam benabik: it's not a trick; it's spec!
:) 21:14
benabik PerlJam: You want me to believe that the spec isn't tricky? ;-)
PerlJam touché
benabik :$!x... $ = sigil, ! = twigil, : = ?gil
FOAD quigil. 21:15
flussence pregil?
masak "colon". :)
flussence colongil!
benabik colongil? 21:16
geekosaur nekudotayim :p 21:17
snearch dagurval: did you find a not-frustrating solution? 21:18
sorear if it were on the other side of the ! it would be called a trigil 21:19
snearch dagurval: maybe short, succinct?
21:19 rurban joined
dagurval if it's non-frustrating is up to you to decide, see how I initialize $!img-path in this class: github.com/dagurval/perl6-image-re...Resize.pm6 21:20
it's basically what's already been sayd here 21:21
21:21 rurban left 21:22 aindilis joined
masak dagurval: not sure why you feel it's very important to not give $!img-path a public accessor in that case. 21:22
masak is growing disenchanted with private attributes as he grows older 21:23
colomon too
masak Perl 5 and JavaScript do fine without them (even as people sometimes go to great lengths to emulate them).
benabik dagurval: When I try your example, I get "Could not find a in any of: ..." Perhaps you have another module a on your module path? 21:24
masak in my (upcoming) programming language, I'm going to experiment with making all attributes public by default, and then putting encapsulation/hiding "one level up", on the next abstraction level above objects.
nwc10 #define private public
dagurval benabik: no, I omitted it, try "@*INC.shift(".")" first :)
masak nwc10: "every problem in computer science can be solved with a textual macro. except the problem of too many textual macros." :P 21:25
benabik dagurval: Or use lib '.'; :)
dagurval hehe, or that :)
masak: You may be right, I suppose I could do the "file exists" check in a public accessor. Habit I suppose. 21:26
21:27 PacoAir left
benabik Hm. constant %C is export works. 21:29
dagurval bakedb: niecza tells me "Trait export not available on variables". I can't find in the spec where it explicitly says it is
s/bakedb/benabik/ :)
21:29 twigel joined
dagurval if constant works, I'll use that for now. Thanks for the tip 21:31
benabik I see nothing in spec wrt the exportability of variables. However, my $0.02 is that it should either work or give an error when you try. :-D 21:33
flussence std: my $0.02 21:36
camelia std 6348f35: OUTPUT«===SORRY!===␤Cannot declare a numeric variable at /tmp/I2tA1KB_3Y line 1:␤------> my $0⏏.02␤Parse failed␤FAILED 00:00 41m␤»
snearch I would like, if "new" would be allowed to initialize private attributes, why not change "new"? 21:37
21:38 tgt left
flussence p5eval: my $0.02 21:38
p5eval flussence: ERROR: Can't use global $0 in "my" at (eval 7) line 1, near "my $0"
flussence p5eval: our $0.02
p5eval flussence: /tmp/p5eval/jail/p5eval-MZmM.pl2
flussence
.oO( interesting, it works when you share your two cents... )
21:39
benabik Hah.
21:39 tgt joined
dagurval :D 21:39
pmichaud to add a bit more to the pugs and p6 on parrot story.... 21:43
(re irclog.perlgeek.de/perl6/2013-06-11#i_7184353 )
early versions of PGE started in late 2004. Pugs started in early 2005. 21:44
Pugs had a huge advantage in that it could use an already-built parser generator (Parsec) to parse the language; Parrot had no such parser tool at the time. That's why Parrot's approach was "bottom-up"... it was that way by necessity.
however, Pugs' advantage with Parsec also turned into a disadvantage... although it could parse Perl 6 code, Pugs had no native support for Perl 6 regular expressions or grammars. 21:45
Indeed, for a long time its mechanism of providing Perl 6 regexes was to call out to PGE on Parrot. 21:46
when it became clear that Pugs needed to have its own regular expression engine, several attempts were begun to build one... but afaict none of them got very far, and all were really slow. (I might be mis-remembering reality here.) 21:47
masak / PerlJam : ^^^^ 21:48
benabik I have come to the conclusion that a) it looks like there's no particular reason why our $var is export doesn't work and b) there probably is one but I have no idea how importing works. 21:49
21:49 rurban1 joined
masak pmichaud: glad to see you only had additions and no corrections ;) 21:50
or s/glad/relieved/ :)
pmichaud oh, I wasn't looking for corrections.
but yes, I thought your summary was pretty accurate; just wanted to give a bit of the reason why Rakudo took a more bottom-up approach 21:51
there's no question that Pugs energized the community in ways that Perl 6 on Parrot wouldn't have been able to do for some time.
and similarly, I disagree with PerlJam about Perl6-on-Parrot not being a "real" attempt... it was very real. 21:53
it just didn't have the fast lane that Pugs was able to utilize at the time.
masak pmichaud: any idea why I couldn't get it to run?
pmichaud couldn't get Pugs to run?
pmichaud lost a thread here.
masak no, the dead-end perl6. 21:54
I downloaded Parrot 0.3.0 and tried to build and run it.
build went extremely fine, but run didn't.
pmichaud no, I don't know... let me look.
sorear benabik: variable exports are LHF NYI in niecza. I've never needed them 21:55
pmichaud masak: I think the languages/perl6 that existed as of 0.3.0 was the one from before when I started.
looking 21:56
masak yes. it was.
pmichaud: did you ever run it?
:)
pmichaud I never looked at it closely. By the time I started in 2004 it had already bitrotted and I was advised only to look at it for general ideas.
21:56 tgt left
pmichaud so no, I don't think I ever ran it. Or if I did, it was just once and it wasn't successful. 21:56
21:57 dmol left
cognominal when rakudo got its on repository? 21:57
21:57 dmol joined
pmichaud rakudo got its name in January 2008. 21:57
cognominal * own
pmichaud Rakudo got its own repository in January 2009.
masak maybe I downloaded a too-late Parrot...
Teratogen instead of just-in-time parrot? 21:58
pmichaud JIT support in Parrot was removed a long time ago :-) :-) :-)
masak "ouch." 21:59
:)
cognominal pugs got me interested in haskell which was a good thing. 22:00
pmichaud yapc::na was a huge amount of fun, but once again I return from a conference with a icky cold :-(
sorear you too? 22:01
22:01 shachaf_ joined, shachaf_ left, shachaf_ joined
pmichaud yeah. 22:01
diakopter pmichaud: me too
22:01 shachaf left
jnthn pmichaud: I had one too, but thankfully minor and cleared up mostly since I got back 22:01
22:01 sivoais left, shachaf_ is now known as shachaf
diakopter jnthn: you gave it to me!! 22:01
(kidding)
22:01 sivoais joined
pmichaud saturday was sore-throat-oh-no day, sunday was icky day; yesterday and today have been "recovery" 22:01
diakopter I'm 1 day behind that 22:02
cognominal bad air conditionning?
diakopter ETOOMANYHUGBOTS
pmichaud cognominal: more likely simply the result of having so many people from so many places in one place
masak didn't catch a cold
jnthn masak: You left early :P
pmichaud I left only about 16 hours after masak :-P 22:03
jnthn Clearly that made all the difference! :P
pmichaud cognominal: it's like at my kids' school, where the colds spread like wildfire in the first few weeks after school starts
22:03 xilo left
pmichaud kids go away to exotic locales with their families, come back, give it to everyone else in the classroom, who then take it home to their parents and sibilings :) 22:04
22:04 tgt joined
lue
.oO(It's not flu and cold season because of the weather. It's the schools!)
22:04
census2 pmichaud++
diakopter oh noes! there's *another* census!??! 22:05
benabik I put my kid in daycare and I don't remember the last time I was sick this often.
pmichaud oh, there's a secondary cold/flu season that shows up in mid-winter here... but there's definitely a late-summer season
masak diakopter: *lol*
pmichaud I have to depart.
census2 diakopter hahahh
pmichaud diakopter: there's generally a new census every 10 years... so I think we're overdue. 22:06
census2 diakopter: desktop and laptop
pmichaud bbtomorrow
diakopter o/
census2 hhahahah pmichaud
masak pmichaud: \o
cognominal europeans got the bad habits to bring all sort of plagues in North America. Freud even bragued about it, but that was a different one, psychanalysis but american retaliated by making it unreconizable.
census2 cognominal: hahah now you are going to back to the colonial era, huh? when the european colonists got the native americans ill?
22:07 spider-mario left, arlinius left
cognominal yes 22:07
america is so weird for european. The last crime they are commiting is stuffing donuts with foie gras. 22:09
diakopter jnthn: one of your talks is online 22:10
jnthn diakopter: ?
diakopter: oh, video?
diakopter www.youtube.com/watch?v=7nISwfLoAoU
cognominal www.huffingtonpost.com/2013/06/10/f...l+Business
diakopter hobbs++
census2 foie gras! that is nuts
but america is weird for most things non-american 22:11
or many i should say
cognominal that's a thing to receive death threats from both continents :) from animal activists on the US and french for the culinary crime.
diakopter: thx for the link 22:13
22:13 jeff_s1 left 22:15 jeff_s1 joined 22:21 xilo joined
FROGGS the sound is surprisingly goo 22:22
d
22:23 benabik left 22:24 rurban1 left 22:31 BenGoldberg joined 22:32 groky left 22:33 BenGoldberg left, abnorman left 22:34 BenGoldberg joined, groky joined 22:40 snearch left 22:41 BooK joined, shinobicl joined 22:42 Util left 22:45 Util joined, tadzik joined 22:49 btyler left
jnthn 'night, #perl6 22:52
22:52 arlinius joined, census left
FROGGS gnight jnthn 22:53
diakopter just watched jnthn's talk 22:57
masak 'night, #perl6 22:58
22:58 rindolf left
sorear diakopter: which? 22:58
diakopter the one online,linked above 22:59
FROGGS: hobbs++ fixing the sound
FROGGS cool 23:00
hobbs++ # good work 23:01
23:01 tomyan left
sorear am I to suppose that all of the talks will eventually be posted on user/yapcna, and seven have been posted so far? 23:05
diakopter right.
sorear hobbs++ indeed 23:06
diakopter well, a couple were unfortunately botched while recording
1 nine is pretty good, though! ;)
sorear "1 nine" ? 23:07
diakopter as in.. "5 nines"
(99.999%)
sorear ah
23:07 tomyan joined
sorear well, ISTR that frankfurt was only able to afford recording equipment for half the rooms 23:08
so austin is already far exceeding my expectations
diakopter also unfortunately (probably) I ran out of time to prove out the picture-in-picture setup where the slides would get the main screen and speaker gets 1/16 23:09
the only non-trivial cord/connection it would've required would be two 50 ft VGA cables (over ethernet with amplifiers) and 2 100 ft ones for the bigger rooms 23:11
23:12 tomyan left
sorear thought that we had 1 large room and 3 identical small rooms 23:13
diakopter TCC 1.110 was a bigger room, but had smaller capacity than floors 2 and 3 23:14
23:14 census2 left
[Coke] (hugbots at conventions) gah, no touchee. 23:14
23:21 stevan_ joined 23:26 thou left
[Coke] jnthn: I fixed the partcl build so it should work out of the box on windows. 23:41
sadly, I think "puts" is the only thing that works right now. :) 23:46
diakopter yeah, didn't I see someone commented out all the rest of the commands? :)
[Coke] I might have done that months ago the last time I was trying to get things to work, aye. 23:49
sorear does pm also have a tcl-on-nqp? 23:50
[Coke] ugh. dealing with a generated file sucks. need a way to jump from that to the original file.
no. 23:51
he was a big help in the original nqp-rx version.
ISTR I bug a lot of people here to get the nqp one started a year ago before I stalled out.
shinobicl hello
rakudo: my $x = 5; (0..$x).map(($x ** *)/*!).say;
camelia rakudo b2072f: OUTPUT«===SORRY!===␤Negation metaoperator not followed by valid infix␤at /tmp/xKYtyquNkz:1␤------> my $x = 5; (0..$x).map(($x ** *)/*!⏏).say;␤ expecting any of:␤ postfix␤ infix stopper␤ infix or meta-infix␤»…
shinobicl rakudo: my $x = 5; (0..$x).map(($x ** *)).say; 23:52
camelia rakudo b2072f: OUTPUT«1 5 25 125 625 3125␤»
shinobicl well this looks ok, is what i expected
but when i add this factorial operator...
rakudo: sub postfix:<!> { [*] 1..$^n }; my $x = 5; (0..$x).map(($x ** *)/*!).say;
camelia rakudo b2072f: OUTPUT«1 4.166667 5.208333␤»
shinobicl my list only has 3 elements... 23:53
why is that? i don't understand. 23:54
lue r: say (0..5).map: {say *; say *}
camelia rakudo b2072f: OUTPUT«*␤*␤*␤*␤*␤*␤*␤*␤*␤*␤*␤*␤True True True True True True␤»
diakopter n: sub postfix:<!> { [*] 1..$^n }; my $x = 5; (0..$x).map(($x ** *)/*!).say;
camelia niecza v24-75-g480a062: OUTPUT«1 4.166667 5.208333␤»
diakopter well, niecza agrees 23:55
lue r: say (0..5).map(*+*)
camelia rakudo b2072f: OUTPUT«1 5 9␤»
diakopter n: sub postfix:<!> { [*] 1..$^n }; my $x = 5; (0..$x).map(($x ** *)/(*!)).say;
camelia niecza v24-75-g480a062: OUTPUT«1 4.166667 5.208333␤»
lue each * is taking the next element from the list, which is why you get just three elements (0..5 has 6 elements)
r: sub postfix:<!> { [*] 1..$^n }; my $x = 4; (0..$x).map(($x ** *)/(*!)).say; 23:56
camelia rakudo b2072f: OUTPUT«Not enough positional parameters passed; got 1 but expected 2␤ in block at /tmp/ig6JTN6iX8:1␤␤»
shinobicl ahhhh ok... so i use 2 elements in each call
diakopter rn: sub postfix:<!> { [*] 1..$^n }; my $x = 5; (0..$x).map(($x ** ($=*))/$!).say;
camelia rakudo b2072f: OUTPUT«===SORRY!===␤Non-declarative sigil is missing its name␤at /tmp/SfZ2LMyCkV:1␤------> ..$^n }; my $x = 5; (0..$x).map(($x ** (⏏$=*))/$!).say;␤ expecting any of:␤ postfix␤ infix stopper␤ infix or meta-infix␤…
..niecza v24-75-g480a062: OUTPUT«===SORRY!===␤␤Non-declarative sigil is missing its name at /tmp/SnP0m_tCwn line 1:␤------> ..$^n }; my $x = 5; (0..$x).map(($x ** (⏏$=*))/$!).say;␤␤Confused at /tmp/SnP0m_tCwn line 1:␤------> ..$^n }; my $x = 5; (0…
diakopter rn: sub postfix:<!> { [*] 1..$^n }; my $x = 5; (0..$x).map(($x ** (my$=*))/$!).say;
lue r: sub postfix:<!> { [*] 1..$^n }; my $x = 5; (0..$x).map({($x ** $^a)/$^a!}).say;
23:56 BenGoldberg left
camelia niecza v24-75-g480a062: OUTPUT«Potential difficulties:␤ &postfix:<!> is declared but not used at /tmp/YIW18rkIlp line 1:␤------> sub postfix:<!> ⏏{ [*] 1..$^n }; my $x = 5; (0..$x).map((␤␤Unhandled exception: Cannot use value like Whatever as a number␤ at <unknown> … 23:56
..rakudo b2072f: 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:3083␤ in sub infix:<**> at src/gen/CORE.setting:3081␤ in block at /tmp/05vGPt6JuH:1␤␤»…
rakudo b2072f: OUTPUT«1 5 12.5 20.833333 26.041667 26.041667␤»
lue r: sub postfix:<!> { [*] 1..$^n }; my $x = 5; say (0..$x).map: {($x ** $^a)/$^a!}; # more readable form of what I just ran 23:57
camelia rakudo b2072f: OUTPUT«1 5 12.5 20.833333 26.041667 26.041667␤»
shinobicl r: sub postfix:<!> { [*] 1..$^n }; my $x = 5; my @r = (0..$x).map({($x ** $^a)/$^a!}); say [+]@r;
camelia rakudo b2072f: OUTPUT«===SORRY!===␤Two terms in a row␤at /tmp/O2piKHxgTM:1␤------> (0..$x).map({($x ** $^a)/$^a!}); say [+]⏏@r;␤ expecting any of:␤ argument list␤ postfix␤ infix stopper␤ infix or meta-infix␤ stat…
[Coke] nqp question: I'm trying to call HLL::Actions::string_to_int, but it's giving me an NQPMu error. top of the file has "use NQPHLL;". any pointers?
lue r: sub postfix:<!> { [*] 1..$^n }; my $x = 5; my @r = (0..$x).map({($x ** $^a)/$^a!}); say [+] @r;
camelia rakudo b2072f: OUTPUT«91.416667␤»
shinobicl the idea is to implement this keisan.casio.com/exec/system/1223447896 23:58
[Coke] nqp: use NQPHLL; HLL::Actions::string_to_int("234"); 23:59
camelia nqp: OUTPUT«invoke() not implemented in class 'NQPMu'␤current instr.: '' pc 149 ((file unknown):161475578) (/tmp/hG0AaLMFyc:1)␤»
lue You just needed a space between the [+] and @r in the last one.