»ö« 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.
clsn OK. Probably should have defined the method on Parameter:D instead of just Parameter. Thanks. 00:01
I did that for Signature, not Parameter. Oops.
00:07 jeffreykegler left 00:09 raiph left 00:18 raiph joined 00:25 konnjuta joined 00:26 ivanshmakov left
konnjuta is it possible to not disclose the source code for your perl6 program (for example like how java is 'compiled' into class file) 00:27
in the current implementation of rakudo 00:29
or possible future implementation of perl6
grondilu you can publish the jvm or moarvm bytecode
Mouq konnjuta: I believe NQP (the Perl 6 "subset" Rakudo is built off of) can be compiled to Parrot, JVM, or MoarVM bytecode, and in fact is in the bootstrapping process
grondilu: can you do that for full Perl 6 programs, though? 00:30
grondilu I think you can, with the --target option. Can't you?
Mouq grondilu: Oh, forgot about that. I can check 00:31
TimToady wonders whether konnjuta is working for the nsa...
huf "the client" 00:32
TimToady well, it was "the customer" when I worked for them :)
huf oh sorry, misremembered your story
FROGGS nr: say "\c[BRAILLE PATTERN DOTS-13456]" 00:33
camelia rakudo-parrot 1c37f3: OUTPUT«===SORRY!=== Error while compiling /tmp/DK4M4lHXIR␤Unrecognized \c character␤at /tmp/DK4M4lHXIR:1␤------> say "\c[⏏BRAILLE PATTERN DOTS-13456]"␤ expecting any of:␤ argument list␤ prefix …»
..niecza v24-109-g48a8de3: OUTPUT«⠽␤»
..rakudo-jvm 1c37f3: OUTPUT«===SORRY!=== Error while compiling /tmp/8Cm7KVk688␤Unrecognized \c character␤at /tmp/8Cm7KVk688:1␤------> say "\c[⏏BRAILLE PATTERN DOTS-13456]"␤ expecting any of:␤ argument list␤ prefix or …»
FROGGS it does not like numbers? 00:34
00:34 ivanshmakov joined
Mouq --target=pir works, --target=mbc dies with ===SORRY!===\nCannot dump this object; no dump method, and my perl6-j needs to be rebuilt :P 00:35
grondilu well, it's NYI I guess
Mouq my perl6-j seems to think it's my perl6-m
00:36 Lorn_ is now known as Lorn, Lorn left, Lorn joined
grondilu fun fact: the REPL in perl6-m does not work, and nobody cares. I guess this thing has been added just to do as all other languages do, but nobody really use this thing. 00:37
jnthn grondilu: fun fact: I spent a chunk of my weekend fixing it. :/ 00:38
Mouq grondilu: :P I use it all the time, I've just been lazy recently and reach for '-e' when i remember it doesn't work on Moar
jnthn grondilu: It works here.
TimToady I get an eternal supply of > 00:39
jnthn Bitching people don't care when they spent a couple of hours working on it is stupid.
grondilu same, infinite prompts
TimToady probably just a linux difference or some such
jnthn bah
Mouq jnthn++ # everything you do
TimToady we much appreciate jnthn++
Mouq jnthn++++++
TimToady we just want more jnthn++ :)
jnthn Works nicely on Windows. Wonder what on earth isn't portable :( 00:40
grondilu jnthn: sorry I hope I didn't offend you or anything. what you do is great, please don't doubt it
00:40 ajr_ left
grondilu jnthn += Inf 00:40
:)
diakopter jnthn**=jnthn
m: 999**=999 00:41
camelia rakudo-moar 1c37f3: OUTPUT«Cannot find method 'STORE'␤ in block at src/gen/m-CORE.setting:16352␤ in block at /tmp/7PC5ZtyLoX:1␤␤»
diakopter you're a STORE
Mouq m: say 999**999 00:43
camelia rakudo-moar 1c37f3: OUTPUT«3680634882592232678947008400605218658383382320373532046559596214370256093004722315301038736145051752186913452575898963911303931894479697716458323821923660765366311320017761759779321786587036607784657658118308278769820141240229486719756781317249580644279499…»
grondilu talking about big numbders, what's the criterium to decide a Num is Inf? I mean, I had troubles filling rosettacode.org/wiki/Combinations_a...ons#Perl_6 because of that. 00:44
m: say 10**$_ for 300, 400 ... 1000
camelia rakudo-moar 1c37f3: OUTPUT«1000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000…»
grondilu m: say 10**1000 00:45
camelia rakudo-moar 1c37f3: OUTPUT«1000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000…»
grondilu m: say (10**$_).Num for 300, 400 ... 1000
camelia rakudo-moar 1c37f3: OUTPUT«100000000000000005250476025520442024870446858110815915491585411␤Inf␤Inf␤Inf␤Inf␤Inf␤Inf␤Inf␤»
grondilu I guess the explanation is somewhere in S32/Numeric 00:48
TimToady Num is just floating point, and I doubt S32/Numeric has much to say about the conversion, but the 10**300 case there looks buggy 00:50
colomon don't think so. 00:51
it's got 16 correct digits
TimToady it should have about 300 digits
colomon ….. oh, wait, right.
TimToady or an e 00:52
grondilu m: say .chars given (10**300).Num
colomon you can't actually store 10**300 in a double, can you?
camelia rakudo-moar 1c37f3: OUTPUT«63␤»
colomon isn't the limit 200-something
?
grondilu this gives me a déjà-vu feeling
TimToady there are formats that are bigger, but I think +-256 is normalish
colomon No doubt it should be Inf 00:53
does parrot do that?
p: say (10**300).Num
camelia rakudo-parrot 1c37f3: OUTPUT«1e+300␤»
colomon ????
TimToady using extended FP maybe? 00:54
colomon oh, nope, 10**308 should work
colomon is looking at wikipedia
grondilu colomon: you can put very big numbers in floating points, it only depends on the relative sizes of the mantissa and the exponent, if I recall the names correctly
colomon grondilu: you can put much bigger numbers in Ints 00:55
grondilu sure
00:55 dayangkun joined
colomon I mean, sure, in the abstract floating point can go as big as you want. But in practice, 10**308 or so is it. 00:55
so definitely a Moar big 00:56
er, bug
grondilu precisely, I thought Num was the abstract floating point. But I may have been wrong.
TimToady nope, very IEEEish
grondilu ok
but what's num, then? 00:57
(in lower case)
TimToady same thing, but native :)
someone could define a FatNum type if they wanted, however 00:58
colomon with Ints for the mantissa and the exponent…. 01:00
grondilu would you say that the purpose of Num is to implement en.wikipedia.org/wiki/IEEE_754 ? If so, it might be useful to mention it in the specs.
(I mean, to makes things clear) 01:01
TimToady well, we mention IEEE at S02:881
synopsebot Link: perlcabal.org/syn/S02.html#line_881
colomon grondilu: IEEE is mentioned six times in the specs, but 754 is not
TimToady that's what people mean by IEEE floating point, though 01:02
colomon right
Mouq jnthn: Why don't we have any typed exceptions in src/vm/moar/Perl6/Ops.nqp ? 01:17
(and am I allowed to add one?) 01:18
(or at least try)
Well, hm. Actually, I'm not sure how that would work. I think Moar needs an X::Assignment::RO somewhere around src/vm/moar/Perl6/Ops.nqp:162 if .STORE doesn't exist 01:20
*I think Rakudo 01:21
jnthn Mouq: There's a few missing typed exceptions. 01:22
Mouq: Just NYI. 01:23
Mouq: S32-exceptions/misc.t indicates the places
Mouq jnthn: ok. I'd like to SYI it, but... uhm 01:24
jnthn Mouq: The trick with those things is that there's a hash somewhere with code objects in that take args and build the exception object 01:25
Mouq jnthn: What I don't get is that if :op('findmeth') is being added to the oplist, does that mean that if I have to check the existance of the method and throw a RO error, those things have to be added as ops too? 01:28
well, not ops
But to the instruction list
01:31 kaare__ left
jnthn Mouq: Yeah, we'll have to do some checking there 01:33
Mouq: If you use findmeth_s or so and pass it a string then it'll give null back if there's no method. 01:34
Mouq: We may for code size actually do better to add an op though...
TimToady r: say Q[@A`DO world!]~|<HeLhg> 01:35
camelia rakudo-parrot 1c37f3, rakudo-jvm 1c37f3, rakudo-moar 1c37f3: OUTPUT«Hello world!␤»
TimToady xfix: save a byte by using <> instead of q{}
01:37 kaare__ joined
jnthn Mouq: That is, a Rakudo specific one. 01:37
Mouq jnthn: Ok. I've only just started looking closely at the Moar stuff... I think I may try my hand at making some of the other errors in Ops.nqp typed first 01:38
TimToady xfix: oh, you got that one already
Mouq r: try { sub dead (-->Int) {"oh my!"}; dead}; say $!.WHAT # Namely
camelia rakudo-moar 1c37f3: OUTPUT«(X::AdHoc)␤»
..rakudo-parrot 1c37f3, rakudo-jvm 1c37f3: OUTPUT«(X::TypeCheck::Return)␤»
jnthn Mouq: Aye :) 01:40
That should be easier
'night, #perl6 01:48
Mouq night jnthn++ 01:50
:)
01:50 stevan_ joined 01:51 dayangkun left 01:52 dayangkun joined 01:53 jnap left 01:55 kbaker joined 02:18 grondilu left 02:24 jnap joined
Mouq r: my Int $a; $a := "die! muahaha!" 02:25
camelia rakudo-jvm 1c37f3: OUTPUT«Type check failed in binding; expected 'Int' but got 'Str'␤ in block at /tmp/6ajz7A5cqa:1␤␤»
..rakudo-parrot 1c37f3: OUTPUT«Type check failed in binding; expected 'Int' but got 'Str'␤ in block at /tmp/c16f8fmdyq:1␤␤»
..rakudo-moar 1c37f3: OUTPUT«Type check failed in bind; expected Int but got Str␤ in any bind_error at src/vm/moar/Perl6/Ops.nqp:229␤ in block at /tmp/Vqv83_1vWq:1␤␤»
02:28 jnap left 02:35 konnjuta left
Mouq \o/ 02:41
$ perl6-m -e'try {my Int $a; $a := "die! muahaha!"}; say $!.WHAT'
(X::TypeCheck::Binding)
$ perl6-m -e'try {sub f(-->Str){5}; f}; say $!.WHAT'
(X::TypeCheck::Return)
timotimo good work! 02:42
Mouq timotimo: thanks! I think I might know how to do the error I was talking about originally too, so I'll try that before PR'ing 02:44
TimToady timotimo: I thought you fixed the tmpfile thing... 02:45
timotimo oh no i told someone else to actually work the fix in :)
i just formulated a line that could go in there by trial & error
clsn Argh, forgot to make ACCEPTS multi, that's why it's not letting superclasses show through... Oh well. PR will be ready again soon. 02:46
I think I may have screwed up some by doing my work in the nom branch of my fork instead of making a new branch for it.
Mouq timotimo: for camelia? 02:47
timotimo evalbot, yeah 02:48
geekosaur git stash branch?
clsn mm, maybe... I dunno, my github-fu is still weak.
timotimo clsn: that's no problem at all, you can just git rebase origin/nom to get your changes transplanted onto a current upstream 02:49
and then do the relatively awkward reset dance:
git checkout nom; git checkout -b my_awesome_work; git checkout nom; git reset --hard origin/nom
i shouldn't have said "i told someone else", i should have said "i said someone else had to do it" 02:56
anyway, afk
clsn Doesn't there have to be a commit in there someplace? Or wait, that checkout -b creates the branch and the reset branches the old one off... or something...
Whatever, rebuilding anyway.
timotimo yeah
and the reflog will help you get back to any state you had before
clsn I'll figure it out I guess. Thanks. 02:58
Mouq timotimo: point to what you did; I've done work on the evalbot before, and was just thinking about how to fix the tmp/ thing when TimToady++ brought it up 03:01
*point out to me, and I'll see if I can put it to good use 03:02
03:26 kbaker left
clsn fixes and pushes his change, hopefully not having screwed things up too badly with various git muckings-about. 03:36
03:46 wooden left 03:59 pdcawley left 04:00 pdcawley joined 04:05 molaf joined 04:07 preflex_ joined, ChanServ sets mode: +v preflex_ 04:08 preflex left, preflex_ is now known as preflex 04:17 molaf left 04:53 jeffreykegler joined 04:58 jeffreykegler left
dalek rl6-roast-data: 9d24ef9 | coke++ | / (6 files):
today (automated commit)
05:07
05:25 [Sno] left 05:26 jnap joined 05:31 jnap left 05:32 thou left 05:55 SamuraiJack joined 06:08 kaleem joined 06:17 SamuraiJack_ joined 06:18 SamuraiJack left
raiph Mouq: irclog.perlgeek.de/perl6/2014-01-18#i_8138277 06:18
dalek kudo/nom: c8ec1df | Mouq++ | src/vm/moar/Perl6/Ops.nqp:
Throw X::TypeCheck::{Binding,Return} on MoarVM

Use typed errors instead of dying in Ops.nqp
Mouq raiph: Oh! Thank you 06:22
06:23 SamuraiJack_ left 06:27 jnap joined 06:28 [Sno] joined 06:30 BenGoldberg left 06:31 jnap left 06:37 FROGGS left
Mouq So, sorry, #perl6, got caught in doing other things :p I don't see a problem with just putting timotimo's line in the obvious spot in the evalbot script. it means that if somebody does this: 07:00
r: say "My file's in some/dir/tmp/dkmedjdkf4/something" 07:01
camelia rakudo-jvm 1c37f3: OUTPUT«(timeout)»
..rakudo-parrot 1c37f3, rakudo-moar 1c37f3: OUTPUT«My file's in some/dir/tmp/dkmedjdkf4/something␤»
Mouq it'll end up as "My file's in some/dir/tmp/tmpfile/something"
But then again, this is filtered too, already: 07:03
07:03 SamuraiJack_ joined
Mouq nqp-p: say("I like being called from Subway's!") 07:03
camelia nqp-parrot: OUTPUT«I like being »
07:11 raiph left
Mouq ...hmm. Welllll, ok. If no one's going to comment on it, I think I'll just resort to the push-and-await-backlash methodology 07:16
If that's cool
dalek albot: 35a28d0 | Mouq++ | evalbot.pl:
Filter tmpfile names to merge error results
07:17
Mouq timotimo++
timotimo++ again because I forgot to put it in the commit summary 07:18
Mouq--
thank you moritz++ for merging my PR 07:25
Mouq → bed
xfix imgur.com/niA0JyZ - hm, interesting, my Perl 6 code golf is most upvoted today, according to the moderator panel. 07:30
07:30 sqirrel joined 07:33 Mouq left 07:46 FROGGS joined
moritz j: say 'test' 07:48
camelia rakudo-jvm c8ec1d: OUTPUT«Can't call method "syswrite" on an undefined value at /home/p6eval/jvm-rakudo/eval-client.pl line 32.␤»
moritz j: say 'test'
camelia rakudo-jvm c8ec1d: OUTPUT«Can't call method "syswrite" on an undefined value at /home/p6eval/jvm-rakudo/eval-client.pl line 32.␤»
moritz j: say 'test' 07:50
camelia rakudo-jvm c8ec1d: OUTPUT«test␤»
FROGGS morning
07:50 darutoko joined
moritz good morning FROGGS, * 07:51
FROGGS r: say 1 1 # moritz: where is the code that needs to be fixed for unifying the $*PROGRAM_NAME?
camelia rakudo-parrot c8ec1d: OUTPUT«===SORRY!=== Error while compiling /tmp/1_9nsOt9eq␤Two terms in a row␤at /tmp/1_9nsOt9eq:1␤------> say 1 ⏏1 # moritz: where is the code that needs␤ expecting any of:␤ postfix␤ infix stop…»
..rakudo-jvm c8ec1d: OUTPUT«===SORRY!=== Error while compiling /tmp/YnRmK_cft9␤Two terms in a row␤at /tmp/YnRmK_cft9:1␤------> say 1 ⏏1 # moritz: where is the code that needs␤ expecting any of:␤ postfix␤ infix stopper…»
..rakudo-moar c8ec1d: OUTPUT«===SORRY!=== Error while compiling /tmp/FHo_OngbLY␤Two terms in a row␤at /tmp/FHo_OngbLY:1␤------> say 1 ⏏1 # moritz: where is the code that needs␤ expecting any of:␤ postfix␤ infix stoppe…»
07:52 dmol joined
moritz FROGGS: prolly lib/EvalbotExecuter.pm 07:52
FROGGS ahh, I see 07:53
07:53 broquaint left 08:05 Rotwang joined
dalek albot: c578363 | (Tobias Leich)++ | lib/EvalbotExecuter.pm:
unify the program name in output string
08:07
FROGGS I hope I don't mess anything up
moritz: I am allowed to restart it?
s/I am/am I/ 08:08
08:09 broquaint joined
FROGGS hopes for forgiveness 08:09
evalbot control restart
08:09 camelia left
FROGGS k, I can shut it down as it seems 08:09
ó.ò
08:10 camelia joined
FROGGS uhh 08:10
\o/
nr: 1 1
08:11 ChanServ sets mode: +v camelia
camelia rakudo-jvm c8ec1d: OUTPUT«===SORRY!=== Error while compiling /tmp/GZgfT9CIUP␤Two terms in a row␤at /tmp/GZgfT9CIUP:1␤------> 1 ⏏1␤ expecting any of:␤ postfix␤ infix stopper␤ infix or meta-infix␤ st…» 08:11
..niecza v24-109-g48a8de3: OUTPUT«===SORRY!===␤␤Two terms in a row at /tmp/slUZ0KM9VV line 1:␤------> 1 ⏏1␤␤Parse failed␤␤»
..rakudo-parrot c8ec1d: OUTPUT«===SORRY!=== Error while compiling /tmp/Ph1RfYaUoO␤Two terms in a row␤at /tmp/Ph1RfYaUoO:1␤------> 1 ⏏1␤ expecting any of:␤ postfix␤ infix stopper␤ infix or meta-infix␤ …»
moritz evalbot control pull
camelia (success)
FROGGS ahh
moritz evalbot control restart
08:11 camelia left 08:12 camelia joined
moritz p6: say $*PROGRAM_NAME 08:12
FROGGS that will saves a lot of bytes in the clogs when it works :o)
08:12 berekuk joined
moritz and, more to the point, it doesn't obscure that the outputs are actually the same 08:13
08:13 ChanServ sets mode: +v camelia
camelia rakudo-parrot c8ec1d, rakudo-jvm c8ec1d, rakudo-moar c8ec1d, niecza v24-109-g48a8de3: OUTPUT«/tmp/tmpfile␤» 08:13
moritz uhm
FROGGS and you don't miss messages that are between these huge blocks of text
moritz did you hardcode it to a certain tempfile?
FROGGS no
unless it resolves <program> in the subst somehow
nr: 1 1
camelia rakudo-parrot c8ec1d, rakudo-jvm c8ec1d: OUTPUT«===SORRY!=== Error while compiling /tmp/tmpfile␤Two terms in a row␤at /tmp/tmpfile:1␤------> 1 ⏏1␤ expecting any of:␤ postfix␤ infix stopper␤ infix or meta-in…» 08:14
..niecza v24-109-g48a8de3: OUTPUT«===SORRY!===␤␤Two terms in a row at /tmp/tmpfile line 1:␤------> 1 ⏏1␤␤Parse failed␤␤»
moritz oh, you cheated. Nasty FROGGS :-)
FROGGS I... I did?
moritz yes, you did
FROGGS nice
how so?
moritz the non-cheating solution would have been to actually use the same tempfile for all processes that are started in one batch
FROGGS well, easy solution is easy 08:15
moritz aye :-)
much better than before
FROGGS++ # cheating is technique
08:15 rindolf joined
FROGGS but why do I see that filename there instead of a literal "<program>"? 08:15
github.com/perl6/evalbot/blob/mast...er.pm#L141 08:16
moritz $ git grep tmpfile 08:17
evalbot.pl: $tmp_res =~ s|/tmp/\w{10}|/tmp/tmpfile|g;
FROGGS: because you didn't read the comments :-)
FROGGS Filter tmpfile names to merge error results
master
commit 35a28d0ff9630895db2fd3d7cd21eb7d3ba3f993 1 parent 5ad7f7c
Mouq authored an hour ago
haha
moritz FROGGS: $filename is the file that the result is written to 08:18
FROGGS eww
I'll revert then
Mouq++
08:19 zakharyas joined
moritz FROGGS: and $program_file_name contains what its name suggests 08:19
dalek albot: dc58e94 | (Tobias Leich)++ | lib/EvalbotExecuter.pm:
Revert "unify the program name in output string"

This reverts commit c578363c1b6e3df335517927011687444e38c738.
FROGGS (Tobias Leich)--
moritz evalbot control pull
camelia (success)
FROGGS # nothing happened, continue programming 08:20
08:20 berekuk left
FROGGS r: say "\c[BRAILLE PATTERN DOTS-13456]" 08:20
moritz evalbot control restart
08:20 camelia left
FROGGS umm 08:20
:p
moritz sorry for killing camelia under your feet :-) 08:21
08:21 camelia joined
FROGGS np 08:21
moritz FROGGS++ # trying
08:21 berekuk joined 08:22 ChanServ sets mode: +v camelia
FROGGS r: say "\c[BRAILLE PATTERN DOTS-13456]" 08:24
camelia rakudo-parrot c8ec1d, rakudo-jvm c8ec1d, rakudo-moar c8ec1d: OUTPUT«===SORRY!=== Error while compiling /tmp/tmpfile␤Unrecognized \c character␤at /tmp/tmpfile:1␤------> say "\c[⏏BRAILLE PATTERN DOTS-13456]"␤ expecting any of:␤ …»
FROGGS cool
I will report (and maybe fix) that
08:26 fhelmberger joined 08:27 SamuraiJack_ left 08:29 berekuk left, jnap joined 08:32 berekuk joined 08:34 jnap left 08:41 broquaint left 08:43 berekuk left 08:52 berekuk joined, pecastro left 09:10 PZt left 09:12 Rotwang left 09:18 PZt joined 09:19 fhelmberger_ joined
moritz huh, when I compile perl-j, it seems to hang after stage jast 09:20
the java process has already eaten up 27 minutes CPU time 09:21
moritz kills it
09:22 fhelmberger_ left, fhelmberger_ joined, fhelmberger left 09:25 dakkar joined 09:29 jnap joined 09:34 jnap left 09:46 LLamaRider joined
FROGGS moritz: can you bisect it? 10:15
moritz FROGGS: dunno if I can :-) 10:20
FROGGS my nqp/rakudo built for all backends at HEAD successfully 10:21
10:21 pecastro joined
moritz with nqp/master? 10:22
bisecting a hang is no fun :( 10:24
FROGGS :/ 10:25
with master I'd say
moritz and it hangs so hard that a ctrl+c doesn't kill it 10:26
needs a kill -9
FROGGS I don't know how else we should hunt that down
moritz tries to find a good starting point for the bisect 10:27
jnthn It musta built fairly recently 10:30
'cus I was fixign the stack overflow bug just a couple of days ago
moritz yes
I kinda fear it's something in my environment
jnthn oh :S 10:31
FROGGS t/spec/S06-advanced/callframe.rakudo.parrot ..................... Failed 1/9 subtests
(less 1 skipped subtest: 7 okay)
that happens not only for me, right? 10:32
dalek p: 290a87b | (Arne Skjærholt)++ | src/vm/jvm/runtime/org/perl6/nqp/ (3 files):
Progress towards pointer members in CStructs.

CArrays and CPointers should work now, but CStructs inside CStructs are broken, due to a wrinkle in how we dynamically generate and load classes. 8c378e7 | (Tobias Leich)++ | src/HLL/Grammar.nqp: align charname to std
Which allows things like \c[BRAILLE PATTERN DOTS-13456]
10:33
10:33 dalek left
arnsholt Aww, dalek dieded 10:34
FROGGS arnsholt++ # anyway
10:34 dalek joined, ChanServ sets mode: +v dalek
jnthn FROGGS: I saw taht in the daily run 10:34
arnsholt++ # progress
FROGGS k
and something about enums
t/spec/S12-enums/pseudo-functional.t ............................ Failed 1/11 subtests
arnsholt jnthn: Could you review github.com/perl6/nqp/commit/c9c5f7...57c166d22e for me? 10:35
It changes P6Opaque a tiny bit as well, so a second opinion would be nice 10:37
jnthn oh wow...
That sounds like a pretty good optimization..
arnsholt Spiffy! 10:38
jnthn arnsholt: That said...
arnsholt: I think we might be better making an instance of it, and hanging it off GlobalContext.
arnsholt: So it works out properly-er with evalserver. 10:39
arnsholt Right
jnthn arnsholt: Then we can share it between CStructand P6opaque
10:39 fhelmberger_ left
arnsholt Yeah, definitely 10:40
I almost did that too, but wasn't confident enough that there wasn't some threading-related thing I'd missed =)
arnsholt The evalserver, is that a JVM thing we're using to do stuff, or something Perl-specific?
nwc10 is there an easy way to see which tests fail on Moar, but pass on JVM or pass on Parrot?
FROGGS nwc10: not that I know.... no 10:43
moritz arnsholt: jvm-specific
arnsholt: 'cause it's the one with very high startup time
FROGGS moritz: but it is our (sorear++'s) invention, not a thing jvm provides ootb, right? 10:44
jnthn Yes, it's a sorear++ creation :)
10:48 berekuk left, berekuk joined
timotimo nwc10: almost all the tests that don't pass on parrot or jvm should be fudged 10:49
nwc10 if it's not obvious, I'm curious what Parrot can do that MoarVM can't do yet
timotimo moritz: could the hard hang of the jvm possibly be related to trying to dump a very, very, very big core?
i had that before that i couldn't kill a process while it was dumping core 10:50
or rather, i killed it and it hung for a whole while because it had to dump core
i have another feature request for camelia 10:52
10:53 fhelmberger joined
timotimo r: say "hey, heyo, heya".split(", ").tree>>.comb.tree.perl 10:54
camelia rakudo-parrot c8ec1d, rakudo-jvm c8ec1d, rakudo-moar c8ec1d: OUTPUT«LoL.new(("h", "e", "y").list.item, ("h", "e", "y", "o").list.item, ("h", "e", "y", "a").list.item)␤»
timotimo r: say "hey, heyo, heya".split(", ").tree>>.comb.perl
camelia rakudo-parrot c8ec1d, rakudo-jvm c8ec1d, rakudo-moar c8ec1d: OUTPUT«(("h", "e", "y").list, ("h", "e", "y", "o").list, ("h", "e", "y", "a").list)␤»
timotimo r: for "hey, heyo, heya".split(", ").tree>>.comb.perl -> @a { say @a.perl } 10:55
camelia rakudo-moar c8ec1d: OUTPUT«Nominal type check failed for parameter '@a'; expected Positional but got Str␤ in block at /tmp/tmpfile:1␤␤»
..rakudo-jvm c8ec1d: OUTPUT«Nominal type check failed for parameter '@a'␤ in block at /tmp/tmpfile:1␤␤»
..rakudo-parrot c8ec1d: OUTPUT«Nominal type check failed for parameter '@a'; expected Positional but got Str instead␤ in block at /tmp/tmpfile:1␤␤»
timotimo r: for "hey, heyo, heya".split(", ").tree>>.comb.perl -> $a { say $a.perl }
camelia rakudo-parrot c8ec1d, rakudo-jvm c8ec1d, rakudo-moar c8ec1d: OUTPUT«"((\"h\", \"e\", \"y\").list, (\"h\", \"e\", \"y\", \"o\").list, (\"h\", \"e\", \"y\", \"a\").list)"␤»
timotimo ooph, haha
r: for "hey, heyo, heya".split(", ").tree>>.comb -> @a { say @a.perl }
camelia rakudo-moar c8ec1d: OUTPUT«Nominal type check failed for parameter '@a'; expected Positional but got Str␤ in block at /tmp/tmpfile:1␤␤»
..rakudo-jvm c8ec1d: OUTPUT«Nominal type check failed for parameter '@a'␤ in block at /tmp/tmpfile:1␤␤»
..rakudo-parrot c8ec1d: OUTPUT«Nominal type check failed for parameter '@a'; expected Positional but got Str instead␤ in block at /tmp/tmpfile:1␤␤»
timotimo r: for "hey, heyo, heya".split(", ").tree>>.comb -> $a { say $a.perl }
camelia rakudo-parrot c8ec1d, rakudo-jvm c8ec1d, rakudo-moar c8ec1d: OUTPUT«"h"␤"e"␤"y"␤"h"␤"e"␤"y"␤"o"␤"h"␤"e"␤"y"␤"a"␤»
timotimo r: for "hey, heyo, heya".split(", ").tree>>.comb.tree -> $a { say $a.perl }
camelia rakudo-parrot c8ec1d, rakudo-jvm c8ec1d, rakudo-moar c8ec1d: OUTPUT«("h", "e", "y").list.item␤("h", "e", "y", "o").list.item␤("h", "e", "y", "a").list.item␤»
timotimo that's better ... kind of 10:56
now how do i ...
timotimo takes it to a local repl instead of spamming the chat
10:59 denis_boyun joined 11:00 kivutar joined
timotimo r: gist.github.com/timo/8538083 11:02
camelia rakudo-parrot c8ec1d, rakudo-jvm c8ec1d, rakudo-moar c8ec1d: OUTPUT«===SORRY!=== Error while compiling /tmp/tmpfile␤Variable '$common-prefix' is not declared␤at /tmp/tmpfile:6␤------> $common-prefix⏏ = @pieces[0].substr(0,$_);␤ e…» 11:03
timotimo d'oh
r: gist.github.com/timo/8538083
camelia rakudo-parrot c8ec1d, rakudo-jvm c8ec1d, rakudo-moar c8ec1d: OUTPUT«rakudo-{parrot,jvm,moar} c8ec1d␤»
timotimo what this doesn't do is leave out pieces that don't fit, like "niecza blahblah"
rn: say "test" 11:04
camelia rakudo-parrot c8ec1d, rakudo-jvm c8ec1d, niecza v24-109-g48a8de3: OUTPUT«test␤»
timotimo moritz: ^ it ought to have rakudo-moar in it, too, no? 11:05
11:06 bjz_ left
timotimo oh hey, rakudo-moar reached 98.84% 11:07
nice work!
11:07 bjz joined
timotimo 90 more test passes :) 11:07
(since yesterday, i mean) 11:08
jnthn So close to the 99%...
timotimo m: say "only {28379 - 28169} more tests until i've caught up with rakudo-parrot!"
camelia rakudo-moar c8ec1d: OUTPUT«only 210 more tests until i've caught up with rakudo-parrot!␤»
11:09 preflex left
moritz timotimo: yes 11:09
jnthn To folks in Germany: seems that the German Perl Workshop submissions closed before I got chance to submit. Didn't think it'd happen so early.
timotimo m: say "and {28499 * 0.99 - 28169} needed to get to 99% of rakudo-jvm; even without parallelism stuff!"
camelia rakudo-moar c8ec1d: OUTPUT«and 45.01 needed to get to 99% of rakudo-jvm; even without parallelism stuff!␤»
timotimo now we need to figure out how to make 0.01 test pass :\
jnthn Just pass 46... 11:10
FROGGS jnthn: I can talk to them if you want
timotimo jnthn: oh shoot, i didn't submit anything either!
(and i'ven't even begun thinking about a topic)
jnthn FROGGS: Well, no, they already have a schedule sorted, I shouldn't barge in.
timotimo jnthn: but you're jnthn!
jnthn timotimo: But still, it's not really fair to expect them to kick somebody off the schedule who already got a talk accepted.
timotimo that's right 11:11
maybe they'll add a slot somewhere :P
jnthn Especially when those folks were more proactive than me. :)
FROGGS jnthn: I will ask them anyway if there are free slots that want filling
jnthn FROGGS: OK, but plesae don't pressure them to find one.
FROGGS sure
jnthn I've got FOSDEM and invites to other workshops...it's not like I ain't gonna get chance to speak at some places this year :) 11:12
Anyway, I guess my question was gonna be: if I ain't speaking, I'm not really hugely feeling a need to be at the workshop, given I won't understand most of the talks anyway. But I know some folks had hackathon-around-that-time ideas. Did anything concrete get planned? 11:14
FROGGS jnthn: I dunno if pmichaud still wants to come to gpw to meet you... 11:15
11:15 kivutar left 11:17 kivutar joined
FROGGS jnthn: I'm not sure that there is a hackathon at all... but I want to propose something: let us meet in late february? then I might even meet moritz :o) 11:18
timotimo should probably have another look at the calendar around that time 11:21
FROGGS jnthn: is there already a workshop/hackathon in feb where we could meet? 11:22
11:31 jnap joined
timotimo thinks maybe this problem may make a good candidate for a code golf actually 11:36
dalek p: 523a33f | (Tobias Leich)++ | src/QRegex/P6Regex/Actions.nqp:
fix \C[MUMBLE], negated version of \c[MUMBLE]
11:36 jnap left
dalek kudo/nom: bc98d54 | (Tobias Leich)++ | tools/build/NQP_REVISION:
pull in \C fixes
11:37
11:37 broquaint joined
timotimo this should give more passing tests on the two other backends as well, no? 11:37
FROGGS 34 passes on all three, yes 11:39
dalek ast: 32c36c7 | (Tobias Leich)++ | S05-mass/named-chars.t:
untodo now working \C tests
FROGGS err, 54 actually
jnthn FROGGS: Well, I think Pm is open with regard to exactly when he comes. One other idea I have for that is that the Czech and Polish Perl workshops are very close together in time.
FROGGS may does not work though for moritz 11:41
jnthn FROGGS: I already got somebody coming to visit late Feb so can't really do that...
FROGGS k
jnthn FROGGS: I'd be open to coming for some weekend hackathon in Germany sometime in the next month or two, though.
11:41 grondilu joined
grondilu r: say first *>10, ^100 11:41
moritz you should plan without me; anything I plan for the next ~6 months is very unreliable
camelia rakudo-parrot c8ec1d, rakudo-jvm c8ec1d, rakudo-moar c8ec1d: OUTPUT«11␤» 11:42
jnthn FROGGS: If it were to happen on the weekend after GPW, I could easily come down to Hannover on the Friday, meet in the evening, and hack for the weekend.
timotimo could make any weekend except 2/21-2/23 work
11:42 fhelmberger left
moritz and as much as I'd like to meet all of you, I don't think it would be productive to rely on my plans 11:42
FROGGS jnthn: that sounds acceptable :o)
jnthn FROGGS: Hannover is one of the easily-reached-by-train bits of Germany from here. :)
I suspect I could either return on Monday or take a late train on the Sunday.
11:43 fhelmberger joined
timotimo attends a birthday party on the evening of the 28th of march 11:43
jnthn timotimo: Ah
timotimo i can contribute via telepresence, though ;) 11:44
11:45 kivutar left
jnthn Hm, the train trip is not quite so convenient as I thought to go back late on Sunday. 11:46
11:46 kivutar joined 11:47 kivutar left 11:48 kivutar joined 11:57 kivutar left 11:58 kivutar joined
FROGGS nr: say "\c[BRAILLE PATTERN DOTS-13456]" 12:03
camelia niecza v24-109-g48a8de3: OUTPUT«⠽␤»
..rakudo-parrot c8ec1d, rakudo-jvm c8ec1d: OUTPUT«===SORRY!=== Error while compiling /tmp/tmpfile␤Unrecognized \c character␤at /tmp/tmpfile:1␤------> say "\c[⏏BRAILLE PATTERN DOTS-13456]"␤ expecting any of:␤ argument list␤ …»
12:03 SubTerra joined
timotimo r: say [1, 2, 3, 4].keys.combinations.perl; 12:05
camelia rakudo-parrot c8ec1d: OUTPUT«Not enough positional parameters passed; got 1 but expected 2␤ in method combinations at gen/parrot/CORE.setting:8109␤ in block at /tmp/tmpfile:1␤␤»
..rakudo-moar c8ec1d: OUTPUT«Not enough positional parameters passed; got 1 but expected 2␤ in method combinations at src/gen/m-CORE.setting:8089␤ in block at /tmp/tmpfile:1␤␤»
..rakudo-jvm c8ec1d: OUTPUT«Not enough positional parameters passed; got 1 but expected 2␤ in method combinations at gen/jvm/CORE.setting:8089␤ in block at /tmp/tmpfile:1␤␤»
timotimo r: say [1, 2, 3, 4].keys.combinations(*).perl;
camelia rakudo-moar c8ec1d: OUTPUT«Cannot call 'combinations'; none of these signatures match:␤:(List : Int $of, Mu *%_)␤:(List : Range $of = { ... }, Mu *%_)␤ in method combinations at src/gen/m-CORE.setting:8089␤ in block at /tmp/tmpfile:1␤␤»
..rakudo-parrot c8ec1d: OUTPUT«Cannot call 'combinations'; none of these signatures match:␤:(List : Int $of, Mu *%_)␤:(List : Range $of = { ... }, Mu *%_)␤ in any at gen/parrot/BOOTSTRAP.nqp:1219␤ in any at gen/parrot/BOOTSTRAP.nqp:1210␤ in method combinations at gen/pa…»
..rakudo-jvm c8ec1d: OUTPUT«Cannot call 'combinations'; none of these signatures match:␤:(List : Int $of, Mu *%_)␤:(List : Range $of = { ... }, Mu *%_)␤ in any at gen/jvm/BOOTSTRAP.nqp:1212␤ in any at gen/jvm/BOOTSTRAP.nqp:1202␤ in method combinations at gen/jvm/CORE.se…»
timotimo huh.
12:05 Ayiko left
timotimo why isn't it taking the range version with the default value? 12:06
r: say [1, 2, 3, 4].keys.combinations(0..*).perl;
camelia rakudo-parrot c8ec1d, rakudo-jvm c8ec1d, rakudo-moar c8ec1d: OUTPUT«([0], [1], [2], [3], [0, 1], [0, 2], [0, 3], [1, 2], [1, 3], [2, 3], [0, 1, 2], [0, 1, 3], [0, 2, 3], [1, 2, 3], [0, 1, 2, 3]).list␤»
12:07 woolfy1 joined
timotimo oh 12:07
the proto method has a $ in its signature
maybe that ought to be $?
12:07 berekuk left 12:08 bjz left, woolfy left, bjz joined 12:09 berekuk joined
hoelzro does --gen-moar not work? I feel like it's broken the last few times I've tried it 12:10
FROGGS hoelzro: I know about issues on osx, but it should work for anybody else... 12:11
hoelzro hmm
I'm on an ARch VM
FROGGS *except 32bit users
hoelzro I did perl Configure.pl --prefix=$HOME/.mokudo --backends=moar --gen-moar 12:12
64-bit Arch
FROGGS do I would guess you can build MoarVM itself?
how does it fail?
12:12 kivutar left
hoelzro I can build Moar no problem 12:13
it doesn't even try
hang on, I'll paste the output
FROGGS k
hoelzro FROGGS: pastebin.com/98gAmZ9v 12:15
jnthn If you add --gen-nqp does it then do the two?
hoelzro tries
ah, that's it I think
yeah, it's building Moar now at least
I guess I just figured --gen-moar implied --gen-nqp
--gen-parrot does, right?
moritz it does, yes 12:16
feel free to patch Configure.pl to make it more consistent
hoelzro noted =)
12:17 berekuk left, berekuk joined
grondilu timotimo: $? would not work 12:17
but
timotimo why wouldn't it? :( 12:18
grondilu r: proto f($?) {*}; multi f($x) { $x }; say f;
camelia rakudo-parrot c8ec1d, rakudo-jvm c8ec1d, rakudo-moar c8ec1d: OUTPUT«===SORRY!===␤CHECK FAILED:␤Calling 'f' requires arguments (line 1)␤ Expected any of:␤ :($x)␤»
grondilu but you can do proto f($ = 0..*) {*}
timotimo er ... i can?
grondilu r: proto f($ = 2) {*}; multi f($x) { $x }; say f;
camelia rakudo-parrot c8ec1d, rakudo-jvm c8ec1d, rakudo-moar c8ec1d: OUTPUT«===SORRY!===␤CHECK FAILED:␤Calling 'f' requires arguments (line 1)␤ Expected any of:␤ :($x)␤»
grondilu oops 12:19
I tired it locally and it worked :/
r: proto f($ = 2) {*}; multi f($x = 1) { $x }; say f;
camelia rakudo-parrot c8ec1d, rakudo-jvm c8ec1d, rakudo-moar c8ec1d: OUTPUT«1␤»
grondilu weird
timotimo well, clearly perl6 is broken 12:20
moritz I think the signature of the proto is just checked
grondilu do we have to put a proto anyway?
timotimo is not sure when putting a proto is necessary 12:21
grondilu it's not nqp, so it should be fine, right?
moritz you only need to use an explicit proto if you want to put constraint on all candidates, or if you want to hide an outer proto 12:23
timotimo the latter case i knew about 12:24
or you could use "only method foobar"
jnthn Putting a proto is needed if (a) you're writing NQP, (b) you're writing CORE.setting, (c) you want to hide an outer set of multis, or (d) you want to control what &thingy.arity or &thingy.count will return, which can be useful if you want to work well with map, reduce, etc. 12:25
timotimo b i'm not understanding, d is actually pretty cool
jnthn Oh, and you want to constraint all candidates in some way, like moritz++ said.
timotimo: b is because auto-generating a proto doesn't work in the setting 12:26
grondilu hang on, $? *should* work
timotimo ah, fair enough
grondilu r: proto f($?) {*}; multi f($x = 1) { $x }; say f;
camelia rakudo-parrot c8ec1d, rakudo-jvm c8ec1d, rakudo-moar c8ec1d: OUTPUT«1␤»
tadzik hm, don't you need a proto when you export a multi?
grondilu yeah, I forgot to put a default in the multi
jnthn grondilu: It worked, the error you got was 'cus the multi itself didn't handle the optional case, and you had no zero-arity multi candidate.
tadzik: You don't have to have one, but it may be convenient in so far as you get to export all the candidates
tadzik hm, I remember wrong then :) 12:27
grondilu timotimo: feel free to add ? in the combinations proto 12:28
timotimo r: my %foo{Any}; %foo{$[1, 2, 3]} = 5; say %foo.perl;
camelia rakudo-parrot c8ec1d, rakudo-jvm c8ec1d, rakudo-moar c8ec1d: OUTPUT«===SORRY!=== Error while compiling /tmp/tmpfile␤Unsupported use of $[ variable; in Perl 6 please use user-defined array indices␤at /tmp/tmpfile:1␤------> my %foo{Any}; %foo{⏏…»
timotimo r: my %foo{Any}; %foo{$(1, 2, 3)} = 5; say %foo.perl;
camelia rakudo-parrot c8ec1d, rakudo-jvm c8ec1d, rakudo-moar c8ec1d: OUTPUT«Hash[Any,Any].new($(1, 2, 3) => 5)␤»
timotimo fair enough
12:29 kaleem left 12:30 kivutar joined 12:31 jnap joined
grondilu talking about combinations, I notice that the Int multi is not lazy (it does not use gather/take) 12:35
arnsholt jnthn: Spectesting an NQP patch with the ByteClassLoader hanging off the GlobalContext now
12:36 jnap left
timotimo you could check the output of time to see if it reduces the overall memory usage by much 12:36
this may even help with garbage collecting grammars
because if i understood correctly, it would have created one p6opaque per grammar, and one classloader per p6opaque
12:38 kivutar left 12:40 berekuk left 12:42 berekuk joined
grondilu proto foo($) { gather {*} }; multi foo(A $x) { for do-stuff { take something } } # <- Is something like this supposed to work? 12:47
timotimo sounds about right, yeah 12:48
jnthn whoa
Does it work? :)
timotimo i would like that
grondilu no, but it used to
jnthn m: proto foo($) { gather {*} }; multi foo($x) { .take for ^$x }; say foo(10) 12:49
grondilu I used to write this for same fringe in RC: gist.github.com/grondilu/8539314
camelia rakudo-moar bc98d5: OUTPUT«␤»
jnthn r: proto foo($) { gather {*} }; multi foo($x) { .take for ^$x }; say foo(10)
camelia rakudo-parrot bc98d5, rakudo-jvm bc98d5, rakudo-moar bc98d5: OUTPUT«␤»
jnthn Hmm
r: proto foo($) { gather {*} }; multi foo($x) { say 'here'; .take for ^$x }; say foo(10)
camelia rakudo-parrot bc98d5, rakudo-jvm bc98d5, rakudo-moar bc98d5: OUTPUT«␤»
jnthn Curious. 12:50
moritz I guess it parses it as gather { } with a Whatever in there
not as a {*}
jnthn Oh!!
r: proto foo($) { gather { {*} } }; multi foo($x) { say 'here'; .take for ^$x }; say foo(10)
camelia rakudo-parrot bc98d5: OUTPUT«here␤splice() not implemented in class 'Mu'␤ in method reify at gen/parrot/CORE.setting:7243␤ in method reify at gen/parrot/CORE.setting:7241␤ in method reify at gen/parrot/CORE.setting:7241␤ in method reify at gen/parrot/CORE.setting:7337…»
..rakudo-moar bc98d5: OUTPUT«here␤0 1 2 3 4 5 6 7 8 9␤»
..rakudo-jvm bc98d5: OUTPUT«here␤control operator crossed continuation barrier␤ in block at /tmp/tmpfile:1␤␤»
grondilu neat 12:51
moritz moar++
grondilu the result is still not right, though: 12:52
timotimo i'm really glad [eq] exists
grondilu m: gist.github.com/grondilu/8539314
camelia rakudo-moar bc98d5: OUTPUT«1..6␤ok 1 - ␤ok 2 - ␤ok 3 - ␤not ok 4 - ␤not ok 5 - ␤not ok 6 - ␤# Looks like you failed 3 tests of 6␤»
timotimo :o 12:53
12:54 skids left 12:56 raiph joined, atroxaper joined 12:57 berekuk left 12:59 telex left, berekuk joined
grondilu though maybe at times where a gather was in proto, I had failed to notice that the result was incorrect. So it may have never truly worked, after all. 13:03
colomon grondilu: is the code really meant to have recursive calls to gather? 13:08
seems like what you want is a wrapper function that calls gather, and then the recursive multi called from that. 13:09
grondilu that's what is being done in the current RC entry 13:12
but it's inelegant, imho
r: proto foo($) { gather { {*} } }; multi foo(Int) { foo $_ for <foo bar> }; multi foo(Str $s) { take $s }; say foo(Int);
camelia rakudo-jvm bc98d5: OUTPUT«control operator crossed continuation barrier␤ in block at /tmp/tmpfile:1␤␤»
..rakudo-moar bc98d5: OUTPUT«␤»
..rakudo-parrot bc98d5: OUTPUT«Cannot call 'foo'; none of these signatures match:␤:(Int )␤:(Str $s)␤ in any at gen/parrot/BOOTSTRAP.nqp:1219␤ in any at gen/parrot/BOOTSTRAP.nqp:1210␤ in block at /tmp/tmpfile:1␤␤»
grondilu m: proto foo($) { gather { {*} } }; multi foo(Int) { foo $_ for <foo bar> }; multi foo(Str $s) { take $s }; say foo(Int); 13:13
camelia rakudo-moar bc98d5: OUTPUT«␤»
grondilu was expecting "foo bar"
colomon grondilu: but what is the point of making fringe (Any) be gather take $leaf ?
jnthn Why?
13:13 benabik left
jnthn The fall to foo in the first multi will establish a new gather 13:14
And then you throw away the results of it.
*call
grondilu hum
jnthn The proto is called on each foo call
colomon I get the impression grondilu is thinking the proto is only called once
grondilu oh yeah
jnthn And take finds the nearest
So recursion kinda kills the cute idiom, sadly :( 13:15
grondilu m: proto foo($) { gather { {*} } }; multi foo(Int) { take foo $_ for <foo bar> }; multi foo(Str $s) { take $s }; say foo(Int);
camelia rakudo-moar bc98d5: OUTPUT«foo bar␤»
grondilu ah
jnthn That does it, yes :)
grondilu m: gist.github.com/grondilu/8539314
camelia rakudo-moar bc98d5: OUTPUT«1..6␤ok 1 - ␤ok 2 - ␤ok 3 - ␤ok 4 - ␤ok 5 - ␤ok 6 - ␤»
grondilu cool
jnthn That is kinda neat. 13:16
colomon but why would you ever want to call gather take to return one value? it's incredibly wasteful.
jnthn Though...what colomon said :)
It's going to be slow.
13:16 kivutar joined
jnthn Well. It's going to be slower than it need be. 13:16
It makes sense if the candidates may take many things of course.
grondilu once you reach a leaf, you only have one value to return. I don't know about efficiency, but it does make sense. 13:17
colomon grondilu: no, it doesn't make sense
grondilu :/
notice that even with a wrapper function (as in the current RC entry), you'll also have a multi that only takes one thing. 13:18
13:19 berekuk left 13:20 berekuk joined 13:23 kivutar left 13:24 kivutar joined
colomon grondilu: the point is, the RC version has one gather which collects all of the takes. Yours has one gather call for every node and leaf of the $tree 13:25
grondilu well, RC is a wiki after all. I'll put the code there. If someone is not happy with it, we'll discuss it there.
13:25 kivutar left, arnsholt left
grondilu colomon: indeed 13:26
13:26 arnsholt joined 13:27 kivutar joined, berekuk left
grondilu good point 13:28
colomon is trying to think of how he can clearly demonstrate how mixed up this is
grondilu maybe with a samewith or something like that? I mean, it's possible to call an other candidate without calling the proto, isn't it? 13:30
grondilu doesn't know well the samewith, nextwith and similar :/ 13:31
colomon maybe? I've never understood all the rules for that.
jnthn Thing is...
13:31 berekuk joined
jnthn m: proto foo($) { gather { {*} } }; multi foo(Int) { take foo $_ for <foo bar> }; multi foo(Str $s) { take $s }; say foo(Int); 13:31
camelia rakudo-moar bc98d5: OUTPUT«foo bar␤»
jnthn m: proto foo($) { {*} }; multi foo(Int) { foo $_ for <foo bar> }; multi foo(Str $s) { $s }; say foo(Int); # I bet it does the same with the gather/take removed :) 13:32
camelia rakudo-moar bc98d5: OUTPUT«foo bar␤»
grondilu thought this had been tried earlier 13:33
colomon jnthn: right
the original uses gather / take so that it is lazy
jnthn Ah...
colomon but doing a gather on each bit of the recursive call means it's only kind of lazy
grondilu notices that there is not gather/take at all 13:34
jnthn: no comment on the samewith/nextwith suggestion? 13:35
jnthn I have a bad feeling that the first thing eqv does on two lists is .elems them
Which, of course, evaluates the whole thing
nextwith is for iterating the current candidate list - that is, those valid in the initial dispatch. 13:36
samewith will invoke the proto gain.
*again
grondilu k
jnthn So I don't think either help in this case
colomon jnthn: you're totally right about eqv 13:37
that's annoying
jnthn Well, in the non-lazy case it's the fastest way to determine two things differ 13:38
grondilu m: gist.github.com/grondilu/8539314 13:39
camelia rakudo-moar bc98d5: OUTPUT«1..6␤ok 1 - ␤ok 2 - ␤ok 3 - ␤ok 4 - ␤ok 5 - ␤ok 6 - ␤»
grondilu the non-lazy version is not too bad for RC
13:40 kivutar left, kivutar joined
hoelzro hmm 13:41
when the synopses say that alphanumeric characters may not be used as delimiters for m{ ... }, what's the definition of "alphanumeric"? 13:42
STD seems to consider _ as alnum:
std: m _o_
camelia std 09dda5b: OUTPUT«===SORRY!===␤Alphanumeric character is not allowed as delimiter at /tmp/CpdiOGTXJp line 1:␤------> m ⏏_o_␤Parse failed␤FAILED 00:01 120m␤»
colomon Seems to me we need an easy way to determine if a List (Array, etc…) is lazy. 13:44
because (for example) infix:<eqv> is efficient if its inputs are not lazy, and wildly incorrect if they are.
TimToady: ^^ RC, same-fringe, and eqv 13:45
13:45 berekuk left
dalek p: 6ee4813 | (Arne Skjærholt)++ | src/vm/jvm/runtime/org/perl6/nqp/ (7 files):
Only use a single ByteClassLoader, attached to the GlobalContext.

In a few cases (Java interop), we still have to create additional ByteClassLoaders, but this should cut down memory use a bit.
13:47
13:47 berekuk joined 13:48 bjz left, ajr joined 13:49 kaleem joined, ajr is now known as Guest27614, Guest27614 is now known as ajr_ 13:50 bjz joined
hoelzro ah, apparently _ are considered alnums by NQP/Rakudo as well 13:51
13:53 sqirrel left 13:55 kivutar left, jnap joined 13:56 kivutar joined 13:58 berekuk left 13:59 jnap left
[Coke] m: say "Only { 28499*.99-28169} tests left for moar to hit 99%" 14:01
camelia rakudo-moar bc98d5: OUTPUT«Only 45.01 tests left for moar to hit 99%␤»
nwc10 what's the ratio of Moar to Parrot? 14:02
[Coke] m: say "Moar is at {100*28169/28379}% of parrot." 14:04
camelia rakudo-moar bc98d5: OUTPUT«Moar is at 99.260016% of parrot.␤»
hoelzro wow 14:05
14:05 kivutar left
hoelzro such passing 14:05
many test.
grondilu
.oO( sounds like a doge. Intentional? )
14:06
14:06 kivutar joined 14:10 berekuk joined
hoelzro maaaaaaybe 14:11
14:15 kivutar left, kivutar joined 14:16 araujo joined 14:19 berekuk left, kbaker joined 14:20 sqirrel joined 14:23 berekuk joined 14:25 kivutar left
[Coke] crapcrapcrap I had a 3 day weekend to work on my perl 6 presentation, and did not. 14:25
14:25 kivutar joined 14:29 skids joined 14:30 berekuk left 14:32 araujo left 14:36 kaare__ left 14:37 salv0 left, ajr_ left, jnap joined, salv0 joined 14:38 ajr joined, ajr is now known as Guest97702, Guest97702 is now known as ajr_ 14:39 kaleem left, jnap1 joined 14:40 jnap left, kivutar left 14:41 kivutar joined 14:46 sqirrel left
grondilu for some reason I have to run make install twice until I can run tests. 14:46
FROGGS I guess all of us have that problem 14:47
14:49 berekuk joined
jnthn don't... 14:49
colomon I tried make spectest on jvm (I think) yesterday and it ran a bunch of tests and then hung, very odd 14:51
dalek kudo/nom: 58b1a27 | moritz++ | Configure.pl:
[Configure] --gen-moar should imply --gen-nqp
14:52
14:53 berekuk left 14:54 berekuk joined 14:56 thou joined 15:00 btyler joined, smls joined, kivutar left
smls Is there any user-friendly documentation that explains when binding should be used instead of assignment (and when not)? 15:02
15:02 kivutar joined
grondilu r: use MONKEY_TYPING; class Foo { my sub talk { say "hi" } }; augment class Foo { method talk { talk } }; Foo.new.talk; 15:03
camelia rakudo-parrot bc98d5, rakudo-jvm bc98d5, rakudo-moar bc98d5: OUTPUT«===SORRY!=== Error while compiling /tmp/tmpfile␤Undeclared routine:␤ talk used at line 1␤␤»
smls For example, in yesterday's log I see a bunch of "my $s := Supply.new;" - why the binding?
dalek ast: 6bb4aad | (Tobias Leich)++ | S05-mass/properties-general.t:
unskip tests that are meant to work on moar
moritz smls: I don't think it matters in that case
15:03 johnmilton joined
moritz smls: doc.perl6.org/language/containers tries to explain what binding is, but not really when to use it 15:04
smls Also, many Perl 6 examples floating around the net use binding for storing a lazy list in an array, but even that seems to work with assignment...
p: my @array = 1..*; say @array[4]
camelia rakudo-parrot bc98d5: OUTPUT«5␤»
grondilu when I do monkey typing, the 'my'-scoped lexical variables and functions are not visible inside an 'augment' block?
moritz smls: the assignment only works properly when the compiler can find out that the list is infinite 15:05
grondilu (see example above)
moritz smls: otherwise it might reify lots of list items that you don't want; which is why binding is safer in the context of laziness
grondilu r: use MONKEY_TYPING; class Foo { our sub talk { say "hi" } }; augment class Foo { method talk { talk } }; Foo.new.talk;
camelia rakudo-parrot bc98d5, rakudo-jvm bc98d5, rakudo-moar bc98d5: OUTPUT«===SORRY!=== Error while compiling /tmp/tmpfile␤Undeclared routine:␤ talk used at line 1␤␤»
grondilu r: use MONKEY_TYPING; class Foo { our sub talk { say "hi" } }; augment class Foo { method talk { self::talk } }; Foo.new.talk; 15:06
moritz grondilu: lexicals are lexically scoped
camelia rakudo-jvm bc98d5: OUTPUT«Could not find symbol '&talk'␤ in method <anon> at gen/jvm/CORE.setting:12133␤ in any at gen/jvm/Metamodel.nqp:2610␤ in any find_method_fallback at gen/jvm/Metamodel.nqp:2609␤ in any find_method at gen/jvm/Metamodel.nqp:947␤ in any at gen/j…»
..rakudo-parrot bc98d5: OUTPUT«Could not find symbol '&talk'␤ in method <anon> at gen/parrot/CORE.setting:12154␤ in any at gen/parrot/Metamodel.nqp:2693␤ in any find_method_fallback at gen/parrot/Metamodel.nqp:2681␤ in any find_method at gen/parrot/Metamodel.nqp:948␤ i…»
..rakudo-moar bc98d5: OUTPUT«===SORRY!===␤Could not find symbol '&talk'␤»
moritz so, no, not visible in an augment
grondilu ok
r: use MONKEY_TYPING; class Foo { our sub talk { say "hi" } }; augment class Foo { method talk { Foo::talk } }; Foo.new.talk; 15:07
camelia rakudo-parrot bc98d5, rakudo-jvm bc98d5, rakudo-moar bc98d5: OUTPUT«hi␤»
smls moritz: does the spec define the cases in which the compiler can be assumed to figure this out?
moritz smls: I don't know 15:08
colomon smls: not very well, so far as I know.
smls also, wasn't there supposed to be a "lazy" keyword to tell the compiler when you want lazyness?
colomon p: my @array = 1...*; say @array[4]
camelia rakudo-parrot bc98d5: OUTPUT«5␤»
moritz smls: yes
smls re. doc.perl6.org/language/containers, I still can't make head or tail of it... First it says: "a variable is not a user-exposed object in Perl 6", but then a little later: "objects of type Scalar are everywhere in Perl 6". Which is it? 15:11
moritz a variable isn't an object of type Scalar
it can contain one
smls then what is a Scalar?
moritz it's a container. 15:12
15:12 sqirrel joined
smls So there are 3 levels: variable - container - value ? 15:12
moritz yes
smls why would users need to deal with Scalar as an object? 15:13
moritz it plays a critical role in understanding whether something will flatten in list context 15:14
p: my $x = (1, 2, 3); my $cnt = 0; ++$cnt for $x; say $cnt
camelia rakudo-parrot bc98d5: OUTPUT«1␤»
moritz p: my \x = (1, 2, 3); my $cnt = 0; ++$cnt for x; say $cnt
camelia rakudo-parrot bc98d5: OUTPUT«3␤»
moritz the difference here is that $x is containerized, so it doesn't flatten 15:15
colomon news.ycombinator.com/item?id=7095532 # may be the nicest thing I've ever seen about p6 on HN
15:15 ajr_ left 15:17 kivutar left, ajr_ joined 15:18 kivutar joined 15:19 Leland joined
smls Wait, what? Variables without sigils? 15:19
what are those called?
p: my $x = (1, 2, 3); my $cnt = 0; ++$cnt for @$x; say $cnt # Also, you could have just used this, no? 15:20
camelia rakudo-parrot bc98d5: OUTPUT«3␤»
moritz smls: my intention was to demonstrate that Scalar containers matter, not to iterate over a list :-) 15:21
smls ok :) 15:22
but why do non-containerized, sigil-less variables exist?
15:22 Alina-malina left
smls (Other than to confuse Perl 5 developers like myself?) 15:23
15:23 Alina-malina joined
moritz smls: mostly to be able to pass around stuff without imposing context 15:23
PerlJam mostly? What else? 15:24
moritz PerlJam: performance optimization
PerlJam: aesthetics, maybe
btyler colomon: or about perl at all, if you take the thread as a whole
PerlJam ah, I hadn't considered that there would be opportunity for optimization 15:25
But yes, certainly aesthetics
moritz one less object to allocate
smls Can't $scalar variables be optimized to avoid the indirection in many cases?
moritz smls: that's a bit tricky, because variables can be passed to methods, and you generally don't know to which method a call dispatches at compile time 15:26
but there are cases that have potential for optimization, yes 15:27
jnthn Yeah. "Not easily".
But MoarVM knows what containers are, at least.
Once it type specializes, and provided it inlines methods, a bunch more opportunities might open up.
smls But isn't that a reason *against* making Scalar containers so user-visible? 15:30
moritz smls: how would you control whether something flattens?
smls $foo, @foo, $@foo, list $foo
jnthn smls: In general, "hide stuff and make it magical" is not really the Perl 6 way. 15:31
smls: We tend to encode most things through the type system somehow.
moritz smls: ok, and if you bind that stuff to a sigilless parameter, you need to preserve that
smls: so you need runtime information about whether something flattens 15:32
(same for returning stuff)
15:32 kivutar left, kivutar joined
smls What about Perl 5, does it also use this sort of "lexpad entry -> container -> value" indirection? 15:35
(behind the scenes)
[Coke] colomon: were you using the eval server?
colomon [Coke]: … errr … when?
moritz smls: not really, but it has tie and magic
15:35 bluescreen10 joined
moritz smls: and for symbol tables it has the 'typeglob' layer 15:36
smls moritz: "if you bind that stuff to a sigilless parameter" - well, why allow sigilless parameters then?
as for tie, yeah, I can imagine how that might make things more complicated/slow 15:37
moritz smls: it's very important to be able to pass stuff around without imposing a context; the setting uses it all over the place 15:38
smls: for example for delegation
15:38 berekuk left
moritz smls: also, you still have the same problem for returns 15:38
15:39 berekuk joined
smls but won't the compiler know the target context when it puts the whole program together? 15:40
moritz no 15:41
and, more importantly, it's fine to return an item in list context
if you want it to not flatten
otherwise you couldn't build nested data structures
I think we all would be happy if we could get rid of a level of indirection, but so far none of us have managed 15:43
PerlJam smls: If you didn't have sigilless parameters, how would you tell the compiler "pass the context through unchanged"? (You'd kind of shoe-horn it in "scalar context" like P5 does. P6 tries to be better :)
15:43 ajr_ left
smls is still not convince that a little magical "shoe-horning" is worse than allocating an additional object for each value. 15:44
moritz smls: also, how do you make 'is rw' params without containers? 15:45
smls magical aliasing? :P
moritz or rw accessors?
smls: maybe you should apply your magic to rakudo to make it faster :-) 15:46
smls how does Perl 5 do it?
it also aliases function parameters
15:46 berekuk left
PerlJam smls: magic should be used sparingly. 15:47
15:47 berekuk joined, kivutar left 15:49 benabik joined 15:54 yves_ left 15:56 woolfy1 left 15:59 smls_ joined, Psyche^_ joined, smls left 16:00 sqirrel left 16:01 lizmat left 16:02 Psyche^ left
smls_ On a completely unrelated note: I was wondering, is Damian Conway no longer involved with Perl 6 development? 16:03
16:04 kivutar joined
smls_ He was always the "Perl celebrity" I associated most with the Perl 6 project, besides Larry. 16:05
FROGGS I've not seen nor talked to him since I am here (Oct '12) 16:07
16:07 kivutar left
grondilu he talked about Perl and Perl 6 at OSCON 2013: www.youtube.com/watch?v=MxcVjbyKzQA 16:08
but he does not stick around here, as far as I know (but I know little :) ) 16:09
16:11 kivutar joined, raiph left
arnsholt From what I gather, Damian doesn't do IRC, but he's still around 16:12
16:16 berekuk left 16:17 kivutar left
diakopter he withdrew from helping with Programming Perl 6 16:18
16:18 kivutar joined
diakopter so there's that 16:18
16:18 sqirrel joined 16:19 atroxaper left, [Sno] left 16:20 berekuk joined
benabik Hm. Looks like recent changes to \c cause test failures with nqp-p 16:22
diakopter well the tests were updated to match latest unicode 16:23
benabik Parrot uses icu, which should be up to date. Had problems with the vowel separator well before Moar did.
diakopter well yeah icu upstream should be up to date 16:24
but that doesn't mean the packages are anywhere close
benabik Three failures: t/qregex/01-qregex.t 428,429,430 all labeled "hex (\c[])" 16:25
FROGGS umm
nqp: say("A" ~~ /\c[65]/) 16:26
camelia nqp-moarvm, nqp-jvm, nqp-parrot: OUTPUT«A␤»
FROGGS nqp: say("A" ~~ /\c[]/)
camelia nqp-jvm: OUTPUT«Unrecognized \c character at line 2, near "[]/)"␤ in panic (gen/jvm/stage2/NQPHLL.nqp:378)␤ in charspec (gen/jvm/stage2/NQPHLL.nqp)␤ in backslash:sym<c> (gen/jvm/stage2/NQPP6QRegex.nqp)␤ in !protoregex (gen/jvm/stage2/QRegex.nqp:756)␤ in backslash (gen…»
..nqp-parrot: OUTPUT«Unrecognized \c character at line 2, near "[]/)"␤current instr.: 'panic' pc 15952 (gen/parrot/stage2/NQPHLL.pir:5947) (gen/parrot/stage2/NQPHLL.nqp:425)␤»
..nqp-moarvm: OUTPUT«Unrecognized \c character at line 2, near "[]/)"␤ at gen/moar/stage2/NQPHLL.nqp:369 (/home/p6eval/rakudo-inst-1/languages/nqp/lib/NQPHLL.moarvm:panic:119)␤ from <unknown>:1 (/home/p6eval/rakudo-inst-1/languages/nqp/lib/NQPHLL.moarvm:charspec:367)␤ from <…»
16:26 kaleem joined
FROGGS looks at the test 16:26
benabik home-brew packages icu4c 42.1, which appears to be the most recent.
diakopter ok 16:27
16:27 kivutar left
benabik Actually.... I'm having that problem on -j and -m as well. 16:28
16:28 kivutar joined
benabik So, I'm going to revise that to "recent changes to \c cause test failures on my machine" 16:28
Passes all the TODOed \C33 tests though. 16:30
Moar is notably faster than Parrot on this test. 16:31
FROGGS r: say "abc!!def" ~~ /\c[33,33]/
camelia rakudo-jvm 58b1a2: OUTPUT«(timeout)»
..rakudo-parrot 58b1a2, rakudo-moar 58b1a2: OUTPUT«「!」␤␤»
benabik It appears to fail on all the tests with commas. 16:32
FROGGS r: say("abc!!def" ~~ /c \c[33,33] d/) # that is the problem 16:33
camelia rakudo-parrot 58b1a2, rakudo-jvm 58b1a2, rakudo-moar 58b1a2: OUTPUT«Nil␤»
benabik nqp: say("abc!!def" ~~ /c \c[33,33] d/)
FROGGS it was meant to has a width of two
camelia nqp-moarvm: OUTPUT«Substring length (-5) cannot be negative␤ at gen/moar/stage2/QRegex.nqp:1127 (/home/p6eval/rakudo-inst-1/languages/nqp/lib/QRegex.moarvm:Str:22)␤ from gen/moar/stage2/NQPCORE.setting:674 (/home/p6eval/rakudo-inst-1/languages/nqp/lib/NQPCORE.setting.moarvm:…» 16:34
..nqp-parrot: OUTPUT«␤»
..nqp-jvm: OUTPUT«java.lang.StringIndexOutOfBoundsException: String index out of range: -5␤ in Str (gen/jvm/stage2/QRegex.nqp:1127)␤ in (gen/jvm/stage2/NQPCORE.setting:674)␤ in print (gen/jvm/stage2/NQPCORE.setting:673)␤ in say (gen/jvm/stage2/NQPCORE.setting:680)␤ in …»
FROGGS r: say("abc!!def" ~~ /c \c[33,33]+ d/) # that is the problem
camelia rakudo-parrot 58b1a2, rakudo-jvm 58b1a2, rakudo-moar 58b1a2: OUTPUT«「c!!d」␤␤»
16:34 jnap1 left
FROGGS damn, so there was a reason nobody converted it into an enumcharlist :( 16:34
16:35 zakharyas left, kivutar left 16:36 kivutar joined
grondilu timotimo: FYI github.com/rakudo/rakudo/pull/240 16:38
benabik Wow. nqp/m-test takes 0:36. nqp/p-test takes 2:42 16:41
arnsholt Wow. I should get hacking on Moar =)
benabik j-test takes approximately forever, of course. ;-) 16:42
arnsholt Sounds about right 16:44
16:44 berekuk left 16:47 berekuk joined
TimToady backlogus enormus enormus est 16:49
benabik Is \C[33,33] supposed to be the same as \C[33]\C[33]? 16:50
FROGGS benabik: yes
benabik Or is it a negated literal match? (i.e. any two characters as long as they aren't \c[33,33])
(i.e. would match \c[32,33]) 16:51
*e.g.
FROGGS I think \C[33,33] should match \c[32,33]
16:52 jnap joined
TimToady a third alternative is that it act like a character class an advance only one char regardless of how much it's matching 16:53
16:53 djanatyn left
TimToady *and 16:53
16:53 djanatyn joined
FROGGS I implemented that as an enumcharlist right now by accident 16:53
TimToady which would make it equiv to [<!before \c[33,33]> .] 16:54
benabik That seems... surprising.
TimToady is consistent with how <-[]> is defined
16:54 berekuk left
benabik But \c isn't like <[]>. 16:55
TimToady sure it is
16:55 kaleem left
benabik <[!!]> would only match one character. \c[33,33] matches two. 16:56
TimToady especially when you compare to how tr looks up characters
FROGGS you talk, and I mop up the blood after dinner :o)
16:56 FROGGS left 16:57 berekuk joined
TimToady in the abstract, we have an alternation of characters, and some of those could be longer than one position, depending on the Unicode level or language 16:58
the negated forms always advance by a . regardless
(the positive forms advance by the actual length matched) 16:59
dalek kudo-star-daily: fcee223 | coke++ | log/ (5 files):
today (automated commit)
sqirrel pleas tell me that "mop up blood after dinner" is a programmers joke....or should I get prepared for a bloodbath before my husband arrives at home? o.O 17:00
TimToady arguably \C[33,33] is not an alternation, unless you count it as an alternation of 1 :)
17:00 fhelmberger left, kivutar left
TimToady but consider whether \C[10,13]* should stop at the second 10 in "\c[10,10,13]" 17:01
17:01 kivutar joined
[Coke] colomon: (eval server) when the jvm spec test died on you. 17:02
TimToady and then it starts looking a lot more like a negated character class that happens to support the CRLF "grapheme"
colomon [Coke]: I just said "make spectest"
TimToady er, I guse those 10's and 13's should be swapped 17:03
guess, even
or you're processing spanish, and want to match everything up to a \C[ll] 17:04
well, except that form doesn't work :)
17:06 cognominal__ joined, benabik_ joined
TimToady will think a bit to see if there are arguments for the other approaches 17:07
dalek kudo/nom: 7adb6dd | grondilu++ | src/core/List.pm:
Update List.pm

adds a ? to the prototype signature so that it can be called with no arguments, as suggested by timotimo.
17:08
kudo/nom: 695493b | timo++ | src/core/List.pm:
Merge pull request #240 from grondilu/patch-1

Update combinations prototype in List.pm
17:09 benabik left, ivan`` left, markov left, djanatyn left, bluescreen10 left, cotto left, benabik_ is now known as benabik, PZt left, cognominal left, cotto joined 17:10 ivan`` joined, bluescreen10 joined, djanatyn joined, ivan`` left, ivan`` joined 17:12 raiph joined, kivutar left 17:13 berekuk left, kivutar joined 17:15 berekuk joined 17:18 FROGGS joined 17:19 berekuk left, pecastro left 17:21 berekuk joined 17:23 kivutar left, kivutar joined 17:24 markov joined
xfix .u ☃ 17:24
yoleaux U+2603 SNOWMAN [So] (☃)
17:26 berekuk left 17:28 berekuk joined 17:33 kivutar left 17:34 kivutar joined
TimToady jnthn: I believe OSCON has a submission deadline coming up soonish, if you want to consider that 17:36
17:37 djanatyn left, djanatyn joined, berekuk left 17:38 berekuk joined 17:43 sqirrel left, kivutar left, kivutar joined 17:46 PZt joined 17:48 ajr joined 17:49 jeffreykegler joined, ajr is now known as Guest12855, spider-mario joined 17:50 Guest12855 is now known as ajr_ 17:51 [Sno] joined 17:52 kivutar left 17:53 lizmat joined 17:54 berekuk left 17:55 census joined 17:57 berekuk joined 18:01 dakkar left 18:04 LLamaRider left 18:07 berekuk left
timotimo fwiw, rakudo-parrot doesn't start up much slower than rakudo-moar does 18:07
0.31s vs 0.21s respectively
diakopter yeah it's pretty much the same for me too 18:08
lee__ 33% faster! :P 18:09
benabik 2.16s vs 0.72s here. Although I'm running debug builds of both. 18:11
18:11 Rotwang joined
timotimo i have --debug=3 of moarvm, too 18:11
but --optimize=1 (which is the default)
japhb Which is faster? (I haven't backlogged yet.) 18:12
18:12 telex joined
benabik Moar 18:13
benabik work &
18:14 berekuk joined
raydiak good morning #perl6 18:15
timotimo hello raydiak :) 18:16
japhb Wow, 1.5x to 3x faster startup? Very nice indeed! 18:17
japhb wonders how many of his personal tools can already have s/perl6-p/perl6-m/ in the shebang for an instant win.
timotimo any that don't need sockets at the very least 18:18
and i think dir() is also currently not perfect
18:18 berekuk left
jnthn japhb: Now imagine that for your concurrent ones too... :) 18:20
18:21 berekuk joined
TimToady eqv was lazy when I tested it, but maybe I tested it on niecza at the time 18:21
timotimo raydiak: can you try to run pray under rakudo-moar?
TimToady I would say that an eqv that calls .elems first is simply incorrect in the face of laziness 18:22
raydiak timotimo: sure, give me some time to compile it [thought it scares me...jvm is slow enough atm :) ] 18:23
which reminds me, japhb: did you decide anything on your priority list you were talking about a few days ago? I'm almost at a stopping point and will be able to work on that math lib you conceived of 18:24
[Coke] r: say $a=;
18:24 pecastro joined
camelia rakudo-parrot 58b1a2, rakudo-jvm 58b1a2, rakudo-moar 58b1a2: OUTPUT«===SORRY!=== Error while compiling /tmp/tmpfile␤Variable '$a' is not declared␤at /tmp/tmpfile:1␤------> say $a⏏=;␤ expecting any of:␤ postfix␤» 18:24
timotimo tries to hook up perl6-bench and rakudo-moarvm
[Coke] ^^ was that Mouq++ ?
18:26 berekuk left
timotimo was what exactly? 18:26
what's necessary to let rakudo-moar run from outside the rakudo dir? 18:28
jnthn timotimo: That already worked for me. How does it fail for you? 18:29
timotimo Missing or wrong version of dependency 'gen/moar/stage2/QRegex.nqp'
jnthn timotimo: Oh, that one. Zap your install dir...
timotimo will do
18:29 raiph left
jnthn timotimo: We used to install things in wrong places, it seems. 18:29
[Coke] timotimo: note that there was one single response, not three different ones becaue the temp file changed.
jnthn timotimo: And then stopped, but now old versions sit somwehere in install...
timotimo fair enough! 18:30
yes, Mouq++ did that
18:30 berekuk joined 18:43 berekuk left 18:45 berekuk joined 18:46 locsmif joined 18:48 eternaleye left
dalek ecs: 1206d5e | larry++ | S03-operators.pod:
eqv must respect laziness
18:50
18:51 raiph joined 18:54 eternaleye joined
[Coke] huh: www.gnu.org/software/perl/manual/ 18:54
18:57 pecastro left 19:03 berekuk left
raydiak "because they found it useful to have the core Perl documentation available in Info and other formats" 19:03
in what way is that useful?
timotimo info is the best help system ever devised
geekosaur ...except for all the others... 19:04
raydiak guess I don't know much about it, than
*then
moritz ... except that nobody uses it
timotimo yeah, it's stupid unintuitive to use
dalek ecs: 8601457 | larry++ | S05-regex.pod:
\c \C \x \X \o \O create "long characters"
19:06
japhb__ jnthn, Yes, fast startup for my concurrent stuff will be VERY VERY NICE. 19:07
japhb__ wants ALL THE THINGS.
dalek ast: 1bf7816 | (Tobias Leich)++ | S05-mass/properties-derived.t:
fix test about Unassigned and ID_Continue

  \x[9FC4] is in both ID_Continue and ID_Start. In fact, all ID_Start are in ID_Continue.
  \x[27EC] is an assigned char now (MATHEMATICAL LEFT WHITE TORTOISE SHELL BRACKET), so choosed something else.
19:08
timotimo pulled all the commits 19:09
japhb__: can we teach perl6-bench to cache git repositories if they have the same address?
japhb__ blinks
.oO( What makes tonight different from all other nights? )
19:10
timotimo well ./bench fetch will fetch the same stuff like 4 times
arnsholt Yeah, I'm sure info is awesome (it certainly sounds good), it's just that the interface is atrocious
japhb__ timotimo, It's fetching into the local master mirrors, and then fetching from the mirrors into the individual copies.
Only one fetch happens "over the wire"
timotimo fair enough 19:11
FROGGS TimToady: so \C[1,2] matched one but \c[1,2] two chars? just wanna confirm, before I fix nqp :o)
and btw, is <:Any> specced somewhere? 19:12
timotimo tries his rakudo-moar config for perl6-bench
japhb__ That said, any way that you know of to speed up that operation while at the same time retaining the isolation properties, I'm all ears. 19:13
19:13 eternaleye left
timotimo what are isolation properties? :| 19:13
also, i'd love a fancier display during benchmarking to see where things are going and perhaps an estimation of the remaining time
and all kinds of convenient things like that :P
japhb__ When I can count on everyone being able to use r-m (i.e. when an r-m is released that supports panda and all the piping and such bench does), I'll consider doing that stuff concurrently. 19:14
timotimo i probably asked this already, but what are our plans for testing the same benchmark across historical versions of given backends?
yes, that would be quite cool
especially since the builds could parallelize, but don't
19:14 eternaleye joined
japhb__ timotimo, the isolation is that you can't accidently mess things up in the mirror or in another clone when "trying stuff out" in one of the child clones. 19:14
timotimo ah, good point. i hadn't considered that 19:15
you already use the "make hardlinks" feature, right?
japhb__ timotimo, It's automatic when you do a same-local-disk clone.
timotimo, Historical benchmark history? I think we need a few things there: 1) more tests, 2) a fair way to summarize all the test results to one (or a small number) of results per-backend-per-rev, 3) an accessible place to store the data, 4) a decent UI to display that data, 5) some otherwise idle systems donating time to run the tests fairly, and 6) retroactive runs to fill in older data (optional, but may be desirable), 19:18
timotimo what i mean is a single benchmark over time 19:20
TimToady FROGGS: yes, \C[1,2] only matches one char when \c[1,2] doesn't match at this position 19:21
arnsholt Summarisation of several runs should probably be the median, with interquartile range or something like that if you want to show variation too 19:22
FROGGS k, thanks
arnsholt (Can't remember how p6bench does that, even though I attended japhb__'s talk)
japhb__ timotimo, Yes, I'm saying that while it will be nice to track e.g. rc-forest-fire over time, since it includes enough different idioms to be "interesting" by itself, for a lot of the microbenchmarks, you want to aggregate them like with speed.pypy.org
arnsholt, most of the benchmarks are better served with fastest-of-N rather than showing performance variation, because almost all of the variation for a given compiler, test, and scale will end up being external effects (cron jobs firing and suchlike). 19:24
timotimo well... i guess
arnsholt Yeah, that's true 19:25
timotimo hm. my old laptop is no longer needed for laptopy things
japhb__ I'm not doing things like DB accesses, or (other than rc-forest-fire), any randomized inputs.
timotimo i could make it wake up once a day and do a benchmark run of the newest commit
japhb__ Ooh, that's a cool idea.
19:25 bjz left
japhb__ You could have it do runs when "Europe is asleep", because that's when people have mostly gotten in their commits for the day. 19:26
arnsholt Yeah, that'd be awesome!
TimToady and <:Any> appears to have been defined by Perl 5
arnsholt Could save us some day when it turns out we have a massive performance regression somewhere too =)
19:26 bjz joined, darutoko left
TimToady FROGGS: see the mktables script in the P5 distribution for more about 'Any' 19:27
japhb__ arnsholt, definitely.
FROGGS TimToady: I will!
japhb__ It already found some really weird performance corner cases during the run-up to YAPC::NA last year.
raydiak timotimo: Pray gives "Cannot find method" errors under moar. Anything specific jump to mind that I might tweak to make it work?
timotimo aaw :(
no clue, sorry 19:28
raydiak can't find anything special about those methods either, so far
timotimo japhb__: i now get Compiler variant 'rakudo-parrot' is unknown! To list compiler variants, use: 19:30
for parrot, moar and jvm
what could i have done wrong?
--list-variants displays absolutely nothing! =o
ah, i dropped a { from compilers.pl 19:31
and didn't get an error out of it :( 19:32
hm. i could also use my *new* laptop for benchmarks, as it's quite a bit faster than the old one and i'm more likely to keep its system maintained properly 19:36
japhb__ timotimo, really, no error? Funky.
Oh right, Perl 5 eval. Sigh.
timotimo heh :)
hm. i still don't know what the exact status of my richards benchmark is and wether or not somebody is porting it to perl5 19:37
japhb__ TimToady, feel free to chastise the Perl 5 designer. He could use it. ;-) 19:38
Is there a status question *other* than the porting one? 19:39
Because if that's all that's needed, I could probably find some tuits somewhere.
(Steal them from Net--IRC, maybe.)
timotimo i'm not exactly sure if i made it work properly the last time i tried :|
as in: does the benchmark give the expected results?
i *think* i did make it work 19:40
japhb__ Oh, gotcha. OK, that's worth looking at.
timotimo ah, i only have an nqp version 19:41
after this benchmark run completes ( i'm not sure if it's doing moar right now?) i'll push commits to enable moar building and timing :) 19:42
should we start measuring maxrss in addition to time?
moritz rss isn't all that interesting 19:47
virtual memory usage is 19:48
timotimo ah?
19:55 pdcawley left
moritz just today I watched parts of a talk by tim bunce where he tried to explain that 19:55
19:56 pdcawley joined
moritz blog.timbunce.org/2012/10/05/introd...emory-use/ 19:56
timotimo not a single parrot benchmark could be run :o 19:58
beh. the videos have been removed from blip.tv 19:59
even with --verbose, timeall didn't output the error message rakudo-parrot gave 20:01
20:04 zakalwe left 20:09 SHODAN left, eternaleye left, SHODAN joined 20:12 eternaleye joined
timotimo blergh, the jvm benchmarks take soooo loooong 20:13
20:13 smls_ left
benabik s/ benchmarks// 20:14
jdv79 isn't that why jvms are usually long running like a daemon or a j2ee app server;) 20:17
working with j2ee stuff was easy when i did it for a few months because most of my time was spent waiting for the server to restart.
timotimo yeah, but these are our microbenchmarks :\ 20:18
we really ought to come up with better benchmarks
japhb__ timotimo, Yes, measuring mem size as well as runtime would definitely be nice.
timotimo forest fire is nice enough, but it's actually so slow that it hardly does even one iteration and "sometimes one data point" is useless
japhb__ timotimo, Well, you can turn up the test run time to capture more data points. 20:19
jnthn I'm not sure that's the benchmark's fault :P
20:19 eternaleye left
japhb__ Oh, and timotimo++ for perl6-bench Moar patches. 20:19
timotimo :)
anyway, the jvm benchmark run is going to take another like 5 hours 20:20
after that i can look into why the parrot backend benchmarks didn't run
then i'll be able to show some results :)
japhb__ Wow, that's one SLOW computer!
(And I should know, I have some very slow ones of my own.)
timotimo hah :) 20:21
the 10 runs done to measure the compile time definitely don't help
each takes almost 5 seconds
japhb__ It's all tuneable, just less accurate when tuned down *too* much. But if the compiles are really slow, they probably have lower relative variance, so you'd probably be fine. 20:22
timotimo so that's like 20 minutes wasted on finding out the startup times :P
20:25 eternaleye joined 20:26 benabik left
skids You're welcome to throw my Sum module in there as a macro-benchmark :-) 20:26
It is *dreadfully* slow :-)
timotimo oh yikes :) 20:27
have you already looked if it runs under moarvm?
20:27 SHODAN left
timotimo i'm not aware of a specific reason why it would be much faster there, but ... you never know :) 20:27
skids No I haven't had the time to compile other than star.
timotimo fair enough
some time in the future we'll get proper compact/native arrays. that'll be very nice.
20:28 SHODAN joined
skids I did replace some hypers with equivalent X ops at one point but other than that and trying to tighten types up I haven't done any tweaking for performance. 20:29
And yes, proper native types is probably the key to that.
timotimo properly natively typed code has no reason to be much slower than compiled C. I WANT. 20:30
20:31 eternaleye left 20:32 kst` is now known as kst
skids waiting 90+ minutes for a mysql database restore at the moment :-) 20:33
with no status bar. 20:34
timotimo oh mysql, you so wacky
skids eh, it gave me time to google for and find "SHOW TABLE STATUS" so there's an upside. 20:36
20:37 eternaleye joined 20:39 araujo joined, araujo left, araujo joined
raydiak r: class A { has $.a = 0 }; for ^2 { my $a = .a given A.new; say $a; } 20:41
camelia rakudo-moar 695493: OUTPUT«0␤(Any)␤»
..rakudo-parrot 695493, rakudo-jvm 695493: OUTPUT«0␤0␤»
raydiak where are moar bugs reported?
timotimo oh wow, that's weird 20:42
jnthn: did you see that? wow!
raydiak reduced from my Pray failure
moritz raydiak++ 20:43
raydiak: [email@hidden.address] like all rakudo bugs
r: .say given 42;
camelia rakudo-parrot 695493, rakudo-jvm 695493, rakudo-moar 695493: OUTPUT«42␤»
moritz r: for ^2 { .say given 42; } 20:44
camelia rakudo-parrot 695493, rakudo-jvm 695493, rakudo-moar 695493: OUTPUT«42␤42␤»
timotimo does it not thunk the A.new?
raydiak :q
hugme hugs raydiak, good vi(m) user!
raydiak heh, mt
timotimo r: class A { has $.a = 0; submethod new { say "hi"; self.bless() } }; for ^2 { my $a = .a given A.new; say $a; } 20:45
camelia rakudo-moar 695493: OUTPUT«hi␤0␤hi␤(Any)␤»
..rakudo-parrot 695493, rakudo-jvm 695493: OUTPUT«hi␤0␤hi␤0␤»
timotimo r: class A { has $.a = 0; submethod new { say "hi"; my $res = self.bless(); say $res.a; $res } }; for ^2 { my $a = .a given A.new; say $a; }
camelia rakudo-moar 695493: OUTPUT«hi␤0␤0␤hi␤0␤(Any)␤»
..rakudo-parrot 695493, rakudo-jvm 695493: OUTPUT«hi␤0␤0␤hi␤0␤0␤»
grondilu m: class A { has $.a = 0 }; for ^2 { say my $ = .a given A.new } 20:46
camelia rakudo-moar 695493: OUTPUT«0␤0␤»
20:46 eternaleye left 20:47 zakharyas joined, jeffreykegler left 20:48 eternaleye joined
dalek ast: 51f135a | (Tobias Leich)++ | S05-mass/properties-derived.t:
LEFT PARENTHESIS does not have prop OtherMath
20:51
20:54 berekuk joined
[Coke] (moar bugs) rakudo-moar bugs are rakudobug'd. if you know for sure it's a moar bug, can put it on moar's github page, I think. 20:56
(but if you don't know, that's fine, just rakudobug it)
timotimo my benchmarks are almost halfway done 20:57
20:57 eternaleye left
raydiak bug filed 20:57
dalek p: f9e23e6 | (Tobias Leich)++ | src/QRegex/P6Regex/Actions.nqp:
align \c\C to latest spec

  \C[13,10] behaves like an enumcharlist while \c[13,10] literal-ish.
  github.com/perl6/specs/commit/8601...5a4a8c2bd3
jnthn rylinaux: Wow, nice golf 20:58
20:58 daxim_ left
jnthn uh, raydiak 20:58
d'oh
timotimo knowing jnthn, the bug is probably going away tonight :3
moritz raydiak++
20:58 eternaleye joined
skids discovers shapecatcher.com, has geekgasm, then notices all the subpages are borked. 20:59
raydiak jnthn: thanks :)
jnthn Though, it does golf rather further. 21:00
m: for ^2 { my $a = $_ given 0; say $a; }
camelia rakudo-moar 695493: OUTPUT«0␤(Any)␤»
timotimo so the second time it's executed the given does nothing?
21:02 rindolf left, berekuk left, dayangkun left
raydiak m: for ^2 { my $a = 0 given True; say $a; } 21:03
camelia rakudo-moar 695493: OUTPUT«0␤(Any)␤»
timotimo oh, huh
raydiak the whole thing before given apparently does nothing the 2nd time 21:04
timotimo m: for ^2 { my $a = say "test" given True; say $a }
camelia rakudo-moar 695493: OUTPUT«test␤True␤test␤(Any)␤»
timotimo but it does run
23rd out of 43 benchmarks ...
jnthn yeah, looking
raydiak between the = and the given, then
timotimo raydiak: do you want to put a test case into roast? :) 21:05
jnthn Yes, a test case would be great
21:06 araujo left
raydiak does not know about roast 21:06
but will go look; I'm sure I could
ah, roast is just what you call the test suite 21:07
jnthn spectesting a fix
timotimo yup
21:07 berekuk joined
raydiak looking to see where that might belong... 21:08
jnthn In a given.t I guess 21:09
S04-statement-modifiers/given.t
moritz that looks right
21:10 btyler left
raydiak giving it a shot...never wrote a test before, but it all seems simple 21:10
dalek p: 2dcf199 | (Arne Skjærholt)++ | src/vm/jvm/runtime/org/perl6/nqp/sixmodel/reprs/CStruct.java:
Properly tag Structure classes for CStruct as by reference.

This fixes the problem with CStructs in CStructs. Last CStruct related TODO is CArray of CStruct, then callbacks and refreshing from native memory are all that's left.
21:11
FROGGS awesome!
arnsholt That one turned out to be a lot easier than I feared (thankfully) 21:12
timotimo arnsholt++ # jvm NativeCall stuffs
jnthn yo dawg, I heard you like CStructs...
arnsholt CArray of CStruct should be mostly a matter of plumbing, refreshing likewise
jnthn arnsholt++
21:12 btyler joined
arnsholt I haven't looked to hard at callbacks, but from the looks of it JNA makes it reasonable 21:12
timotimo so, rakudo-jvm star in february seems absolutely doable 21:13
i think the january release is going to happen Real Soon™?
jnthn Thursday 21:14
e
dalek kudo/nom: bbacaa2 | jnthn++ | src/Perl6/Actions.nqp:
Fix statement modifying given on Moar.

  raydiak++ for golfing a bug down to this construct.
jnthn argh
timotimo indeed, in 2 days
jnthn Aaaaand...masak is on the hook for it :)
FROGGS umm, <:Any> is weird: All Unicode code points: [\\x{0000}-\\x{10FFFF}]
arnsholt Yeah, I think NativeCall should be in shape for a February release
Thursday is a bit harder, since I suspect my advisor wants me to write on my thesis (and not just doing Perl 6 hackery) 21:15
21:16 eternaleye left
arnsholt jnthn: Also, it turns out JNA and C# have different approaches to how to signal "this struct should be flattened/not flattened" 21:16
21:16 treehug88 joined
timotimo and tadzik will do the star release i see. 21:16
arnsholt JNA has it as an intrinsic property of the type, while C# does it at the member level 21:17
21:18 eternaleye joined 21:19 raiph left 21:20 dayangkun joined
lue FROGGS: where is <:Any> defined? 21:22
jnthn arnsholt: Curious, given that sturct vs class in C# is a properly of the type...
FROGGS lue: in Perl 5's guts 21:23
like Word
lue FROGGS: huh. Sounds to me like /./ in any case
FROGGS nr: say "a" ~~ /<:Word>/
dalek ast: ce545c7 | raydiak++ | S04-statement-modifiers/given.t:
Add test for RT #121049 - postfix given in a loop
synopsebot Link: rt.perl.org/rt3//Public/Bug/Displa...?id=121049
camelia rakudo-parrot 695493: OUTPUT«Unicode property 'Word' not found␤ in regex at /tmp/tmpfile:1␤ in method ACCEPTS at gen/parrot/CORE.setting:12497␤ in method ACCEPTS at gen/parrot/CORE.setting:778␤ in block at /tmp/tmpfile:1␤␤»
..rakudo-jvm 695493: OUTPUT«java.util.regex.PatternSyntaxException: Unknown character property name {Word} near index 7␤\p{Word}␤ ^␤␤Error while creating backtrace: Cannot unbox a type object␤ in block at gen/jvm/CORE.setting:10596␤ in block at gen/jvm/CORE.setti…»
..niecza v24-109-g48a8de3: OUTPUT«===SORRY!===␤␤WORD does not exist as a UCD table at /tmp/tmpfile line 1:␤------> say "a" ~~ /<:Word⏏>/␤␤Unhandled exception: Check failed␤␤ at /home/p6eval/niecza/boot/lib/CORE.setting line 1502 (d…»
21:23 cognominal__ is now known as cognominal
FROGGS lue: yeah, hence the "weird" 21:24
21:24 Mouq joined
lue P5's /./ didn't match \n though... 21:24
arnsholt jnthn: What're the differences between the two in C# again? I can't remember
jnthn arnsholt: struct is a value type, allocated on the stack or directly in an array or other class/struct body rather than being a GCable object
arnsholt At any rate, the C# FFI thing (name escapes me ATM) uses annotations to signal whether a member struct is inlined or a pointer
Ah, right
jnthn And C# calls annotations attributes ;) 21:25
arnsholt Not sure how structs interact with the FFI facilities. It's been a while since I looked at the C# side of the fence
21:25 daxim joined
timotimo are we making progress on the rakudo .net backend yet? :) 21:25
[Coke] timotimo: *thwap*
raydiak (now to recompile moar, which takes longer than it took jnthn++ to fix the bug) 21:26
tadzik timotimo: uh-oh :> 21:27
btyler on the topic of r-m bugs - is there anything folks on osx/linux platforms could do to help diagnose the REPL problem in r-m?
21:27 treehug88 left
FROGGS in case my math is correct, we are down to 184 fails... and we miss 42 test from IO-Socket-INET.t 21:28
umm, somebody fudged IO-Socket-INET.t wrong >.< 21:29
it skips everywhere with: 'rakudo.jvm systemic failures/OOM error' 21:30
jnthn btyler: Yes, apply gist.github.com/jnthn/8548807 in Moar and make install it and then try again (no need to rebuild anything else) 21:32
btyler: Let me knwo if it helps or not
btyler jnthn: roger!
[Coke] FROGGS: looks like it was me - the #?rakudo.jvm emit should only be emitting on rakudo.jvm
FROGGS hmmm, my wifi is laggy... must push harder... 21:33
timotimo 10 more tests to go 21:34
[Coke] and it looks like rakudo.moar is running the .t, and rakudo.jvm is running the .rakudo.jvm
which platform are you seeing the skips where you shouldn't?
dalek ast: dc71d4b | (Tobias Leich)++ | S32-io/IO-Socket-INET.t:
emit skip for rakudo.jvm only
21:34 eternaleye left
[Coke] OH. 21:34
FROGGS [Coke]: well, that is the plan if there is no actual fudge for moar
21:34 kaare__ joined
timotimo hehehehe 21:34
[Coke] I bet we need #?rakudo.jvm emit's on the 2 lines interspersed there.
checking... 21:35
FROGGS [Coke]: it skipped on parrot too
timotimo yeah, the emit lines did nothing
and the following lines were unconditionally in the file
21:35 eternaleye joined
[Coke] yup. my bad. fixing. 21:36
timotimo froggs already fixed it, though
dalek rl6-roast-data: de807de | coke++ | / (6 files):
today (automated commit)
21:37
FROGGS [Coke]: just pull and lean back :o)
[Coke] FROGGS++ 21:38
Mouq jnthn: That patch you made gives me:
error: too many arguments to function call, expected 2, have 3
GET_REG(cur_op, 0).s = MVM_file_readline_fh(tc, GET_REG(cur_op, 2).o, GET_REG(cur_op, 4).s); 21:39
[Coke] good catch. (and thanks for improving parrot's numbers at the expense of jvm & moar. :)
21:39 locsmif left
FROGGS Mouq: more like this I think: GET_REG(cur_op, 0).s = MVM_file_readline_fh(tc, GET_REG(cur_op, 2).s); 21:39
jnthn uh, .o but yes
readlineint takes one extra arg 21:40
Its the final one that needs to go
FROGGS yeah: this GET_REG(cur_op, 0).s = MVM_file_readline_fh(tc, GET_REG(cur_op, 2).o);
21:40 eternaleye left
jnthn Yeah, try that 21:40
Mouq Ok
jnthn It's not a patch to apply (though I did intend it to build :)) so much as one to try and eliminate a possible cause.
timotimo oh, we're down to only 99.09 of JVM, because of some unskipped tests 21:41
21:41 eternaleye joined
FROGGS yeah, I wanted to play fair and unskipped stuff that works on the jvm 21:42
I hope it works on all jvms out there
btyler drat, mouq beat me to it :) was making a gist 21:43
timotimo not on avian i'm afraid
Mouq jnthn: readline from filehandle requires an object with REPR MVMOSHandle
timotimo (they don't have indy)
[Coke] FROGGS: thanks. that was on my list of things to do (make tickets or unfudge all rakudo skips/todos) 21:44
Mouq I can gist the full error from perl6-m if you want
FROGGS Mouq: you get one from openfh
[Coke] FROGGS++
Mouq FROGGS: What?
FROGGS [Coke]: there are still lots of unneeded/wrong skips
Mouq: the object you pass as the second parameter, must be a filehandle you get from open() 21:45
Mouq: though, I have no idea what you are up to, so if I am telling rubbish... that's why
jnthn FROGGS: I think it's stdin that should be making it in there...
btyler FROGGS: just trying to figure out the repl borked-ness on linux/osx for r-m 21:46
[Coke] FROGGS: well, once something is skipped, someone has to go through and check them.
Mouq Oh, I had an incorrect number :/
[Coke] and some of the java stuff was skipped when were at this point in the process. (I haven't skipped anything in moar yet to avoid this, because I want tickets for everything when we skip it for moar)
see also "nom regression" for more evil. 21:47
Mouq K, how 'bout "Failed to seek in filehandle: 9" from perl6-m
FROGGS [Coke]: yeah, skip and forget :/
21:47 lizmat left, LLamaRider joined
FROGGS Mouq: that sounds like a place where you actually have to hack something 21:47
Mouq Coming from "my $code := nqp::readlineintfh($stdin, ~$prompt);" 21:48
21:48 Alula left 21:49 [Sno] left 21:50 eternaleye left, eternaleye joined, kbaker left
btyler the full error, with git diff for the patch applied: gist.github.com/kanatohodets/ca61c...f2d8776f6e 21:52
hoelzro new PR for pygments lexer \o/ 21:53
Mouq If someone wants to fix an R-M S32-exceptions test, btw, they could make 6model/6model.c:44 read "No such method '%s' for invocant of type '%s'", and Rakudo will substitute a typed exception for it 21:54
I don't know how to get the type name 21:55
r: 1.foo
camelia rakudo-moar 695493: OUTPUT«Cannot find method 'foo'␤ in block at /tmp/tmpfile:1␤␤»
..rakudo-parrot 695493, rakudo-jvm 695493: OUTPUT«No such method 'foo' for invocant of type 'Int'␤ in block at /tmp/tmpfile:1␤␤»
21:56 zakharyas left
Mouq should've followed Moar closely, is pretty lost trying to hack on MoarVM related things 21:58
timotimo 2:30h for moar+jvm benchmarks 21:59
i'm pretty sure more than half the time was spent on jvm, maybe even two thirds
ah, the rakudo-parrot build just failed 22:01
22:01 skids left
dalek p: 0b57c7d | (Tobias Leich)++ | tools/build/MOAR_REVISION:
bump moar rev for unicode fixes
22:02
FROGGS timotimo: the build failed??
timotimo yup. i'll soon see why 22:03
Mouq Looks like MVM_platform_lseek is failing 22:08
Well, obviously
but specifically, MVM_platform_lseek(handle->body.u.fd, offset, flag) 22:09
timotimo i seem to be able to build rakudo-parrot just fine; huh?
FROGGS and this is the seek used in eof check?
timotimo are offset and flag correct?
FROGGS Mouq: I tried to set ...u.fd = type in getstdstream, but this segfaults at some point 22:10
timotimo time for the benchmarks
Mouq It's in void MVM_file_seek
timotimo wow, it's so much faster
FROGGS timotimo: u.fd is not set I think
jnthn timotimo: What's the "it" here? :) 22:12
timotimo jnthn: startup time of parrot vs jvm
raydiak
.oO(or startup time of a diesel engine in alaskan winter vs jvm, for that matter)
22:14
timotimo :)
dalek p: d0c5f84 | (Tobias Leich)++ | t/qregex/rx_metachars:
un-todo passing \C tests
22:17
kudo/nom: 0d90b30 | (Tobias Leich)++ | tools/build/NQP_REVISION:
bump nqp rev for unicode fixes
Mouq How do I check the "errno" returned by a func in C? 22:18
As per pubs.opengroup.org/onlinepubs/00969...lseek.html
timotimo print errno ← in gdb
errno is a global variable
Mouq timotimo: Ok, thanks 22:19
FROGGS printf("%d\n", errno);
Mouq So it is being printed already :P
timotimo perror("seek")
FROGGS TIMTOWTDI, even in C :P
Mouq Sooo then EINVAL "The whence argument is not a proper value, or the resulting file offset would be negative for a regular file, block special file, or directory." 22:21
22:22 Ayiko joined 22:23 SubTerra left
Mouq And the offset is 0 22:25
...so?
Mouq is not a C hacker
timotimo something about ttys?
FROGGS Mouq: what is in u.fd?
geekosaur what is the whence? (flag)
FROGGS as I mentioned, I think it is not initialized for streams 22:26
I guess SEEK_CUR
geekosaur see, uninitialized would normally get you EBADF unless it just happens to contain a value which is a valid fd 22:27
hoelzro new PR for rakudo moar-support: github.com/rakudo/rakudo/pull/242 22:28
22:29 [Sno] joined
timotimo 34 of 43 benchmarks done ... 22:29
Mouq handle->body.u.fd is -1312510592 (?) 22:30
timotimo hoelzro: moar-support is dead
long live nom!
hoelzro what?
='(
Mouq hoelzro: merged!
hoelzro wow, that's great news!
since when?
timotimo a couple of days
hoelzro I'll fix my PR then 22:31
22:32 spider-mario left
Mouq Well, handle->body.u.fd changes with each run, but printf'ing it to "%d" indicates that it's at least initialized 22:32
hoelzro ugh, had to create a new one =/
dalek p: e3e0d0b | jnthn++ | src/vm/moar/QAST/QASTRegexCompilerMAST.nqp:
Fix incorrect call to get new register.
p: b50229c | jnthn++ | src/vm/moar/QAST/QAST (2 files):
Fix some named param usages.

Moar didn't detect these before.
p: 0e91789 | jnthn++ | / (2 files):
Start emitting extra named args check.
hoelzro github.com/rakudo/rakudo/pull/243
22:33 cognominal left
dalek kudo/nom: 3552c6e | (Rob Hoelz)++ | tools/lib/NQP/Configure.pm:
Make sure --gen-moar implies --gen-nqp

It does only if --backends is not set. Well, it did. Now it always does!
22:33
kudo/nom: f888a9a | (Tobias Leich)++ | tools/lib/NQP/Configure.pm:
Merge pull request #243 from hoelzro/nom

Make sure --gen-moar implies --gen-nqp
hoelzro \o/ 22:34
thanks FROGGS
FROGGS you're welcome :o)
dalek kudo/nom: 774f761 | jnthn++ | src/Perl6/Actions.nqp:
Fix bind lowering of proto method foo (|) { }

Got away with it before 'cus we didn't check for excess named args.
22:36
kudo/nom: 07c483e | jnthn++ | tools/build/NQP_REVISION:
Bump to Moar/NQP that finds excess named args.
22:37 BenGoldberg joined
timotimo now i've got the benchmarks 22:40
jnthn uh-oh :) 22:41
timotimo but i seem to no longer have access to my webspace
well, it's not all bad
a general theme seems to be: in "foobar-baz", moar is faster, in "foobar-baz-native", parrot is faster
jnthn Yes.
timotimo we don't do anything with native stuff yet?
jnthn Well, one of the things my named args work just turned up is that we aren't hanlding inlinability stuff yet. 22:42
timotimo ah, fair enough
jnthn This in turn means we never save AST to inline, which in turn means we never inline int + int
timotimo ah!
jnthn And it's the inlining that makes it have any chance of performing.
timotimo yeah, that'd make a difference
jnthn mebbe I should fix that 22:43
btw, I got tomorrow set aside for Perl 6 stuff. :)
timotimo in trim_string, parrot beats moar pretty handily
in reduce_range parrot is a bit ahead all the time
in all the for_concat tests (native and nonnative, "_2" and ""), parrot beats moarvm by a very big amount 22:44
in fact, the shape of the curve is drastically different
LLamaRider jnthn++ any Perl6 day is a day well spent :) I'm jut trying MoarVM and make test is impressively fast. Thanks to all involved :)
timotimo moar goes straight down while parrot stays horizontal
jnthn That's itnresting... 22:45
I suspect profiling will be revealing.
timotimo now where do i upload my results? :\ 22:47
i'll just dropbox a tarball
www.dropbox.com/s/qkub8n24okbu3ns/...21.tar.bz2 22:48
Mouq timotimo: timo.github.io?
timotimo that would certainly be an option
22:50 Rotwang left
Mouq timotimo++ # tarball works fine though 22:50
22:51 denis_boyun left, LLamaRider left 22:53 sftp left 22:54 sftp joined 22:57 johnmilton left
dalek p: b7252c9 | jnthn++ | src/vm/moar/QAST/QASTOperationsMAST.nqp:
Save inlinability info.
22:58
22:58 wooden joined 22:59 bluescreen10 left
clsn made it home, finally. Yow. 23:05
23:05 jeffreykegler joined
clsn Ran roast with my Signature changes; turns out it broke one or two other things because my .perl for Parameters isn't the same and tests were testing against the string. Fixed the tests. 23:06
23:10 btyler left 23:15 bjz left 23:16 bjz joined
timotimo japhb__: i think i'll investigate google charts api to replace jqplot in the benchmark plots 23:17
one bad thing about it is, that you are not allowed to rehost or download it for offline use >_< 23:18
on the other hand, it's maintained actively
clsn In a .t file, is it better to have a big list of Test, Expected-Value and then loop through them, or a bunch of ok/nok statements? 23:30
Huh. Because in Signature literals, an unspecified variable is Mu, I made Mu not show up as a type unless necessary. However, in subroutine signatures, an unspecified variable is Any. 23:31
colomon clsn: if there's not any framework, I'd say a bunch ok ok/nok statements is preferable. 23:32
clsn I guess ok/nok statements would allow people to put in ?skip comments easier.
colomon right
and also makes figuring out what test just failed much easier
I will use a loop if each test requires a lot, though. 23:33
clsn OK.
colomon but if it can be a comfortable one line "ok", that's the best way to do it, IMO.
dalek p: 46ac27f | jnthn++ | src/vm/moar/QAST/QASTOperationsMAST.nqp:
Mapped ops need inline info setting too.
diakopter
.oO( I remember back in the day there used to be these things called servers.. )
23:34
23:36 thou left 23:37 daniel-s_ joined 23:40 benabik joined 23:43 thou joined 23:44 dmol left 23:52 telex left 23:53 thou left 23:54 telex joined 23:56 telex left