»ö« 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 1␤␤Unhandled 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 context␤Not 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.say␤␤Unhandled 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" }; bless5␤␤Unhandled 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