»ö« 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.
timotimo there are no tests on resumable exceptions yet? 00:06
00:06 pernatiy left
sorear goood * #perl6 00:07
00:08 fgomez joined 00:12 benabik joined 00:15 fgomez left 00:20 fgomez joined 00:22 benabik left, benabik joined, libertyprime left 00:23 libertyprime joined 00:34 thou left 00:35 localhost left 00:37 localhost joined 00:39 skipper joined 00:40 libertyprime left, libertyprime joined 00:47 vlixes left 00:48 jerome_ left 00:51 fgomez left 01:02 jerome_ joined 01:07 libertyprime left 01:08 libertyprime joined 01:18 wolfman2000 joined 01:22 overrosy left, overrosy joined 01:23 cardcha left, havenn left 01:29 wooden left 01:37 liuchong joined 01:48 skipper left 02:13 tokuhiro_ left, tokuhiro_ joined 02:14 whiteknight left 02:18 tokuhiro_ left 02:50 ponbiki joined 03:04 orafu left, orafu joined 03:27 cirne100 joined 03:28 cirne100 left, cirne100 joined 03:49 wooden joined, wooden left, wooden joined 03:59 envi_ left 04:23 thou joined 04:32 ponbiki left
japhb sorear, How do you make use of niecza's 'make aot'-created .so files? 04:33
sorear They should be used automatically 04:40
japhb :-/ 04:43
They don't seem to make more than a marginal difference in niecza's scores in perl6-bench. 04:44
I was hoping to speed up startup time (because right now that's dominant for several of the tests), but no such luck that I could see. 04:45
sorear Is perl6-bench a startup time benchmark?
japhb github.com/japhb/perl6-bench
sorear are you using sgen?
japhb The first several tests end up dominated by startup for niecza, because they are trivial tests. But even when runtime starts to be visible, as a percentage of total time, startup is still a fair percentage. 04:46
yes, running it as 'mono-sgen run/Niecza.exe'
It takes ~2s on my box to do: mono-sgen run/Niecza.exe -e '' 04:48
sorear How did you run make aot?
japhb As literally that: make aot
After having done just 'make' last night.
sorear sgen/not changes code generation; aot .so files created by "mono" are not usable by "mono-sgen" or vice versa
japhb OH! 04:49
sorear IME sgen+aot doesn't work very well in general - I blame the fact that corlib.dll.so is generated for non-sgen
japhb hmmm, how do I make it so Niecza always compiles and runs with sgen then?
sorear non-sgen will usually start faster
export MONO_ENV_OPTIONS=--gc=sgen 04:50
japhb and then 'make clean; make; make aot' ?
japhb goes ahead and tries it/ 04:52
sorear yea
04:57 kaleem joined 05:02 colomon left
japhb That did help, cutting ~ .5s off startup, right now at 1.58s for -e '' 05:03
For comparison, Rakudo is currently running at 0.40s for the same test ... and perl5 is 3-4ms. :-) 05:04
I must say, it really is quite astonishing how fast perl5 starts up. 05:05
sorear the comparison was more favorable before jnthn committed a bunch of BS changes...
japhb I thought niecza had BS as well at this point? Or is that still in the design phase? 05:06
sorear japhb: I think you mean, it really is quite astonishing how slow all the current p6es are
yes, niecza has had BS for a while
05:09 NamelessTee joined
japhb Well, yes, the p6's do have crazy-slow startup ... but I really did mean I was astonished by the startup of perl5. It's not exactly a small language, and yet the total number of CPU cycles to spawn, startup, and exit a perl5 process can't be more than 6-7 million cycles. And on an old 32-bit CPU, that's *maybe* 10 million instructions. Way better than I expected, when I think about everything that has to happen to result in a full Perl 05:10
5 environment.
sorear perl 5 is written in C 05:11
perl 5 doesn't have a setting
perl 5 uses a yacc, which seems to be a much better choice for speed than anything based on p6rules can ever hope to be 05:12
05:19 birdwindupbird joined
japhb Let me turn this around -- if you think about the time to start one of the other dynamic languages from the same "generation" as perl5, they take much longer to start up. For example, python takes about 10x as long as perl5 to run a null program, and even ruby takes 2.5-3x as long. 05:19
sorear I usually consider ruby as a member of our generation 05:20
japhb shrugs -- call it a half generation.
Point being, perl5 is no slouch in the speed department. And this box is even running an old 5.10.1. 05:21
But guiding this back to a current topic, anything else I can do (from the "outside") to get niecza startup faster? 05:22
moritz o/
sorear o/ moritz 05:23
japhb: faster cpu? games with undump/cryopid? :D
japhb :-P 05:24
Out of curiosity, do you happen to know how much of that time is just mono itself launching a new "session"?
sorear mono seems to initialize itself lazily - a "hello world" program which touches very little of corlib loads very quickyl 05:25
I suspect that there are some major bottlenecks in niecza's thaw routines, but niecza's thaw routines are a single recursion SCC and the mono profile is useless with mutually recursive functions 05:26
05:30 havenn joined 05:32 sftp left
japhb sorear, do you mean that mono is exceedingly slow and/or space-wasteful at handling mutual recursion? 05:35
05:37 thou left
sorear japhb: I mean that the mono profiler produces useless data when the program is mutually recursive 05:41
bonsaikitten japhb: python has a pretty sucky startup that does ~1k stat() (afair) 05:48
it's a good example how not to do things
moritz b: say $*PERL 05:51
p6eval b 1b7dd1: OUTPUT«name rakudo␤version 2011.07-2-g1b7dd12␤␤»
05:56 cardcha joined
cardcha Hi 05:56
tadzik hello
cardcha Anybody wanna see my irc bot
moritz is it written in Perl 6? what does it do? 05:57
cardcha I write it in perl and then ported it to python
It annoys you basically
05:57 NamelessTee left
moritz then I don't want to see it 05:57
05:57 LOLSOME joined
cardcha awww 05:58
LOLSOME LOLOLOL That's what she said LOLOLOLOL
cardcha It wont log in
LOLSOME LOLOLOL That's what she said LOLOLOLOL
moritz cardcha: please remove it right now
LOLSOME LOLOLOL That's what she said LOLOLOLOL
cardcha I guess it knows that somebody from this ip is already logged in
LOLSOME LOLOLOL That's what she said LOLOLOLOL
cardcha OMG
LOLSOME LOLOLOL That's what she said LOLOLOLOL
cardcha it worked
LOLSOME LOLOLOL That's what she said LOLOLOLOL
05:58 ChanServ sets mode: +o moritz
cardcha its super annoying 05:58
LOLSOME LOLOLOL That's what she said LOLOLOLOL
05:58 moritz sets mode: +b *!*LOLSOME@*.nc.res.rr.com, LOLSOME was kicked by moritz (cardcha ))
tadzik :/ 05:58
05:58 moritz sets mode: +b *!*4bb643fb@*.75.182.67.251, cardcha was kicked by moritz (cardcha)) 05:59 moritz sets mode: -o moritz
moritz and I thought purl was annoying 06:00
sorear *sigh* 06:01
derrazo criminy 06:02
06:14 wtw joined
moritz n: :16(12) 06:16
p6eval niecza v16-8-gb4b916a: OUTPUT«Unhandled exception: Numbers may not be passed :base(); if you wanted to render the number in the given base, use $number.base($radix); if you want to treat the number as a string, explicitly coerce it first␤ at /home/p6eval/niecza/lib/CORE.setting line 13…
06:21 araujo left 06:23 xinming_ left, cosimo left, alvis``` left, broquaint left
moritz r: my $x = 'foo'; say ":{$x}()" 06:31
p6eval rakudo 018b27: OUTPUT«:foo()␤»
dalek ecza: e08dd76 | sorear++ | lib/ (3 files):
Implement universal hashing for niecza hashes

It appears to be a few percent slower than the builtin string.GetHashCode, but proof against hash-based algorithmic complexity attacks is hard to replace...
06:41
sorear has anyone proven a collision probability bound for Parrot's hashes? :> 06:45
japhb bonsaikitten, ouch (re: ~1k stats at python startup) 06:52
sorear, understood (re: mono profiler fail)
bonsaikitten japhb: the module system ... it causes multiple hits
japhb: does foo exist in SITEDIR, local dir etc.? does foo.pyc / .pyo exist? timestamp? 06:53
that and the sucky stdlib behaviour cause >200 module loads with this rather stupid startup hit
sorear I think Unix would really benefit from a multistat() system call 06:57
pass a list of 1000 names into the kernel 06:58
japhb bonsaikitten, Ah, I was about to ask if even an empty program would load a bunch of implicitly required modules ...
moritz p6: say :16('0d')
japhb sorear, not a bad idea, that.
p6eval rakudo c24b2f: OUTPUT«missing digits after radix prefix␤ in method gist at src/gen/CORE.setting:8137␤ in sub say at src/gen/CORE.setting:6240␤ in block <anon> at /tmp/rNOVqmWYT5:1␤␤»
..pugs, niecza v16-8-gb4b916a: OUTPUT«13␤»
sorear only incur syscall overhead once... the underlying namei calls are probably pretty cheap, especially if they hit on the dentry cache
moritz eeks
bonsaikitten japhb: I think you could shrink that down, but no one cared enough yet
japhb Though it might encourage even worse behavior by developers that think stats are free ...
moritz p6: say :16(('0d10') 06:59
p6eval niecza v16-8-gb4b916a: OUTPUT«===SORRY!===␤␤Unable to parse parenthesized expression at /tmp/6fkVMV00dX line 1:␤------> say :16(⏏('0d10')␤Couldn't find final ')'; gave up at /tmp/6fkVMV00dX line 1 (EOF):␤------> say :16(('0d10')⏏<EOL>…
..pugs: OUTPUT«*** ␤ Unexpected ":16"␤ expecting "::"␤ at /tmp/mVakSkGA1L line 1, column 5␤»
..rakudo c24b2f: OUTPUT«===SORRY!===␤Malformed radix number␤at /tmp/GoXvHtMRLa:1␤»
moritz p6: say :16('0d10')
p6eval pugs, niecza v16-8-gb4b916a: OUTPUT«3344␤»
..rakudo c24b2f: OUTPUT«10␤»
moritz rakudo is ETOOMAGIC 07:00
it recognizes 0d as a prefix for 'decimal'
sorear really likes the correctness proof for the hash algorithm ey just used 07:03
07:05 wolfman2000 left
moritz sorear: now you just need to proof that you actually implemented that algorithm :-) 07:16
sorear moritz: I don't have time to prove the denotational semantics of C# under mono/mcs 07:17
:D
07:18 jerome_ left
moritz :-) 07:19
07:23 derrazo left
moritz is now fixing LWP::Simple 07:23
tadzik ++moritz 07:26
moritz t/getstore.t hangs and t/parse-url.t exposes the same problem that I TODOed in URI.pm 07:27
apart from that, all else is fixed
tadzik nice 07:29
on what does getstore hang, writing to a file?
moritz no, reading the file :(
tadzik if so, it may be that it's just terribly slow :) Panda needs eons to copy itself from location to location too
ah, that's different
moritz $ wc tmp-getstore-17939 25 84 1054 tmp-getstore-17939 07:30
so, it's ridicolously small
and still it hangs
tadzik not that big, indeed
07:31 jerome_ joined 07:32 tadzik is now known as Smerf_Maruda, Smerf_Maruda is now known as tadzik
moritz oh 07:33
seems that for $fh.lines hangs if the $fh is not terminated by \n
07:36 fglock left, fglock joined
moritz ok, TODOed the last failing test 07:38
but all in all, LWP::Simple seems to work again. \o/
tadzik yay!
07:38 havenn left
moritz (that is, if you use my copy of URI.pm; pull request to the official one sent) 07:38
oh, and you can't use the precompiled URI/Escape.pir 07:39
if you do, it tries to call method capture on a Method
no idea why :(
eeks 07:40
07:41 pernatiy joined
tadzik still better than SVG::Plot :) 07:41
this one segfaults when used precompiled
there's something wrong with modules precompilation
moritz gist.github.com/2248944 # that's eeeks
why does it FAIL TO OPEN THE FILE if the file doesn't have a trailing newline? 07:43
tadzik eek
wtf
and if it does, why does slurp() work?
moritz hm 07:44
I guess it doesn't really fail to open the file, but it fails at error reporting
tadzik cannot reproduce, btw
moritz if you look closely at the backtrace, you see that method 'get' calls method 'open'
so it tries to re-open the file (?) and fails. It's not the first open() that fails 07:45
tadzik yeah, it fails only when I add .say
sorear moritz: Will rakudo build on a 1G 32-bit machine? 07:52
moritz sorear: I think so
sorear yay 07:53
moritz sorear: building the setting takes about 1.2G on 64bit
sorear tomorrow I'll get a working rakudo here for testying
moritz \o/
07:55 bacek_ left, lestrrat left 07:56 lestrrat joined, dolmen joined
sorear -> sleep 07:57
07:57 xinming_ joined, cosimo joined, alvis``` joined, broquaint joined, fglock left, fglock joined 07:58 mj41 joined
tadzik g'night sorear 08:00
08:00 _dolmen_ joined 08:01 dolmen left 08:02 _dolmen_ left, dolmen joined 08:04 dolmen left, dolmen joined 08:09 daxim joined 08:27 mcero joined 08:29 fhelmberger left
dalek ast: 1fa3c37 | moritz++ | S16-filehandles/io.t:
$fh.lines if the file has no trailing newline (RT #112130)
08:29
08:46 mj41 left 09:27 kst left, mj41 joined 09:31 jerome_ left 09:34 mj41 left 09:49 mj41 joined, jerome_ joined 10:06 liuchong left 10:07 bacek_ joined 10:09 Trashlord joined 10:19 havenn joined 10:30 havenn left 10:33 lestrrat left 10:35 lestrrat joined, NamelessTee joined 10:51 tarch joined 10:58 araujo joined, araujo left, araujo joined 11:12 daxim left 11:26 cirne100 left 11:27 cirne100 joined 11:28 daxim joined 11:32 stef___ joined, stef___ left 11:35 stef___ joined 11:43 mcero left 11:46 fhelmberger joined 11:49 colomon joined 11:51 NamelessTee left 11:52 skids left 12:00 stef___ left 12:03 derrazo joined 12:04 jaldhar left 12:05 stef___ joined 12:16 leprevost joined 12:19 stef___ left 12:20 stef___ joined 12:25 icwiener joined 12:28 sftp joined
pmichaud perl6: say +:8("0d10") 12:31
phenny pmichaud: 29 Mar 07:12Z <moritz> ask pmichaud to please change the hostname of the notification URLs of the rakudo/rakudo and rakudo/star repos to feather3.perl6.nl
p6eval rakudo 3d7cc4: OUTPUT«malformed radix number, expecting '>' after the body␤ in method Numeric at src/gen/CORE.setting:8130␤ in sub prefix:<+> at src/gen/CORE.setting:2148␤ in block <anon> at /tmp/2UZPwOMecO:1␤␤»
..niecza v16-9-ge08dd76: OUTPUT«10␤»
..pugs: OUTPUT«840␤»
moritz perl6: say :8<d> 12:33
p6eval pugs: OUTPUT«13␤»
..niecza v16-9-ge08dd76: OUTPUT«Unhandled exception: Digit <d> too large for radix 8␤ at /home/p6eval/niecza/boot/lib/CORE.setting line 1366 (die @ 3) ␤ at /home/p6eval/niecza/src/NieczaActions.pm6 line 142 (from_base @ 15) ␤ at /home/p6eval/niecza/src/NieczaActions.pm6 line 183 (Niecz…
..rakudo 3d7cc4: OUTPUT«===SORRY!===␤Invalid character 'D' in number literal␤»
moritz that's the proper response (from rakudo and niecza)
pmichaud we need to put some of the magic back, though.
moritz pmichaud: I'm not sure we need to
pmichaud :8("0d10") should be 10
moritz no, that's totally insane
pmichaud at least according to current S02
moritz then S02 needs to change 12:34
pmichaud I'm sure that change needs to be reviewed with TimToady++ then
moritz it would mean that :16('0d10') is either ambiguous, or behaves quite differently from :08('0d10')
pmichaud it behaves differently, yes. S02 explicitly says so.
moritz if one wants 0d to mean decimal, .Numeric works fine 12:35
pmichaud one might not know the content of the string beforehand, though.
moritz right. That's why it's important for the :base() forms to behave consistently 12:36
pmichaud S02:3313
moritz this looks like a fossil to me 12:37
pmichaud why is that?
moritz because that's what p5's hex() function does
wait
no
[Coke] ho, pmichaud. 12:38
moritz re-reads the whole paragraph
wait, is :16 special-cased?
pmichaud yes.
moritz so :17('0d10') returns 10?
or does the spec forbid any bases except 2, 8, 10, 16?
p6: say :17('ab') 12:39
p6eval pugs, rakudo 3d7cc4, niecza v16-9-ge08dd76: OUTPUT«181␤»
moritz p6: say :17('0d10')
p6eval pugs, rakudo 3d7cc4, niecza v16-9-ge08dd76: OUTPUT«3774␤»
pmichaud std: say :17('0d10')
p6eval std 5740094: OUTPUT«ok 00:01 109m␤»
moritz anyway, my primary reason for changing that was a very real-world bug
pmichaud I agree that Rakudo had the :16 case wrong. 12:40
moritz LWP::Simple used :16() for converting hex chunk lengths
*uses
and that would barf when the hex string started with 0d
pmichaud Yes, that was a Rakudo bug.
moritz but specialcasing 16 also feels Very Wrong
pmichaud But the other forms (at least :2, :8, and :10) should still allow the "0x" forms. 12:41
at least as the spec is written today.
12:41 GlitchMr joined
moritz well, I can see two possible solutions that make sense to me: 12:41
1) we allow '0x', '0b' etc. for bases < 10 12:42
pmichaud well, <= 10
moritz 2) we remove the magic entirely, and rely on .Numeric for that kind of magic
pmichaud: right
the current wording is just insane
pmichaud although I can argue that 0x should still work even for :16 12:43
and 0o also.
3) '0x' etc work as long as the second character isn't a valid digit in the default base
moritz 4) we allow a default :$base on Str.Numeric 12:44
pmichaud I don't see how 4 departs from what we have now, though.
moritz 4) would be the addition to 2) to make the feature available for those who want it 12:45
pmichaud oh, then :$base on Str.Numeric would force a base, not set a default.
perl6: say +"0x10" 12:46
p6eval pugs, rakudo 3d7cc4, niecza v16-9-ge08dd76: OUTPUT«16␤»
pmichaud perl6: say "0x10".Numeric
p6eval rakudo 3d7cc4, niecza v16-9-ge08dd76: OUTPUT«16␤»
..pugs: OUTPUT«*** No such method in class Str: "&Numeric"␤ at /tmp/6i6UdAcGhx line 1, column 5 - line 2, column 1␤»
dalek ast: 3dab5c0 | moritz++ | S32-exceptions/misc.t:
RT #112056
12:47
moritz I'll go with 1) now, because it's easy and mostly compatible with the wording of the spec
pmichaud be sure to review the spec change with TimToady++, too :) 12:48
moritz ok
pmichaud: have you already changed the post-commit hook URLs on github.com/rakudo/* ? 12:49
pmichaud not yet, will do that momentarily
moritz great
pmichaud which url should I change? there are three. 12:50
moritz those that have host04.appflux.net (or so) as the host name 12:51
I don't have admin access, so I don't even know what kind of post-commit hooks we have :-)
pmichaud currently we have 12:52
host04.appflux.net:5000/dalek?t=fre...net,parrot
timtowtdi.org:3333/ 12:53
new.leto.net:3000/hook/
moritz the first one should change to feather3.perl6.nl:5000/dalek?t=free...net,parrot
the second can be removed, the domain doesn't exist anymore
pmichaud okay, changed the rakudo repo 12:54
changed the star repo to: feather3.perl6.nl:5000/dalek?t=freenode,perl6
moritz pmichaud++ 12:55
pmichaud (star repo had only one hook)
12:58 stef___ left 12:59 kaleem_ joined 13:00 kaleem left 13:04 stef___ joined
moritz wow, qconlondon.com/dl/qcon-london-2012/...Beyond.pdf mentions a Meta Object Protocol as an idea for JDK 9 13:20
[Coke] we're still struggling to roll out 7 here. ;) 13:21
13:31 skids joined 13:32 PacoAir joined
dalek kudo/nom: dab5893 | moritz++ | src/core/Str.pm:
make unbase moderately magic again

This now allows 0x and 0o in :16(), but 0d is correctly interpreted as a hex byte, not a prefix for decimal. pmichaud++
13:34
ast: 6b41ab3 | moritz++ | S02-literals/radix.t:
test :16("0d...")
13:36 tarch_ joined, tarch left 13:56 stef___ left 13:59 fsergot joined, fsergot left, fsergot joined
fsergot Hi #perl6 o/ 13:59
moritz \o fsergot 14:00
tadzik o/
14:09 tokuhiro_ joined, stef__ joined 14:10 kaleem_ left
moritz nom: sub f { ... 'foo' }; say f 14:11
p6eval rakudo dab589: OUTPUT«foo␤ in method gist at src/gen/CORE.setting:8140␤ in sub say at src/gen/CORE.setting:6244␤ in block <anon> at /tmp/PJ8cD_HUAT:1␤␤»
moritz nom: sub f { !!! 'foo' }; say f
p6eval rakudo dab589: OUTPUT«foo␤ in sub f at /tmp/dGSFsdyhdi:1␤ in block <anon> at /tmp/dGSFsdyhdi:1␤␤»
moritz nom: sub f { ??? 'foo' }; say f
p6eval rakudo dab589: OUTPUT«foo␤0␤»
moritz \o/ we can close the third oldest ticket in RT once we write tests for them 14:12
dalek ast: 903dffc | moritz++ | S32-exceptions/misc.t:
test that stubby exception generators can take an argument
14:17
moritz r: macro doit($w) { quasi { say $w, $w } }; doit 'foo' 14:19
p6eval rakudo dab589: OUTPUT«AST.new()AST.new()␤»
moritz I'd need hole for that, right?
r: enum A <b c d>; say A(1) 14:21
p6eval rakudo dab589: OUTPUT«c␤»
moritz r: role A { has $.io handles <say> }; class B does A { }; A.new(io => $*OUT).say: 'foo' 14:23
p6eval rakudo dab589: OUTPUT«foo␤»
tadzik hole? 14:25
I assume you'll need say {{{$w}}}, {{{$w}}}
moritz yes, that's what I mean by holes
tadzik right. That's how I understand it
dalek ast: 931b743 | moritz++ | S12-enums/thorough.t:
clean up enum tests a big, refudge for rakudo
14:36
kudo/nom: 5793035 | moritz++ | t/spectest.data:
run t/spec/S12-enums/thorough.t
14:37
14:41 kaare_ joined 14:51 thou joined 14:53 thou left 15:01 havenn joined 15:03 fhelmberger left 15:04 fhelmberger joined, birdwindupbird left 15:05 birdwindupbird joined 15:06 BruceZu joined 15:11 havenn left 15:12 havenn joined 15:17 tokuhiro_ left, derrazo left, tokuhiro_ joined 15:18 birdwindupbird left 15:20 MayDaniel joined
timotimo does ($a, $b) .= reverse work because reverse has the arguments set to "is rw"? same thing for @a[1, 2] .= reverse? 15:20
15:23 havenn left, havenn joined 15:24 tokuhiro_ left 15:25 cosimo left 15:28 tokuhiro_ joined 15:32 tokuhiro_ left 15:35 havenn left, havenn joined
bbkr jnthn: i've managed to connect to libGeoIP with NativeCall :) the only issue is that I have to provide full path to dylib - is native('/opt/local/lib/libGeoIP.dylib') - because it search for .bundle without that 15:36
15:36 icwiener left 15:37 icwiener joined, tyatpi joined 15:39 NamelessTee joined 15:40 wtw left
moritz timotimo: ($a, $b) .= reverse desugars to ($a, $b) = ($a, $b).reverse 15:42
timotimo: so reverse is really not special, and the = does ordinary list assignment 15:43
timotimo: @a[1, 2] requires .[ ] to mark the return values as rw though
sjohnson perl6: say "happy pig".reverse
p6eval pugs: OUTPUT«gip yppah␤» 15:44
..rakudo 579303: OUTPUT«happy pig␤»
..niecza v16-9-ge08dd76: OUTPUT«Unhandled exception: Unable to resolve method reverse in class Str␤ at /tmp/bqct8eiWyY line 1 (mainline @ 2) ␤ at /home/p6eval/niecza/lib/CORE.setting line 3838 (ANON @ 3) ␤ at /home/p6eval/niecza/lib/CORE.setting line 3839 (module-CORE @ 65) ␤ at /home…
sjohnson that's nice
no need for taht 'scalar' thing like in p5
hmm.. how come it didn't reverse on rakudo?
15:46 havenn left, havenn joined 15:47 Psyche^ joined
[Coke] perl6: say "happy pig".flip 15:49
p6eval pugs: OUTPUT«*** No such method in class Str: "&flip"␤ at /tmp/78Wt0AATKo line 1, column 5 - line 2, column 1␤»
..rakudo 579303, niecza v16-9-ge08dd76: OUTPUT«gip yppah␤»
[Coke] because that's one of the changes from p5. 15:50
reverse is for lists, flip is for strings.
15:51 Patterner left, Psyche^ is now known as Patterner 15:52 fglock left 15:58 tarch_ left, tarch_ joined 16:00 fsergot left 16:03 havenn left, havenn joined
TimToady and hyper flip is for lists of strings :) 16:12
moritz p6: say <happy pig>».flip 16:13
p6eval rakudo 579303, niecza v16-9-ge08dd76: OUTPUT«yppah gip␤»
..pugs: OUTPUT«*** No such method in class Array: "&>>flip"␤ at /tmp/2tfyMS3N00 line 1, column 5 - line 2, column 1␤»
sjohnson what does the >> do? 16:20
p6: say <cow pig chicken>.WHAT
p6eval rakudo 579303, niecza v16-9-ge08dd76: OUTPUT«Parcel()␤»
..pugs: OUTPUT«Array␤»
sjohnson ahh i get it
6: say <happy pig>.flip 16:21
p6: say <happy pig>.flip
p6eval rakudo 579303, niecza v16-9-ge08dd76: OUTPUT«gip yppah␤»
..pugs: OUTPUT«*** No such method in class Array: "&flip"␤ at /tmp/Vxc_s0xqXI line 1, column 5 - line 2, column 1␤»
sjohnson p6: say <happy pig>».WHAT
p6eval niecza v16-9-ge08dd76: OUTPUT«Str() Str()␤»
..rakudo 579303: OUTPUT«Parcel()␤»
..pugs: OUTPUT«StrStr␤»
sjohnson mindblowing technology!
once perl6 becomes installed on Ubuntu systems by default, I'll have a lot of p6 learning to do 16:25
sjn sjohnson: try learning it earlier, and help make it happen that perl6 becomes installed on Ubuntu systems by default :) 16:26
sjohnson: you know to solve that particular chicken & egg problem 16:27
sjohnson still learning a lot of stuff about p5 !
16:38 lichtkind joined 16:42 bbkr left, derrazo joined, daxim left
moritz rakudo: enum A <a b c>; enum B <a b c>; say c.perl 16:45
p6eval rakudo 579303: OUTPUT«B::c␤»
moritz r: say Int() 16:46
p6eval rakudo 579303: OUTPUT«0␤»
16:48 dolmen left 16:49 zipf joined 16:54 icwiener left, icwiener joined 16:56 derrazo left 16:57 spider-mario joined 17:00 dalek left, fsergot joined, dalek joined, ChanServ sets mode: +v dalek, hugme left 17:04 lichtkind left 17:16 zipf left
dalek ast: aa81a8b | moritz++ | S13-type-casting/methods.t:
RT #72834
17:16
moritz rakudo: say 0xFFFFFFFFFFFFFFFF 17:18
p6eval rakudo 579303: OUTPUT«18446744073709551615␤»
17:20 hugme joined, ChanServ sets mode: +v hugme
dalek ast: 0954436 | moritz++ | S02-types/num.t:
RT #73238: 0xFFFFFFFFFFFFFFFF overflowed to -1
17:20
moritz rakudo: 0 but last 17:22
p6eval rakudo 579303: OUTPUT«last without loop construct␤ in block <anon> at src/gen/CORE.setting:303␤ in block <anon> at src/gen/CORE.setting:359␤ in block <anon> at /tmp/PVHJSBPf6h:1␤␤»
17:22 fhelmberger left 17:23 mj41 left, stef__ left 17:29 icwiener left, icwiener joined 17:31 Vlavv` joined 17:34 Vlavv_ left 17:37 icwiener left, icwiener joined 17:51 birdwindupbird joined 17:54 colomon left 17:56 tarch_ left, mj41 joined 18:04 Chillance joined, hugme left, d4l3k_ joined, dalek left 18:05 Juerd left, Juerd joined, d4l3k_ is now known as dalek 18:06 hugme joined, ChanServ sets mode: +v hugme 18:12 colomon joined
sorear good * #perl6 18:16
18:18 snearch joined
diakopter o/ 18:20
sjohnson sorear: hi
diakopter: :)
sorear o/ diakopter , sjohnson 18:24
sjohnson perl's been rocking my world as of late 18:25
18:25 fgomez joined 18:27 icwiener left, icwiener joined
moritz discovers less -R 18:28
sjohnson sjohnson@web1:~/http$ type -a less 18:32
less is aliased to `less -i -R'
i forgot what that did back then, but now I remember: colours!
sjohnson doesn't use less much anymore, vim -R - 18:36
sorear I have export LESS=FRSX in my rc files 18:37
fgomez -c 'set ft=man'
18:39 birdwindupbird left 18:45 bbkr joined 18:51 thou joined 18:53 alester joined 18:59 MayDaniel left 19:05 s1n left
masak is back home 19:06
I bring you peace, hugs, and autopuns.
sjohnson ... :3
moritz wants the latter two
sjohnson cashes in on the hugs
moritz I need them after tracking down a nasty rakudobug
well, golfing it, really
masak hugs sjohnson! :3 19:07
sjohnson haha
masak as to the autopuns...
I don't know if the UDP joke ever made it from Twitter to here.
"I would tell you a UDP joke but you might not get it." 19:08
moritz I thought the first line was the autopun :-)
masak actually, that one is half autopun, half actual pun.
moritz 21:07 < masak> I don't know if the UDP joke ever made it from Twitter to here.
masak moritz: ;)
as for the other one, hm, let me dig up the exact wording...
moritz but the second one, I knew that 19:09
so I think you or TimToady++ brought it here already
masak ah, yes. this one has a slightly funny shape, even though it's still just the regular old use/mention mixup. 19:10
"The touble with quotes on the Internet is that it's difficult to discern whether or not they're genuine." -- Abraham Lincoln
trouble*
moritz :-) 19:11
sorear MASAK
masak SOREAR
we meet again.
masak fingers holster nervously
flussence
.oO( "Did you hear the TCP joke? Did you hear the TCP joke? Did you hear the TCP joke? Did you hear the TCP joke? ..." )
masak flussence: you can say that again. 19:12
flussence I think I'll give it a RST for now
moritz flussence: NACK
today's rakudobug: rt.perl.org/rt3/Ticket/Display.html?id=112148
found while debugging URI.pm
maybe known in some form or another already, but nasty enough to reported again in any case :-/ 19:13
tadzik But you might not get it. I have a UDP joke
masak tadzik: you have to make that "but it might not arrive in the right order. I have a UDP joke" for it to be an autopun. 19:14
moritz and it's still only half as funny as the one about multithreading 19:15
but do you remember the one about time travel which I'll tell you tomorrow? 19:18
masak I like the one about multithreading. I like autopuns which also remix older jokes.
maybe I should go looking for those.
moritz aye
like the 10 types of people jokes
and the "some people, when faced with a problem" 19:19
19:19 s1n joined
masak the multithreading one is of the latter kind. 19:19
arnsholt Idle thought while rebuilding Rakudo: Has anyone thought about making nqp/ and parrot/ git submodules? 19:24
masak what would be the benefit of that? 19:25
19:25 LylePerl joined
sorear masak: automatic handling of NQP_VERSION 19:26
flussence 1 `git pull` for everything, and the SCM does the job of those PARROT_REVISION files 19:27
masak I see.
sorear is the best rakudo branch still "nom"?
moritz sorear: yes
sorear flussence: I thought you also had to do `git submodule update`
arnsholt Yeah, primarily killing off *_REVISION
moritz flussence: but we have to handle PARROT_REVISION for non-git checkouts (tarballs) anyway
arnsholt The submodule bits are arcane, even for git though 19:28
flussence hm, you both probably know better than I do there :)
moritz I've never used git submodules
flussence has only ever done this sort of fancy stuff with svn repos at $dayjob
19:28 tyatpi left
arnsholt IIRC SVN's handling of this is a bit more user-friendly 19:30
Arglebargle. Something goes wrong when compiling Parrot 19:32
Something with my installed ICU, I think 19:33
19:35 birdwindupbird joined, thou left 19:43 tyatpi joined 19:44 leprevost left
dalek kudo/nom: edb1989 | moritz++ | t/spectest.data:
we pass another test. Just like this.
19:45
kudo/nom: 3f7d5c2 | moritz++ | t/spectest.data:
we pass some more macro tests
19:46 havenn left 19:51 LylePerl left
dalek ast: 6fb747c | moritz++ | S11-modules/importing.t:
clean up importing.t, refudge for rakudo
19:55
sorear wheeee rakudo build succeeded
moritz \o/ 19:56
dalek kudo/nom: 431a3fa | moritz++ | t/spectest.data:
run another test file
19:57
ast: db209e0 | moritz++ | S05-metasyntax/assertions.t:
fix S05-metasyntax/assertions.t
20:00
kudo/nom: 2e851f2 | moritz++ | t/spectest.data:
run S05-metasyntax/assertions.t
20:01
moritz p6: my $*a = 42; foo; sub foo { say $*a; my $*a } 20:03
p6eval rakudo 579303, niecza v16-9-ge08dd76: OUTPUT«Any()␤»
..pugs: OUTPUT«␤»
moritz p6: my $a = 42; foo; sub foo { say $a; my $a }
p6eval niecza v16-9-ge08dd76: OUTPUT«===SORRY!===␤␤Lexical symbol '$a' is already bound to an outer symbol (see line 1);␤ the implicit outer binding at line 1 must be rewritten as $a␤ before you can unambiguously declare a new '$a' in this scope at /tmp/sV42Sm4S1e line 1:␤-…
..pugs: OUTPUT«*** ␤ Unexpected "}"␤ expecting "?", "!", trait, "=" or infix assignment␤ Redeclaration of "$a" conflicts with earlier OUTER references in the same scope␤ at /tmp/ahKrRvAgek line 1, column 42␤»
..rakudo 3f7d5c: OUTPUT«Any()␤»
moritz p6: sub foo() { return 1,2,:c<3> }; say foo().perl 20:04
p6eval niecza v16-9-ge08dd76: OUTPUT«Unhandled exception: Excess arguments to return, unused named c␤ at /home/p6eval/niecza/lib/CORE.setting line 0 (return @ 1) ␤ at /tmp/di_ZE0R6C5 line 1 (foo @ 3) ␤ at /tmp/di_ZE0R6C5 line 1 (mainline @ 2) ␤ at /home/p6eval/niecza/lib/CORE.setting line …
..rakudo 3f7d5c: OUTPUT«(1, 2, "c" => Mu)␤»
..pugs: OUTPUT«(1, 2, ("c" => "3"))␤»
moritz pugs++ 20:05
wow, rt.perl.org/rt3/Ticket/Display.html?id=75174 now segfaults 20:06
20:15 havenn joined
masak an oldie-but-goodie. 20:15
20:16 GlitchMr left
moritz anyway, today I closed our third-oldest open ticket 20:21
of course jnthn++ did most of the work :-) 20:22
masak yeah, I saw a lot of closages in my mail feed. moritz++ 20:25
20:29 havenn left 20:32 thou joined 20:33 icwiener left
moritz r: say (defined "a" => 5).perl' 20:37
p6eval rakudo 2e851f: OUTPUT«===SORRY!===␤Confused␤at /tmp/BUaF2LPnA7:1␤»
moritz r: say (defined "a" => 5).perl 20:38
p6eval rakudo 2e851f: OUTPUT«Bool::True => 5␤»
moritz ah, that's because defined is a prefix op, which happens to be tighter than infix:<=>>
sorear in Rakudo 20:39
in STD/niecza, defined is a listop which is looser than &&
we need consistency :|
moritz I'm all for making it a listop 20:40
I'd also say that abs should be a listop, not a prefix 20:41
20:42 xinming_ left
moritz I don't see why it should be more special-cased than, say, uc 20:42
20:44 xinming joined
masak listops++ 20:44
+1 on making both defined and abs listops. 20:45
we don't want to actively create lists-of-exceptions-you-have-to-learn.
sorear std: "foo @$bar" 20:48
p6eval std 5740094: OUTPUT«===SORRY!===␤Variable $bar is not predeclared at /tmp/Rec9b1zWOC line 1:␤------> "foo @⏏$bar"␤Check failed␤FAILED 00:01 109m␤»
fgomez is there a way to declare a sub which takes an array with a single element? 20:49
sorear question doesn't fully make sense - Perl 6 doesn't have sub declarations 20:50
furthermore, Perl 6 array types do not typologically encode size 20:51
my best guess for what you want is signature unpacking - 'sub foo([$x]) { ... use $x ... }'
20:51 PerlJam left, hugme left 20:52 Util left, masak left
sorear however, as far as the outside world cares, foo might as well have been declared sub foo(@x) { ... } 20:52
20:52 dalek left, Juerd left, [Coke] left, tadzik left, pmichaud left 20:53 y3llow_ joined, dalek joined, ChanServ sets mode: +v dalek, bruges_ joined 20:54 Juerd joined, tadzik joined 20:55 bruges left, y3llow left, skids left, y3llow_ is now known as y3llow 20:57 hugme joined, ChanServ sets mode: +v hugme 20:58 masak joined, PerlJam joined, pmichaud joined, [Coke] joined, Util joined
masak ...netsplit much? 20:59
sorear masak: not a netsplit 21:00
feathersplit
21:01 birdwindupbird left 21:02 hugme left
sorear except for y3llow and bruges, who are dialing in from the same Taiwanese IP 21:02
all the rest are *.perl6.nl
21:03 dalek left, [Coke] left, tadzik left 21:04 PerlJam left, masak left, Juerd left, Util left, pmichaud left
fgomez sorear: something to differentiate ([$a, *@as]) vs ([$a]) 21:04
21:09 dalek joined, ChanServ sets mode: +v dalek
moritz erm, no 21:12
r: sub f([$x]) { }; my @a = 1, 2; say f @a
p6eval rakudo 2e851f: OUTPUT«Too many positional parameters passed; got 2 but expected 1 in sub-signature␤ in sub f at /tmp/kOfUnasXcj:1␤ in block <anon> at /tmp/kOfUnasXcj:1␤␤»
fgomez r: sub abc ([$a, *@as]) { }; &abc.signature
p6eval rakudo 2e851f: ( no output )
moritz r: sub f([$x, *@as]) { }; my @a = 1, 2; say f @a 21:13
p6eval rakudo 2e851f: OUTPUT«Nil␤»
moritz there's the difference.
fgomez r: multi abc ([$a]) {$a}; multi abc ([$a, *@as]) { "$a : [{@as}]" }; say abc [1,2,3] 21:15
p6eval rakudo 2e851f: OUTPUT«1 : [2 3]␤»
fgomez r: multi abc ([$a]) {$a}; multi abc ([$a, *@as]) { "$a : [{@as}]" }; say abc [1]
p6eval rakudo 2e851f: OUTPUT«Ambiguous call to 'abc'; these signatures all match:␤:()␤:()␤␤ in block <anon> at /tmp/mKLcHLHA5r:1␤␤»
21:15 orafu left, Util joined, PerlJam joined, orafu joined 21:16 pmichaud joined
moritz r: multi abc ([$a]) {$a}; multi abc ([$a, *@as where *.elems]) { "$a : [@as[]]" }; say abc [1] 21:16
p6eval rakudo 2e851f: OUTPUT«1␤»
moritz r: multi abc ([$a]) {$a}; multi abc ([$a, *@as where *.elems]) { "$a : [@as[]]" }; say abc [1, 2, 3]
p6eval rakudo 2e851f: OUTPUT«1 : [2 3]␤»
21:16 alester left
fgomez oh that's great 21:16
21:16 tadzik joined
fgomez how is the * working there? 21:17
moritz it creates a closure that calls .elems on its argument 21:19
ie the same as -> $x { $x.elems }
r: multi abc ([$a]) {$a}; multi abc ([$a, *@as where @as]) { "$a : [@as[]]" }; say abc [1, 2, 3]
p6eval rakudo 2e851f: OUTPUT«1 : [2 3]␤»
moritz r: multi abc ([$a]) {$a}; multi abc ([$a, *@as where @as]) { "$a : [@as[]]" }; say abc [1]
p6eval rakudo 2e851f: OUTPUT«Ambiguous call to 'abc'; these signatures all match:␤:()␤:()␤␤ in block <anon> at /tmp/vibpL3UnCh:1␤␤»
moritz eeks
21:20 [Coke] joined, masak joined 21:24 hugme joined, ChanServ sets mode: +v hugme
fgomez moritz: I was trying to use '!' for the *@as but found out it doesn't work 21:25
is that dumb of me to try that? Don't really understand it well 21:26
fsergot 'night o/
21:28 birdwindupbird joined 21:29 fsergot left 21:34 birdwindupbird left 21:35 colomon left 21:38 Juerd joined 21:39 snearch left 21:43 bbkr left 21:44 mj41 left
masak fgomez: what, you mean like *@as! ? 21:47
yeah, I don't really see what the ! would add in that case. 21:49
21:49 spider-mario left
masak 'night, #perl6 21:56
sorear bye masak
tadzik gnight
21:56 thou left 22:02 kaare_ left 22:08 fgomez left 22:18 Trashlord left 22:27 alester joined 22:30 lichtkind joined 22:32 alester left
timotimo how do i mark the return value of a function rw? sub yoink($a is rw) is rw { $a += 1; return $a; } perhaps? 22:35
sorear you might need to use return-rw, or just $a 22:36
lichtkind why do you want that, i can understand a rw parameter
sorear lichtkind: accessors 22:37
$foo.bar = 5; # requires bar() to be rw
timotimo i got that from the explanation of why @a[1, 2] .= reverse can work
return-rw is a keyword just like return? 22:38
sorear s/keyword/builtin 22:39
22:40 lestrrat left 22:41 lestrrat joined
timotimo oh, that's fun. you can define a state variable, return-rw it and set it from outside 22:47
22:52 fgomez joined 23:01 whiteknight joined
lichtkind rakudo seems to miss the true operator 23:07
? 4 works but not the wordy lower precedence alternative
sorear rakudo: say so 4
p6eval rakudo 2e851f: OUTPUT«True␤»
lichtkind or was it halted during i was away
so? 23:08
what is so?
timotimo turns things into a boolean i believe
lichtkind nobody told me so :)
so true went into so 23:09
timotimo: thank you
timotimo: your not a newbe?
timotimo i'm very new actually 23:12
23:13 Gothmog_ left
lichtkind but how do you know that? 23:13
im part of the fixture and missed that :)
timotimo haha. i pick up a few good bits every now and then
i'm very interested, you see, but i can hardly write anything in perl6 yet 23:14
23:14 Gothmog_ joined
lichtkind i just care to find help in the work i do and thats almost without any coding :) 23:15
fgomez r: ([[1,2,3],[4,5,6]] »*« [[1,2,3],[4,5,6]]).perl 23:18
p6eval rakudo 2e851f: ( no output )
sorear I blame English language hegemony
fgomez r: say ([[1,2,3],[4,5,6]] »*« [[1,2,3],[4,5,6]]).perl
p6eval rakudo 2e851f: OUTPUT«([1, 4, 9], [16, 25, 36]).list␤»
fgomez that is really neat
lichtkind timotimo: but i suppos your not very interested in writing docs :) 23:19
fgomez r: say ([[[1,2,3],[4,5,6]],[[7,8,9],[10,11,12]]] »*« [[[1,2,3],[4,5,6]],[[7,8,9],[10,11,12]]]).perl 23:20
p6eval rakudo 2e851f: OUTPUT«([[1, 4, 9], [16, 25, 36]], [[49, 64, 81], [100, 121, 144]]).list␤»
23:20 NamelessTee left
timotimo lichtkind: not yet able to 23:25
i did contribute a few bits to the perl6 book, though
i was considering coming up with a better example than the YMCA dance for the introduction of higher order functions, but i've got nothing 23:26
lichtkind timotimo: wanted do that too but ya know with more than 4 clones my dns gets shaky
timotimo: just reading can help , my approach is more systematic than in the book
so any error can be spotted easy 23:29
timotimo your dns gets shaky from cloning? but dns contains error-correcting mechanisms ...
lichtkind was just supposed to be funny version of the thing that even i i would be 4 person i could not do what i like 23:32
timotimo :) 23:33
i was just being a wise-ass ;) 23:34
lichtkind thats allright
honestly i dont believe all this DNA thing
if people bang their heads like this evolution vs creationism thing you know both are wrong :) 23:36
23:39 alester joined
timotimo yeah, evolution and atheism is just a load of bull and creationism is as dumb as the other thing. i'm all for intelligent design nowadays. 23:40
lichtkind i tend to think there is a sort of evolution just recent science clearly shows that dna is not the reliable information carriere the want to believe, but as the so often mistranslates sokrates quote: i know what i do not know and i dont pretend to know what i dont know, which most people just shorten to i know that i know nothing 23:49
and even following jewish orthodox teaching to take literal that earth is 6000 years is only first level of bible study (read: not very evolved :)) 23:51
timotimo i don't think i understand you :| 23:52
lichtkind which part?
timotimo how does dna not being a "reliable information carrier" cause evolution not to work? - don't know about the mistranslation thing with socrates - what do you mean with "only first level of bible study"? 23:53
also: are people going to get mad at us for going violently off topic? 23:55