Perl 6 - the future is here, just unevenly distributed

IRC log for #perl6, 2011-09-17

Perl 6 | Reference Documentation | Rakudo

| Channels | #perl6 index | Today | | Search | Google Search | Plain-Text | summary

All times shown according to UTC.

Time Nick Message
00:00 sorear there will likely be disruptive changes to compile-time class and sub handling, so please don't work on those
00:00 sorear japhb: tentatively two weeks, but very low certainty
00:01 japhb sorear, OK, gotcha.
00:02 * japhb wonders if it's better to put off jumping into niecza until your big merge happens, and Ubuntu 11.10 is out (presumably with a newer mono)
00:07 nmourey left #perl6
00:10 sorear japhb: mono post-2.6.7 isn't even in sid yet
00:11 sorear there was epic coordination fail with the Debian Mono packaging and 2.8.x never got into Debian at all; 2.10.x is in experimental now
00:11 japhb sorear, and Ubuntu isn't leading on this one, I take it?
00:11 japhb SIGH
00:11 sorear personally I just recommend building from source
00:11 japhb distro FAIL
00:12 * jnthn blogged: http://6guts.wordpress.com/2011/09/17/this-is-not-enough/
00:13 japhb sorear, am I correct in assuming I should purge all the stuff I just installed?
00:13 sorear japhb: probably would be a good idea
00:14 sorear japhb: however I never did it and this hasn't caused a problem yet
00:14 japhb sorear, ah, so you had installed from packages, then installed from source, and it Just Worked?
00:18 lue joined #perl6
00:19 packetknife joined #perl6
00:23 diakopter according to mono's site, latest mono will be in Ubuntu 11.10
00:23 japhb diakopter, excellent news.
00:23 diakopter http://mono-project.com/DistroPackages/Ubuntu
00:26 flussence oh crap. I just tried to rebuild niecza and "error CS0006: Metadata file `Kernel' could not be found"
00:26 flussence (using git pull; git clean -dfx; make)
00:26 japhb flussence, yep, that's the problem with mono 2.6.7 we've been discussing
00:27 flussence I'm on 2.10
00:27 diakopter oh hm
00:27 diakopter sorear: ^^
00:27 flussence .4 to be exact
00:29 sorear japhb: yes
00:30 sorear I guess I broke the build somehow
00:30 TimToady mine still builds, but I didn't do a clean
00:32 jnthn sleep time &
00:32 japhb o/
00:33 diakopter sorear: mine still builds (cygwin), but I didn't do a clean
00:37 TimToady decommuting &
00:38 diakopter decommuting :} &
00:47 envi joined #perl6
01:00 wolfman2000 joined #perl6
01:01 woosley joined #perl6
01:07 uasi joined #perl6
01:10 Limbic_Region joined #perl6
01:10 jaldhar joined #perl6
01:10 alvis joined #perl6
01:25 packetknife joined #perl6
02:01 _ilbot joined #perl6
02:01 Topic for #perl6 is now »ö« Welcome to Perl 6! | http://perl6.org/ | evalbot usage: 'perl6: say 3;' or rakudo:, niecza:, std:, or /msg p6eval perl6: ... | irclog: http://irc.perl6.org/ | UTF-8 is our friend!
02:02 BinGOs joined #perl6
02:25 packetknife joined #perl6
02:30 cotto joined #perl6
02:33 s1n joined #perl6
02:35 sorear niecza: my $*unit = 5; { my $*unit = 10; say CALLER::<$*unit>; }
02:35 p6eval niecza v9-31-g37fcc8d: OUTPUT«5␤»
02:52 woosley joined #perl6
03:03 uasi joined #perl6
03:16 PerlJam Is there a way to dump an AST ala Data::Dumper?
03:17 sorear $obj.perl is the conventional way
03:19 PerlJam doh ... didn't even think to try that
03:19 am0c joined #perl6
03:34 snarkyboojum FWIW - Niecza no longer builds on my env either.
03:35 sorear yeah, I got that.
03:36 woosley perl6: class A{ method a {"a"}}; my $x = &A::a; $x.WHAT.say; my $obj = A.new; say $obj.$x()
03:36 p6eval pugs: OUTPUT«Method␤pugs: Internal error:␤    Invalid sigil "&<"␤Please file a bug report.␤»
03:36 p6eval ..niecza v9-31-g37fcc8d: OUTPUT«Unhandled exception: Unable to resolve method say in class Any␤  at /tmp/7Gqr4e0oil line 1 (MAIN mainline @ 2) ␤  at /home/p6eval/niecza/lib/CORE.setting line 2060 (CORE C968_ANON @ 2) ␤  at /home/p6eval/niecza/lib/CORE.setting line 2061 (CORE module-CORE @…
03:36 p6eval ..rakudo 58809b: OUTPUT«Any()␤Method 'postcircumfix:<( )>' not found for invocant of class 'Any'␤  in <anon> at src/gen/Metamodel.pm:3029␤  in method dispatch:<var> at src/gen/CORE.setting:630␤  in method dispatch:<var> at src/gen/CORE.setting:640␤  in <anon> at /tmp/8QHFszVFMZ:1␤  in <an…
03:37 dalek niecza/serialize: 5b91468 | sorear++ | / (8 files):
03:37 dalek niecza/serialize: Update bootstrap, change stash representation to outsource data, several steps towards runtime-side stash processing.
03:37 dalek niecza/serialize: review: https://github.com/sorear/niecza/commit/5b9146842b
03:37 sorear woosley: methods are not stored in the package scope &A::
03:37 sorear woosley: you can get a reference to A by going though the class scope, as A.can('a')
03:37 woosley sorear: then how it is stored?
03:38 sorear er, A.^can('a')
03:40 woosley rakudo: class A{ method a {"a"}}; my $x = &A::a; $x.WHAT.say; my $obj = A.new; say $obj.$x()
03:40 p6eval rakudo 58809b: OUTPUT«Any()␤Method 'postcircumfix:<( )>' not found for invocant of class 'Any'␤  in <anon> at src/gen/Metamodel.pm:3029␤  in method dispatch:<var> at src/gen/CORE.setting:630␤  in method dispatch:<var> at src/gen/CORE.setting:640␤  in <anon> at /tmp/C1A9Lhn6zC:1␤  in <an…
03:40 packetknife joined #perl6
03:40 woosley rakudo: class A{ method a {"a"}}; my $x = A.^can("a"); $x.WHAT.say
03:40 p6eval rakudo 58809b: OUTPUT«Parcel()␤»
03:41 woosley sorear:  what is Parcel()?
03:42 sorear the type of very raw lists
03:42 sorear rakudo: say (1,2,3).WHAT
03:42 p6eval rakudo 58809b: OUTPUT«Parcel()␤»
03:43 PerlJam woosley: see S02:2101
03:46 * woosley reading S02 Parcel part
03:49 tokuhiro_ joined #perl6
03:49 woosley rakudo: class A{ method a {"a"}}; my $x = A.^can("a"); $x.perl.say
03:49 p6eval rakudo 58809b: OUTPUT«(a,)␤»
03:54 woosley I thought this ^can() would return a boolean at first ...
03:54 sorear A reasonable guess, but wrong.
03:56 woosley rakudo: class A{ method a {"a"}}; my $x = A.^can("a"); $x[0].WHAT.say
03:56 p6eval rakudo 58809b: OUTPUT«Method()␤»
03:56 sorear rakudo: class A { method a { 1 } }; class B is A { method a { 2 } }; say B.^can("a").perl
03:56 p6eval rakudo 58809b: OUTPUT«(a, a)␤»
03:57 sorear rakudo: class A { method a { 1 } }; class B is A { method a { 2 } }; say B.^can("a")».(B)
03:57 p6eval rakudo 58809b: OUTPUT«Too many positional parameters passed; got 3 but expected 2␤  in sub METAOP_HYPER_POSTFIX at src/gen/CORE.setting:7230␤  in <anon> at /tmp/RsmdlYby64:1␤  in <anon> at /tmp/RsmdlYby64:1␤␤»
03:57 sorear rakudo: class A { method a { 1 } }; class B is A { method a { 2 } }; say B.^can("a").map(*(B))
03:57 p6eval rakudo 58809b: OUTPUT«Method 'postcircumfix:<( )>' not found for invocant of class 'Whatever'␤  in <anon> at src/gen/Metamodel.pm:3029␤  in <anon> at /tmp/DX2mej5VSs:1␤  in <anon> at /tmp/DX2mej5VSs:1␤  in <anon> at /tmp/DX2mej5VSs:1␤␤»
03:57 sorear rakudo: class A { method a { 1 } }; class B is A { method a { 2 } }; say B.^can("a").map(-> $m { $m(B) })
03:57 p6eval rakudo 58809b: OUTPUT«2 1␤»
03:58 sorear so [0] will always pick the most derived method
03:58 sorear I think it gets them in nextsame order
04:03 uasi joined #perl6
04:04 woosley rakudo: class A{ method f {"b"}}; my $x = A.^can("f"); my $obj = A.new; say $obj.$x[0]()
04:04 p6eval rakudo 58809b: OUTPUT«Method 'postcircumfix:<( )>' not found for invocant of class 'Parcel'␤  in <anon> at src/gen/Metamodel.pm:3029␤  in method dispatch:<var> at src/gen/CORE.setting:630␤  in method dispatch:<var> at src/gen/CORE.setting:640␤  in <anon> at /tmp/WMA4s2ZyRW:1␤  in <anon>…
04:05 woosley rakudo: class A{ method f {"b"}}; my $x = A.^can("f"); my $obj = A.new; my $k = $x[0]; say $obj.$k()
04:05 p6eval rakudo 58809b: OUTPUT«b␤»
04:05 sorear method names must be a variable, not an expression
04:05 sorear I think you can also do $obj.$($x[0])()
04:06 sorear although $x[0]($obj) would be basically the same
04:06 sorear ideally you should use $obj.$x()
04:07 crakrjak joined #perl6
04:07 JimmyZ joined #perl6
04:07 PerlJam $obj."$x[0]"() would also work
04:08 woosley yes, but look like the return value of  ^can("") makes it harder ^^
04:08 sorear woosley: no
04:08 sorear woosley: method calls are designed to use the return value of can
04:08 sorear rakudo: class A { method a { say 1 } }; class B is A { method a { say 2; nextsame } }; B.a
04:08 p6eval rakudo 58809b: OUTPUT«2␤1␤»
04:09 sorear rakudo: class A { method a { say 1 } }; class B is A { method a { say 2; nextsame } }; my $x = B.^can("a"); B.$x();
04:09 p6eval rakudo 58809b: OUTPUT«Method 'postcircumfix:<( )>' not found for invocant of class 'Parcel'␤  in <anon> at src/gen/Metamodel.pm:3029␤  in method dispatch:<var> at src/gen/CORE.setting:630␤  in method dispatch:<var> at src/gen/CORE.setting:640␤  in <anon> at /tmp/fEkRyCfI5L:1␤  in <anon>…
04:09 sorear oh, NYI
04:09 sorear those two lines are supposed to have exactly the same effect
04:10 JimmyZ rakudo: class A{ method f {"b"}}; my $obj = A.new; say f($obj);
04:10 p6eval rakudo 58809b: OUTPUT«Could not find sub &f␤  in <anon> at /tmp/4RByo7WuLu:1␤  in <anon> at /tmp/4RByo7WuLu:1␤␤»
04:10 woosley that's what I mean... you can not use the return value from ^can
04:10 sorear woosley: that's a bug
04:11 woosley \o
04:19 JimmyZ rakudo: class A{ method f {"b"}}; say |A.can('f')
04:19 p6eval rakudo 58809b: OUTPUT«f␤»
04:20 JimmyZ rakudo: class A{ method f {"b"}}; say (|A.can('f')) #bug?
04:20 p6eval rakudo 58809b: OUTPUT«Could not find sub &prefix:<|>␤  in <anon> at /tmp/sGeO0AjdSQ:1␤  in <anon> at /tmp/sGeO0AjdSQ:1␤␤»
04:24 JimmyZ niecza: rakudo: class A{ method f {"b"}}; say |A.can('f')
04:24 p6eval niecza v9-31-g37fcc8d: OUTPUT«Unhandled exception: Unable to resolve method Capture in class Bool␤  at /tmp/r1LsB4A4_8 line 1 (MAIN mainline @ 5) ␤  at /home/p6eval/niecza/lib/CORE.setting line 2060 (CORE C968_ANON @ 2) ␤  at /home/p6eval/niecza/lib/CORE.setting line 2061 (CORE module-C…
04:32 s_mosher joined #perl6
04:41 cotto joined #perl6
04:53 molaf joined #perl6
05:00 donri joined #perl6
05:07 [particle] joined #perl6
05:17 thou joined #perl6
05:23 daniel-s joined #perl6
05:33 thou joined #perl6
05:36 moritz jnthn++ # http://6guts.wordpress.com/2011/09/17/this-is-not-enough/
05:36 moritz good morning btw
05:36 sorear hi moritz
05:39 moritz \o sorear
05:44 satyavvd joined #perl6
05:53 dalek niecza/serialize: b2b1322 | sorear++ | / (6 files):
05:53 dalek niecza/serialize: Actually implement runtime-side stash handling; improve -L NULL.
05:53 dalek niecza/serialize: review: https://github.com/sorear/niecza/commit/b2b1322c66
05:54 sorear jnthn: in 2007, dons from #haskell got a 16-core box courtesy of uni (he was on the Data Parallel Haskell team)
05:59 snarkyboojum dons went to my uni :)
06:00 sorear snarkyboojum: do you still contact him?
06:00 snarkyboojum as did raster of #e fame :|
06:01 sorear :| ?
06:01 snarkyboojum that was supposed to be a :)
06:01 sorear ok.
06:01 * sorear sleep
06:10 orafu joined #perl6
06:12 cognominal_ jnthn++
06:20 araujo joined #perl6
06:20 araujo joined #perl6
06:53 DarthGandalf joined #perl6
07:00 drbean joined #perl6
07:02 wooden joined #perl6
07:02 wooden joined #perl6
07:07 Vlavv joined #perl6
07:10 snarkyboojum is it safe to assume that nom "passes" S03-operators/minmax.t now?
07:11 snarkyboojum it's still in LHF.markdown FWIW - not sure if that file is relevant now
07:11 wamba joined #perl6
07:16 drbean joined #perl6
07:28 tadzik good morning
07:36 DarthGandalf joined #perl6
07:48 mberends joined #perl6
07:49 snarkyboojum rakudo: my @a = 1,2,3; say @a.defined; @a = Nil; say @a.defined
07:49 p6eval rakudo 58809b: OUTPUT«Bool::True␤Bool::True␤»
07:49 snarkyboojum should the last @a.defined by Bool::False?
07:50 kaare_ joined #perl6
07:51 mberends jnthn++ # "faster" blog post
07:56 tadzik perl6: say Nil.defined
07:56 p6eval pugs: OUTPUT«*** No such subroutine: "&Nil"␤    at /tmp/d_XjotAEky line 1, column 5 - line 2, column 1␤»
07:56 p6eval ..rakudo 58809b, niecza v9-31-g37fcc8d: OUTPUT«Bool::False␤»
08:04 snarkyboojum rakudo: my $a = 5; say $a.defined; $a = Nil; say $a.defined
08:04 p6eval rakudo 58809b: OUTPUT«Bool::True␤Bool::False␤»
08:10 tadzik make spectest  1163.76s user 93.29s system 98% cpu 21:11.38 total
08:10 tadzik 1265 last time I tried
08:11 tadzik jnthn++
08:14 snarkyboojum tadzik: this guy has stolen your handle on twitter! :P https://twitter.com/#!/tadzik
08:27 tadzik oh noes!
08:27 tadzik he stole my name! /o\
08:28 huf maybe he *is* you now
08:28 tadzik now, I have hair
08:28 tadzik s/now/no/
08:28 tadzik I'm pretty sure of that :)
08:28 tadzik maybe it's me from the future
08:29 huf ah i see, he stole your name and you stole his hair
08:30 tadzik yeah, it's a kind of a deal
08:31 tadzik I feel a niche for a webservice which will blindly register you an all the common websites so no one can steal your name
08:34 snarkyboojum whatever happened to openid I wonder
08:37 tadzik it tried to solve the problem of having too many accounts by having you to sign up for another account
08:37 tadzik and it didn't get much better than that, unfortunately
08:38 replore joined #perl6
08:41 snarkyboojum how does one go about debugging stuff in src/binder/*.c
08:41 mberends joined #perl6
08:41 tadzik I suppose gdb could be some help
08:42 donri some russian stole my handle on last.fm
08:42 donri i wonder if it means anything in russian ...
08:44 MayDaniel joined #perl6
08:46 masak joined #perl6
08:46 masak \o/ weekend!
08:48 tadzik \/
08:49 tadzik oh, I've had some thoughts about language interoperability today morning
08:49 masak 9 out of 10 masaks recommend trying out Niecza. try it today -- it's free!
08:50 tadzik but they make a lot less sense now that I'm sober :/
08:50 mberends :-)
08:50 donri what is the tenth masak's thoughts on niecza then
08:50 masak tadzik: "language interpo: doesn't make that much sense when you're sober"
08:50 JimmyZ joined #perl6
08:51 tadzik anyway, I thought that wrapping every Parrot Object in a Perl 6 Object might be expensive when you're doing lots of it all the time
08:51 donri .oO(Masak the 10th)
08:51 masak donri: the tenth masak kinda grinds his teeth over everything to do with stacktraces and Mono-based errors. but don't listen to him.
08:51 JimmyZ masak: http://irclog.perlgeek.de/perl6/2011-09-17#i_4440987   is it a bug?
08:51 * masak looks
08:51 JimmyZ thanks
08:51 tadzik so I thought about some lazy SixModelObject, which will just keep the Parrot object in its insides, and fill in the Perl 6 Object stuff (attrs, methods etc) only as soon as they're needed for something
08:52 tadzik not sure if that could even work, but that made sense few hours ago
08:52 donri i wonder if a test suite could be generated from the irc logs of p6eval to test for regressions
08:52 masak JimmyZ: hm.
08:52 masak JimmyZ: no, I don't think so. signatures are a little DSL with different operators.
08:53 JimmyZ masak: Do you see the next line?
08:53 JimmyZ masak: I added a ( )
08:53 masak the niecza one?
08:53 JimmyZ masak: rakudo one
08:54 masak oh right.
08:54 masak rakudo: |4
08:54 p6eval rakudo 58809b: OUTPUT«Could not find sub &prefix:<|>␤  in <anon> at /tmp/1pzhJgILkp:1␤  in <anon> at /tmp/1pzhJgILkp:1␤␤»
08:54 JimmyZ |A.can('f') vs (|A.can('f'))
08:54 masak seems NYI, simply.
08:55 JimmyZ why |A.can('f') works?
08:55 JimmyZ :)
08:55 masak I was thinking maybe it calls infix:<|> or something.
08:55 masak but I don't quite see it either.
08:56 JimmyZ I don't know why add a new ( ) makes a difference :(
08:56 masak parentheses are just for grouping :P
08:56 masak rakudo: say |42
08:56 p6eval rakudo 58809b: OUTPUT«Method 'ARGLIST_FLATTENABLE' not found for invocant of class 'Int'␤  in <anon> at /tmp/gKUOBbaqMM:1␤  in <anon> at /tmp/gKUOBbaqMM:1␤␤»
08:57 masak huh!
08:57 JimmyZ rakudo: say (|4)
08:57 p6eval rakudo 58809b: OUTPUT«Could not find sub &prefix:<|>␤  in <anon> at /tmp/BCzNnAvgTI:1␤  in <anon> at /tmp/BCzNnAvgTI:1␤␤»
08:57 JimmyZ rakudo: say |4
08:57 p6eval rakudo 58809b: OUTPUT«Method 'ARGLIST_FLATTENABLE' not found for invocant of class 'Int'␤  in <anon> at /tmp/uHzzzaAEKH:1␤  in <anon> at /tmp/uHzzzaAEKH:1␤␤»
08:57 JimmyZ rakudo: say (|4,)
08:57 p6eval rakudo 58809b: OUTPUT«Could not find sub &prefix:<|>␤  in <anon> at /tmp/jJJVJxPtnI:1␤  in <anon> at /tmp/jJJVJxPtnI:1␤␤»
08:57 masak rakudo: my @a = 1, 2, 3; sub foo($, $, $) { say "OH HAI" }; foo |@a
08:57 p6eval rakudo 58809b: OUTPUT«OH HAI␤»
08:57 masak aha.
08:57 masak I know why.
08:57 masak it's signatures that have prefix:<|> already.
08:58 masak and maybe they're the only ones that actually should. maybe mainline Perl 6 doesn't have prefix:<|>.
08:59 JimmyZ I don't think (|4) and |4 are different
08:59 tadzik error CS0006: Metadata file `Kernel' could not be found
08:59 masak JimmyZ: they are.
09:00 tadzik I seem to recall someone had that problem too
09:00 masak JimmyZ: if you do 'say(blabla)', the blabla is a signature. if you do 'say (blabla)', it isn't.
09:00 masak tadzik: is that Niecza?
09:01 tadzik yes
09:01 JimmyZ masak: I think (expr) and expr are the same
09:01 snarkyboojum tadzik: Niecza build is currently b0rken.. sorear is aware of it
09:01 tadzik I hope :) Kernel smells like Ruby
09:01 masak :P
09:01 masak maybe grab latest release?
09:01 sjn joined #perl6
09:01 JimmyZ masak: like 4+4 and (4+4)
09:01 masak because, ya know, you gain nothing from a "source is better" perspective.
09:01 tadzik it's latest
09:01 tadzik oh, release
09:02 masak tadzik: is it the v9 relea.... right.
09:03 masak rakudo: multi foo($) { say "one param" }; multi foo($, $) { say "two params" }; foo (1, 2); foo(1, 2)
09:03 p6eval rakudo 58809b: OUTPUT«one param␤two params␤»
09:03 masak JimmyZ: ^^
09:04 JimmyZ rakudo: multi foo($) { say "one param" }; multi foo($, $) { say "two params" }; foo (1, 2);  foo 1, 2;
09:04 p6eval rakudo 58809b: OUTPUT«one param␤two params␤»
09:05 JimmyZ rakudo: multi foo($) { say "one param" }; multi foo($, $) { say "two params" }; foo (1);  foo 1;
09:05 p6eval rakudo 58809b: OUTPUT«one param␤one param␤»
09:05 JimmyZ rakudo: multi foo($) { say "one param" }; multi foo($, $) { say "two params" }; foo (|1);  foo 1;
09:05 p6eval rakudo 58809b: OUTPUT«Could not find sub &prefix:<|>␤  in <anon> at /tmp/zgTH7N9ZRs:1␤  in <anon> at /tmp/zgTH7N9ZRs:1␤␤»
09:05 masak yes, because the () makes the | appear not-in-a-signature, but one level down.
09:05 masak at which point we're back in an expression.
09:06 JimmyZ rakudo: multi foo($) { say "one param" }; multi foo($, $) { say "two params" }; foo |1;  foo (|1);
09:06 p6eval rakudo 58809b: OUTPUT«Method 'ARGLIST_FLATTENABLE' not found for invocant of class 'Int'␤  in <anon> at /tmp/QD9S27uKoQ:1␤  in <anon> at /tmp/QD9S27uKoQ:1␤␤»
09:06 tadzik oh, masak, masak
09:06 masak oh, tadzik, yes? :)
09:06 tadzik sorry for interrupting, but before I forget: did you read The Last Ring Bearer?
09:06 masak tadzik: I did not.
09:06 masak sounds interesting.
09:06 tadzik unfortunately, it's not about bears
09:06 tadzik but I think it may come to your liking
09:06 woosley rakudo: multi foo($) { say "one param" }; multi foo($, $) { say "two params" }; foo  |(1,2);  foo (1)
09:06 p6eval rakudo 58809b: OUTPUT«two params␤one param␤»
09:07 tadzik it's a LOTR fanfiction
09:07 masak tadzik: I will check it out..
09:07 woosley so '|' is used to flatten an array to a list?
09:07 masak in a signature.
09:08 masak or a hash to a bunch of named arguments.
09:08 JimmyZ | and *  in perl 6 likes & and * in C
09:08 tadzik holy cow...
09:09 tadzik I just learned that having not a spoon of sugar at home is not a reason to try drinking mint drops without sugar
09:09 masak mint drops?
09:09 tadzik the minty things you take when your stomach feels sick
09:09 tadzik do you have those?
09:10 tadzik like, known in Sweden?
09:11 masak not to me.
09:12 masak get well soon, tadzik! :/
09:12 JimmyZ rakudo: sub a(*@_) { @_.say  };  a 1,2,3; sub b($a, $b, $c) { say $a, $b, $c ; }; b |[1,2,3]
09:12 p6eval rakudo 58809b: OUTPUT«1 2 3␤123␤»
09:12 tadzik you usually get a spoonful of sugar and put like 15-20 drops on it, then eat it, and drink some water **fast**
09:12 tadzik they're pretty strong
09:12 russellw joined #perl6
09:13 tadzik now I know why you eat them with sugar :S
09:13 tadzik but, I'm offtopicing too much today
09:18 masak not at all. it's interesting to learn about different cultures.
09:24 wamba joined #perl6
09:35 fhelmberger_ joined #perl6
09:35 im2ee joined #perl6
09:36 im2ee Hello! :)
09:38 masak im2ee: cześć
09:39 im2ee masak, how are you? :)
09:48 tokuhiro_ joined #perl6
09:49 masak im2ee: I'm 30 now ;)
09:49 masak but otherwise I'm fine :P
09:50 masak im2ee: how are you?
09:54 masak JimmyZ: 'likes' = 喜欢, 'is/are like' = '像'
09:55 masak JimmyZ: and I see what you mean by | and * in Perl 6 being a bit like & and * in C. but they're really pretty dissimilar.
09:58 JimmyZ masak: define similar, I was saying the are like brother :)
10:01 masak in C, the operations are reference/dereference. in Perl 6, the operations are slurp/flatten.
10:01 masak as operations go, those are pretty unrelated.
10:02 JimmyZ masak: or are like a team
10:03 JimmyZ box/unbox
10:10 masak JimmyZ: oh, I think I see what you mean now.
10:10 JimmyZ masak: hehe
10:10 masak prefix:<|> and prefix:<*> are "opposite" actions in Perl 6, just like * and & are in C.
10:10 JimmyZ masak: yeah
10:11 * masak 明白
10:11 im2ee masak, fine too. :)
10:12 JimmyZ so does box/unbox or containerize/decontainerize
10:13 masak JimmyZ: sometimes * is its own opposite in C. this follows from the rule that "declaration should look like use".
10:13 jnthn mor...afternoon, #perl6 :)
10:13 masak so 'short *c;' is talking about a pointer. but '*c = 42' is doing a dereference.
10:14 masak jnthn: good morafternoon!
10:14 masak jnthn++ # http://6guts.wordpress.com/2011/09/17/this-is-not-enough/
10:14 jnthn masak: A good time for morbier? ;)
10:14 masak jnthn: not now, I'm cleaning! :P
10:15 masak jnthn: I tweeted your post, and it's already getting retweeted. http://twitter.com/carlmasak/status/114991388621418496
10:16 masak if there's one thing I've learned, it's that Twitter *wants* good news about Perl 6. as opposed to Hacker News and Reddit.
10:17 jnthn < snarkyboojum> how does one go about debugging stuff in src/binder/*.c
10:18 jnthn ==> hey, that's easier than debugging anything else because relaly good C debuggers exist. The Visual Studio one is excellent, I guess many people do their thing in gdb.
10:18 jnthn Glad people enjoyed the blog post :)
10:18 Tene yes, rather.
10:18 tadzik it's nice indeed :)
10:19 jnthn My word, how much backlog did you folks managed to type while I slept... :)
10:19 Tene jnthn: I've enjoyed every blog post of yours that I've read.
10:20 snarkyboojum jnthn: cool - ended up tinkering around with gdb a bit.. find it a little fiddly tho :)
10:24 snarkyboojum bbiab
10:24 snarkyboojum whoops - wrong window :)
10:24 * masak .oO( how is bbiab formed? )
10:26 jnthn .oO( by do away with instain self? )
10:30 * masak .oO( who cometh back!? )
10:33 jnthn snarkyboojum: What are you trying to track down, ooc?
10:33 jnthn snarkyboojum: I know the code in there fairly well... :)
10:41 masak wow, I've done two out of six of the ideas in https://gist.github.com/1172972
10:41 masak blogging is slow going ;)
10:45 masak so, should I do macros next? or Little Animal Farm? or one of the two small blog posts?
10:48 Tene macros
10:48 masak it'll be an overview post, like "what I can understand of macros so far".
10:48 masak I'll be writing about them quite a bit in the coming months ;)
10:49 arnsholt Sure, noone expects you to know everything about them
10:49 arnsholt Not yet at any rate ;)
10:49 masak ;)
10:56 snarkyboojum jnthn: was interested to see how the type checking worked, esp when you try and assign Nil to something like my Int $a
10:58 masak snarkyboojum: sorear knows a bit about that, I think.
10:58 masak he has been complaining about the performance implications of having to specifically check for Nil.
10:59 snarkyboojum also, when you assign Nil to a defined array, should the definedness of the array disappear?
11:00 jnthn snarkyboojum: Not sure on the array one.
11:00 jnthn snarkyboojum: You're probably going to want to read container.c
11:00 jnthn snarkyboojum: The storage thingy is in there.
11:01 jnthn snarkyboojum: It does a STABLE(something)->type_check call or so
11:01 jnthn snarkyboojum: That's a call down to the 6model type check primitive.
11:01 snarkyboojum jnthn: yeah.. cool - got down into there.. but wanted to step through the code in there - maybe that's a bit ambitious :)
11:02 masak snarkyboojum: that's a really good question. I'm learning towards "yes", because otherwise you could just go @array = ();
11:02 masak snarkyboojum: so maybe '= Nil' is the way to reset the initializedness flag on variables/containers.
11:02 snarkyboojum was reading S02 and it seemed that my @a = 1,2,3; @a = Nil; say @a.defined should be False, at least from my reading
11:03 snarkyboojum that's how it works for scalars, but containers don't seem to behave that way currently
11:03 jnthn snarkyboojum: Hm, yeah
11:03 masak snarkyboojum: feel free to submit a rakudobug and/or a nieczabug.
11:03 jnthn snarkyboojum: I *think* this may be tied into us needing to twiddle with the way we handle array auto-viv though.
11:03 jnthn (There's an entry in nommap about that)
11:04 snarkyboojum there is for my Int $a = Nil, but not regard containerish stuff afaik
11:04 snarkyboojum oohh.. sorry - I'm getting confused with LHF :)
11:05 jnthn nom: my Int $a = Nil;
11:05 p6eval nom 58809b: OUTPUT«Type check failed in assignment to '$a'; expected 'Int' but got 'Nil'␤  in <anon> at /tmp/ojwLGszxrs:1␤  in <anon> at /tmp/ojwLGszxrs:1␤␤»
11:05 snarkyboojum also there's an entry in LHF about getting minmax.t to pass, which could possibly be removed.. as it appears to pass on nom
11:05 jnthn snarkyboojum: Oh, I think that's old.
11:05 jnthn Do you have a commit bit? If not, I can do away with it.
11:05 snarkyboojum jnthn: cool, but the Nil assignment issue seems extant
11:06 jnthn snarkyboojum: Yeah, that needs looking at.
11:06 snarkyboojum jnthn: yeah… no access here, so feel free :)
11:06 replore_ joined #perl6
11:07 pmurias joined #perl6
11:07 jnthn snarkyboojum: See types.[ch]. If you do something like that you can "register" Nil.
11:07 jnthn snarkyboojum: Then you'll able to get hold of it in container storage.
11:08 jnthn snarkyboojum: At which point it should be a simple pointer check for "is the thing we're assigning Nil", and taking a different code path if so.
11:08 jnthn (e.g. just twiddle the value to set to be the type object of the container's declared type)
11:09 snarkyboojum jnthn: cool - was poking around there too.. thanks, will have a look at it
11:09 Chillance joined #perl6
11:09 jnthn snarkyboojum: It's relatively easy, just a little scattered. :)
11:09 snarkyboojum easy is good :)
11:25 wallberg joined #perl6
11:26 felher Can someone place change line 157 of src/core/Cool.pm from "157     multi method comb(Regex $matcher, $limit = $Inf) { self.Str.comb($matcher, $limit) }
11:26 felher to the same line, just with '= /./' as default for $matcher?
11:27 * masak does so
11:27 felher Or wouldn't that be the right way to do it?
11:27 masak yes.
11:27 masak b: say "foo".comb.perl
11:27 p6eval b 1b7dd1: OUTPUT«("f", "o", "o")␤»
11:27 masak nom: say "foo".comb.perl
11:27 p6eval nom 58809b: OUTPUT«("f", "o", "o").list␤»
11:27 masak hm.
11:27 felher nom: say 400.comb.perl
11:27 p6eval nom 58809b: OUTPUT«No applicable candidates found to dispatch to for 'comb'. Available candidates are:␤:(Cool, Regex $matcher, Any $limit, Mu %_)␤␤  in method comb at src/gen/CORE.setting:1507␤  in <anon> at /tmp/QzH_cmG0pV:1␤  in <anon> at /tmp/QzH_cmG0pV:1␤␤»
11:28 jnthn er, please don't do that. :)
11:28 felher String got that one right.
11:28 masak ah, there we go.
11:28 jnthn Getting every char of the string using /./ is about the slowest way you can imagine doing that.
11:28 jnthn You need an extra multi candidate that takes no args and .Str.comb's it in Cool.
11:28 masak :)
11:29 masak jnthn++ # thinking about consequences
11:29 jnthn These sorts of things are part of why people come back and say "omg Rakudo is slow!!!"
11:29 masak felher: if you make a patch for what jnthn just said, I'll apply it.
11:29 jnthn I made Mandelbrot 30% faster by fixing implementation bugs in join.
11:29 felher masak: i'll do :)
11:29 felher masak++, jnthn++ :)
11:30 masak jnthn: tell me about it. I had several blog posts last November on why .trans was slow for large strings. turns out it was O(.chars). I made it O(replacements)
11:31 jnthn masak: :)
11:31 jnthn masak: It's nice to find those.
11:34 packetknife joined #perl6
11:35 masak http://strangelyconsistent.org/blog/november-19-2010-ive-got-good-news-and-bad-news
11:35 Psyche^ joined #perl6
11:37 felher masak: while i spectest the one-liner, on which way would you like to get the patch? :)
11:38 moritz speaking of .trans, somebody needs to port it to nom
11:41 jnthn I heard masak understands trans well ;)
11:47 whiteknight joined #perl6
11:58 masak pmichaud had some complaints about the current implementation. I think a port would have to involve him in some way.
11:58 masak but I'd be happy to provide advice ;)
11:58 masak TimToady keeps reminding me that the LTM in .trans should probably be the same LTM in grammars, in the long term.
11:59 masak that is, a .trans probably builds a Grammar and executes it.
11:59 envi joined #perl6
12:02 moritz it might be enough to show all the alternatives into an array, and interpolate that into a regex
12:04 jnthn ooh, that could maybe work :)
12:05 masak together with keeping track of the position, it seems it could work.
12:05 felher LTM = longest token matching?
12:06 moritz somehow we have to track which alternative was matched
12:06 moritz felher: yes
12:06 felher moritz: k, thnx :)
12:08 masak moritz: how do you mean? why?
12:09 moritz masak: if you call .trans('a' => 'b', /\w+/ => 'c'), matching /'a'|\w+/ isn't enough
12:10 moritz .trans needs to know which branch matched, so that it knows which substitution to use
12:10 masak oh, indeed.
12:10 moritz though you can do something like
12:10 moritz my $tracker;
12:11 moritz my @res = @patters.kv.map: -> $idx, $re { / $re { $tracker = $idx } / }
12:12 moritz self.subst(:g, /@res/, { use $tracker here ... })
12:14 moritz though I realy wish there was a simpler way built into p6
12:14 masak spec one ;)
12:16 moritz <%h> could match %h.keys, and stores the value of the matching key in $<h>
12:18 moritz and the syntax / <pat> => $foo / could mean "put $foo in $<pat>" or in $<pat>.ast or so
12:20 * jnthn afk for a bit; walk
12:24 felher masak: herrmann-koenigsberg.de/make_cool_comb_work.patch
12:25 felher masak: this is a 'git format-patch HEAD~..HEAD > filename' patch against newest nom
12:26 SHODAN joined #perl6
12:27 mberends joined #perl6
12:28 masak felher: thanks, will spectest and commit.
12:31 felher masak: i did already spectest. But of course, testing twice won't hurt. :)
12:34 masak oh, ok.
12:34 masak yeah, spectest already underway; might's'well finish it ;)
12:35 felher masak: ^^ :)
12:35 masak felher: do you know if there's any spectest for Cool.comb() ?
12:36 felher masak: nope. But i'll look into it. Some short ack-action. :)
12:36 moritz ack '\d\.comb'  => no result
12:39 felher yeah, the there are only comb()s on strings.
12:40 masak well then; another LHF task ;)
12:41 felher masak: LHF?
12:43 moritz Low-Hangig Fruit
12:43 moritz (ie easy to tackle)
12:44 felher moritz: ah, thnx. :)
12:46 masak hm. does it matter that the proto signature of Cool.comb is (|$) ?
12:46 masak now that we've added a .comb() multi, I mean.
12:46 moritz masak: it's ok
12:46 moritz masak: |$ matches any possible signature
12:48 moritz the leading | means 'take the rest of the argument list as a Capture'
12:48 moritz and the $ means '... and pack into this scalar'
12:54 packetknife joined #perl6
12:54 Kivutarrr joined #perl6
12:55 masak oh ,right.
12:56 masak s/ ,/, /
12:56 felher masak: i wasn't sure, too. But awk told me that that happens quite often already. :)
12:57 MayDaniel joined #perl6
13:01 masak well, moritz++ has the answer: it's perfectly in otder.
13:01 jnthn Also, the binder sees |$ and says "well, we don't have to bind it anywhere anyway, so let's do nothing" :)
13:03 uasi joined #perl6
13:05 woosley joined #perl6
13:05 moritz rakudo: say Capture ~~ Positional
13:05 p6eval rakudo 58809b: OUTPUT«Bool::False␤»
13:09 felher jnthn++ for http://6guts.wordpress.com/2011/09/17/this-is-not-enough/
13:17 dalek rakudo/nom: 5be6d65 | (Felix Herrmann)++ | src/core/Cool.pm:
13:17 dalek rakudo/nom: Make 'Cool.comb()' work.
13:17 dalek rakudo/nom: review: https://github.com/rakudo/rakudo/commit/5be6d65489
13:17 masak felher++
13:27 PacoLinux_ James Gosling in the aerial accident at Reno : http://nighthacks.com/roller/jag/entry/i_m_alive
13:28 * jnthn sees if he can work out what bit of DateTime causes setting compilation to get upset
13:31 jnthn OK, found it
13:31 jnthn has     $.second    = 0.0;
13:31 jnthn That 0.0 (a Rat)
13:33 masak what's upsetting about that?
13:33 masak the fact that Rat is an object?
13:34 jnthn Well, it wants to create the literal at compile time.
13:34 jnthn And something goes awry in doing so.
13:35 jnthn yeah, we don't try and do that anywhere in the setting.
13:42 arthur-_ joined #perl6
13:46 moritz iirc I tried to make that a plain 0 once
13:47 moritz and it didn't help
13:47 moritz (but it might now)
13:47 jnthn moritz: I've got it narrowed down to an infinite recursion explosion that happens when we call Rat.new.
13:47 flussence the now bug?
13:48 jnthn flussence: No, the setting compilation hanging
13:48 jnthn When you have a rat literal somewhere in it.
13:48 flussence I mean, is it the same cause?
13:48 moritz no
13:49 moritz term:<now> hangs on 32 because of Num -> Rat conversion overflow thingy
13:50 jnthn Indeed. It's gone away for me now I'm on 64-bit...
13:51 jnthn ugh, it's an infinite recursion involving dynamic compilation, somehow.
13:52 jnthn (e.g. it's only a rung or two down the ladder in terms of evil from a GC bug)
13:52 moritz dynamic compilation?
13:54 jnthn nom: sub foo() { say "I'm dynamically compiled" }; BEGIN { foo() }
13:54 p6eval nom 58809b: OUTPUT«I'm dynamically compiled␤»
13:54 jnthn Where we have to go and compile a piece of the code during compilation because we need it before we're "finished"
13:54 jnthn In this case, the chain starts at needing to do that with Rat.new (which works out, it seems)
13:55 MayDaniel joined #perl6
13:55 masak compilation during compilation. yo dawg.
13:55 jnthn masak: right.
13:55 bbkr1 joined #perl6
13:55 jnthn It tends to work out fine
13:55 jnthn But in the setting we're already trying to deal with a load of other circularities.
13:57 M_o_C joined #perl6
13:57 jnthn Hmm, it isn't that it's trying to re-compile the same thing over many times though. The caching there works out.
14:00 bbkr1 mberends: sorry about server downtime. some weird problem with one kext. resolved now.
14:02 mberends bbkr1: no probs, I was logged out during the past week's work in Dublin
14:02 pmurias japhb: re mono you should compile one from source
14:03 japhb pmurias, yeah, so I gathered.
14:04 pmurias japhb: "re pile of stuff the package manager installed" it's just that package managers love to split everything in tiny bits
14:06 jnthn Curious. It explodes when doing self.HOW.name(self) ~ '<' ~ self.WHERE ~ '>'
14:06 pmurias japhb: if you want to install gtk# for the gui example i found out that http://www.mono-project.com/Parallel_Mono_Environments was helpfull
14:07 jnthn I'm also curious why it's doing that.
14:07 japhb pmurias, nodnod.  And of course, everyone is then exhorted to install 'mono-complete' plus a few "optional" extras, which is just silly.  And then, my favorite part: since all those binary packages in fact come from only a few source packages, every time there's a patch you have to download and install all of them anyway.  Micro-packages don't even save you that.  :-/
14:07 japhb pmurias, ah, thank you!
14:08 pmurias japhb: i suspect there is a package manager leaderboard somewhere which is causing the fragmentation ;)
14:09 flussence rakudo: "a".WHAT
14:09 p6eval rakudo 5be6d6:  ( no output )
14:09 flussence rakudo: say "a".WHAT
14:09 p6eval rakudo 5be6d6: OUTPUT«Str()␤»
14:09 flussence hm, my local perl6 doesn't like that...
14:10 flussence «> "a".WHAT␤Use of uninitialized value in string context»
14:10 jnthn flussence: Yeah, known
14:10 jnthn flussence: If there's no output, it tries to stringify the result.
14:11 jnthn Stringifying a type object produces a warning.
14:11 moritz the REPL should .gist and and not .Str, I think
14:12 mls_ Hi perl6!
14:12 jnthn hi mls_ :)
14:12 benabik moritz: +1
14:13 benabik moritz: Or .perl
14:13 mls_ jnthn: I noticed that rakudos clones subs when doing a map(). Why's that?
14:14 jnthn mls_: Where specifically?
14:14 japhb pmurias, *chuckle*, I wouldn't even be surprised.  My boss (a FreeBSD user) and I had a friendly argument about whose OS had more packages/ports available.  Turns out that there are in fact reports being run every night for Debian listing package counts and sizes broken down by arch and release.  Looked pretty much like a bragging rights report.  ;-)
14:14 jnthn mls_: But most likely it's part of the usual closure stuff.
14:15 mls_ probably. Which parts of a sub need the cloning?
14:15 jnthn mls_: BTW, you've produced quite a few good patches for Rakudo now, so if you feel like sending in a CLA and getting a commit bit, we're happy to give you one. :)
14:15 masak \o/
14:15 masak mls_++
14:15 thundergnat joined #perl6
14:16 mls_ Oh no, there's another CLA. I thought the parrot CLA covers rakudo...
14:16 jnthn mls_: Forget the details, but it's about maintaining the lexical chain.
14:16 jnthn mls_: We could certainly clone a bit less than we currently do.
14:16 jnthn mls_: Both at Parrot level and Perl 6 level.
14:17 jnthn Though since it's shallow cloning, I'm not sure how much we'd save.
14:17 mls_ All the cloned subs currently end up as different in the profiler, that's why I'm asking
14:17 jnthn mls_: oh, I see
14:17 mls_ I can easily fix that in the profiler (same segment and offset -> same sub), but I wanted to ask first if rakudo does this on purpose
14:17 jnthn mls_: Well, you can look at...the code base offset pointer or whatever it's called in the Parrot Sub.
14:18 mls_ ;)
14:18 jnthn mls_: Yes, very much so.
14:18 thundergnat Hi #perl6.
14:18 jnthn Different CLAs - because Parrot one goes to Parrot foundation, which is a different legal entity to The Perl Foundation.
14:18 mls_ ok, I'll change the profiler. Thanks.
14:19 mls_ Btw, regarding your patch to is_clearly_returnless: I still think rakudo should make use of the continuation already stored in the call context instead of creating a new one for each sub...
14:21 jnthn mls_: Will that actually work?
14:21 jnthn mls_: Note that we need to do some work on the value being returned before actually handing it back.
14:21 thundergnat Been away from perl 6 for a bit. Just cloned nom from git and built and am getting a failure during make test: t/02-embed/01-load.t.
14:21 mls_ I had that proof-of-concept patch that pmichaud++ didn't like ;)
14:22 thundergnat Interestingly, make spectest passes though...
14:22 moritz thundergnat: that's known :(
14:22 thundergnat Ah.
14:22 * jnthn seriously considers deleting t/02-embed/01-load.t, since its main role is to make people thing they're going to have problems, when they won't.
14:22 jnthn *think
14:23 thundergnat nom: say (65..75).chrs;
14:23 p6eval nom 5be6d6: OUTPUT«Method 'chrs' not found for invocant of class 'Range'␤  in <anon> at /tmp/Bo7sNvnaDM:1␤  in <anon> at /tmp/Bo7sNvnaDM:1␤␤»
14:23 thundergnat use MONKEY_TYPING; augment class Cool { method chrs () { self>>.chr.join }; }; say (65..75).chrs; # LHF?
14:24 mls_ jnthn: it added a perl6_return op that did the return type checking
14:24 thundergnat nom: use MONKEY_TYPING; augment class Cool { method chrs () { self>>.chr.join }; }; say (65..75).chrs; ?
14:24 p6eval nom 5be6d6: OUTPUT«===SORRY!===␤Confused at line 1, near "?"␤»
14:24 colomon joined #perl6
14:24 jnthn mls_: OK. Put did this not involve also patching nextsame etc?
14:24 thundergnat nom: use MONKEY_TYPING; augment class Cool { method chrs () { self>>.chr.join }; }; say (65..75).chrs;
14:24 p6eval nom 5be6d6: OUTPUT«ABCDEFGHIJK␤»
14:24 jnthn thundergnat: Is that spec'd?
14:24 mls_ No, it didn't touch nextsame.
14:25 thundergnat It was in ng.
14:25 * jnthn is a tiny bit surprised but may be mis-remembering how nextsame handles returning.
14:26 mls_ (not changing nextsame was obviously a bug in the patch)
14:26 jnthn ah, ok
14:26 jnthn I guess I'm a little concerned about spreading that logic around.
14:26 jnthn But maybe it's worth it if there's a performance win.
14:27 jnthn Did you get any stats on that? iirc, pmichaud wanted to know whether it was worth it.
14:27 jnthn Intuitively it would be though.
14:27 mls_ Yes I did. I'll try to find the number in the irclog archive...
14:28 jnthn OK, thanks.
14:28 jnthn It may be worth re-testing too (more)
14:28 jnthn A bunch of things have got cheaper in recent days, so as a percentage win it may now be higher.
14:30 JimmyZ rakudo: class A { has $!b = 10;  }; sub foo($self) { $self!b };  say foo(A.new)
14:30 p6eval rakudo 5be6d6: OUTPUT«Method 'find_private_method' not found for invocant of class 'Perl6::Metamodel::PackageHOW'␤  in method dispatch:<!> at src/gen/CORE.setting:653␤  in sub foo at /tmp/kOgqeqdh_O:1␤  in <anon> at /tmp/kOgqeqdh_O:1␤  in <anon> at /tmp/kOgqeqdh_O:1␤␤»
14:31 jnthn LTA error
14:31 jnthn Thogh it's correct that it doesn't work.
14:31 mls_ jnthn: it was a 10% speedup for a simple return loop
14:32 thundergnat jnthn: .chrs is specced in S29 around  line #314
14:32 jnthn thundergnat: OK, in which case patches welcome.
14:32 jnthn mls_: IIUC, it's a PMC allocation less per block invocation?
14:32 jnthn (well, for ones that didn't have the thing optimized out...)
14:33 mls_ you mean sub, not block?
14:33 mls_ yes.
14:33 jnthn yes, sub.
14:33 jnthn OK
14:34 mls_ But note that we need to implement leave() someday, so the sub/block difference is kinda going away
14:34 jnthn *nod*
14:34 JimmyZ rakudo: class A { has $.b = 10;  }; sub foo($self) { $.b };  say A.new.&foo
14:34 p6eval rakudo 5be6d6: OUTPUT«Null PMC access in find_method('b')␤  in sub foo at /tmp/BM2KedbLm_:1␤  in method dispatch:<var> at src/gen/CORE.setting:640␤  in <anon> at /tmp/BM2KedbLm_:1␤  in <anon> at /tmp/BM2KedbLm_:1␤␤»
14:34 jnthn Well, only kinda.
14:35 JimmyZ rakudo: class A { has $.b = 10;  }; sub foo($self) { $self.b };  say A.new.&foo  #this one works
14:35 p6eval rakudo 5be6d6: OUTPUT«10␤»
14:36 mls_ anyway, I'll update the patch next week (and maybe also work a bit on exceptions)
14:36 jnthn mls_: OK, great. :)
14:36 jnthn Thanks. :)
14:36 mls_ afk... have a nice weekend
14:36 jnthn you too :)
14:42 * mberends re-remembers :-) http://www.art.net/~hopkins/Don/unix-haters/x-windows/disaster.html
14:44 arnsholt Ah, the Unix haters handbook. One of my all time favourites
14:45 mberends aye, http://www.art.net/~hopkins/Don/unix-haters/handbook.html # use the blinking cursor to log in :)
14:46 * mberends is trying to get the hands of the Niecza xclock to move
14:47 masak ooh, Niecza xclock!
14:47 mberends masak: on Ubuntu locally, it Just Works :P
14:51 masak cool!
14:53 mberends masak: Gtk# I mean. I was trying to find out why yours doesn't.
14:54 masak right. hm.
14:59 MayDaniel joined #perl6
15:10 pmurias masak: what's your Gtk# error?
15:10 * masak checks
15:10 masak pmurias: https://gist.github.com/1208171
15:11 pmurias you have Gtk# installed?
15:11 pmurias which version?
15:12 pmurias the example requires 2.12.0.0
15:14 mberends masak: try 'gacutil -l | less' to see what is installed
15:15 masak ok, lots of output.
15:15 masak what am I looking for?
15:16 mberends gtk-sharp
15:16 masak no such thing on the list.
15:17 mberends a package is probably missing, I'll try to find which one it should be
15:19 [Coke] too much to review.
15:24 mberends masak: Ubuntu (and Debian) package libgtk2.0-cil contains /usr/lib/cli/gtk-sharp-2.0/gtk-sharp.dll. You reported earlier that this was installed. It may help to force a re-install.
15:25 * masak tries that
15:25 mberends it may be having it in the filesystem is not enough, and that installing should add it to the GAC.
15:26 dalek rakudo/nom: ebe121d | jnthn++ | LHF.markdown:
15:26 dalek rakudo/nom: minmax is implemented; remove from LHF.
15:26 dalek rakudo/nom: review: https://github.com/rakudo/rakudo/commit/ebe121d48c
15:26 dalek rakudo/nom: 30e9bc4 | jnthn++ | src/Perl6/ (2 files):
15:26 dalek rakudo/nom: Fix issues with using Rats in the setting.
15:26 dalek rakudo/nom: review: https://github.com/rakudo/rakudo/commit/30e9bc4b48
15:26 dalek rakudo/nom: bb7c108 | jnthn++ | src/core/Temporal.pm:
15:26 dalek rakudo/nom: Uncoment most of class DateTime.
15:26 dalek rakudo/nom: review: https://github.com/rakudo/rakudo/commit/bb7c108e93
15:30 jnthn General note to Rakudo devs: proto auto-generation doesn't work in the setting. Always declare your protos explicitly.
15:31 jnthn (Don't particularly plan to fix this.)
15:31 masak mberends: I removed libgtk2.0-cil and installed it again, using apt-get. still the same error after that. :/
15:31 tokuhiro_ joined #perl6
15:34 mberends masak: 'gacutil -i /usr/lib/cli/gtk-sharp-2.0/gtk-sharp.dll' might add the library into your gac. otoh, your gacutil may be broken.
15:34 pmurias masak: do you have exactly 2.12.0.0
15:34 dalek rakudo/nom: 118be55 | jnthn++ | src/core/Temporal.pm:
15:34 pmurias masak: other version will not work at all
15:34 dalek rakudo/nom: Uncomment rest of temporal stuff. Removed 'multi' in a couple of places it didn't seem needed; if you want to add it back, remember to declare a proto as well.
15:34 dalek rakudo/nom: review: https://github.com/rakudo/rakudo/commit/118be55168
15:35 jnthn OK, now I've got it to all compile, plesae can some Rakudo folks who understand the temporal stuff take a look and see how well it works/if it passes tests and tinker as needed? Thanks! :)
15:36 mberends jnthn: ok, but slowly, no i7 monster here :)
15:37 * jnthn pat pats the i7 monster
15:37 pmurias masak: which distro do you use?
15:37 felher nom: my @whatever = 1..3.map: {$_} # why does that timeout?
15:38 p6eval nom 5be6d6: OUTPUT«(timeout)»
15:38 masak pmurias: Mono? I have 2.10, didn't know there were any higher.
15:38 masak pmurias: I'm on Ubunto something-or-other.
15:38 jnthn felher: First, it's not doing what you think
15:38 masak Ubuntu 2.6.38-11-generic according to uname -a
15:38 felher I know that this is not the same as (1..3).map: {$_} and probably doesn't make much sense, but why does it timeout
15:39 pmurias masak: the gtk example depends on an exact version of the gtk lib
15:39 felher jnthn: ;)
15:39 masak pmurias: oh!
15:39 jnthn nom: (1..[3])
15:39 p6eval nom 5be6d6:  ( no output )
15:39 jnthn nom: say eager (1..[3])
15:39 felher jnthn: it does't timeout if you don't assing it to whatever.
15:39 felher nom: 1..3.map: {$_} # why does that timeout?
15:39 p6eval nom 5be6d6: OUTPUT«(timeout)»
15:39 p6eval nom 5be6d6:  ( no output )
15:40 jnthn felher: Yeah, but then it never iterates the range.
15:40 felher jnthn: ah, that makes sense. :)
15:40 pmurias masak: i'm not sure now but there is a version number in the source of the example
15:41 jnthn nom: say [3].Numeric
15:41 p6eval nom 5be6d6: OUTPUT«1␤»
15:41 jnthn nom: say [3].Int
15:41 pmurias masak: i installed http://caesar.acc.umu.se/pub/gnome/sources/gtk-sharp/2.12/gtk-sharp-2.12.10.tar.gz from the source and it works for me
15:41 p6eval nom 5be6d6: OUTPUT«1␤»
15:41 jnthn nom: say 1 < [3]
15:41 p6eval nom 5be6d6: OUTPUT«Bool::False␤»
15:41 jnthn nom: say 1 2 [3]
15:41 p6eval nom 5be6d6: OUTPUT«===SORRY!===␤Confused at line 1, near "say 1 2 [3"␤»
15:41 jnthn nom: say 2 < [3]
15:41 p6eval nom 5be6d6: OUTPUT«Bool::False␤»
15:41 jnthn nom: say 3 < [3]
15:41 p6eval nom 5be6d6: OUTPUT«Bool::False␤»
15:41 jnthn Yeah, I can see where this is going :)
15:42 jnthn oh, maybe, hm.
15:42 moritz also note that 1..3.map is most likely not what one wants
15:42 moritz but rather (1..3).map
15:42 jnthn moritz: Right
15:42 jnthn moritz: I'm just not sure that it should hang when you do it rong.
15:42 pmurias masak: i think it might be best to just avoid the insanity of the package managers and compile that manually
15:42 moritz jnthn: it shouldn't, I think
15:43 jnthn moritz: Don't see why it is right off.
15:43 moritz nom: say (1..3)
15:43 p6eval nom 5be6d6: OUTPUT«1..3␤»
15:43 moritz nom: say (1..(3))
15:43 p6eval nom 5be6d6: OUTPUT«1..3␤»
15:43 moritz nom: say (1..(3).list)
15:43 p6eval nom 5be6d6: OUTPUT«1..(3,).list.item␤»
15:43 moritz nom: say (1..(3).list).list
15:43 p6eval nom 5be6d6: OUTPUT«(timeout)»
15:44 uasi joined #perl6
15:46 pernatiy joined #perl6
15:50 masak pmurias: ok.
15:51 masak I don't often hear people describe package managers as an insanity to avoid ;)
15:51 skangas joined #perl6
15:54 moritz for the user, they are a bit like sliced bread :-)
16:03 wamba joined #perl6
16:06 replore_ joined #perl6
16:11 mj41 joined #perl6
16:13 moritz ./perl6 --setting=NULL --target=pir  --output=src/gen/CORE.setting.pir src/gen/CORE.setting
16:13 moritz Could not find sub &DYNAMIC
16:13 moritz current instr.: 'trait_mod:<is>' pc 40 ((file unknown):133) (src/gen/CORE.setting:56)
16:13 moritz aka build is broken :(
16:13 jnthn wtf
16:14 jnthn works here.
16:14 jnthn No local patches.
16:14 tokuhiro_ joined #perl6
16:14 * jnthn reconfigures and tries again.
16:15 mberends moritz: same breakage here (Ubuntu 11.04) although ((file unknown):129)
16:15 jnthn shit, here too after a re-configure
16:18 TimToady_ niecza: say [max] 1,2,3
16:18 p6eval niecza v9-31-g37fcc8d: OUTPUT«Unhandled exception: Excess arguments to CORE infix:<max>, used 2 of 3 positionals␤  at /home/p6eval/niecza/lib/CORE.setting line 0 (CORE infix:<max> @ 0) ␤  at /home/p6eval/niecza/lib/CORE.setting line 1384 (CORE reduceop @ 10) ␤  at /tmp/9nYOurB7ug line 1…
16:18 jnthn oh, what on earth are all those "is export"s doing in those ops...
16:18 TimToady_ sorear: ^^
16:18 dukeleto joined #perl6
16:20 dalek rakudo/nom: bbe78ec | jnthn++ | src/core/Temporal.pm:
16:20 dalek rakudo/nom: Remove a bunch of 'is export's that shouldn't have been there. Not sure how the build didn't break here... :/
16:20 dalek rakudo/nom: review: https://github.com/rakudo/rakudo/commit/bbe78ec901
16:21 jnthn That seems to fix it.
16:21 jnthn Still not sure how I managed to get a build/spectest run that worked before :/
16:22 mberends rebuilding
16:28 Woodi joined #perl6
16:31 thundergnat I've written a patch to add chrs() and .chrs back into nom. Spec tests ok locally. I don't have a commit bit. Where's the best place to submit this? RT?
16:31 thundergnat There's a gist here: https://gist.github.com/1224100
16:31 jnthn gotta head out, bbl &
16:33 thundergnat Also I've written a bunch of tests for for chrs and ords I can add to roast. Should I put them in S29-conversions/ord_and_chr.t or make a new ords_and_chrs.t file?
16:36 miguet joined #perl6
16:39 thundergnat Hmm. The silence is deafening. Oh well forgiveness > permission and all that....
16:40 dalek roast: 19b6614 | thundergnat++ | S29-conversions/ord_and_chr.t:
16:40 dalek roast: Added tests for ords(), .ords, chrs() and .chrs
16:40 dalek roast: review: https://github.com/perl6/roast/commit/19b6614d19
16:41 mberends thundergnat: I'll test your commit after the previous commit's tests finish
16:53 wamba joined #perl6
17:08 [Coke] joined #perl6
17:10 gbacon joined #perl6
17:17 [Coke] joined #perl6
17:18 araujo joined #perl6
17:21 Trashlord joined #perl6
17:33 mberends \o/ Niecza clock with (slowly) moving hands, and a resource leak :) https://gist.github.com/1224163
17:34 Trashlord masak: do you know the swedish band Regurgitate?
17:35 moritz 4 xwsm n     b    ¬   hb j,
17:36 mberends ronja: hi
17:36 moritz mberends: ronja growls in greeting :-9
17:37 * mberends shrinks visibly
17:38 moritz mberends: it's not a threat, just a sign of enthusiasm
17:38 mberends :)
17:41 [Coke] joined #perl6
17:43 kfo joined #perl6
18:03 sorear good * #perl6
18:12 colomon o/
18:13 sorear mberends: interesting, I hadn't considered hidden interface methods at all.
18:14 sorear When I'm back on the mainline I think I'll do $obj.CLR::System::IDisposable::Dispose
18:15 sorear I guess this is related to "hides Base" from S12
18:24 Reaganomicon joined #perl6
18:29 sorear jnthn: out of curiousity, why doesn't proto autogeneration work in the setting?
18:29 sorear who is awake right now with Niecza compile issues?
18:34 PerlJam sorear: heh, I just got on to ask you about that.
18:36 PerlJam sorear: https://gist.github.com/1224212
18:37 flussence same here
18:38 sorear PerlJam: ok.  in the Makefile, in the boot/obj/CompilerBlob.dll rule, could you try changing /lib:obj to /lib:boot/obj ?
18:39 PerlJam trying
18:40 PerlJam looks like success.
18:40 PerlJam (at least I'm looking at a niecza> prompt right now :)
18:40 sorear yay
18:42 TimToady_ niecza: say [*] 1,2,3; say [max] 1,2,3;
18:42 p6eval niecza v9-31-g37fcc8d: OUTPUT«6␤Unhandled exception: Excess arguments to CORE infix:<max>, used 2 of 3 positionals␤  at /home/p6eval/niecza/lib/CORE.setting line 0 (CORE infix:<max> @ 0) ␤  at /home/p6eval/niecza/lib/CORE.setting line 1384 (CORE reduceop @ 10) ␤  at /tmp/pMtypw_fBc line…
18:43 TimToady_ sorear: what's the difference? ^^
18:43 sorear TimToady_: probably max is marked as list-associative in niecza's copy of STD
18:51 PerlJam sorear: how do you sync niecza's copy of STD with perl6's copy of STD?
18:51 PerlJam sorear: do you hand add features or copy it wholesale and then fixup what's broken?
18:54 TimToady_ niecza: say [~] 1,2,3
18:54 p6eval niecza v9-31-g37fcc8d: OUTPUT«123␤»
18:54 TimToady_ sorear: ~ is purportedly list associative too, but works
18:55 sorear TimToady_: ~ is written to take an unlimited number of arguments.  max isn't
18:56 TimToady anywho, [max] oughta work...
19:26 thundergnat I've been going through some of code I wrote for beijing  rakudo and testing it under nom. The X meta operator seems to be much slower now. Don't have any useful suggestions, just making an observation.
19:26 thundergnat b: my $t = now; my @r = (0..50); say ~(@r X, @r)[2500]; say now - $t, ' seconds';
19:26 p6eval b 1b7dd1: OUTPUT«49 1␤1.713 seconds␤»
19:26 thundergnat nom: my $t = now; my @r = (0..50); say ~(@r X, @r)[2500]; say now - $t, ' seconds';
19:26 p6eval nom bbe78e: OUTPUT«49 1␤5.67179321019412 seconds␤»
19:30 static_perl joined #perl6
19:37 moritz thundergnat: thanks for the report
19:37 * moritz hilights pmichaud
19:38 moritz nom: my $t = now; my @r = (0..50); my $x = ~(@r X @r)[2500]; say now - $t
19:38 p6eval nom bbe78e: OUTPUT«3.30956307681409␤»
19:45 Minimiscience joined #perl6
19:52 moritz nom: my @r = (0..50); my $t = now; my $x = ~(@r X @r)[2500]; say now - $t
19:52 p6eval nom bbe78e: OUTPUT«3.32703610270021␤»
19:52 moritz nom: my @r = (0..50); my $t = now; my $x = (@r X+ @r)[2500]; say now - $t
19:52 p6eval nom bbe78e: OUTPUT«5.29437567034281␤»
19:53 moritz b: my @r = (0..50); my $t = now; my $x = (@r X+ @r)[2500]; say now - $t
19:53 p6eval b 1b7dd1: OUTPUT«1.77227327207351␤»
20:00 alester joined #perl6
20:05 localhost joined #perl6
20:11 im2ee joined #perl6
20:12 tadzik oh, :nocache turns out to be useful :)
20:13 tadzik being not only a Pod whim :)
20:19 dalek niecza: 380d891 | sorear++ | Makefile:
20:19 dalek niecza: Fix build
20:19 dalek niecza: review: https://github.com/sorear/niecza/commit/380d891e9a
20:24 tadzik no 'is rw' in nom?
20:25 tadzik nom: sub a($b is rw) { $b = 5 }; my $a = 5; a($a); say $a
20:25 p6eval nom bbe78e: OUTPUT«5␤»
20:25 tadzik hrm
20:25 tadzik maybe not in the setting
20:26 moritz tadzik: are you looking at temporal failures?
20:26 tadzik moritz: yes
20:26 moritz nom: sub a($b is rw) { $b = 5 }; a(8)
20:26 p6eval nom bbe78e: OUTPUT«Cannot assign to a non-container␤  in sub a at /tmp/PKOG02Wn50:1␤  in <anon> at /tmp/PKOG02Wn50:1␤  in <anon> at /tmp/PKOG02Wn50:1␤␤»
20:26 tadzik heh, how did it even work before
20:27 thundergnat nom: sub a($b is rw) { $b = 2 }; my $a = 5; a($a); say $a
20:27 p6eval nom bbe78e: OUTPUT«2␤»
20:27 moritz somehow this whole setup seems stupid
20:27 thundergnat You can't assign to a constant
20:27 moritz first assigning to attributes, and *then* checking and truncating
20:28 tadzik BUILD should do that imho
20:29 tadzik then we could possibly be going with default .new
20:29 wallberg joined #perl6
20:29 tadzik moritz: are you hacking on that right now?
20:31 moritz tadzik: I'm about to commit 2 tiny fixes, and then go to bed
20:31 tadzik okay
20:31 * jnthn home
20:31 tadzik ohitsjnthn
20:32 dalek rakudo/nom: 6fde31d | moritz++ | src/core/Temporal.pm:
20:32 dalek rakudo/nom: two tiny Date fixes
20:32 dalek rakudo/nom: review: https://github.com/rakudo/rakudo/commit/6fde31d68e
20:32 * moritz -> sleep
20:32 jnthn Oh, dates!
20:32 tadzik gnight moritz
20:33 jnthn hi and bye, moritz  :)
20:37 alester joined #perl6
20:41 tadzik bwahaha
20:41 tadzik nom: Date.new(DateTime.new);
20:41 p6eval nom bbe78e:  ( no output )
20:41 tadzik nom: Date.new(DateTime.new); say 'alive'
20:41 p6eval nom bbe78e:  ( no output )
20:41 tadzik it segfaults :)
20:41 cotto might be a bug
20:41 tadzik Program received signal SIGSEGV, Segmentation fault.
20:41 tadzik 0x00007ffff3dde4a7 in Rakudo_cont_store () from dynext/perl6_ops.so
20:45 tadzik class A { has $.b; multi method new(Int $b) { say "I'm working" } }; A(7)
20:45 tadzik nom: class A { has $.b; multi method new(Int $b) { say "I'm working" } }; A(7)
20:45 p6eval nom bbe78e: OUTPUT«Could not find sub &A␤  in <anon> at /tmp/vzadNiCAT5:1␤  in <anon> at /tmp/vzadNiCAT5:1␤␤»
20:45 tadzik nom: class A { has $.b; multi method new(Int $b) { say "I'm working" } }; A.new(7)
20:45 p6eval nom bbe78e: OUTPUT«I'm working␤»
20:45 tadzik huh
20:45 sorear b: my $a := $a; say $a
20:45 p6eval b 1b7dd1: OUTPUT«Segmentation fault␤»
20:46 sorear tadzik: are you sure it's segfaulting?
20:46 sorear er
20:46 tadzik (:
20:46 sorear tadzik: I mean, why isn't the segault being reported on p6eval?
20:46 tadzik sorear: well, it segfaults here locally
20:46 tadzik I don't know why it's not reported
20:50 * masak senses a disturbance in the force...
20:50 masak Trashlord: no, I am unfamiliar with that band.
20:51 sorear o/ masak
20:51 masak \o
20:52 bluescreen10 joined #perl6
20:54 jnthn tadzik: segv?
20:54 tadzik jnthn: yeah
20:54 tadzik on HEAD
20:54 jnthn OH NOES
20:54 tadzik on my head too :)
20:54 masak on your head be it.
20:55 jnthn tadzik: How to reproduce?
20:55 jnthn tadzik: As in, the segfault?
20:55 tadzik jnthn: Date.new(DateTime.new);
20:55 jnthn boom
20:55 jnthn Yeah, segfault here too
20:56 * tadzik is struggling with multi custom new()s
20:56 jnthn devenv perl6.exe :)
20:57 jnthn er, the thing passed to store has a vtable pointer with value 1.
20:57 jnthn That's...not a valid address.
20:58 tadzik oh, you have a fast machine. Could you try that on HEAD~1?
20:58 tadzik like, before moritz's fix
20:58 sorear probably not relevant, but I think that 1s get used on the common C++ ABI for pointers to virtual methods
20:59 jnthn tadzik: I haven't pulled yet, so it segfaults on bbe78ec901c1f1
20:59 tadzik oh, cool
20:59 jnthn Well, I'd not call a segfault cool :P
20:59 tadzik hmm
21:00 tadzik nom: sub segfault { Date.new(DateTime.new) }; say so segfault ~~ Cool
21:00 p6eval nom 6fde31: OUTPUT«Use of uninitialized value in string context␤Too many positional parameters passed; got 1 but expected 0␤  in sub segfault at /tmp/ZVba4yoBgC:1␤  in <anon> at /tmp/ZVba4yoBgC:1␤  in <anon> at /tmp/ZVba4yoBgC:1␤␤»
21:00 tadzik nom: sub segfault { Date.new(DateTime.new) }; say so segfault() ~~ Cool
21:00 p6eval nom 6fde31:  ( no output )
21:00 tadzik eh, we'll never know :)
21:00 sorear jnthn: Do you have a clue why nom: doesn't report segfaults?
21:01 jnthn sorear: 'fraid not.
21:01 sorear b: pir::branch__vi(-1000)
21:01 p6eval b 1b7dd1: OUTPUT«Segmentation fault␤»
21:01 sorear nom: pir::branch__vi(-1000)
21:01 p6eval nom 6fde31:  ( no output )
21:01 sorear rakudo: pir::branch__vi(-1000)
21:01 p6eval rakudo 6fde31:  ( no output )
21:01 jnthn We ain't doing anything in nom to suppress them.
21:01 sorear I'll look into it
21:01 jnthn (knowingly)
21:03 sorear p6eval@host04:~/evalbot$ ../nom-inst/bin/perl6 --setting=SAFE -e 'pir::branch__vi(-1000)'
21:03 jnthn tadzik: meh, the root cause of the segfault is less clear.
21:03 sorear Segmentation fault
21:03 * sorear pines for pir::hcf
21:05 jnthn oh, hmm...something is deicdedly wrong with this debug output
21:08 im2ee joined #perl6
21:08 jnthn tadzik: ah, that example wasn't golfed
21:09 tadzik well, probly
21:09 jnthn tadzik: Just DateTime.new does it.
21:09 tadzik oh, cool
21:15 jnthn I guess we hit the default constructor in that case too
21:16 tadzik yeah, the specified one is acting funny
21:16 tadzik for example, DateTime.new(now) doesn't dispatch to neither of the specified ones them
21:17 tadzik but it works with some generic multi method new($i)
21:17 jnthn has     &.formatter; # = &default-formatter;
21:17 jnthn Not segfault if I comment that out
21:17 jnthn o.O
21:17 jnthn *no
21:17 tadzik $i ends up being 1316294146, Num
21:17 tadzik but it doesnt ~~ with Int
21:17 sorear odd, I can't push to github from feather
21:17 jnthn missing sshkey?
21:17 tadzik keys?
21:17 dalek evalbot: f4d019b | sorear++ | evalbot.pl:
21:17 dalek evalbot: Enable command-line testing of p6eval changes
21:17 dalek evalbot: review: https://github.com/perl6/evalbot/commit/f4d019b973
21:18 sorear jnthn: very very slow
21:18 jnthn oh, push to evalbot...duh :)
21:18 sorear and I mean host04
21:18 jnthn tadzik: Investigating further.
21:18 tadzik okay
21:20 flussence I got niecza/t/run_spectests to work properly! (still no idea why it didn't work for me before...)
21:21 alvis joined #perl6
21:21 jnthn tadzik: eww :(
21:22 jnthn tadzik: Golfed it to something that doesn't involve Temporal.
21:22 jnthn tadzik: sub foo() { 1 }; class Bar { has &.x = &foo }; Bar.new
21:22 tadzik ew
21:22 jnthn That explodes.
21:22 masak something to do with the magical attrinit closures?
21:22 jnthn mebbe
21:23 masak maybe they get OUTER'd improperly?
21:23 jnthn Possibly.
21:23 masak or sump'n.
21:23 sorear wtf
21:23 jnthn oh wtf.
21:23 sorear p6eval forks TWICE before running your code.
21:23 jnthn > sub foo() { 1 }; class Bar { has $.x = &foo }; Bar.new
21:23 jnthn Bar<230000816>
21:24 tadzik hy
21:24 jnthn sorear: That's forked up
21:24 sorear and the exit code is being lost between the first and second fork
21:24 tadzik jnthn: yeah, you can never have too many dollars
21:24 soh_cah_toa joined #perl6
21:25 jnthn I'm *so* glad it's not an outers bug...
21:25 tadzik :D
21:25 tadzik . o O ( LALALALA! GC BUG? I CAN'T HEAR YOU! LALALAA! )
21:27 tadzik wth is "duplicate named argument in call"?
21:28 tadzik nom: sub a(:$foo) {}; a(foo => 7, foo => 8)
21:28 p6eval nom 6fde31: OUTPUT«duplicate named argument in call␤  in <anon> at /tmp/5We0C8dRWg:1␤  in <anon> at /tmp/5We0C8dRWg:1␤␤»
21:28 tadzik okay
21:29 sorear Anyone know offhand how to get from 11 to "Segmentation fault" in perl5?
21:29 masak tadzik: that's not spec, but I'm on nom's side there.
21:29 tadzik masak: I don't see it anywhere in the source, that sentence
21:29 tadzik it's Parrot's error
21:30 masak aye.
21:30 jnthn Yes, it is
21:30 tadzik I wonder where it is
21:30 masak the problem, I guess, is if you flatten several hashes or something like that.
21:30 masak then you probably want the last named to override.
21:31 masak the spec is insane and talks about values collecting into arrays... :/
21:31 sorear perldoc POSIX doesn't list psignal or strsignal
21:32 sorear ah, found something
21:38 sorear evalbot control restart
21:38 dalek evalbot: f52ae10 | sorear++ | lib/EvalbotExecuter.pm:
21:38 dalek evalbot: Only fork once, use signal names
21:38 dalek evalbot: review: https://github.com/perl6/evalbot/commit/f52ae103aa
21:38 p6eval joined #perl6
21:38 sorear nom: pir::branch__vi(-1000)
21:39 p6eval nom 6fde31: OUTPUT«(signal SEGV)»
21:39 tadzik I think self.bless(*, :$year, :$month, :$day, :$hour, :$minute, :$second, :&formatter) is causing the problem
21:39 sorear not perfect, but an improvement
21:39 sorear nom: Date.new(DateTime.new);
21:39 p6eval nom 6fde31: OUTPUT«(signal SEGV)»
21:40 tadzik sorear++
21:40 jnthn Trying a possible patch.
21:43 jnthn > sub foo() { 1 }; class Bar { has &.x = &foo }; Bar.new.x().().say
21:43 jnthn 1
21:43 jnthn > say DateTime.new.WHAT
21:43 jnthn DateTime()
21:43 jnthn Better.
21:43 jnthn pst
21:43 jnthn oops
21:43 jnthn testing
21:47 dalek rakudo/nom: d41bb84 | jnthn++ | src/Perl6/Actions.pm:
21:47 dalek rakudo/nom: Fix 'has &.x'.
21:47 dalek rakudo/nom: review: https://github.com/rakudo/rakudo/commit/d41bb84759
21:48 jnthn tadzik: pre t'a ^^
21:48 tadzik jnthn++
21:48 sorear jnthn: That was segfaulting?!
21:48 * sorear wonders...how...
21:48 jnthn sorear: Yeah...though the patch fixes the surface issue.
21:49 jnthn sorear: I need to do some digging to work out how on earth it could have led to a segfault.
21:49 jnthn Well, 6model doesn't go checking every possible thing for you.
21:50 jnthn It does expect a compiler to enforce its own type system. :)
21:50 jnthn But in this case...I'm surprised.
21:50 sorear Are custom metaobjects allowed to create segfaults?
21:51 jnthn It's probably pretty hard.
21:51 jnthn There's one easy way
21:51 jnthn Which is to set up a native integer attribute
21:51 jnthn And then emit code that expects to access it as an objct
21:51 jnthn Oh
21:51 sorear Negative integer attribute...?
21:52 jnthn But that's not really possible
21:52 sorear oh
21:52 jnthn It's really hard with P6opaque to set up a segfault that way in a custom meta-object though.
21:52 jnthn It only ever asks the meta-attribute about its type once
21:53 jnthn And the compiler asks the representation when it wants to do code-gen, not the meta-attribute.
21:53 jnthn So you don't actually get a chance to give inconsistent answers.
21:53 jnthn So in fact, that segfault vector is covered too.
21:54 jnthn I suspect this segfault was a result of some mis-configuration of Scalar's attributes.
21:54 jnthn Oh, it could also be something expecting a 6model object and getting back a null PMC.
21:54 jnthn But that should always be detected.
21:55 jnthn yeah, it's looking like it's that...somehow. Hm.
21:56 jnthn aha.
21:56 tadzik nom: DateTime.now
21:56 p6eval nom 6fde31: OUTPUT«Default constructor only takes named arguments␤  in method new at src/gen/CORE.setting:506␤  in method new at src/gen/CORE.setting:6561␤  in method now at src/gen/CORE.setting:6613␤  in <anon> at /tmp/5LWeE7x9tB:1␤  in <anon> at /tmp/5LWeE7x9tB:1␤␤»
21:57 tadzik okay, at least I have that one fixed
21:58 dalek rakudo/nom: 375fa0a | tadzik++ | src/core/Temporal.pm:
21:58 dalek rakudo/nom: Small Temporal tune, fixes Date.new(Instant)
21:58 dalek rakudo/nom: review: https://github.com/rakudo/rakudo/commit/375fa0af2e
21:58 tadzik ooh, I think I see it now
21:59 tadzik self.clone(second => foo)
21:59 tadzik and clone has :$!second, **and** |%_
21:59 jnthn Not sure clone taking args is implemented yet
21:59 tadzik there's a custom clone(*%_)'
22:00 tadzik testing a fix
22:01 jnthn oh, ok :)
22:02 tadzik well, a stupid one
22:02 tadzik %_<second> || :$!second
22:02 tadzik but should work in this particular case :)
22:02 lichtkind joined #perl6
22:02 lichtkind cheers good people of perl 6
22:02 tadzik hello lichtkind
22:02 lichtkind hej
22:03 tadzik oh, I mean, guten abend lichtkind
22:03 lichtkind tadzik: see you in ffm?
22:03 tadzik ffm?
22:04 lichtkind you as a polished ähm polish guy know we have at least 2 frankfurts the one where german perl workshop happens is FrankFurt am Main or short ffm
22:04 masak greetings, o lichtkind, lightbearer and witty guy.
22:05 lichtkind masak: i take this at tongue in cheek :)
22:05 tadzik lichtkind: what does the second f stand for?
22:06 tadzik and, re ffm, if you're inviting... ;)
22:06 jnthn Furt :P
22:06 lichtkind yes i upercased it
22:06 masak lichtkind: I'm never quite sure where my tongue is... :)
22:07 lichtkind hahaha, that was good
22:07 tadzik 13th German Perl-Workshop, right?
22:07 masak lichtkind: for you too? :P
22:07 lichtkind yes
22:07 tadzik oh, it's a few-dayer
22:07 lichtkind 3
22:07 lichtkind but 1 track onlx
22:08 lichtkind even in italy we had 2
22:08 lichtkind so much less stress than in riga
22:08 tadzik not sure I'll be able to attend
22:10 tadzik so see you in ffm, but that'll probably be the next YAPC :)
22:10 jnthn the next YAPC! \o/
22:10 lichtkind allright
22:10 benabik joined #perl6
22:10 jnthn oh, wait, it's 11 months away... :)
22:11 lichtkind jnthn: there is still tcpw
22:11 tadzik doesn't matter! The next YAPC! \o/
22:11 jnthn lichtkind: Yes, I'm going to that :)
22:11 lichtkind haha
22:11 lichtkind jnthn: i hope they but my talk before yours, i mean so i can lay groundwork
22:13 lichtkind ffm.pm is very busy looks like they take it very seriously
22:14 lichtkind they are so active they did most years there own litttle perl workshop :)
22:14 lichtkind which was especially good last year
22:39 tadzik b: sub a(:$foo) {}; a(foo => 7, foo => 8)
22:39 p6eval b 1b7dd1: OUTPUT«duplicate named argument in call␤  in main program body at line 22:/tmp/XJhle1lEUB␤»
22:39 tadzik that makes me wonder how DateTime even worked in b
22:39 packetknife joined #perl6
22:41 jnthn tadzik++ # fixing stuff
22:56 tadzik Dynamic variable $*TZ not found
22:56 tadzik now we're somewhere :)
22:56 jnthn :)
22:57 tadzik funnily, I don't know where it is supposed to be initialized/set
22:58 tadzik I don't see it in ng either
22:58 tadzik src/cheats/process.pm
22:58 tadzik yeah
22:58 tadzik could I just put it in Temporal.pm in nom that way?
22:58 tadzik our $TZ = ::DateTime-local-timezone.new;
22:59 tadzik that doesn't look too dynamic
22:59 jnthn Shouldn't it go in PROCESS?
22:59 jnthn Note that $*foo looks through call frames, then GLOBAL, then PROCESS.
23:00 jnthn It's almost certain you want to put it in PROCESS
23:00 jnthn As the spec says that the setting should put nothing in GLOBAL.
23:00 tadzik mhm
23:00 jnthn $PROCESS::TZ = DateTime-local-timezone.new;
23:00 tadzik yeah
23:00 jnthn Just put that at the end of Temporal.pm
23:00 jnthn Should work.
23:01 tadzik time will tell
23:01 tadzik oh, wait...
23:06 tokuhiro_ joined #perl6
23:06 tadzik hmm, I wonder how possible is a CPU upgrade in a laptop
23:29 uasi joined #perl6
23:32 dukeleto joined #perl6
23:33 [particle] joined #perl6
23:37 masak 'night, channel.
23:48 sorear rakudo: sub foo { say "hi" }; BEGIN { foo }
23:48 p6eval rakudo 375fa0: OUTPUT«hi␤»
23:48 sorear jnthn++
23:49 packetknife joined #perl6
23:53 jnthn rakudo: sub foo { say "hi" }; BEGIN foo # just checking...
23:53 p6eval rakudo 375fa0: OUTPUT«hi␤»
23:53 jnthn phew :)
23:54 tadzik :)
23:54 tadzik rakudo: BEGIN { /d/ }
23:54 p6eval rakudo 375fa0:  ( no output )
23:54 tadzik rakudo: BEGIN { /\d/ }
23:54 p6eval rakudo 375fa0:  ( no output )
23:54 tadzik rakudo: BEGIN /\d/
23:54 p6eval rakudo 375fa0:  ( no output )
23:54 tadzik oh, fixed? :)
23:56 jnthn I patched that yesterdayish
23:56 jnthn OK, I can't remember which day.
23:56 jnthn They all blur together.
23:56 jnthn :)
23:56 jamtech joined #perl6
23:57 molaf joined #perl6
23:57 JimmyZ joined #perl6
23:58 tadzik :0
23:58 tadzik :)
23:58 tadzik gah, I need some auto-correct for this :0

| Channels | #perl6 index | Today | | Search | Google Search | Plain-Text | summary

Perl 6 | Reference Documentation | Rakudo