»ö« Welcome to Perl 6! | perl6.org/ | evalbot usage: 'perl6: say 3;' or rakudo:, niecza:, std:, or /msg p6eval perl6: ... | irclog: irc.perl6.org/ | UTF-8 is our friend!
Set by sorear on 4 February 2011.
[Coke] TimToady: rt.perl.org/rt3/Ticket/Display.html?id=74492 is asking for a spec repeal. 00:14
[Coke] rakudo: sub foo(:$a, :$b, :$c) {}; foo(:a :b :c) 00:14
p6eval rakudo ef4702: OUTPUT«===SORRY!===␤Unable to parse postcircumfix:sym<( )>, couldn't find final ')' at line 1␤» 00:14
[Coke] rakudo: sub foo(:$a, :$b, :$c) {}; foo(:a, :b, :c)
p6eval rakudo ef4702: ( no output )
[Coke] nom: say NaN.perl 00:18
p6eval nom ef4702: OUTPUT«NaNe0␤»
tadzik nom: sub NaNcat { say NaN x Inf }; NaNcat() 00:20
p6eval nom ef4702: OUTPUT«␤» 00:20
tadzik nom: sub NaNcat { say NaN x 99 }; NaNcat()
p6eval nom ef4702: OUTPUT«NaNNaNNaNNaNNaNNaNNaNNaNNaNNaNNaNNaNNaNNaNNaNNaNNaNNaNNaNNaNNaNNaNNaNNaNNaNNaNNaNNaNNaNNaNNaNNaNNaNNaNNaNNaNNaNNaNNaNNaNNaNNaNNaNNaNNaNNaNNaNNaNNaNNaNNaNNaNNaNNaNNaNNaNNaNNaNNaNNaNNaNNaNNaNNaNNaNNaNNaNNaNNaNNaNNaNNaNNaNNaNNaNNaNNaNNaNNaNNaNNaNNaNNaNNaNNaNNaNNaNNaNNaNN…
[Coke] nom: say 3.perl 00:20
p6eval nom ef4702: OUTPUT«3␤»
japhb Current progress on Str.Numeric() work: gist.github.com/1361357 00:30
lue I'm playing around with Ratel (in Web), and it's trying to play with an %attrs hash that only ever shows up the signature of the render method 00:58
lue whoops, meant to say that Ratel's BUILD submethod is trying to play with the %attrs hash 00:59
dalek odel: 3bd021b | diakopter++ | lua/compiler/LST2Lua.pm:
inline the pcalls, but don't combine them, for a 10% overhead reduction. Omg. I just figured out why I haven't yet been able to combine them.
02:10
dalek odel: 6ec1991 | diakopter++ | lua/compiler/Makefile:
makefile fix
02:57
dalek ecs: 59b0ea5 | util++ | S (6 files):
Fix typos.
04:26
dalek odel: ac8f6f4 | diakopter++ | / (47 files):
revert most of the last week's "progress"
05:25
dalek odel: 442d8d3 | diakopter++ | lua/ (2 files):
remove use of LocalsOptimizer from try.bat; fix off-by-one in DispatchCache.lua (gives 60% reduction in runtime of decrement/compare microbenchmark)
05:35
diakopter jnthn++ (again) for the last one
dalek odel: 37d0e04 | diakopter++ | lua/runtime/ (7 files):
more prep for integer index optimization
05:40
odel: 8e7c66f | diakopter++ | lua/ (2 files):
optimize try/catch/finally some; 40% overall speedup.
odel: bcc2021 | diakopter++ | lua/ (2 files):
reimplement try/catch/finally entirely.
sorear diakopter: ow. I sort of guessed something was up with the dispatch cache, how did it work? 05:42
I mean how did it not work :)
diakopter jnthn found the off-by-one
the cache would never get hit 05:44
diakopter oh well, the rest of the "optimizations" for the week added only another 10% I guess. <bleh> 05:49
dalek odel: 0f6bf67 | jnthn++ | dotnet/runtime/Metamodel/KnowHOW/KnowHOWBootstrapper.cs:
Get KnowHOWs to publish a method cache. ~9% performance improvement in 'loop up to 10 million' benchmark.
05:55
odel: a74f3fa | diakopter++ | lua/runtime/Metamodel/KnowHOW/KnowHOWBootstrapper.lua:
Get KnowHOWs to publish a method cache. ~25% performance improvement in 'loop up to 1 thousand' benchmark. jnthn++
diakopter cherry-picking is fun, ish
diakopter that's enough damage for one day/week. 05:57
&
sorear o/ GlitchMr 07:39
GlitchMr Hello :)
moritz niecza: for 1, 2, 3, 4 -> $x, $y { say "$x|$y" } 07:42
p6eval niecza v11-22-gbebf7a0: OUTPUT«1|2␤3|4␤»
GlitchMr Why I cannot use "-" as filename? 07:51
GlitchMr It was possible to do this in Perl5... 07:51
moritz is that a feature you actually want/need? 07:53
moritz on second thought, the DWIMming on '-' should probably be off by default, so that the defaults are safe 07:59
sorear moritz: I agree 08:27
moritz: more generally, I would say that we should try to keep channels as transparent as possible to avoid suprises
sorear although, there is an argument to be made for providing easy access to $*IN from $*ARGFILES 08:30
I suspect that the need for this stuff has been eroded by shell and kernel improvements 08:31
1987: "myPerlProgram 'ps|'"
2010: "myPerlProgram <(ps)"
sorear hmm. I've spent some hours trying to design a very compact, random access format for unicode property data, but now I'm starting to wonder if random access is even relevant 09:20
the Perl 5 model is to store property data in a non-random-access format and convert it into swashes on first use
moritz what do you want to access by? codepoint? 09:29
sorear right 09:32
muixirt Good morning! 09:35
rakudo: my Int $z; my Int $m; my Int $n; $z = $n*$m 09:36
p6eval rakudo ef4702: OUTPUT«Parameter '' requires an instance, but a type object was passed␤ in method Bridge at src/gen/CORE.setting:2239␤ in sub infix:<*> at src/gen/CORE.setting:2164␤ in block <anon> at /tmp/MwAIu4FbLs:1␤ in <anon> at /tmp/MwAIu4FbLs:1␤»
moritz knows how to fix that
muixirt moritz: yes? 09:37
moritz yes.
sorear .u FBF9
phenny U+FBF9 ARABIC LIGATURE UIGHUR KIRGHIZ YEH WITH HAMZA ABOVE WITH ALEF MAKSURA ISOLATED FORM (ﯹ)
sorear "this is why you shouldn't hardcode limits in your 'na' property compressor" 09:38
moritz -> afk 09:40
aaaargh, mp_get_int only returns 32 bits, even on 64bit platforms 09:45
and it says so right in the docs 09:46
and here I wonder why unboxing an Int fails long before the platform limit is reached :(
muixirt moritz: did you mean you would fix my code snippet or rakudo? 09:47
rakudo: my int $z; my int $m; my int $n; $z = $n*$m 09:48
p6eval rakudo ef4702: ( no output )
tadzik good morning 09:53
muixirt rakudo: my Int $z; my Int $m = 11; my Int $n = 12; $z = $n*$m; say $z 09:57
p6eval rakudo ef4702: OUTPUT«132␤»
muixirt rakudo: my Int $z = 0; my Int $m = 0; my Int $n = 0; for ^3 X ^4 -> $n,$m { $z = $n * $m } 09:59
p6eval rakudo ef4702: OUTPUT«Type check failed in assignment to '$z'; expected 'Int' but got 'Num'␤ in block <anon> at /tmp/i1D8n1bwwm:1␤ in method reify at src/gen/CORE.setting:4007␤ in method reify at src/gen/CORE.setting:3914␤ in method reify at src/gen/CORE.setting:3914␤ in method gim…
muixirt niecza: my Int $z = 0; my Int $m = 0; my Int $n = 0; for ^3 X ^4 -> $n,$m { $z = $n * $m } 10:00
p6eval niecza v11-22-gbebf7a0: OUTPUT«Potential difficulties:␤ $m is declared but not used at /tmp/U3pJ9xVu7M line 1:␤------> my Int $z = 0; my Int ⏏$m = 0; my Int $n = 0; for ^3 X ^4 -> $n␤ $n is declared but not used at /tmp/U3pJ9xVu7M line 1:␤------> my Int $z = 0;…
sorear it would be nifty if we could somehow cap warnings to X chars under p6eval 10:01
muixirt sorear: so what was wrong with my code snippet? 10:29
sorear muixirt: what do you mean?
I can't even tell if it worked or not 10:30
there are so many warnings that the actual output is hiding behind the ...
the declarations of $m and $n are superfluous 10:31
muixirt niecza: my Int $z = 0; for ^3 X ^4 -> Int $n, Int $m { $z = $n * $m } 10:32
p6eval niecza v11-22-gbebf7a0: ( no output )
sorear you don't have any output commands in there
muixirt niecza: my Int $z = 0; for ^3 X ^4 -> Int $n, Int $m { $z += $n * $m }; say $z 10:33
p6eval niecza v11-22-gbebf7a0: OUTPUT«18␤»
sorear looks right to me 10:34
muixirt sorry for the mess 10:35
rakudo: my Int $z = 0; for ^3 X ^4 -> Int $n, Int $m { $z += $n * $m }; say $z 10:36
p6eval rakudo ef4702: OUTPUT«Nominal type check failed for parameter '$m'; expected Int but got Num instead␤ in block <anon> at /tmp/1rH_kYjSTq:1␤ in method reify at src/gen/CORE.setting:4007␤ in method reify at src/gen/CORE.setting:3914␤ in method reify at src/gen/CORE.setting:3914␤ in m…
muixirt hmm...
sorear rakudo: say 3.perl; say 3e0.perl 10:41
p6eval rakudo ef4702: OUTPUT«3␤3e0␤»
sorear rakudo: say (^4).perl
p6eval rakudo ef4702: OUTPUT«0..^4␤»
sorear rakudo: say [^4].perl
p6eval rakudo ef4702: OUTPUT«[0, 1, 2, 3]␤»
sorear rakudo: say [^3 X ^4].perl 10:42
p6eval rakudo ef4702: OUTPUT«[0, 0, 0, 1, 0, 2, 0, 3e0, 1, 0, 1, 1, 1, 2, 1, 3e0, 2e0, 0, 2e0, 1, 2e0, 2, 2e0, 3e0]␤»
sorear rakudo: say [1, 2 X 3, 4].perl
p6eval rakudo ef4702: OUTPUT«[1, 3, 1, 4, 2, 3, 2, 4]␤»
sorear rakudo: say [(^3) X (^4)].perl 10:43
p6eval rakudo ef4702: OUTPUT«[0, 0, 0, 1, 0, 2, 0, 3e0, 1, 0, 1, 1, 1, 2, 1, 3e0, 2e0, 0, 2e0, 1, 2e0, 2, 2e0, 3e0]␤»
sorear rakudo: my @a = ^4; say [@a X @a].perl
p6eval rakudo ef4702: OUTPUT«[0, 0, 0, 1, 0, 2, 0, 3, 1, 0, 1, 1, 1, 2, 1, 3, 2, 0, 2, 1, 2, 2, 2, 3, 3, 0, 3, 1, 3, 2, 3, 3]␤»
sorear nom's X is doing something improper with Range objects
sorear rakudo: say (^4).flat.perl 10:48
p6eval rakudo ef4702: OUTPUT«(0, 1, 2, 3).list␤»
sorear rakudo: say [0 X ^2].perl 10:49
p6eval rakudo ef4702: OUTPUT«[0, 0, 0, 1e0]␤»
sorear rakudo: say [^2 X ^2].perl
p6eval rakudo ef4702: OUTPUT«[0, 0, 0, 1e0, 1e0, 0, 1e0, 1e0]␤»
sorear rakudo: (-> **@lol { say @lol.perl })((^2),(^2)) 10:50
p6eval rakudo ef4702: OUTPUT«LoL.new(0..^2, 0..^2)␤»
sorear rakudo: (-> **@lol { say @lol.elems; say @lol[0].perl; say @lol[0].flat.perl })((^2),(^2))
p6eval rakudo ef4702: OUTPUT«2␤0..^2␤(0, 1).list␤»
sorear rakudo: (-> **@lol { say @lol.elems; say @lol[0].perl; say (@lol[0].flat,).list.perl })((^2),(^2))
p6eval rakudo ef4702: OUTPUT«2␤0..^2␤(0, 1).list␤»
sorear I don't get what's up with X 10:51
nothing in this function appears to be capable of causing Numification
TiMBuS rakudo: say [0 Z ^2].perl 10:52
p6eval rakudo ef4702: OUTPUT«[0, 0]␤»
TiMBuS uh ok 10:53
rakudo: say [^2 Z ^2].perl
p6eval rakudo ef4702: OUTPUT«[0, 0, 1e0, 1e0]␤»
TiMBuS nothins up with X
rakudo: say [0 X, ^2].perl
p6eval rakudo ef4702: OUTPUT«[0, 0, 0, 1e0]␤»
TiMBuS rakudo: say [^2 , ^2].perl 10:54
p6eval rakudo ef4702: OUTPUT«[0, 1, 0, 1]␤»
TiMBuS i used to be able to read --target=pir code =/ 10:56
sorear rakudo: say [^1, ^1].perl
p6eval rakudo ef4702: OUTPUT«[0, 0]␤»
sorear rakudo: say (^5).reify 10:57
p6eval rakudo ef4702: OUTPUT«0 1 2 3 4␤»
sorear rakudo: say (^5).reify.perl
p6eval rakudo ef4702: OUTPUT«(0, 1, 2, 3, 4)␤»
sorear rakudo: say [(^5).reify].perl 10:58
p6eval rakudo ef4702: OUTPUT«[0, 1, 2, 3, 4]␤»
sorear rakudo: say DUMP [1,2,3,4] 11:00
p6eval rakudo ef4702: OUTPUT«▶Array<-2175618081084395398>(:items(▶Mu), :nextiter(ListIter<-2175618081084395424>(:reified(▶Mu), :rest(RPA<-2175618081084395410>(Parcel<-2175618081084387225>(:storage(RPA<-2175618081084387204>(1, 2, 3, 4))))), :list(Array<-2175618081084395398>))))␤»
dalek ecza: 18f7db0 | sorear++ | tools/digest-ucd-xml.pl:
Nth draft of a program to generate compact binary UCD dumps
11:43
sorear output files for the full 6.0.0 UCD are ~600kb, smaller than STD.dll but not as small as I'd like 11:44
1/6 size of original XML; 232k gzip 11:45
curiously the output actually compresses _better_ (by 1%) with gizp than bzip2. xz still wins out by a large margin (139k)
oh, read the wrong number for the first one, actually 483k uncompressed 11:47
sorear sleep
muixirt rakudo: my $string = "1234"; my $type = Num; my $num = $type($string) 12:20
p6eval rakudo ef4702: OUTPUT«Method 'postcircumfix:<( )>' not found for invocant of class 'Num'␤ in <anon> at src/gen/Metamodel.pm:3190␤ in block <anon> at /tmp/UEtvWwj7jI:1␤ in <anon> at /tmp/UEtvWwj7jI:1␤»
muixirt std: my $string = "1234"; my $type = Num; my $num = $type($string) 12:34
p6eval std be1f10e: OUTPUT«ok 00:01 122m␤» 12:35
fsergot Hello! o/ 12:36
dalek p/bigint: 506177f | moritz++ | src/ops/nqp_bigint.ops:
make nqp::isbig_I consistent with set_int and get_int

turns out that set_int and get_int only support 32bit, even on 64bit platforms. While the better fix would be to make them work on 64 bit width, this approach change nqp::isbig_i to return 1 if the stored int takes more than 32bit.
13:43
tadzik 'evening 17:37
colomon o/ 17:39
moritz \o 17:50
japhb o/ #perl6 17:51
tadzik o/ 18:01
dalek p/bigint: bee86c9 | moritz++ | / (6 files):
add platform dependent implementation of set_int and get_int; adjust nqp::isbig_I accordingly
18:17
moritz could somebody on a 32bit machine please build latest nqp branch bigint run this script: gist.github.com/1362443 and paste the output for me? 18:20
sorear good * #perl6 18:36
tadzik hi sorear 18:38
japhb moritz, have you had any takers yet? 18:57
japhb I'll give it a try anyway, I've got a 32-bit box here ... it will just take a while to build. 18:59
moritz no takers yet 19:17
japhb Incoming
Er, supposedly.
tadzik no 32bits here :/
japhb Hmmm. Appears nopaste does not like me today
Ah, could only paste into MAGnet. 19:18
japhb moritz, the paste should be on #parrot now. 19:18
moritz japhb: thanks. Can you please also change $i to 28 (instead of 30) and paste the first 6 lines of the output then? 19:20
japhb moritz, sorry, got pulled away for a bit 19:27
OK, will do.
japhb moritz, OK, paste (of full output, sorry, it's easiest) is in #parrot 19:30
moritz japhb: thanks again
japhb moritz, np, hope it helps
moritz japhb: it does. Unfortunately it tells me that my latest patch is broken on 32bit :/ 19:31
japhb Oh dear.
Ah, wait.
May not be your fault.
I built from rakudo, and it pulled nqp. May not have gotten latest. 19:32
Hold on
moritz the 1 is the output from nqp::isbig_I 19:33
which checks if an integer is too large to unbox to a parrot INTVAL 19:34
when it returns 1 even if it shouldn't then it makes the codgen inefficient
when it returns 0 even if it shouldn't then we lose precision 19:35
japhb :-(
japhb is rebuilding NQP
Ughh, I hate building on slow hardware 19:36
tadzik (don't listen to this, dear laptop! You aren't slow, I hate building anyway)
japhb BTW, that build didn't work: trying again with a fresh configure and --gen-parrot, just in case something's hinky here 19:42
japhb OK, after all that: no change, sorry moritz. 19:53
moritz, anything else you want me to try? 19:54
moritz is out of ideas for the moment 19:59
snearch Hi moritz, just ran your test on 32 Bit nopaste.info/f77fe95f71.html 20:04
moritz snearch: thanks 20:05
moritz swears loudly 20:07
diakopter btw, latest parrot regresses on parrot-nqp; after 3.9.0 there was a change that made parrot-nqp generate wrong pir for the *.pm in nqplua/nqpclr 20:09
I didn't bother reporting it to #parrot since all my other bug reports have gone ignored
benabik diakopter: Wrong how? 20:18
diakopter I got a "could not call method on variable because it's Undef 20:19
"
or something like that
downgrading to 3.6.0 (package in ubuntu) fixed it
benabik Between 3.6 and 3.9, then?
diakopter or after 3.9 20:20
I've used 3.9 on windows and it didn't have the problem
I was using parrot Head
on ubuntu
before downgrading to 3.6.0
benabik So probably 3.9+, but possibly anywhere since 3.6. Fun. 20:21
Where is nqplua?
diakopter diakopter/6model.git
benabik diakopter: I've got a bit of spare time between studying, I'll see what I can track down. 20:22
diakopter I'll see if I can reproduce it with 3.9 on ubuntu
3.9.0 (built from source) didn't have the problem 20:27
sigh. now I can't reproduce it with the same parrot checkout I had the problem with earlier. 20:28
benabik :-(