»ö« 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.
FROGGS Perl5::Terms make use of rakudo's Test.pm, commenting that so that Perl5::Terms has no deps 00:00
this seems to do the trick 00:01
m: sub fail($a?) is export { use Test; ::('&flunk')( $a // '' ) }
camelia ( no output )
jnthn Right, it was the pre-compiled Test.pm that was making an issue in JSON::Tiny too 00:03
FROGGS hmmm
00:04 beastd left
FROGGS okay, I can reproduce it 00:05
I put "sub fail($a?) is export { use Test }" in a file called flunk.pm and compiled it to mbc
and then used it from -e and get the same error 00:06
timotimo is JSON::Tiny only failing due to a test.pm problem? 00:07
00:07 skids joined
jnthn FROGGS: Like this: gist.github.com/jnthn/8609496 00:07
timotimo: Well, I got it working for me...
timotimo: Now trying to work out why FROGGS has bugs I don't.. 00:08
FROGGS jnthn: I copy+pasted your commands, and it fails for me 00:10
I did a git diff in all repos, and only rakudo has changes (in the grammar, as expected)
dalek kudo/nom: 9e00a88 | jnthn++ | src/Perl6/Metamodel/BOOTSTRAP.nqp:
Install method not found handler.

Actually receives the invocant object, ready for an improved exception object. Can also add this mechanism to JVM backend, most likely.
00:11
jnthn FROGGS: git show 8004501e # you do have this one, yes?
FROGGS: And 080ce0bf2 in NQP?
00:13 FROGGS_ joined
FROGGS_ nqp-m --version 00:13
This is nqp version 2014.01-3-g080ce0b built on MoarVM version 2014.01-2-g8286436
perl6-m --version 00:14
This is perl6 version 2014.01-25-gfd8316f built on MoarVM version 2014.01-2-g8286436
git show 8004501e
commit 8004501ef1a7f593def75a71c646727e6f8f0098
Author: jnthn [email@hidden.address]
yes
00:15 FROGGS left
FROGGS_ compiling on windows now 00:16
00:17 airdisa joined 00:22 airdisa left 00:25 BenGoldberg joined
FROGGS_ gnight 00:32
jnthn 'night, FROGGS_ 00:33
diakopter o/
timotimo gnight 00:35
hoelzro alright! dir() bug fixed on moar!
just gotta test on parrot and jvm...
dalek ast: fd53e7a | jnthn++ | S02-magicals/UsedEnv.pm6:
Make a test Windows-friendly.
00:38
jnthn hoelzro: Cool...I did a small dir on Moar Windows patch earlier, but that just got it to only fail the dir.t tests that we do on other platforms, I think.
00:43 jnap left 00:50 mavcunha joined 00:57 jeffreykegler joined 00:58 telex left 01:00 mavcunha left, telex joined 01:03 stevan_ joined, btyler joined 01:04 mavcunha joined 01:07 btyler left
grondilu p6: role Foo {}; multi infix:<+>(Foo $, Foo $) { "Foo!" }; say (4 but Foo) + (5 but Foo);' 01:11
camelia niecza v24-109-g48a8de3: OUTPUT«===SORRY!===␤␤Bogus statement at /tmp/tmpfile line 1:␤------> "Foo!" }; say (4 but Foo) + (5 but Foo);⏏'␤␤Parse failed␤␤» 01:12
..rakudo-parrot fd8316, rakudo-jvm fd8316, rakudo-moar fd8316: OUTPUT«===SORRY!=== Error while compiling /tmp/tmpfile␤Unable to parse expression in single quotes; couldn't find final "'" ␤at /tmp/tmpfile:1␤------> Foo!" }; say (4 but Foo) + (5 but Foo);'[…»
diakopter wut
oh
grondilu p6: role Foo {}; multi prefix:<+>(Foo $x) { $x }; say +(4 but Foo);
camelia rakudo-parrot fd8316, rakudo-jvm fd8316, rakudo-moar fd8316, niecza v24-109-g48a8de3: OUTPUT«4␤»
grondilu I don't see why it works with the prefix and not the infix :/ 01:13
oh hang on
p6: role Foo {}; multi infix:<+>(Foo $, Foo $) { "Foo!" }; say (4 but Foo) + (5 but Foo); 01:14
camelia niecza v24-109-g48a8de3: OUTPUT«Foo!␤»
..rakudo-jvm fd8316: OUTPUT«Ambiguous call to 'infix:<+>'; these signatures all match:␤:(Int:D \a, Int:D \b --> Int)␤:(Foo, Foo)␤ in any at gen/jvm/BOOTSTRAP.nqp:1225␤ in any at gen/jvm/BOOTSTRAP.nqp:1218␤ in any at gen/jvm/BOOTSTRAP.nqp:1202␤ in sub infix:<+> at ge…»
..rakudo-moar fd8316: OUTPUT«Ambiguous call to 'infix:<+>'; these signatures all match:␤:(Int:D \a, Int:D \b --> Int)␤:(Foo, Foo)␤ in sub infix:<+> at src/gen/m-CORE.setting:3992␤ in block at /tmp/tmpfile:1␤␤»
..rakudo-parrot fd8316: OUTPUT«Ambiguous call to 'infix:<+>'; these signatures all match:␤:(Int:D \a, Int:D \b --> Int)␤:(Foo, Foo)␤ in any at gen/parrot/BOOTSTRAP.nqp:1233␤ in any at gen/parrot/BOOTSTRAP.nqp:1225␤ in any at gen/parrot/BOOTSTRAP.nqp:1210␤ in sub inf…»
grondilu there you go
the candidate using the roles should prevail, shouldn't it? 01:15
01:17 airdisa joined
lue p: role Foo {}; my $a = 42 but Foo; say $a ~~ Foo; say $a ~~ Int; 01:21
camelia rakudo-parrot fd8316: OUTPUT«True␤True␤»
01:22 airdisa left 01:24 mavcunha left 01:33 varna joined 01:38 mcglk joined 01:40 Exodist left 01:41 Exodist joined 01:43 jnap joined 01:48 jnap left 01:49 stevan_ left 01:50 stevan_ joined
grondilu well, maybe not. I need to read S12 again, one of these days. 02:02
02:18 airdisa joined 02:23 airdisa left 02:43 aindilis left 02:44 jnap joined 02:49 jnap left 02:59 jnap joined 03:08 grondilu left 03:19 airdisa joined 03:20 jeffreykegler left
[Coke] (bug coke) you can also bug pmichaud++ 03:21
03:23 airdisa left 03:40 BenGoldberg left
lue good to know :) 03:44
04:05 regreg joined, jnap left 04:16 molaf joined 04:19 airdisa joined 04:24 airdisa left 04:29 FROGGS_ left 04:35 jnap joined 04:37 Exodist left 04:40 jnap left 04:42 Exodist joined 04:44 FROGGS joined 04:46 Alula left, Alula joined 04:58 araujo left
raydiak Str is 3x faster than str under perl6-m in a simple concat test? 05:08
yoleaux 24 Jan 2014 17:00Z <japhb> raydiak: re: irclog.perlgeek.de/perl6/2014-01-21#i_8152416 , yes I've done a bit of work on the vector lib, just getting vector-vector and vector-scalar operations in place. The code for similar operators is generated from template to avoid repetition and obscure copy-pasta errors affecting only one variation of one op somewhere.
24 Jan 2014 17:03Z <japhb> raydiak: The code needs some massaging to make it sane to work on together, but if you're up for it, I can find some tuits to throw at that.
05:11 SamuraiJack joined 05:13 Alula left, Alula joined 05:20 airdisa joined 05:25 airdisa left 05:36 jnap joined 05:41 jnap left 05:42 REPLeffect left 06:08 darutoko joined 06:09 awraa left 06:21 airdisa joined 06:26 airdisa left 06:32 FROGGS left 06:34 zby_home_ joined 06:37 jnap joined
dalek t--IRC/concurrency: 06a4f24 | (Geoffrey Broadwell)++ | lib/Net/IRC/SocketConnection.pm:
Don't hardcode the line separator when sending lines
06:40
t--IRC/concurrency: 2ed14a0 | (Geoffrey Broadwell)++ | lib/Net/IRC/Logger.pm:
Support logging to an already-opened handle, as well as to a logfile path
t--IRC/concurrency: 3516c39 | (Geoffrey Broadwell)++ | lib/Net/IRC/Bot.pm:
Convert Net::IRC::Bot core to use concurrency and new logging system
t--IRC/concurrency: 74f77ca | (Geoffrey Broadwell)++ | / (3 files):
Switch sample bot and modules that used to 'say' debug messages to use new logging system instead
06:41 jnap left 06:50 varna left 06:53 Alina-malina left 06:54 Alina-malina joined 07:22 airdisa joined 07:23 SamuraiJack left 07:27 airdisa left 07:29 atroxaper joined 07:37 jnap joined 07:42 jnap left 08:08 atroxape_ joined 08:11 atroxaper left 08:22 airdisa joined
felher Why was Order::Inc/Dec changed to Order::More/Less? 08:25
08:27 airdisa left 08:29 FROGGS joined
FROGGS morning 08:31
felher o/ froggs
FROGGS hi felher :o)
moritz good morning 08:36
felher: because it was pretty ambiguous. $a cmp $b => Inc. Do you need to increase $a to get $b? or is $b an increased version of $a? 08:37
felher: also, Inc < 0 was pretty unintuitive
whereas $a <=> $b => Less it's pretty clear that $a is less than $b, and Less < 0 is also pretty intuitive 08:38
08:38 jnap joined
felher moritz: Ah, IC... okay. I just thought more/less is kindy ambigous. a < b < c is increasing, though you have a lot of less-than-signs in between them. :) 08:38
moritz: but yeah, I see your point.
thanks. :)
moritz on a completly unrelated note, I now know why I don't like info pages 08:39
felher Why's that?
moritz it's because when the man page doesn't contain enough information, and I follow the 'For more information, please read "info $prog"'
08:39 FROGGS left
moritz and then I often get exactly the same text as the man page, and I'm disappointed 08:40
felher yeah, true.
moritz and the few times that I haven't gotten the same text, it usually wasn't much more helpful
I think I can recall only one occurrence when the info page actually contained something useful for me that the man page didn't contain 08:41
m: say 'what revision am I on?' 08:42
camelia rakudo-moar 9e00a8: OUTPUT«what revision am I on?␤»
moritz HEAD, great
Mouq p6: sub &*dynamical {}
camelia rakudo-parrot 9e00a8, rakudo-jvm 9e00a8, rakudo-moar 9e00a8: OUTPUT«===SORRY!=== Error while compiling /tmp/tmpfile␤Missing block␤at /tmp/tmpfile:1␤------> sub ⏏&*dynamical {}␤ expecting any of:␤ statement list␤ pre…»
..niecza v24-109-g48a8de3: OUTPUT«Potential difficulties:␤ &dynamical is declared but not used at /tmp/tmpfile line 1:␤------> sub &*dynamical ⏏{}␤␤»
08:43 daniel-s_ left, daniel-s__ joined
moritz -> afk 08:43
08:43 jnap left 08:46 FROGGS joined 08:47 _daniel-s__ joined
FROGGS jnthn: I commented here gist.github.com/jnthn/8609496 08:48
jnthn: is it expected to differ in file size?
08:49 daniel-s__ left 08:53 Rotwang joined 08:56 _daniel-s__ left 09:00 _daniel-s__ joined
dalek kudo/nom: 396a2d3 | Mouq++ | src/Perl6/Grammar.nqp:
Fix parsing of `sub { 42 }()` and `sub{ 42 }()`

Fixes two tests in S02-lexical-conventions/sub-block-parsing.t
09:01
Mouq p6: say sub{4}() #works now 09:02
camelia niecza v24-109-g48a8de3: OUTPUT«4␤»
..rakudo-parrot 9e00a8, rakudo-jvm 9e00a8, rakudo-moar 9e00a8: OUTPUT«===SORRY!=== Error while compiling /tmp/tmpfile␤Two terms in a row␤at /tmp/tmpfile:1␤------> say sub{4}⏏() #works now␤ expecting any of:␤ postfix␤ …»
FROGGS Mouq++
Mouq I can un-skip those tests, right? 09:03
09:04 crab2313 joined
FROGGS sure 09:04
that is the point :o)
Mouq K :) 09:06
dalek ast: 94420d5 | Mouq++ | S02-lexical-conventions/sub-block-parsing.t:
Unskip postcircumfix on sub declaration tests
FROGGS you did a spectest run? 09:12
nvm, I am doing one anyway 09:14
09:21 regreg left
Mouq FROGGS: Yeah, but in hindsight I probably would have had a better chance of seeing any problems that the commit may have caused if I'd have used the Parrot or JVM backend :p :/ 09:21
09:22 _daniel-s__ left 09:23 airdisa joined
FROGGS true 09:25
p-spectest should pass, jvm has a handful which can be seen in the perl6_pass_rates repo
err, this github.com/coke/perl6-roast-data/t...master/log 09:26
m-spectest is harder to compare atm
Mouq FROGGS: Yeah, thanks. I'm going to start building JVM again alongside Moar 09:27
09:28 airdisa left 09:33 xinming_ joined 09:36 xinming left 09:38 xinming joined 09:39 xinming_ left 09:41 odoacre_ joined 09:43 Alina-malina left 09:47 regreg joined 09:48 zacts joined
Mouq Or... I would but perl6-m seems to be overwriting perl6-j? :/ 09:49
09:50 dmol joined
moritz it shouldn't 09:51
and it doesn't, usually :-)
Mouq moritz: I know :) but it is.. it had done it a week or so ago, actually, but I had been configuring my perl6-j so I figured it was my fault. I hadn't built it since 09:56
09:56 denis_boyun joined, bjz_ left, bjz joined
Mouq r: say (-1) ** 10 ** $_ for 1..10 10:03
camelia rakudo-jvm 396a2d: OUTPUT«1␤1␤1␤1␤1␤1␤1␤1␤1␤1␤»
..rakudo-parrot 396a2d: OUTPUT«1␤1␤1␤1␤1␤1␤1␤1␤1␤-Inf␤»
..rakudo-moar 396a2d: OUTPUT«1␤1␤1␤1␤1␤1␤1␤1␤1␤0␤»
Mouq jvm++
10:05 molaf left
Mouq Hm, perl6-j only gets overwritten with --backends=moar,jvm. --backends=jvm,moar works fine, though I still get a 'make: write error' at the end of 'make install' 10:07
hoelzro morning #perl6 10:10
10:15 denis_boyun left
moritz Mouq: that should only overwrite perl6, not perl6-j 10:18
hoelzro would someone mind taking a look at my PR from early this morning? github.com/rakudo/rakudo/pull/247 10:20
moritz if it does overwrite perl6-j with perl6-m, please paste your Makefile and a transcript from the build
10:22 Mouq left 10:24 airdisa joined 10:29 airdisa left
hoelzro rakudo.org is a WP install, right? I'd like to make a change to the "how to help" page 10:30
I was also hoping that since I've written a few patches now, I could look at the CLA and get a commit bit 10:31
moritz hoelzro: /msg me your email address
10:32 crab2313 left 10:33 Mouq joined
moritz changes his rakudo.org password, since he doesn't remember if was the same as his blogs.perl.org password 10:35
10:38 denis_boyun joined, Alina-malina joined
hoelzro does anyone know if there's a way to stage changes so that others can review them without making them public? 10:39
10:40 jnap joined, denis_boyun left
hoelzro updated rakudo.org/how-to-help/ 10:42
I added a paragraph to the "wanting to help without learning Parrot" section 10:43
10:43 denis_boyun joined 10:45 jnap left 10:49 spider-mario joined
masak good almost-noon, #perl6 10:50
colomon o/
moritz \o masak, colomon
hoelzro++
hoelzro hey masak 10:51
masak hey hey hey
moritz ho ho ho 10:53
corecatcher heyas 10:59
11:00 atroxape_ left
hoelzro hello 11:02
masak corecatcher: ooh, a new presence on #perl6? if so, welcome.
11:03 raiph left
corecatcher masak: more or less, yes - beein idling around for quite some time 11:04
FROGGS time to get active then :o) 11:05
masak yeah, idling doesn't count. 11:06
I did a fair bit of that back in 2005.
corecatcher thats the plan, done the frankfurt tutorials on nqp sql grammars, thats where I ended weeks ago
masak wow \o/
jnthn++
corecatcher so basically in search for time and lhf 11:08
FROGGS I always recommend RT for newcomers
masak well, re lhf, the two easiest ways to find it is (a) trawl RT for it, or (b) do stuff you enjoy and stumble over lhf.
FROGGS right, either look at an interesting fixable thing in RT, or try to fix bugs you hit while experimenting 11:10
hoelzro I rather like the latter myself 11:12
then you're invested in it
that being said, I think I've fixed 2-3 bugs that I've found
tbf, someone usually beats me to it =) 11:13
jnthn afternoon, #perl6
FROGGS hi jnthn!
hoelzro greetings jnthn 11:14
masak jnthn! \o/ 11:15
dalek kudo/nom: 74172bf | (Tobias Leich)++ | src/Perl6/Optimizer.nqp:
fix NPMCA
jnthn FROGGS: The commit message and code don't seem to match up... nqp::defined isn't the way to look for null, that's !nqp::isnull($meth). Or is it more subtle? 11:18
FROGGS hmmm, it fixed the issue though... but yeah, nqp::isnull is saner 11:19
jnthn Well, I'm curious how it fixed it is all :) 11:20
FROGGS I always thought nqp::defined on parrot takes care of nulls
moritz nqp-p: say(nqp::defined(nqp::null()))
camelia nqp-parrot: OUTPUT«0␤»
moritz nqp: say(nqp::defined(nqp::null())) 11:21
camelia nqp-moarvm, nqp-jvm, nqp-parrot: OUTPUT«0␤»
jnthn oh :)
FROGGS nqp: say(nqp::null())
jnthn OK, carry right on :)
camelia nqp-parrot: OUTPUT«Null PMC access in get_string()␤current instr.: '' pc 704 (gen/parrot/stage2/NQPCORE.setting.pir:335) (gen/parrot/stage2/NQPCORE.setting:667)␤»
..nqp-jvm: OUTPUT«java.lang.NullPointerException␤ in (gen/jvm/stage2/NQPCORE.setting:674)␤ in print (gen/jvm/stage2/NQPCORE.setting:673)␤ in say (gen/jvm/stage2/NQPCORE.setting:680)␤ in (/tmp/tmpfile:1)␤ in (gen/jvm/stage2/NQPHLL.nqp:1099)␤ in eval (gen/jvm/stage2…»
..nqp-moarvm: OUTPUT«␤»
FROGGS k
jnthn Is anybody already testing hoelzro's PR? 11:22
jnthn pulls it 11:23
FROGGS not seen it, no 11:24
ahh dir(), nice 11:25
11:25 airdisa joined
jnthn Well, dir.t passes in full with it on Windows now 11:25
jnthn spectests, even though he doubts there can be any fallout 11:26
11:30 airdisa left
dalek kudo/nom: d6ffdb4 | (Rob Hoelz)++ | src/core/IO.pm:
Fix dir() on MoarVM
11:32
kudo/nom: 477cbf8 | jnthn++ | src/core/IO.pm:
Merge branch 'nom' of github.com:hoelzro/rakudo into nom
11:37 Alina-malina left 11:41 jnap joined 11:43 krunen left
tadzik :o 11:45
r: my Num $a = 0.0
camelia rakudo-moar 396a2d: OUTPUT«Type check failed in assignment␤ in block at /tmp/tmpfile:1␤␤»
..rakudo-parrot 396a2d, rakudo-jvm 396a2d: OUTPUT«Type check failed in assignment to '$a'; expected 'Num' but got 'Rat'␤ in block at /tmp/tmpfile:1␤␤»
11:45 jnap left
hoelzro I spectested on perl6-{j,m,p} 11:49
jnthn hoelzro: Nice. It's in, anyways :) 11:51
hoelzro \o/
whom do I talk to about the CLA? 11:54
11:55 FROGGS left
Mouq hoelzro: I emailed Karen Pauley (karen@perlfoundation.org) with a scan of my CLA, and she passed it on to whomever it needed to go to 11:55
hoelzro Mouq: where is the CLA itself located? 11:56
Mouq Oh, sorry. Here: www.perlfoundation.org/legal 11:57
11:57 kurahaupo_mobile joined
Mouq moritz: oop, sorry, I missed irclog.perlgeek.de/perl6/2014-01-25#i_8173738 11:58
moritz: let me try again and I shall
hoelzro Mouq: thanks! 11:59
hmm...linguist is failing tests because it thinks S02-lexical-conventions/unicode-whitespace.t is binary =/
jnthn haha 12:02
What on earth is its heuristic? :)
jnthn guesses "looks like ascii"...
hoelzro it uses the charlock holmes ruby library, I guess?
jnthn groans at the name 12:03
hoelzro I figured I'd investigate deeper later; if one file in roast is flagged as binary, it's not the end of the world
jnthn aye 12:05
12:08 FROGGS joined, sjn left 12:09 sjn joined
Mouq moritz: gist.github.com/Mouq/8615410 12:10
12:14 avar left 12:15 avar joined 12:25 airdisa joined 12:30 Mouq left 12:31 airdisa left
dalek p: eaf891d | jnthn++ | tools/build/MOAR_REVISION:
Get various Moar error handling improvements.
12:32
12:33 daniel-s_ joined
dalek kudo/nom: 5b57b80 | jnthn++ | src/vm/moar/ops/perl6_ops.c:
Throw typed exception for dispatcher not found.
12:34
kudo/nom: 4e84d87 | jnthn++ | tools/build/NQP_REVISION:
Oops, last commit needed NQP_REVISION bump also.
12:35
volaj: 9e5af01 | tadzik++ | lib/NativeCall.pm6:
Drastically reduce nativecalling overhead
12:37
volaj: bafb1d0 | tadzik++ | lib/NativeCall.pm6:
Micro-optimize map_return_type even further :)
jnthn \o/ 12:38
tadzik I figured that before I merge it, no one will test it :P 12:39
I'm the one rolling out the Star release, so I'll have a chance to last-minute-test it
12:41 jnap joined
masak tadzik++ 12:43
FROGGS jnthn: have you seen my comments here? gist.github.com/jnthn/8609496
tadzik my sdl game can now run at 100FPS :P
FROGGS *g*
tadzik I didn't check if it was possible before the patch though :D 12:44
maybe it was
jnthn FROGGS: Yeah; the smaller file size is due to not hitting SC barriers...
FROGGS: And so no re-serializing stuff 12:45
FROGGS mhm
masak tadzik: if only there was some way to get back the state before a certain commit was made, maybe through some ingenious "check out" system.
FROGGS jnthn: so you actually believe me? :o)
tadzik masak: fortunately, I have my daily backups of all github repos! :P
masak oh yes, always backup your git stuff.
otherwise it's a big hassle to undo all your changes, should you need it. 12:46
12:46 jnap left
tadzik yeah 12:46
masak in fact, you should probably check out all branches and do a backup of each individual one. just in case.
jnthn FROGGS: Well, I don't see what I can do besides try a build on Linux of it myself, but it makes no sense really...
tadzik naah, that'd be a waste of space 12:47
12:48 Mouq joined, atroxaper joined
FROGGS is github down? 12:49
tadzik seems to work here
and on status.github.com/ 12:50
jnthn tadzik: Are you sure you're not just using your backups? :P
tadzik hehe
I put it in the cloud so I don't have to store it
12:52 denis_boyun left
jnthn suddenly wishes he had chrome.google.com/webstore/detail/...noai?hl=en in IRC 12:53
err& 12:54
Rotwang jnthn: haha, so true 12:55
tadzik we could write such bot... 12:57
wait. What what?
timotimo in the cloud. 12:58
tadzik :D
12:59 Mouq left
moritz .ask Mouq is there a perl6-j symlink in your $PATH? 13:00
yoleaux moritz: I'll pass your message to Mouq.
arnsholt tadzik++ # merging zavolaj optimizations 13:03
dalek kudo/nom: 974afff | moritz++ | tools/build/Makefile-JVM.in:
Makefile: RUNNER -> J_RUNNER

just to avoid possible future conflicts
13:20
13:21 smls joined 13:26 airdisa joined
jnthn back 13:28
FROGGS moritz: I had a similar problem... I had the feeling as if the default does not get overwritten if it exists 13:31
13:31 airdisa left 13:33 grondilu joined
FROGGS so my ./perl6 was a perl6-m, even after a reconfigure/rebuild with --backends=parrot,jvm,moar 13:33
moritz FROGGS: that's not quite the same as perl6-j being a perl6-m 13:39
but yes, 'clean' doesn't clean out the current perl6 default runner 13:41
so the next build doesn't kill it
13:42 jnap joined
moritz tests a fix 13:44
FROGGS ahh
13:46 SamuraiJack joined, jnap left
dalek kudo/nom: 19473e7 | moritz++ | Configure.pl:
[Build] clean perl6 runner
13:50
FROGGS cool! moritz++ 13:51
13:52 kaare_ left
tadzik github.com/tadzik/p6steroids sort of working asteroids running on rakudo-parrot 13:54
at about 50-ish FPS
moritz \o/
tadzik with a bug that makes you practically invincible :P
FROGGS yay!
tadzik haha, HTTP2 is to feature a GTFO frame: General Termination of Future Operations 13:56
timotimo %) 13:57
i like that
FROGGS p/j/m-spectest of nqp-2014.01-4-geaf891d rakudo-2014.01-32-g4e84d87 13:58
well, the summary
jnthn tadzik: Nice!!
13:58 krunen joined
FROGGS tadzik: can you commit an in game screenshot? 14:01
I have no time to try it now :o(
that is mine (in P5, three years ago) github.com/FROGGS/Games-Asteroids/...enshot.png 14:03
14:07 gcole left 14:08 FROGGS left, kurahaupo_mobile left 14:09 Alina-malina joined 14:14 spider-mario left
tadzik FROGGS[mobile]: i.imgur.com/cfirruV.png 14:15
colomon must not stop $work to start playing with p6 asteroids…. must not.... 14:18
tadzik wait until they match the reference C version
which has text and sounds
colomon must not stop $work to start playing with p6 asteroids…. must not…. 14:19
tadzik heh
14:21 FROGGS joined
dalek kudo/nom: 4ac10e5 | jnthn++ | src/vm/moar/ops/ (2 files):
Typed exception for assignment type check fail.
14:21
14:22 denis_boyun joined
jnthn .tell Mouq I think you had some work on some of the other missing typed exceptions, besides the couple I just did? Would get a few more passes... :) 14:22
yoleaux jnthn: I'll pass your message to Mouq.
jnthn perl6: sub { $^foo } 14:25
camelia rakudo-jvm 4e84d8: OUTPUT«(timeout)» 14:26
( no output )
jnthn perl6: sub () { $^foo }
camelia niecza v24-109-g48a8de3: OUTPUT«===SORRY!===␤␤Placeholder variable $^foo cannot override existing signature () at /tmp/tmpfile line 1:␤------> sub () { ⏏$^foo }␤␤Unhandled exception: Check failed␤␤ at /home/p6eval/niecza/boot/lib…»
..rakudo-parrot 4e84d8, rakudo-jvm 4e84d8, rakudo-moar 4e84d8: OUTPUT«===SORRY!=== Error while compiling /tmp/tmpfile␤Placeholder variable '$^foo' cannot override existing signature␤at /tmp/tmpfile:1␤------> sub () { $^foo }⏏<EOL>␤ exp…»
jnthn std: sub () { $^foo }
camelia std 09dda5b: OUTPUT«===SORRY!===␤Placeholder variable $^foo cannot override existing signature () at /tmp/vydJebWznl line 1:␤------> sub () { ⏏$^foo }␤Check failed␤FAILED 00:01 125m␤»
jnthn std: sub { $^foo }
camelia std 09dda5b: OUTPUT«ok 00:01 123m␤»
14:27 atroxaper left, spider-mario joined
dalek ast: 6dfb602 | jnthn++ | S04-declarations/implicit-parameter.t:
Bring a test in line with spec/STD.
14:28
14:29 atroxaper joined 14:43 jnap joined 14:44 denis_boyun left, cosimo left 14:47 jnap left 14:50 airdisa joined 14:52 treehug88 joined 14:55 treehug88 left 14:56 cosimo joined 15:00 treehug88 joined 15:02 DanielG joined, DanielG left 15:06 daniel-s_ left, Alina-malina left 15:07 Alina-malina joined 15:20 mavcunha joined 15:34 treehug88 left 15:40 Alina-malina left 15:44 denis_boyun joined 15:51 krunen left 15:53 cosimo left 15:54 airdisa left, airdisa joined 15:55 zakharyas joined 15:57 denis_boyun left 15:59 Psyche^ joined 16:03 Psyche^_ left
skids yoleaux: tell japhb Sum is at github.com/skids/perl6sum/ (or panda install Sum) 16:21
hoelzro does anything forsee the use of 'perl6-m' and others in the shebang line of a Perl 6 program? 16:22
16:29 krunen joined
raydiak maybe if someone wanted write a project in part perl 6, part java, they'd want to require perl6-j (for example)? 16:33
timotimo yeah 16:35
dalek kudo-star-daily: dd9e868 | coke++ | log/ (5 files):
today (automated commit)
16:36
16:36 Alina-malina joined 16:37 cosimo joined
[Coke] whoops. daily run will be delayed today, starting it now. 16:37
16:40 airdisa left 16:43 jeffreykegler joined
jnthn [Coke]: yay, that means my today patches sneaked in ;) 16:44
16:44 jnap joined 16:45 denis_boyun joined
hoelzro raydiak: good point 16:46
16:48 ajr joined, ajr is now known as Guest44001 16:49 jnap left 16:50 airdisa joined 17:04 mavcunha left
japhb raydiak, hoelzro: Also useful in the short term, while the basic features vary -- right now I use perl6-p in shebangs for general code that should start reasonably quickly (can't wait to convert to perl6-m for most of these; IIRC I'm waiting on some I/O improvements), and perl6-j for anything that requires concurrency. 17:13
tadzik++ # twitch game in Perl 6
hoelzro alright, thanks for the input japhb
17:13 araujo joined, araujo left, araujo joined
raydiak japhb: was just telling yoleaux to tell you this: I'm up for it :) Pray concurrency branch is on the backburner until bufs/compact arrays are mutable - atm, trying to buffer the output in many cases slows it down more than the concurrency speeds it up 17:14
japhb nodnod
raydiak so properly conceived hot bits like vectors and matrices sounds like a good next step
japhb OK, give me a little bit to collect my code snippets into something we can work on together (won't be useful to anyone yet, but at least we can code). 17:15
raydiak sure thing, no pressure 17:16
17:23 rindolf joined 17:25 beastd joined 17:28 Alina-malina left 17:29 FROGGS_ joined 17:32 Guest44001 is now known as ajr_, FROGGS left 17:33 Alina-malina joined 17:36 ggoebel1113 joined, ggoebel1112 left, FROGGS_ is now known as FROGGS
FROGGS perl6-m -I. -e 'use flunk' 17:36
===SORRY!===
Bytecode stream shorter than header
uhh
jnthn: this is new^^ 17:37
diakopter heh 17:43
m: use u
camelia rakudo-moar 4ac10e: OUTPUT«===SORRY!===␤Could not find u in any of: /home/p6eval/rakudo-inst-1/languages/perl6/site/lib, /home/p6eval/rakudo-inst-1/languages/perl6/vendor/lib, /home/p6eval/rakudo-inst-1/languages/perl6/lib, /home/p6eval/.perl6/2014.01-35-g4ac10e5/lib␤» 17:44
17:45 jnap joined
timotimo m: use Test 17:45
camelia ( no output )
17:46 atroxaper left
FROGGS Bytecode stream shorter than header (4 < 92) 17:46
diakopter m: use Test; use Test;
camelia ( no output )
grondilu TimToady: just in case you wonder, I won't try to solve the Brace Expension task on RC. Ideally this should be done with a grammer, and I'm not very good at these stuff. 17:47
dalek th--ThreeD: df3e603 | (Geoffrey Broadwell)++ | .gitignore:
Add trivial .gitignore
17:49
TimToady grondilu: I just wrote the grammar, and it worked the first time on all four test cases. Wheee!
japhb raydiak: OK, that's at least enough pulled together that you can see where I was going.
17:49 jnap left
TimToady now I just have to X everything 17:50
japhb raydiak: The general idea is that there will be a BUILD file that will generate most of the code when panda is doing its install, so that all the variants of all the operations are there and hopefully correct.
TimToady well X~ 17:51
japhb (And that it's less of a pain to write the efficient forms of everything)
breakfast & 17:52
17:54 raiph joined
raydiak japhb: reading 17:54
TimToady walk & 17:57
grondilu TimToady: talking about grammars, if you have time, please consider writing a grammar for FASTA in order to improve rosettacode.org/wiki/FASTA_format#Perl_6 18:01
having to parse FASTA is typically the kind of things that discourage me from keeping on solving problems on rosalind :/ 18:03
hoelzro preflex: seen Mouq 18:07
hmm 18:11
does the CLA have to be sent via snail mail? 18:12
diakopter no; can be scanned
hoelzro ok, then I have to wait until Monday anyway =/ 18:14
diakopter or photo'd, probably :) 18:16
hoelzro well, I lack a printer *and* a scanner =( 18:17
I can wait a few days =)
raydiak japhb: would it be better to run the generator script once for a release and include the end result in the distribution/package/whatever you call it? 18:20
18:23 krunen left 18:29 mavcunha joined
diakopter r: my $a = nqp::time_n; sleep(1); say(nqp::time_n() - $a) 18:30
camelia rakudo-jvm 4ac10e: OUTPUT«1.0159997940063477␤»
..rakudo-moar 4ac10e: OUTPUT«1.00160980224609␤»
..rakudo-parrot 4ac10e: OUTPUT«1.00365710258484␤»
diakopter ftw 18:31
r: my $a = nqp::time_n; sleep(1); say(nqp::time_n() - $a)
timotimo not bad :)
camelia rakudo-moar 4ac10e: OUTPUT«1.00170040130615␤»
..rakudo-parrot 4ac10e: OUTPUT«1.00394797325134␤»
..rakudo-jvm 4ac10e: OUTPUT«1.003999948501587␤»
diakopter nqp: my $a := nqp::time_n; sleep(1); say(nqp::time_n() - $a) 18:34
camelia nqp-parrot: OUTPUT«Could not find sub &sleep␤current instr.: '' pc 54 ((file unknown):43) (/tmp/tmpfile:1)␤»
..nqp-jvm: OUTPUT«java.lang.NullPointerException␤ in (/tmp/tmpfile:1)␤ in (gen/jvm/stage2/NQPHLL.nqp:1099)␤ in eval (gen/jvm/stage2/NQPHLL.nqp:1085)␤ in evalfiles (gen/jvm/stage2/NQPHLL.nqp:1291)␤ in command_eval (gen/jvm/stage2/NQPHLL.nqp:1195)␤ in command_line (g…»
..nqp-moarvm: OUTPUT«Cannot invoke null object␤ at /tmp/tmpfile:1 (<ephemeral file>::29)␤ from gen/moar/stage2/NQPHLL.nqp:1090 (/home/p6eval/rakudo-inst-1/languages/nqp/lib/NQPHLL.moarvm::96)␤ from gen/moar/stage2/NQPHLL.nqp:1076 (/home/p6eval/rakudo-inst-1/languages/nqp/li…»
18:34 jeffreykegler left
diakopter nqp: my $a := nqp::time_n; nqp::sleep(1); say(nqp::time_n() - $a) 18:36
camelia nqp-jvm: OUTPUT«1␤»
..nqp-parrot: OUTPUT«1.00018692016602␤»
..nqp-moarvm: OUTPUT«1.00013113021851␤»
diakopter nqp: my $a := nqp::time_n; nqp::sleep(1); say(nqp::time_n() - $a) 18:37
camelia nqp-parrot: OUTPUT«1.00029611587524␤»
..nqp-jvm: OUTPUT«1␤»
..nqp-moarvm: OUTPUT«1.0001494884491␤»
diakopter o_O
timotimo wow.
diakopter rakudo overhead over nqp for invoking sleep an say 18:38
er, not say
just sleep.
r: my $a = nqp::time_n; nqp::sleep(1); say(nqp::time_n() - $a) 18:39
camelia rakudo-parrot 4ac10e: OUTPUT«1.00023412704468␤»
..rakudo-jvm 4ac10e: OUTPUT«This representation can not unbox to a native num␤ in block at /tmp/tmpfile:1␤␤»
..rakudo-moar 4ac10e: OUTPUT«This type cannot unbox to a native number␤ in block at /tmp/tmpfile:1␤␤»
diakopter interesting
r: my $a = nqp::time_n; nqp::sleep(1.0); say(nqp::time_n() - $a) 18:40
camelia rakudo-parrot 4ac10e: OUTPUT«1.00042605400085␤»
..rakudo-jvm 4ac10e: OUTPUT«This representation can not unbox to a native num␤ in block at /tmp/tmpfile:1␤␤»
..rakudo-moar 4ac10e: OUTPUT«This type cannot unbox to a native number␤ in block at /tmp/tmpfile:1␤␤»
18:40 raiph left
diakopter r: my $a = nqp::time_n; nqp::sleep("1"); say(nqp::time_n() - $a) 18:41
camelia rakudo-jvm 4ac10e: OUTPUT«This representation can not unbox to a native num␤ in block at /tmp/tmpfile:1␤␤»
..rakudo-moar 4ac10e: OUTPUT«This type cannot unbox to a native number␤ in block at /tmp/tmpfile:1␤␤»
..rakudo-parrot 4ac10e: OUTPUT«1.00059103965759␤»
diakopter heh
18:43 krunen joined 18:44 treehug88 joined
raydiak wonder why it works on my local perl6-m (perl6-j still fails though) 18:44
diakopter what does 18:45
raydiak erm...split-window messing up copy/paste...but the things you were just trying 18:46
18:46 jnap joined
diakopter hm 18:46
raydiak perl6-m -e 'my $a = nqp::time_n; nqp::sleep(1); say(nqp::time_n() - $a)'
not sure where to put num or a := or something to make jvm work, but I think it has to do with the subtraction instead of the sleep 18:48
18:50 treehug88 left, jnap left
ingy what does . mean in <.rule> ? 18:53
18:54 dayangkun left
FROGGS[mobile] it does not capture 18:55
arnsholt Don't save the match object for the subrule in $/
ingy thanks
how abotu || vs | ? 18:56
arnsholt || is sequential OR, like Perl 5 | 18:57
| in Perl 6 is LTM
So /foo|foobar/ will actually match foobar if possible (unlike P5)
ingy got it
are the alternations checked in parallel? 18:58
raydiak r: my $a = nqp::time_n; nqp::sleep(my int $ = 1); say(nqp::time_n() - $a) # it was the sleep after all 18:59
arnsholt No, it's a compile-time thing
camelia rakudo-moar 4ac10e: OUTPUT«1.00017428398132␤»
..rakudo-jvm 4ac10e: OUTPUT«1␤»
..rakudo-parrot 4ac10e: OUTPUT«1.00023102760315␤»
18:59 araujo left
ingy ie why not write /foobar|foo/ ? 18:59
18:59 araujo joined, araujo left, araujo joined, araujo is now known as Guest54845
arnsholt Well, you can. But LTM involves subrules as well, where you can't always a priori predict the best ordering 19:00
ingy ie I've always wondered what the real world use cases where LTM is so important
19:00 Guest54845 left
FROGGS[mobile] the LTM engine just eleminates paths that wont work, and it returns a fate order that will be used then 19:00
ingy so it is just a optimizing convenience thing? 19:01
19:01 darutoko left
FROGGS[mobile] that is one reason 19:02
but in a parser you are really interested in the longest possible token
arnsholt When you're only matching literals in the alternation, LTM is mostly a convenience feature
ingy can you point to a grammar where it's a big win?
I'm not trolling btw. really want to gro this 19:03
grok
arnsholt It's what makes us parse "name-with-dash" as a single identifier
lue ingy: Perhaps the Perl 6 grammar is an example :)
19:03 Alina-malina left
ingy lue: I mean a rule in the grammar 19:03
url plz 19:04
19:04 Alina-malina joined
arnsholt It's also how regex multis (like token foo:sym<bar>) are dispatched to the most specific one when there are multiple candidates 19:04
19:04 spider-mario left
colomon right, off the top of my (possibly very wrong) head I'd say regex multis are the most important reason for LTM 19:06
ingy ok I think I'm getting it. LTM is done during a compiler optimization phase, not a runtime match phase
timotimo er ... not quite
lue ingy: here's that URL :) github.com/perl6/std/blob/master/STD.pm6 19:07
FROGGS ingy: look at github.com/rakudo/rakudo/blob/nom/....nqp#L1794
if you would replace the | by ||s, it would fail
ingy thanks FROGGS
FROGGS ingy: because it would match the <sigil> rule in line 1807
and would not consider any other branch that starts with <sigil> 19:08
ingy but the regex compiler figures that out
FROGGS p: say "foobar" ~~ /foo||foobar/
ingy yeah?
camelia rakudo-parrot 4ac10e: OUTPUT«「foo」␤␤»
FROGGS p: say "foobar" ~~ /foo|foobar/
camelia rakudo-parrot 4ac10e: OUTPUT«「foobar」␤␤»
FROGGS see?
sequential matching is happy after it hit something
ingy FROGGS: I understand the behavior 19:09
FROGGS LTM tries to Do The Right Thing, like a human would
19:09 spider-mario joined
ingy but that's a contrived example 19:09
timotimo LTM is a both compile-time and run-time thing
lue ingy: In an HTML grammar, you wouldn't want a failure because the parser though <blockquote> was a <b> tag, and then couldn't find the right angle bracket.
timotimo at compile-time, the regex compiler creates a nondeterministic finite automaton from the rules 19:10
lue *thought
timotimo at run time, the rules are then tried "in parallel" more or less.
the rule that had the longest initial "declarative" prefix so far will be tried first
that's also why you sometimes see {} appear randomly in rules; it's to terminate the declarative prefix 19:11
ingy timotimo: that's most helpful. thanks
timotimo YW :)
ingy I'm trying to figure out what parts if any I could support LTM in Pegex. I can do the compile time but not the runtime. 19:12
though in my grammars to date I've needed neither
but I already have optimization phases and that's yet another strategy 19:13
but may require syntax
FROGGS p: grammar HTML { token s {'s'}; token span {'span'}; token TOP { '<' ~ '>' [ <s> || <span> ] } }; say HTML.parse("<span>") 19:14
ingy thought I wonder where || is really needed now
camelia rakudo-parrot 4ac10e: OUTPUT«Unable to parse expression in TOP; couldn't find final '>' ␤ in any FAILGOAL at gen/parrot/stage2/QRegex.nqp:1108␤ in regex TOP at /tmp/HvRYagnKWm:1␤ in method parse at gen/parrot/CORE.setting:12552␤ in block at /tmp/HvRYagnKWm:1␤␤»
FROGGS p: grammar HTML { token s {'s'}; token span {'span'}; token TOP { '<' ~ '>' [ <s> | <span> ] } }; say HTML.parse("<span>")
camelia rakudo-parrot 4ac10e: OUTPUT«「<span>」␤ span => 「span」␤␤»
FROGGS ingy: not a contrived example
that is exactly what happens
lue ingy: || is needed when you know what order alternates have to be evaluated in.
ingy FROGGS: I meant that /foo|foobar/ was contrived. 19:15
FROGGS like checking to match something first, but as the last alternative fail via ||
ingy lue: yes I see in FROGGS <s> || <span>
FROGGS sure
and with fail I mean to throw an exception or so 19:16
19:16 araujo_ joined 19:17 araujo_ left
ingy has anyone written an indentation-scoping grammar? 19:17
FROGGS no
ingy been looking at pynie.googlecode.com/svn/trunk/Gram...Grammar.pg
python grammar by pmichaud 19:18
arnsholt I've a sketch of a Python grammar in a more modern grammar dialect
19:19 araujo_ joined, araujo_ left
arnsholt github.com/arnsholt/snake/blob/mas...rammar.nqp There be dragons and bugs though 19:19
ingy :)
*click*
19:19 rindolf left
itz_ Object conflict detected during deserialization. 19:20
(Probable attempt to load two modules that cannot be loaded together).
I assume this is known about (on moar)
colomon itz_: yes
19:20 rom1504_ is now known as rom1504 19:21 kurahaupo_mobile joined
FROGGS itz_: I get that too, and try to get some more information about it right now 19:21
ingy arnsholt: this fairly interesting. I'm most interested that check-indent is only referenced once. 19:22
19:23 araujo joined
ingy poking at a YAML grammar and worried about too much check-indent 19:23
but now I realize that Python is likely a simpler case. 19:24
also interesting to note that INDENT/DEDENT are code based 19:25
which I have suspected is needed
19:29 Sqirrel joined
japhb raydiak: Yes, we could build it ahead of time, but that risks getting the generator and the generated code out of sync accidentally (or forgetting to rerun the generator before pushing to github and having panda -- which uses github rather than tarballs -- getting the old generated code) 19:41
Besides, the generation doesn't take long. 19:42
Well, so far, at least. :-)
19:43 Mouq joined 19:46 rindolf joined
ingy is the only diff between token and rule, the backtracking semantics? 19:54
Mouq ingy: nope 19:55
yoleaux 13:00Z <moritz> Mouq: is there a perl6-j symlink in your $PATH?
14:22Z <jnthn> Mouq: I think you had some work on some of the other missing typed exceptions, besides the couple I just did? Would get a few more passes... :)
Mouq ingy: token and rule and neither do backtracking
ingy: If you want backtracking, regex is what you're looking for
ingy thanks 19:56
I am looking at S05 btw :)
FROGGS p: say "foo bar" ~~ (my rule { 'foo' 'bar' }) 19:58
camelia rakudo-parrot 4ac10e: OUTPUT«「foo bar」␤␤»
FROGGS p: say "foo bar" ~~ (my token { 'foo' 'bar' })
camelia rakudo-parrot 4ac10e: OUTPUT«Nil␤»
FROGGS p: say "foobar" ~~ (my token { 'foo' 'bar' })
camelia rakudo-parrot 4ac10e: OUTPUT«「foobar」␤␤»
FROGGS p: say "foobar" ~~ (my rule { 'foo' 'bar' })
camelia rakudo-parrot 4ac10e: OUTPUT«Nil␤»
FROGGS huh
Mouq FROGGS: Thanks, I was trying to construct an example, but I was messing up
FROGGS p: say "foo bar" ~~ (my rule { 'foo' 'bar' }) 19:59
camelia rakudo-parrot 4ac10e: OUTPUT«「foo bar」␤␤»
Mouq p: say "foo{}bar" ~~ (my rule { 'foo{' '}bar' })
camelia rakudo-parrot 4ac10e: OUTPUT«Nil␤»
Mouq Nil?
FROGGS n: say "foobar" ~~ (my rule { 'foo' 'bar' })
colomon it's not a math
camelia niecza v24-109-g48a8de3: OUTPUT«===SORRY!===␤␤Scope my requires a name at /tmp/7L1to_1G5a line 1:␤------> say "foobar" ~~ (my rule ⏏{ 'foo' 'bar' })␤␤Unhandled exception: Check failed␤␤ at /home/p6eval/niecza/boot/lib/CORE.settin…»
Mouq p: say "foo{ }bar" ~~ (my rule { 'foo{' '}bar' })
colomon match
camelia rakudo-parrot 4ac10e: OUTPUT«Nil␤»
FROGGS n: say "foobar" ~~ (my rule Hurz { 'foo' 'bar' }) 20:00
camelia niecza v24-109-g48a8de3: OUTPUT«Potential difficulties:␤ &Hurz is declared but not used at /tmp/oyPX6vrHex line 1:␤------> say "foobar" ~~ (my rule Hurz ⏏{ 'foo' 'bar' })␤␤Nil␤»
Mouq Oh, no I realize what the problem was
FROGGS it is more like <.ws>+, right?
Mouq p: say 'foo{}bar' ~~ (my rule { 'foo{' '}bar' }) # {} got interpolated
camelia rakudo-parrot 4ac10e: OUTPUT«「foo{}bar」␤␤»
Mouq &
FROGGS p: say 'foo{ }bar' ~~ (my rule { 'foo{' '}bar' }) # {} got interpolated 20:01
camelia rakudo-parrot 4ac10e: OUTPUT«「foo{ }bar」␤␤»
FROGGS hmmm
colomon FROGGS: doesn't <ws> already have the + build it?
FROGGS but then Mouq's last line would not work
Mouq back 20:02
colomon p: say "foo bar" ~~ (my rule { 'foo' 'bar' })
camelia rakudo-parrot 4ac10e: OUTPUT«「foo bar」␤␤»
colomon p: say "foo bar" ~~ (my regex { 'foo' <ws> 'bar' })
Mouq FROGGS: <ws> gets any number of whitespacey characters, and also matches at word boundaries
camelia rakudo-parrot 4ac10e: OUTPUT«「foo bar」␤ ws => 「 」␤␤»
FROGGS ahh, <ws> has some sort of \b in it?
Mouq++ # thanks 20:03
Mouq FROGGS: Yeah, or « in 6-speak
p: say 'foo|bar' ~~ (my rule { 'foo' \S 'bar' })
camelia rakudo-parrot 4ac10e: OUTPUT«「foo|bar」␤␤»
Mouq p: say 'foodbar' ~~ (my rule { 'foo' \S 'bar' })
camelia rakudo-parrot 4ac10e: OUTPUT«Nil␤»
Mouq p: say 'foo d bar' ~~ (my rule { 'foo' \S 'bar' })
camelia rakudo-parrot 4ac10e: OUTPUT«「foo d bar」␤␤»
FROGGS yeah
I see
Mouq moritz: I'm rebuilding to see if what you did fixed it, I just have to rebuild everything, so give me a bit :) 20:04
jnthn: I tried to do work on errors in 6model.c, but couldn't figure it out 20:06
jnthn: But I can look at what you did and see if I can replicate it where it needs to be 20:07
dalek kudo/nom: e51b6c0 | (Geoffrey Broadwell)++ | src/core/IO/Socket.pm:
Increase IO::Socket.recv size on non-Parrot from 512 to 65536 so it can always receive a maximum-sized IP datagram in one try.
Mouq Oh! FROGGS, I'm sure you understand fine, but just pointing out too: 20:14
p: say 'foo d bart' ~~ (my rule { 'foo' \S 'bar' })
camelia rakudo-parrot 4ac10e: OUTPUT«Nil␤»
Mouq Cause of the » at the end
FROGGS yeah 20:15
I see
Mouq Yupperrrrrrrs :P
20:15 regreg left
FROGGS :o) 20:16
20:19 kaare__ joined 20:21 ME joined
Mouq jnthn: Oh, wait you already did. I need to read more closely 20:22
20:22 ME is now known as Guest84835, Guest84835 left
Mouq r: try {1.foo}; say $!.WHAT # jnthn++ 20:22
camelia rakudo-parrot 4ac10e, rakudo-jvm 4ac10e, rakudo-moar 4ac10e: OUTPUT«(X::Method::NotFound)␤»
Mouq moritz: Alas, it wasn't fixed 20:27
timotimo 10/43 benchmarks into nqp-jvm right now 20:28
iirc the order was nqp-p, nqp-jvm, nqp-m, perl5 20:29
20:31 zakharyas left
Mouq moritz: Nerm, so it was indeed my fault 20:32
:/ sorry, and thank you, moritz++. I rm'd the $(which perl6)'s that were giving me grief and they were fixed after some *-runner-default-install's 20:33
So I must have gotten perl6 symlinked to perl6-j somehow :/ 20:34
20:35 krunen left 20:37 krunen joined
raydiak japhb: that makes sense; I'll do a little expanding and organizing to it some time today, unless you're planning the same or already started 20:37
20:38 sivoais left, sivoais joined
moritz Mouq: glad the issue is resolved 20:42
timotimo japhb: do you recall something about most tests being skipped on the nqps? 20:43
20:43 rindolf left 20:47 jnap joined
japhb raydiak: There was some intent to the order in which the output appears, but I'm not wedded to it. The expanding is going to be the big thing -- adding matrix math (with all variants of scalars, vectors, and matrices for each op), doing Vec4 and Mat4x4 for homogenous coordinates and conversions back and forth from the *3 versions, adding Quaternions, adding very basic physics of motion and optics, etc. 20:51
Eventually I feel like you ought to be able to 'use Math::ThreeD;' and just be able to assume that all the math you'd see in a decent graphics or game engine book would Just Be There. 20:52
20:53 jnap left
japhb timotimo: Yes, NQP lacks a number of the constructs that make sense in full Perl 6, so I skip those tests rather than having an NQP translation that wouldn't be apples-to-apples. 20:54
20:55 treehug88 joined
japhb Is there any DB support for r-j right now? 20:56
japhb is thinking of making a concurrency-safe backing store for Net--IRC
20:56 raiph joined 20:57 flussence left
hoelzro just built the docs in 8 minutes using 600MB RAM \o/ 20:57
japhb w00t! 20:58
colomon japhb I just read the README. Is it ready yet? 20:59
japhb LOL
colomon ;)
21:00 flussence joined
timotimo japhb: oh, okay 21:00
21:00 treehug88 left
timotimo i've got all them benchmarks now 21:00
time to compare! :)
japhb Perl 5 has some of the same issues (things that don't make sense in Perl 5), but there are fewer of them than with NQP IIRC 21:01
Awww yeah.
21:03 btyler joined
raydiak japhb: sounds like we're pretty much on the same page, though for today I planned to start by refining the build/template script itself...support multiple files for in and out, stuff like that 21:03
colomon japhb: not clear to me why Vec3 is an Array? 21:04
japhb raydiak: Oh, fair enough. And maybe put the right things in place for panda to recognize it?
colomon: Erm ... it isa because it *is*? 21:05
21:05 Sqirrel left, Sqirrel_ joined
timotimo i didn't get any data points for perl5 o_O 21:05
21:05 Sqirrel_ left
raydiak (mainly just because my feeble mind doesn't do well with long files of long strings occasionally punctuated by heredocs :) it works now, but once we add some meat, it'll be beyond me) 21:05
21:05 Sqirrel joined
japhb But the idea was that I could replace 'Array' with 'Array[3] of num' someday and get the speed and space savings with just one change. 21:06
21:06 Sqirrel left
raydiak japhb: yeah, I'll read whatever that requires before I get much into it 21:06
timotimo ah, doh
he configure script says OMG THIS IS A DEVELOPMENT BUILD
DO YOU KNOW WHAT THAT MEANS?!!?!
and perl6-bench is like
colomon japhb: 1) isn't that a whooping Liskov violation? 2) surely having three num attributes instead would be more efficient in both time and space?
timotimo ^D
and configure is like "yeah, didn't think so, punk!"
japhb colomon: 1) Regardless of whether it is (and it's not clear to me that's so), I think of Liskov as a rule of thumb, not a law. 2) What about a 4x4 matrix? That would have 16 attributes. 21:09
timotimo: heh
colomon is Vec3 meant to be a 4x4 matrix type?
japhb colomon: No, but Mat4x4 will be. :-)
Also, I want .x, .y, and .z to be accessors, not the internal design. 21:10
Because eventually I'd like to be able to have a 300,000 element array of nums, which contains 100,000 tightly packed Vec3's.
And I want to be thinking in terms of array elements, not in terms of axes. 21:11
Plus, is a Vec3 any less a Vec3 because it represents an RGB triple instead of XYZ?
colomon in your version, a Vec3 is just as much a Vec3 if it has 2 coordinates or 2 million. 21:12
21:12 SamuraiJack left
japhb colomon: Why do you say that? The only reason it's not sized is because Rakudo doesn't support that. 21:12
And if RGB and XYZ are both valid Vec3's, which one gets named attributes, if I'm thinking that way? 21:13
colomon so it's really supposed to be an Array[3] of num (or however you write that when it's finally implemented)?
japhb 13:06 < japhb> But the idea was that I could replace 'Array' with 'Array[3] of num' someday and get the speed and space savings with just one change. 21:14
... and I would also add, the correctness.
colomon the correctness is kind of more important (and more plausible) than the speed 21:15
timotimo perl5 benchmarks are starting now
japhb What makes you say that? Attribute lookup is really array access underneath.
And are you worried that people are going to .push onto it or .pop from it? 21:16
timotimo japhb: well, our private attribute accesses are actually turned into "array" accesses underneath with the offset into the data computed at compile-time if possible
colomon presumably push and pop won't work when it's an Array[3]
japhb timotimo: yes, I know that. :0(
er, :-)
timotimo on the other hand, you first need to find the array itself for an array and then access into it
well, at least our postcircumfix methods are now really subs that could compile-time inline 21:17
japhb timotimo: You are thinking in the current implementation, not in the optimized future.
timotimo oh, yes
japhb If we don't (eventually) optimize access to native arrays, we're missing out.
timotimo in the future, those methods would be equally fast
japhb right.
timotimo far future :)
japhb I dunno about that.
timotimo we'll see 21:18
perhaps our new shiny backend will attract more developers to the cabal
i'm certainly excited :3
colomon japhb: as I think timotimo was getting at there, I would certainly hope that when optimized, lookup for attributes would be faster than general Array lookup
japhb But these aren't general array lookups -- they're lookups *with constant subscripts* 21:19
timotimo colomon: well, when optimized, the lookup to an attribute that's an array would bypass the array completely
japhb And a native array implementation is free to pack the array contents directly into the object body -- which is to say, at fixed (attribute-like) positions. 21:20
_sri wait, you're benchmarking perl5 against perl6 on moarvm? :)
japhb _sri: Why not? :-) 21:21
timotimo yes, i am that hopeful
_sri oh, i totally want to see those :)
timotimo i won't keep the results from you :P
_sri \o/
japhb _sri: Remember, rakudo-moar has had about half a week of actual optimization work on it total, so don't get your hopes up too high yet. :-) 21:22
_sri i have no expectations
colomon japhb: I guess if you assume away all the difficulties via improvements to rakudo, I see nothing terribly wrong about class Vec3 is Array 21:23
if we're lucky, you'll encourage p6ers to make then needed improvements. ;) 21:24
moritz thinks that Vec3 inheriting from Array is a terrible idea
if you inherit, you should never remove functionality 21:25
japhb moritz: What would your design be?
colomon moritz: Array[3] of num
timotimo japhb: could you add something to the perl5 build script to install Data::Alias so that I can effortlessly test the bind-related benchmarks? 21:26
moritz but a Vec3 shouldn't allow an arbitrary number of elements, I suppose :-)
timotimo it could implement Positional
but no need to make it inherit from Array
raydiak I was about ask if it should be a List or something
TimToady it's rather more like a parcel or tuple
timotimo that's true
japhb timotimo: At one point I tried to do that, and had trouble for some reason that I cannot remember. perl5-version incompatibilites maybe? 21:27
colomon …. wait, is Array[3] always exactly 3, or is it at most 3?
timotimo japhb: oh :(
TimToady exactly
moritz well, Parcel isn't type-specialized
timotimo well, that'll only get really interesting once we get close to 1/2 as fast as perl5
moritz so either it should have an array, or three separate attributes
it really depends on what operations it supports, and if you generally want to unroll your loops by hand 21:28
japhb moritz: I do. Because the performance shouldn't suck right *now*, even if it will hopefully get much better in the future. 21:29
I'm trying to design something that is useable now, and yet can take advantage of future implementation improvements
moritz then just say class Vec3 does Positional { has num $.x; has num $.y; has num $.z; } 21:30
japhb moritz: but a Vec3 could also be e.g. an RGB triplet.
moritz japhb: does cross product make sense on RGP triplets?
japhb ... or a dx, dy, dz trioplet
japhb takes a breath in order to turn down incipient snark 21:31
moritz well, you can store RGP colors in nums too 21:32
or have I misunderstood your objection?
japhb OK. I get that you're going for ultimate type safety. But 1) I tried to say about a bazillion times this was a first sketch WIP, and 2) can everyone please give me the benefit of the doubt that I'm not a horrible designer?
japhb is very much regretting "release early, release often" 21:33
I am not ready to paint the bikeshed. I have not finished laying the slab yet for it to sit on.
moritz japhb: sorry, I don't understand. You asked me what my design would be, and now you complain about my answer?
was it too specific? or did it not answer your actual question? 21:34
I haven't read all the backlog yet
timotimo the graphs are now pretty crowded
japhb 13:30 < moritz> japhb: does cross product make sense on RGP triplets? <--- You're asking a question with an obvious answer to point out a flaw in my thinking. But I know the answer. I just haven't addressed that yet. 21:35
Mouq japhb: No one thinks you're a horrible designer :)
moritz japhb: I don't know enough about color spaces to know the answer. Sorry if it's obvious for you 21:36
lue japhb: If you plan on having a lot of different Vec3-like types in the future, perhaps a more generic Tuplet class would be a good thing in the future? Then you could having things like class Coord3D is Tuplet[3] 21:37
21:37 kurahaupo_mobile left
moritz japhb: and fwiw I also don't think it's the type system's job to forbid everything that doesn't make sense in the real world; I was just wondering if putting RGB into a Vec3 isn't an abuse of the Vec3 concept 21:37
not all collections of n values is a vector; it's only a vector if it transforms like a vector
raydiak I think the intention was to to keep XYZ out, not put RGB in
timotimo ah well. we're not beating perl5 any time soon :P 21:38
moritz anyway, time for sleep here
colomon japhb: a lot of your objections seem to be that giving the three quantities in the Vec3 a specific name limits what they can do. They could just as easily be { has num $.v1; has num $.v2; has num $.v3; }
raydiak \o g'night moritz
timotimo gnite moritz! 21:39
japhb moritz: Well, there are a lot of operations that make sense for a Vec3 in the general sense that make more sense for one or the other. For example, in the space of multiplication, dot/inner product makes sense for both color spaces and positional spaces. element-wise product makes more sense for color spaces. cross product makes more sense for positional spaces.
colomon that said, I can certainly see good reasons why Vec3 is Array[3] of num
moritz doesn't
Array contains *containers*
why wouldn't it be List[3] of num?
timotimo i really wonder what makes the rakudos so much slower than the nqps at doing empty loops 21:40
moritz -> really sleep
btyler timotimo: I'd be shocked and pleased if perl6 on any backend came within an order of magnitude for any of the tests; just tooling around with nqp (let alone rakudo) shows its still rather slower than ruby (which is typically rather slower than p5)
japhb moritz: because a fundamental part of the design is to allow mutable vectors to avoid GC churn.
timotimo btyler: oh, did you make any actual measurements?
btyler timotimo: nothing scientific, as I said just tooling around with some loops or basic operations
timotimo fair enough
japhb colomon: Is your reasoning for '{ has num $.v1; has num $.v2; has num $.v3; }' simply one of (current implementation) efficiency? 21:41
timotimo at some of the (almost completely meaningless) microbenchmarks, nqp-jvm eventually beats perl5
colomon japhb: well, yes. I'd be shocked if Array[3] of num caught up in efficiency with that for the foreseeable future. 21:43
timotimo japhb: can we get the "mumble times slower than fastest" to either only compare on the same x-position or add a second number displaying the comparison to the fastest at the current x position? 21:45
21:45 smls left
timotimo especially for tests with non-linear growth that'd make a big difference 21:45
21:45 smls joined
japhb timotimo: Yep, I agree. I'd thought of that a while back (and I think even made progress on making sure the data was all there to make it easy to implement), but just never finished that bit. 21:46
timotimo good to know
21:47 mtj_ left
japhb If you've got a hankering, go ahead. :-) 21:47
timotimo can we put a factor (or summand) for "enough-time" into individual benchmarks?
japhb What do you mean?
timotimo i'd like to extend the time of rc-forest-fire and parse-json for all backends by at least a factor of 2 for every run, but not have to do it manually
japhb Oh, I see. 21:48
timotimo or perhaps the framework could increase the task size by 1.5 after the "enough time" has been reached
so that we will always have at least 2 data points
japhb You know, you can do separate runs of different benchmarks and then use compare in merge-to-json mode to combine them into one set of test results.
21:48 jnap joined
timotimo feather.perl6.nl/~raiph/25jan2014-b...kudos.html_sri 21:48
japhb timotimo: That's an interesting idea. 21:49
timotimo hm. how would i get some perl5ers attention for porting the richards benchmark to perl5? 21:50
i *think* it's working as intended at least in one version
ah. there is only the nqp version so far 21:51
interesting, nqp-moarvm is currently set to just skip forest fire and parse json
timotimo fixes and tests
_sri join #p5p and taunt them a little :) 21:52
21:53 mtj_ joined
timotimo er, actually, it skips parse json and man or boy test. 21:53
21:53 jnap left
timotimo it does run parse-json 21:53
(and quite a bit better than parrot does)
i wonder. i kind of thought i had an account on feather 21:54
japhb timotimo++ # Benchmarking! 21:55
21:56 ajr_ left
timotimo Use of undeclared variable '$B' at line 6, near ", $x1, $x2" ← that's how nqp-moar dies on the man-or-boy test 21:56
the line number seems to be off-by-one and it's apparently about the inner reference to $B that's on the rhs of the assignment & creation of $B itself 21:57
nqp-moarvm runs rc-forest-fire a bit faster than parrot and faster than nqp-jvm up until 128 iterations, where jvm takes over the 2nd spot (and on 2048, it overtakes perl5) 21:59
colomon japhb: I guess part of what makes me look somewhat askance at your "class Vec3 is Array[3] of num" is it feels like a really odd combination of what seems like very early optimization (thus, for instance, is Array[3] instead of has Array[3]) with stuff that seems likely to be quite inefficient today. I can certainly see that if your imagined optimizations come about, then your solution is a pretty sensible one. 22:00
japhb: and now I'm wondering if Vec3 shouldn't be a role, and going completely into the bikeshedding abyss. 22:02
japhb colomon: OK, fair enough. So implement it the way you think it should be, and let's compare. :-) 22:03
22:03 gcole joined
colomon japhb: fair enough 22:03
japhb At the very least we'll put some numbers to the gut feelings, and maybe even find a serious performance issue that we can correct. 22:04
colomon it has been forked. ;) 22:05
timotimo japhb: is there some major problem to trying the 1.5x thing or can i just go ahead and plop it in? 22:06
22:06 zby_home_ left
japhb No, but perhaps it's even better to make a minimum-results value. 22:07
"I want at least three data points"
colomon: heh
timotimo that does sound better.
itz_ must not buy HP16C online 22:08
raiph bug in perl6-bench? mouse over first dot of top line (nqp/moarvm) in while_empty_native 22:11
says "151x slower than fastest"
22:12 gcole left 22:13 ivanshmakov left
raiph ooooh. my bad. slower than fastest ever (which will often be jvm). 22:13
22:13 gcole joined, airdisa left
japhb raiph: That's one of things timotimo was talking about above -- he'd like to both have comparison to fastest ever, and to fastest for that particular test scale (vertical comparison, in other words) 22:14
22:15 ivanshmakov joined
raiph ah, i haven't fully clogged yet, was just confused 22:16
corecatcher pets timotimo
timotimo hey there
corecatcher \o 22:18
perigrin watches Util talk 22:23
japhb perigrin: What is Util speaking about? 22:24
perigrin some programming language 22:25
Perl6? I've never heard of it
japhb Ah cool. Where are you? 22:26
perigrin Perl Oasis workshop
japhb Ah, cool.
perigrin :)
japhb How is it going? Well received so far?
perigrin he just started really 22:27
japhb ah, gotcah
er gotcha
perigrin this is ... not a normal Perl crowd
japhb ?
perigrin mostly the local SLUG group
colomon is trying to remember why he is recompiling rakudo on OS X. :\ 22:28
perigrin so it'll be interesting to see how things have changed
colomon: you're a masochist?
colomon perigrin: evidence says yes in general, but not in this particular case? It's going smoothly if slowly. 22:29
perigrin :) 22:30
22:30 ivanshmakov left 22:39 denis_boyun left 22:40 spider-mario left
colomon Command failed (status 11): make 22:40
Command failed (status 65280): /Users/colomon/perl5/perlbrew/perls/perl-5.18.0/bin/perl Configure.pl --prefix=/Users/colomon/tools/rakudo/install --backends=moar,jvm,parrot --make-install --gen-moar
okay, that's embarrassing. Just figured out I actually went to that directory to look at the rakudo source. 22:41
22:45 kurahaupo_mobile joined
dalek rl6-bench/minimum_number_runs: 3bf2475 | (Timo Paulssen)++ | minibenchmarks.pl:
no longer need to skip rc-forest-fire on nqp-moar.
22:47
rl6-bench/minimum_number_runs: 0c6dde4 | (Timo Paulssen)++ | timeall:
try to get at least 3 datapoints
rl6-bench: 3bf2475 | (Timo Paulssen)++ | minibenchmarks.pl:
no longer need to skip rc-forest-fire on nqp-moar.
22:48
22:49 jnap joined 22:53 jnap left 22:54 smls left 22:55 psch joined
psch hi #perl6 22:56
for <testneeded> tagged RT tickets i just push a test to roast and comment on the ticket, right?
because many of those tests seem writeable for me... :) 22:57
well, rather "a few" than many
jnthn psch: Yes, that's right 22:58
corecatcher p: use lib $?FILE.path.directory ~ '/lib';
camelia ( no output )
corecatcher p: use lib "{$?FILE.path.directory}/lib";
camelia rakudo-parrot e51b6c: OUTPUT«===SORRY!===␤Null PMC access in get_bool()␤»
corecatcher r: use lib "{$?FILE.path.directory}/lib"; 23:01
jnthn Mouq: Yes, it was the bind failure and return type check failure ones I thought you had patches towards. :)
camelia ( no output )
..rakudo-parrot e51b6c: OUTPUT«===SORRY!===␤Null PMC access in get_bool()␤»
psch RT #79002 seems redundant though, unless there's something specific about this case that warrants another test for X::Syntax::Confused 'two terms in a row'
synopsebot Link: rt.perl.org/rt3//Public/Bug/Displa...l?id=79002
23:02 telex left
psch line 352 in S32-exceptions/misc.t covers a similar case 23:02
but then, i have it written and might as well commit the exact example as it exists in the ticket...
Mouq jnthn: I did realize: X::Assignment::RO still has to be thrown if an object has no STORE method still, in Ops.nqp's p6store 23:03
jnthn: Even if I could get what I have to work, I don't think it'd be effecient (especially for something that's going to get hit for every assignment made)
23:04 gcole left
Mouq jnthn: So it's probably best if you did it :P sorry 23:04
23:04 gcole joined, telex joined
Mouq jnthn: Or at least, someone who knows what he is doing 23:04
23:05 flussence left
timotimo corecatcher: i can't answer your query, because i'm not authenticated with nickserv on this server 23:05
jnthn Mouq: OK, np 23:06
corecatcher timotimo: hackint then?
jnthn Mouq: Yes, that does need a little care given it's very common
timotimo "no such nick corecatcher" :)
i'm timo there 23:07
23:09 Rotwang left 23:12 jeffreykegler joined 23:15 btyler left 23:16 bjz left 23:17 bjz joined 23:19 kurahaupo_mobile left
timotimo nqp: my $foo := sub ($a) { $a > 0 ?? $foo($a - 1) + 1 !! 1 }; 23:21
camelia nqp-parrot: OUTPUT«Use of undeclared variable '$foo' at line 2, near "($a - 1) +"␤current instr.: 'panic' pc 15952 (gen/parrot/stage2/NQPHLL.pir:5947) (gen/parrot/stage2/NQPHLL.nqp:425)␤»
..nqp-moarvm: OUTPUT«Use of undeclared variable '$foo' at line 2, near "($a - 1) +"␤ at gen/moar/stage2/NQPHLL.nqp:369 (/home/p6eval/rakudo-inst-1/languages/nqp/lib/NQPHLL.moarvm:panic:120)␤ from gen/moar/stage2/NQP.nqp:2371 (/home/p6eval/rakudo-inst-1/languages/nqp/lib/nqp.mo…»
..nqp-jvm: OUTPUT«Use of undeclared variable '$foo' at line 2, near "($a - 1) +"␤ in panic (gen/jvm/stage2/NQPHLL.nqp:378)␤ in (gen/jvm/stage2/NQP.nqp:2376)␤ in (gen/jvm/stage2/NQP.nqp:2367)␤ in variable (gen/jvm/stage2/NQP.nqp:2298)␤ in !reduce (gen/jvm/stage2/QRegex…»
timotimo oh?
jnthn timotimo: Let's call that one a bug... 23:24
timotimo rc-man-or-boy-test in nqp/ of perl6-bench has this line: my $B := sub () { A(--$k, $B, $x1, $x2, $x3, $x4) }; 23:25
and it worked on other nqps :\
23:26 bjz left
timotimo japhb: even with 3 * 3 it won't work any better o_O 23:26
tadzik damn it's cold :|
o/' I'm much too young to feel this damn cold o/' 23:27
23:27 kurahaupo_mobile joined
timotimo jnthn: if i were bored on a sunday afternoon soon-ish, what optimization would i look at first to start a peephole optimizer for moar? and what kind of code would produce sufficiently optimizable code? 23:27
dalek ast: b2af5d7 | (Pepe Schwarz)++ | S32-exceptions/misc.t:
Added test for RT #79002
23:28
ast: 1b0f074 | (Pepe Schwarz)++ | S32-exceptions/misc.t:
Added test for RT #115964
synopsebot Link: rt.perl.org/rt3//Public/Bug/Displa...l?id=79002
Link: rt.perl.org/rt3//Public/Bug/Displa...?id=115964
ast: a984324 | (Pepe Schwarz)++ | S32-exceptions/misc.t:
Added test for RT #77270
synopsebot Link: rt.perl.org/rt3//Public/Bug/Displa...l?id=77270
psch thinks he should maybe group commits or at least not trigger synopsebot... 23:32
timotimo i disagree
jnthn timotimo: Well, dunno how measurable it'd be, but simple strength reduction on native integer ops is one example. For example, turning a multiply by a power of 2 into a bit-shift
timotimo i clicked on all those synopsebot links to see what you've been fixing :) 23:33
psch i haven't been fixing anything, just adding tests... :)
timotimo that's a fix in my books :)
psch and they were all pretty much copy&paste
oh alright :P
tadzik psch++
23:33 dmol left
jnthn psch: I think you did it fine. :) 23:34
timotimo jnthn: what do i have to look for to see if a register has a natively typed int in it?
psch there's a few where i have questions though, like for example rt #76444
synopsebot Link: rt.perl.org/rt3//Public/Bug/Displa...l?id=76444
psch the behavior i'm seeing here isn't the same as in the ticket
jnthn timotimo: Well, if you've an add_i you can be quite sure :)
tadzik coooold
jnthn timotimo: Instructions on natives are not polymorphic in Moar.
psch where "here" is a fresh build of -j and -m from about half an hour ago 23:35
timotimo ah, that's fair :)
23:35 bjz joined
Mouq p6: say (my $a) = 1,2,3; $a 23:35
camelia rakudo-parrot e51b6c, rakudo-jvm e51b6c, rakudo-moar e51b6c, niecza v24-109-g48a8de3: OUTPUT«1 2 3␤»
psch Mouq: my concern was the last example 23:36
r: (say (my $a)) = 1,2,3;
camelia rakudo-moar e51b6c: OUTPUT«(Any)␤No such method 'STORE' for invocant of type 'Bool'␤ in block at /tmp/tmpfile:1␤␤»
..rakudo-parrot e51b6c, rakudo-jvm e51b6c: OUTPUT«(Any)␤Cannot modify an immutable value␤ in block at /tmp/tmpfile:1␤␤»
psch i guess that makes more sense than what is in the ticket, as the return value of say is immutable
jnthn timotimo: If you want to go for a very noticable improvement, though, digging into the Int optimizations we talked about on #moarvm will likely be more noticable
psch ...i was mostly just curious 23:37
timotimo is the whole callsite business what we'll be using to stash runtime information about likely invocation targets of methods close by or something?
Mouq psch: Do you mean the 'Cannot assign to a non-container'?
timotimo jnthn: i'll see if i can find the time and inspiration ;)
psch Mouq: yeah, i wasn't seen that locally as it is in the ticket 23:38
*seeing
and here neither.. :)
jnthn timotimo: Well, the callsites will be keys into specialized things, for sure. That's why I want to move stuff like names into them.
23:39 xinming_ joined
Mouq psch: Ah, k, I agree with you 23:39
23:41 xinming left
dalek p: 50185fc | jnthn++ | src/ (2 files):
Avoid lots of allocation/boxing with cursors.

Only changed on Moar here, but can do similar thing on other backends.
23:44
p: 3cccf18 | jnthn++ | src/ (4 files):
Improve regex prelude when we can know cursor type

Means we can emit some more things as hinted lookups.
nqp: aa42129 | jnthn++ | src/vm/moar/QAST/QASTRegexCompilerMAST.nqp:
nqp: A few more Cursor access code-gen improvements.
23:45 kaare__ left 23:46 flussence joined
Mouq p6: my rule thr ($i) {<$i>**3}; say 'xxxxxxxxxx' ~~ /<thr <thr x> >/ 23:46
camelia niecza v24-109-g48a8de3: OUTPUT«「xxxxxxxxx」␤ thr => 「xxxxxxxxx」␤␤»
..rakudo-parrot e51b6c, rakudo-jvm e51b6c, rakudo-moar e51b6c: OUTPUT«===SORRY!=== Error while compiling /tmp/tmpfile␤Variable '$i' is not declared␤at /tmp/tmpfile:1␤------> my rule thr ($i) {<$i>**3}⏏; say 'xxxxxxxxxx' ~~ /<thr <thr x> >/…»
psch is S06-other/misc.t an ok place for #76444? 23:48
synopsebot Link: rt.perl.org/rt3//Public/Bug/Displa...l?id=76444
Mouq nqp: grammar three { token TOP { <thr <thr x> > }; token thr ($i) {<$i>**3} }; say(three.parse('xxxxxxxxxx')) # And yet NQP does it correctly 23:49
camelia nqp-moarvm, nqp-jvm, nqp-parrot: OUTPUT«xxxxxxxxx␤»
23:50 jnap joined
jnthn psch: S03-operators/assign.t may be better 23:51
Mouq psch: I'd almost say that should go in S03-* because it has to do with precedence
psch okay
Mouq is too slow
Mouq goes back to minding his own business
psch i looked at S03-operators, but thought "well say isn't really an operator, is it now"... :) 23:52
jnthn Mouq: I got no guesses on why Rakudo gets that one you just eval'd wrong... 23:53
Mouq: Should work.
23:54 jnap left
timotimo jnthn: do we already get compile-time hints for the cursors now? 23:54
dalek ast: e951886 | (Pepe Schwarz)++ | S03-operators/assign.t:
Added test for RT #76444
synopsebot Link: rt.perl.org/rt3//Public/Bug/Displa...l?id=76444
psch should the failing examples go somewhere as well? 23:55
unless there's similar cases already...
psch goes and reads more roast
jnthn timotimo: The code we emit for grammar rules shouldnow have them. 23:57
*should
timotimo: Well, not taught grammars in Rakudo about it yet... 23:58
timotimo: But that'll be easy enough.
Mouq psch++ # bug tests :)
timotimo aye
i'll spend some sleepytime for now, tomorrow i'll have a train ride that may or may not end up being productive :) 23:59