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