Perl 6 - the future is here, just unevenly distributed

IRC log for #perl6, 2013-07-01

Perl 6 | Reference Documentation | Rakudo

| Channels | #perl6 index | Today | | Search | Google Search | Plain-Text | summary

All times shown according to UTC.

Time Nick Message
00:01 jaldhar joined #perl6
00:02 Woodi joined #perl6
00:20 logie joined #perl6
00:36 raiph joined #perl6
00:46 dayangkun joined #perl6
00:55 FROGGS joined #perl6
00:57 thundergnat left #perl6
01:05 xilo_ joined #perl6
01:12 FROGGS_ joined #perl6
01:15 Chillance_ joined #perl6
01:17 BenGoldberg rn: cwd.say
01:17 camelia niecza v24-86-g39ab531: OUTPUT«Unhandled exception: cwd may not be used in safe mode␤  at /home/p6eval/niecza/lib/CORE.setting line 0 (cwd @ 0) ␤  at /tmp/FpjaWRGa0g line 1 (mainline @ 3) ␤  at /home/p6eval/niecza/lib/CORE.setting line 4579 (ANON @ 3) ␤  at /home/p6eval/niecza/lib/CORE.…
01:17 camelia ..rakudo 567941: OUTPUT«/home/p6eval␤»
01:21 hypolin joined #perl6
01:32 BenGoldberg rn: enum E <A B>; A.pick.say
01:32 camelia rakudo 567941, niecza v24-86-g39ab531: OUTPUT«B␤»
01:32 BenGoldberg rn: enum E <A B C D E>; C.pick.say
01:32 camelia niecza v24-86-g39ab531: OUTPUT«[31m===[0mSORRY![31m===[0m��Illegal redeclaration of symbol 'E' (see line 1) at /tmp/elqXXYbwW1 line 1:�------> [32menum E <A B C D E>[33m�[31m; C.pick.say[0m��cannot bind constant value at /tmp/elqXXYbwW1 line 1:�------> [32menum E <A B C D E>[3…
01:32 camelia ..rakudo 567941: OUTPUT«B␤»
01:32 BenGoldberg rn: enum E <A B C D F>; C.pick.say
01:32 camelia rakudo 567941: OUTPUT«B␤»
01:32 camelia ..niecza v24-86-g39ab531: OUTPUT«A␤»
01:33 BenGoldberg rn: enum E 'E'; E.say
01:33 camelia niecza v24-86-g39ab531: OUTPUT«[31m===[0mSORRY![31m===[0mâ�¤â�¤Undeclared name:â�¤        'E' used at line 1,1â�¤Undeclared routine:â�¤       'enum' used at line 1â�¤â�¤Unhandled exception: Check failedâ�¤â�¤  at /home/p6eval/niecza/boot/lib/CORE.setting line 1502 (die @ 5) â�¤  at /home/p6eval/niecza/src/STD.pm6
01:33 camelia ..l…
01:33 camelia ..rakudo 567941: OUTPUT«[31m===[0mSORRY![31m===[0mâ�¤Undeclared name:â�¤    E used at line 1â�¤Undeclared routine:â�¤    enum used at line 1â�¤â�¤Â»
01:33 BenGoldberg rn: enum E <E>; E.say
01:33 camelia rakudo 567941: OUTPUT«(E)␤»
01:33 camelia ..niecza v24-86-g39ab531: OUTPUT«[31m===[0mSORRY![31m===[0m��Illegal redeclaration of symbol 'E' (see line 1) at /tmp/l7fFE0F7_a line 1:�------> [32menum E <E>[33m�[31m; E.say[0m��cannot bind constant value at /tmp/l7fFE0F7_a line 1:�------> [32menum E <E>[33m�[31m; E.say[0m��…
01:43 raiph joined #perl6
01:50 [Coke] updated https://gist.github.com/coke/5879701
01:50 [Coke] nice new failure mode:nextsame/nextwith/callwith is not in the dynamic scope of a dispatcher
01:55 sorear nice
01:55 sorear total errors are down?
01:58 timotimo huh, rakudo is still regressing?
01:58 timotimo on parrot?
02:04 sorear timotimo: where?
02:04 timotimo in the last few days os cokes updates
02:04 timotimo https://github.com/coke/perl6-roast​-data/blob/a1050587cf4eebce6d31340e​18a27cd4d50f87c6/perl6_pass_rates - used to be 26020 on the third entry, now it's still on only 25717
02:05 timotimo anyway, i should be going to bed
02:05 [Coke] ~.
02:07 [Coke] timotimo: there's no failures on rakudo.parrot - possible tests were removed or something.
02:09 timotimo yes, i didn't see that. in the skip column there was a bump
02:10 sorear mostly just the "plan" column falling
02:10 abnorman joined #perl6
02:14 JimmyZ hmm, when I typed nmake, I saw 'perl -MExtUtils::Command -e cp src/stage2/nqp.jar .' and similar things about 9 times once.
02:14 sorear JimmyZ: were you building nqp for the jvm?
02:14 JimmyZ yes
02:15 JimmyZ and saw 'perl -MExtUtils::Command -e mkpath src/stage2/gen' many times
02:15 sorear JimmyZ: does https://github.com/perl6/nqp/blob/mas​ter/tools/build/Makefile-JVM.in#L330 look familier?
02:16 JimmyZ sorear: yes
02:16 sorear or: "Yes, it's supposed to do that"
02:17 JimmyZ nope, It's not suppoesed
02:17 sorear what do you mean?
02:18 JimmyZ sorear: https://gist.github.com/zhuomingliang/5897963
02:19 JimmyZ sorear: also 'perl -MExtUtils::Command -e mkpath src/stage2/gen'
02:19 sorear Oh, I thought you meant "9 times" as in "it copies 9 files"
02:20 JimmyZ :D
02:20 ggoebel joined #perl6
02:21 benabik I can do it.  I will do it nine times.
02:28 hypolin joined #perl6
02:35 mdxi joined #perl6
02:38 ManAmongHippos joined #perl6
02:39 ManAmongHippos Is there going to be a full fledged perl6 reference implementation?
02:40 hypolin joined #perl6
02:44 sorear ManAmongHippos: No, we use a reference test suite instead
02:45 [Coke] I doubt there will anything called a reference implementation. There are multiple implementations in progress, with rakudo being the most complete.
02:45 sorear ManAmongHippos: see https://github.com/perl6/roast/
02:45 [Coke] sorear++ # better answer.
02:45 ManAmongHippos Ok that answers my question. Thanks
02:46 [Coke] r: say (1|2)+(3|4)
02:46 camelia rakudo 567941: OUTPUT«any(any(4, 5), any(5, 6))␤»
02:46 [Coke] is there a way to flatten that to any(4, 5, 6) ?
02:47 flussence come to think of it, I've never seen anything computing related of this scale where a single group's produced both a solid spec and a good reference design.
02:48 sorear flussence: To be fair, we've produced quite a few bad reference designs
02:49 sorear [Coke]: I don't think so
03:24 xinming joined #perl6
03:33 SamuraiJack_ joined #perl6
03:39 FROGGS joined #perl6
03:51 preflex_ joined #perl6
03:57 fridim__ joined #perl6
04:00 chayin joined #perl6
04:27 Psyche^ joined #perl6
04:36 ManAmongHippos joined #perl6
04:41 FROGGS joined #perl6
04:48 birdwindupbird joined #perl6
04:53 ilbot_nextgen joined #perl6
05:08 atroxaper joined #perl6
05:09 hypolin joined #perl6
05:18 lawrmcfa joined #perl6
05:19 lawrmcfa left #perl6
05:28 segomos moritz: you around for a DBIish q?
05:36 moritz segomos: yes-ish
05:37 segomos with the mysql portion i'm preparing a simple insert stmt and getting 'Any' as the errstr being returned for the statement..not even sure where to start debugging - i looked at DBDish BUILD and didn't see much there to try
05:38 moritz segomos: so, no error occured?
05:38 segomos doesn't appear to have occurred but the statement doesn't execute
05:39 moritz have you set RaiseError?
05:39 segomos yes
05:39 moritz segomos: can you show me the code?
05:39 segomos no error is caught and (try CATCH) and the $! variable is empty
05:39 moritz (which all indicates that no error actually happened)
05:39 segomos yea let me throw it up on a gist
05:40 segomos :q
05:40 * hugme hugs segomos, good vi(m) user!
05:43 segomos lol, sorry - https://gist.github.com/tony-o/5898608
05:44 segomos i have user/password/database set properly in the script where i can successfully prepare/execute SELECT statements
05:44 segomos and the db user has full privs
05:45 moritz but the entry isn't written?
05:46 segomos correct
05:46 moritz that's very weird
05:47 moritz because I know I've successfully inserted many rows with pretty much the same code
05:47 moritz maybe something broke recently :/
05:48 moritz segomos: if you set up the credentials correctly in t/25-mysql-common.t (in the DBIish repo), do the tests pass?
05:49 segomos moritz: i'll check it now
05:52 segomos moritz: yes 'All tests successful.'
05:52 abnorman joined #perl6
05:52 ecocode joined #perl6
05:52 segomos going to try 10-
06:05 moritz segomos: are you quite sure you're checking the right database and right host when checking whether the row was written?
06:06 mstefanko joined #perl6
06:06 moritz 'cause when the tests pass, DBIish shouldn't be *that* busted that it doesn't even report an error
06:07 segomos yea - i think i have a problem with the way panda installed the lib.  i'm getting kind of sleepy and fat fingering a bunch of stuff so i'm going to take a look in the morning but cloning your repo and running tests is passing and running the same tests against what's in my global @*INC is failing
06:11 segomos moritz: thanks for the leads
06:31 FROGGS joined #perl6
06:31 rs0_ is there a direct perl6 equivalent of while (<>)?
06:32 lizmat $file.lines as .lines is lazy
06:33 salv0 joined #perl6
06:33 rs0_ well, while(<>) reads from either stdin or from files given as script arguments
06:34 rs0_ i don't know if there's a similar shorthand in perl 6. some ancient web page i found claimed that for =<> is a direct equivalent, but that didn't compile
06:34 sorear $*ARGFILES is a magical filehandle with the same behavior
06:34 sorear you can do for $*ARGILES.lines { }
06:35 sorear just for lines() { } might also work
06:35 FROGGS it does
06:35 FROGGS morning btw
06:35 sorear yeah
06:35 sorear (the parens are not optional in this case)
06:36 sorear r: for lines() { .say }
06:36 camelia rakudo 567941: OUTPUT«Land der Berge, Land am Strome,␤Land der Äcker, Land der Dome,␤Land der Hämmer, zukunftsreich!␤Heimat bist du großer Söhne,␤Volk, begnadet für das Schöne,␤vielgerühmtes Österreich,␤vielgerühmtes Österreich!␤␤Heiß umfehdet, wild umstritten␤liegst dem Erdteil du inmi…
06:37 sorear ok, one more difference: lines() autochomps
06:37 rs0_ interesting stuff
06:39 sorear there was a = prefix operator in ancient versions of p6, but it was ripped out before I joined the project
06:39 rs0_ oh, something else i was wondering about was whether there is a perl6 equivalent of Java's @Override annotation, such that you get a compile-time error if a corresponding method cannot be found in the class hierarchy
06:39 sorear no
06:40 rs0_ i think i saw in the logs that someone was looking at adding that feature but i'm pretty sure he was doing it on spec
06:40 sorear would be relatively easy to add as a module though, if anyone's interested
06:40 sorear "on spec"?
06:40 rs0_ on spec, made, built, or done with hopes of but no assurance of payment or a sale; without commitment by a client or buyer: ad illustrations done on spec; luxury homes built on spec and sold before completion.
06:42 hypolin joined #perl6
06:42 hypolin joined #perl6
06:43 hypolin joined #perl6
06:44 hypolin joined #perl6
06:44 BenGoldberg r: $*ARGILES.say
06:44 camelia rakudo 567941: OUTPUT«Dynamic variable $*ARGILES not found␤  in method gist at src/gen/CORE.setting:10477␤  in method gist at src/gen/CORE.setting:913␤  in sub say at src/gen/CORE.setting:11365␤  in method say at src/gen/CORE.setting:910␤  in method say at src/gen/CORE.setting:909␤  in …
06:44 rs0_ r: $*ARGFILES.say
06:44 camelia rakudo 567941: OUTPUT«Too many positional parameters passed; got 2 but expected 1␤  in method print at src/gen/CORE.setting:911␤  in method print at src/gen/CORE.setting:11545␤  in method print at src/gen/CORE.setting:11543␤  in method say at src/gen/CORE.setting:11557␤  in method say a…
06:45 sorear r: say ~$*ARGFILES
06:45 camelia rakudo 567941: OUTPUT«(Any)␤»
06:45 sorear r: say $*ARGFILES.gist
06:45 camelia rakudo 567941: OUTPUT«use of uninitialized value of type Any in string context  in block  at /tmp/lc8R9ZnYWQ:1␤␤IO::Handle<>(closed)␤»
06:46 BenGoldberg r: .say for $*ARGFILES
06:46 camelia rakudo 567941: OUTPUT«Too many positional parameters passed; got 2 but expected 1␤  in method print at src/gen/CORE.setting:911␤  in method print at src/gen/CORE.setting:11545␤  in method print at src/gen/CORE.setting:11543␤  in method say at src/gen/CORE.setting:11557␤  in method say a…
06:46 BenGoldberg r: .print for $*ARGFILES
06:46 camelia rakudo 567941:  ( no output )
06:46 sorear probably because of the sandbox
06:46 sorear also you should never pass a filehandle directly to print or say
06:47 sorear the method might get confused and think you wanted to print *to* the filehandle
06:47 sorear because someone thought it would be cute ~sigh~
06:47 FROGGS r: use Test; is (-4..-1 X+> 1..3), (-2,-1,-1,-2,-1 xx 8), ""
06:47 camelia rakudo 567941: OUTPUT«not ok 1 - ␤#      got: '-2 -1 0 -1 0 0 -1 0 0 0 0 0'␤# expected: '-2 -1 -1 -2 -1 -1 -1 -1 -1 -1 -1 -1'␤»
06:48 FROGGS locally: #      got: '-4 -4 -4 -3 -3 -3 -2 -2 -2 -1 -1 -1'
06:48 FROGGS hmm
06:49 hypolin joined #perl6
06:49 BenGoldberg r: $*OUT.say('', $*ARGFILES, '')
06:49 camelia rakudo 567941: OUTPUT«use of uninitialized value of type Any in string context  in block  at /tmp/v_QvaacYs7:1␤␤IO::Handle<>(closed)␤»
06:49 BenGoldberg r: $*OUT.say('', ~$*ARGFILES, '')
06:49 camelia rakudo 567941: OUTPUT«(Any)␤»
06:50 sorear someday there's going to be a Perl6::BeLike::SOREAR module that permanently enables fatal, removes sink context and failures, hides the non-parametric multis for say, print, sort, makes for loops actually for loops, and anything else I think of >.>
06:53 * FROGGS .oO( use Sanity; )
06:54 rs0_ is this up to date? http://perlcabal.org/syn/
06:55 FROGGS rs0_: I think so, yes
06:55 FROGGS these pages should be autogenerated every hour
06:55 FROGGS rs0_: ahh, scroll to the bottom and read the last line
06:56 BenGoldberg How is perl6's sink context different from !defined(wantarray()) in perl5 ?
06:57 rs0_ ah, i wasn't familiar with the mu repo
06:57 rs0_ wasn't hard to find though
06:57 sorear FROGGS: i'm not mlehmann
06:58 FROGGS r: my $x = 1, 2; say $x
06:58 sorear i do not have the hubris to name a pragma common::sense.  sorearish::sense maybe.
06:58 camelia rakudo 567941: OUTPUT«WARNINGS:␤Useless use of "," in expression "my $x = 1, 2" in sink context (line 1)␤1␤»
06:58 sorear std: my $x = 1, 2; say $x
06:59 camelia std d4cc5ab: OUTPUT«ok 00:00 44m␤»
06:59 sorear std: my $x = 1, $y = 2; say $x
06:59 camelia std d4cc5ab: OUTPUT«[31m===[0mSORRY![31m===[0m�Variable $y is not predeclared (declarators are tighter than comma, so maybe your 'my' signature needs parens?) at /tmp/wpkZubHoB0 line 1:�------> [32mmy $x = 1, [33m�[31m$y = 2; say $x[0m�Check failed�FAILED 00:00 44m�»
06:59 sorear r: my $x = 1, $y = 2; say $x
06:59 camelia rakudo 567941: OUTPUT«[31m===[0mSORRY![31m===[0mâ�¤Variable '$y' is not declaredâ�¤at /tmp/hbuMYayQo1:1â�¤------> [32mmy $x = 1, $y[33mâ��[31m = 2; say $x[0mâ�¤    expecting any of:â�¤        postfixâ�¤Â»
06:59 FROGGS BenGoldberg: it is not comparable much to P5 due to precedence
06:59 FROGGS or the number of things of the lhs...
07:01 BenGoldberg r: my ($x, $y) = (1, 2); $y.say
07:01 camelia rakudo 567941: OUTPUT«2␤»
07:03 BenGoldberg goodnight
07:07 FROGGS gnight
07:10 sqirrel joined #perl6
07:10 bbkr joined #perl6
07:10 bbkr left #perl6
07:16 lawrmcfa joined #perl6
07:18 xinming joined #perl6
07:22 domidumont joined #perl6
07:23 hypolin joined #perl6
07:27 xinming joined #perl6
07:40 lizmat good morning #perl6!
07:41 lizmat r: my Int $a=1; $a=Nil  # should this bomb?  I think not?
07:41 camelia rakudo 567941: OUTPUT«Type check failed in assignment to '$a'; expected 'Int' but got 'Nil'␤  in block  at /tmp/WCWcMsBHOY:1␤␤»
07:47 xinming joined #perl6
07:49 domidumont joined #perl6
07:53 kaleem joined #perl6
08:01 moritz no; known NYI
08:04 lizmat something in an .ACCEPTS that needs to be fixed?
08:05 JimmyZ nope, I think. It's compile time, not runtime
08:06 xinming joined #perl6
08:06 moritz assignment of $scalar = Nil should reset $scalar to its default value
08:06 moritz but that default value isn't available at run time anymore
08:07 lizmat but default values are also NYI at the moment, right?
08:08 moritz no
08:08 lizmat so the default value of a scalar *is* Nil at the moment, no?
08:08 moritz no
08:08 moritz r: my $x; say $x
08:08 camelia rakudo 567941: OUTPUT«(Any)␤»
08:08 moritz the default value is Any
08:08 moritz (here)
08:08 moritz r: my Int $x; say $x; # the default values is Int
08:08 camelia rakudo 567941: OUTPUT«(Int)␤»
08:08 lizmat ah, in that ballpark: this seems odd
08:09 lizmat r: use Test; my Int @a=1,Nil,3; say @a.of; is( @a.of,'(Int)', "que? {@a.of}" )  # the test fails ?
08:09 camelia rakudo 567941: OUTPUT«(Int)␤use of uninitialized value of type Int in string context  in block  at /tmp/Kdx3Cc5ZAT:1␤␤use of uninitialized value of type Int in string context  in sub is at lib/Test.pm:81␤␤not ok 1 - que? ␤use of uninitialized value of type Int in string context  in sub …
08:09 lizmat because @a.of inside the test apparently is undef ?
08:09 lizmat while outside it *is?
08:10 crab2313 joined #perl6
08:10 nwc10 sorear: not totally. No-one seemed to realise that the question was "does gather/take on Rakudo on the JVM cause it to pass spectests that Rakudo on Parrot doesn't pass? If so, then it's false to assume that Rakudo on JVM can't pass more spectests than Rakudo on Parrot"
08:11 lizmat r: sub a (@a is copy) { say @a.of }; my Int @a=1; say @a.of; a(@a) # looks like "is_copy" loses type information, rakudobug?
08:11 camelia rakudo 567941: OUTPUT«(Int)␤(Mu)␤»
08:12 lizmat r: my Int @a; my @b=@a.clone; say @a.of; say @b.of  # looks like .clone has the same problem, or *is* the same problem
08:12 camelia rakudo 567941: OUTPUT«(Int)␤(Mu)␤»
08:15 moritz (fwiw there are known problems with gather/take on parakudo)
08:15 domidumont joined #perl6
08:26 lizmat r: my %h; %h<a>=Nil; say %h.exists("a") # according to S02:2286, one could argue that assigning Nil to a hash element, would be deleting it
08:26 camelia rakudo 567941: OUTPUT«True␤»
08:27 lizmat TimToady: would you agree with that interpretation, and is this an NYI/rakudobug?  or does this work as intended?
08:28 * moritz wonders how that's supposed to work under the hood
08:29 * lizmat as well, but that doesn't change the question  :-)
08:31 lizmat actually, this could only work at compile time, as you cannot "keep" the value Nil in a variable, or can you?
08:32 moritz you can return Nil from a function
08:32 moritz so not amendable to static analsys
08:32 moritz *i
08:35 daxim joined #perl6
08:38 Celelibi joined #perl6
08:39 lizmat grrr, you're right, moritz++
08:40 dakkar joined #perl6
08:41 dalek roast: f962b6d | (Elizabeth Mattijsen)++ | S02-types/undefined-types.t:
08:41 dalek roast: Added some more Nil related tests, mostly todo and skup atm
08:41 dalek roast: review: https://github.com/perl6/roast/commit/f962b6dfda
08:41 lizmat *skip  :-)
08:51 domidumont joined #perl6
08:53 lelf``` joined #perl6
08:54 domidumont joined #perl6
08:56 masak good antenoon, me hearties.
08:56 raiph joined #perl6
08:58 fhelmberger joined #perl6
08:58 hypolin joined #perl6
08:58 * masak .oO( you are all less than three to me! )
08:58 tadzik so, I've been given 18446744073709551616 IPv6 addresses
08:59 masak ooh, 2**64
08:59 tadzik that's 2^64, so, if I count correctly, it's the current number of IPv4 addresses. Squared.
08:59 tadzik will be useful once I officially open my private earth
08:59 masak it will happen, you know it.
09:00 tadzik yep
09:00 DrEeevil tadzik: so you can use a new IP for every http request ;)
09:00 tadzik DrEeevil: you live up to your name :>
09:00 * moritz has a /48 net
09:00 moritz r: say 2**(128 - 48)
09:00 camelia rakudo 567941: OUTPUT«1208925819614629174706176␤»
09:00 DrEeevil tadzik: hey, fully dynamic DNS!
09:01 moritz and now I have separate IPv6 addresses for sites that I serve as virtual hosts over IPv4
09:01 tadzik I have a serious trouble imagining that it'll ever be useful
09:02 moritz so I use less than a dozen of those addresses :-)
09:02 tadzik ports are obsolete
09:03 moritz DNS doesn't resolve ports :-)
09:03 tadzik yeah :) How fun that'll be. ssh.tadzik.foo, http.tadzik.foo
09:04 moritz tadzik: at least you can now route packets to your army of nanorobots!
09:08 tadzik oh yeah!
09:08 moritz and when they attack, I'll counter with a DELETE on the RIPE database :-)
09:10 Celelibi joined #perl6
09:13 dayangkun joined #perl6
09:16 dalek roast: 34ef6de | (Elizabeth Mattijsen)++ | S02-types/undefined-types.t:
09:16 dalek roast: Removed some bogus tests, added some more Nil related tests
09:16 dalek roast: review: https://github.com/perl6/roast/commit/34ef6deecd
09:17 jnthn morning, #perl6
09:17 lizmat morning jnthn!
09:23 lizmat r: my Int $a is default(1); say $a  # this *should* say "a", right?
09:23 camelia rakudo 567941: OUTPUT«(Int)␤»
09:23 lizmat "1" I mean  :-)
09:24 lizmat r: my Int $a is default(42); say $a  # this *should* say 42, right?
09:24 camelia rakudo 567941: OUTPUT«(Int)␤»
09:24 moritz is 'is default' even specced?
09:24 lizmat S02:653
09:26 jnthn And is it meant to bind or assign?
09:26 jnthn Assign I guess...
09:26 lizmat "Any container's default may be overridden by the C<is default(VALUE)> trait."
09:27 jnthn Is that connected to Nil assignment?
09:27 lizmat "If the container's contents are deleted, the value is notionally set to provided default value; this value may or may not be physically represented in memory, depending on the implemention of the container.
09:27 lizmat yes
09:27 jnthn ugh
09:27 jnthn Yeah, I keep ignoring implementing that on purpose.
09:27 jnthn Hoping it changes.
09:27 jnthn Sometimes this approach works. :)
09:27 lizmat it doesn't work for native types
09:28 jnthn Right, it can't. :)
09:28 jnthn It just means every single variable assignment needs to check this special case...
09:28 lizmat well, actually, it is specced to work for native types, as long as the default value can be represented
09:28 jnthn I guess it can be a type check failover...
09:28 lizmat jnthn: why would that be with every assignment?
09:29 lizmat I mean, we would need something special for Nil assigment
09:29 jnthn OK, every assignment we can't statically analyze. Which is the common case.
09:29 jnthn Yes, so you need to check, every assignment, if the thing on the RHS is a Nil.
09:29 lizmat ah, yes, but that hasn't got anything to do with "is_default"
09:29 jnthn As I said, that could happen because the assignment typecheck fails and then before throwing we say "oh, is it because it's Nil"?
09:30 jnthn Well, it has 'cus "is default" is where the default value comes from when Nil is assigned...
09:30 lizmat yup, and *then* check for any is default after we determine it was Nil
09:31 jnthn Right, it's the Nil check we'd need. But since it can be a type check fallback, it ain't so bad.
09:31 lizmat indeed...
09:31 * jnthn wakes up a bit more and realizes that isn't the bit of type system cheating that bothers him.
09:32 lizmat what is?
09:32 jnthn The thing I absolutely do NOT want to allow is sub foo() returns Int { } to hand back a Failure. If we do that, we're utterly screwed.
09:32 lizmat wouldn't that work in a similar way then?
09:33 jnthn Well, the only way it can work is if we immediately throw the exception in the failure before it leaks out.
09:34 jnthn The problem is
09:34 * moritz is for abolishing Failure anyway
09:34 jnthn foo(something-that-returns-Int())
09:34 moritz is dispatched to the foo(Int) variant, which unboxes
09:34 jnthn So, the optimizer sees Int, picks the multi-candidate for foo, says "oh, I can inline it and I can completely skip type checks too"
09:34 moritz boom
09:34 jnthn Then somebody gets upset because they get the "Cannot unbox Failure as a native int" they deserve.
09:35 jnthn Returning a Failure is fine...if you don't promise to return an Int.
09:35 masak right.
09:35 lizmat I guess the alternative would be to not let the optimizer pick multi-candidate at cimpile time  :-(
09:36 jnthn Well, if we do that, we may as well forget Perl 6 ever being fast.
09:36 nwc10 jnthn: is there a test yet for foo(something-that-returns-Int()) ?
09:36 jnthn nwc10: I'd hope so :)
09:36 nwc10 ie, soething that tries to enforce sanity
09:36 lizmat will look, otherwise I'll add some
09:36 jnthn nwc10: Remember that infix:<+> (as in, addition) is an example :)
09:36 jnthn nwc10: Since all operators are function dispatches too.
09:38 jnthn r: sub foo() returns Int { fail 'oops' }; foo()
09:38 camelia rakudo 567941: OUTPUT«oops␤  in method sink at src/gen/CORE.setting:10485␤  in method BUILDALL at src/gen/CORE.setting:820␤  in method bless at src/gen/CORE.setting:761␤  in method new at src/gen/CORE.setting:746␤  in method new at src/gen/CORE.setting:744␤  in sub foo at /tmp/x7fHuBrsb…
09:38 jnthn r: sub foo() returns Int { fail 'oops' }; my $x := foo(); say 'ok';
09:39 camelia rakudo 567941: OUTPUT«oops␤  in method sink at src/gen/CORE.setting:10485␤  in method BUILDALL at src/gen/CORE.setting:820␤  in method bless at src/gen/CORE.setting:761␤  in method new at src/gen/CORE.setting:746␤  in method new at src/gen/CORE.setting:744␤  in sub foo at /tmp/NXxeM295F…
09:39 jnthn Note it fails inside of sub foo in this case.
09:39 jnthn r: sub foo() { fail 'oops' }; my $x := foo(); say 'ok';
09:39 camelia rakudo 567941: OUTPUT«ok␤»
09:39 jnthn And it's fine with the type constraint gone.
09:41 nwc10 OK, specifically, is there a test that the error doesn't happen in the wrong place?
09:46 lizmat closest appropriate place I could find was t/spec/S06-signature/types.t, and it doesn't have any tests like that
09:53 lizmat so I'm looking at making my class X::TypeCheck::Assignment resume on assignment with Nil
09:54 lizmat so, would making a method "resume" or "resumable" in there do the trick?
09:54 jnthn No
09:54 lizmat should I look at something else to do ?  :-)
09:54 jnthn That exception is thrown somewhere internals-y and ain't gonna be resumable.
09:55 jnthn But you can still probably fix it
09:55 jnthn I think the place to look is inside the container spec for Rakudo scalars
09:55 lizmat any particular files ?
09:55 jnthn After the type check fails, but before throwing an exception...
09:56 jnthn src/vm/parrot/guts/container.c or so, and there's a similar container-related .java for JVM too
09:56 * masak .oO( "look inside the container spec" sounds like a kind of dumpster diving )
09:56 lizmat will see if I can make something of that
09:57 cognominal joined #perl6
10:01 lizmat so where is ->type_check defined?
10:02 jnthn Somewhere over in the nqp repo, iirc
10:02 jnthn Probably in sixmodelobject.[ch]
10:02 lizmat ok
10:02 jnthn That never throws, it only returns true/false
10:02 jnthn So it doesn't need changing; the change is to react if it's false.
10:03 lizmat ah, so not returning false on Nil as the RHS, is not the way ?
10:04 jnthn No, type_check should never lie. It's the low level thing.
10:04 jnthn It's the surrounding code that should cheat.
10:04 jnthn "Oh, you gave back false? Well, before throwing an exception, let's see if the RHS is Nil..."
10:04 lizmat jup
10:04 jnthn It's not a general type checking thing, it's a special case in assignment.
10:06 lizmat I guess "is default" would need to be known at this level then as well
10:06 lizmat so it can change the value to be asisgned
10:06 lizmat assigned
10:06 jnthn Yeah
10:07 jnthn That probably wants to live in container descriptor
10:07 * lizmat is feeling completely out of her league now  :-)
10:08 jnthn src/Perl6/Metamodel/ContainerDescriptor.nqp iirc
10:08 jnthn It's not a complicated object :)
10:08 lizmat says you  :-)
10:08 jnthn I suspect the code you're looking at already accesses it, fwiw :)
10:10 lizmat trying to wrap my head around it
10:11 jnthn If it helps to know, a Scalar basically has a $!value for the value in the scalar, and a $!descriptor which points to a ContainerDescriptor containing the type, rw-ness, etc.
10:11 jnthn So it's really the "static aspects" of a scalar.
10:11 lizmat gotcha
10:30 lizmat jnthn: my progress so far: https://gist.github.com/lizmat/5899824
10:30 lizmat lines 41/42 in the gist are the pb for me now
10:31 jnthn lizmat: good start
10:31 jnthn value = cont->default;
10:31 jnthn desc->default, no? :)
10:31 jnthn See types.[ch] for how to cope with Nil
10:31 lizmat yup
10:31 lizmat ok, thanks
10:31 jnthn You may have to update container.h also to add ->default.
10:32 lizmat ok
10:32 jnthn We rely on P6opaque laying stuff out like a C compiler would. ;)
10:32 jnthn At least, in the cases when we are.
10:32 jnthn *care
10:36 lizmat can I have a struct element with name "default" in C?
10:36 tadzik I don't think so
10:36 jnthn No, it's a keyword
10:36 jnthn _default
10:36 lizmat maybe better : the_defauilt ?
10:37 lizmat the_default ?
10:37 jnthn or that :)
10:37 tadzik I think the standard says that underscored things may be reserved in the future
10:37 tadzik see also: _Bool, or whatsitsname
10:37 lizmat I guess then I would have to rename the attribute as well, right ?
10:37 jnthn No
10:37 jnthn Names don't matter at all in C
10:38 jnthn It's all compiled down to offsets in memory.
10:38 lizmat ok, but it would have to be a PMC *, right ?
10:38 lizmat like value
10:38 jnthn Yes
10:38 jnthn PMC *the_default;
10:38 lizmat :-)
10:38 jnthn Note that you'll need to set it to something too :)
10:39 jnthn World.pm, see install_lexical_container or so
10:39 lizmat cool
10:39 jnthn Note that the real "default" handling will need some work. But for now, the Any or whatever can go in there
10:40 jnthn So my Int $x; ... $x = Nil; sets it to Int at least.
10:40 pmurias jnthn: it's not possible to serialize nqp subs?
10:40 jnthn pmurias: Hmm.
10:40 jnthn pmurias: There are some things that get code objects in NQP and some that don't...
10:41 lizmat if nqp::existskey(%cont_info, 'default_value') {  # seems some support for default values is there already
10:41 jnthn I forget about how a Sub will be. I guess multi subs must get 'em so there's a place to hang the signature...
10:41 jnthn lizmat: Yes, that's the Mu/Any distinction.
10:41 jnthn lizmat: I do sometimes plan ahead a little :)
10:41 jnthn lizmat: It's probably already computing the correct thing to stick into the $!default you just added. :)
10:42 jnthn lizmat: At least, in the absence of an "is default" trait.
10:42 lizmat except it's called "default_value" here
10:42 jnthn Well, %cont_info is a compiler-internals hash.
10:42 jnthn It's not related to anything in the outside world.
10:42 jnthn It currently sets what ->value of the Scalar contains.
10:43 jnthn Thus the name.
10:43 pmurias jnthn: I'm fixing BEGIN for nqp, and I'm having problems with serializing &say, etc.
10:43 jnthn pmurias: I'm pretty sure BEGIN has no clue about its outer lexical scope...
10:43 jnthn Oh, you're trying to fix that...
10:43 jnthn :)
10:43 jnthn Um. Hmm. :)
10:43 pmurias yes
10:43 jnthn Yeah, some things I put off for a reason :D
10:44 jnthn I think the answer may be to look at giving subs code objects always, not just when they're multi.
10:44 jnthn See Rakudo's compile_in_context, though, if you didn't already.
10:46 pmurias I'm stealing code from compile_in_context, will look at it more ;)
11:00 pmurias jnthn: to create a code object, I need the orginal QAST (so they can be fixed up), so by the time I get the none-sixmodel code ref in the BEGIN handling code it's too late to do anything?
11:00 xenoterracide joined #perl6
11:00 jnthn pmurias: No, the idea was to install code objects in the first place
11:01 jnthn Not create them on demand.
11:01 jnthn That is, update routine_def
11:02 lizmat jnthn: not quite sure how to check for Nil in the value yet
11:02 lizmat container.c:46:59: warning: incompatible integer to pointer conversion passing
11:02 lizmat 'int' to parameter of type 'PMC *' (aka 'struct PMC *');
11:02 lizmat ...( STABLE(value)->type_check(interp, value, Rakudo_types_nil_get() ) ) {
11:02 jnthn STABLE(value)->WHAT == Rakduo_types_nil_get()
11:03 lizmat container.c:46:38: warning: comparison between pointer and integer ('PMC *'
11:03 lizmat (aka 'struct PMC *') and 'int')
11:03 lizmat if ( STABLE(value)->WHAT == Rakudo_types_nil_get() )
11:03 jnthn Though not sure why the warning
11:04 jnthn Um...how is Rakudo_types_nil_get() defined?
11:04 lizmat hehe
11:04 lizmat container.c:46:41: error: implicit declaration of function
11:04 lizmat 'Rakudo_types_nil_get' is invalid in C99
11:04 lizmat [-Werror,-Wimplicit-function-declaration]
11:04 jnthn OK, does it exist in types.h/types.c? :)
11:04 lizmat yeah, but types.h is not included, I guess that's the pb
11:05 jnthn ah
11:05 jnthn yeah, that'd do it
11:05 lizmat well, it compiles now
11:05 jnthn ship it!
11:06 lizmat first do some testing, who knows what I broke with this  :-)
11:13 lizmat Routine declaration requires a signature at line 2892, near "(:$of, :$r   grrr
11:14 lizmat found it, tpyo
11:15 dalek specs: 9634574 | (Elizabeth Mattijsen)++ | S99-glossary.pod:
11:15 dalek specs: Typo
11:15 dalek specs: review: https://github.com/perl6/specs/commit/9634574876
11:20 masak hm. "A junction that is or-associative." -- it's not much to do with associativity, I think.
11:20 atroxaper left #perl6
11:21 lizmat jnthn: src/Perl/Actions.nqp: 210-212 all seem to use the same value: this seems wrong
11:21 lizmat masak: patches welcome?
11:21 masak think of "precedence" as the strength of the tightness by which the operator binds. think of "associativity" as the direction it wants to bind.
11:21 masak as far as I know, both "and" and "or" (in all their incarnations) are left-associative, because that's what people expect.
11:22 mstefanko joined #perl6
11:22 masak lizmat: yeah, fixing.
11:25 jnthn lizmat: Why?
11:25 jnthn If you say
11:25 jnthn my Int $x;
11:25 jnthn Then $x defaults to Int, you can only assign an Int, and you can only bind an Int.
11:25 lizmat but I would expect the default value to be set there already if one was specified
11:26 jnthn From the default trait?
11:26 jnthn No...we won't implement it that way
11:26 jnthn We'll set it to that as a default, then apply the traits later and it can fix it up.
11:26 lizmat r: my Int $x is default(4); # from this
11:26 camelia rakudo 567941:  ( no output )
11:26 jnthn Right, it'll create it as Int for all of them.
11:27 lizmat r: my Int $x is default(4); say $x # expect 4
11:27 jnthn And then the trait_mod can tweak that initial setup.
11:27 camelia rakudo 567941: OUTPUT«(Int)␤»
11:27 dalek specs: e0325a6 | masak++ | S99-glossary.pod:
11:27 dalek specs: [S99] associativity's got nothing to do with it :)
11:27 dalek specs: review: https://github.com/perl6/specs/commit/e0325a61a8
11:27 dalek specs: 793baba | masak++ | S99-glossary.pod:
11:27 dalek specs: [S99] actually explain API, not just expand it
11:27 dalek specs: review: https://github.com/perl6/specs/commit/793babac4b
11:27 jnthn Just like parameters are ro by default, but is copy or is rw tweaks them later.
11:28 jnthn Otherwise you end up special casing various traits in Actions.pm. I did that 3 years ago. It hurt.
11:28 lizmat ok, so the actual assignment of the default value for that specific container, needs to happen later?
11:28 jnthn Yeah
11:28 jnthn When we have container traits I suspect it'll be something like
11:29 jnthn multi sub trait_mod:<is>(Variable:D $v, :$default!) {
11:29 jnthn ...tweaking here...
11:29 jnthn }
11:29 masak moritz: 'Some other objects that "Field".' -- this sentence no verb? did you mean to write a more complete sentence? :)
11:30 masak moritz: also, some other objects that 'Property' or 'Slot' or 'Member'.
11:31 moritz I meant to write "languages", and I meant to write a verb, yes :-)
11:31 moritz masak++
11:34 dalek specs: 1c27694 | moritz++ | S99-glossary.pod:
11:34 dalek specs: [S99] fix "attribute" explanation, and exand it. masak++
11:34 dalek specs: review: https://github.com/perl6/specs/commit/1c276945da
11:35 * jnthn hands moritz++ a p :)
11:35 pecastro_ joined #perl6
11:36 masak "Warnocked -- This lemma will never be explained." -- ok, I see the attempt at humor here. it fails the usefulness test, though.
11:38 jnthn .oO( I'd respond to the feedback but it's funnier not to :P )
11:39 masak :P
11:43 masak "I know, let's create a resource that will explain *words* to people!" ...later... "Oh, this is a chance to make hilarious in-jokes, at the expense of practically all explanatory power!" FAIL
11:44 masak rule #19: if you're laughing and the student is looking puzzled, what you're doing is probably not teaching. :)
11:50 * lizmat pleads guilty
11:51 masak there should be a source docuement we could link to with Warnock's original email, or something.
11:51 lizmat now running spectest with Nil softfail patch
11:52 masak heh, when I started out with Perl 6, I thought Warnock was this really productive developer, that just applied patches as soon as someone asked something :) because the then-weekly summaries kept saying "Warnock applies".
11:52 lizmat for ~20 mins&
12:19 dayangkun joined #perl6
12:20 FROGGS can somebody explain what that means? https://github.com/libtom/libtomm​ath/blob/master/bn_mp_rshd.c#L28
12:22 tadzik well, if you shift by more digits than a has, it zeroes a, which sounds like a fair deal
12:22 tadzik unless I misunderstand a->used
12:22 FROGGS I have no idea what ->used is
12:22 moritz a->used is indeed the number of digits used
12:22 FROGGS hmmm
12:22 FROGGS do I need to compute that?
12:23 moritz where "digit" is usually 30 bits on 32 bit platforms, and ~50 on 64 bit platforms
12:23 moritz no
12:23 FROGGS because mp_rshd( 50000, 1 ) results in 0
12:23 moritz it does that for you
12:23 FROGGS hmmm
12:24 moritz well, maybe the problem is really that you expect bn_mp_rshd to shift by b bits
12:24 moritz and it shifts by b digits
12:24 moritz orelse the code is buggy
12:24 FROGGS ohh
12:24 moritz what does the documentation say about mp_rshd?
12:24 FROGGS shift right a certain amount of digits
12:24 FROGGS -.-
12:26 FROGGS okay, back to the previous plan
12:26 moritz there's probably a mp_rsh or so too
12:26 moritz FROGGS: what are you trying to do?
12:26 FROGGS rn: say -50000 +> 8 # fix this
12:26 camelia niecza v24-86-g39ab531: OUTPUT«-196␤»
12:26 camelia ..rakudo 567941: OUTPUT«-195␤»
12:27 moritz well, libtommath implements sign + mantissa, not 2's complement
12:27 moritz which is why I wrote some buggy translation code between the two
12:27 moritz which you likely have to fix
12:28 FROGGS ahh, I was hoping I just need to *use* it :/
12:28 sqirrel joined #perl6
12:29 moritz see function grow_and_negate in src/vm/parrot/ops/nqp_bigint.ops
12:30 FROGGS yes, I see this one
12:30 moritz maybe nqp_bigint_shr and nqp_bigint_shl just need to use it
12:30 moritz (before and after the shifting, that is)
12:31 FROGGS ahh, I only did it before
12:32 moritz that would be unwise, I think :-)
12:32 FROGGS moritz: that is what currently compiles: https://gist.github.com/FR​OGGS/836912b4855d6d9f05e1
12:34 * colomon is trying to remember why he was converting between 1s and 2s complement relatively recently...
12:35 ajr joined #perl6
12:35 xinming joined #perl6
12:35 moritz because you could!
12:37 colomon nope, because I had to learn what I was doing to do it!
12:37 * colomon remembers talking with TimToady about it...
12:41 pmurias jnthn: how can I check if something is a nqp integer or nqp string?
12:41 colomon noooooo!  new github interface, don't know how to do anything!
12:41 moritz colomon: msb / lsb probably
12:41 moritz at least that's what http://tina.perlgeek.de/perl6/sear​ch/?nick=TimToady&amp;q=complement suggests
12:41 jnthn pmurias: nqp::isint, nqp::isstr
12:42 jnthn (it's portable; looks for P6int/Pstr reprs on JVM/MoarVM)
12:42 jnthn uh, actually maybe it goes on unboxability
12:42 jnthn forget
12:42 moritz (woah, searching by nick name is case sensitive; there's a reason that search feature is in beta)
12:43 colomon moritz++
12:49 dmol joined #perl6
12:49 pmurias how should I build both nqp-jvm and nqp-parrot using a single repo?
12:50 xinming joined #perl6
12:51 jnthn pmurias: If you want to keep both built, with difficulty
12:51 jnthn pmurias: I usually have one at a time and keep an install of the other.
12:51 jnthn pmurias: You could never work in your actual nqp checkout, but instead make a pair of local clones and shuffle commits between those
12:52 jnthn Since it's all local you can do as you wish with the commits before pushing them on upwards.
12:52 jnthn Though maybe you want a bear clone for that
12:52 jnthn uh, bare
12:54 konundra joined #perl6
13:04 lizmat going down for full backup and restore on new MBP
13:04 lizmat back in a few hours&
13:05 [Coke] /me yawns
13:07 timotimo so, if i were to "use fatal", would i get a 50% speed boost in a properly optimized perl6 implementation?
13:10 FROGGS moritz: https://gist.github.com/FR​OGGS/836912b4855d6d9f05e1
13:10 pmurias jnthn: what does nqp::getstaticcode do?
13:10 FROGGS moritz: so I called grow_and_negate again on the result of mp_div_2d...
13:10 pmurias jnthn: it's failing when passed a code object (after I wrapped all the subs in ones)
13:11 FROGGS moritz: is it what you meant?
13:13 moritz FROGGS: does it work? :-)
13:13 PacoAir joined #perl6
13:13 FROGGS no, see the test.out in the gist
13:13 jnthn pmurias: It needs a coderef
13:13 moritz I think it should be grow_and_negate both before and after the bit shit, only if it's negative
13:14 moritz and no two_complement_bitop (that's meant for two bigints)
13:14 FROGGS okay
13:14 FROGGS moritz: thanks
13:15 jnthn pmurias: It gives back the original, static code ref, as opposed to a particular closure clone
13:18 birdwindupbird joined #perl6
13:18 fridim__ joined #perl6
13:23 xilo joined #perl6
13:26 Guest1337 joined #perl6
13:30 JimmyZ left #perl6
13:31 JimmyZ joined #perl6
13:38 [Coke] jnthn: any new interesting errors on the gist? :)
13:40 jnthn [Coke]: "nextsame/nextwith/callwith is not in the dynamic scope of a dispatcher" is a bit weird
13:40 jnthn [Coke]: I had that, but thought I fixed it
13:40 jnthn In nqp 2cb852a
13:42 [Coke] hurm. it is possible that when I ran it manually, I didn't update nqp.
13:42 jnthn ah
13:42 jnthn That may 'splain it
13:43 [Coke] I'll post a new one after today's run.
13:43 kingbeast joined #perl6
13:43 * jnthn wonders if we'll clear 90% today :)
13:45 [Coke] r: say 25717*.9-23052
13:45 camelia rakudo 567941: OUTPUT«93.3␤»
13:45 [Coke] that's what we needed after about 2pm eastern.
13:46 [Coke] if not, it'll be close - if those nextsame things are fixed, that's another 44..
13:47 jnthn They're not all fixed...
13:47 jnthn oh, you didn't have nqp::attrinited fix also though, which got us default.t and probably some other passes.
13:47 jnthn So we may just scrape past :)
13:48 jnthn If we do, I'll drink a nice beer and write a blog post update :)
13:48 gfldex blog++
13:48 masak post++
13:49 colomon jnthn++
13:50 jnthn beer++
13:50 diakopter karma++
13:51 FROGGS \o/
13:53 * [Coke] -> meetings.
13:58 masak meetings++ # oh wait
13:59 kaare_ joined #perl6
13:59 colomon meetings--
14:02 logie joined #perl6
14:03 dayangkun joined #perl6
14:11 domidumont joined #perl6
14:24 rafl joined #perl6
14:26 * [Coke] returns, unscathed.
14:30 skids joined #perl6
14:31 pmurias jnthn: what's a code object creating equivalent of takeclosure?
14:33 jnthn pmurias: I think in Rakudo we just call .clone on the code object
14:36 crab2313 joined #perl6
14:36 pmurias plus p6capturelex which seems to just extract $!do
14:36 jnthn yeah
14:39 BenGoldberg joined #perl6
14:39 pmurias [Coke]: have you started working on the opcodes docs?
14:40 * pmurias would like to add the little bits of info about strange ops he gets from jnthn somewhere
14:40 [Coke] pmurias: no. was derailed.
14:40 geekosaur joined #perl6
14:40 [Coke] pmurias: start throwing them in a gist or something?
14:42 TimToady sorear: I would consider 'print $handle' printing to handle to be a plain old bug
14:43 jnthn r: print $*IN
14:43 camelia rakudo 567941: OUTPUT«-»
14:43 jnthn r: print $*OUT
14:43 camelia rakudo 567941: OUTPUT«-»
14:43 jnthn Hm :)
14:44 jnthn Didn't quite expect they'd stringify that way. But ok :)
14:44 TimToady hmm, I got Nil in the REPL
14:44 jnthn say $*IN
14:44 jnthn r: say $*IN
14:44 camelia rakudo 567941: OUTPUT«IO::Handle<->(opened, at line 0 / octet 0)␤»
14:44 TimToady that wone works okay
14:44 TimToady s/w//
14:44 jnthn r: say $*IN.Str
14:44 camelia rakudo 567941: OUTPUT«-␤»
14:45 jnthn Yeah, it's calling print and producing the Str output. So seems to do the right thing in terms of print.
14:45 TimToady in the REPL, when I say print $*OUT;, I get a -> prompt
14:45 jnthn Maybe IO::Handle.Str wants to look different...
14:45 jnthn Sure, it's the - and then no newline. :)
14:45 TimToady ah
14:46 * TimToady better drink the rest of the pot of coffee
14:46 jnthn ;)
14:47 TimToady so anyway, no bug of the sort sorear++ seemed to think was there
14:47 jnthn .oO( phew :) )
14:47 FROGGS moritz: negative values are still borken: https://gist.github.com/FR​OGGS/836912b4855d6d9f05e1
14:48 fgomez joined #perl6
14:49 FROGGS (and I have no clue what I am doing)
14:54 moritz + grow_and_negate(a, (&b)->used, &c);
14:54 moritz + mp_div_2d(&c, $3, &d, NULL);
14:54 moritz + grow_and_negate(&d, (&b)->used, e);
14:54 moritz it looks like the last line has no effect at all
14:55 TimToady assigning Nil to a hash element sets the element to the default for the array, which does not delete it unless it happens to be some kind of KeyHash
14:55 FROGGS hmmm, why?
14:55 TimToady s/array/hash/
14:55 moritz $3 is a PMC, and the return value
14:55 moritz so the last line doens't touch the return value at all
14:55 FROGGS I thought $3 is the INT
14:56 moritz erm, wait
14:56 arnsholt joined #perl6
14:56 FROGGS mp_div_a( 32, 2, $x ) is $x = 32 +> 2
14:56 arnsholt o/
14:56 moritz erm right
14:56 FROGGS at least that is what I think
14:56 jnthn arnsholt! \o/
14:56 FROGGS hi arnsholt
14:56 FROGGS long time no read
14:57 * TimToady thinks that IPv6 addresses will also be promoted to the level of the incompetence, perhaps by assigning an IP addr to every object in your program :)
14:57 TimToady *their
14:58 moritz right, memory addresses :-)
14:59 arnsholt My IRC machine has had connectivity issues recently, thus the lack of IRC
15:01 * moritz knows that feeling very well
15:07 masak arnsholt! \o/
15:09 ManAmongHippos joined #perl6
15:12 benabik joined #perl6
15:12 timotimo so, if it's true that sink context and Failure objects make perl6 impossible to execute swiftly, what's the answer to that?
15:14 JimmyZ remove sink context, per sorear++ said :P
15:14 TimToady sink context is not in the same league as Failure, in that respect
15:14 timotimo as in less bad or worse?
15:14 TimToady yes
15:15 FROGGS moritz: I'm walking home now... If you have some hints/thoughts about rshift, please dump there here :o)
15:15 timotimo heh. so which of the two is it? :)
15:15 TimToady it's less worse :)
15:16 TimToady on returning Failure, even if you outlaw that on --> Int, you still have the problem of returning an Int type object
15:16 xinming joined #perl6
15:16 timotimo OK. and the answer to Failure is: "use fatal can make it execute as fast as if Failure didn't exist"?
15:16 TimToady but at least it will dispatch to the right multi before failing :)
15:16 jnthn TimToady: Yes, but that's fixable with returns Int:D :)
15:16 timotimo does --> Int:D make any sense?
15:16 jnthn Which is what the constraint really should be saying.
15:17 TimToady well, the question is whether we default all our types to Maybe/Error types or not
15:17 TimToady if it adversely impacts performance, I can live with --> Int being a kind of 'use fatal'
15:17 jnthn TimToady: It means we can't trust a retursn declaration for making an inlining decision, which feels high impact to me.
15:17 TimToady timotimo: yes, that should work too
15:18 TimToady jnthn: I understand the argument
15:18 jnthn TimToady: Especially when we've talked about aggresive inlining being one of the things we like to know we can do.
15:18 timotimo "that" refering to use fatal or --> Int:D?
15:18 TimToady and I'm kinda agreeing with you already
15:18 jnthn *nod*
15:19 timotimo yay, perl6 is saved ;)
15:19 jnthn Sink is a more interesting one because it's the thing that lets us know when we don't need to build up result lists.
15:20 jnthn So it can help as well. :)
15:20 TimToady it's basically serving the role of the IO monad
15:20 xinming_ joined #perl6
15:20 TimToady saying when side effects are expected
15:21 timotimo how high is the percentage of cases where sinkness can be determined at compile time? would there be any value to compiling two different versions of each method and compile-time switching to the definitely-sunk version?
15:21 timotimo or is that not even the problem?
15:21 TimToady timotimo: most of the time it's compile-time; it's the run-time aspects that are debatable
15:21 TimToady but then, the same argument applies to lazy/eager/hyper/race
15:22 TimToady "How much does my caller care about when things happen?"
15:23 timotimo mh
15:23 TimToady if we can limit that handshaking to listy calls, then scalar calls don't have to do that sort of handshaking
15:24 TimToady but this is one of those areas where we're doing research :)
15:24 bluescreen10 joined #perl6
15:25 Khisanth joined #perl6
15:26 timotimo is there a :Something that means "defined or undefined, both is okay"?
15:27 timotimo so that it would make sense to turn --> Int into --> Int:D by default
15:27 TimToady but perhaps the called function doesn't really get involved; it just returns a listy thing, and the caller then instructs that listy thing which context it's in; this would save having to pass context inward
15:27 TimToady timotimo: I don't think we should try to DWIM that
15:28 TimToady :D is short for a reason
15:28 timotimo makes sense
15:28 timotimo it would be a healthy default for performance i guess ... what about the "use fatal" thing i wondered about before?
15:28 TimToady Haskel picks the other default, and has to add Maybe/Error monads all over
15:28 TimToady we just pick the other default
15:29 timotimo ah, yes, that's a sane choice indeed
15:30 sergot hi! o/
15:30 TimToady another thing is that I'm not entire sure we should always be optimizing for inlineability; there are hardware architectures where function calls are just about as fast as inlined code, and may be faster depending on the caching
15:31 TimToady on such architectures, inlining actually slows you down
15:31 moritz then you don't inline :-)
15:31 timotimo but are these calls actually at a level that would make those hardware details turn out different?
15:31 xenoterracide joined #perl6
15:31 TimToady yes, it's a different level, but the same principles *might* apply
15:32 timotimo we're not yet generating machine-level instructions, and even if so, that would probably be more interesting for the jit rather than the compiler
15:32 TimToady I just don't want to get blinders that make us focus on one optimization
15:32 timotimo fwiw, i don't know terribly much about optimisation and just grasping at any straw that claims to make perl6 run faster ;)
15:33 TimToady fundamentally, it's knowing the types that allows for optimization; inlining is just one possible manifestation of that
15:33 TimToady but the whole notion of gradual typing is not forcing people to put types where they don't contribute much to optimization
15:34 timotimo that's a good point
15:34 moritz but when you declare a type, you should rely on it being enforced, no?
15:35 TimToady moritz: sure, that's what I'm agreeing with jnthn++ about
15:35 TimToady but the flip side is whether Failure is a "bottom" type
15:37 xinming joined #perl6
15:37 TimToady my current feeling is that we don't yet know enough about type theory in Perl 6 to introduce a bottom type efficiently
15:38 TimToady it also might be a bad idea to think that a bottom type could carry failure information :)
15:39 FROGGS joined #perl6
15:39 TimToady so for now I am content that Failure should be a conceptual type (like Junction) that sits outside of Any
15:40 Pleiades` joined #perl6
15:40 TimToady (assuming the default return type is --> Mu, or it won't work)
15:41 shachaf Is the main point of "gradual typing" really optimization?
15:41 TimToady the main point is user convenience while not ruling out writing faster code when you want to
15:43 TimToady user convenience comes first because the system may be able to optimize it anyway based on dynamic performance characteristics
15:43 timotimo right, the JIT approach?
15:43 TimToady beyond JIT, even
15:43 TimToady hot path analysis
15:44 TimToady certainly a realm where the JVM has done some work
15:44 timotimo ah; what pypy has, the tracing jit, is probably a combination of what you mean + a jit
15:44 shachaf I mean that I don't think of optimization as being the point of types in the first place. But I see that's not the topic of the discussion here anyway.
15:44 rindolf joined #perl6
15:44 TimToady sure, optimization is not the main point of types
15:45 TimToady nor is strong typing, in Perl 6
15:45 TimToady it's really to be able to express multiple dispatch
15:45 TimToady that's the main point of types in P6
15:45 timotimo i like having my stupidest mistakes pointed out to me directly at compile time, too, which is possible only if you specify types here and there
15:46 TimToady yes, and P6 is allowed to point out such mistakes when it can deduce them, but it's not the main reason for types in P6
15:46 TimToady the real reason for types is to allow you to write code of the correct genericity/specificity for the problem
15:48 TimToady which ties back to the notion that we know exactly which language we're in
15:48 TimToady which may be a generic language, which is fine as long as it's on purpose
15:48 TimToady but accidental genericity is what kills things like source filters
15:48 TimToady as you add more multis, you are gradually increasing the intentional genericity of that call
15:49 TimToady and that's a good thing
15:49 TimToady unless of course you shouldn't have :)
15:50 timotimo that sounds very sensible indeed.
15:51 FROGGS skids: ping
15:52 segomos moritz: problem seems to be gone after a reinstall of DBIish - thank you
15:52 timotimo life is too short for having empty or otherwise broken ballpoint pens lying on or next to your desk
15:53 * FROGGS .oO( lying on or next to you ... )
15:53 timotimo oh bleh, my super awesome lamy combined ballpoint pen and pencil doesn't ballpointpen any more
15:53 timotimo i also haven't been able to figure out how to open it for replacing the contents yet
15:54 timotimo oh
15:54 timotimo that was simple
15:55 FROGGS hehe
15:57 raiph joined #perl6
15:57 pmurias jnthn: nqp::freshcoderef(sub {}) breaks when wrapping everything in code objects, should I just extract the sub from the code object?
15:57 jnthn pmurias: yeah
15:58 jnthn All the code* ops expect to work on a CodeRef REPR or whatever the equivalent is on the current backend
15:59 pmurias should we have a method on code objects to return the code ref?
15:59 pmurias extracting $!do by nqp::getattr is kind of ugly
16:00 jnthn Yeah, but we shouldn't be doing it too often...
16:01 pmurias everytime we call a code* op
16:01 pmurias well, almost every time
16:01 jnthn yes, but most usages of those are *inside* the code object where you have $!do
16:01 jnthn And there are methods like .name or .clone
16:02 pmurias so maybe we should move nqp::freshcode inside a fresh method?
16:02 jnthn That'd be better
16:05 Chillance joined #perl6
16:22 * Woodi belives in one type of optimalisation: do less
16:23 timotimo indeed, you can hardly ever tell your computer to do something faster, you can mostly only tell them to do less
16:24 timotimo even when you're parallelising, you're basically telling your computer to "do less waiting" :P
16:38 raiph joined #perl6
16:46 timotimo i tweeted "i finally ordered a new aerator" (in german, and the german word for it is "Perlator") and i was asked "perlator 6?" m)
16:46 arnsholt =D
16:49 * arnsholt downloads JNA
17:00 pochi joined #perl6
17:03 arnsholt Holy Makefile, Batman. JNA's Ant logic for compiling the native sources looks awfully complicated...
17:05 arnsholt jnthn: JNA uses libffi, it seems. You think that might become a problem if I end up using JNA for NativeCall?
17:07 bluescreen10 joined #perl6
17:07 moritz http://blogs.perl.org/users/stevan_little/2013/07​/on-the-relationship-between-p5-mop-and-moe.html # mostly off-topic but still interesting, IMHO
17:12 rindolf joined #perl6
17:12 * moritz has implemented basic ajax polling for the IRC log 'today' page
17:13 raiph joined #perl6
17:13 moritz now comes the hard part: implementing some UI that makes it easy to enable it, configure the polling rate, and switch it off by default :-)
17:17 diakopter moritz: :)
17:21 jnthn arnsholt: Are there binaries available?
17:22 jnthn arnsholt: e.g. for Windows users?
17:23 * jnthn guesses so if it's popular :)
17:23 jnthn arnsholt: Anyway, it's probably fine
17:25 jnthn arnsholt: Seems that JARs with the platform stuff bundled in exist.
17:29 timotimo moritz: are you looking for polling intervals in the range of multiple minutes? otherwise, perhaps pushing via websockets would be a better choice?
17:30 moritz timotimo: so far I thought of ~20s intervals
17:30 moritz timotimo: I thought about websockets, but I don't think it's worth the effort
17:30 moritz (and I have no idea how easy or hard deployment of websockets code is)
17:31 arnsholt jnthn: Yeah, I think there are binaries
17:32 djanatyn hmm, doing command line magic with perl6 is confusing me
17:33 djanatyn perl -ne 'if (/^>/) { print }' foo.txt
17:33 djanatyn ^- doing that in perl5 is easy enough. but with perl6
17:33 djanatyn perl6 -ne 'if /^>/ { say }' foo.txt
17:34 moritz perl6 -e 'say if /^>/'
17:34 moritz perl6 -n -e 'say if /^>/'
17:34 moritz that should work
17:34 djanatyn Preceding context expects a term, but found infix / instead
17:35 djanatyn oh, my perl6 is old??
17:35 djanatyn weird, I know I compiled a new one juts a few days ago
17:35 rindolf joined #perl6
17:36 djanatyn okay, found my new version
17:36 gfldex djanatyn: what does perl6 --version say?
17:36 gfldex nvm
17:37 djanatyn yeah, just installing it, one sec
17:37 * masak hopes he can some day write 'perl6 -ne' :)
17:37 djanatyn me too
17:38 djanatyn I've set up shop with a bunch of bioninformaticists during the summer
17:38 masak nice!
17:38 djanatyn they often need quick fixes I can give them with a regular expression or two so I'm trying to refine my setup
17:38 djanatyn and timotimo suggested me teaching them perl6 grammars
17:38 masak makes sense.
17:39 djanatyn while that seems a bit, uhh, not-very-practical, I *can* start using perl6 instead of just using regular perl
17:39 djanatyn since most of the time they just send me files to my laptop on a flash drive to reformat for them
17:39 masak :)
17:44 FROGGS moritz: mp_add_d(b, 1, b) is the negation of b?
17:44 FROGGS ahh, no, there is an mp_neg too
17:46 djanatyn This is perl6 version 2013.06-39-gd02067f built on parrot 5.5.0 revision RELEASE_5_5_0
17:46 djanatyn woo :)
17:46 FROGGS :o)
17:47 masak version-revision-release oh my
17:49 djanatyn http://sprunge.us/cTKW -- hmm, still getting an error :(
17:50 moritz oh, /^\>/
17:50 FROGGS > is a regex special token nowadays
17:51 djanatyn okay I escaped it and now it's just kind of sitting there
17:51 djanatyn foo.txt is 296478 lines; should that take a long time?
17:51 djanatyn it's, umm, still sitting there ._.
17:51 FROGGS hmmm, just wait a bit
17:51 FROGGS (to be sure)
17:52 djanatyn now it's printing out a lot of empty lines
17:52 djanatyn if I type a character it looks like it's flying upwards :)
17:52 FROGGS maybe it should be .say ?
17:52 FROGGS hehe
17:52 FROGGS r: $_ = "hi"; say
17:52 camelia rakudo 567941: OUTPUT«␤»
17:52 FROGGS r: $_ = "hi"; .say
17:52 camelia rakudo 567941: OUTPUT«hi␤»
17:53 FROGGS see
17:53 djanatyn there we go
17:53 djanatyn okay I changed it but now we're juts sitting here a long time again
17:53 fgomez joined #perl6
17:53 FROGGS and yes, speed is still an issue (but we are working on that)
17:53 djanatyn there we go!
17:54 djanatyn yeah, I'm aware that speed isn't the fastest
17:54 djanatyn at this speed it doesn't seem very practical for me to use perl6 to make changes to large files, but I'm sure I can find other ways to incorporate it
17:54 djanatyn like maybe automating tasks that I need to do on lots of things? I'll figure something out
17:55 FROGGS I'd say it comes to use when perl5's regexes are just too unreadable
17:55 FROGGS then the Perl 6 grammars are just awesome
17:55 djanatyn mmm
17:55 FROGGS and there might be some other reasons of course :o)
17:55 djanatyn well, this file is only 18M
17:56 djanatyn a lot of the files we work with here are several gigabytes, so if it's taking that long using perl6 regexes doesn't seem very practical
17:56 FROGGS true
17:56 djanatyn but like I said, there's lots of other stuff we do here, so I'll look out for new ways to use perl6
17:56 FROGGS I'd guess it wouldnt even finish
17:56 FROGGS djanatyn++
17:56 kaleem joined #perl6
17:57 timotimo it will be interesting to investigate jvm performance in such cases
17:58 djanatyn yeah, I'd be willing to try that out
17:58 spider-mario joined #perl6
17:58 timotimo do you know how to build it?
17:58 djanatyn I have lots of real world, high performance test cases
17:58 djanatyn yes
17:58 timotimo i read some commit recently that seemed to say "the evalserver can now take commandline args" or something similar
17:58 timotimo no idea how complete that is
17:58 djanatyn I run most jobs on a 16cpu cluster called BioU
17:59 djanatyn but we've all got access to a rather large shared memory system with 4096 cores
17:59 djanatyn we can run perl6 on that :)
17:59 djanatyn as a matter of fact, I'll go compile perl6 over there now
18:00 timotimo if you're applying one regex to each line separately, that should trivially be distributable; i just don't know what tool to use to get proper splitting and distribution done without any headaches
18:00 konundra joined #perl6
18:00 FROGGS O.o
18:01 djanatyn FROGGS: I work at the Pittsburgh Supercomputing Center :) it's at CMU
18:02 djanatyn http://www.psc.edu/index.php/c​omputing-resources/blacklight -- this is the machine I'm compiling perl6 on now
18:02 dalek nqp: 3890c61 | (Pawel Murias)++ | / (5 files):
18:02 dalek nqp: Wrap subs in a NQPRoutine code object when NQPRoutine is in scope.
18:02 dalek nqp:
18:02 dalek nqp: We need this to fix BEGIN blocks.
18:02 dalek nqp: review: https://github.com/perl6/nqp/commit/3890c61eda
18:03 chrisdev joined #perl6
18:03 jnthn pmurias: This works out on Parrot and JVM?
18:04 FROGGS djanatyn: I believe our biggest machine has 24 cores and 96gig ram :o(
18:04 djanatyn FROGGS: D:
18:05 pmurias jnthn: on parrot, testing it on the JVM right now
18:06 * pmurias just relised rakudo-jvm depends on HEAD nqp, and not a specific version
18:06 jnthn pmurias: yes
18:11 * pmurias tries to fix the commit
18:15 stevan_ joined #perl6
18:17 pmurias jnthn: do we need line 924 in NQP::World? (https://github.com/perl6/nqp/commit/3890c6​1eda8d3c1a7c0f59147015a7b60fa0fc86#L0R924)
18:17 pmurias I get a Duplicate method name&signature on the jvm
18:18 pmurias * NQP::Actions
18:19 jnthn If we don't have that, does the block every get pushed?
18:19 jnthn *ever
18:20 FROGGS gah, almost: https://gist.github.com/FR​OGGS/836912b4855d6d9f05e1
18:21 djanatyn okay, compiled the latest rakudo star on the high performance shared memory system I have access to
18:21 djanatyn I'll let you guys know if I end up doing anything with it
18:21 FROGGS cool
18:21 djanatyn um, does rakudo currently have support for parallelism
18:22 djanatyn because if not that will kind of limit the use of the 4096 available cores
18:22 jnthn djanatyn: No, but now there's a JVM port making good progress I'm hoping to work on that rather soon.
18:22 djanatyn oh yeah!
18:23 timotimo the jvm port of rakudo already gets a performance boost from the fully parallelized (?) GC of the jvm
18:23 timotimo also, some jitting
18:23 djanatyn and you're like the living legend who has done an inhuman amount of work on the jvm port
18:23 djanatyn jnthn++
18:35 FROGGS well, he is Not Quite Human(tm)
18:38 pmurias jnthn: did the name&signature exception appear under other circumstances?
18:39 jnthn pmurias: There is one spectest in Rakudo that explodes that way. That's the only other place I ever saw it. I didn't try to track down what's going on.
18:39 ManAmongHippos joined #perl6
18:51 TimToady npr: say (42,1..*) eqv (42,1..10)
18:51 camelia rakudo 567941: OUTPUT«False␤»
18:51 camelia ..pugs: OUTPUT«␤»
18:51 camelia ..niecza v24-86-g39ab531: OUTPUT«True␤»
18:51 TimToady nieczabug
18:51 dalek perl6-roast-data: b2cf05c | coke++ | / (5 files):
18:51 dalek perl6-roast-data: today (automated commit)
18:51 dalek perl6-roast-data: review: https://github.com/coke/perl6​-roast-data/commit/b2cf05c126
18:51 [Coke] r: say 26087*.9-23438
18:51 camelia rakudo 567941: OUTPUT«40.3␤»
18:51 [Coke] 41 more tests, jnthn. :)
18:52 timotimo great, rakudo.parrot went up and rakudo.jvm got an even better percentage! :)
18:52 jnthn Aww...no awesome beer and blog post tonight then!
18:53 moritz speaking of awesome blog posts... masak, how's the t3 review coming along? :-)
18:53 ggoebel2 joined #perl6
18:53 timotimo you were going to wait for an even >= 90%?
18:53 jnthn r: say 23438 - 23052
18:53 camelia rakudo 567941: OUTPUT«386␤»
18:53 jnthn We gained 386 tests since yesterday, though :)
18:53 jnthn timotimo: Yeah :)
18:54 jnthn I'll just have a good beer and make more tests pass, then, I guess :P
18:54 timotimo and then still write the blogpost today? ;)
18:54 timotimo nah, some people might consider that cheating!
18:56 timotimo jnthn: if my dir changes had been merged, there would have been 12 more tests passing *nag nag nag* ;)
18:56 jnthn Oh, there's somehing outstanding for me to review?
18:56 nwc10 right now there will be zero passing tests on NQP HEAD
18:56 jnthn :/
18:57 nwc10 building HEAD^ to see if the commit 3890c61eda8d3c1a7c0f59147015a7b60fa0fc86 is the porblem
18:57 jnthn Yeah, that patch really shoulda gone in a branch if it wasn't tested on both backends...
18:57 timotimo https://github.com/rakudo/rakudo/pull/173 - i'd love a review of that :)
18:57 jnthn It's a tricky change I'd kinda been putting off... :) pmurias++ for taking it on though
18:57 nwc10 would have waited until I knew the answer, but was thinking that it's a bad plan to do a pull request in this state.
18:58 timotimo pull requests also serve very well as discussion platforms
18:59 timotimo i think the verbiage should be a bit different for pull requests in general
18:59 timotimo or maybe there should be a little switch that says "i'd like this discussed, but probably not yet merged"
18:59 timotimo at the moment it says "$user wants to merge $n commits into $branch" or something
19:00 nwc10 OK, HEAD^ builds and has got to running tests. First 5 pass
19:00 nwc10 I doubt I can be more helpful than this
19:02 lizmat joined #perl6
19:02 lizmat good *, #perl6!
19:03 jnthn *, lizmat
19:03 lizmat coming to you from a brand new MBP, which should do spectests about three times as fast
19:04 moritz doubled number of CPUs, and each a bit faster?
19:05 diakopter lizmat*=3
19:05 lizmat 2.8GHz i7 with 768G SSD, 16G RAM
19:05 jnthn mm...new laptop :)
19:05 timotimo oooh 16 gb ram
19:05 * jnthn should really get around to that before the next time he does a hackathon...
19:05 moritz oooo
19:05 lizmat but make is not installed
19:05 jnthn Whoa! Dammit, that beats my desktop machine :P
19:05 * lizmat is fetching latest Xcode
19:05 timotimo i was thinking about if my next laptop should have 8 or 16
19:06 * moritz doesn't have a laptop anymore :(
19:06 timotimo my desktop has 8 and that seems to be enough
19:06 moritz timotimo: 32, of course :-)
19:06 flussence .oO( they make SSDs that big now?! )
19:06 lizmat jnthn: but then again, this one doesn't have a DVD drive
19:06 benabik The answer to "how much memory should I install" is "as much as you can afford"
19:06 moritz but who needs optical drives anyway?
19:07 jnthn lizmat: Hmm.
19:07 lizmat indeed, and I have plenty of external ones if I really need one
19:08 lue flussence: yes, but HDDs are *much* cheaper still :)
19:08 timotimo my next laptop will probably be a t4x0s with an ssd used for caching and a big-ish HDD, as well as an ultrabay extra-battery and hopefully properly high resolution on the display
19:09 pmurias jnthn: sorry for taking rakudo-jvm down 100%, I fought "ahh, rakudo uses some version stored in that file... so nothing bad will happend if I push and test on jvm afterwords" ;)
19:09 timotimo would be amazing to get a haswell laptop *drool*
19:10 flussence I'm not picky when it comes to laptops, all I want is a good screen, keyboard & battery... none of which are in my current one :D
19:12 timotimo in my experience, thinkpads come with pretty darn good linux support, which matters a lot for me
19:13 * jnthn has had 2 thinkpads and plans to stick with 'em
19:13 jnthn The battery life on my current one is pretty nice.
19:14 jnthn It's funny working on it for hours, and masak going "huh...you weren't plugged in all that time?" :D
19:14 jnthn Gotta keep winning the laptop battery life wars at $dayjob :P
19:15 lizmat this MBP has a battery with 8731 mAh
19:15 jnthn :)
19:16 timotimo i wish those new battery technologies we keep hearing about all the darn time would actually land in a form that is usable ...
19:17 TimToady they should figure out how to power laptops off of excess body fat...
19:17 geekosaur scaling batteries up without having them explode or stop working is remarkably difficult
19:17 FROGGS moritz / jnthn: I believe I have a fix for right shift on negative numbers: https://gist.github.com/FR​OGGS/836912b4855d6d9f05e1
19:18 timotimo TimToady: that could get dangerous, remember all the people who starve while playing MMOs? imagine they are being drained off their fat reserves at the same time as well
19:18 FROGGS TimToady: in case it is optional...
19:19 timotimo scary, scary deaths :o
19:19 * FROGGS .oO( Welcome to our starvathon! o/ )
19:20 timotimo speaking about starving, i shoud go do a grocery-run before stores close
19:20 TimToady obviously if you're underweight you shouldn't use it; instead you should attach your pet goose you've been forcefeeding
19:20 FROGGS hehe
19:20 FROGGS >.<
19:20 timotimo that sounds ... pretty terrible :|
19:21 tomyan joined #perl6
19:22 TimToady where we were in southern France, you don't order foie gras, it just comes anyway
19:22 lizmat TimToady: that's a very Franch way of doing things
19:22 lizmat French
19:22 lizmat ;-)
19:22 FROGGS *g*
19:24 FROGGS I hope there are sane bitops tests, but I think I already know the answer
19:25 TimToady y'know, it's quite possible to be sane, and yet very wrong...
19:28 cognominal joined #perl6
19:30 jnthn OK, enough JavaScript for today...
19:30 pmurias jnthn: you do JavaScript at $work?
19:31 jnthn pmurias: Amongst many other things.
19:32 jnthn But yeah, JavaScript this week. :)
19:32 FROGGS n: say (-300..300 X+> -5..5)
19:32 camelia niecza v24-86-g39ab531: OUTPUT«-1 -1 -1 -1 -1 -300 -150 -75 -38 -19 -10 -1 -1 -1 -1 -1 -299 -150 -75 -38 -19 -10 -1 -1 -1 -1 -1 -298 -149 -75 -38 -19 -10 -1 -1 -1 -1 -1 -297 -149 -75 -38 -19 -10 -1 -1 -1 -1 -1 -296 -148 -74 -37 -19 -10 -1 -1 -1 -1 -1 -295 -148 -74 -37 -19 -10 -1 -1 -1 -…
19:32 FROGGS n: say (-300...300 X+> -5...5)
19:32 camelia niecza v24-86-g39ab531: OUTPUT«[31m===[0mSORRY![31m===[0mâ�¤â�¤"X+>" and "..." are non-associative and require parens at /tmp/avx8cmUHfa line 1:â�¤------> [32msay (-300...300 X+> -5...[33mâ��[31m5)[0mâ�¤â�¤Unhandled exception: Check failedâ�¤â�¤  at /home/p6eval/niecza/boot/lib/CORE.setting lin…
19:32 jnthn Get to go back to C# after this, I think :)
19:32 FROGGS is the latter a bug?
19:33 jnthn std: say (-300...300 X+> -5...5)
19:33 camelia std d4cc5ab: OUTPUT«[31m===[0mSORRY![31m===[0m�"..." and "X+>" are non-associative and require parens at /tmp/hvCusZFYmb line 1:�------> [32msay (-300...300 X+> [33m�[31m-5...5)[0m�"X+>" and "..." are non-associative and require parens at /tmp/hvCusZFYmb line 1:�------> [32msay…
19:33 jnthn r: say (-300...300 X+> -5...5)
19:33 camelia rakudo 567941: OUTPUT«-300 -299 -298 -297 -296 -295 -294 -293 -292 -291 -290 -289 -288 -287 -286 -285 -284 -283 -282 -281 -280 -279 -278 -277 -276 -275 -274 -273 -272 -271 -270 -269 -268 -267 -266 -265 -264 -263 -262 -261 -260 -259 -258 -257 -256 -255 -254 -253 -252 -251 -250 -249 -248 …
19:33 [Coke] I must be using junctions wrong, because I keep wanting to collapse them into distinct states.
19:33 jnthn Probably legit.
19:34 masak [Coke]: yes, if you want states back out of junctions, by definition you're using them wrong.
19:34 TimToady a legit bug, I think jnthn++ means
19:34 [Coke] r: say (1|2|3).^methods;
19:34 camelia rakudo 567941: OUTPUT«new BUILD postcircumfix:<( )> sink AUTOTHREAD Bool Str ACCEPTS gist perl␤»
19:34 * masak submits rakudobug
19:35 TimToady might already be there somewhere
19:35 jnthn TimToady: I meant niecza/std's message was legit, yes
19:35 jnthn I thought I'd put in the non-assoc stuff...
19:35 [Coke] r: say (1|2|3).sink
19:35 jnthn r: 1..10..20
19:35 camelia rakudo 567941: OUTPUT«Nil␤»
19:35 camelia rakudo 567941: OUTPUT«[31m===[0mSORRY![31m===[0mâ�¤Operators '..' and '..' are non-associative and require parenthesisâ�¤at /tmp/vsaexKbPTz:1â�¤------> [32m1..10.[33mâ��[31m.20[0mâ�¤    expecting any of:â�¤        postfixâ�¤        dotty method or postfixâ�¤Â»
19:35 jnthn Hmm. I did. Is there more than one way to be non-assoc? :)
19:35 [Coke] r: say (1|2|3).perl
19:35 camelia rakudo 567941: OUTPUT«any(1, 2, 3)␤»
19:36 [Coke] r: say ((1|2|3)+(4|5)).perl
19:36 camelia rakudo 567941: OUTPUT«any(any(5, 6), any(6, 7), any(7, 8))␤»
19:36 TimToady nr: say 1,2 X 3,4 Z 5,6
19:36 camelia niecza v24-86-g39ab531: OUTPUT«[31m===[0mSORRY![31m===[0mâ�¤â�¤"X" and "Z" are non-associative and require parens at /tmp/UHmXFTofvK line 1:â�¤------> [32msay 1,2 X 3,4 Z [33mâ��[31m5,6[0mâ�¤â�¤Unhandled exception: Check failedâ�¤â�¤  at /home/p6eval/niecza/boot/lib/CORE.setting line 1502 (die …
19:36 camelia ..rakudo 567941: OUTPUT«1 3 1 5 1 4 1 6 2 3 2 5 2 4 2 6␤»
19:36 TimToady jnthn: apparently
19:36 jnthn :)
19:39 TimToady nr: say 1 <=> 2 <=> 3
19:39 camelia niecza v24-86-g39ab531: OUTPUT«[31m===[0mSORRY![31m===[0mâ�¤â�¤"<=>" and "<=>" are non-associative and require parens at /tmp/fyOGuconWy line 1:â�¤------> [32msay 1 <=> 2 <=> [33mâ��[31m3[0mâ�¤â�¤Unhandled exception: Check failedâ�¤â�¤  at /home/p6eval/niecza/boot/lib/CORE.setting line 1502 (di…
19:39 camelia ..rakudo 567941: OUTPUT«[31m===[0mSORRY![31m===[0mâ�¤Operators '<=>' and '<=>' are non-associative and require parenthesisâ�¤at /tmp/fypD_UusZt:1â�¤------> [32msay 1 <=> 2 [33mâ��[31m<=> 3[0mâ�¤    expecting any of:â�¤        postfixâ�¤        infix stopperâ�¤        infix or meta-infixâ�¤Â»â€¦
19:39 TimToady that's the normal way to be non-associative
19:40 TimToady with list infixes, the associativity is allowed only between identical operators
19:40 TimToady so X X is okay, but X Z isn't (or X ... )
19:43 TimToady s/list/list associative/
19:44 TimToady nr: say 1 | 2 ^ 3
19:44 camelia niecza v24-86-g39ab531: OUTPUT«[31m===[0mSORRY![31m===[0mâ�¤â�¤"|" and "^" are non-associative and require parens at /tmp/Flnck0PR21 line 1:â�¤------> [32msay 1 | 2 ^ [33mâ��[31m3[0mâ�¤â�¤Unhandled exception: Check failedâ�¤â�¤  at /home/p6eval/niecza/boot/lib/CORE.setting line 1502 (die @ 5) â�¤â€¦
19:44 camelia ..rakudo 567941: OUTPUT«any(1, one(2, 3))␤»
19:44 TimToady same deal
19:47 pmurias all nqp-jvm test normally pass
19:47 pmurias ?
19:48 pmurias as I'm getting a crazy java.lang.VerifyError exception on some tests
19:52 lizmat my first spectest on the new machine: Files=741, Tests=26239, 479 wallclock secs ( 8.75 usr  2.69 sys + 2680.17 cusr 183.81 csys = 2875.42 CPU)
19:52 lizmat t/spec/S32-io/IO-Socket-INET.t took a very long time, about 30 seconds
19:57 lizmat hmmm… suddenly I have changes to rakudo/Binder.java in my active set
19:57 lizmat which I'm very sure I didn't do?
19:57 FROGGS nr:: say "11 1111 111 111 11 11 1111 11 11 1 11 111 11 111 111".split(/ <?before .**10..15> ' ' /)
19:57 FROGGS nr: say "11 1111 111 111 11 11 1111 11 11 1 11 111 11 111 111".split(/ <?before .**10..15> ' ' /)
19:57 camelia rakudo 567941, niecza v24-86-g39ab531: OUTPUT«11 1111 111 111 11 11 1111 11 11 1 11 111 11 111 111␤»
19:57 FROGGS hmmm
19:58 dalek nqp: c58b48c | (Pawel Murias)++ | / (5 files):
19:58 dalek nqp: Revert "Wrap subs in a NQPRoutine code object when NQPRoutine is in scope."
19:58 dalek nqp: This causes fails on the JVM.
19:58 dalek nqp:
19:58 dalek nqp: This reverts commit 3890c61eda8d3c1a7c0f59147015a7b60fa0fc86.
19:58 dalek nqp: review: https://github.com/perl6/nqp/commit/c58b48c74b
20:00 FROGGS r: say "11 1111 111 111 11 11 1111 11 11 1 11 111 11 111 111".match(/ (.**10..15) ' ' /, :g).join("\n")
20:00 camelia rakudo 567941: OUTPUT«11 1111 111 111 ␤11 11 1111 11 ␤11 1 11 111 11 ␤»
20:00 zby_home joined #perl6
20:08 ecocode joined #perl6
20:09 FROGGS that is what I call Power of Perl 6:
20:09 FROGGS run/Niecza.exe -e 'say (-300..300 X+> 0..9).join(", ")' > ../rakudo/rshift.t1
20:09 FROGGS perl6 -e 'my @a = map { .Str ~ "\n" }, "../rakudo/rshift.t1".IO.slurp.match(/(.**100..105 ", ")/, :g); say @a' >../rakudo/rshift.t
20:09 FROGGS :P
20:12 timotimo haha :)
20:12 FROGGS (because both cant do both)
20:15 dalek rakudo/nom: c186fc3 | (Elizabeth Mattijsen)++ | src/Perl6/Metamodel/ContainerDescriptor.nqp:
20:15 dalek rakudo/nom: Added support for default value in container description of Metamodel
20:15 dalek rakudo/nom: review: https://github.com/rakudo/rakudo/commit/c186fc32e5
20:15 dalek rakudo/nom: a9094aa | (Elizabeth Mattijsen)++ | src/vm/parrot/guts/container.c:
20:15 dalek rakudo/nom: Make (Int) = Nil error soft, putting default value in place
20:15 dalek rakudo/nom:
20:15 dalek rakudo/nom: It compiles ok, but it doesn't seem to trigger yet
20:15 dalek rakudo/nom: review: https://github.com/rakudo/rakudo/commit/a9094aa1aa
20:15 dalek rakudo/nom: ce81030 | (Elizabeth Mattijsen)++ | src/vm/parrot/guts/container.h:
20:15 dalek rakudo/nom: Add pointer for the defaul value in the container struct
20:15 dalek rakudo/nom: review: https://github.com/rakudo/rakudo/commit/ce8103023d
20:15 lizmat and here's my first foray into NQP/C land in a *long* while
20:16 timotimo lizmat++ # daring to go to scary places
20:17 lizmat it spectests ok, just no extra todo's passing yet
20:17 pmurias what could cause such a horrible exception: http://pastie.org/8101068?
20:18 timotimo is that the bytecode verifier that sorear wrote in order to make methods splittable or is it something built into the java compiler?
20:18 lizmat I'm stuck with these changes in my repo: https://gist.github.com/lizmat/5904194 which I did not do, but which apparently are not committed yet
20:18 segomos rewind
20:18 lizmat git rewind ?
20:18 timotimo nah, git reset --hard is the one you want
20:19 timotimo it could be you accidentally git reset without --hard some time ago?
20:19 lizmat but how did they get here in the first place?
20:19 FROGGS yay, it proves my algorithm is right!
20:19 segomos yea
20:19 segomos http://stackoverflow.com/questions/952907​8/git-for-a-beginner-git-reset-hard-head
20:19 lizmat I know about git reset --hard, that's not the issue
20:19 pmurias timotimo: it seems to be raised by something built into the java compiler
20:19 lizmat I'm just afraid that I'll throw away someone elses work
20:19 timotimo you probably pulled from some region and then didn't reset hard enough to another place perhaps?
20:19 tomyan joined #perl6
20:20 moritz lizmat: maybe you accidentally did a 'git pull --rebase' over a merge commit, or something similar weird
20:20 lizmat possibly, I'll just put the changes into a branch just to be sure
20:20 FROGGS the tail of that test is pretty nice actually: https://gist.github.com/FROGGS/836912b​4855d6d9f05e1#file-rshift_pos_amount-t
20:20 FROGGS moritz^^
20:21 FROGGS rshifting a positive/negative value using positive amounts is working now here
20:24 moritz FROGGS++
20:24 FROGGS :o)
20:26 FROGGS I'm not sure I understand what shifting by a negative amount means
20:28 pmurias FROGGS: how did you solve your settings problem?
20:29 FROGGS what settings problems?
20:29 FROGGS -s
20:29 FROGGS pmurias: you mean the v5 module?
20:29 pmurias yes
20:30 pmurias using the Perl 5 setting in a 'use v5' scope
20:30 FROGGS I thinnk the solution was not to inherit from Perl6::Grammar/Actions
20:30 FROGGS and to have the EXPORT sub in v5.pm
20:31 FROGGS I almost cant remember what the trouble was :o)
20:31 FROGGS there is no Perl 5 setting
20:31 lizmat jnthn: it feels like "           if ( STABLE(value)->WHAT == Rakudo_types_nil_get() ) {" is not triggering in container.c
20:31 lizmat suggestions?
20:32 pmurias FROGGS: so what happens when you call a perl5 sub?
20:32 FROGGS I just make the P5 special vars available, and dispatch the Perl 5 builtins to methods on P6's types
20:32 FROGGS pmurias: what do you mean? a sub declared in a v5 block or a P5 "builtin"?
20:34 jnthn lizmat: Hm, is Nil a type?
20:34 lizmat PMC * Rakudo_types_nil_get(void) { return Nil; }
20:35 jnthn pmurias: The verity error sounds like bad code-gen...
20:35 lizmat static PMC * Nil        = NULL;
20:35 lizmat not sure where this gets initializad
20:36 jnthn Is there a Rakudo_types_nil_set? :)
20:36 lizmat good point, checking
20:37 lizmat apparently, Rakudo_types_nil_set is never called
20:37 pmurias jnthn: so I should look for error in the codegen layer?
20:37 pmurias s/error/errors/
20:38 jnthn pmurias: Perhaps, yeah...hmm
20:39 FROGGS n: say -300 +> -9999999 # is that like 300 +> invert(-9999999) ?
20:39 camelia niecza v24-86-g39ab531: OUTPUT«-150␤»
20:40 jnthn pmurias: Of course, it's possible your changes somehow broke closure semantics...
20:40 jnthn lizmat: OK, well, that explains a bit ;)
20:40 lizmat so, any idea where this should be initialized, and with what value ?
20:41 jnthn Hmm...other types the C code knows about are set up in the BOOTSTRAP. But not Nil, it appears...
20:43 jnthn Could stub it in there, then it's just the existing nqp::p6settypes op
20:43 pmurias jnthn: I get that on the more complex tests (like the regex ones), the simpler ones pass with a simple fix to my reverted commit
20:43 * lizmat makes gesture with hand going way above her head
20:44 * FROGGS hugs lizmat
20:44 * perigrin returns lizmat Mooze gesture.
20:45 jnthn lizmat: p6settypes just pulls things out of a hash and calls Rakudo_types_*_set on 'em.
20:45 lizmat src/vm/parrot/Perl6/Ops.nqp ?
20:46 jnthn That maps it, to something in src/vm/parrot/ops/perl6.ops
20:46 pmurias jnthn: the biggest leap of cargo cult faith is https://github.com/perl6/nqp/commit/3890c6​1eda8d3c1a7c0f59147015a7b60fa0fc86#L0R807, where instead of nqp::takeclosure(QAST::Block) I clone a WVal
20:46 jnthn pmurias: Ah...but I guess the clone doesn't actually do a take...
20:47 jnthn pmurias: That is, it doesn't set the outer...
20:47 jnthn It just copies
20:47 jnthn takeclosure I *think* does the two
20:47 jnthn clone then set outer
20:50 lizmat jnthn: foundi it, I think, making now
20:50 pmurias jnthn: p6capturelex also sets outer
20:51 pmurias now we need p6capturelex in nqp ;)
20:52 zby_home_ joined #perl6
20:53 pmurias but I suppose it would be better to sleep and do that tomorrow
20:54 jnthn :)
20:54 jnthn pmurias++
20:56 lizmat jnthn: alas, no change
20:57 lizmat what is a good way to show the actual values from such a piece of C code nowadays / in this context
20:58 lizmat fwiw, I've added: +    Rakudo_types_nil_set(VTABLE​_get_pmc_keyed_str(interp, $1,
20:58 lizmat +        Parrot_str_new_constant(interp, "Nil")));
20:58 lizmat to src/vm/parrot/ops/perl6.ops
20:58 jnthn lizmat: Yes, but I don't think Nil is set up in BOOTSTRAP
20:58 jnthn That is correct, just not sufficient :)
20:58 * lizmat check BOOTSTRAP
21:00 lizmat + my stub Nil metaclass Perl6::Metamodel::ClassHOW { ... }; ???
21:02 lizmat nope: Representation must be composed before it can be serialized
21:05 lizmat r: say Nil.^mro # is this right ?
21:05 camelia rakudo 567941: OUTPUT«Nil (Iterator) (Iterable) (Cool) (Any) (Mu)␤»
21:05 jnthn Yes
21:05 dalek rakudo/nom: d2bf028 | jnthn++ | src/vm/jvm/runtime/org/perl6/rakudo/ (2 files):
21:05 dalek rakudo/nom: Avoid exploding null things in a capture.
21:05 dalek rakudo/nom: review: https://github.com/rakudo/rakudo/commit/d2bf02869b
21:05 TimToady Nil is not supposed to be an iterator anymore
21:05 jnthn It'll need more than just ceating the meta-object
21:05 * masak submits rakudobug
21:05 jnthn It'll need add_parent'ing.
21:06 lizmat ah, ok, with that order?
21:06 jnthn TimToady: Yes, but that can't be fixed without the wider Nil changes.
21:06 jnthn lizmat: Well, it's a single inheritance chain
21:07 lizmat ok, will do
21:07 jnthn So just need to add the immediate parent
21:07 jnthn And you get the rest by default
21:07 jnthn Just make sure it comes late enough
21:07 jnthn Above commit gets us 20 or so more tests.
21:11 BenGoldberg joined #perl6
21:11 lizmat jnthn: Can only use get_who on a SixModelObject
21:11 Rotwang joined #perl6
21:12 lizmat jnthn: https://gist.github.com/lizmat/5904671   the diff so far
21:14 dalek nqp: 2b30e32 | jnthn++ | src/vm/jvm/runtime/org/perl6/nqp/runtime/Ops.java:
21:14 dalek nqp: nqp::readlinefh should never return null.
21:14 dalek nqp:
21:14 dalek nqp: Resolves 5 of the NullPointerException aborts in the Rakudo spectests,
21:14 dalek nqp: leading to 4 of the affected files now passing in full.
21:14 dalek nqp: review: https://github.com/perl6/nqp/commit/2b30e3253d
21:14 lizmat jnthn: found the pb, making again
21:14 raiph joined #perl6
21:15 jnthn lizmat: Missing insertion into EXPORT::DEFAULT, I suspect
21:15 jnthn And maybe need to remove the "is Iterator" in src/core/Nil.pm
21:15 jnthn Since that's done already
21:15 lizmat I had removed the stub again, that stopped it from compiling
21:16 jnthn Down to just 2 spectests that explode with NullPointerException now :)
21:16 lizmat why remove the "is Iterator" ?
21:16 lizmat that's what I've just stubbed  in BOOTSTRAP, no?
21:17 jnthn lizmat: Yes, if you leave it in src/core/Nil.pm it will probably try to add_parent it again, which'll get you in trouble, I suspect
21:18 lizmat we'll see… it got through the setting
21:19 lizmat $ perl6 -e 'say Nil.^mro'
21:19 lizmat Nil (Iterator) (Iterable) (Cool) (Any) (Mu)
21:19 lizmat still seems ok there
21:23 lizmat alas, trying something else
21:24 dalek nqp: 7aa9b2f | jnthn++ | src/vm/jvm/runtime/org/perl6/nqp/runtime/Ops.java:
21:24 dalek nqp: nqp::where should not decontainerize.
21:24 dalek nqp:
21:24 dalek nqp: This fixes the last two aborts due to NullPointerException in the
21:24 dalek nqp: Rakudo spectest.
21:24 dalek nqp: review: https://github.com/perl6/nqp/commit/7aa9b2f83f
21:25 lizmat TimToady: so what is the expected parent of Nil: Mu ?
21:25 jnthn There's 10 tests that no longer abort, with many of them now fully passing. :)
21:25 FROGGS jnthn++ # I like words like "last" and "all" in commit messages :o)
21:25 masak rn: reverse ^10 ==> map { $_ ?? <tick tock>[$_ %% *] !! <... BOOM> } ==> say
21:25 camelia rakudo d2bf02: OUTPUT«tick tock tick tock tick tock tick tock tick ... BOOM␤»
21:25 camelia ..niecza v24-86-g39ab531: OUTPUT«[31m===[0mSORRY![3​1m===[0mâ�¤â�¤Unsupported use of bare 'say'; in Perl 6 please use .say if you meant $_, or use an explicit invocant or argument at /tmp/0oK0blhS_L line 1 (EOF):â�¤------> [32mk tock>[$_ %% *] !! <... BOOM> } ==> say[33mâ��[31m<EOL>[0mâ�¤â�¤Un…
21:30 lizmat jnthn: I think I'm barking up the wrong tree: I changed the type check message in container.c, but the message I get when trying to assign Nil to an Int, is unchanged
21:31 jnthn lizmat: Is that 'cus the exception message is only the fallback, if it can't find the typed thrower?
21:31 lizmat ah, good point
21:32 jnthn I'm almost certain you're changing the right place.
21:32 jnthn Want me to look at latest diff?
21:33 lizmat https://gist.github.com/lizmat/5904671
21:33 dalek rakudo/nom: dbc5f1a | jnthn++ | src/core/Code.pm:
21:33 dalek rakudo/nom: Avoid a Parrot-specific .get_lexinfo call.
21:33 dalek rakudo/nom:
21:33 dalek rakudo/nom: Unbusts S11-modules/import-multi.t, which now fully passes on JVM.
21:33 dalek rakudo/nom: review: https://github.com/rakudo/rakudo/commit/dbc5f1a303
21:34 jnthn lizmat: ah, important missing line
21:34 lizmat what what what ?
21:34 jnthn lizmat: See the lines started below # Fill out EXPORT namespace.
21:34 TimToady an argument could be made that Nil is a conceptual type like junctions; in fact, one could posit that Nil is an alias for one(), that is, the simultaneous requirement that something be one thing and zero things :)
21:34 jnthn You need a line there to actually export the Nil that you've crated.
21:34 jnthn *created
21:34 lizmat checking
21:34 jnthn That's probably why the extra "is Iterator" in the setting doesn't explode.
21:36 TimToady in any case, if Nil were put outside of Any, we'd have to do something like with junctions in order to use Nil to represent the absence of an argument to the binder
21:37 lizmat jnthn: indeed, Package 'Nil' already has parent 'Iterator'
21:38 lizmat so src/core/Nil wouild need to have its "is Iterator" removed?
21:38 lizmat (trying that now)
21:39 jnthn Yes
21:39 * TimToady wonders what else might break if we move Nil outside of Any...
21:39 lizmat I'll try, after I get this working :-)
21:42 lizmat getting closer: perl6 -e 'my Int $a=1; $a=Nil; say $a'
21:42 lizmat No such method 'gist' for invocant of type 'NQPMu'
21:44 jnthn huh...
21:45 jnthn That means Nil somehow ended up being something other than the stubbed Nil? :s
21:45 [Coke] jnthn: let me know when I should regen the errors gist.
21:45 lizmat seems to me "value = desc->the_default;" is being done, but desc->the_default is somehow wrong
21:45 jnthn lizmat: Yes, that's my analysis too
21:46 lizmat ok, getting to tired now
21:46 jnthn OK, let's try and crack it tomorrow. Must be close...
21:46 lizmat will run a spectest: this should be ok, if it is, I'll commit and lookm at it tomorrow
21:46 lizmat indeed
21:51 timotimo jnthn: do you have the one or two minutes that'll probably be enough to review the dir.contents implementation i came up with?
21:51 jnthn timotimo: ooh, forgot that
21:52 * timotimo added a note to the pull request
21:52 timotimo https://github.com/rakudo/rakudo/pull/173 - here's the link again
21:53 jnthn timotimo: Any reason to use while $next ... $next = 0, rather than loop { ... last ... } ?
21:53 timotimo oh. no, there isn't
21:53 jnthn Did the nqp patch to add these things already go in?
21:54 timotimo yes
21:55 jnthn k
21:55 timotimo https://github.com/perl6/nqp/commit/bf​e5a06303c0f9a3ea52e8e37ca580e04f6c597c
21:58 jnthn mebbe should do that in the op...
21:59 lue joined #perl6
22:00 timotimo that == chopping off ./?
22:00 jnthn yeah
22:00 jnthn ok, I got it passing 11 out of 12 on Windows
22:01 timotimo can surely do that if you ask me to
22:01 timotimo ah, that's good to know
22:01 timotimo i don't have a windows to test it on
22:01 timotimo does it fail because it would have to cut off .\ instead? ;)
22:01 dalek rakudo/nom: 1ca2ea2 | (Timo Paulssen)++ | src/core/IO.pm:
22:01 dalek rakudo/nom: implement IO::Path::contents on jvm w/ nqp::opendir, ...
22:01 dalek rakudo/nom: review: https://github.com/rakudo/rakudo/commit/1ca2ea24ac
22:01 dalek rakudo/nom: 080a6bb | jnthn++ | src/Perl6/Actions.nqp:
22:01 dalek rakudo/nom: Generate lexical accessor after declaring var.
22:01 dalek rakudo/nom:
22:01 dalek rakudo/nom: Unbusts S12-attributes/class.t.
22:01 dalek rakudo/nom: review: https://github.com/rakudo/rakudo/commit/080a6bb35f
22:01 dalek rakudo/nom: 09be2b6 | jnthn++ | src/core/IO.pm:
22:01 dalek rakudo/nom: Merge branch 'jvm-dir' of git://github.com/timo/rakudo into nom
22:01 dalek rakudo/nom: review: https://github.com/rakudo/rakudo/commit/09be2b6d68
22:01 dalek rakudo/nom: 532a3b9 | jnthn++ | src/core/IO.pm:
22:01 dalek rakudo/nom: Idiomaticism and Win32 fixes for dir(...).
22:01 dalek rakudo/nom: review: https://github.com/rakudo/rakudo/commit/532a3b939e
22:01 jnthn Well, I fixed that bit already.
22:02 timotimo cool, thanks! :)
22:02 jnthn Anyway, I'll take passing 11 out of 12 out of passing 0 out of 12. :)
22:02 jnthn *over
22:03 timotimo hey, if you write "./" | ".\\", you'll get the junction optimisation for free
22:03 jnthn Oh, don't I get it with any?
22:03 timotimo i don't think so
22:03 timotimo because of flattening issues i decided not to touch that
22:04 jnthn ah
22:04 timotimo that's probably a LHF for you ;P
22:04 * [Coke] ... stops his build and kicks it off again to get jvm-dir fixes.
22:04 timotimo s/for/to/
22:04 jnthn nah, it's kinda tricky...
22:04 timotimo [Coke]: you're too kind :3
22:05 timotimo jnthn: well, there's an "any" or "all" call op and its only child is an infix:<,> and that , comes from core and all the children of the , have compile-time-values that are not lists, it could be wrapped into a || or && instead
22:05 timotimo plus or minus lots of edge cases i didn't notice yet :)
22:05 dalek rakudo/nom: d67185a | (Elizabeth Mattijsen)++ | src/ (3 files):
22:05 dalek rakudo/nom: Further work to make Type $foo = Nil work, jnthn++
22:05 dalek rakudo/nom:
22:05 dalek rakudo/nom: Seems that the assignment of the default value is still bogus, more tomorrow.
22:05 dalek rakudo/nom: review: https://github.com/rakudo/rakudo/commit/d67185a04b
22:06 timotimo jnthn: be advised, i can create a .\ folder on my linux box. we probably want to have more intelligence for that in the future
22:06 timotimo and that very bit of intelligence may be easier to implement in the java code
22:06 dalek roast: 2329bdd | (Elizabeth Mattijsen)++ | S02-types/nil.t:
22:06 dalek roast: Temporary fudge for Nil changes
22:06 dalek roast: review: https://github.com/perl6/roast/commit/2329bddbba
22:06 lizmat spectest should be clean for Nil related changes
22:07 jnthn k
22:07 * jnthn is doing a spectest run now to see if his evening changes have regressed anything notably
22:07 lizmat calling it a night, cu all 2morrow
22:08 timotimo [Coke]:  ^ may want to restart again real quick?
22:08 jnthn ;)
22:08 jnthn 'night, lizmat
22:09 masak night, lizmat++
22:14 FROGGS joined #perl6
22:18 jnthn OK, looks like we're attempting some copule of hundred more, and hopefully that translates to a decent number of passes too :)
22:18 jnthn So, hopefully we cross the 90% tomorrow :)
22:19 jnthn (as in, in tomorrow's run)
22:21 timotimo great! :)
22:21 timotimo isn't it enough for today's run?
22:21 arlinius joined #perl6
22:22 jnthn Depends how you're counting today/tomorrow :)
22:22 jnthn "today's" (UGT) run already happened :)
22:22 timotimo ah. i was refering to the one coke is running right now
22:23 jnthn Oh, but that's not the one that updates roast data :)
22:23 timotimo oh, righto
22:24 FROGGS joined #perl6
22:27 [Coke] I just wanted to update the categorized failures gist.
22:27 jnthn ah :)
22:27 jnthn That's useful; I won't do more tonight, but I'll be glad to have it for tomorrow.
22:27 timotimo will you tell us the numbers, too, or is that data not being generated at all?
22:29 stevan_ joined #perl6
22:29 masak 'night, #perl6
22:30 timotimo night masak!
22:31 [Coke] timotimo: I can paste in the total line from this run.
22:31 [Coke] but it's only on S06 yet.
22:31 skids joined #perl6
22:32 timotimo i'd like that very much thanks :)
22:36 colomon here the latest run went from 22896 to 23126 passoing
22:37 timotimo so close to 90%
22:37 timotimo 89.92% it seems like
22:39 jnthn huh, I thought we had to get 40ish more for 90%?
22:39 konundra joined #perl6
22:39 timotimo i don't know the accurate pass numbers for rakudo at the time of colomons posting, though
22:41 [Coke] 41 more from the daily roast run; we'll probably make it.
22:41 timotimo wow, clutch :)
22:42 TimToady quick, we need to break something
22:43 [Coke] quiet, you troublemaker!
22:44 [Coke] "total",     23667,  2316,   571,  1889, 27938, 25913
22:45 jnthn Up from 23438 :)
22:45 jnthn Over 200 more. That's > 41 :)
22:45 [Coke] r: say 23667/26087
22:45 camelia rakudo d67185: OUTPUT«0.907233␤»
22:45 TimToady \o/
22:46 jnthn Into the last 10% \o/
22:46 timotimo oh, that is above 90%!
22:46 timotimo congratulations to all involved! :)
22:46 jnthn Of course, this is where the S starts to flatten :)
22:46 [Coke] some slush since I'm running against a 7 hour old roast.
22:46 [Coke] updating the gist...
22:51 timotimo how hard does it seem to make open work?
22:52 timotimo or perhaps making slurp work first? it seems to pass the open call and die upon trying to set an encoding
22:52 jnthn I think open works...
22:52 jnthn Must be the encoding-y stuff
22:52 timotimo i just tried to open for writing and it didn't work, but perhaps opening for reading does
22:52 jnthn The IO stuff wants a good look over, I think...
22:53 timotimo ah, i know what's going wrong
22:53 timotimo i wasn't terminating the line with ;1 in the repl and stringifying dies because .tell doesn't exist
22:54 timotimo method read_bytes not found, heh. probably because it operates on something called $!PIO ;)
22:55 jnthn *sigh* yeah, and that probably depends on Buf...
22:56 timotimo *of course* IO is among the last things to get running in a perl6 implementation ;)
22:58 FROGGS joined #perl6
22:59 timotimo kind of bummed i don't get to see line numbers for src/gen/CORE.setting in jvm :|
23:00 timotimo well, i do, but only for one stack level it seems
23:04 raiph joined #perl6
23:05 pmurias joined #perl6
23:07 timotimo looking forward to the new vim version with the alleged new and much faster regexp engine for highlighting and such
23:07 timotimo hopefully scrolling through perl6 code no longer stutters :P
23:20 lue joined #perl6
23:21 timotimo oh, i made more tests succeed! :)
23:22 timotimo https://gist.github.com/timo/4b4dc754a509ff0a14b7 <- i don't want to make a pullrequest for such a peanut change. please apply it, someone?
23:23 timotimo (should make 46 tests pass!)
23:23 jnthn hm...
23:24 jnthn I wonder if that means our Makefile.in entries are mis-ordered compared to on Parrot...
23:24 timotimo oh, good question
23:24 jnthn That shouldn't be needed on one and not the other.
23:24 timotimo otherwise these should fail on parrot, too
23:24 jnthn Right.
23:24 jnthn I'd rather fix that.
23:24 jnthn Gonna go rest now.
23:24 timotimo good, do that. i'll delete the gist.
23:25 jnthn Back tomorrow...should have a few more tuits tomorrow also :)
23:25 jnthn Feel free to tweak the ordering and test it... :)
23:25 jnthn 'night o/
23:28 pmurias jnthn: adding a capturelex solved the strange error
23:29 timotimo pulling only Exception.pm back to the front gives an NPE, but i'm trying to put the whole block that had been moved back to where it is on parrot
23:31 timotimo seems like more work that i'd care to handle right now. i'll probably go to bed instead
23:42 gtodd joined #perl6
23:47 gtodd yoleaux: U+1F341
23:48 gtodd yoleaux: .u U+1F341
23:48 timotimo .u U+1F341
23:48 yoleaux U+1F341 MAPLE LEAF [So] (🍁)
23:48 gtodd :P
23:49 timotimo ;)
23:49 gtodd &#127809;
23:49 timotimo .o(mhhh maple syrup)
23:49 gtodd left #perl6
23:50 timotimo fixing the build order will also transform Could not find symbol '&Chdir' into Failed to change the working directory to '/home/timo/build/jakudo/./t': java.lang.NoSuchMethodError: org.perl6.nqp.runtime.Ops.chdir(Lja​va/lang/String;)Ljava/lang/String;

| Channels | #perl6 index | Today | | Search | Google Search | Plain-Text | summary

Perl 6 | Reference Documentation | Rakudo