»ö« 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.
00:00 alester left 00:04 regreg left
TimToady r: pi.round(0.00000000000001) 00:08
camelia ( no output )
TimToady r: pi.round(0.00000000000001).say
camelia rakudo-parrot e4e862, rakudo-jvm e4e862, rakudo-moar e4e862: OUTPUT«3.14159265358979␤»
TimToady r: pi.round(0.00000000000001).WHAT.say
camelia rakudo-parrot e4e862, rakudo-jvm e4e862, rakudo-moar e4e862: OUTPUT«(Rat)␤»
00:10 dbrock__ joined
BenGoldberg r: pi.round(0.00000000000001).WHAT.say 00:19
camelia rakudo-parrot e4e862, rakudo-jvm e4e862, rakudo-moar e4e862: OUTPUT«(Rat)␤»
BenGoldberg r: pi.round(0.00000000000001).Rat.nude.say
camelia rakudo-parrot e4e862, rakudo-jvm e4e862, rakudo-moar e4e862: OUTPUT«314159265358979 100000000000000␤»
TimToady if it's already a Rat, you don't have to convert it 00:20
BenGoldberg Just noticed that ;)
r: pi.round(1e-14).WHAT.say 00:21
camelia rakudo-parrot e4e862, rakudo-jvm e4e862, rakudo-moar e4e862: OUTPUT«(Num)␤»
TimToady you have to give it a Rat to get a Rat 00:22
we talked once about having an e-like notation for Rats
1r-14 or some such
BenGoldberg r: pi.round(Rat.new(1,1e14)).WHAT.say 00:23
camelia rakudo-parrot e4e862: OUTPUT«Nominal type check failed for parameter 'de'; expected Int but got Num instead␤ in method new at gen/parrot/CORE.setting:9846␤ in block at /tmp/tmpfile:1␤␤»
..rakudo-jvm e4e862: OUTPUT«Nominal type check failed for parameter 'de'␤ in method new at gen/jvm/CORE.setting:9826␤ in block at /tmp/tmpfile:1␤␤»
..rakudo-moar e4e862: OUTPUT«Nominal type check failed for parameter 'de'; expected Int but got Num␤ in method new at src/gen/m-CORE.setting:9826␤ in block at /tmp/tmpfile:1␤␤»
TimToady r: say (1/10**14).WHAT
camelia rakudo-parrot e4e862, rakudo-jvm e4e862, rakudo-moar e4e862: OUTPUT«(Rat)␤»
TimToady that's about the shortest way to write it currently
BenGoldberg p6: (pi - pi.round(0.00000000000001)).fmt("%e").say 00:24
camelia rakudo-parrot e4e862, rakudo-jvm e4e862, rakudo-moar e4e862: OUTPUT«3.108624e-15␤»
..niecza v24-109-g48a8de3: OUTPUT«3.108624e-015␤»
TimToady r: say (10**-14).WHAT
camelia rakudo-parrot e4e862, rakudo-jvm e4e862: OUTPUT«(Num)␤»
..rakudo-moar e4e862: OUTPUT«(Int)␤»
TimToady arguably that could return a Rat
er...Int?!? 00:25
r: say 10**-14
camelia rakudo-parrot e4e862: OUTPUT«1e-14␤»
..rakudo-jvm e4e862: OUTPUT«1.0E-14␤»
..rakudo-moar e4e862: OUTPUT«0␤»
TimToady um, oopsie
moarbug, I'd say
r: say 0.1**14 00:26
camelia rakudo-parrot e4e862, rakudo-jvm e4e862, rakudo-moar e4e862: OUTPUT«0.00000000000001␤»
TimToady r: say (0.1**14).WHAT
camelia rakudo-parrot e4e862, rakudo-jvm e4e862, rakudo-moar e4e862: OUTPUT«(Rat)␤»
TimToady r: say .1**14 00:27
camelia rakudo-parrot e4e862, rakudo-jvm e4e862, rakudo-moar e4e862: OUTPUT«0.00000000000001␤»
TimToady I guess that's about as short as you can get it
BenGoldberg p6: pi.round(.1**25).say 00:28
camelia rakudo-jvm e4e862: OUTPUT«3.141592653589793␤» 00:29
..rakudo-parrot e4e862: OUTPUT«3.14159265358979␤»
..niecza v24-109-g48a8de3: OUTPUT«6262.4769253271943␤»
..rakudo-moar e4e862: OUTPUT«-9.22337203685478e-07␤»
00:29 ponbiki joined
TimToady they store pi as a Num, I believe 00:29
but niecza and moar seem bogus
jnthn r: say pi.WHAT # Rat, I thought...
camelia rakudo-parrot e4e862, rakudo-jvm e4e862, rakudo-moar e4e862: OUTPUT«(Num)␤»
00:29 ponbiki is now known as Guest49800
jnthn Oh :) 00:29
BenGoldberg p6: pi.round(.1**25).WHAT.say
camelia rakudo-parrot e4e862, rakudo-jvm e4e862, rakudo-moar e4e862: OUTPUT«(Num)␤» 00:30
..niecza v24-109-g48a8de3: OUTPUT«Num()␤»
TimToady I guess it just gives up and returns the original Num
BenGoldberg But that doesn't explain nieca or moar
TimToady or is that larger than 64 bits?
r: say 2 ** 64 < 10 ** 25 00:31
camelia rakudo-parrot e4e862, rakudo-jvm e4e862, rakudo-moar e4e862: OUTPUT«True␤»
00:31 rurban left
TimToady r: say (.1 ** 25).WHAT 00:31
BenGoldberg p6: pi.round(.1**$_).WHAT.say for 15 .. 25
camelia rakudo-parrot e4e862, rakudo-jvm e4e862, rakudo-moar e4e862: OUTPUT«(Num)␤»
niecza v24-109-g48a8de3: OUTPUT«(Rat)␤(Rat)␤(Rat)␤(Rat)␤(Rat)␤Num()␤Num()␤Num()␤Num()␤Num()␤Num()␤»
..rakudo-parrot e4e862, rakudo-jvm e4e862, rakudo-moar e4e862: OUTPUT«(Rat)␤(Rat)␤(Rat)␤(Rat)␤(Rat)␤(Num)␤(Num)␤(Num)␤(Num)␤(Num)␤(Num)␤»
BenGoldberg p6: pi.round(.1**$_).WHAT.say for 19 .. 20 00:32
TimToady beyond that, you'd need to depend on NYI semanics for constants
camelia rakudo-parrot e4e862, rakudo-jvm e4e862, rakudo-moar e4e862: OUTPUT«(Rat)␤(Num)␤»
..niecza v24-109-g48a8de3: OUTPUT«(Rat)␤Num()␤»
BenGoldberg What is niecza say Num() instead of (Num)?
p6: pi.round(.1**$_).say for 19 .. 20
camelia niecza v24-109-g48a8de3: OUTPUT«3.1415926535897931776␤3.1415926535897931␤»
..rakudo-moar e4e862: OUTPUT«-0.922337203685478␤-0.0922337203685478␤» 00:33
..rakudo-jvm e4e862: OUTPUT«3.141592653589793␤3.141592653589793␤»
..rakudo-parrot e4e862: OUTPUT«3.14159265358979318␤3.14159265358979␤»
TimToady S02:Allomorphic_Rats
jnthn iirc, Num() got re-specced to (Num) 00:34
As the way type objects stringify
TimToady because nobody ever fixed niecza when we respecced
jnthn Can't remember the rational
Mebbe something to do with coercion types?
jnthn guesses the type Num() would gist as (Num()) :)
TimToady Num() looks like a function call, not an "oh, by the way"
jnthn ah
BenGoldberg r: sub foo { print "nu" }; say &foo 00:35
TimToady so it's really more of an English use of parens there to make it a bit off-the-record
camelia rakudo-parrot e4e862, rakudo-jvm e4e862, rakudo-moar e4e862: OUTPUT«sub foo() { ... }␤»
TimToady BenGoldberg: unlike in P5, &foo will never call 00:36
it's just a noun
BenGoldberg I just wanted to see if it stringified to "foo()" :)
00:36 Guest49800 left
TimToady ah 00:36
revelations all around :)
but that's kind of the point, it *isn't* the call 00:37
and () would tend to indicate the result of a call
BenGoldberg r: sub foo(@_) { print "nu" }; say &foo
camelia rakudo-parrot e4e862, rakudo-jvm e4e862, rakudo-moar e4e862: OUTPUT«sub foo(@_) { ... }␤»
BenGoldberg r: sub foo { print @_ }; say &foo 00:38
camelia rakudo-parrot e4e862, rakudo-jvm e4e862, rakudo-moar e4e862: OUTPUT«sub foo(*@_) { ... }␤»
00:38 ponbiki_ joined
TimToady r: sub foo { say $^positional; say $:named }; say &foo 00:38
camelia rakudo-parrot e4e862, rakudo-jvm e4e862, rakudo-moar e4e862: OUTPUT«sub foo(Any $positional, Any :named($named)!) { ... }␤»
00:43 thou left, ponbiki_ left
jnthn sleep & 00:52
00:55 kivutar left 00:57 ponbiki_ joined 00:59 daniel-s left 01:05 ponbiki_ is now known as ponpon 01:08 telex joined 01:11 Adriaaan left 01:23 thou joined 01:25 ggherdov left 01:27 eternaleye left, exodist_ joined, eternaleye joined, ggherdov joined 01:35 berekuk left, ashleydev joined 01:48 araujo left 02:04 Sqirrel left 02:05 Sqirrel joined 02:23 jnap joined
TimToady rosettacode.org/wiki/AKS_test_for_primes#Perl_6 03:04
03:05 dayangkun joined 03:09 beastd left 03:13 jnap left 03:30 colomon left 03:33 raiph joined
vendethiel r: my @a = gather for ^10 { take 'a' => [:num($_)]; }; 03:44
camelia rakudo-jvm e4e862: OUTPUT«Nominal type check failed for parameter 'op'␤ in sub METAOP_REDUCE_LEFT at gen/jvm/CORE.setting:16498␤ in block at /tmp/tmpfile:1␤␤»
..rakudo-moar e4e862: OUTPUT«Nominal type check failed for parameter 'op'; expected Any but got Mu␤ in sub METAOP_REDUCE_LEFT at src/gen/m-CORE.setting:16484␤ in block at /tmp/tmpfile:1␤␤»
..rakudo-parrot e4e862: OUTPUT«Nominal type check failed for parameter 'op'; expected Any but got Mu instead␤ in sub METAOP_REDUCE_LEFT at gen/parrot/CORE.setting:16754␤ in block at /tmp/tmpfile:1␤␤»
vendethiel was that syntax removed? 03:45
TimToady std: my @a = gather for ^10 { take 'a' => [:num($_)]; }; 03:55
camelia std 09dda5b: OUTPUT«ok 00:01 130m␤»
TimToady n: my @a = gather for ^10 { take 'a' => [:num($_)]; }; say @a; 03:56
camelia niecza v24-109-g48a8de3: OUTPUT«Unhandled exception: Unable to resolve method as_function in type Any␤ at /home/p6eval/niecza/src/NieczaActions.pm6 line 1985 (NieczaActions.term:reduce @ 11) ␤ at /home/p6eval/niecza/src/STD.pm6 line 3248 (P6.term:reduce @ 36) ␤ at /home/p6e…»
03:56 colomon joined
TimToady n: my @a = gather for ^10 { take ('a' => [:num($_)]); }; say @a; 03:57
camelia niecza v24-109-g48a8de3: OUTPUT«Unhandled exception: Unable to resolve method as_function in type Any␤ at /home/p6eval/niecza/src/NieczaActions.pm6 line 1985 (NieczaActions.term:reduce @ 11) ␤ at /home/p6eval/niecza/src/STD.pm6 line 3248 (P6.term:reduce @ 36) ␤ at /home/p6e…»
TimToady hmm
p6: my @a = gather for ^10 { take ('a' => [ :num($_) ]); }; say @a; 03:58
camelia rakudo-parrot e4e862, rakudo-jvm e4e862, rakudo-moar e4e862, niecza v24-109-g48a8de3: OUTPUT«"a" => ["num" => 0] "a" => ["num" => 1] "a" => ["num" => 2] "a" => ["num" => 3] "a" => ["num" => 4] "a" => ["num" => 5] "a" => ["num" => 6] "a" => ["num" => 7] "a" => ["num" => 8] "a" => ["n…»
TimToady they aren't backtracking correctly when [:num($a)] fails to parse as a reduction operator
putting whitespace bypasses that check
p6: my @a = gather for ^10 { take 'a' => [ num => $_ ]; }; say @a; 04:00
camelia rakudo-parrot e4e862, rakudo-jvm e4e862, rakudo-moar e4e862, niecza v24-109-g48a8de3: OUTPUT«"a" => ["num" => 0] "a" => ["num" => 1] "a" => ["num" => 2] "a" => ["num" => 3] "a" => ["num" => 4] "a" => ["num" => 5] "a" => ["num" => 6] "a" => ["num" => 7] "a" => ["num" => 8] "a" => ["n…»
04:04 thou left
[Coke] TimToady: hio. 04:04
04:10 regreg joined
TimToady o/ 04:13
04:19 btyler joined 04:28 skids left 04:29 skids joined 04:32 btyler left 04:35 skids left, skids joined 05:03 raiph left 05:48 BenGoldberg left 06:06 Sqirrel left 06:17 rurban joined
TimToady .tell smls Revised rosettacode.org/wiki/Brace_expansion#Perl_6 so it now passes all the tests I know about 06:38
yoleaux TimToady: I'll pass your message to smls.
moritz \o 06:42
07:06 darutoko joined
grondilu doesn't understand what 'when :not' means :/ 07:07
07:08 rindolf joined
grondilu well, I can guess, but I don't see why it works 07:08
07:25 rurban left 07:32 SamuraiJack joined 07:45 stevan_ joined
raydiak who should I talk to about work I intend to do on doc.perl6.org? 07:46
07:51 mtk left
raydiak I see moritz mentioned in the readme...ping? 07:53
07:56 rurban joined 08:03 mtk joined
moritz raydiak: pong 08:04
doc.perl6.org is mostly my brain child 08:05
raydiak moritz: is there any specific guidance or input you'd like to give as to where and how search should appear on the homepage?
moritz raydiak: the most important point is that if there is server-side logic involved, it should be easy to maintain 08:06
raydiak also, I see that it is very lean and simple...do you have concerns about adding js & jquery & jquery-ui...eg what are the targeted browsers/clients for support?
nope, I think it's all client-side, as it is now, though I haven't dug in yet 08:07
(adding those dependencies to the root index.html file, I mean)
moritz js & jquery is fine, as long as it's progressive enhancement 08:08
raydiak graceful failure, can do
moritz not sure about jquery-ui, that's a quite a bit heavier
might be OK to use some jquery-ui components, just not the whole thing 08:09
raydiak I can probably rework to not need it, if you'd like, but it's already there in the repo
moritz it is? ok, then go ahead
then I'm probably too late :-)
moritz hasn't done that part :-) 08:10
time to get a bit more sleep&
hoelzro morning #perl6! 08:11
raydiak thanks, I'm all up to speed then; sleep well
good morning hoelzro
hoelzro morning raydiak
08:17 simcop2387 left 08:19 simcop2387 joined 08:21 FROGGS joined
FROGGS morning 08:22
raydiak morning FROGGS
hoelzro morning FROGGS 08:23
FROGGS :o)
what are we going to do today? 08:24
08:24 lawrmcfa joined
raydiak my exciting plan is to...sleep :) g'night #perl6 08:27
hoelzro I'm working on Moar =)
night raydiak
FROGGS gnight raydiak 08:28
08:28 rurban left 08:29 rurban joined 08:38 lawrmcfa left 08:43 FROGGS left
hoelzro noooo 08:49
why did FROGGS disappear?!
08:54 SamuraiJack left 09:01 rurban left 09:02 stevan_ left 09:06 FROGGS joined
timotimo o/ from an IRC client 09:08
hoelzro ahoy timotimo 09:14
09:14 xenoterracide left 09:16 rurban joined 09:21 xenoterracide joined 09:26 virtualsue joined 09:31 xenoterracide left 09:38 itz left 09:44 spider-mario joined
timotimo "Ian Romanick of Intel wrote, "We're absolutely not interested in anything involving LLVM. We've tried, several times, to make it work, and it has always ended with a table-flip-rage-quit."" 09:46
seems like we did the right thing not trying to get rakudo onto llvm
09:50 rurban left
hoelzro a lot of people (well, Rubinius) seem to be trying to leverage LLVM as a JITer 09:51
is dalek's source available somewhere? 09:53
timotimo: are you up for some merging work? =) 09:54
timotimo i ... think so? 09:55
hoelzro timotimo: I just submitted pull requests for Moar and NQP, if you wanna take a look =) 09:56
timotimo oke 09:57
09:57 Adriaaan joined
timotimo it seems like you don't free the strings if the if branch isn't taken 09:57
hoelzro ah, good point. 09:58
PR updated 09:59
dalek p: 991d8db | (Rob Hoelz)++ | t/nqp/19-file-ops.t:
Add test for nqp::link
p: 0284a16 | (Rob Hoelz)++ | src/vm/jvm/runtime/org/perl6/nqp/runtime/Ops.java:
Fix createLink arguments for JVM

They were reversed
p: 321c06d | timo++ | / (2 files):
Merge pull request #157 from hoelzro/op-link

Add test for nqp::link and fix it on the JVM
timotimo if these tests you added succeed, that seems good to me now :)
hoelzro I tested them on each VM =) 10:00
10:00 stevan_ joined
timotimo thank you for your business :) 10:00
hoelzro I'm happy to be helping =)
10:04 virtualsue left 10:05 denis_boyun joined, Rotwang joined 10:12 dmol joined 10:24 virtualsue joined 10:28 stevan_ left, stevan_ joined
dalek p: 5dbaa0a | (Rob Hoelz)++ | t/nqp/19-file-ops.t:
Remove comment on a test I already wrote
10:36
p: 8637caf | (Rob Hoelz)++ | t/nqp/19-file-ops.t:
Add test for nqp::symlink
p: a797a38 | (Rob Hoelz)++ | src/vm/jvm/runtime/org/perl6/nqp/runtime/Ops.java:
Fix argument ordering for JVM symlink
p: e64b18a | (Rob Hoelz)++ | t/nqp/19-file-ops.t:
Skip symlink test on Parrot

STAT_ISLNK is busted on Parrot
p: adbf3d7 | timo++ | / (2 files):
Merge pull request #158 from hoelzro/op-symlink

Add test for nqp::symlink and fix it on the JVM
masak antenoon, #perl6 10:42
timotimo hey masak :) 10:43
masak ah hey hey 10:47
colomon \o 10:57
11:06 Adriaaan left 11:10 stevan_ left, stevan_ joined
jnthn afternoon, #perl6 11:21
masak jnthn! \o/ 11:24
jnthn o/ masak
11:33 berekuk joined 11:37 Adriaaan joined 11:39 regreg left 11:46 sftp_ joined
moritz \o * 11:46
11:48 sftp left
masak *, * 11:54
moritz m: say (*, *).perl 11:55
camelia rakudo-moar e4e862: OUTPUT«(*, *)␤»
moritz what you see is what you get!
masak whatever, whatever... 11:58
walk & 12:01
12:02 Rotwang left
hoelzro is ufo a thing I should work on? 12:23
or is panda or it's at?
or are they just two separate things that have their own uses? 12:24
jnthn hoelzro: I've tended to see Panda as a tool for module consumers, who want to install modules, and ufo as a tool for module developers, who want a makefile for the module they're developing so they can pre-compile it
hoelzro jnthn: ok
then I will continue to spend hackathon time on ufo =) 12:25
12:32 berekuk left
ribasushi what is a usual time to catch TimToady online? 12:35
hoelzro ribasushi: he was on at 15:00 a few days ago 12:36
I think he's 9 hours behind us, though
12:50 berekuk joined 12:56 virtualsue left
hoelzro what's the way to get an object's type in NQP land? 13:00
nqp::gettype, or something?
oh, nm
nvm
nqp::what
13:01 stevan__ joined 13:03 stevan_ left
hoelzro dalek is an instance of botnix, right? 13:29
13:30 denis_boyun left
dalek p: dcc6d47 | jnthn++ | tools/build/MOAR_REVISION:
Bump to a MoarVM with many improvements.
13:31
kudo/nom: 8e44bed | jnthn++ | tools/build/NQP_REVISION:
Bump NQP to get many improvements.
13:32
colomon many improvements++ 13:34
moritz and moarvm build is still <10s here \o/ 13:35
jnthn r: say 13.0 % -4.0 13:36
camelia rakudo-moar e4e862: OUTPUT«1␤»
..rakudo-parrot e4e862, rakudo-jvm e4e862: OUTPUT«-3␤»
jnthn r: say 13 % -4
camelia rakudo-parrot e4e862, rakudo-jvm e4e862, rakudo-moar e4e862: OUTPUT«-3␤»
jnthn r: say 13e0 % -4e0 13:38
camelia rakudo-moar e4e862: OUTPUT«1␤»
..rakudo-parrot e4e862, rakudo-jvm e4e862: OUTPUT«-3␤»
tadzik and it seems to eat about 100 MB of ram (when doing nothing
JimmyZ still can't build nqp on x86 13:40
dalek ast: 01ac512 | jnthn++ | S03-operators/arith.t:
Fix test plan.
13:45
jnthn r: say exp(-1, 2) 13:48
camelia rakudo-parrot e4e862, rakudo-jvm e4e862: OUTPUT«0.5␤»
..rakudo-moar e4e862: OUTPUT«0␤»
moritz JimmyZ: does nqp-m build fail for you, or the other backends too?
r: say 2 ** -1
camelia rakudo-parrot e4e862, rakudo-jvm e4e862: OUTPUT«0.5␤» 13:49
..rakudo-moar e4e862: OUTPUT«0␤»
JimmyZ moritz: I didn't try other backens
moritz moar is known to not work on 32 bit architectures 13:50
nwc10 nqp: say(2 ** -1)
13:50 Ven left
camelia nqp-moarvm, nqp-jvm, nqp-parrot: OUTPUT«0.5␤» 13:50
moritz I have the same problem on the raspberry pi
which is a 32bit ARM
jnthn moritz: Is that a big endian platform? 14:03
14:03 rindolf left, rindolf joined
jnthn spectests a couple of numerics fixes 14:05
colomon is curious about what jnthn is up to 14:13
colomon is also very stumped on his current $work issue
jnthn colomon: Just a little triage of r-m test failures
colomon jnthn++ 14:14
14:16 crab2313 joined
dalek ast: d6faf4f | jnthn++ | S03-operators/precedence.t:
Correct another plan.
14:16
jnthn .tell psch Please be a little more careful to update test plans.
yoleaux jnthn: I'll pass your message to psch.
14:18 kaare_ left
hoelzro is there a way to detect the executable that Perl 6 is running as? 14:24
I thought $?COMPILER would do the trick, but it's NYI, I think 14:25
FROGGS r: say $*EXECUTABLE_NAME
camelia rakudo-jvm e4e862: OUTPUT«perl6-j␤»
..rakudo-parrot e4e862: OUTPUT«./rakudo-inst/bin/perl6-p␤»
..rakudo-moar e4e862: OUTPUT«perl6-m␤»
hoelzro thanks FROGGS
colomon hmmm, seems like one of those answers doesn't fit? 14:30
(one of these things is not like the others, I mean.)
14:36 dbrock__ is now known as dbrock 14:47 rurban joined
rurban hoelzro: FROGGS used to have a bad IRC connection all the time 14:50
FROGGS ?
ahh
no, I just switched the wifi AP
14:53 Rotwang joined
timotimo i'm running benchmark with the new rakudo-moar now 14:56
15:00 jtpalmer joined 15:05 stevan_ joined 15:08 stevan__ left 15:11 LingeringSouls left
nwc10 on x86 Linux 2 days ago I built Rakudo e4e8625db5b666edfb46b0c17762541ec6fa4bdb 15:12
nqp bbb81a1b7c4900cd9f5c514be7787afbebdf0024
and MoarVM 0f72429e5ddd0d5849cbca610f8850644d8800cb (which might be a non master commit) 15:13
so any failure to build on 32 bit is recent
jnthn nwc10: I think it may be specific to x86 Windows. 15:15
nwc10 ah OK oops.
I really can't help there then
masak is jnthn's talk anywhere here? video.fosdem.org/2014/ 15:19
I don't know which room he was in.
hoelzro masak: it would be in video.fosdem.org/2014/K3201/Saturday/ 15:20
yeah, it's there
masak \o/ 15:21
timotimo comparing all rakudos and nqps as well as the smallint-improved moarvm: t.h8.lv/p6bench/2014-02-08-smallint.html
erm 15:22
is it supposed to be much faster at native ints with smallint than with nonsmallint?
oh yay! 15:23
in for_empty and for_bind, moarvm is now faster than even rakudo-jvm until the very end
interesting. it's consistently *slower* with smallint when running trim_string 15:24
dalek p: 023533b | (Rob Hoelz)++ | t/nqp/19-file-ops.t:
Skip symlink test on Windows
15:25
timotimo we're even a tiny bit faster at parse-json, though i'm willing to believe that's inaccurate measuring
jnthn: ^^ 15:26
15:27 beastd joined
jnthn timotimo: Looking 15:29
timotimo jnthn: don't forget you can click on the names on the right side in the box to hide and show individual lines 15:30
15:30 mtk left
timotimo unfortunately, zooming these graphs causes them to just get blurry >_> 15:31
15:34 zakharyas joined, alexghacker left 15:36 mtk joined 15:52 berekuk left 16:03 Psyche^_ left 16:04 Psyche^ joined, raiph joined
timotimo r: "\x1680\x180e\x2000\x2001\x2002\x2003\x2004\x2005\x2006\x2007\x2008\x2008\x2009\x200a\x202f\x205f\x3000" ~~ /\s+/ 16:05
r: say "\x1680\x180e\x2000\x2001\x2002\x2003\x2004\x2005\x2006\x2007\x2008\x2008\x2009\x200a\x202f\x205f\x3000" ~~ /\s+/
camelia ( no output )
rakudo-moar 8e44be: OUTPUT«「 」␤␤»
..rakudo-parrot 8e44be, rakudo-jvm 8e44be: OUTPUT«「 ᠎􏿽xE2􏿽x80􏿽x80􏿽xE2􏿽x80􏿽x81􏿽xE2􏿽x80􏿽x82            」␤␤»
16:14 beastd left
nwc10 HEAD/HEAD/HEAD works for me on x86 debian, so at least (some) 32 bit platforms are happy 16:18
16:24 berekuk joined
vendethiel p6: my @a = gather for ^10 { take 'a' => [ num => $_ ]; }; say @a.perl; 16:25
camelia niecza v24-109-g48a8de3: OUTPUT«["a" => ["num" => 0], "a" => ["num" => 1], "a" => ["num" => 2], "a" => ["num" => 3], "a" => ["num" => 4], "a" => ["num" => 5], "a" => ["num" => 6], "a" => ["num" => 7], "a" => ["num" => 8], "a" => ["num" => 9]].list␤»
..rakudo-parrot 8e44be, rakudo-jvm 8e44be, rakudo-moar 8e44be: OUTPUT«Array.new("a" => ["num" => 0], "a" => ["num" => 1], "a" => ["num" => 2], "a" => ["num" => 3], "a" => ["num" => 4], "a" => ["num" => 5], "a" => ["num" => 6], "a" => ["num" => 7], "a" => ["num" => 8], "a" => ["num" =>…»
vendethiel TimToady++ 16:26
I'd expect an array to not accept duplicate keys, however :p
16:26 thou joined
vendethiel p6: my @a = gather for ^10 { take 'a' => [ num => $_ ]; }; say @a<a>.perl; 16:26
jnthn That's an array of pairs.
camelia rakudo-parrot 8e44be, rakudo-jvm 8e44be, rakudo-moar 8e44be: OUTPUT«Failure.new(exception => X::AdHoc.new(payload => "postcircumfix:<\{ }> not defined for type Array"))␤»
..niecza v24-109-g48a8de3: OUTPUT«Unhandled exception: Cannot use hash access on an object of type Array␤ at <unknown> line 0 (ExitRunloop @ 0) ␤ at /home/p6eval/niecza/lib/CORE.setting line 359 (Any.at_key @ 9) ␤ at <unknown> line 0 (ExitRunloop @ 0) ␤ at /tmp/tmpfile lin…»
16:27 molaf_ joined
jnthn I think you're confusing arrays and hashes. 16:27
vendethiel Oh, it's just hashes in arrays
I'm used to having {} for hashes
16:27 rindolf left
jnthn No hashes, just pairs. 16:29
vendethiel noted 16:30
16:30 molaf left
dalek p/loop-cleanup: c6b76b9 | jnthn++ | src/vm/moar/QAST/QASTOperationsMAST.nqp:
Simplify for code-gen on Moar to not keep results.
16:40
p/loop-cleanup: 89dcd17 | jnthn++ | src/vm/moar/QAST/QASTOperationsMAST.nqp:
Simplify loop code-gen on Moar.

Don't need to keep result type of block at this level; it's not what NQP nor Rakudo need. Means we can convey more void context.
kudo/loop-cleanup: 537cda9 | jnthn++ | src/Perl6/ (2 files):
Add eager and lazy statement prefixes.

For now, lazy does nothing, but it will mean we can write "lazy for
  @x { ... }".
16:42
kudo/loop-cleanup: 9749677 | jnthn++ | src/Perl6/Metamodel/TypePretense.nqp:
Don't rely on unreliable return value.
hoelzro FROGGS: your openpipes impl is segfaulting for me ='( 16:51
16:51 ajr joined
FROGGS :o( 16:51
16:52 ajr is now known as Guest90152
hoelzro I'll see what I can do 16:52
FROGGS hoelzro: can you try to debug it?
I have not time atm to work on that
hoelzro yeah, I'm working on it
just letting you know =)
16:53 Guest90152 is now known as ajr_
hoelzro FROGGS: do you mind if I push a rebased version of your branch to github? 16:54
FROGGS hoelzro: go ahead 16:57
dalek kudo/loop-cleanup: 7f18183 | jnthn++ | src/Perl6/ (2 files):
Make statement-level for @x { ... } always sink.
16:59
raydiak g'mornin #perl6 17:02
hoelzro morning raydiak
raydiak o/ hoelzro 17:04
jnthn o/ raydiak 17:08
raydiak morning jnthn - what sort of awesome-sauce are you cooking up today? :) 17:10
17:11 virtualsue joined
jnthn raydiak: At the moment, working on trying to bring us in line with some spec changes to loops and context that TimToady++ did a couple of months ago that I never got around to getting in place yet 17:11
That should help avoid some accidental performance bugs.
17:11 stevan_ left
jnthn Also improving loop code-gen a bit as a result. 17:11
raydiak \o/ 17:12
dalek ast: 33597bd | jnthn++ | integration/99problems-11-to-20.t:
Update tests for spec'd statement-mod for.
17:17
17:18 regreg joined
dalek kudo/loop-cleanup: 2feef41 | jnthn++ | src/Perl6/Actions.nqp:
Bring statement-modifying for in line with spec.

It now sinks at statement level also.
17:26
kudo/loop-cleanup: 50e6fb9 | jnthn++ | src/core/List.pm:
Fix combinations implementation's use of for.
17:44 thou left
vendethiel what's the diff between `method a { ENTER $in = True; }` and `method a { $in = True; }` ? 17:53
jnthn The second has 6 less useless characters? :) 17:54
ENTER is only really intresting if you're planning to move the first action to do away from the first line, *or* you're doing it as a form of documentation to go with a LEAVE 17:55
vendethiel yeah, second one is why it's used in the advent2012 17:56
17:57 xenoterracide joined 17:58 xenoterracide left 18:05 xenoterracide joined 18:10 virtualsue left
japhb__ FWIW, re: irclog.perlgeek.de/perl6/2014-02-07#i_8250119 and following, I would really like a "Don't tell me about Perl 5 stuff" pragma, however that looks. Warnings, deprecations, errors, whatever. When I'm programming Perl 6, I want to be able to do that without the compiler second-guessing me. The current case is rather like talking to someone in Spanish and having them constantly tell me I need to rephrase because what I said sounded kinda like Fren 18:17
18:19 milfjord joined 18:20 milfjord left
japhb__ raydiak: I've been slowly working through the massive Math::ThreeD PR, and so far what I'm reading seems relatively sane. But it occurs to me -- you have way more time and energy for this project than I, and you've probably written more lines of code by now (maybe way more, I haven't checked). Do you just want to take over the project? 18:23
timotimo japhb__: the reason why i was against making $^A and friends work with no warnings :p5 is that it's not a warning :P 18:26
so it'd still error out
raydiak japhb__: the reason I apologized for "taking the liberty" is I am not sure if there is one single line of your original code left :) I'd be happy to take it over, though I do hope you'll still contribute and advise as time allows 18:27
lue timotimo: use v6 :no-v5 or something like that, perhaps? 18:29
timotimo hmm. maybe.
lue
.oO( use v6; no transition; ...)
18:30
In any case, P6.1 will have the P5 stuff off by default, if it's still around :) 18:31
raydiak japhb__: btw (in case you still intend to finish looking it over) there is a problem with the matrix code, so when you notice it using subscripts wrong and blowing mat44 up to 16x4, it's a known issue and will be fixed today or tomorrow
japhb__ raydiak: No worries. Consider your fork to be the main repo then. When it's ready, you can register it in the ecosystem as such. :-) 18:32
If the time comes that I can contribute something useful again, I'll send you a PR. ;-) 18:33
timotimo japhb__: would you like to discuss perl6-bench subversioning again? 18:34
japhb__ OK. 18:35
timotimo gist.github.com/timo/301073744c9555c79064 - i've reworked my gist slightly
the main problem i see is that there's no sane way to get default values after having done the clone
so i'm thinking of just omitting the default values from the names of the components completely
raydiak japhb__: I'll update meta.info accordingly, then; I look forward to your possible future reveng...uh, PR :) 18:37
japhb__ raydiak: heh 18:38
timotimo: Your current proposal isn't perfect, but I think it's good enough. Would you mind doing the work in a branch first? 18:39
Was anyone else waiting on an answer from me on anything? 18:40
japhb__ is trying to clear his queues
18:41 crab2313 left
timotimo that would be okay 18:42
japhb__ timotimo: thanks
timotimo japhb__: what's your immediate trouble with it? 18:44
japhb__ timotimo: I apologize if my wording sounded harsher than I intended. I meant "Something feels a little hackish here, but I can't immediately see a significant improvement, so I guess I'll just let it simmer in my subconscious for a while." 18:45
"... meanwhile, might as well do an implementation and see if any issues pop up." 18:46
timotimo haha.
that's okay 18:47
18:47 raiph left 18:48 Rotwang left 18:51 Rotwang joined
raydiak japhb__: everything going okay for you? just doing a little pre-spring cleaning? 18:52
18:54 darutoko left
dalek p/loop-cleanup: fc28f76 | jnthn++ | src/NQP/Optimizer.nqp:
Better NQPcode-gen for $int_a < $int_b and similar
18:55
timotimo i asked a friend to fix the audio track of jnthn's talk to make it more bearable 19:03
jnthn
.oO( I'm getting auto-tuned? :) )
19:09
timotimo hah, not quite 19:17
all that needed done was get the *terrible* buzzing down a bit
and there was no miracles to be had, so in parts you'll still hear remnants of the buzzing and nothing of your voice
benabik ++(timotimo's friend) 19:18
timotimo i'm now asking the #fosdem-video people how i get my data to them 19:19
i'm just uploading the file to my own web space now and maybe the fosdem video people will get it 19:22
raydiak you can't just put the words back in with the "filter, enhance, and reconstruct" button like the TV showed me? :) 19:27
timotimo :) 19:30
dalek kudo/wip-openpipe: 71f135f | (Tobias Leich)++ | src/core/control.pm:
pass a decontainerized list to nqp::spawn
19:31
raydiak sorry, my g/f watches a show called "Bones" that drives me nuts every time they show a computer doing...anything 19:36
geekosaur apparently "Bones" pisses off anypne who knows anything about any subject it touches on 19:37
raydiak one of the recent episodes we watched they were trying to build a case against a murderer/hacker who crashed their computers with an *image* of a fractal 19:38
methinks the personal interactions are the only point of the show 19:39
timotimo hah
raydiak oh yeah, and he was spreading viruses to the internet by swapping RFID tags in the books he checked out from the library 19:40
it was almost painful, I had to pull out my laptop and do something less brain-cell-melty 19:41
geekosaur aaand now I am remembering a short story about the consequences of someone discovering a Gödel trap for the human visual system (with about the same level of topical accuracy; they claim it caused insanity, instead of simply not being recognized)
timotimo m) 19:42
raydiak it sounds like they had some degree of experience with insanity... 19:43
timotimo 90% uploaded 19:47
19:55 berekuk left 19:57 rurban left 19:58 berekuk joined, virtualsue joined, Rotwang left 20:02 Rotwang joined
lue I'm not wrong in thinking Nil is /not/ a type, right? 20:02
20:05 rurban joined, Sqirrel joined
timotimo r: class Foobar is Nil {}; say Foobar.new(); 20:05
camelia rakudo-parrot 8e44be, rakudo-jvm 8e44be, rakudo-moar 8e44be: OUTPUT«Nil␤»
timotimo r: class Foobar is Nil {}; say Foobar.^mro; 20:06
camelia rakudo-parrot 8e44be, rakudo-jvm 8e44be, rakudo-moar 8e44be: OUTPUT«Nil Nil (Iterator) (Iterable) (Cool) (Any) (Mu)␤»
20:09 berekuk left
dalek p/loop-cleanup: 042fd4c | jnthn++ | src/vm/moar/QAST/QASTCompilerMAST.nqp:
Better convey immediate block void context.
20:11
kudo/loop-cleanup: 0a9dbae | jnthn++ | src/Perl6/Actions.nqp:
Remove sink forcing; rely on improved code-gen.
timotimo t.h8.lv/Perl_6_what_can_you_do_toda...audio.webm ← mildly less ear-destroying buzzing 20:12
20:14 berekuk joined
masak timotimo++ 20:35
20:40 zakharyas left
lue r: say q<<alive» 20:43
camelia rakudo-parrot 8e44be, rakudo-jvm 8e44be, rakudo-moar 8e44be: OUTPUT«===SORRY!=== Error while compiling /tmp/tmpfile␤Couldn't find terminator >>␤at /tmp/tmpfile:1␤------> say q<<alive»⏏<EOL>␤ expecting any of:␤ argument list…»
lue << is supposed to be texas «, no? 20:44
colomon has to be texas and texas, or not texas and texas -- they come in pairs 20:46
not texas and not texas
you can't mix texas and non-texas, is what I'm incompetently trying to say.
timotimo that'd be my understanding, too 20:47
lue If I can't mingle <<» / «>>, then what's the point of saying you can use the texas version of «/» with bracketing things like Q and #`
timotimo std: say q<<alive»
20:47 kaare_ joined
camelia std 09dda5b: OUTPUT«===SORRY!===␤Couldn't find terminator >> at /tmp/4rpZu92AJI line 1 (EOF):␤------> say q<<alive»⏏<EOL>␤Parse failed␤FAILED 00:01 121m␤» 20:47
colomon lue: I fail to see the contradiction there? 20:48
lue r: say (1,2,3) <<+» (4,5,6)
camelia rakudo-parrot 8e44be, rakudo-jvm 8e44be, rakudo-moar 8e44be: OUTPUT«===SORRY!=== Error while compiling /tmp/tmpfile␤Missing << or >>␤at /tmp/tmpfile:1␤------> say (1,2,3) <<+⏏» (4,5,6)␤ expecting any of:␤ postfix␤ …»
colomon r: say q<<alive>> 20:49
camelia rakudo-parrot 8e44be, rakudo-jvm 8e44be, rakudo-moar 8e44be: OUTPUT«alive␤»
lue colomon: why waste the effort to say "doubling < is actually texas «, not two <" in contexts where they might as well be seen as a doubled-up < ?
colomon r: say q((alive)) 20:50
camelia rakudo-parrot 8e44be, rakudo-jvm 8e44be, rakudo-moar 8e44be: OUTPUT«===SORRY!=== Error while compiling /tmp/tmpfile␤Undeclared routines:␤ alive used at line 1␤ q used at line 1␤␤»
colomon std: say q((alive))
camelia std 09dda5b: OUTPUT«===SORRY!===␤Undeclared routines:␤ 'alive' used at line 1␤ 'q' used at line 1␤Check failed␤FAILED 00:01 126m␤»
lue colomon: don't use parens
std: say q[[alive]]
camelia std 09dda5b: OUTPUT«ok 00:01 122m␤»
colomon std: say q{{alive}} 20:51
camelia std 09dda5b: OUTPUT«ok 00:01 122m␤»
colomon r: say q{{alive}}
camelia rakudo-parrot 8e44be, rakudo-jvm 8e44be, rakudo-moar 8e44be: OUTPUT«alive␤»
FROGGS r: say q「「alive」」
camelia rakudo-parrot 8e44be, rakudo-jvm 8e44be, rakudo-moar 8e44be: OUTPUT«alive␤»
colomon guess there's no point in saying that in that context. 20:52
r: say q<<<alive>>>
camelia rakudo-parrot 8e44be, rakudo-jvm 8e44be, rakudo-moar 8e44be: OUTPUT«alive␤»
colomon r: say q<<<ali>ve>>>
camelia rakudo-parrot 8e44be, rakudo-jvm 8e44be, rakudo-moar 8e44be: OUTPUT«ali>ve␤»
colomon r: say q<<<ali>>ve>>>
camelia rakudo-parrot 8e44be, rakudo-jvm 8e44be, rakudo-moar 8e44be: OUTPUT«ali>>ve␤»
colomon hmmm, guess that is very mildly potentially useful 20:53
lue perlcabal.org/syn/S02.html#User-sel...d_Brackets <-- I think this is what I remember as talking about <<>>
20:53 rurban left
TimToady lue: translating << to « in the input stream would the be sort of lying to itself that P5 does, and P6 doesn't 20:53
colomon lue: I think you're reading it backwards? 20:54
TimToady we just treat <<>> and «» the same in some circumstances
lue colomon: yeah, I just realized I may have misparsed that the whole time :P
TimToady but they are very much distinct delimiters
colomon "Only #` and the q-style quoters (including m, s, tr, and rx) enable subsequent user-selected brackets."
that's when it's NOT texas style.
TimToady in those cases it double angles have no particular meaning 20:55
colomon rgh
right
lue std: say (1,2,3) «+>> (4,5,6)
camelia std 09dda5b: OUTPUT«===SORRY!===␤Missing « or » at /tmp/Ar2VbD02hW line 1:␤------> say (1,2,3) «+⏏>> (4,5,6)␤ expecting infix_circumfix_meta_operator␤Parse failed␤FAILED 00:01 126m␤»
TimToady the desire for that to work smacks of multi-pass parsing 20:56
colomon it's wildly ugly anyway. ;) 20:57
TimToady it would simply be wrong to support it, in any case
lue Of course, but I imagine someone at some point would think it'd work ("after all, << and «, >> and » are equivalent!") ☺
TimToady people think the darndest things... 20:58
lue The best solution is to avoid this whole mess and get rid of << >>, though I suspect it wouldn't be a well-received solution :P
colomon Note that the spec lue cited specifically refers to << … >> as a single construct.
lue++ # thinking about the details 20:59
lue std: say (1,2,3)».foo>>.bar # this is what led me to believe «+>> would work
camelia std 09dda5b: OUTPUT«ok 00:01 126m␤»
moritz doesn't see the connection 21:00
geekosaur doesn't either
moritz after all (1,2,3)».foo>>.bar isn't a single hyper call
lue moritz: hyperop-y things
moritz it's two chained, hyper-y calls
geekosaur ^
they may often be used together but they don't have to be paired
moritz just like you *can* use both <<..>> and «...» in the same expression
m: say <<a b c>> Z~ «x d v» 21:01
camelia rakudo-moar 8e44be: OUTPUT«ax bd cv␤»
lue "If I can mix styles with two uses of hyper, then why not both sides of one hyper?" is what I was thinking
TimToady hyper infixes are required to match in Texasness
lue still wonders where the heck ‹ › is in all this...
TimToady quick, let's give a meaning to *all* the characters
moritz there's only a few 10k of 'em 21:02
lue ‹cooler word lists, naturally› :) 21:03
21:03 dayangkun left
lue not having to parse pairs of < and > as «/» makes finding matching bracket pairs easier, at least. 21:04
dalek p/loop-cleanup: ce92c5b | jnthn++ | src/NQP/Optimizer.nqp:
Unbust build on JVM.
geekosaur ␁does this count too?␄ 21:05
raydiak is not sure if the wisest response is to flee, or start crafting a p6 font 21:07
geekosaur flee, definitely :p
TimToady the two are not mutually exclusive
lue raydiak: no font format can support all of unicode in one file, so you have to flee :(
TimToady it didn't say "all", it said "start" :P 21:08
lue It wouldn't be so much of an issue if font files entertained more/any inter-file interactions, e.g. "attach this part of the diacritic from file1 to this part of the base letter from file2" 21:09
raydiak guess it's "go into hiding and create a new font format and rendering system", then :)
dalek kudo/wip-openpipe: 19fd1dc | (Tobias Leich)++ | src/core/terms.pm:
use "perl6-m.bat" on win32 for use in run()
21:10
p/loop-cleanup: 106ea20 | jnthn++ | src/vm/jvm/QAST/Compiler.nqp:
Simplify JVM for loop code-gen.
lue I think the inertia on making fonts unicode-friendly like I want is that "nobody would need a font that supports *every* character, right?"
geekosaur sure wants one that supports more than his currently does (but that's limited more by client bugs, better fonts than he has do exist) 21:11
dalek kudo/wip-openpipe: 8e44bed | jnthn++ | tools/build/NQP_REVISION:
Bump NQP to get many improvements.
21:12
kudo/wip-openpipe: a5eb73b | (Tobias Leich)++ | tools/build/NQP_REVISION:
Merge branch 'nom' of github.com:rakudo/rakudo into wip-openpipe
raydiak I've been amazed at some of the font limitations I've run into as I started working with unicode
lue I wonder if OTF would be receptive to some sort of "chaining" of files together, for those inter-file interactions that can sometimes be very useful.
raydiak (the linux console is one of the most astounding disappointments) 21:14
lue the linux console is very old :P
raydiak conceded, but it's not like it couldn't be modernized (albeit with perhaps large amounts of effort) 21:15
cooking &
timotimo raydiak: there's something in the works that'll do very well, based on kms. i think it's actually called "kmscon" 21:16
lue investigates kmscon
timotimo last commit 3 months ago :\
last time i tried to get it working didn't pan out so well unfortunately
it would be cool if it supported 256 colors or even 24 bit colors 21:18
21:21 bjz_ joined 21:23 bjz left
raydiak fg 21:23
21:23 rindolf joined, rindolf left
geekosaur bg 21:23
timotimo cgit.freedesktop.org/~dvdhrm/kmscon/ ← apparently this is where development happens now
at least the github repo is referred to as "old github repository" 21:24
raydiak oh good, someone is working on it...I had to imagine I wasn't the only one left in the world who still uses the actual console outside a gui
21:25 bjz_ left, bjz joined 21:27 ajr_ left 21:33 rurban joined
raydiak somewhat OT, but what precisely does it mean when someone puts & at the end of their statement in chat? I'm familiar with the behavior in the shell, but they usually put it after a statement about what they are doing in their foreground while they are not chatting, which makes me wonder if the proper corresponding "back" message is fg or bg 21:36
jnthn raydiak: Typically it implies, "I'm going away for a bit now" 21:37
raydiak am I reading too much into the metaphor? seems like ^z might be more suitable 21:38
and then fg for back, just like the real workflow 21:39
lue --load-explanation='&' & # :) 21:40
raydiak haha :)
geekosaur but ^Z stops it, whereas you can read backscroll when you come back because the chat is still active while you're away 21:41
raydiak ah true
geekosaur (let us run this odd metaphore straight into the ground...)
dalek p/loop-cleanup: 82cd0cb | jnthn++ | src/vm/jvm/QAST/Compiler.nqp:
First part of simplifying JVM loop code-gen.

Gets rid of some decision making and, potentially, an instruction or two per iteration and/or some boxing.
geekosaur *metaphor
lue raydiak: more seriously, the problem is, is that ^Z can be caught and handled differently by the program. & can't. 21:42
raydiak ^zbg^m is so much more clear, though (sarcasm)
I guess the hangup for me is that & only applies when starting the process that you want to be in the background, as opposed to a process which is already running 21:45
as in "good morning & shower" might make sense (but reads a little creepily if you read & as "and") 21:49
lue raydiak: there's your ^Z :) 21:50
raydiak: if you read the /me as a command on the commandline, with the nick as the program name, it'll be easier to get over :) 21:51
raydiak oh, I get it now!
21:51 rurban1 joined
raydiak thank you, I was sure it was something like that I wasn't seeing 21:52
21:52 dayangkun joined, rurban left
raydiak I lurked here for a year or two before I broke down and finally asked what all the "\o" meant...went looking all over for suitable meanings of \o as an escape sequence or something :P 21:53
anyway, I'll stop filling the serene silence with chaotic confusion for now :) 21:54
moritz please continue :-)
raydiak heh...that may be the first time in my life anyone has been bold/foolish enough to say that to me 21:57
21:58 rurban1 left
timotimo libtsm sounds like a nifty thing to have, it implements a virtual terminal state machine 21:59
This is why the TERM variable can be set to xterm-color256 with any TSM based terminal emulator. ← pretty nice 22:00
dalek p: c6b76b9 | jnthn++ | src/vm/moar/QAST/QASTOperationsMAST.nqp:
Simplify for code-gen on Moar to not keep results.
22:03
p: 89dcd17 | jnthn++ | src/vm/moar/QAST/QASTOperationsMAST.nqp:
Simplify loop code-gen on Moar.

Don't need to keep result type of block at this level; it's not what NQP nor Rakudo need. Means we can convey more void context.
p: fc28f76 | jnthn++ | src/NQP/Optimizer.nqp:
Better NQPcode-gen for $int_a < $int_b and similar
p: 042fd4c | jnthn++ | src/vm/moar/QAST/QASTCompilerMAST.nqp:
Better convey immediate block void context.
p: ce92c5b | jnthn++ | src/NQP/Optimizer.nqp:
Unbust build on JVM.
p: 106ea20 | jnthn++ | src/vm/jvm/QAST/Compiler.nqp:
Simplify JVM for loop code-gen.
p: 82cd0cb | jnthn++ | src/vm/jvm/QAST/Compiler.nqp:
First part of simplifying JVM loop code-gen.

Gets rid of some decision making and, potentially, an instruction or two per iteration and/or some boxing.
timotimo oh wow.
that sounds great
raydiak is that related to 'for' being so much slower than 'loop' in some cases? 22:04
jnthn Yeah
Well
The upcoming Rakuod patch also is.
raydiak then I stand by my prior statement on the matter: \o/ 22:05
timotimo if it wouldn't take 3.5h, i'd totally do a full benchmark run again >_>
22:06 virtualsue left
jnthn raydiak: I'm also working on brining the bind lowering stuff on Moar to the JVM too :) 22:06
raydiak: Which should give a performance boost.
timotimo quite.
colomon ooo, brining!
colomon must be nearing nom-time 22:07
raydiak jnthn: I'm not sure what "the bind lowering stuff" does...what will that make faster?
jnthn raydiak: In theory, signature binding. 22:09
vendethiel couldn't you use the github notifs bot instead of daaaaalek ?
IIRC, it's a bit more terse and doesn't get banned :P
raydiak jnthn: ah, so passing/calling faster? that'd be great! 22:10
dalek kudo/nom: 537cda9 | jnthn++ | src/Perl6/ (2 files):
Add eager and lazy statement prefixes.

For now, lazy does nothing, but it will mean we can write "lazy for
  @x { ... }".
71a7a35 | (Tobias Leich)++ | src/core/IO.pm: use openpipe on moar
22:10 dalek left
jnthn raydiak: yeah 22:10
raydiak jnthn++ # I'm sure you don't have enough karma points yet :)
22:11 dalek joined, ChanServ sets mode: +v dalek 22:13 Alina-malina left
vendethiel .karma++ for $chan.members 22:13
22:13 Alina-malina joined 22:14 Alina-malina left
lue vendethiel: OUR CURRENT SYSTEMS ADEQUATELY INTERFACE WITH THE WEBSITE, AND MEET ALL OUR REQUIREMENTS SATISFACTORILY. 22:14
vendethiel sir yes sir ! :D
22:14 Alina-malina joined 22:20 stevan_ joined
lue Bleh, I imagine at some point my p6-mode.el is going to be 10% major mode, and 90% elisp port of perl6/std :P 22:24
kudo/nom: 4a95565 | (Tobias Leich)++ | src/core/control.pm:
pass a decontainerized list to nqp::spawn
kudo/nom: 2c23914 | (Tobias Leich)++ | src/core/terms.pm:
use "perl6-m.bat" on win32 for use in run()
jnthn FROGGS: Guess you're gonna need some revision bumps too? :) 22:25
FROGGS sure, will do in a sec 22:27
timotimo jnthn: at some point i may want to re-do the "turn lexicals to locals" work and this time include locallifetime ops, too. does that sound like a good win? 22:28
it seems to me the register allocator just gives out as many registers as it likes on both parrot and moarvm anyway
jnthn timotimo: It's worth doing locallifetime on other backends...
dalek p: aeaec98 | (Tobias Leich)++ | tools/build/MOAR_REVISION:
bump rev for openpipe() and other fixes
timotimo and it's probably also worth implementing locallifetime on moar :) 22:29
dalek kudo/nom: 1436d8d | (Tobias Leich)++ | tools/build/NQP_REVISION:
bump rev for openpipe() and other fixes
jnthn timotimo: I'd been pondering taking a look at the lexical => local thing also...I think it'll be best done with a little extra infrastructure in the QAST::Var local handling... 22:34
timotimo sounds like a good idea. let me know if you need me to turn a few ideas into a prototype or something :) 22:35
22:38 stevan_ left
timotimo i got a bit disappointed when my first implementation of lexical->local in nqp didn't give any measurable difference in any of our benchmarks 22:40
but that may have been because i didn't emit locallifetime ops to go with the changed variables
jnthn Maybe, but also the NQP optimizer should really learn to flatten away blocks too, when lexical -> local allows it. 22:41
It's more of an enabling optimization...
timotimo ah, flattening out blocks 22:42
yeah, that does seem helpful
it's not going to be a straight copy&paste from rakudo's inliner, is it? :)
jnthn No :)
It can be a lot simpler in NQP I think.
timotimo that's quite a consolation
jnthn The other thing we probably want to then do is turn return into leave...
We may already be able to do that in some places.
timotimo didn't we get that optimization recently? 22:43
or was that only for rakudo?
jnthn Only for Rakudo and only for end of block, iirc
timotimo ah, ok
so the difference would be that it would also work for middle-of-block returns, and could be turned into a regular goto, but would have to not be done if there's a CONTROL block? 22:44
similarly, the current optimization is also not allowed to run if there's a CONTROL block nearby
jnthn Something like...
timotimo hm. another thing: i really kind of wish the peephole optimizer could be prototyped in a HLL, perhaps even NQP 22:46
does that seem feasible?
i seem to recall the actual MAST -> mbc stuff happens in C land 22:47
jnthn It does, but there's no reason you can't do the peephole on the MAST 22:48
timotimo ah, the MAST is similarly flat, isn't it?
jnthn yeah, fairly flat
timotimo sounds good, then.
could someone mention that on wiki.enlightenedperl.org/gsoc2014/ideas? that the peephole optimizer could be written in NQP instead of C and operate on the MAST rather than the plain moarvm bytecode? 22:49
also, somehow the link to Google-at-Home ended up in the rakudo section on Allomorphic Types 22:51
jnthn timotimo: I'm not sure if the peephole thing is a good GSoC task... 22:52
timotimo in that case, could somebody remove it? :P
22:54 rurban joined
timotimo kicked off my benchmark run 22:55
23:05 kivutar joined 23:07 dmol left 23:08 regreg left 23:09 Khisanth joined
timotimo dreams of having a kick-ass terminal UI library for perl6 23:14
maybe i should get started designing.
it could be called "catui", as in "Kick Ass Terminal User Interface" 23:16
well, kiCk Ass Terminal User Interface, really
jnthn
.oO( Can't imagine which animal this one gets as a mascot... )
23:17
raydiak I don't think cats and butterflies play nicely together... 23:18
dalek p/jvmbl: f0c299b | jnthn++ | src/vm/jvm/ (2 files):
Some preparations to support bind lowering on JVM.
p/jvmbl: 30b18e3 | jnthn++ | src/vm/jvm/QAST/Compiler.nqp:
Tweak custom args handling for bind lowering.
timotimo img2.mlstatic.com/catui-lp-vinil_ML...32_527.jpg ← this guy
i'd love to borrow heavily from the way Qt does things 23:20
23:20 spider-mario left
lue timotimo: hopefully not the magic custom preprocessor part though :/ 23:22
timotimo nah, that's not necessary for our purposes 23:25
23:31 colomon left 23:34 stevan_ joined
timotimo by binding libtsm i could conceivably handle embedding any terminal application whatsoever inside a catui program 23:35
that would be pretty neat
23:36 araujo joined 23:38 colomon joined 23:40 btyler joined
raydiak hmmm...is the next screen/tmux-killer written in p6? :) 23:44
timotimo not necessary, tmux is already almost perfect :) 23:45
i don't mind screen disappearing, though.
raydiak I don't even know why I never liked screen, as I barely gave it a chance, but I just went without such things until I discovered tmux 23:47
.oO( maybe it's that pleasing default green border that won me over )
23:48
lue I presently just use more tabs on the terminal emulator :P 23:49
timotimo i heard from a friend that there is a terminal emulator for osx that interfaces directly with tmux or something 23:50
hoelzro timotimo: iTerm2
and I think that claim is exaggerated
timotimo hmm, maybe? 23:51
i might be misremembering, too.
23:54 berekuk left 23:56 stevan_ left
timotimo i'll have benchmarks, soon :3 23:58