»ö« 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. |
|||
00:00
sergot joined,
sergot left
00:12
whiteknight joined
00:32
seanstickle left
|
|||
dalek | ecs: f1f6183 | larry++ | S02-bits.pod: clobber 'as' returns; use coercion types instead |
00:37 | |
ast: 9cb6c42 | larry++ | S02-types/type.t: delete tests of 'as' return type |
00:39 | ||
ast: c084f3e | larry++ | S03-binding/scalars.t: cannot use sig syntax without using sig syntax! |
00:43 | ||
00:46
Teratogen left
|
|||
dalek | ast: 8b2e841 | larry++ | S03-operators/precedence.t: convert accidental nobreak space to normal |
00:49 | |
ast: 5864e49 | larry++ | S06-traits/as.t: convert 'as' tests to coercion tests (file is still misnamed and misplaced) |
|||
ast: 1f9686d | larry++ | integration/advent2009-day18.t: remove accidental interpolation in test message |
00:58 | ||
00:58
Teratogen joined
01:05
am0c joined
01:08
mikemol joined,
Alias_ joined
01:16
Alias_ left
01:18
ascent_ joined
01:19
ascent_ left
01:23
seanstickle joined
01:24
PacoAir left
01:27
fridim_ left
|
|||
dalek | ast: 6ee7d4a | coke++ | S32-list/map.t: pugs fudge |
01:32 | |
gs.hs: 52a3ace | coke++ | Pugs/ext/Test/lib/Test.pm: add nok() to Test.pm Fixes #3 |
01:33 | ||
gs.hs: cfa31fc | coke++ | t/spectest.data: run fudged test |
|||
01:34
unobe left
01:35
unobe joined
01:43
seanstickle left
02:09
whiteknight left
02:15
jaldhar joined
02:21
tokuhirom joined
02:27
thou left
02:37
wolfman2000 joined
02:41
benabik left,
benabik joined
02:43
benabik_ joined
02:45
benabik left,
benabik_ is now known as benabik
02:46
xinming left
02:47
xinming joined
02:50
NamelessTee left
02:52
thou joined
03:22
orafu left,
orafu joined
03:26
bluescreen10 left
03:27
sisar joined
03:43
tokuhirom left
04:09
Jerkwad left
04:11
thou left
04:13
araujo left
04:17
araujo joined
04:20
sisar left
04:28
robinsmidsrod left
04:29
robinsmidsrod joined,
snarkyboojum left
04:30
snarkyboojum joined
04:31
alvis left
04:40
wooden joined,
wooden left,
wooden joined
04:43
alvis joined
05:06
am0c left
05:09
birdwindupbird joined
05:14
apejens left
05:15
apejens joined
05:21
Thursdaydoesntma joined
05:39
Thursdaydoesntma left
05:45
kevin__ joined
05:46
colomon left
05:54
kevin__ left
06:20
colomon joined
06:26
fsergot left
06:36
bbkr_ joined,
bbkr left,
bbkr_ is now known as bbkr
06:39
bbkr_ joined,
bbkr left,
bbkr_ is now known as bbkr
06:48
fsergot joined
06:57
fsergot left
|
|||
moritz | \o | 07:00 | |
sorear | o/ moritz | 07:01 | |
07:19
kaare_ joined
|
|||
dalek | ecza: 956bfc5 | sorear++ | docs/announce.v15: Add an empty annouce.v15 for pmurias |
07:34 | |
sorear | phenny: tell pmurias It would be nice if you could add a description of your latest p5 interop stuff to announce.v15 sometime before Tue Feb 28 08:00:00 UTC 2012 | 07:37 | |
phenny | sorear: I'll pass that on when pmurias is around. | ||
sorear | date --utc -d "$( date -d 'next tuesday' )" # kind of suprised this works. pity I needed two date calls, though | 07:38 | |
07:43
dankodin left
|
|||
geekosaur | one works for me, unless there's some corner case I'm missing (like you want the UTC of local "00:00 next tuesday") | 07:59 | |
sorear | geekosaur: that's exactly what I want | 08:00 | |
turns out date --utc -d 'TZ="America/Los_Angeles" next tuesda | |||
y' also works | |||
apparently --utc implies TZ="UTC" unless overrided inside -d | |||
instead of just setting the output timezone, like I expected | 08:01 | ||
sorear wonders what will happen if San Diego and Los Angeles stop agreeing on what timezone to use | 08:02 | ||
moritz | people on twitter thinks that perl 6 is dead, because the activity on the mailing lists dropped | ||
sorear | zoneinfo doesn't even have an America/San_Diego zone :| | ||
tell them that the mailing lists are dead, and development is done on IRC now | 08:03 | ||
au | "mailing list is dead, love live twitter"? j/k | ||
sorear | o/ au | ||
au | *long, even | ||
/o sorear | |||
geekosaur | the one downside of that astrology outfit dropping ts lawsuit over the Olson database is we've lost that impetus to kill timezones completely | 08:04 | |
sorear | apparently there are still people out there who think DST is a good idea | 08:05 | |
geekosaur | it's worse than that | 08:07 | |
in the US, DST is really standard time. then there's xmas shopping time. | |||
which is gradually being pushed closer and closer to "only during shopping silly season" | |||
08:16
birdwindupbird left
08:19
fsergot joined
|
|||
fsergot | Hi #perl6 o/ | 08:19 | |
sorear | hello fsergot! | ||
08:22
sergot joined,
fsergot left
|
|||
sorear | hello sergot! | 08:23 | |
08:24
fsergot__ joined,
fsergot__ left
|
|||
sorear | sergot: your connection is broken. | 08:25 | |
08:27
sergot left
08:40
tokuhir__ joined
08:52
birdwindupbird joined
08:54
thou joined
09:06
MayDaniel joined
09:07
MayDaniel left,
dukeleto left
09:08
dukeleto joined
09:15
Jerkwad joined
09:17
Jerkwad left,
Jerkwad joined
09:22
plutoid joined
09:26
mj41 joined,
birdwindupbird left
09:28
fsergot joined
09:30
plutoid left
09:31
plutoid joined
09:40
tokuhirom3 left
09:41
tokuhirom3 joined
09:42
aindilis` left,
aindilis` joined
09:44
TimToady left,
TimToady joined
09:46
bkolera left
09:54
NamelessTee joined
|
|||
dalek | ecza: dc59468 | sorear++ | lib/Cursor.cs: Quick hack to generate fewer unreachable NFA nodes Now if <foo> generates something that blocks LTM, <foo> <bar> won't generate nodes for <bar>. Cuts 65% of the NFA nodes from the CORE compilation; also reduces time from 61s to 51s and memory usage from ~220m to ~170m. |
10:10 | |
10:10
MayDaniel joined
10:25
Trashlord joined
|
|||
colomon | sorear++ | 10:34 | |
10:35
unobe left,
unobe joined
|
|||
sorear | o/ colomon | 10:40 | |
colomon | \o | ||
you're up late, I'm up early. :) | |||
sorear | heh heh heh. | ||
I've only been up for about 12h actually :| | 10:41 | ||
10:43
ascrazy joined
10:51
revdiablo left,
revdiablo joined
|
|||
colomon | btw, spectest looks good after that last change. sorear++ | 10:52 | |
10:53
MayDaniel left,
JimmyZ joined
|
|||
colomon | nom: say [a => 1, b => 17].map({ .key => .value + 1}) | 10:59 | |
10:59
ascrazy left
|
|||
p6eval | nom 0f9695: OUTPUT«Method 'key' not found for invocant of class 'Any' in block <anon> at /tmp/ypVzoimcdn:1» | 10:59 | |
colomon | nom: say [a => 1, b => 17].map({ ; .key => .value + 1}) | ||
p6eval | nom 0f9695: OUTPUT«a 2 b 18» | ||
11:00
marmalade joined,
pyrimidine left
|
|||
moritz | nom: (a => 1, b => 17).map: -> $ (:$key, :$value) { $key => $value + 1 } | 11:00 | |
p6eval | nom 0f9695: ( no output ) | ||
moritz | nom: say (a => 1, b => 17).map: -> $ (:$key, :$value) { $key => $value + 1 } | 11:01 | |
p6eval | nom 0f9695: OUTPUT«a 2 b 18» | ||
11:02
Jerkwad left
|
|||
dalek | ast: 079dbfb | (Solomon Foster)++ | S32-list/map.t: Fix broken test by adding semicolon (so map gets a block and not a hash); unfudge for niecza and rakudo. |
11:02 | |
11:02
pyrimidine joined
|
|||
colomon | moritz: can you please check that map.t still works on the latest rakudo after that patch? I did a speculative unfudge. :) | 11:02 | |
moritz | colomon: will do | ||
colomon | moritz++ | ||
11:03
thou left
|
|||
JimmyZ wonders why needs ';' | 11:03 | ||
sorear | hash/block disambiguation is a bit dicey in niecza; it's specced in terms of concrete syntax but niecza implements it (brokenly) at the AST level | 11:04 | |
moritz | because compilers can't read minds | ||
sorear | because the Perl 5 rule was too complicated and nobody feels like kicking either form out of ASCII | ||
JimmyZ | nom: say [a => 1, b => 17].map({ .key => .value + 1; }) | ||
p6eval | nom 0f9695: OUTPUT«Method 'key' not found for invocant of class 'Any' in block <anon> at /tmp/0GW0fa9v8f:1» | ||
sorear | I would +1 a proposal to add unambiguous Unicode "block braces" and "hash braces", although I'm not certain I'd actually use it | 11:05 | |
niecza: { .key => .value + 1 } | |||
p6eval | niecza v14-70-gdc59468: OUTPUT«Unhandled exception: Unable to resolve method key in class Any at /tmp/jJR5yhNCMg line 1 (mainline @ 4)  at /home/p6eval/niecza/lib/CORE.setting line 3830 (ANON @ 3)  at /home/p6eval/niecza/lib/CORE.setting line 3831 (module-CORE @ 65)  at /home/p6… | ||
sorear | niecza: { .key => .value + 1; } | ||
p6eval | niecza v14-70-gdc59468: OUTPUT«Unhandled exception: Unable to resolve method key in class Any at /tmp/kWrXvBsv1i line 1 (mainline @ 4)  at /home/p6eval/niecza/lib/CORE.setting line 3830 (ANON @ 3)  at /home/p6eval/niecza/lib/CORE.setting line 3831 (module-CORE @ 65)  at /home/p6… | ||
sorear | niecza: {; .key => .value + 1 } | ||
p6eval | niecza v14-70-gdc59468: OUTPUT«Unhandled exception: Unable to resolve method key in class Any at /tmp/BA7hxkddOg line 1 (mainline @ 4)  at /home/p6eval/niecza/lib/CORE.setting line 3830 (ANON @ 3)  at /home/p6eval/niecza/lib/CORE.setting line 3831 (module-CORE @ 65)  at /home/p6… | ||
moritz | we could allow &{ } for blocks | 11:06 | |
sorear: fwiw I don't like the "unable to resolve method" error. It leaves open the question if the method is there, and the compiler was unable to resolve it, or if the method is missing | 11:07 | ||
niecza: foo | |||
p6eval | niecza v14-70-gdc59468: OUTPUT«===SORRY!===Undeclared routine: 'foo' used at line 1Unhandled exception: Check failed at /home/p6eval/niecza/boot/lib/CORE.setting line 1344 (die @ 3)  at /home/p6eval/niecza/src/STD.pm6 line 1147 (P6.comp_unit @ 33)  at /home… | ||
sorear | moritz: mm. you think "Method not found" is better wording? | 11:08 | |
JimmyZ | nom: say [a => 1, b => 17].map( *.key => *.value + 1) | ||
p6eval | nom 0f9695: OUTPUT«a 18» | ||
moritz | sorear: yes, though "No such method" would be even clearer | 11:09 | |
hm | |||
I'm sure others will have better suggestions on how to phrase it | |||
11:10
Chillance joined
|
|||
JimmyZ couldn't understand why it outputs "a 18" | 11:10 | ||
moritz | JimmyZ: because you give it a closure with two arguments | 11:11 | |
sorear | JimmyZ: the first * becomes a => 1, the second * becomes b => 17 | ||
moritz | JimmyZ: and it takes the .key of the first argument and the .value of the second one | ||
JimmyZ | perl6: say [a => 1, b => 17].map( *.key => *.value + 1) | 11:12 | |
p6eval | pugs b927740: OUTPUT«*** No such method in class Num: "&key" at /tmp/WPnQmP_q4n line 1, column 28-48» | ||
..rakudo 0f9695: OUTPUT«a 18» | |||
..niecza v14-70-gdc59468: OUTPUT«"a" => 18» | |||
JimmyZ | moritz: thanks | 11:13 | |
moritz | .oO( I could have answered again with "because compilers can't read minds" :-) |
11:16 | |
11:22
whiteknight joined
11:23
p6eval left
11:24
diakopter left,
TimToady left,
dalek left
11:25
sorear left
11:36
PacoAir joined
11:48
p6eval joined,
ChanServ sets mode: +v p6eval
11:49
dalek joined,
ChanServ sets mode: +v dalek,
TimToady joined,
sorear joined,
diakopter joined
|
|||
dalek | ecza: 636d915 | sorear++ | lib/Cursor.cs: Use a more compact representation for edge lists |
11:54 | |
ecza: f99bd59 | sorear++ | lib/Cursor.cs: Avoid the need to constantly create singleton character classes |
|||
sorear | LTM is no longer leading the memory usage chart | 11:55 | |
memory usage is now led by Perl 6 objects | |||
which means the Mono memory profiler isn't helping me anymore :| | |||
I need to find a way to get, at least, a census by .mo.name of live P6opaque objects | 11:56 | ||
possibly by hacking the mono heap profiler itself - yes I'm that crazy | |||
sorear -> sleep | |||
12:04
plutoid left
12:10
fridim_ joined
12:12
noam left
12:13
noam joined
|
|||
moritz | perl6: say Any.?() | 12:17 | |
p6eval | pugs b927740: OUTPUT«***  Unexpected "?()" expecting ".", "\187", ">>", "=", "^", operator name, qualified identifier, variable name, "...", "--", "++", "i", array subscript, hash subscript or code subscript at /tmp/xdTXhaIBE1 line 1, column 9» | ||
..rakudo 0f9695: OUTPUT«===SORRY!===Cannot use .? on a non-identifier method call at line 1, near ""» | |||
..niecza v14-72-gf99bd59: OUTPUT«===SORRY!===Modified method calls can only be used with actual methods at /tmp/q5riTb6pfy line 1 (EOF):------> say Any.?()⏏<EOL>Unhandled exception: Check failed at /home/p6eval/niecza/boot/lib/CORE.setting line… | |||
12:17
peterete1 left
12:22
fsergot left
|
|||
moritz | std: say Any.?() | 12:26 | |
p6eval | std a540d4e: OUTPUT«ok 00:01 108m» | ||
moritz | is tere a good reason to disallow that? | ||
*there | |||
I can imagine that it's useful when optionally invoking a callback | |||
12:27
HarryS joined
12:32
cognominal left
12:39
cognominal joined
12:44
seanstickle joined
12:51
mikec joined,
mikec is now known as mcartmell
12:56
birdwindupbird joined
13:05
mj41 left
|
|||
colomon | sorear: still up? | 13:07 | |
13:13
fsergot joined
13:19
MayDaniel joined
13:40
fsergot left
13:41
daemon left,
dalek left,
dalek joined,
ChanServ sets mode: +v dalek
13:42
arnsholt_ joined,
Jerkwad joined
13:43
marmalade left,
arnsholt left
13:44
daemon joined
13:56
tokuhir__ left
14:07
fsergot joined
14:15
fsergot left
14:33
gfldex left
14:35
gfldex joined
|
|||
dalek | ast: d4cb58c | coke++ | S (12 files): pugs fudge |
14:39 | |
ast: 117ffc1 | coke++ | S32-list/map.t: Merge branch 'master' of github.com:perl6/roast |
|||
gs.hs: f1402c1 | coke++ | t/spectest.data: run fudged tests |
|||
[Coke] | b: say 3638-3158 | ||
p6eval | b 1b7dd1: OUTPUT«480» | ||
[Coke] | another 480 PASS for pugs. | 14:40 | |
b: say 3638 / 20283 | |||
p6eval | b 1b7dd1: OUTPUT«0.179362027313514» | ||
au | whee, ~18% | 14:41 | |
[Coke]++ | |||
[Coke] | au: we could get a few more if you wrote: github.com/perl6/Pugs.hs/issues/4 ;) | 14:44 | |
(though I can probably do that one, as it's all perl6.) | 14:46 | ||
pugs feels fast, btw. | 14:47 | ||
au | then by all means please do :) | ||
au is still between $job and $job atm | |||
[Coke] | I haven't done any timings, but it does seem to be running that 18% in less than 1/5 of the time. | ||
au praises GHC 7.4 - 1.5x faster than GHC 7.0, which is yet much (~2x) faster than what we had in GHC 6.4 days. | 14:49 | ||
(judicious uses of -fllvm flags would, presumably, make it even faster) | |||
afk, bbiab | |||
[Coke] | b: say 20283*.18-3638 | 14:50 | |
p6eval | b 1b7dd1: OUTPUT«12.94» | ||
[Coke] | b: say 20283*.2-3638 | ||
p6eval | b 1b7dd1: OUTPUT«418.6» | ||
[Coke] | looks like another 1040 tests are passing in tests that at least parse. | 14:52 | |
say (3638+1040)/20283 # theoretical LHF max at the moment. | |||
b: say (3638+1040)/20283 # theoretical LHF max at the moment. | |||
p6eval | b 1b7dd1: OUTPUT«0.230636493615343» | 14:53 | |
14:56
birdwind1pbird joined
14:59
fsergot joined
15:10
seanstickle left
15:13
birdwind1pbird left
15:14
lateau__ left
15:22
sisar joined
|
|||
[Coke] wonders if feather is this slow or if I'm lagged. | 15:26 | ||
dalek | ast: 7f7b55a | coke++ | S (2 files): pugs fudge |
15:29 | |
gs.hs: 10975bd | coke++ | t/spectest.data: run fudged tests |
|||
15:34
sisar left
|
|||
colomon | phenny: tell sorear Looking at GLib.Process.SpawnSync for implementing run. Do you have a suggested way to get GLib into niecza's core? We could handle it the same way we do in the Gtk scripts, but I'm not sure if that's appropriate for the core.... | 15:40 | |
phenny | colomon: I'll pass that on when sorear is around. | ||
15:44
Psyche^ joined,
Patterner left,
Psyche^ is now known as Patterner
16:05
fridim_ left
|
|||
felher | I spotted two parts in the spec of which i think that they are now fossils after TimToady++'s "clobber as". Sadly, i lack the expertise to fix it. For the second part i'm not even sure it is a fossil (maybe C<as> still works on something different than subroutines?). The two parts are: | 16:15 | |
S02-bits.pod:1744 | |||
S14-roles-and-parametric-types.pod:414 | |||
Maybe someone would take a look at it? :) | |||
16:22
NamelessTee left
16:23
NamelessTee joined
16:26
Tedd1^ joined
16:27
Tedd1 left
|
|||
[Coke] | # 02/25/2012 - niecza++ ; pugs (18.43%); rakudo (99.17%) | 16:34 | |
"niecza", 20298, 8, 751, 1548, 22601, 23607 | |||
"pugs" , 3741, 5, 1822, 114, 5682, 23398 | |||
"rakudo", 20130, 33, 604, 1864, 22631, 23617 | |||
16:35
Tedd1^ is now known as Tedd1,
Tedd1 is now known as Tedd1^,
Tedd1^ is now known as Tedd1
16:46
miso_soup joined
16:52
miso_soup left
|
|||
dalek | kudo/nom: 4f0ed5c | moritz++ | t/spectest.data: stop running S06-traits/as.t, we do not implement the new syntax yet |
16:56 | |
17:02
snearch joined
17:09
Trashlord left
17:15
birdwindupbird left
17:17
wolfman2000 left
17:19
mtk left
|
|||
fsergot | perl6: sub infix:<&>(@a, @b) { my @r; for @a { @r.push($_) if $_ ~~ any(@b); }}; say <a b c> & <c d e>; | 17:23 | |
p6eval | niecza v14-72-gf99bd59: OUTPUT«Nil» | ||
..rakudo 0f9695: OUTPUT«c» | |||
..pugs b927740: OUTPUT«» | |||
fsergot | nom: sub infix:<&>(@a, @b) { my @r; for @a { @r.push($_) if $_ ~~ any(@b); }; @r}; say(<a b c> & <c d e>); | 17:25 | |
p6eval | nom 0f9695: OUTPUT«c» | ||
fsergot | nom: sub infix:<&>(@a, @b) { my @r; for @a { @r.push($_) if $_ ~~ any(@b); }}; say(<a b c> & <c d e>); | ||
p6eval | nom 0f9695: OUTPUT«c» | ||
TimToady | your if can be replaced by "when any(@b)" | 17:26 | |
though smartmatching is not symmetrical, so your & is very commutative | 17:28 | ||
*not very | |||
fsergot | TimToady++ | 17:29 | |
17:30
arnsholt_ is now known as arnsholt
|
|||
fsergot will be back later | 17:32 | ||
o/ | |||
17:42
MayDaniel left,
JimmyZ left
|
|||
dalek | ecs: 907649f | larry++ | S (2 files): dig up 'as' fossils found by fsergot++ These fossils will now be curated by the Github Museum. |
17:45 | |
TimToady | .oO(the making of coprolites is one way of reducing the design smell) |
17:48 | |
17:48
skids left
17:51
Tedd1 left
17:56
seanstickle joined,
Tedd1 joined
|
|||
cognominal | less tasty for the coprophages, though | 17:56 | |
17:57
fglock joined
|
|||
fglock | o/ | 17:57 | |
TimToady | \o | 17:58 | |
fglock | is perlcabal.org/syn/ up to date? | 17:59 | |
17:59
gfldex left
|
|||
colomon | fglock: considering the spec changed 15 minutes ago, probably not | 17:59 | |
fglock | :P | ||
I'm looking to the perl6 equivalent to perl5 "ref()" | 18:00 | ||
get the class name as a astring | |||
string | |||
moritz | .WHAT.gist | 18:01 | |
18:01
gfldex joined
|
|||
moritz | in rakudo, one can also write $obj.^name | 18:01 | |
nom: say 1.^name | |||
p6eval | nom 4f0ed5: OUTPUT«Int» | ||
moritz | nom: say 1.WHAT.perl | ||
p6eval | nom 4f0ed5: OUTPUT«Int» | ||
fglock | $x.WHAT.perl seems to work best, it doesn't append "()" | 18:02 | |
thanks | |||
18:05
havenn joined
|
|||
TimToady | note that the string cannot be used as a class name without some care | 18:09 | |
p6 is much pickier about symbolic references | 18:10 | ||
if you say "Int".bless you're going to end up with a Str | 18:11 | ||
moritz | perl6: say ::('Int').new.WHAT | ||
p6eval | pugs b927740: OUTPUT«Int» | ||
..rakudo 4f0ed5, niecza v14-72-gf99bd59: OUTPUT«Int()» | |||
TimToady | perl6: say ::(Int).new.WHAT; # curious | 18:12 | |
p6eval | rakudo 4f0ed5: OUTPUT«use of uninitialized value of type Int in string contextNot enough positional parameters passed; got 1 but expected 2 in method new at src/gen/CORE.setting:7543 in block <anon> at /tmp/Sn2h_5_TGM:1» | ||
..pugs b927740: OUTPUT«Int» | |||
..niecza v14-72-gf99bd59: OUTPUT«Any()» | |||
TimToady | some disagreement there :) | 18:13 | |
TimToady wonders if ::() should allow a hardref fallback on non-strings | |||
I suppose one could always write ::( $x ~~ Str ?? $x :: $x.WHAT.perl ) though | 18:15 | ||
doubtless a p5-to-p6 translator would want to macroize a number of p5 sloppinesses like that | |||
18:16
Teratogen left,
Teratogen joined
|
|||
TimToady | actually, it would probably want to recognize the ref($x) || $x idiom and refactor it to the opposite in p6 | 18:18 | |
($x ~~ Stringy ?? $x.WHAT !! $x).bless or some such | 18:20 | ||
and I see I used :: instead of !! the previous example :) | |||
bbl & | 18:24 | ||
fglock | rakudo: class X { 123 }; my $v = {}; X.bless($v); $v.WHAT.perl | 18:25 | |
p6eval | rakudo 4f0ed5: ( no output ) | ||
fglock | rakudo: class X { 123 }; my $v = {}; X.bless($v); say $v.WHAT.perl | 18:26 | |
p6eval | rakudo 4f0ed5: OUTPUT«Hash» | ||
TimToady | rakudo: class X { 123 }; my $v = {}; X.bless($v).WHAT.say | 18:28 | |
p6eval | rakudo 4f0ed5: OUTPUT«Hash()» | ||
TimToady | things like reblessing are usually done by mixins in P6 | 18:29 | |
rakudo: role X { 123 }; my $v = {}; ($v but X).WHAT.say | 18:30 | ||
p6eval | rakudo 4f0ed5: OUTPUT«Hash+{X}()» | ||
TimToady | & | ||
fglock | TimToady: thanks | ||
probably evil perl5-ish "bless": | 18:33 | ||
rakudo: role X { 123 }; my $v = {}; $v but= eval "X"; $v.WHAT.say | |||
p6eval | rakudo 4f0ed5: OUTPUT«Hash+{X}()» | ||
fglock | perl6: role X { 123 }; my $v = {}; $v but= eval "X"; $v.WHAT.say | 18:34 | |
p6eval | rakudo 4f0ed5: OUTPUT«Hash+{X}()» | ||
..pugs b927740: OUTPUT«*** Cannot cast from VStr "Land der Berge, Land am Strome," to VCode (VCode) at Prelude.pm line 541, column 5-16» | |||
..niecza v14-72-gf99bd59: OUTPUT«===SORRY!===Cannot make assignment out of but because structural infix operators are diffy at /tmp/AB3a5gpaly line 1:------> role X { 123 }; my $v = {}; $v but=⏏ eval "X"; $v.WHAT.sayUnhandled exception: Check fail… | |||
fglock | perl6: sub bless ($v is rw, $class) { $v = $v but eval $class }; role X { 123 }; my $v = {}; bless($v, "X"); $v.WHAT.say | 18:36 | |
p6eval | niecza v14-72-gf99bd59: OUTPUT«Unhandled exception: Role(s) being mixed in do not define precisely one, public attribute at /home/p6eval/niecza/lib/CORE.setting line 1317 (infix:<does> @ 10)  at /home/p6eval/niecza/lib/CORE.setting line 1320 (infix:<but> @ 3)  at /tmp/adPmhkWLWE l… | 18:37 | |
..pugs b927740: OUTPUT«*** Must only use named arguments to new() constructor Be sure to use bareword keys. at Prelude.pm line 541, column 5-16» | |||
..rakudo 4f0ed5: OUTPUT«Hash+{X}()» | |||
fglock | rakudo loves me more | ||
maybe I could just create an object that contains the hash/array/scalar as an attribute | 18:41 | ||
18:47
Tedd1 left
18:48
Tedd1 joined
18:49
havenn left,
Tedd1 left
|
|||
fglock | perl6: sub bless ($v is rw, $class) { $v = (eval $class).new(val=>$v) }; class X { has $.val }; my $v = {}; bless($v, "X"); $v.WHAT.say | 18:50 | |
p6eval | pugs b927740: OUTPUT«X» | ||
..rakudo 4f0ed5, niecza v14-72-gf99bd59: OUTPUT«X()» | |||
fglock | niecza: sub bless ($v is rw, $class) { $v = (eval $class).new(val=>$v) }; class X { has $.val }; my $v = {}; bless($v, "X"); $v.WHAT.say | 18:51 | |
p6eval | niecza v14-72-gf99bd59: OUTPUT«X()» | ||
fglock | yay! | ||
18:52
havenn joined
18:58
birdwindupbird joined
19:07
xinming left
19:08
xinming joined
19:11
xinming_ joined,
xinming left
|
|||
sorear | good * #perl6 | 19:28 | |
phenny | sorear: 15:40Z <colomon> tell sorear Looking at GLib.Process.SpawnSync for implementing run. Do you have a suggested way to get GLib into niecza's core? We could handle it the same way we do in the Gtk scripts, but I'm not sure if that's appropriate for the core.... | ||
sorear | fglock: \o/!! long time no see | ||
fglock: how's perlito? | |||
fglock | hi sorear! | ||
I'm now working on the perl5-to-perl6 backend | 19:29 | ||
perlito6 is getting very little attention these days :( | |||
sorear | phenny: tell colomon I had in mind using a reflective load, falling back to ShellQuote if glib is not available try { Type.GetType("GLib.Process,glib more-bits") } catch(...) { ... } | ||
phenny | sorear: I'll pass that on when colomon is around. | ||
fglock | sorear: I'm looking for idioms in perl6 that behave like perl5's bless(), ref(), and so on | 19:32 | |
so that I can bootstrap the perl5 compiler in a perl6 backend | 19:33 | ||
that is, run perl5 "natively" in a perl6 environment | 19:34 | ||
sorear | that'll be a problem - there's nothing in native Perl 6 that behaves quite like bless() | 19:35 | |
fglock | see my test a few lines above - it seems to work | 19:36 | |
it wraps the hash in an object | |||
sorear | I've been intending for a while to add a p5 compatibility mode to niecza's core VM, with, among other things, a p5 metaobject and bless | ||
fglock: that's not at all how p5's bless works | |||
p5's bless does not create objects | 19:37 | ||
it changes the type of existing objects | |||
a p5 hash is a typeless object, so you can't call methods against it | |||
after bless(), all existing references continue to point to the same object, which now has a type | |||
eval: package Foo; sub bar { 5 }; my $obj = { }; package main; bless $obj, 'Foo'; say $foo->bar | 19:38 | ||
buubot_backup | sorear: ERROR: Can't call method "say" on an undefined value at (eval 20) line 1. | ||
sorear | eval: package Foo; sub bar { 5 }; my $obj = { }; package main; bless $obj, 'Foo'; print $foo->bar | ||
buubot_backup | sorear: ERROR: Can't call method "bar" on an undefined value at (eval 20) line 1. | ||
fglock | I'm planning to use several levels of indirection to simulate that | ||
sorear | eval: package Foo; sub bar { 5 }; my $obj = { }; package main; bless $obj, 'Foo'; print $obj->bar | ||
buubot_backup | sorear: 51 | ||
19:38
snearch left
|
|||
fglock | it's the same problem in the javascript backend | 19:39 | |
"REF" will probably need to be a class itself | |||
but a native p5 VM in dotnet would be very useful for perlito5 | 19:40 | ||
felher | After i had some luck finding fossils by searching for <as>, which were then removed by TimToady++, i searched with some other regexes and found a few typos. I will fix and commit them if someone tells me if the first two really are errors and that if i fixed them correctly. | 19:41 | |
typos: paste.pocoo.org/show/556652/ | |||
fglock | niecza: sub bless ($v is rw, $class) { $v = (eval $class).new(val=>$v) }; class X { has $.val; method bar { 5 } }; my $v; bless($v, "X"); say $v.bar | 19:44 | |
p6eval | niecza v14-72-gf99bd59: OUTPUT«5» | ||
fglock | $v is not really a reference in the line above; the actual implementation would be more complicated | 19:45 | |
19:45
havenn left
|
|||
[Coke] wonders how he got a merge commit in roast. whoops. | 19:46 | ||
sorear | git pull? | ||
felher: "git diff" output would have been easier to scan. | |||
fglock | eval() and double-pointers will make things slower | 19:47 | |
I hope to find a better alternative | |||
sorear | fglock: Why aren't you using ::() | ||
? | |||
felher | sorear: okay, one moment :) | ||
fglock | ah, that works - thanks! | 19:48 | |
sorear | felher: First is a typo, second is no. | ||
not. | |||
TimToady | whoops, felher++, wrong attribution... | 19:50 | |
felher | TimToady: np :) | 19:51 | |
TimToady | too many f-words :) | ||
fglock | I also probably need REF-objects because ( @a.WHAT ) is the same as ( my $a = []; $a.WHAT ) | ||
so bless() will be a double-wrap | 19:52 | ||
TimToady | maybe we just need an SV type in P6 :/ | 19:53 | |
19:53
not_gerd joined
|
|||
[Coke] | perl6: eval die | 19:53 | |
p6eval | niecza v14-72-gf99bd59: OUTPUT«Unhandled exception: Died at /home/p6eval/niecza/lib/CORE.setting line 1360 (die @ 3)  at /tmp/eN5w25xrVD line 1 (mainline @ 2)  at /home/p6eval/niecza/lib/CORE.setting line 3830 (ANON @ 3)  at /home/p6eval/niecza/lib/CORE.setting line 3831 (module… | ||
..rakudo 4f0ed5: OUTPUT« in block <anon> at /tmp/oPMRaOPCPh:1» | |||
..pugs b927740: OUTPUT«*** Died at /tmp/FjfzLLYgYB line 1, column 6 - line 2, column 1» | |||
felher | sorear: so "To capture to an outer lexical variable" is better than "To capture an outer lexical variable"? (if it isn't and just looked like it was in pastebin, i know that i should have given more context - or should have pasted a diff as you said in the first place :) ) | 19:54 | |
not_gerd | nom: role Foo { method bar { say self<spam>; } }; sub bless5 ($obj, $role) { $obj does ::($role) }; bless5({ spam => 'eggs' }, 'Foo').bar; | 19:55 | |
p6eval | nom 4f0ed5: OUTPUT«eggs» | ||
not_gerd | hello, #perl6 | 19:56 | |
felher | o/ | ||
fglock | not_gerd++ | 19:57 | |
colomon | sorear++ # not that I'm fully sure I understand that, but at least it's a place to start! | 19:58 | |
phenny | colomon: 19:29Z <sorear> tell colomon I had in mind using a reflective load, falling back to ShellQuote if glib is not available try { Type.GetType("GLib.Process,glib more-bits") } catch(...) { ... } | ||
20:00
pmurias joined
|
|||
TimToady | felher: the 'capture to an outer' in S05 is probably a fossil anyway from before we had :my | 20:01 | |
pmurias | TimToady: we have a sort of SV type in niecza already which holds a p5 SV for interop purposes | ||
phenny | pmurias: 07:37Z <sorear> tell pmurias It would be nice if you could add a description of your latest p5 interop stuff to announce.v15 sometime before Tue Feb 28 08:00:00 UTC 2012 | ||
fglock | not_gerd: why does it work, if the $obj argument to bless5 is not rw - I think aguments are not rw by default? | ||
pmurias | fglock: hi | ||
fglock | pmurias: hi! | ||
TimToady | pmurias: I presume that in P6 your SV is always an object, unlike in P5, and that the SV's methods will reflect many of the internal APIs of P5's SVs | 20:03 | |
au | fglock: $obj is not writable, but its content is | ||
niecza: role Foo { method bar { say self<spam>; } }; sub bless5 ($obj, $role) { $obj = "not writable" }; bless5({ spam => 'eggs' }, 'Foo').bar; | |||
p6eval | niecza v14-72-gf99bd59: OUTPUT«Potential difficulties: $role is declared but not used at /tmp/oB49Aiud8K line 1:------> say self<spam>; } }; sub bless5 ($obj, ⏏$role) { $obj = "not writable" }; bless5Unhandled exception: assigning to readonly value at /tmp/oB4… | 20:04 | |
20:04
whiteknight left
|
|||
au | (i.e. a readonly hash value is still a mutable hash) | 20:04 | |
TimToady | alas :) | 20:05 | |
felher | TimToady: ah, great. Than i leave it as is for people who know what they are doing :) | ||
pmurias | TimToady: currently it tries to expose a perl6ish interface, but a raw one could be helpfull too | 20:06 | |
sorear | felher: "To capture to an outer lexical variable" and "To capture an ..." mean completely different things | ||
TimToady looks around to see if there's anyone here who knows what they're doing... | |||
sorear | felher: in the former, "an ..." is an indirect object, in the latter it is a direct object | ||
pmurias | TimToady: that's a wrong approach? | 20:07 | |
sorear | the direct object of "capture" in a S05 context is always some submatch, never a variable, so the latter form is semantically wrong | ||
TimToady | pmurias: I'd guess it would be a hybrid of both | ||
and the 6ish bits would be built on 5ish bits that might or might not be accessible | 20:08 | ||
felher | sorear: ah, big thanks for the explanation :) | ||
sorear | pmurias: it's a fine approach but it's not relevant here | ||
pmurias: fglock is looking to support Perl 5 directly at the C#/NQP/Perl6 level, *NOT* by linking to libperl | 20:09 | ||
pmurias | sorear: i know ;) | 20:10 | |
sorear: targeting C#/libperl would make much sense | 20:11 | ||
sorear | fglock: the 'SimpleVariable' type in Niecza's core is conciously modelled on SV. | ||
pmurias | sorear: wouldn't | ||
jnthn home from $trip | 20:12 | ||
sorear | fglock: it doesn't have all the features that are needed for P5, so a 'P5Variable' class is likely needed; both would inherit from the 'Variable' class (which already exists, and is used for TiedVariable) | ||
Perl 6 has the nice feature that a variable can't switch between tied and not-tied after creation | |||
o/ jnthn | 20:13 | ||
dalek | ecs: d5f5207 | larry++ | S05-regex.pod: remove autodeclaration fossil from regex |
||
TimToady read that as "jnthn home from strip" | 20:14 | ||
20:15
silug joined
|
|||
TimToady | sorear: and P5 has the nice feature that it can (albeit with dire performance implications) | 20:15 | |
jnthn | TimToady: Ouch...well, depending on what meaning of strip you parsed it as :P | 20:16 | |
TimToady | well, the Vegas Strip is pretty painful... | ||
jnthn | Indeed. Vegas, I discovered, was one of those places worth visiting once in a lifetime. *Only* once. :) | 20:17 | |
sorear | ȷnthn | ||
dalek | ecs: 0698449 | (Felix Herrmann)++ | S (6 files): fix a few typos |
||
TimToady | but I will admit it was probably some freudian neuron that decided to read it as "strip" | ||
Teratogen | Is it true that if you wander into a casino bar in Las Vegas, sit down and have a drink, almost immediately a hawt woman escort will be sitting next to you? | 20:18 | |
au | probably the same state-of-neurons that coded the original $calar @rray %ash mnemonic... | ||
sorear begins looking into ways to hack the mono heap profiler | 20:19 | ||
jnthn looks at the schedule for next week and sees two whole days just for doing Perl 6 stuff on it. o/ | 20:20 | ||
TimToady | Teratogen: no, for many values of no | ||
sorear | my misogyny sense is tingling | 20:21 | |
TimToady | that's one of the values of no | ||
Teratogen | Well ok then! =( | 20:22 | |
au goes headsdown a bit hacking some %@$&#|| code for $job | 20:24 | ||
TimToady | HTAAOF | ||
sorear | au: <3 J | ||
TimToady | sorear: then why haven't you implemented S09 yet? :P | 20:25 | |
sorear | because I <3 other things more :P | 20:26 | |
TimToady knows the feelin' | |||
au | (that "%@$&#||" was 31337 encoding for "haskell", btw, although J would be a fine language for the task too :p) | ||
sorear | also, I've gotten hung up on the details of the @a[||@b] syntax - I have a problem with forests and trees | 20:27 | |
TimToady is dense, and didn't get au++'s 1337ness | |||
sorear | 1337: still looks to me like a large prime number rather than words | 20:28 | |
and apparently my visual cortex ain't that great at recognizing primes either... | 20:29 | ||
au | was about to say 7 * 191 :) | ||
TimToady | the & is kind of a stretch, but %@S is great | ||
%@$ even | |||
maybe !! for the ll though | |||
to make it look more like swearing, of course | |||
20:30
abercrombie joined
|
|||
fglock | p5-to-p6 passes 76 tests out of 165 - and low hanging fruits are getting higher | 20:37 | |
sorear | bleh. MONO_GC_DEBUG='heap-dump=...' output doesn't include field values | 20:41 | |
time to do some *really* evil stuff and write a custom parser for log-profiler binary output.mlpd files | 20:43 | ||
20:44
silug left,
Jerkwad left,
revdiablo left,
wooden left,
preflex left,
felher left,
buubot_backup left,
pothos left,
BooK_ left,
SHODAN left,
nsh left,
phenny left,
clkao left,
rhr left,
zamolxes left,
chra left
20:45
silug joined,
Jerkwad joined,
revdiablo joined,
wooden joined,
preflex joined,
felher joined,
buubot_backup joined,
pothos joined,
BooK_ joined,
SHODAN joined,
nsh joined,
phenny joined,
clkao joined,
rhr joined,
zamolxes joined,
chra joined,
pothos left
20:46
pothos joined,
fglock left
|
|||
[Coke] | I'm seeing a lot of class comparisons of {{ random.WHAT.gist }} to {{ Type.gist }} - is that the desired comparison, or can we just compare .WHAT to Type ? | 20:48 | |
sorear | It's a workaround for the fact that some compilers implement is using .Str, and all type objects .Str to "" | 20:53 | |
20:55
noam left
20:56
noam joined
|
|||
au | whee, perlito-p5-to-p6 passes 83 out of 165 on niecza-14 -- more than halfway there | 21:01 | |
fglock++ | |||
21:10
MayDaniel joined
|
|||
dalek | kudo/bs: 71afcfc | jnthn++ | src/Perl6/Metamodel/BOOTSTRAP.pm: Missed setting of scalar container type, which has to be outside of the bootstrap BEGIN. |
21:17 | |
kudo/bs: 773135b | jnthn++ | src/Perl6/Actions.pm: Disable create_lexical_capture_fixup for now - needs redoing but hopefully can think of something better... |
|||
21:18
unobe left
21:19
unobe joined
21:24
proller_ left
|
|||
dalek | ast: 1b91866 | coke++ | S (2 files): Convert to explicit plan |
21:24 | |
ast: 545136e | coke++ | / (8 files): pugs fudge |
|||
gs.hs: 0475e80 | coke++ | t/spectest.data: run fudged tests |
21:25 | ||
21:25
birdwindupbird left
|
|||
fsergot is back | 21:26 | ||
21:28
NamelessTee left
|
|||
jnthn | o/ fsergot | 21:29 | |
fsergot | o/ jnthn | ||
dalek | kudo/bs: 77f5f86 | jnthn++ | src/Perl6/Metamodel/BOOTSTRAP.pm: Ensure that default stash types get set up. Gets us somewhat further (to about line 2000) into building CORE.setting. |
21:34 | |
ast: 454fdc3 | coke++ | S0 (2 files): pugs fudge |
21:35 | ||
gs.hs: 843ce54 | coke++ | t/spectest.data: run fudged tests |
|||
21:36
NamelessTee joined
|
|||
[Coke] | "pugs" , 4023, 5, 1849, 164, 6041, 23430 | 21:39 | |
so, I'll get it up to 20% by the weekend. | |||
TimToady | when will it get to ++? :) | ||
[Coke] | that will require haskell programmers. | 21:40 | |
so far I've just been fudging tests. and I wrote a one line p6 function. | |||
biggest lack I see right now is .gist | 21:41 | ||
(and eval_lives_ok) | |||
21:41
PacoAir left
21:42
PacoAir joined,
PacoAir left,
havenn joined,
PacoAir joined
21:45
havenn_ joined,
havenn left
21:50
thou joined
21:53
thou left
21:55
pmurias left
21:57
y3llow left,
pothos left
|
|||
dalek | p/bs: 9484f10 | jnthn++ | src/6model/serialization.c: Be sure deserialized closures are tagged with the SC they came from. |
21:58 | |
21:58
not_gerd left
21:59
y3llow joined,
pothos joined
22:01
y3llow left,
y3llow joined
22:02
pothos left,
pothos joined
22:03
y3llow left
22:04
y3llow joined
22:05
pothos left,
pothos joined,
aindilis` left
22:06
y3llow left,
y3llow joined,
packetknife joined
22:07
packetknife left
22:08
mj41 joined
|
|||
dalek | p/bs: 2ef1915 | jnthn++ | src/6model/serialization.c: D'oh...the serializer forgot to tag an outer context after it had seen it, meaning that we re-serialized it for every closure that pointed to it. This not only bulked up the serialization, but also busted stuff. |
22:12 | |
kudo/bs: fc64d28 | jnthn++ | src/Perl6/Metamodel/MultiMethodContainer.pm: Improve a failure mode (though it seems hitting this failure mode is bogus...) |
22:16 | ||
kudo/bs: aac93a1 | jnthn++ | src/Perl6/Metamodel/BOOTSTRAP.pm: Move default parent type registration out of the bootstrap BEGIN. With this and the nqp/bs fixes it seems we make it through the parse/actions/object building of CORE.setting and explode right at the end (though that does *not* mean this is virtually done - still some trickiness to come!) |
|||
22:26
PZt left
22:32
dukeleto left
22:33
dukeleto joined,
dukeleto left,
dukeleto joined,
dukeleto left
22:34
dukeleto joined,
dukeleto left,
dukeleto joined,
dukeleto left
22:35
dukeleto joined,
dukeleto left,
dukeleto joined,
dukeleto left
22:36
NamelessTee left,
dukeleto joined,
dukeleto left,
NamelessTee joined,
dukeleto joined,
dukeleto left
22:37
dukeleto joined,
dukeleto left,
dukeleto joined,
dukeleto left
22:38
dukeleto joined,
dukeleto left,
dukeleto joined,
dukeleto left
22:39
dukeleto joined,
dukeleto left
|
|||
dalek | kudo/bs: ea2f595 | jnthn++ | src/Perl6/World.pm: Re-organize/update Perl6::World.to_past so it actually calls the serializer and follows the new HLL::World API. |
22:39 | |
kudo/bs: 799d6c0 | jnthn++ | src/pmc/perl6lexinfo.pmc: Update Perl6LexInfo to keep hold of the static code ref, just like NQPLexInfo does. |
|||
22:39
dukeleto joined
22:40
dukeleto left
|
|||
dalek | p/bs: 894a1f7 | jnthn++ | src/6model/serialization.c: Enable handling of Perl6LexInfo instead of NQPLexInfo (perhaps wants some kinda better mechanism at some point). |
22:40 | |
22:40
dukeleto joined,
dukeleto left
22:41
dukeleto joined,
dukeleto left,
dukeleto joined,
dukeleto left
22:42
dukeleto joined,
dukeleto left,
dukeleto joined,
dukeleto left
22:43
dukeleto joined,
dukeleto left,
dukeleto joined,
dukeleto left
22:44
dukeleto joined,
dukeleto left,
dukeleto joined,
dukeleto left
22:45
dukeleto joined,
dukeleto left,
dukeleto joined,
dukeleto left
22:46
dukeleto joined,
dukeleto left,
dukeleto joined,
dukeleto left
22:47
dukeleto joined,
dukeleto left,
dukeleto joined,
dukeleto left
22:48
dukeleto joined,
dukeleto left,
dukeleto joined,
dukeleto left
22:49
dukeleto joined,
dukeleto left
22:50
dukeleto joined,
dukeleto left,
dukeleto joined,
dukeleto left
22:51
dukeleto joined,
dukeleto left,
dukeleto joined,
dukeleto left,
kaare_ left
22:52
dukeleto joined,
dukeleto left,
dukeleto joined,
dukeleto left
22:53
dukeleto joined,
dukeleto left,
dukeleto joined,
dukeleto left
22:54
dukeleto joined,
dukeleto left,
dukeleto joined,
dukeleto left
22:55
dukeleto joined,
dukeleto left,
dukeleto joined,
dukeleto left
22:56
dukeleto joined,
dukeleto left,
dukeleto joined,
ksi joined
22:59
seanstickle left
23:02
daemon left
23:04
daemon joined
23:22
marmalade joined
23:23
noam_ joined
23:24
Jerkwad left
23:26
noam left
23:28
havenn_ left
23:39
havenn joined
23:54
ribayr joined
|