»ö« Welcome to Perl 6! | perl6.org/ | evalbot usage: 'p6: say 3;' or rakudo:, std:, or /msg camelia p6: ... | irclog: irc.perl6.org | UTF-8 is our friend! | feather will shut down permanently on 2015-03-31
Set by jnthn on 28 February 2015.
ash_gti Whats the perl6 alternative to `<cmd>` 00:09
00:13 coffee` left
ash_gti ah, I found it, shell and run 00:14
00:17 aborazmeh joined, aborazmeh left, aborazmeh joined 00:19 kjs_ left, kaare__ left 00:26 aborazmeh left 00:29 kaare__ joined 00:30 njmurphy left 00:41 tinyblak left 00:56 Hor|zon joined 01:00 Hor|zon left 01:02 jnthn_ joined
dalek kudo/nom: 61c59db | (Geoffrey Broadwell)++ | src/core/IO/Path.pm:
Implement IO::Path.resolve on r-m/POSIX

ONLY expected correct on POSIX filesystems, but committing now because
  "implemented on r-m/POSIX" is better than purely NYI. Other backends
need only support nqp::readlink to get the POSIX support, but someone else will need to do the non-POSIX filesystem work.
01:03
01:03 jnthn_ left
kudo-star-daily: 421b28d | coke++ | log/ (9 files):
today (automated commit)
01:06
rl6-roast-data: 624dda9 | coke++ | / (9 files):
today (automated commit)
01:09 aborazmeh joined, aborazmeh left, aborazmeh joined 01:18 aborazmeh left 01:21 aborazmeh joined, aborazmeh left, aborazmeh joined
ash_gti does `qx/foobar/` set any variable like $? to indicate the exit status of the subprocess? 01:22
psch ash_gti: &shell gives you a Proc::Status
ash_gti: qx// only cares about stdout 01:23
ash_gti can you also get the output with &shell?
psch doc.perl6.org/type/Proc::Status
m: Proc::Status.^methods.say
camelia rakudo-moar 61c59d: OUTPUT«status Numeric Bool <anon> <anon> <anon>␤»
01:24 cognominal left
psch m: say Proc::Status.^can('out') 01:25
camelia rakudo-moar 61c59d: OUTPUT«␤»
psch ah, no, i'm remembering Test::<&is_run> i think... 01:26
01:27 telex left
ash_gti Proc::Async seems like it would work for both reading from stdout and finding the exit status 01:27
$? is pretty easy though, oh well
01:28 telex joined
psch on a different note, i have a «public String run(String code)» in EvalServer that works 01:29
unfortunately it needs a ~2600 characters long CLASSPATH
because our .jar loading is patently weird™ 01:30
though for some reason i get an «unitialized value of type Any in string context» in ModuleLoader.nqp, from the looks of it in a nqp::loadbytecode call..? 01:33
01:46 laouji joined 02:04 beastd left 02:14 colomon left, colomon joined
colomon don’t suppose we have rakudo to C++ NativeCall working yet? processing command line args is a pain in C++ 02:16
ash_gti that would be nice 02:20
psch the tests in rakudo/cpp look rather minimal at present, but i don't know what there really is on C++ feature that's needed to make NativeCall neat for it 02:22
ash_gti colomon: getopt_long ?
colomon looking at it now… 02:24
02:25 aborazmeh left 02:26 bjz left
ash_gti for me its man 3 getopt_long 02:26
psch & 02:28
02:29 bjz joined 02:32 raiph joined
ash_gti can you have a named param with a default value? 02:40
02:40 jack_rabbit joined 02:41 colomon left 02:43 colomon joined 02:45 Hor|zon joined 02:46 ilbot3 left 02:47 jack_rabbit left 02:48 ilbot3 joined 02:49 aborazmeh joined, aborazmeh left, aborazmeh joined, Hor|zon left 02:55 ssutch joined 03:07 jack_rabbit joined
TimToady .tell lizmat (key => 0).Bag must remove key or it violates the bag's contract; the whole point of a Bag with 0 items in it is that that is no different from an empty Bag 03:18
yoleaux TimToady: I'll pass your message to lizmat.
TimToady .tell lizmat Throwing info away is not our lowest ideal, or however you say that... 03:19
yoleaux TimToady: I'll pass your message to lizmat.
TimToady ash_gti: are you asking about getopt_long or about Perl 6? In P6, sure, just add "= stuff()" 03:22
ash_gti no, I metioned getopt_long for @colomon
colomon TimToady: I was lamenting not having sub MAIN in C++ 03:23
ash_gti I was putting the ‘= stuff’ before I closed the ), thats all, sub MAIN(:t(:$theme) = 'atom-light-syntax’) vs sub MAIN(:t(:$theme = 'atom-light-syntax’))
Mouq m: sub (:t(:th)) {} 03:25
camelia rakudo-moar 61c59d: OUTPUT«5===SORRY!5=== Error while compiling /tmp/0AEXZTScqb␤Malformed parameter␤at /tmp/0AEXZTScqb:1␤------> 3sub (:t(:7⏏5th)) {}␤ expecting any of:␤ named parameter␤ formal parameter␤»
Mouq m: sub (:t(:$th)) {} 03:26
camelia ( no output )
Mouq m: sub (:t( :$th )) {}
camelia rakudo-moar 61c59d: OUTPUT«5===SORRY!5=== Error while compiling /tmp/0yAAc9tKQn␤Unable to parse named parameter; couldnt find right parenthesis␤at /tmp/0yAAc9tKQn:1␤------> 3sub (:t( :$th7⏏5 )) {}␤ expecting any of:␤ shape declaration␤»
Mouq std: sub (:t( :$th )) {}
camelia std 28329a7: OUTPUT«ok 00:00 138m␤»
Mouq rakudobugs
03:27 cognominal joined 03:35 noganex_ joined
Mouq I'm closing RT #123939, moritz++ TimToady++ 03:36
synopsebot Link: rt.perl.org/rt3//Public/Bug/Displa...?id=123939
TimToady m: sub foo(::T $f, ::T $g) { say T }; foo(1,"foo") 03:37
camelia rakudo-moar 61c59d: OUTPUT«5===SORRY!5=== Error while compiling /tmp/iBATkJS9lD␤Redeclaration of symbol T␤at /tmp/iBATkJS9lD:1␤------> 3sub foo(::T $f, ::T 7⏏5$g) { say T }; foo(1,"foo")␤»
TimToady \o/
03:38 noganex left, jack_rabbit left 03:39 colomon left
PerlJam m: Bag.new-from-pairs( tea => 42 ).perl.say; 03:40
camelia rakudo-moar 61c59d: OUTPUT«().Bag␤»
Mouq m: Bag.new-from-pairs( 'tea' => 42 ).perl.say; 03:41
camelia rakudo-moar 61c59d: OUTPUT«("tea"=>42).Bag␤»
Mouq :|
PerlJam aye. But I'm also wondering why it didn't complain about an unexpected named parameter 03:42
Mouq Methods don't
generally
PerlJam ah.
oh, that's right. I forgot
Mouq++
Mouq Should I bug that too :9 03:43
PerlJam I'm not sure it is a bug. But it could surely surprise people. 03:44
ShimmerFairy forgot if there was a reasonable explanation for an implicit *% parameter on methods, which she still disagrees with 03:45
TimToady design.perl6.org/S12.html#Interface_Consistency is the argument 03:47
Mouq PerlJam: Considering that method is neither designed nor tested, except a bit on MixHashes, I'd say it'd be good to at least get in the system 03:48
TimToady jnthn++ has said that we might be able to find a bit in the captures to tell whether a given argument has ever been bound, and warn on unbounds at the end
PerlJam That would help 03:49
ShimmerFairy The reason why I disagree with it is that I've yet to see a case where implicit *%_ was a helpful thing to have, and plenty of times where you really wanted to pass a Pair instead of a named argument.
TimToady m: ( tea => 42 ).Bag.perl.say
camelia rakudo-moar 61c59d: OUTPUT«("tea"=>42).Bag␤»
TimToady how is that method needed? 03:50
Mouq m: ( 'tea' => 42 ).Bag.perl.say
camelia rakudo-moar 61c59d: OUTPUT«("tea"=>42).Bag␤»
Mouq Hmm
PerlJam huh
TimToady coercion to Bag already handles pairs
PerlJam I just saw it in the email thread.
TimToady and doesn't have the named arg problem
Mouq m: say MixHash.new-from-pairs("blood" => 1.1, "love" => 1.3, "rhetoric" => 2.2); say ("blood" => 1.1, "love" => 1.3, "rhetoric" => 2.2).MixHash
camelia rakudo-moar 61c59d: OUTPUT«MixHash.new(blood(1.1), love(1.3), rhetoric(2.2))␤MixHash.new(blood(1.1), love(1.3), rhetoric(2.2))␤»
Mouq (That's the way it's used in the tests we have involving new-from-pairs) 03:51
03:51 cognominal left
ShimmerFairy I wonder if %_.unbounded-pairs would be a feasible thing, either for standard Perl 6 or some sort of module... 03:52
TimToady that's why coercers are different from composers
Mouq So, new-from-pairs is really in want of deprecation?
03:53 colomon joined
Mouq ShimmerFairy: Isn't that just *%_ ? :P 03:53
ShimmerFairy well, it would have to account for arguments that get bounded later on. 03:54
TimToady unfortunately, polymorphism kinda demands that you be able to talk to each layer in the hierarchy in its own terms, and you have to do that through a single method call that can go to multiple methods 03:55
but we can certainly find some way of detecting when you misspelled a named arg
03:56 colomon left
TimToady btw, ShimmerFairy++ on new name :) 03:56
ShimmerFairy thanks :)
03:57 colomon joined
Mouq m: say {a => "b", c => "d"}.pairs.Bag 04:00
camelia rakudo-moar 61c59d: OUTPUT«Cannot convert string to number: base-10 number must begin with valid digits or '.' in '⏏b' (indicated by ⏏)␤ in method Int at src/gen/m-CORE.setting:15023␤ in method Int at src/gen/m-CORE.setting:6830␤ in block at src/gen/m-CORE.setting:1975…»
04:01 FROGGS_ joined
PerlJam WAT 04:01
TimToady coercers are not composers
m: say {a => "b", c => "d"}.pairs.bag 04:02
camelia rakudo-moar 61c59d: OUTPUT«No such method 'bag' for invocant of type 'List'␤ in block <unit> at /tmp/nx8OLNFwNz:1␤␤»
TimToady m: say bag {a => "b", c => "d"}.pairs
camelia rakudo-moar 61c59d: OUTPUT«bag(a => b, c => d)␤»
ShimmerFairy last I checked, "b" is not a number :) (nor is "d")
TimToady that's a composer
PerlJam that first message is _so_ LTA though
TimToady m: say new Bag: {a => "b", c => "d"}.pairs 04:03
camelia rakudo-moar 61c59d: OUTPUT«bag(a => b, c => d)␤»
TimToady that's also a composer
m: say Bag({a => "b", c => "d"}.pairs)
camelia rakudo-moar 61c59d: OUTPUT«Cannot convert string to number: base-10 number must begin with valid digits or '.' in '⏏b' (indicated by ⏏)␤ in method Int at src/gen/m-CORE.setting:15023␤ in method Int at src/gen/m-CORE.setting:6830␤ in block at src/gen/m-CORE.setting:1975…»
TimToady coercer, so fails
Mouq Gotcha 04:04
colomon output seems wrong, though? shouldn’t it be bag(a => b => 1 …) or something like that?
m: say bag <a b c>.list
camelia rakudo-moar 61c59d: OUTPUT«bag(a, b, c)␤»
Mouq m: say {a => "b", c => "d"}.pairs.&bag.perl
camelia rakudo-moar 61c59d: OUTPUT«("a" => "b"=>1,"c" => "d"=>1).Bag␤»
04:04 Sqirrel left
TimToady .gist 04:04
04:04 FROGGS left
colomon m: say bag <a b c a>.list 04:04
camelia rakudo-moar 61c59d: OUTPUT«bag(a(2), b, c)␤»
colomon ah
interesting 04:05
TimToady we really did name "gist" that to mean something tl;dr-ish 04:07
chops infinite lists off too
m: say 1,2,4 ... *
camelia rakudo-moar 61c59d: OUTPUT«1 2 4 8 16 32 64 128 256 512 1024 2048 4096 8192 16384 32768 65536 131072 262144 524288 1048576 2097152 4194304 8388608 16777216 33554432 67108864 134217728 268435456 536870912 1073741824 2147483648 4294967296 8589934592 17179869184 34359738368 68719476736…»
TimToady that used to fail
m: say 1 xx * 04:08
camelia rakudo-moar 61c59d: OUTPUT«1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 ...␤»
TimToady note the Texas ...
that was put by .gist
ShimmerFairy was about to say; any reason it's different from the other list's … ?
TimToady the other one was truncated by evalbot 04:09
ShimmerFairy ah
TimToady colomon: is your client still doing smart quoting for you? :) 04:10
colomon TimToady: ya sure
TimToady I fixed it fer ya
colomon ?? 04:11
Mouq haha
04:11 lizmat left
TimToady colomon: try typing an expression to camelia with "" or ... 04:11
colomon m: say “like this?” 04:12
camelia rakudo-moar 61c59d: OUTPUT«like this?␤»
colomon TimToady++
TimToady .u ’
yoleaux U+2019 RIGHT SINGLE QUOTATION MARK [Pf] (’)
TimToady I notice it puts that for your apostrophe though
colomon m: say ‘hmm'
camelia rakudo-moar 61c59d: OUTPUT«5===SORRY!5=== Error while compiling /tmp/BJFc1i3828␤Unable to parse expression in smart single quotes; couldn't find final "’" ␤at /tmp/BJFc1i3828:1␤------> 3say ‘hmm'7⏏5<EOL>␤ expecting any of:␤ argument list␤ p…»
TimToady we don't handle that one yet as part of an identifier
they have to balance 04:13
m: say ““like this?””; # curious
camelia rakudo-moar 61c59d: OUTPUT«“like this?”␤»
TimToady \o/
Mouq QLang++ 04:14
04:14 lizmat joined
ShimmerFairy m: say „hallo!“ # I obviously don't expect this to work 04:16
camelia rakudo-moar 61c59d: OUTPUT«5===SORRY!5===␤No valid term seen where one is required␤at /tmp/jvue_Uqrkw:1␤------> 3say 7⏏5„hallo!“ # I obviously don't expect this␤Bogus term␤at /tmp/jvue_Uqrkw:1␤------> 3say 7⏏5„hallo!“ # I obviously don't expect thi…»
TimToady m: my \Q = "protogospel"; say Q
camelia rakudo-moar 61c59d: OUTPUT«protogospel␤»
TimToady ShimmerFairy: other night I said we should make that work :)
shouldn't be a problem, since only the opener has to be unique
the closers can be shared like that 04:17
04:17 colomon left
ShimmerFairy I vaguely remember the general rule was in S02, but there was already an exception to that rule, so it shouldn't be an issue :) 04:18
04:21 colomon joined
TimToady oh, except that's the wrong closer 04:23
Mouq m: say q„ 04:24
camelia rakudo-moar 61c59d: OUTPUT«5===SORRY!5=== Error while compiling /tmp/cHVl03sPhc␤Couldn't find terminator ”␤at /tmp/cHVl03sPhc:1␤------> 3say q„7⏏5<EOL>␤»
TimToady > say „hallo”
hallo
dalek kudo/nom: 37f8dd9 | TimToady++ | src/Perl6/ (2 files):
reduce cultural imperialism slightly
04:25
ShimmerFairy TimToady: it's the right closer in German, though :) 04:27
ash_gti so, I made a set of scripts for using the perl.tmbundle perl6 grammar to create an html page github.com/ashgti/perl6-syntax-hig...validation 04:29
dalek p: 63987b2 | TimToady++ | src/QRegex/P6Regex/Grammar.nqp:
allow low openers in regex too
TimToady thinks there are more Spanish speakers in the world than German... 04:30
ash_gti en.wikipedia.org/wiki/List_of_langu...e_speakers agrees with you 04:31
TimToady waits for someone to put in a vote for high-reversed-9 quotes.. 04:33
m: say q‟foo” 04:34
camelia rakudo-moar 61c59d: OUTPUT«foo␤»
04:34 Hor|zon joined
TimToady who uses those? 04:34
ash_gti would that make “ not interpolate? 04:37
m: my $f = 123; say q”f is $f”;
camelia rakudo-moar 61c59d: OUTPUT«5===SORRY!5=== Error while compiling /tmp/7MM6CvEVEM␤Use of a closing delimiter for an opener is reserved␤at /tmp/7MM6CvEVEM:1␤------> 3my $f = 123; say q7⏏5”f is $f”;␤»
04:38 Hor|zon left
ash_gti m: my $f = 123; say q"f is $f"; 04:39
camelia rakudo-moar 61c59d: OUTPUT«f is $f␤»
TimToady actually, the Spanish don't apparently use the low quotes, according to en.wikipedia.org/wiki/Quotation_mark
ShimmerFairy Dutch does the „...” thing, though
TimToady that's mostly in .eu, and it's a mess, not surprisingly :)
ShimmerFairy at least we won't be supporting lojban quotes any time soon :P 04:41
TimToady I think we can handle Esperanto though 04:47
ShimmerFairy Hmm... I'm not sure about that one. :P 04:49
Mouq mo nabmi zo'e lu nu curmi la lojbo sitsku valsi… dang that's verbose
05:05 asdf12z_ left 05:07 adu joined 05:18 sirdancealot left 05:25 sivoais left
ash_gti heres an example of the syntax I started for TextMate and atom if anyone is curious rawgit.com/ashgti/b9f21f21bbcc63e4...ample.html 05:29
I think I am going to work on quotes next, like regexp and heredocs
05:31 renormalist left 05:34 kaare__ is now known as kaare_ 05:36 sivoais joined 05:37 renormalist joined
Mouq ash_gti: Nice! 05:37
05:41 tmch left
ash_gti does anyone know off the top of their head where the .LANG('MAIN','quote') is found? 05:44
or how I would find out where its defined? 05:45
05:52 xinming left 05:53 tmch joined 05:55 ash_gti left 05:58 asdf12z_ joined 06:02 Alina-malina left 06:05 ash_gti joined 06:16 colomon left, colomon joined 06:17 ssutch left 06:19 laouji left 06:21 Ben_Goldberg left 06:22 Hor|zon joined 06:27 Hor|zon left 06:32 aborazmeh left 06:49 raiph left 06:54 xfix joined 07:15 rindolf joined
Mouq ash_gti: github.com/perl6/nqp/blob/master/s...r.nqp#L643 07:18
(sorry for late reply)
Or do you mean… 07:19
What do you mean?
07:19 Sqirrel joined, laouji joined
ash_gti well, I am trying to figure out how to match different types of quotes so I was looking up the grammar for them 07:20
but in the rakudo perl6 grammar it loads the .LANG(‘MAIN’, ‘quote’)
Mouq .LANG('MAIN', 'quote') looks up the 'quote' rule in 'MAIN', which just means Perl6::Grammar 07:21
(usually :P)
m: my $interpolation = "here"; say 'no $interpolation\qq[ $interpolation]!' 07:22
camelia rakudo-moar 37f8dd: OUTPUT«no $interpolation here!␤»
Mouq ^^ That's what it means
Does that help? 07:24
ash_gti github.com/rakudo/rakudo/blob/nom/....nqp#L4661 is where I think the ‘q{foobar}’ is parsed, I think 07:25
07:25 laouji left
ash_gti m: say q{{foo bar foobar}}.perl; 07:25
camelia rakudo-moar 37f8dd: OUTPUT«"foo bar foobar"␤»
ash_gti m: say qw{{foo bar foobar}}.perl;
camelia rakudo-moar 37f8dd: OUTPUT«("foo", "bar", "foobar")␤»
07:29 davido__ left 07:31 davido_ joined 07:44 gfldex joined 07:47 fhelmberger joined 07:48 jack_rabbit joined 07:52 fhelmberger left, pyrimidi_ joined 07:53 pyrimidi_ left 08:03 aborazmeh joined, aborazmeh left, aborazmeh joined 08:05 prime- left 08:07 Alina-malina joined 08:11 virtualsue joined, Hor|zon joined, prime joined 08:16 Hor|zon left, darutoko joined 08:22 Kristien joined 08:25 Kristien left 08:28 diana_olhovik_ joined
ash_gti rawgit.com/ashgti/055797e1199b5cff...ar.pm.html I ran the Perl6/Grammary from Rakudo through the syntax highlighter, let me know if anyone sees any glaring mistakes, its not complete yet, but its an improvement 08:29
08:30 virtualsue left
Mouq ash_gti++ 08:30
ash_gti: It doesn't seem to handle "$<B>" 08:31
ash_gti ya, its not recongizing any of the regexp language either yet
I also need to match package names and subnames
I am getting a bit tired, but I’ll try to work on this a bit more tomorrow, cya 08:33
08:34 ash_gti left 08:36 diana_olhovik__ joined 08:37 diana_olhovik_ left 08:43 MadcapJake left, MadcapJake joined 08:44 Aurelie joined 08:52 aborazmeh left 08:53 _mg_ joined 08:54 virtualsue joined 08:55 wicope joined 08:59 _mg_ left
lizmat .botsnack 09:04
yoleaux :D
03:18Z <TimToady> lizmat: (key => 0).Bag must remove key or it violates the bag's contract; the whole point of a Bag with 0 items in it is that that is no different from an empty Bag
03:19Z <TimToady> lizmat: Throwing info away is not our lowest ideal, or however you say that...
09:12 jack_rabbit left, Hor|zon joined 09:14 rurban joined 09:16 dj_goku left 09:17 Hor|zon left 09:20 espadrine joined
dalek kudo/nom: 300167d | lizmat++ | src/core/Baggy.pm:
Allow Failure to percolate up

Pretty sure this is tested with a "dies_ok" in the spectest, and not with a
  "throws_like", so the test was passing for the wrong reason on (a=>-1).Bag
09:23
09:25 Rounin joined 09:27 dj_goku joined, dj_goku left, dj_goku joined 09:32 diana_olhovik__ left 09:34 diana_olhovik joined
DrForr_ G'morning. Is there a specific place to report bugs? I've got a fairly simple test case that takes out te VM I ru perl6 on. 09:43
(was looking at the p6 wiki for a site, nothing really stood out.)
09:44 virtualsue left
moritz DrForr_: [email@hidden.address] 09:46
DrForr_ Thanks. I'm stripping down the test case, will send it soonish.
jnthn .tell TimToady it's a little pain with our one-passness, but I wonder if *%_ generation being triggered by the presence of a nextsame/callsame somewhere in the method body would do it. 09:48
yoleaux jnthn: I'll pass your message to TimToady.
09:49 mr-foobar left 09:50 mr-foobar joined 09:53 rurban left 09:56 lizmat left 09:59 adu left 10:02 lizmat joined 10:03 rurban joined 10:06 kst` joined, kjs_ joined 10:07 kst left
dalek c: ea1a253 | moritz++ | lib/Type/Cool.pod:
Cool: sub forms of abs, sqrt; examples
10:10
10:16 jack_rabbit joined 10:17 mr-foobar left 10:18 mr-foobar joined 10:28 jack_rabbit left 10:29 kjs_ left
lizmat commute& 10:42
10:42 lizmat left 10:47 kjs_ joined
dalek kudo/nom: dcda6c3 | (Carl Masak)++ | src/core/Temporal.pm:
disallow .later() without any named arguments
10:47
masak someone(tm) is welcome to add a spectest to check for that, too. 10:48
jnthn m: use Test; dies_ok { now.later } 10:50
camelia rakudo-moar 300167: OUTPUT«ok 1 - ␤»
jnthn m: now.later
camelia rakudo-moar 300167: OUTPUT«No such method 'later' for invocant of type 'Instant'␤ in block <unit> at /tmp/V9f7kygmlw:1␤␤»
jnthn Oh :)
m: DateTime.now.later
camelia rakudo-moar 300167: OUTPUT«use of uninitialized value $unit of type Any in string context in sub thread_junction at src/gen/m-CORE.setting:1␤␤use of uninitialized value $unit of type Any in string context in sub thread_junction at src/gen/m-CORE.setting:1␤␤use of uninitial…»
jnthn m: dies_ok { DateTime.now.later }
camelia rakudo-moar 300167: OUTPUT«5===SORRY!5=== Error while compiling /tmp/Ajkgtwv4Vw␤Undeclared routine:␤ dies_ok used at line 1␤␤»
jnthn m: use Test; dies_ok { DateTime.now.later } 10:51
camelia rakudo-moar 300167: OUTPUT«use of uninitialized value $unit of type Any in string context in sub thread_junction at src/gen/m-CORE.setting:1␤␤use of uninitialized value $unit of type Any in string context in sub thread_junction at src/gen/m-CORE.setting:1␤␤use of uninitial…»
jnthn masak: Does that one pass with your branch?
uh, your commit
masak $ perl6 -e 'use Test; dies_ok { DateTime.now.later }' 10:54
ok 1 -
DrForr_ bug report sent.
masak DrForr_++
10:56 diana_olhovik left 10:57 laouji joined
DrForr_ It's a rare edge case I imagine, but it should still throw a compile-time error rather than what it did. 11:00
11:01 Hor|zon joined 11:02 laouji left
jnthn m: say 5.54 / 19.86 11:04
camelia rakudo-moar 300167: OUTPUT«0.278953␤»
11:06 Hor|zon left
FROGGS_ you are calculating your hight divided by the year of birth in percent? 11:09
jnthn haha :P 11:14
That's off by one on my birth year though :P
DrForr_ Is that the bug? :) 11:15
jnthn No, the calc was time after / time before of a benchmark (the after being when I implemented a few things missing in the JIT so it could JIT-compile a benchmark :)) 11:16
Which accounts entirely for some of the native-ref performance slowdowns.
And partially for a couple of them.
11:17 sirdancealot joined
FROGGS_ ewww 11:18
[ptc] how does one extract the Pod structure of a file containing code and Pod? I've found that EVAL("filename") on a pure-Pod file returns this structure, but a file containing both runs the code only 11:19
there's probably something simple I'm missing, but grepping the specs, docs, rakduo hasn't turned up much 11:20
11:20 spider-mario joined
jnthn m: say 606 / 1155 11:27
camelia rakudo-moar dcda6c: OUTPUT«0.524675␤»
11:44 telex left 11:46 telex joined 11:50 vendethiel left 11:55 vendethiel joined 12:00 kjs_ left
[Tux] FROGGS_, Slang::Tuxic fails on nameless sub with arg-spec - gist.github.com/Tux/c57969dc265fb0012408 12:02
FROGGS_ [Tux]: that's kinda expected
[Tux] :(
FROGGS_ since 'sub' can be a subroutine name, unlike in other lanugages 12:03
languages*
[Tux] hmmm
12:04 kjs_ joined
jnthn Try spelling it out as "anon sub" maybe 12:05
Alternatively, if you don't need to use "return" in there, go with a pointy block 12:06
12:08 kjs_ left, mr-foobar left, isBEKaml joined
[Tux] anon sub works. I'll go with that for now 12:09
dalek kudo/native-ref: ed74d05 | jnthn++ | src/Perl6/Optimizer.nqp:
Annotate return type on node post-inline.

Allows full inlining on chains like '$x ~ $y ~ $z', where the types of
  $x, $y, and $z are all known.
12:10
12:15 vendethiel left 12:17 vendethiel joined 12:22 virtualsue joined 12:23 perl6_newbee joined
perl6_newbee hi all 12:28
what happened to MIME::Base64?
I want to install LWP::Simple but got error: MIME::Base64 is not present in the module ecosystem
temporarly vanished?
12:28 laouji joined
perl6_newbee also gone by purpose? 12:29
dalek kudo/native-ref: 1145f2a | jnthn++ | src/Perl6/Optimizer.nqp:
Optimize away ref taking when args are known ro.

This only works for subs, and then only those we can compile-time analyze. Still, that covers quite a lot of ground for code using native types.
kudo/native-ref: 45f77e5 | jnthn++ | src/core/Stringy.pm:
Add prefix:<~> candidates for native int/num.

We can handle these very cheaply, and have them inlinable.
jnthn perl6_newbee: No idea, it's still listed on modules.perl6.org/ 12:30
perl6_newbee yeah, listed it is.
I will update rakudobrew and panda and try again 12:31
12:33 laouji left
moritz ecosystem-api.p6c.org/projects.json also includes it 12:34
12:35 coffee` joined 12:38 vendethiel left
perl6_newbee I had to update panda, now it is installing. However, I had to git ignore the panda/ext directory, before it did the pull request 12:40
dalek Heuristic branch merge: pushed 44 commits to nqp by jnthn 12:43
jnthn That was the merge of native-ref in NQP
moritz \o/
12:45 virtualsue left
[ptc] moritz: have you got a minute? 12:45
moritz [ptc]: yes
dalek p: a01002f | jnthn++ | tools/build/MOAR_REVISION:
Bump MoarVM for JIT of some native ref ops.
12:46
[ptc] I'm trying to extract pod from source files containing both code and pod, however have hit a bit of a wall
I've worked out that one can slurp in the file and EVAL that (with $=pod on the end) and that creates a pod structure
however, that's only if there is *only* pod in the file
moritz right, otherwise it runs the code 12:47
[ptc] how does one extract the pod structure without running the code in the file?
exactly
moritz [ptc]: maybe it requires a rakudo patch
[ptc] and the EVAL trick I found inside htmlify, hence why I thought you'd know :-)
moritz [ptc]: at least off-hand, I can't think of anything clever
[ptc] oh
how does --doc work then?
moritz from inside rakudo :-) 12:48
[ptc] ah
moritz but that's a good lead
check what it does
[ptc] already have, and got a bit lost...
moritz here's a really, really hacky idea
write to Pod::To::Perl module
that simply returns $pod.perl
then run perl6-m --doc=Perl thefile 12:49
12:49 rurban left
moritz capture the output, eval it 12:49
did I mention it was really, really hacky? :-)
[ptc] you're right, that *is* hacky! :-D
[ptc] grings
*grins
12:50 Hor|zon joined
[ptc] how do I write to the Pod::To::Perl module? 12:50
moritz class Pod::To::Perl { method render($pod) { $pod.perl } } 12:51
[ptc] ok
[Tux] wonders if he did not understand defaults correct ... 12:52
method foo (Str $needed, Int $optional = 0) { ... }
$optional being default, right? And set to 0 if not passed 12:53
jnthn [Tux]: Yes
moritz yes
[Tux] but it *also* renders it to be readonly
jnthn Sure
[Tux] if '$optional--' is used inside the sub, Cannot assign to an immutable value
moritz all parameters are
jnthn Just making something have a default doesn't magic up a container. 12:54
Add "is copy" for that
moritz unless marked 'is rw' or 'is copy'
[Tux] alters assumptions in his mind (that might take a bit)
12:55 Hor|zon left
perl6_newbee FYI: installing LWP::Simple failed, because get-unsized.t tries to get rakudo.org, and that is down. Had to install with --notests 12:55
12:56 vendethiel joined, rurban joined
[ptc] moritz: it works! 12:56
moritz [ptc]: that's a bit scary
[ptc] it's also very cool, and allows me to get a bit further :-) 12:57
thanks heaps!
moritz you're welcome 13:01
jnthn: fwiw I got no new spectest failures due to the nqp merge (with a rakudo that uses the new nqp, of course) 13:06
FROGGS_ moritz: there seems to be a problem with NULLs in DBIish with the Pg driver 13:07
moritz FROGGS_: care to elaborate (or even better, open an issue?) 13:08
FROGGS_ moritz: when I select row, I get a NULL back as an empty string
moritz :(
FROGGS_ when I then select rows with a where clause and that empty string, I of course dont get back the said rows 13:09
jnthn moritz: Yay. And rakudo native-ref merge coming up soon too :)
FROGGS_ moritz: so I think we want to use the Str type object for NULLs
13:09 Aurelie left
dalek Heuristic branch merge: pushed 63 commits to rakudo/nom by jnthn 13:15
jnthn Vive le native-ref
Or something. :)
13:15 laouji joined 13:16 isBEKaml_ joined 13:17 isBEKaml left
[Tux] if @aoa is a list of @aof's, like [[1,2,3],[4,5,6],[6,7,8]], how do I do «for @aoa -> @aof { for @aof -> $f { ... }}»? 13:17
jnthn [Tux]: As in, without needing the outer loop? 13:18
[Tux] no, as in how will @aof be a list
as in perl5's @$ref
jnthn m: sub foo(@a) { say elems @a }; foo(my @ = 1, 2, 3); foo([1,2,3]); 13:20
camelia rakudo-moar dcda6c: OUTPUT«3␤3␤»
jnthn The signature binding itself removes the outer Scalar
And -> @aof { ... } is just a lambda, so the @aof is a signature, so it's normal sig binding semantics there 13:21
arnsholt jnthn++ # Habemus i++!
13:21 Alina-malina left, Alina-malina joined
[Tux] my sub has a (*@args) signature. If @args.elems == 1 and @args[0].^name ~~ /Array/ I want to expand @args[0] instead of using @args 13:21
arnsholt, for native int ? 13:22
[Tux] compiles again
jnthn oh... 13:23
[Tux] gist.github.com/Tux/a1e61d22f31d30a5c8bf <= code example speaks louder than words
moritz FROGGS_: can you please open an issue for the NULL thingy? 13:24
FROGGS_ moritz: will do in a bit
jnthn m: sub has-a(*@args) { @args = @args>>.flat; say @args.perl; }; has-a(1); has-a(1, 2, 3); has-a([1,2,3]);
camelia rakudo-moar dcda6c: OUTPUT«Array.new(1)␤Array.new(1, 2, 3)␤Array.new(1, 2, 3)␤»
jnthn [Tux]: Like that?
[Tux] :)
see, how much I still need to learn? :) 13:25
Inline::Perl5 now fails on moar
getlexref_i: lexical is not an int 13:26
in method unpack_return_values at lib/Inline/Perl5.pm6:413
jnthn Hmm
Trust a module I have no idea how to build on Windows to be the one that fails :/
[Tux] but yeah $i++ FIX !!!!
jnthn++
tux.nl/Files/20150301142709.png 13:27
jnthn notes that $native-i++ needs some perf work yet
[Tux]: :) 13:28
[Tux]: Is the s{} one the thing you already filed in RT? 13:29
[Tux] don't know. that was one of the first and I am not really sure if it is a bug or something actually impossible
13:29 laouji left
[Tux] gist.github.com/Tux/8d83069f3bb2b87cf98c <= that is the test case 13:31
=> Cannot call 'subst-mutate'; none of these signatures match:
jnthn, I cannot use >>.flat, as it seems to remove undefined items from the list :( 13:33
probably related to dropping Nill
jnthn Ugh 13:35
[Tux] bug?
jnthn Well, we know Nil should not be dropped
Is there any reason you don't write a pair of multis to handle the case? 13:36
multi foo(@arr) { }; multi foo(*@arr) { }
bartolin |Tux|: wrt to your gist: there is RT #123597 about s{} only working on strings
synopsebot Link: rt.perl.org/rt3//Public/Bug/Displa...?id=123597
bartolin and jnthn++
[Tux] bartolin, yep, that one 13:37
thanks
jnthn I think I know the problem with Inline::Perl5, but gotta go for a bit...
bbi~1h
bartolin [Tux]: np
[Tux] must go 13:39
thanks again for the help
13:42 isBEKaml_ is now known as isBEKaml, isBEKaml left, isBEKaml joined 13:51 Hor|zon joined 13:54 grondilu joined
grondilu m: my int $n = 0; say $n++ 13:54
camelia rakudo-moar 8e0cc1: OUTPUT«0␤»
grondilu m: say (my int $ = 0)++ 13:55
camelia rakudo-moar 8e0cc1: OUTPUT«Expected a native int argument for '$a'␤ in sub postfix:<++> at src/gen/m-CORE.setting:5617␤ in block <unit> at /tmp/0iP02V4nhw:1␤␤»
13:55 Aurelie joined
grondilu m: say (my int $n = 0)++ 13:55
camelia rakudo-moar 8e0cc1: OUTPUT«Expected a native int argument for '$a'␤ in sub postfix:<++> at src/gen/m-CORE.setting:5617␤ in block <unit> at /tmp/kuO7g1tuB2:1␤␤»
13:56 Hor|zon left 13:57 isBEKaml left
masak jnthn++ # vive le native-ref! \o/ 14:10
14:10 mj41 joined 14:11 gfldex left
vendethiel masak: it's "la" ;p 14:19
masak vendethiel: vive la reference native! 14:20
14:24 [TuxCM] joined 14:30 laouji joined
mj41 Hi, rakudo.org down? 14:31
masak seems like. :( www.downforeveryoneorjustme.com/rakudo.org 14:33
"It's not just you! rakudo.org looks down from here."
14:33 Humbedooh left 14:35 laouji left
FROGGS_ m: my $s = "foo"; $s &&~= "bar"; say $s # :o( 14:37
camelia rakudo-moar 8e0cc1: OUTPUT«5===SORRY!5=== Error while compiling /tmp/o8vdT8b39p␤Preceding context expects a term, but found infix ~= instead␤at /tmp/o8vdT8b39p:1␤------> 3my $s = "foo"; $s &&~=7⏏5 "bar"; say $s # :o(␤»
14:40 Humbedooh joined, Humbedooh left, Humbedooh joined
masak FROGGS_: &&~= ? 14:42
FROGGS_ like &&= 14:43
concat if lhs is trueish
masak m: sub infix:<&&~>($l, $r) { $l ?? $l ~ $r !! $r }; my $s = "foo"; $s &&~= "bar"; say $s 14:45
camelia rakudo-moar 8e0cc1: OUTPUT«foobar␤»
masak there ya go.
psch \o
masak o/
FROGGS_ masak++ 14:46
14:46 zakharyas joined
psch vendethiel: i have a «public String run(String code)» prototype running, albeit with a few weirdnesses 14:47
vendethiel psch: sounds amazing.
psch vendethiel: first call is expectedly slow, but it gets faster after that
vendethiel oooh :o)
14:48 virtualsue joined
psch reusing CompilationUnits doesn't work, which probably has reasons, i'm not particularly knowledgable what those might be 14:48
the weirdest bit is that for some reason it tries to load CORE.setting, doesn't find it, but still works :s 14:49
vendethiel: gist.github.com/peschwa/96571d2ce74cedeea055O 14:50
colomon++ seems to be smoking currently, which influences the timings
vendethiel psch, four o four
psch huh 14:51
gist.github.com/peschwa/96571d2ce74cedeea055
where did that O come from...
14:53 rmgk left, rmgk_ joined, rmgk_ is now known as rmgk
[TuxCM] "WHICH" link on doc.perl6.org/routine/%3D%3D%3D is 404 14:55
psch getting the CLASSPATH right is also rather arcane currently, because we need not only the jars in there, but also the path for at least one of them, because we're looking through CLASSPATH ourselves to find a specific jar
14:56 raiph joined 14:58 colomon left 14:59 colomon joined 15:01 Humbedooh left 15:06 colomon left, colomon joined 15:07 Hor|zon joined 15:11 Hor|zon left
jnthn m: say nqp::iscont_i(my int $n) 15:12
camelia rakudo-moar 8e0cc1: OUTPUT«1␤»
jnthn m: say nqp::iscont_i(my int $n = 0)
camelia rakudo-moar 8e0cc1: OUTPUT«0␤»
vendethiel psch: thanks
jnthn Ah
m: say nqp::iscont(my $n)
camelia rakudo-moar 8e0cc1: OUTPUT«1␤»
jnthn m: say nqp::iscont(my $n = 0)
camelia rakudo-moar 8e0cc1: OUTPUT«1␤»
jnthn Innerestin
m: my int $n = 0; say $n++; say $n; 15:14
camelia rakudo-moar 8e0cc1: OUTPUT«0␤1␤»
jnthn 0 is of course the correct answer for the first say :)
Got a couple of quick errands, then will do tests/fix to fix my bustage of IP5... 15:15
15:16 bcode left, bcode joined
vendethiel psch: linked that to blackrush. he seemed pretty happy :) 15:20
15:21 diana_olhovik joined 15:23 laouji joined
psch vendethiel: well, it's a start. glad they like it though 15:25
vendethiel psch: sure, but you've been consistently doing a sizeable amount of sheer improvements to the jvm side 15:26
masak psch++ 15:31
15:33 rurban left
psch vendethiel: i've updated the gist with a bit of details and current state. i'll probably PR this as soon as i figure out why the ModuleLoader tries to nqp::loadbytecode(Any) 15:37
15:37 adu joined
[TuxCM] if |@x is flattening a list, why is «$x=[|@x]» wrong? 15:39
dalek kudo/nom: 4e8be35 | usev6++ | t/02-rakudo/repl.t:
Add test file for REPL to t/02-rakudo

therefore I copied one test from t/spec/S19-command-line/repl.t to a new test file under t/02-rakudo. I added two further tests for the REPL taken from RT tickets.
kudo/nom: 88e2ef4 | jnthn++ | t/02-rakudo/repl.t:
Merge pull request #377 from usev6/nom

Add test file for REPL to t/02-rakudo
psch [TuxCM]: i think of foo(|@bar) not as flattening @bar but as lowering it's values into the signature 15:41
that seems to be closer to what it actually does. i'm not sure how the synopses call it
jnthn The way it is at prevent, | is only meaningful inside an argument list 15:42
*present
dalek : 40862e1 | usev6++ | misc/rt.perl.org/tickets_closed_parrot_only.txt:
Some more closed 'parrot only' tickets
[TuxCM] sometimes it feels that I am working on the ede of legal perl6 :)
edge
jnthn bartolin: Test 2 fails on Windows 15:43
adu \o
bartolin jnthn: :-/ 15:44
jnthn bartolin: It's not an issue yet though as it's not actually been added to the set of things "make test" runs... ;)
I see:
) was unexpected at this time.
not ok 2 - >>.() does not crash in REPL
And
# expected: 'foo'
# got: ''
bartolin jnthn: I'll take a look later
jnthn bartolin++ 15:45
bartolin it passes on my linux box ...
jnthn m: my $b = Buf.new(0, 0); $b[0, 1] = 2, 3;
camelia ( no output )
jnthn m: my $b = Buf.new(0, 0); $b[0, 1] = 2, 3; say $b;
camelia rakudo-moar 8e0cc1: OUTPUT«Buf:0x<02 03>␤»
jnthn \o/
[TuxCM] m: my@x=(1,"ff",Str,"",3);.perl.say for @x;"==".say;.perl.say for @x>>.flat; 15:46
camelia rakudo-moar 8e0cc1: OUTPUT«1␤"ff"␤Str␤""␤3␤==␤1␤"ff"␤""␤3␤»
[TuxCM] Str got lost (because of ().list)
dalek ast: 09e4acc | jnthn++ | S09-subscript/slice.t:
Unfudge test for RT#123594.
15:47
synopsebot Link: rt.perl.org/rt3//Public/Bug/Displa...?id=123594
15:49 laouji left, laouji joined, laouji left
skids jnthn++ \o/ 15:49
16:03 beastd joined
nine_ jnthn: there's a trivial workaround for the Inline::Perl5 fail. But since I am actually using a native int there and the bug is trivial to golf down, I guess it's in your domain. 16:05
m: loop (my int32 $i = 0; $i < 5; $i++) { say $i; }
camelia rakudo-moar 8e0cc1: OUTPUT«getlexref_i: lexical is not an int␤ in block <unit> at /tmp/ObJHmTssLT:1␤␤»
jnthn nine_: Yes, I already golfed it to that 16:06
nine_: Most of the way to a fix too :)
And will add spectests also
nine_ jnthn++ :) 16:07
So it's actually cool that my code helped uncover a bug :) 16:08
masak loves when that happens :> 16:09
nine_ I guess loop is not very common in Perl 6 code ;)
jnthn Bug and insufficient spectest coverage, aye :)
masak nine_: I never use the C-style `loop`, no. 16:10
nine_ masak: I guess I can count the number of times I used one in the past decade in Perl on one hand. But on occasion it's really just the right tool. 16:12
masak nine_: not gonna argue with you. we don't have to have widely different styles for that to be true. let's just say I'm a fan of `next` in my loops. 16:13
nine_ masak: I do remember some good arguments of your's for 'next' from the passt few days, yes. 16:15
nwc10 jnthn: hangon, so NQP native-ref branch is now dead (no lnger needed)? 16:16
oh, and Rakudo?
nine_ nwc10: both merged 16:17
16:18 brrt joined, xinming joined
jnthn nwc10: Yeah, though I'm still dealing with one bit of fallout 16:18
nwc10 ASAN was happy with nom.
I wasn't aware that nom had new superpowers 16:19
brrt jnthn, this native-ref thing, what is it's purpose?
and more importantly, i think i can jit that much better :-) 16:20
jnthn brrt: Oh, it's designed so we will be able to JIT it way better.
brrt: My JIT patches were purely "simplest thing that unbreaks our ability to JIT things using these ops" :)
brrt yeah, i supposed that 16:21
jnthn brrt: The purpose is so we can use a bunch of native things as real first-class l-values.
brrt i see.. so that'd be at the compiler end i suppose 16:22
dalek p: c32d7f2 | jnthn++ | tools/build/MOAR_REVISION:
Bump MOAR_REVISION for sized native lex ref fix.
16:23
jnthn The VM knows about them for various reasons, not least so that it can elide a load of them over inlining boundaries that the static optimizer can't
Or even do escape proofs and do something scary but cheap (like, pass raw C-level pointers into things) 16:24
masak escape proofs! \o/ 16:25
dalek kudo/nom: 669f482 | jnthn++ | tools/build/NQP_REVISION:
Bump NQP_REVISION for Moar sized native lex refs.

This fixes a regression that Inline::Perl5 showed up.
jnthn nwc10: Yes, the native-ref branches are no more. 16:26
nwc10: There'll quite likely be one for native arrays at some point, though probably a rakudo only one
16:26 rurban joined, mr-foobar joined
masak ♡ native arrays ♡ 16:28
jnthn .u ♡
yoleaux U+2661 WHITE HEART SUIT [So] (♡)
dalek ast: 11c7d22 | jnthn++ | S02-types/native.t:
Tests for aliasing different kinds of native.

This covers a bug found in Inline::Perl5 where a lexref to an int32 didn't work out. However, the exact case in Inline::Perl5 is not an ideal test case as a slightly smarter optimizer will elide the lexref. Writing a test like this, however, will be a bit harder on it.
16:30
[TuxCM] if I want to support new () *AND* new ("String"), where string is *NOT* bound to an attribute, is it enough to just define «method new (Str $s) {...}»?
jnthn [TuxCM]: You'd better put a multi on that
[TuxCM] right, understood, but that would suffice? 16:31
jnthn Think so 16:32
16:32 zakharyas left
dalek Iish/pg-null: 73e39ad | moritz++ | t/99-common.pl6:
Test case for returning NULL
16:32
16:32 lsm01 left
nine_ jnthn: confirmed Inline::Python working again :) 16:33
jnthn \o/
nine_ s/Inline::Python/Inline::Perl5/
dalek Iish/pg-null: 313ecec | moritz++ | lib/DBDish/Pg.pm6:
Remove outdated comment
jnthn Bah, they start with the same letter and originated in the same millenium... :P 16:34
nine_ They're actually just two months apart. 16:35
dalek ast: a86da61 | jnthn++ | S02-types/native.t:
Partial RT #102416 unfudge.
16:36
synopsebot Link: rt.perl.org/rt3//Public/Bug/Displa...?id=102416
jnthn .tell TimToady I've tended to consider .WHAT as an object-y operation, so even though it's macro-esque already and not in any sense a method call, it still compiles the thing it's operating such that it wants a boxed object. Thus I'd not expected it ever could return a native type. Is there anything in the design docs supporting any view besides mine? :) 16:38
yoleaux jnthn: I'll pass your message to TimToady.
16:38 Akagi201 left
masak interesting post about author's dream language: eev.ee/blog/2015/02/28/sylph-the-pr...ge-i-want/ 16:39
whoever wrote that sure seems to know about Perl 6 :) 16:40
dalek Iish/pg-null: 152aa65 | moritz++ | lib/DBDish/Pg.pm6:
Pg: Return Str type object for NULL, FROGGS++
moritz ufo in the DBIish directory dies with This type cannot unbox to a native string 16:41
in method APPLY-MATCHES at /home/moritz/p6/rakudo/install/languages/perl6/runtime/CORE.setting.moarvm:1
16:42 Kristien joined 16:43 lsm01 joined
moritz the liner number is less-than-useful 16:44
16:44 Kristien left
moritz m: $_ = "abc"; s[b] = 42; .say 16:46
camelia rakudo-moar 669f48: OUTPUT«a42c␤»
moritz m: $_ = "abc"; .=subst(/b/, 42); .say 16:47
camelia rakudo-moar 669f48: OUTPUT«a42c␤»
moritz m: $_ = "abc"; .=subst('b', 42); .say
camelia rakudo-moar 669f48: OUTPUT«This type cannot unbox to a native string␤ in method APPLY-MATCHES at src/gen/m-CORE.setting:7572␤ in method subst at src/gen/m-CORE.setting:7501␤ in method subst at src/gen/m-CORE.setting:4688␤ in method dispatch:<.=> at src/gen/m-CORE.setting…»
jnthn Hm, that comes out with a saner line number... 16:49
skids m: sub f ($p, :$n, *% where { not +$_ }) { "$p $n".say }; f(1, :n); f(1, :n, :g); # IIRC someone wanted to shut down unknown nameds?
camelia rakudo-moar 669f48: OUTPUT«1 True␤Constraint type check failed for parameter '<anon>'␤ in sub f at /tmp/JsfpmLGswz:1␤ in block <unit> at /tmp/JsfpmLGswz:1␤␤»
masak skids: ...though for subs, that's done for you anyway. you'd want a method. 16:50
dalek kudo/nom: e7a666c | moritz++ | src/core/Str.pm:
Fix Str.subst(Str, Int)
16:50 Humbedooh joined
moritz and while it works that way, it doesn't give good error messages either 16:50
16:50 Humbedooh left, Humbedooh joined, laouji joined
jnthn moritz: oh, you beat me to it 16:50
masak skids: it's an intriguing idea, and one I didn't think of. but it doesn't solve the fundamental issue: we (reluctantly) like Interface Consistency. 16:51
jnthn moritz: You gonna add a spectest?
moritz jnthn: sorry, shoulda said something
jnthn: yes
jnthn OK, np
moritz++
16:52 brrt left
moritz finding rakudobugs while working on DBIish... that hasn't happened in a while :-) 16:54
16:54 Aurelie left, laouji left 16:56 Hor|zon joined
masak moritz++ # working on DBIish 16:56
16:57 wicope left
nine_ Oh, my "No such method '' for invocant of type 'Foo'" nemesis is back. And it's a real heisenbug. Really any kind of change to the test file will make it vanish. 17:00
masak sounds like you can easily make it go away, then :P
17:01 Hor|zon left
dalek Iish/pg-null: a78149b | moritz++ | t/25-mysql-common.t:
Reset mysql test user/password to what is documented
17:01
nine_ masak: I don't have anything to do then. It will go away just by upgrading rakudo. Just to reappear with some other future upgrade.
dalek kudo/nom: fe55c0e | jnthn++ | src/ (2 files):
Fix inlining/coercion type bad interaction bug.
b2gills m: class c { method d ( *% [] ){} }; c.d( :a )
camelia rakudo-moar 669f48: OUTPUT«Unexpected named parameter 'a' passed in sub-signature␤ in method d at /tmp/HzQSEClFgI:1␤ in block <unit> at /tmp/HzQSEClFgI:1␤␤»
dalek Iish: 73e39ad | moritz++ | t/99-common.pl6:
Test case for returning NULL
17:02
Iish: 313ecec | moritz++ | lib/DBDish/Pg.pm6:
Remove outdated comment
Iish: 152aa65 | moritz++ | lib/DBDish/Pg.pm6:
Pg: Return Str type object for NULL, FROGGS++
Iish: a78149b | moritz++ | t/25-mysql-common.t:
Reset mysql test user/password to what is documented
Iish: 4eb3a17 | moritz++ | / (3 files):
Merge branch 'pg-null'
pmichaud 17:07 <japhb> Was pmichaud able to do GLR work, or did the "if I can't, someone else do it" clause get activated?
moritz sorry for duplicate commits reported here, that was the branch merge
dalek ast: ba92bce | jnthn++ | S12-coercion/coercion-types.t:
Update fudging after fixing an optimizer bug.

Win 2 tests that the optimizer broke. Lose 1 that it made appear to work enough to pass the test bogusly.
pmichaud pmichaud still expects to do the GLR work, starting tomorrow.
moritz \o/
masak \o/
nine_ pmichaud: great news :)
pmichaud my "if I can't someone else do it" clause activates in April.
b2gills \DITTO/
jnthn pmichaud: Yay, look forward to it :) 17:03
skids GLR++ pmichaud++
jnthn pmichaud: Landed the native types improvements leading up to native arrays today :)
pmichaud jnthn++ 17:04
nwc10 \o/ 17:05
pmichaud: but only on the morning of the 1st April? (better be quick)
nine_ masak: the funny thing is that the exact same error exists in Inline::Python and Inline::Perl5. An extremely fleeting heisenbug that occurs in two totally different code bases. 17:07
masak nine_: it's been a looong time since I had a heisenbug of the severity you describe. 17:08
nine_: massive kudos if you catch it.
jnthn They're horrible to find. 17:10
moritz any luck with asan? 17:11
nine_ Even debug statements that never actually get called make it go away. What are the odds to hit the exact code to trigger the bug when there are so many possibilities to make it vanish? 17:12
moritz: trying my luck with valgrind right now
japhb ++pmichaud
:-)
jnthn++ # Native ref merge! 17:13
arnsholt nine_: Debug statements at the C level, or Perl 6 level? 17:14
moritz wow, hack has a load average of 12 17:16
lots of people spectesting 17:17
17:17 kjs_ joined
moritz and still 7GB free :-) 17:17
masak hasn't really internalized that in a rule, `<trait>*` and `<trait> *` mean different things... 17:18
nine_ arnsholt: Perl 6 and Python. Debug statements at the C level do work but there's not much happening at this level :/ 17:19
17:22 rindolf left
b2gills Speaking of heisenbugs, how random is the order of the keys of a hash? In Perl 5.18.0 the order was made very randomized, and it caused some heisenbugs to show up more often. 17:26
masak b2gills: I think the consensus is that any code that leans on the keys in a hash being in any *particular* order, is in the wrong. 17:27
(and might work as intended, or might not) 17:28
b2gills I was just wondering if the order of keys in Rakudo are anywhere near as random as Perl 5.18+
skids ISTR think they are not.
nine_ masak: since Perl 5.18 the hash key order is different on every run of the program. This uncovered lots of bugs where one indirectly depended on some hash key order. Like expecting parameters of URIs created by the URI module being in a certain order. 17:29
arnsholt nine_: Yeah, that's what I thought. Of course, if they had been at the C level, it'd be a strong indicator of pointer shenanigans 17:30
b2gills 5.18 uses One-at-a-time-hard for the hashing algorithm, which has three places where it adds randomness
masak nine_: yes. 17:31
nine_ Is there a way to have the GC run more often?
Like after every allocations or something like that?
arnsholt I think there's an op to force a gc, at least 17:33
b2gills m: sub add ( ::T $a, T $b --> T ){ $a + $b }; say add 5,6 17:34
camelia rakudo-moar fe55c0: OUTPUT«Type check failed for return value; expected 'T' but got 'Int'␤ in any return_error at src/vm/moar/Perl6/Ops.nqp:640␤ in sub add at /tmp/e1qgMiX8rF:1␤ in block <unit> at /tmp/e1qgMiX8rF:1␤␤»
17:36 coffee` left 17:37 khisanth_ is now known as Khisanth 17:42 coffee` joined
jnthn nine_: You can nqp::forcegc() or so 17:43
nine_: Alternatively, if you're dealing with MoarVM, edit src/gc/collect.h 17:44
nine_: And make MVM_NURSERY_SIZE much smaller
17:46 raiph left
nine_ jnthn: even the smaller nursery size hides the bug :/ 17:50
With 8K nursery size I get a Heap corruption detected: pointer 0x13c5880 to past fromspace. But 8K might really be too extreme
16K lets all tests pass. 17:54
8M lets all tests pass. Only with 4M I get the fail. So many variables that have to be right to trigger the bug 17:55
17:56 Hor|zon joined, Humbedooh left
raydiak \o morning #perl6 17:58
18:01 Hor|zon left, Kristien joined 18:02 gamo joined 18:03 raiph joined
gamo I'm having speed issues with rakudo 2015.02 18:03
nine_ Does NativeCall free char*s passed from C to Perl6 callbacks?
FROGGS_ nine_: I think so, but you can tell it to not do that 18:05
m: use NativeCall; my Str $str is explicitly_managed; # something like that
18:05 tmch left
camelia rakudo-moar fe55c0: OUTPUT«5===SORRY!5=== Error while compiling /tmp/THahC32ZHO␤Can't use unknown trait 'is explicitly_managed' in a variable declaration.␤at /tmp/THahC32ZHO:1␤------> 3eCall; my Str $str is explicitly_managed7⏏5; # something like that␤ expecting…» 18:05
FROGGS_ m: use NativeCall; my Str $str is explicitly-manage; # something like that 18:06
camelia rakudo-moar fe55c0: OUTPUT«5===SORRY!5=== Error while compiling /tmp/XZuaUkYY8m␤Can't use unknown trait 'is explicitly-manage' in a variable declaration.␤at /tmp/XZuaUkYY8m:1␤------> 3veCall; my Str $str is explicitly-manage7⏏5; # something like that␤ expecting …»
b2gills gamo: could you please be a little more specific? 18:07
FROGGS_ nine_: ahh, it is a sub explicitly-manage($str)...
gamo yes, I have a program that uses a lot of rand
and it runs very bad
b2gills m: say (^5).pick
camelia rakudo-moar fe55c0: OUTPUT«3␤»
b2gills m: say 5.rand 18:08
camelia rakudo-moar fe55c0: OUTPUT«2.54880842188154␤»
b2gills m: say (^5).roll(*)
camelia rakudo-moar fe55c0: OUTPUT«4 2 0 3 4 4 4 0 4 4 2 4 1 0 1 2 0 4 2 0 0 3 1 1 0 2 0 4 0 2 2 2 0 4 0 1 3 0 0 3 0 4 3 3 0 4 1 3 1 3 3 3 0 4 3 0 1 0 3 2 2 2 2 2 0 3 2 3 2 2 1 1 0 2 3 4 1 1 3 4 3 1 0 2 0 0 0 3 3 1 0 0 4 2 0 4 1 4 3 2 ...␤»
18:08 Rounin left
b2gills gamo: It would be helpful to see an example, there may be a better way to write it ^^ 18:09
nine_ FROGGS_: looks to me like that affects only the other direction? Str passed from Perl 6 to C
gamo given @cand.pick { 18:10
when 0 {
b2gills gamo: what is in @cand? 18:12
gamo a short list
b2gills gamo: perhaps you could show us a more comprehensive example with a GitHub gist or using a nopaste service 18:14
FROGGS_ nine_: from reading this I think it does not free it: MoarVM/src/core/nativecall.c:249
gamo ok, thanks
jnthn m: my @a = 1..10; @a.pick for ^100000; say now - INIT now 18:15
camelia rakudo-moar fe55c0: OUTPUT«0.9019056␤»
Kristien eheheh
gamo that's quick 18:16
Kristien I answered a Python question with AWK code on Stack Overflow and got an upvote.
nine_ FROGGS_: unmarshal_string is AFAIK again Str -> char*, not char* -> Str. The latter seems to be make_str_result
FROGGS_: confused me as well.
FROGGS_ dang
:P
18:17 xinming left
nine_ FROGGS_: but make_str_result again may or may not free the string depending on some MVM_NATIVECALL_ARG_FREE_STR flag 18:17
gamo thanks, bye
FROGGS_ nine_: true
nine_: and line 383 strips it? do I read that right? 18:18
jnthn gamo: Well, it's not crazy quick, but not too awful...
gamo: If you are seeing awful speed it's likely something else... 18:19
FROGGS_ nine_: I would suggest you write a short example code (using nativecalls tests in rakudo), and printf the result in nativecall.c at make_str_result
nine_ FROGGS_: yes, the line strips it from...somewhere.
FROGGS_: good empirical suggestion in the absence of people who know it for certain. I'm quite sure it does not free those strings. But there's so many places where I might read the code wrong. 18:20
18:22 zakharyas joined
gamo jnthn: I don't what thing could be 18:22
nine_ FROGGS_: the NativeCall callback test passes a string constant to the P6 callback. I guess if NativeCall were to free the string it would blow up right there.
FROGGS_ okay, now I understand it... line 383 makes sure that the free_str flag is not set, so later the string wont get freed
nine_: I also remember fixing parrot just recently were this line was missing and it tried to free a constant string pointer 18:23
aye
nine_ FROGGS_: then I guess we have enough certainty for a doc patch :) Where do the NativeCall docs live nowadays? 18:24
gamo jnthn: thanks, bye
18:24 Humbedooh joined, Humbedooh left, Humbedooh joined
FROGGS_ nine_: there is a synopsis and there are docs and examples in its former repository 18:24
I dunno where it *should* live though 18:25
moritz I'd be fine with having them in perl6/doc
otherwise, inside the rakudo repo
FROGGS_ yeah, I guess perl6/doc is the place where users would look first 18:26
m: say $*PERL.compiler.version 18:27
camelia rakudo-moar fe55c0: OUTPUT«v2015.2.153.gfe.55.c.0.e␤»
FROGGS_ m: say $*PERL.compiler.version.^methods
camelia rakudo-moar fe55c0: OUTPUT«new Str gist perl ACCEPTS WHICH <anon> <anon>␤»
nine_ Pull request sent 18:28
18:29 Humbedooh left 18:30 perl6_newbee left
moritz pull request merged. 18:30
dalek volaj: 0c8704a | niner++ | README.markdown:
Document memory management of strings passed to callbacks
volaj: c2ff93a | moritz++ | README.markdown:
Merge pull request #58 from niner/master

Document memory management of strings passed to callbacks
moritz nine_++
nine_ One just cannot be too explicit with regard to memory management when talking about C :) 18:33
18:34 rindolf joined 18:37 [TuxCM] left
raydiak nine_++ answers my questions before I ask them :) 18:38
moritz that's what documentation is all about, no? 18:40
for perl6/doc I try to answer previous #perl6 questions with doc, in the hopes that they'll come up again :-) 18:41
dalek rl6-roast-data: 0a245ff | coke++ | / (9 files):
today (automated commit)
18:43
raydiak that's a smart pattern...I guess there isn't much that *isn't* documented in our irclog
sivoais I'm curious. Why is the grammar so strict with whitespace? For example,
m: my $g = 41; $g ++; say $g 18:44
camelia rakudo-moar fe55c0: OUTPUT«5===SORRY!5=== Error while compiling /tmp/pseLed5rqz␤Preceding context expects a term, but found infix + instead␤at /tmp/pseLed5rqz:1␤------> 3my $g = 41; $g ++7⏏5; say $g␤»
sivoais versus just using $g++
I know that both Perl5 and C allow for having a space between the identifier and the operator 18:45
18:45 kjs_ left
dalek line-Python: a9e1c2a | (Stefan Seifert)++ | pyhelper.c:
Fix arguments of P6 callbacks being leaked

PySequence_GetItem returns a new reference to the item while PyTuple_GetItem returns a borrowed reference. Switch to the latter so we don't have to Py_DECREF the items.
18:47
line-Python: e7f924b | (Stefan Seifert)++ | pyhelper.c:
Fix leaking P6 method names on call

No need to copy the string holding the method's name, since NativeCall does not free() it anyway.
vendethiel psch: nice! 900ms for "say 1" is still a bit slow, but I'm sure something will happen :P 18:48
psch vendethiel: i had it at ~350ms with less load on hack at least once ;)
18:49 cognominal joined
Kristien Does Perl 6 to JS compiler emit Google Closure annotations? 18:51
won't do much good I guess 18:52
since a type mismatch in Closure is UB and in Perl 6 it's an exception
vendethiel pmichaud++ 18:53
b2gills m: sub infix:<++> ($a is rw, $b){ $a += $b }; my $a = 5; $a ++ 5; say $a; # sivoais: to allow infix operators of the same "name"
camelia rakudo-moar fe55c0: OUTPUT«10␤»
psch postcircumfix too 18:54
[Coke] we have psch's CLA if someone wants to pull the trigger on the rights. 18:56
psch cf. $itemhash<5> vs $itemhash < 5
and LTM/one-pass parsing
vendethiel psch: nice ;-).
FROGGS_ [Coke]: I'd like to but I'm not an admin for the rakudo repository :o( 18:57
18:57 Hor|zon joined
sivoais I see, so it is meant as a way to make the grammar extensible and fast at the same time. 18:57
dalek kudo/nom: 383f45d | usev6++ | t/02-rakudo/repl.t:
Fix test; a lot of quoting needed for Windows
18:58
kudo/nom: b8aa076 | FROGGS++ | t/02-rakudo/repl.t:
Merge pull request #378 from usev6/nom

Fix test; a lot of quoting needed for Windows
psch i don't get where that silly warning comes from though :/ 19:00
19:02 Hor|zon left, adu left
vendethiel masak: eevee has very interesting tweets at time. But this doesn't seem to go well with the p6 mind: "Importing a module dumps the entirety of its contents into your namespace. " 19:05
19:06 spider-mario left 19:08 zakharyas left 19:12 rindolf left 19:15 fun joined, fun is now known as Guest87462 19:16 cognominal left 19:17 Guest87462 left
timotimo gamo: are you still here? 19:19
yoleaux 28 Feb 2015 21:56Z <[ptc]> timotimo: unfortunately the require version wasn't working at all (errors with and without prove). The check needs to take place at compile time. Don't know what the best solution is though...
timotimo gamo: you can run perl6 --profile yourscript.p6 to get a better idea of what's going on performance-wise 19:20
moritz psch: welcome as a rakudo contributor, you've got a commit bit now
timotimo ++pmichaud # time for GLR allocated tomorrow
gamo thank you timotimo 19:21
timotimo gamo: i'm very performance-interested, FWIW 19:22
FROGGS_ moritz++ # pg-null
timotimo even if i'm not very good at making things faster, i do have an idea or two about what things may be slower
jnthn psch++ # welcome! 19:23
timotimo psch++ # rightfully a rakudo contributor now!
gamo thanks
timotimo not having been on IRC all day, backlogging was very enjoyable today
psch thanks :) 19:24
19:27 adu joined 19:32 gfldex joined
dalek frastructure-doc: 8aacc52 | moritz++ | hosts/hack.p6c.org.pod:
linkify rakudo
19:35
19:38 cognominal joined
literal hinrik.github.io/perl6.vim-gets-more-love/ # thought some of you might like this :) 19:40
19:40 laouji joined
timotimo literal: oh god yes 19:40
19:42 spider-mario joined, kaare__ joined
timotimo that is seriously amazing 19:43
thank you!
literal++ # a whole lot of magic for perl6.vim
19:44 laouji left
vendethiel literal++ 19:45
bartolin literal++
FROGGS_ literal++ 19:46
raydiak *gasp*! literal++ xx *
19:46 kaare_ left
arnsholt goes to update his dotfiles 19:47
vendethiel literal++ # again, because the amount of work is just real amazing :o)
flussence literal++ # that shortlog is long 19:49
dalek Iish: bc80488 | moritz++ | lib/DBDish/Pg.pm6:
Use native types in DBDish::Pg native functions

because we can. And maybe we save some boxes that way
nwc10 moritz: is the "Because we can" only possible because nativeref has landed? 19:50
moritz nwc10: no, I'm pretty sure it was possible before 19:51
FROGGS_ moritz: using 'int' or 'Int' in native subs is problematic
moritz: you should use int32 or long instead
moritz nwc10: DBDish code goes back 6 years, and I don't know if rakudo had native lexicals back then :-) 19:52
flussence
.oO( random thought I had earlier today - I've hit "I want to, but can't yet" enough times to justify collecting it all in a dedicated repo... )
moritz FROGGS_: if the C api docs say 'int', should I then use 'long' for NativeCall?
FROGGS_: that sounds wrong 19:53
jdv79 moritz: how come JSON::Tiny doesn't have some basic funtionality that i want:) like canonicalization and prettification.
moritz jdv79: look at that name again :-)
FROGGS_ moritz: C's int is int32
our int is almost C's long, but not quite 19:54
jdv79 Tiny, as originally defined by Adam K, doesn't preclude that sort of functionality
moritz I'm not Adam K :-)
nor do I take his words to be normative
jdv79 i just don't want to fork - seems unproductive 19:55
but ok...;)
moritz jdv79: not fork; just create a JSON that's based on JSON::Tiny
flussence and literal++ *again*, because my heredocs no longer look like rainbow confetti \o/ 19:56
moritz literal++
dalek Iish: 461b573 | moritz++ | lib/DBDish/Pg.pm6:
Pg: use int32

because FROGGS++ says it is more correct that way
19:57
timotimo literally literal++
19:58 Hor|zon joined
[Tux] Inline::Perl5 broke again: 19:59
t/call.t ...................... ok
===SORRY!===
No such method '' for invocant of type 'Foo'
timotimo yeah, nine saw that recently, too :( 20:00
[Tux] it was broken after jnthn++'s int $i++ fix this morning (MET), but repaired shortly after, now it is broken again 20:01
timotimo literal: could you also put a piece of code into the perl-vim repo that'd automatically detect .nqp files as perl6 syntax?
moritz [Tux]: seems to be an intermittent bug 20:02
20:03 virtualsue left, Hor|zon left
literal timtimo: yeah. I see that hoelzro already added something like that: github.com/vim-perl/vim-perl/commi...2dad736e7c 20:03
but it isn't working for me either
nine_ [Tux]: it's a heisenbug that first appeared sometime in January. Same bug hits Inline::Python but so far it eludes any debugging attempt
literal timotimo even
[Tux] panda install Inline::Perl5 PASS'd indeed now 20:04
timotimo "setf"?
literal it sets the filetype
nine_ [Tux]: it can even be different if the test runs using prove or make test (which just calls prove!)
timotimo ah
[Tux] :)
nine_ [Tux]: if you find some code other than this test that reproduces the bug I'd be highly interested. May help nail this.
[Tux] I made big progress today
at least, that is how I experience it 20:05
20:06 raiph left 20:08 telex left 20:10 telex joined 20:11 raiph joined
literal timotimo: this solves it for me, does it work for you? github.com/vim-perl/vim-perl/commi...ba803190fa 20:11
dalek ast: 21e81c7 | usev6++ | S04-declarations/my.t:
Unfudge two passing tests for rakudo.jvm
20:15
timotimo oh, actually 20:16
it seems like it already works? perhaps?
moritz nativecall question: there's a function that returns a pointer, and I know that it points to a buffer with $n bytes
how do I get those $n bytes in a Buf?
timotimo yeah, it seems it already worked before that commit; sorry!
FROGGS_ moritz: you don't :/
literal timotimo: it worked already, but only for previously existing files
timotimo oh!
moritz FROGGS_: that sucks 20:17
FROGGS_ moritz: I know
timotimo yes, indeed. literal++ # again
20:17 ash_gti joined
FROGGS_ moritz: we'd need to be able to declare a buffer with the number of expected elements in order to do that 20:18
moritz: that's also needed to have inlined CArray/buffers in CStructs 20:19
moritz FROGGS_: 'cause that's how postgresql transfers binary data
FROGGS_ jnthn: is it on our todo to allow the pendant to 'int *foo[32]' ? 20:20
moritz: you can return a CArray, and then slice n elements into a buffer
moritz FROGGS_: sounds possible, but slow and ugly
FROGGS_ but that's all you can do because we dont know the number of elements early enough 20:21
aye
20:21 cognominal left 20:22 wicope joined
FROGGS_ std: my Array[32] @a 20:22
camelia std 28329a7: OUTPUT«ok 00:00 137m␤»
FROGGS_ is that what I think it is? 20:23
moritz no
FROGGS_ :o(
m: my Array[32] @a
camelia ( no output )
moritz it's an array of arrays
FROGGS_ m: my Array[32] @a; say @a
camelia rakudo-moar b8aa07: OUTPUT«␤»
FROGGS_ m: my Array[32] @a; say @a.perl
camelia rakudo-moar b8aa07: OUTPUT«Array[Array[Int]].new()␤»
FROGGS_ moritz: is there anything in the design docs about an element number constraint? 20:24
moritz yes
std: my @a[32]
camelia std 28329a7: OUTPUT«ok 00:00 137m␤»
FROGGS_ ohh
m: my @a[32]
camelia rakudo-moar b8aa07: OUTPUT«5===SORRY!5=== Error while compiling /tmp/GIvLM_vwln␤Shaped variable declarations not yet implemented. Sorry. ␤at /tmp/GIvLM_vwln:1␤------> 3my @a[32]7⏏5<EOL>␤»
FROGGS_ then we need to make that work 20:25
20:25 tmch joined
moritz though I don't know the number of elements at compile time 20:25
FROGGS_: I think it's on jnthn++'s agenda
FROGGS_ ahh, good point
20:26 diana_olhovik left, darutoko left
timotimo whatever_curry only ends up eating 0.37s out of about 30s in core setting parse time 20:28
moritz m: say 0.37 / 30 20:29
camelia rakudo-moar b8aa07: OUTPUT«0.012333␤»
timotimo it gets called 13078 times over the course of stage parse 20:32
m: say 0.37 / 13078
camelia rakudo-moar b8aa07: OUTPUT«0.00002829␤»
timotimo that's kinda quick
masak literal++ # serious props for hinrik.github.io/perl6.vim-gets-more-love/
timotimo sometimes i forget how quick moarvm is when all you're doing is operations on basic-ish data structures
dalek kudo/nom: a6746fa | timotimo++ | src/Perl6/Actions.nqp:
just a tiny and ineffective micro-optimization
20:34
moritz timotimo: also note that if we replace the whatever-stars, the time is then spent compiling the replacement 20:35
timotimo "replace the whatever stars"? 20:36
moritz well, they are what causes the calls to the whatever_curry, no?
timotimo no, they are not :) 20:37
we call whatever_curry in pretty much every little operator
hence the 13k calls
20:37 xfix_ joined
timotimo isn't really making headway with the whatever curry chain + other operators work 20:39
ash_gti literal: have you ever looked at atom or textmates highlighting system? I am working on updating the perl.tmbundle to recognize perl6 better and I am basing it on the perl-vim syntax
20:40 xfix left, bjz left 20:43 Humbedooh joined
psch /o\ 20:43
rebasing my EvalServer improvements
and it doesn't work anymore 20:44
something about native-ref, i think. i get a «VerifyError: Bad type on operand stack»
"Type long_2nd (current frame, stack[3]) is not assignable to 'org/perl6/nqp/sixmodel/SixModelObject'" 20:45
i'm not sure if there's a useful way to find out which p6-level method a given jvm-method in e.g. CORE.setting.jar corresponds to
moritz psch: fwiw for the evalserver to be useful for our IRC bot, I'd need to be able to set a CPU time limit per execution 20:46
timotimo something not being automatically boxed again?
psch s/useful/useable/
moritz: i'm currently just trying to get it useable from some java application with an easy interface
moritz: but i'll keep that in might
timotimo: the bytecode method that dies calls p6decontrv, which doesn't appear to be called often in CORE.setting 20:47
moritz psch: I didn't expect a quick implemention
:-)
jnthn FROGGS_: Shaped arrays are on the agenda, at least :) 20:48
FROGGS_: That includes size
20:49 O_o_ joined
O_o_ p6 20:50
[Tux] closed 123924
20:50 silug left
literal ash_gti: I looked at Perl.plist in perl.tmbundle and immediately felt sorry for the person who wrote it :) 20:51
vimscript is bad enough, but this markup seems like a big pain to maintain 20:52
ash_gti ah, the TextMate editor has a better interface than the plist directly
jnthn psch: Ugh...let me know if you have a golf...
moritz some kind of transformation between shaped int arrays and bufs would be great
literal ash_gti: oh, I see
I haven't used Textmate
ash_gti gist.github.com/ashgti/fb444fd8af4daa68409f is the syntax I see in the editor
better~ish at least its not plist-xml 20:53
FROGGS_ jnthn: is there a syntax for returning a fixed sized buffer type? 20:54
jnthn: since TypeObj[size] seems to mean something different
jnthn Yes, that is parameterization
O_o_ 3 20:55
jnthn Probably there's a way, and if not there sure should be :)
FROGGS_ O_o_: do 'm: say 42'
moritz you can use parameterization both for type specialization and sizes, if that's what you want to do :-)
O_o_ 42
jnthn moritz: We may just :)
20:55 adu left
FROGGS_ jnthn: I think it is kinda weird that Foo[42] just seems to be the same as Foo[Int] 20:55
O_o_ m: say 42
camelia rakudo-moar a6746f: OUTPUT«42␤» 20:56
FROGGS_ O_o_++
jnthn FROGGS_: Not really, if it's defined as role Foo[::T] { } or so for example :)
ash_gti literal: also github.com/vim-perl/vim-perl/blob/...proc.pl#L1 I think is supposed to read #!/usr/bin/env perl
20:56 pierrot left
FROGGS_ hmmmm 20:56
masak O_o_: welcome! :)
O_o_ TYVM 20:57
m: say 3 20:58
camelia rakudo-moar a6746f: OUTPUT«3␤»
FROGGS_ btw, dev releases are now collapsed: testers.p6c.org/dist/A/Acme::Addsla...wn%3E.html
m: say 3 +< 5 # O_o_
camelia rakudo-moar a6746f: OUTPUT«96␤»
FROGGS_ (numeric bit shifting to the left)
20:59 O_o_ left
masak aww 20:59
FROGGS_ :/ 21:00
I scared him/her away
masak shouldn't have bit shifted
FROGGS_ yeah 21:01
timotimo FROGGS_: YES! lovely
FROGGS_ *g*
Ulti literal++ yay things that were annoying went away 21:03
[Coke] to use the new vim-perl, is "make install" sufficient?
21:04 tmch left
flussence (I wonder if that's one of the occasional randoms who mentally pattern-match the word "bot" via /list or search engine who believe it'll dispense leet haxor magic if they say the sekrit password. I've seen one or two attempts on that here in the past) 21:04
21:05 silug joined 21:06 mj41 left
masak flussence: you mean... no-one told you about the leet haxor magic camelia dispenses if you tell her the sekrit password? o.O 21:07
raydiak [Coke]: worked for me 21:08
ash_gti [Coke]: do you use vundle or pathogen? If so, you can just checkout the vim-perl repo to ~/.vim/bundle/vim-perl and it should autoload them, or if your not using one of those systems make install works as well
nine_ literal++ # you've just fixed the thing that literally annoyed my the most when using Perl 6 :)
21:09 dustinm` left
flussence masak: I never asked for the sekrit password... lazy evaluation and all that :) 21:10
21:11 brrt joined
moritz flussence: you probably also never got the leet haxor Unicorn magic from camelia :-) 21:11
it doesn't *ask* your for a password, for sure 21:12
nine_ /away asleep
raydiak 'night nine_
FROGGS_ gnight nine_
moritz good night nine_, and dream of reproduced and fixed heisenbugs 21:13
psch jnthn: i have no idea how i could even approach golfing this outside of the evalserver that it happens with 21:14
jnthn: and i'm actually thinking that i'm probably not setting up the CompilationUnit correctly or somesuch, to have this happen
[Coke] was just picking random p6 files to test with: t/spec/S05-modifier/perl5_6.t loses it on line 47 21:16
21:18 dustinm` joined, rurban left
ash_gti what does it look like for you [Coke] ? it seems okay at the moment to me 21:19
like 47, as in the line: #?rakudo 2 todo "needs RT" 21:20
?
[Coke] it turns purple from that point on. 21:22
21:22 xfix_ left
[Coke] which makes me think that "make install" didn't work. 21:22
dalek ast: 8d25686 | usev6++ | S04-phasers/init.t:
Add test for RT #122765
21:23
synopsebot Link: rt.perl.org/rt3//Public/Bug/Displa...?id=122765
ash_gti [Coke]: also are you using vim 7.4? I opened a file in vim 7.3 and it barfed on some of the perl6 syntax regexp so I think it must require vim 7.4+ 21:25
dalek kudo/eval-server-improvements: 5f3cd01 | peschwa++ | src/vm/jvm/runtime/org/perl6/rakudo/RakudoEvalServer.java:
Add a RakudoEvalServer to call Rakudo from Java.

This builds on the NQP EvalServer and simplifies the Interface.
21:27
p/eval-server-improvements: 782e496 | peschwa++ | src/vm/jvm/runtime/org/perl6/nqp/tools/EvalServer.java:
Simplify running NQP code from Java.

This adds two 'run' methods to the EvalServer which lets us use the EvalServer from any Java application.
21:29 laouji joined
psch jnthn: those two branches and the following gist is what i'm doing gist.github.com/peschwa/96571d2ce74cedeea055 21:30
raydiak [Coke]: any chance your vim settings ignore/override the modeline? I notice that's the same line where it goes wrong if you :set ft=perl (instead of perl6)
dalek kudo/nom: 28fddba | peschwa++ | src/Perl6/Actions.nqp:
Fix a bug related to RT #123407.

For some reason MoarVm and JVM react differently to binding an NQPMu as attribute of a class. This patch side-steps this issue by stringifying a potential NQPMu.
21:32
synopsebot Link: rt.perl.org/rt3//Public/Bug/Displa...?id=123407
21:32 ash_gti left 21:33 laouji left
timotimo FROGGS_: can i help you make /recent.html work again on pandatesters? 21:34
FROGGS_ timotimo: sure, if you want
21:34 ninedragon is now known as fourdragon
FROGGS_ timotimo: generate the html when this script runs: github.com/perl6/cpandatesters.per...-report.pl 21:35
21:36 fourdragon is now known as ninedragon
timotimo "#!perl6"? 21:37
FROGGS_ timotimo: who cares? :o)
timotimo fair enough
FROGGS_ timotimo: that's from the old Bailador app: gist.github.com/FROGGS/bf3174f484b3458fc4a4 21:38
maybe it makes more sense to create a jobs/gen-recent.pl, that runs every N minutes 21:39
timotimo sounds sensible 21:43
21:47 Hor|zon joined
dalek ast: 8022cc3 | usev6++ | S02-types/isDEPRECATED.t:
Add test for RT #120908
21:48
synopsebot Link: rt.perl.org/rt3//Public/Bug/Displa...?id=120908
21:50 fhelmberger joined 21:52 Hor|zon left
FROGGS_ timotimo: btw, every push to the repo will be pull to the server within minutes 21:53
21:54 fhelmberger left 21:55 mohij joined
mohij o/ 21:56
timotimo OK
21:58 virtualsue joined
[Coke] yes, 7.3 22:06
22:07 dolmen joined
[Coke] I tried adding "set modelines=1" to my .vimrc, then I get a huge # of output trying to vim that file. 22:09
(which is probably the 7.3 vs. 7.4 issues?) 22:10
there we go. upgrade to 7.4 via macports fixed it. 22:12
raydiak \o/ 22:13
literal ah yes, I just realized that vim 7.4 introduced a regex feature (to limit backtracking) that I'm using in perl6.vim, so vim 7.3 complains
22:17 dolmen left 22:22 FROGGS_ left
raydiak literal: perhaps it could check the version and fail with a more helpful error message? 22:22
22:24 brrt left
vendethiel "Wow Perl 6 uses colon for a lot of things" as larry said -- "everyone wants the colon"! 22:24
22:26 kst`` joined 22:27 kst` left 22:32 Kristien left
japhb .ask jnthn Could you explain the reason for the performance difference between \a and $a params mentioned in 9cb3d64faab881cd8b4082f59417f98fea057d4b? 22:33
yoleaux japhb: I'll pass your message to jnthn.
22:37 wicope left, sirdancealot left 22:39 adu joined 22:41 virtualsue left
timotimo builds a perl6 for himself on hack.p6c.org 22:41
22:44 gfldex left
psch m: my int $a = 1; my $b := $a; $a++; # fails on jvm for me 22:51
camelia ( no output )
psch with "Expected a native int argument for '$a'"
psch hopes that's what's blowing up the EvalServer 22:52
dalek pan style="color: #395be5">perl6-examples: 38228e0 | paultcochrane++ | euler/prob001-cspencer.pl:
Document Euler problem 1
22:55
pan style="color: #395be5">perl6-examples: 606f851 | paultcochrane++ | rosalind/aspc-grondilu.pl:
Document rosalind problem aspc

Create the menu items
22:55 dalek left 22:56 dalek joined, ChanServ sets mode: +v dalek
raydiak is hoping to finish a giant, chunky Inline::Lua commit today...has proper refs, first-class functions, and tables exposed as array/hash/object/role/class...just needs some adjustment to precomp properly, a ton of typing in the README, and maybe some new tests 23:02
timotimo is it expected that when i fetch a value from a row that's declared to hold integers that DBIish gives me a string? 23:04
masak 'night, #perl6 23:06
raydiak good night masak
psch g'night masak 23:07
timotimo gnite masak 23:08
japhb o/
23:13 kjs_ joined
timotimo weird. DBIish says "can't locate native library libpq.so', but it's definitely installed 23:14
23:17 jack_rabbit joined
timotimo .tell FROGGS can you put a cron job in that runs jobs/gen-recents.pl for cpandatesters so i can test my stuff? 23:18
yoleaux timotimo: I'll pass your message to FROGGS.
raydiak timotimo: on my system sometimes ldconfig doesn't seem to do its job very well and I have to manually create links in the relevant lib/ along the lines of 'sudo ln -s libwhatever.so.0.1.2 libwhatever.so' 23:22
timotimo huh 23:25
mebbeh
raydiak e.g. it stopped me from trying some of your own early nativecall work until I figured it out 23:26
timotimo my own nativecall work? 23:27
i wonder what that was
hm. perhaps it was zeromq? 23:28
23:30 kjs_ left
raydiak gtk and cairo I think? 23:30
timotimo oh, that's not early :) 23:31
i suppose you could consider gtk early
literal raydiak: github.com/vim-perl/vim-perl/commi...d1ba15d69b 23:32
raydiak oh nice, literal++ again 23:33
psch huh, those tests fudged with only «"?"» are kind of appropriately labeled 23:35
S12-stubs/stubs.t has one
it dies when unfudged, with NPE, when run from that file or even when only the first two tests are copied to a different file
when *not* run through eval_lives_ok, it works
23:36 Hor|zon joined, SHODAN left
raydiak timotimo: yeah I guess "early nativecall" is a little different in my case...some time mid last year, the combination of rakudo performance advancements and getting a newer laptop made those things reasonably accessible to me :) 23:37
psch running the test code through EVAL also works...
dalek c: c1ef617 | paultcochrane++ | lib/Language/traps.pod:
Replace #=> with #->
23:37 beastd left
literal psch: where is S12-stubs? I don't see it in roast.git 23:37
timotimo raydiak: ah, makes sense :) 23:38
psch literal: oh, yeah. it's S12-class/stubs.t :)
23:38 SHODAN joined 23:39 mohij left 23:41 Hor|zon left 23:43 raiph left
timotimo damn, i can't run my gen-recents.pl through perl6-debug-m 23:43
my &main := Template::Mojo.new(slurp 'views/main.tt').code; #!> Cannot assign to a readonly variable or a value
tadzik: github.com/tadzik/Template-Mojo/pull/12 - please review 23:49
psch golfed it \o/ 23:51
timotimo p6: \o/
camelia rakudo-moar 28fddb: OUTPUT«5===SORRY!5=== Error while compiling /tmp/tmpfile␤Bogus statement␤at /tmp/tmpfile:1␤------> 3\o/7⏏5<EOL>␤ expecting any of:␤ prefix or term␤ prefix or meta-prefix␤»
psch something about callframe, from the looks of it
m: say "\o/" 23:52
camelia rakudo-moar 28fddb: OUTPUT«5===SORRY!5=== Error while compiling /tmp/_osTERpBgs␤Unrecognized backslash sequence: '\o'␤at /tmp/_osTERpBgs:1␤------> 3say "\7⏏5o/"␤ expecting any of:␤ argument list␤ prefix or term␤ prefix or meta-prefix…»
timotimo m: say Q[\o/] 23:54
camelia rakudo-moar 28fddb: OUTPUT«\o/␤»
23:56 kaare__ is now known as kaare_
psch huh, no, not callframe 23:57
gist.github.com/peschwa/ea19c808a7603e3fdddb that's a golf 23:58
the fun bit is that running the role stub in the mainline works, but evaling it two subs deeper doesn't \o/ 23:59
23:59 dayangkun joined