»ö« Welcome to Perl 6! | perl6.org/ | evalbot usage: 'perl6: say 3;' or rakudo:, niecza:, std:, or /msg camelia perl6: ... | irclog: irc.perl6.org | UTF-8 is our friend!
Set by sorear on 25 June 2013.
ingy vendethiel: cool!! 00:13
yoleaux 6 Sep 2014 23:14Z <vendethiel> ingy: I started a scala port of your stuff, and ended up fighting its regexps for around 3hours :d. they're so much better in 6 ;)
vendethiel ingy: I'll still be here for a while, btw, so we can chat 00:14
sorry for my non-presence those last 2 days
ingy oh god, np
I just fell off the module a day streak
by accident, but glad to have :)
leont is deep into async issues :-/ 00:15
vendethiel leont: i'm deep into php (so issues). wanna exchange? 00:16
leont Different kind of masochism 00:20
dalek kudo/nom: 9e524c9 | TimToady++ | src/Perl6/Metamodel/BOOTSTRAP.nqp:
slow and fastpath binders should have same message
00:25
lichtkind t/ecosystem.t failed while installing panda on recent mint 00:46
colomon lichtkind: what version/VM of rakudo? I just got a successful panda install with HEAD on Moar. 00:58
(on the other hand, NativeCall is badly broken today.)
lichtkind rakudo on parrot all latest pull 00:59
on mint 17
colomon okay, trying that on Ubuntu
lichtkind another question is $?FILE planned also become an IO::Path obj? 01:03
TimToady that doesn't necessarily make much sense, if the compiled file is on a completely different system than where $?FILE is used 01:05
the file in question might not even exist, if a module comes out of a database 01:06
lichtkind understand 01:07
and is such a thing as pair slices of arrays such we have in perl 5.20 ?
TimToady eh, surely if 5.20 has it, they borrowed the idea from 6 01:09
grondilu m: sub postfix:<a>(Int $n) { $n ~ 'A' }; say 3a 01:09
camelia rakudo-moar 4a7429: OUTPUT«3A␤»
grondilu m: sub prefix:<a>(Int $n) { 'A' ~ $n }; say a3 # is that OK if this fails?
camelia rakudo-moar 4a7429: OUTPUT«===SORRY!=== Error while compiling /tmp/9pV0y8H7Jl␤Undeclared routine:␤ a3 used at line 1␤␤»
TimToady or are you referring to something other than the :p adverb?
lichtkind yes that the thing i did not remember i just saw it once on the channel 01:10
r: @a = 'a'..'d'; say @a[1,2] :p 01:11
camelia rakudo-{parrot,jvm,moar} 4a7429: OUTPUT«===SORRY!=== Error while compiling /tmp/tmpfile␤Variable '@a' is not declared␤at /tmp/tmpfile:1␤------> @a⏏ = 'a'..'d'; say @a[1,2] :p␤ expecting any of:␤ postfix␤»
lichtkind r: @a = 'a'..'d'; say @a[1,2](:p)
TimToady my
camelia rakudo-{parrot,jvm,moar} 4a7429: OUTPUT«===SORRY!=== Error while compiling /tmp/tmpfile␤Variable '@a' is not declared␤at /tmp/tmpfile:1␤------> @a⏏ = 'a'..'d'; say @a[1,2](:p)␤ expecting any of:␤ postfix␤»
lichtkind r: my @a = 'a'..'d'; say @a[1,2](:p)
thanks
camelia rakudo-moar 4a7429: OUTPUT«Cannot find method 'postcircumfix:<( )>'␤ in block <unit> at /tmp/tmpfile:1␤␤»
..rakudo-jvm 4a7429: OUTPUT«No such method 'postcircumfix:<( )>' for invocant of type 'Parcel'␤ in any at gen/jvm/BOOTSTRAP.nqp:1697␤ in block <unit> at /tmp/tmpfile:1␤␤»
..rakudo-parrot 4a7429: OUTPUT«No such method 'postcircumfix:<( )>' for invocant of type 'Parcel'␤ in any at gen/parrot/BOOTSTRAP.nqp:1709␤ in block <unit> at /tmp/tmpfile:1␤␤»
TimToady no parens
lichtkind r: my @a = 'a'..'d'; say @a[1,2] :p
camelia rakudo-{parrot,jvm,moar} 4a7429: OUTPUT«1 => "b" 2 => "c"␤»
lichtkind so great thanks i maybe even use that for the article :) 01:12
r: my %a = 'a'..'f'; say %a<a> :p 01:15
camelia rakudo-{parrot,jvm,moar} 4a7429: OUTPUT«"a" => "b"␤»
lichtkind fantastic
TimToady p5 doesn't always acknowledge which of its new features were borrowed from p6, for understandable reasons :) 01:19
lichtkind at least i can mention it in my recent article about 5.20 syntax features 01:21
lichtkind btw my perl 6 op talk was in hannover and prague very well recieved but not so in sofia 01:27
TimToady YAPC::EU can be a tough crowd :) 01:30
otoh, many of our P6 devs are EuFolk 01:31
vendethiel "who doesn't 6 isn't eu" :p
lichtkind i now it just that i was in the main hall that was almost empty and half people were just playing laptop 01:32
TimToady "it tolls for eu"
lichtkind s/now/know/
TimToady well, I watched it, as you know from the backlog :)
everyone looked a little tired too 01:33
lichtkind no didnt seen that but i think its not even online yt 01:35
maybe you saw it from hannover
TimToady no, I watched the live feed in the wee hours of the morning
lichtkind ah
surely wasnt my strongest presentation 01:36
how you liked my neurological ramblings?
TimToady it was mostly good, a few weird spots 01:37
vendethiel which TimToady++ pointed out in the backlog
lichtkind yes xor slides was completly wrong but got fixed and reuploaded 01:40
maybe i get chance to explain later again the brain thing because i think its a major issue that brain can handle complexity best when not hinking in languag terms, that was a major eye opener to me 01:44
TimToady there were a few other things mentioned after irclog.perlgeek.de/perl6/2014-08-22#i_9226571 01:47
lichtkind i mentioned xx too but later on list ops so i think i got that right 01:49
and comparing parcels to sig was purely on optical point 01:50
yeah i stumbeled a bit over my tong on that but in german r czech it went better
and like said i took almost half an hour to fix all errors i found before uploading 01:51
TimToady just wanted to make sure you caught those 01:54
colomon lichtkind: huh, with parrot-HEAD I don't even get as far as t/ecosystem.t 02:04
No such method 'chomp' for invocant of type 'String'
colomon apologizes for the delay, got distracted 02:05
lichtkind colomon: thanks all fine have here another text to write 02:06
but i want to convert one of my most useful selfmade tools into perl 6
colomon lichtkind: same here
but I'm taking my time about it.
colomon has been working on this very slowly for years now. :) 02:07
lichtkind i just started today on my fresh new mint installation - 1 day old 02:10
lichtkind how old is :p ? 02:36
TimToady 2008 02:40
:delete and :exists predate that, at least in my head
lichtkind thank you 02:41
TimToady but they weren't implemented for quite a while
lichtkind shouldnt delete and exists not be methods?
TimToady they're not 02:43
lichtkind r: my @ = 1..5; say @[2] :exists; 02:44
camelia rakudo-{parrot,jvm,moar} 4a7429: OUTPUT«False␤»
lichtkind r: my @ = 1..5; say @a[2] :exists;
camelia rakudo-{parrot,jvm,moar} 4a7429: OUTPUT«===SORRY!=== Error while compiling /tmp/tmpfile␤Variable '@a' is not declared␤at /tmp/tmpfile:1␤------> my @ = 1..5; say @a[2]⏏ :exists;␤ expecting any of:␤ postfix␤ statement…»
lichtkind r: my @a = 1..5; say @a[2] :exists;
grr
camelia rakudo-{parrot,jvm,moar} 4a7429: OUTPUT«True␤»
TimToady anonymous arrays are anonymous 02:45
lichtkind yes
i just thought so because .kv is a method
TimToady convenience for flat arrays, but not generalizable to multi-dim as subscript modifiers are 02:46
masak oh yes, I remember :delete and :exist (as spec) back in the Pugs days, which must've been before 2008. 03:03
jnthn morning, #perl6 03:03
yoleaux 6 Sep 2014 19:38Z <FROGGS> jnthn: You've killed NativeCall! (rakudo/cc1965f makes it able to check the return type of { * }. There is a stub_instead NativeCall branch if that is the way to go)
TimToady ... works in place of *
jnthn Um...but we never actually call the sub... 03:04
Or is it a static check...
TimToady static check
jnthn Ah
masak lichtkind: the reason :exists cannot be a method %h<key>.exists is that by the time you ask the quesiton, you've already made the lookup.
TimToady also some complaints about jvm
jnthn m: sub foo() returns Str { * }
camelia ( no output )
masak lichtkind: and doing it like we did up until recently, %h.exists('key'), is "poor" in that it defers evaluation behind a layer of string; thus not actually solving it in Perl 6 itself. 03:05
"poor" in the sense of "not rich".
TimToady poor in the sense of not harnessing the specialness of subscript notation
masak right. 03:06
jnthn So...why doesn't the above fail...
masak has not woken up properly yet
jnthn If there's a static check somewhere...
TimToady well, that was the theory, anyway 03:07
masak clearly both indexing, existence check and deletion needs to do the same kind of data structure lookup; so yes, it does make sense that they share syntax. 03:08
I used to be mildly against :exists and :delete -- I've basically come around. 03:09
TimToady it's strange compared to other languages, but we finally found a good-ish use for adverbs :)
jnthn Ah... 03:11
* is now compiled into something really simple
And something somewhere doesn't check something it probably should
And we end up inlining the *
ah, and NativeCall doesn't use .wrap 03:12
masak TimToady: were :exists and :delete the original intended use of adverbs, even?
jnthn It just goes ahead and mixes in a role to override postcircumfix:<( )>
TimToady masak: don't remember whether that was part of the original intent, but they were pretty close to there 03:14
lichtkind ever thought about to allow for :p also longer alias like :pairs 03:17
dalek kudo/nom: bceb13e | jonathan++ | src/Perl6/Actions.nqp:
Don't inline code overriding postcircumfix:<( )>.

This fixes the recent NativeCall regression.
03:19
colomon Seems like :by on Range was one of the first adverbs?
masak :by seemed like a good idea at the time... 03:25
...but what we really wanted was the separation between infix:<..> and infix:<...> 03:30
firefish5000 after building and switching to a newversion of moar in rakudobrew, how do you get panda to work?(rebootstrap? how) (getting Could not find Shell::Command) 03:36
jnthn perl6 rebootstrap.pl
I thought rakudobrew did that bit... 03:37
But I don't actually use it (yet? :-))
TimToady our downstream is getting downstreamer
firefish5000 do you know where rebootstrap.pl resides? 03:39
jnthn I run it from the panda directory 03:40
firefish5000 found rebootstrap.pl in his moar-HEAD/panda, but not in the new moar-2014.08/
lichtkind good night 03:42
firefish5000 wait, then do all installed perl6 versions use the same directory for panda? 03:43
TimToady if true that would kinda go against our multi-version story... 03:44
TimToady unless, of course, panda is written to take that into account 03:45
firefish5000 if not true, then would ~/.rakudobrew/moar-HEAD/panda/rebootstrap.pl be the wrong file to run? 03:46
TimToady is also no expert on that
firefish5000 seeing how rakudobrew build-panda put panda under the moar-{current-version}. I am assuming it's not suppose to be shared.. 03:49
firefish5000 but then what would happen to installed modules when switching versions? 03:50
TimToady it's usually easier to unmake unneeded distinctions than to make needed but missing distinctions 03:52
masak second law of thermodynamics. 03:56
firefish5000 cannot follow 03:57
in any case, if anyone who is familiar with rakudobrew sees this, please guide me down the right path. (perhaps I need to run build-panda after every build <backed> <version>) 04:02
btyler how do I grab a list of the optional named parameters that were specified when the sub was called? 04:49
masak firefish5000: oh -- let me explain. if you have a bucket of hot water and a bucket of cold water, you can easily pour them into the same vessel, which will now have lukewarm-ish water. doing the opposite -- not so much. 04:59
firefish5000: transformations that destroy structure/order/distinctions are "easier" and more common than transformations that create them. 05:00
firefish5000 masak: Thanks for clearing my confusion. 05:02
jnthn has been looking into 122709. Will have a fix after lunch. :) 05:04
masak firefish5000: clearing confusion is also more difficult than causing it ;) 05:05
FROGGS[mobile] mornäng 06:07
itz firefish5000: yes run build-panda first time after "build moar" and then its automatically run in the future 06:08
firefish5000 itz: but when I try something like 'build moar 2014.03' 'switch moar-2014.03' panda update I get the error (Could not find Shell::Command) 06:12
FROGGS[mobile] p: my $a = "abc\n"; say $a.chomp 06:14
camelia rakudo-parrot 4a7429: OUTPUT«abc␤»
itz I'd delete everything and start again with "rakudobrew build moar", "rakudobrew build-panda"
BTW I think (despite the use pragma) it needs perl > 5.10 since I had issues with that version and the shim building phase 06:15
JimmyZ r: sd\r\nsdf\rr"; say $a.lines 06:18
camelia rakudo-{parrot,jvm,moar} 4a7429: OUTPUT«===SORRY!=== Error while compiling /tmp/tmpfile␤Missing semicolon.␤at /tmp/tmpfile:1␤------> sd\⏏r\nsdf\rr"; say $a.lines␤ expecting any of:␤ postfix␤»
JimmyZ r: my $a="sd\r\nsdf\rr"; say $a.lines
camelia rakudo-{parrot,jvm,moar} 4a7429: OUTPUT«sd
firefish5000 are you suggesting that building specific versions (like moar 2014.03) will work so long as I don't specify the first time? 06:19
or that I should not try to use specific versions?
JimmyZ r: my $a="sd\r\nsdf\rr"; say $a.lines.perl
camelia rakudo-{parrot,jvm,moar} 4a7429: OUTPUT«("sd\r", "sdf\rr").list␤» 06:20
JimmyZ n: my $a="sd\r\nsdf\rr"; say $a.lines.perl
camelia niecza v24-109-g48a8de3: OUTPUT«["sd", "sdf", "r"].list␤»
JimmyZ which one is right? 06:21
FROGGS[mobile] I hope niecza, but we should check the spec 06:22
itz firefish5000: I don't know about specific versions 06:23
firefish5000: but I suspect your problem is caused by trying to "build-panda" manually
lizmat m: my @a = 42..63; say @a[[4..7]:p 06:24
camelia rakudo-moar 4a7429: OUTPUT«===SORRY!=== Error while compiling /tmp/6dheKTHYcK␤Unable to parse expression in subscript; couldn't find final ']' ␤at /tmp/6dheKTHYcK:1␤------> my @a = 42..63; say @a[[4..7]:p⏏<EOL>␤ expecting any of:␤ …»
lizmat m: my @a = 42..63; say @a[4..7]:p
camelia rakudo-moar 4a7429: OUTPUT«4 => 46 5 => 47 6 => 48 7 => 49␤»
JimmyZ r: my $a="sd\r\nsdf\rr"; say $a.lines.WHAT 06:25
camelia rakudo-{parrot,jvm,moar} 4a7429: OUTPUT«(List)␤»
JimmyZ n: my $a="sd\r\nsdf\rr"; say $a.lines.WHAT
camelia niecza v24-109-g48a8de3: OUTPUT«(Array)␤»
firefish5000 itz: rakudobrew allows you to easily build and switch between rakudo versions, (which I thought was its main selling point). 06:26
itz: I am having problems with rakudobrew's panda, however, after switching from say release 2014.07 to 2014.08. 06:27
itz ok 06:28
I'd imagine most people just use it to build a fresh release daily but maybe they don't 06:29
firefish5000 I have heard from a few sources that I need to rebootstrap something somewhere... but honestly I am clueless as to anything else..
itz rakudobrew should run panda rebootstrap itself
firefish5000 I havn't a clue. what most people do, I just started using it 6 hr ago (got that from the rakudobrew executable). 06:32
itz I'd get the workflow working with the simplier case first 06:33
firefish5000 It seems rakudobrew leaves some unfinished business when switching to a version for the first time.
itz the different versions should use totally different dirs 06:34
build-panda uses current 06:35
hmm that logic does try and swap between versions 06:37
firefish5000 I am thinking I need to run build-panda on the first switch for each version, (at least for now) 06:39
oh well, My mind is shutting down and I am no longer sure what I was confused about.. I think I will head to bed while my mind is still clear. 06:51
GNight #perl6
lizmat decommute& 07:21
dalek kudo/nom: 57573e8 | jonathan++ | src/core/ThreadPoolScheduler.pm:
Fix deadlock reported in RT#122709.

The need for a thread to handle incoming I/O-related callbacks did not get accounted for properly, meaning that we didn't have enough threads started and so deadlocked.
07:58
synopsebot Link: rt.perl.org/rt3//Public/Bug/Displa...?id=122709
kudo/nom: 22a4c05 | jonathan++ | src/core/Thread.pm:
Fix issues with reporting warnings on threads.
masak m: say Date.today 08:00
camelia rakudo-moar 4a7429: OUTPUT«2014-09-07␤» 08:00
masak m: say Date.today === Date.new(2014, 9, 7)
camelia rakudo-moar 4a7429: OUTPUT«True␤»
masak \o/
FROGGS has somebody already looked into the chomp issue on parrot?
jnthn FROGGS: No, but from the error I can guess a well-placed nqp::p6box_s(...) would fix it. 08:03
masak m: sub circumfix:<d[ ]>([Int $year, Int $month, Int $day]) { Date.new(:$year, :$month, :$day) }; say d[2014, 12, 24]
camelia rakudo-moar 4a7429: OUTPUT«2014-12-24␤»
masak I'm growing ever more fond of this kind of circumfix operator for "local data format contexts". 08:04
that's one other case where macros would help make things nicer, too.
at least the kind we haven't spec'd out fully yet, that allows the macro to hook in at the grammar level.
so it'd be a bit more like a textual macro, actually, except it'd say "I'll take over here for a while", and then you could provide a regex for parsing the innards of that d[ ] (such as allowing it to be just '2014-12-24' without the quotes, for example), and then it'd hand control back to the regular parser. 08:06
basically a sort of one-off mini-slang.
masak or, equivalently, a grammar rule plus some semantics. putting it like that reminds me of Angular. 08:07
in fact, with such control over the parser, it'd look even nicer as a prefix op: `d 2014-12-24` -- though one could argue that the visual-pillishness has decreased. 08:11
synopsebot: help 08:15
synopsebot masak: Sorry, this bot has no interactive help.
masak is there a synopsebot repo?
FROGGS uff 09:06
===SORRY!===
control operator crossed continuation barrier
make: *** [lib/lib.pm6.jar] Fehler 1
masak what's the easiest way to loop over a list, 10 elements at a time? 09:11
I don't feel an overwhelming need to put all the elements in individual variables. 09:12
moritz \o
masak o/ 09:12
brrt \o
moritz timotimo: it's likely that the parcel flattening changes broke SVG::Plot
masak I'm pondering over the naming of a project, so I wrote up this little script to find names, 3..5 letters long, containing alternating vowels and consonants, and also alternating left and right hands on a qwerty keyboard: gist.github.com/masak/5f835f83efac7f68a2a9 09:16
"pel" is a nice name. 09:18
brrt wuduf
masak yes, that one stood out, but not as a good name for a project :) 09:19
FROGGS well, rox rocks :o)
masak :)
jnthn If it's something speedy, qiq works :)
masak I really liked Perl 6 while writing that script.
masak further runs produce "alay", "ori", "ifo", "elan" and "ubi", all of which are nice. 09:25
huf wuduf gotten away with it too, if werent for you meddling kids :) 09:27
JimmyZ masak: irclog.perlgeek.de/perl6/2014-09-07#i_9311360
masak m: "sd\r\nsdf\rr".comb( / ^^ \N* / ) 09:31
camelia ( no output )
masak m: say "sd\r\nsdf\rr".comb( / ^^ \N* / )
camelia rakudo-moar 4a7429: OUTPUT«sd sdf r␤»
masak S32: 09:31
Returns a list of lines, i.e. the same as a call to
C<$input.comb( / ^^ \N* /, $limit )> would.
but... as we see above, .comb(/^^ \N*/) considers "\r\n" to be *two* line breaks. 09:32
masak either .lines should, too, or that .comb definition of .lines is wrong. 09:32
what do we really want here? 09:33
vendethiel masak: circumfix operator is basically giving us user-defined literals like in C++/Scala/idris for free :D
FROGGS I'd like to see that .lines know about \r\n, \n and \r linebreaks
masak vendethiel: yes, but not until we can control the language inside of them through macros or slangs.
m: say so "\ra" ~~ / ^^ a / 09:34
camelia rakudo-moar 4a7429: OUTPUT«True␤»
masak FROGGS: ...then I conclude that that's not a good way to define .lines
vendethiel m: sub circumfix:<d" ">(Str $s) { "foo: $s" }; say d"abc def"
camelia rakudo-moar 4a7429: OUTPUT«===SORRY!=== Error while compiling /tmp/QMHPABbXSt␤Undeclared routines:␤ abc used at line 1. Did you mean 'abs'?␤ def used at line 1␤␤»
masak FROGGS: so, we need a new way to define .lines
vendethiel masak: if that ^ doesnt work either, indeed :p
masak vendethiel: yeah, you need to delegate down to another grammar, basically. 09:35
vendethiel masak: ... or use d[""]; maybe
that's cheating tho
masak m: say "sd\r\nsdf\rr".split(/\n/).perl
camelia rakudo-moar 4a7429: OUTPUT«("sd", "sdf", "r").list␤»
dalek kudo/nom: bf66354 | (Tobias Leich)++ | src/core/IO/Handle.pm:
unbreak .lines on parrot, colomon++
09:36
masak can anyone poke holes in the above definition of .lines?
FROGGS I am going to fix $*EXECUTABLE first... 09:39
dalek line-Perl5: 9e8a52c | nine++ | inline_perl5.pl:
Bring the inline_perl5.pl demo script up to date.
10:32
Timbus m: say "asdf\n".split(/\n/).perl 10:51
camelia rakudo-moar 4a7429: OUTPUT«("asdf", "").list␤»
Timbus hmm
masak m: say "asdf\n".lines.perl 10:54
camelia rakudo-moar 4a7429: OUTPUT«("asdf",).list␤»
masak yeah.
hmm
Timbus split(/[.+] +% \n/) or whatever 10:55
er
.. i cant remember how to use the +%
masak clearly not ;) 10:56
maybe .comb(/<(\N*)> \n?/) would do the trick?
oh, but it matches the empty string, so, um.
m: say "abc".comb(/.?/)
camelia rakudo-moar 4a7429: OUTPUT«a b c ␤» 10:57
masak m: say "abc".comb(/.?/).perl
camelia rakudo-moar 4a7429: OUTPUT«("a", "b", "c", "").list␤»
masak curious. it matches the empty string *once*.
Timbus how about .trim.split(/\n/) 10:59
masak m: say lines("\n\n\n\n\n\n\n\nfoo\n\n\n\n\n\n\n").perl 11:00
camelia rakudo-moar 4a7429: OUTPUT«("", "", "", "", "", "", "", "", "foo", "", "", "", "", "", "").list␤»
masak doesn't seem to be it :)
Timbus what does trim trim D: 11:01
i meant chomp
agh
masak heh :)
Timbus i didnt even know perl had a .trim.. what is wrong with me 11:02
masak m: say "asdf\n".chomp.split("\n").perl
camelia rakudo-moar 4a7429: OUTPUT«("asdf",).list␤»
masak I think I like that definition.
m: say "sd\r\nsdf\rr".chomp.split("\n").perl 11:03
Timbus uh
masak hello? camelia?
camelia rakudo-moar 4a7429: OUTPUT«("sd\r", "sdf\rr").list␤»
masak oh.
m: say "sd\r\nsdf\rr".chomp.split(/\n/).perl 11:04
camelia rakudo-moar 4a7429: OUTPUT«("sd", "sdf", "r").list␤»
masak that seems to come out right, too.
Timbus wait, what just happened there
masak hm?
Timbus evalbot bug? 11:05
masak please be more specific. what do you consider a bug?
Timbus i see. i didnt see the "quotes" 11:06
your input had a matching length so it threw me off
masak I'd be happy to change the lines() spec to .chomp.split("\n") -- just gonna wait for a bit and see if more comments roll in. 11:08
er, .split(/\n/), dangit 11:09
Timbus it's a simple enough definition. i dont know if it's the current implementation though
m: say "sd\r\nsdf\rr".lines.perl
camelia rakudo-moar 4a7429: OUTPUT«("sd\r", "sdf\rr").list␤»
Timbus aaaagh thats the .lines method for a string acting strange, not the .lines method for an IO handle. -_- 11:26
no wonder i couldnt see it
masak :)
Timbus its using .index("\n" 11:28
no good
masak right, that just ain't to spec. 11:40
leont Proc::Async is sometimes eating my output, and sometimes randomly dying with «non-invokable object is non-invokable» 11:50
Of course, this is all non-deterministic 11:51
Also, sometimes the tap handlers is called after &done, that can't be right either I assume 11:58
brrt leont: on moarvm? 12:01
leont Yes
leont I guess it's a scheduling issue, the scheduling of &done being independent from the scheduling of the &tap 12:05
brrt yeah, iirc there have been issues with that on moar 12:06
leont act seems to be doing better than tap though
moritz leont++ # flushing out conc bugs
brrt but... i don't know anything about that
yeah leont++ indeed
leont (better still not being right) 12:07
brrt :-) 12:09
leont paste.scsys.co.uk/421857 12:31
leont I just wished I was better at distinguishing "this is a bug in rakudo" from "this is a bug in my code" :-s 12:43
vendethiel
.oO( this is a bug in my human )
12:59
tadzik masak: no, but I can make one (synopsebot repo) 13:39
masak: here: github.com/tadzik/synopsebot 13:40
brrt uhm, how is MOAR_REVISION actually used in NQP? 13:54
how do we bump it
just from moar --version i assume
JimmyZ git describe --tags 13:58
brrt aha
pls review: github.com/perl6/nqp/pull/180
brrt bbiab 13:59
JimmyZ Does it need update stage0? 14:00
looks like it does not need to me :/
jnthn Yes, it needs it. 14:02
'cus it uses the op it adds in NQP source
Also, I can clean up various things now we've done this bump 14:03
JimmyZ oh 14:05
timotimo also, the stage0 ought to have become a bunch smaller and it'll have a better optimizer now
building nqp ought to be a bit faster all in all now :)
jnthn aye 14:06
dalek p: c6d375f | (Bart Wiegmans)++ | / (14 files):
Add force_gc to MoarVM backend
p: 9d0873f | jonathan++ | / (14 files):
Merge pull request #180 from bdw/master

Add force_gc to MoarVM backend
timotimo (though each time we stage0 rebuild, the initial nqp clone takes a bit longer ...) 14:07
JimmyZ how about spliting the .moarvm files in submodule? 14:08
jnthn How would that help? Then you'd just have to clone the submodule... 14:08
Not to mention submodules are a PITA for bisecting. 14:09
JimmyZ we can always re-create submodule which contains .moarvm/.jar/.pbc to avoids repo bigger
just a adivce :P 14:10
*advise
timotimo well, if the stage0 files are in a submodule, you could clone the sumbodule with --depth=1 14:11
jnthn Sounds like "cure worse than disease" :)
timotimo yup 14:12
FROGGS[mobile] looks like I have a patch for $*EXECNAME on parrot... just need to test it on more platforms
jnthn FROGGS[mobile]++ 14:13
timotimo already tested it on your phone, have you? :) 14:17
FROGGS[mobile] hehe, I wish 14:18
BlackBerry--
dalek kudo-star-daily: 3e3a0f6 | coke++ | log/ (14 files):
today (automated commit)
14:20
rl6-roast-data: b2cc9b3 | coke++ | / (6 files):
today (automated commit)
[Coke] no change in daily run. anyone wants to get rakudo-m clean, please fix/fudge integration/99problems-51-to-60.t 14:21
FROGGS[mobile]: (control operator) yes, that's the thing that's killing the JVM on the last 2 runs. 14:23
jnthn broke it. the commit id's in the backlog.
masak tadzik++ # github.com/tadzik/synopsebot 14:24
jnthn: synopsebot is in p5, apparently. 14:25
FROGGS[mobile] [Coke]: I'll take a look at some point if nobody beats me to it
jnthn masak: Oh...I'd somehow thought it was in 6... 14:26
[Coke] FROGGS[mobile]: oooh, that error text shows up in a few places in the logs.
FROGGS[mobile] [Coke]: I'll find it 14:27
tadzik it can very easily become p6 14:29
jnthn ++tadzik ;)
masak tadzik: github.com/tadzik/synopsebot/pull/1 14:37
timotimo tadzik: yeah, just put "use v6" in the first line and then fix the few errors and warnings that result :) 14:54
brrt wonders if lolsql still works 15:08
jnthn It's untouched for a long, long time... 15:15
dalek ecs: 45844fa | (Stéphane Payrard)++ | S99-glossary.pod:
S99: added more entries, fixed typos, added some
16:02
tadzik masak: makes sense :) 16:08
tadzik I took a 2-hour midday nap and I'm still sleepy :/ 16:11
dalek ecs: a063ea3 | (Stéphane Payrard)++ | S99-glossary.pod:
S99: added or filled entries for pseudo-scopes
16:42
nine brrt++ # Can I access HLL::Backend::MoarVM::force_gc() from Perl 6? 17:19
vendethiel xfix: I didn't get your comment on coffeescript 17:28
oh, you just added a reference
xfix I just added a reference. 17:29
itz is rakudo.org down? 17:44
tadzik not for me 17:53
itz oh its back .. maybe the perl5 zealots called off their DDOS :) 17:55
btyler www.isup.me/rakudo.org disagrees (shortened version of downforeveryoneorjustme.com) 18:09
(still looks down, that is)
Timbus jnthn, doing too much work in a gtk callback seems to.. freeze the thread? which is really odd. it will 'unfreeze' the moment you poke the gui though.. very odd considering I'm using .stable ...
Timbus jnthn, here's a mostly golfed case i guess?: gist.github.com/TiMBuS/1afd922304e3c1d1cb22 just keep poking the input box and eventually your stdout will pause. eh 18:11
itz I've put a planeteria replacement up at 18:20
pl6anet.org/
it's using a perl5 RSS feed reader but hopefully it will use Perl 6 shortly
masak nine: why do you want to force GC? 18:26
tadzik perhaps he has some remaining time in the current rendering frame :) 18:27
masak oh, good point :) 18:28
carry on, then
geekosaur forcing gc strikes me as a thing that people trained by how JVMs work expect to do/need 18:29
tadzik now we need force_gc_unless_it_takes_more_than(int)
masak tadzik: dependency: time machine 18:30
tadzik hm, not quite
as long as you can rollback the changes in 0 time :D
masak anyway, I wasn't implying forcing GC is wrong for what nine++ wants to do -- merely curious why it's needed 18:31
vendethiel "optimization" 18:33
^ the answer to all these strange requests :P
moritz no, iirc nine++ wants to test that stuffs survives the round-trip to p5 through a GC run 18:35
or that stuff only referenced from p5 survivevs a gC run 18:36
vendethiel moritz: okay, "perl" is another answer then :p 18:37
nine moritz: yep, that's the reason 18:38
checking to see if stuff _only_ referenced from P5 survives a GC run
[Coke] nqp head failing to build moar on os x 18:42
nwc10 OK, rakudo can now run -e 'print "Hello world\n"' faster than Perl 5 loading Moose can. 18:44
diakopter o_O
[Coke] nwc10: nice
nwc10 I still haven't tried to dig into why I have to have dumbbench run it under env 18:45
but if I run it with env, and run various perl 5 binaries with env, rakudo is maybe 10% faster.
Moo is an order of magnitude faster than Moose, and plain perl 5 about an order of magnitude faster again. 18:46
itz how do I build everything with another compiler? " CC="gcc47" perl Configure.pl ... " doesn't seem to work? 18:49
itz oh I see 18:51
moritz you probably need --moar-option=--cc=gcc47 or so 18:52
itz yeah I'm just building moar first to avoid bothering with the "or so" :) 18:54
vendethiel m: my @a = <ep1 ep2 ep3>; say "$_ {s/ep/my ep/}" for @a; 19:01
camelia rakudo-moar 4a7429: OUTPUT«ep1 ␤ep2 ␤ep3 ␤»
vendethiel masak: remember my "subset" hack to create a type alias? 19:02
that has a disadvantage: you can't get back the original type 19:06
vendethiel sometimes forget to press enter randomly ._.
moritz m: subset Foo of Int where * %% 2; say Foo.^refinee 19:11
camelia rakudo-moar 4a7429: OUTPUT«(Int)␤»
moritz vendethiel: ^^ see above; that's how you get the base type for a subset type
vendethiel moritz: hehe; thanks!
moritz and no, that's not documented; I found it by looking into src/Perl6/Metamodel/SubsetHOW.nqp 19:12
vendethiel moritz: that one was obvious 19:15
moritz m: say (subset Foo of Int).HOW.^name 19:17
camelia rakudo-moar 4a7429: OUTPUT«Perl6::Metamodel::SubsetHOW␤»
FROGGS p: say say nqp::p6box_s(pir::interpinfo__Si(pir::const::INTERPINFO_EXECUTABLE_FULLNAME)) 19:25
camelia rakudo-parrot 4a7429: OUTPUT«./rakudo-inst/bin/perl6-p␤True␤»
japhb Is it possible to get a binding to a reduced op? I want to be able to pass [+] to a function, for example. 19:29
FROGGS m: say &[+] 19:30
camelia rakudo-moar 4a7429: OUTPUT«sub infix:<+> ($?, $?) { #`(Sub+{<anon>}+{Precedence}|64049504) ... }␤»
japhb FROGGS: That's a reference to + though, not the reduce over +. 19:31
s/over/using/
FROGGS isnt reduce a syntactic thing?
m: my $thing := &[+]; say [[$thing]] 1, 2, 3, 4 19:32
camelia rakudo-moar 4a7429: OUTPUT«===SORRY!=== Error while compiling /tmp/6UQ4ckZf0w␤Two terms in a row␤at /tmp/6UQ4ckZf0w:1␤------> my $thing := &[+]; say [[$thing]] ⏏1, 2, 3, 4␤ expecting any of:␤ postfix␤ infix stopper…»
FROGGS m: my &thing := &[+]; say [[&thing]] 1, 2, 3, 4
camelia rakudo-moar 4a7429: OUTPUT«10␤»
japhb Well, I could always send '-> *@_ { [+] @_ }' or 'reduce.assuming(&[+])', I suppose, but that seems rather wordy 19:33
FROGGS I don't understand... 19:34
the function you pass it to has to use the subroutine ref as a reduce op, no?
japhb FROGGS: What I'm looking for is to satisfy: sub apply(&code, *@vals) { code(@vals) }
FROGGS ahh
m: sub apply(&code, *@vals) { [[&code]] @vals }; say apply(&[+], 1, 2, 3, 4, 5) 19:35
camelia rakudo-moar 4a7429: OUTPUT«15␤»
FROGGS japhb: can you write it that way?
m: sub apply(&code, *@vals) { [[&code]] @vals }; say apply(infix:<+>, 1, 2, 3, 4, 5) 19:36
camelia rakudo-moar 4a7429: OUTPUT«Type check failed in binding &code; expected 'Callable' but got 'Int'␤ in sub apply at /tmp/JfTwgOesmy:1␤ in block <unit> at /tmp/JfTwgOesmy:1␤␤»
FROGGS m: sub apply(&code, *@vals) { [[&code]] @vals }; say apply(&infix:<+>, 1, 2, 3, 4, 5)
camelia rakudo-moar 4a7429: OUTPUT«15␤»
carlin is it safe to update rakudo, or will that cause NativeCall to break? 19:52
FROGGS carlin: NativeCall will work with rakudo HEAD
carlin: but you have to rebootstrap panda 19:53
carlin okay great, just seen some talk about breakage in the backlog and wasn't sure if it was fixed 19:54
FROGGS carlin: it was broken for about 20 hours or so 19:56
carlin++ # it is good to read the irc logs here if you are working with HEAD 19:57
dalek Iish: ce996b0 | moritz++ | lib/DBDish/ (3 files):
Switch { * } to { ... } for native subs

it seems rakudo does not support * anymore here
20:12
FROGGS moritz: but jnthn fixed that... no? 20:17
moritz FROGGS: I had no idea 20:18
lizmat good *, #perl6!
FROGGS hi lizmat
lizmat can someone give Jim Keenan a reply to his question (Status of Perl6 on JVM) on perl-users? 20:19
the only thing I can really say from memory, is "it does all that you can do on MoarVM, except Signals and Proc::Async"
FROGGS lizmat: some star modules fail 20:20
that's why there is no jvm-*
tadzik perhaps a feature matrix should be shown
dwarring r:say 20:20
FROGGS r: say 20:21
camelia rakudo-{parrot,jvm,moar} 4a7429: OUTPUT«===SORRY!=== Error while compiling /tmp/tmpfile␤Unsupported use of bare 'say'; in Perl 6 please use .say if you meant $_, or use an explicit invocant or argument␤at /tmp/tmpfile:1␤------> say⏏<EOL>…»
diakopter r: &say
camelia ( no output )
FROGGS r: &diakopter 20:21
camelia rakudo-{parrot,jvm,moar} 4a7429: OUTPUT«===SORRY!=== Error while compiling /tmp/tmpfile␤Undeclared routine:␤ &diakopter used at line 1␤␤»
FROGGS :P
dwarring argless 'say' doesn't output a new-line anymore? 20:22
diakopter pugs: say
camelia pugs: OUTPUT«␤»
vendethiel dwarring: no, it doesn't
dwarring hmmm
lizmat m: say() 20:23
camelia rakudo-moar 4a7429: OUTPUT«␤»
lizmat m: say
camelia rakudo-moar 4a7429: OUTPUT«===SORRY!=== Error while compiling /tmp/KLb_oIPeQe␤Unsupported use of bare 'say'; in Perl 6 please use .say if you meant $_, or use an explicit invocant or argument␤at /tmp/KLb_oIPeQe:1␤------> say⏏<EOL>␤ e…» 20:24
dwarring m: say()
camelia rakudo-moar 4a7429: OUTPUT«␤»
lizmat so say is not the same as say()
it's just the bare 'say' that's being picked on by the parser :-)
vendethiel zi term
dwarring r: time
camelia ( no output ) 20:25
dwarring yeah
tadzik lizmat: perhaps we should change that to an argless say() in the setting
lizmat tadzik: ??
tadzik lizmat: throwing the unsupported use of bare say(), so it would pick up both say; and say(); 20:26
although parse time is better for this sort of thing I guess
lizmat I think this was discussed in the past days and the consensus was that only the bare 'say' would need to be caught 20:27
tadzik mhm
lizmat m: my @a; say @a # how would this otherwise work ?
camelia rakudo-moar 4a7429: OUTPUT«␤»
lizmat from an optimization perspective, I actually added a candidate for say() 20:28
but without that, how would you know the difference between say () and say(@emptyarray) 20:29
timotimo m: my &foo := &[[+]]; foo(1, 2, 3, 4).say 20:31
camelia rakudo-moar 4a7429: OUTPUT«===SORRY!=== Error while compiling /tmp/rDmGLetoUY␤Variable '&infix:<[+]>' is not declared␤at /tmp/rDmGLetoUY:1␤------> my &foo := &[[+]]⏏; foo(1, 2, 3, 4).say␤ expecting any of:␤ postfix␤»
tadzik m: multi zay() { die "bare say" }; multi zay(@list) { say "is ok" }; zay()
camelia rakudo-moar 4a7429: OUTPUT«bare say␤ in sub zay at /tmp/UAQ4GbGL6T:1␤ in sub zay at /tmp/UAQ4GbGL6T:1␤ in block <unit> at /tmp/UAQ4GbGL6T:1␤␤»
timotimo aaw
tadzik m: multi zay() { die "bare say" }; multi zay(@list) { say "is ok" }; my @a; zay(@a)
camelia rakudo-moar 4a7429: OUTPUT«is ok␤»
tadzik lizmat: like that :)
oh, might not work with a slurpy
m: multi zay() { die "bare say" }; multi zay(*@list) { say "is ok" }; my @a; zay(@a)
camelia rakudo-moar 4a7429: OUTPUT«is ok␤»
tadzik no, works 20:32
lizmat yeah, but I added the say() candidate only for performance reasons
if we want to have it also die, then we should do that earlier at compile time, not at runtime 20:33
tadzik aye
timotimo m: my @a = 1, 2, 3, 4, 5; my Mu $a := nqp::iter(@a); while nqp::shift($a) -> $item { say $item } 20:38
camelia rakudo-moar 4a7429: OUTPUT«===SORRY!===␤No registered operation handler for 'iter'␤»
timotimo hmm
dalek p: fd61784 | (Elizabeth Mattijsen)++ | src/vm/moar/profiler/template.html:
Fix spello
20:57
dalek kudo/nom: e9181cd | (Elizabeth Mattijsen)++ | src/core/ (2 files):
Make Dynamic variable not found a proper exception
21:29
dalek ast: 922b475 | (Elizabeth Mattijsen)++ | S02-types/WHICH.t:
Check for X::Dynamic::NotFound
21:32
dalek kudo/nom: 7f6c240 | (Elizabeth Mattijsen)++ | src/core/stubs.pm:
Stub the new INITIALIZEr for dynamic system vars
23:12
rakudo/nom: 9ab4e75 | (Elizabeth Mattijsen)++ | src/core/Distro.pm:
rakudo/nom: New initializer for $*DISTRO $*OS $*OSVER
lizmat sorry dalek 23:12
lizmat working on the last issues with @INC initializing 23:13
timotimo cool, thank you! 23:14
lizmat that should take off another .03 seconds of bare startup time (0.177 on my machine, down from 0.210) 23:15
about 15%
but first: sleep!
good night, #perl6!
timotimo great. we're getting somewhere acceptable :) 23:16
carlin m: sub foo returns Array[Hash] { my Hash @x; return @x }; foo 23:21
camelia rakudo-moar 4a7429: OUTPUT«Type check failed for return value; expected 'Array[Hash]' but got 'Array[Hash]'␤ in any return_error at src/vm/moar/Perl6/Ops.nqp:646␤ in sub foo at /tmp/loTu2iYphs:1␤ in block <unit> at /tmp/loTu2iYphs:1␤␤»
timotimo d'oh ... 23:22
[Coke] (jvm) plus also the build is super broken. 23:45
chris__ hi 23:59