»ö« 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:01
soh_cah_toa_ joined
00:02
soh_cah_toa left
|
|||
jnthn | ah, almost there with basic only analysis :) | 00:06 | |
tadzik | :) | ||
jnthn | Made a bunch more spectests fail :) | 00:07 | |
For the right reason. | |||
Or at least, the ones I looked at do. | |||
diakopter | jnthn: do the native operators detect overflow? | ||
jnthn | diakopter: No, and iirc they're spec'd as not needing to. | ||
diakopter | oh good | ||
tadzik | so, how much can we win with addind 'returns' to every method and sub in the setting? :) | 00:09 | |
jnthn | Methods, nothing for now. | ||
diakopter | jnthn: are the native operations performed by parrot through pir? or are you creating C functions you're binding from nqp or 6model? | ||
jnthn | subs - worth doing but do it carefully. | ||
diakopter: We compile down to the Parrot add opcode | |||
for + | 00:10 | ||
for example | |||
diakopter | oh | ||
jnthn | If this was the CLR we'd use it's add op too | ||
So if you write an expression like $a * $b + $c div $d or so, and they're all known as natively typed ints, then they'll all live in Parrot int registers and just use the native ops for doing those operations. | 00:11 | ||
diakopter detects the royal 'we' degenerating to the singular over the months | |||
parrot still has no JIT, right? | 00:12 | ||
jnthn | Right :( | ||
soh_cah_toa_ | :( indeed | ||
jnthn | The optimizer does little, if anything, Parrot specific though. | ||
diakopter | I was just thinking; if it's never going to get a JIT, you might as well build up your own library of opcodes, oh wait, I mean, VM | 00:13 | |
jnthn | Well, yeah. :) | ||
diakopter | (mostly kidding) | ||
jnthn | I'm not sure my copious free time currently extends to working on a VM too, sadly. | 00:14 | |
It would be kinda fun. | |||
I find most things in the compilers/runtime space fun, though. :) | |||
00:15
stepnem_ is now known as stepnem,
tokuhiro_ left
|
|||
dalek | kudo/optimizer: b2d15fa | jnthn++ | src/binder/bind.c: Start filling out the compile time trial binding for onlies. We'll start off just doing analysis for those that only have required positional parameters. This detects any arity mis-matches in this case at compile time. Some spectest failures, though most seem legitimate (they fail because we catch the innevitable failure at compile time now). |
00:16 | |
kudo/optimizer: 7d65d53 | jnthn++ | src/Perl6/Actions.pm: Fix to inline spec generator. |
|||
kudo/optimizer: bcb7c05 | jnthn++ | src/binder/bind.c: First crack at trial binding type analysis. Seems to do the right kind of thing. |
|||
kudo/optimizer: 2e5a594 | jnthn++ | src/Perl6/Optimizer.pm: Small fix to inline handling, plus better error reporting if it hits an internal error. |
|||
jnthn | > sub foo() { }; foo('lol') | 00:17 | |
CHECK FAILED: | |||
Dispatch to 'foo' could never work with the arguments of types (str) | |||
\o/ | |||
Some enterprising soul could probably figure out how to make this and the multi analysis differentiate arity failures from type failures and report more helpfully on it. | 00:18 | ||
diakopter | impressive | 00:20 | |
jnthn | OK, I'm meant to deal with some $dayjob tasks tomorrow, including a somewhat important meeting (thankfully, in the afternoon), so I'd best rest a bit. :) | 00:23 | |
00:24
replore joined
|
|||
jnthn | .oO( Inlining: best implemented between the hours of midnight and 3am... ) |
00:24 | |
night o/ | |||
diakopter | o/ | ||
00:25
shinobicl_ joined
|
|||
tadzik | jnthn: this is awesome, jnthn++ | 00:25 | |
00:42
whiteknight left
01:09
thou joined
01:18
itz joined
|
|||
[Coke] | jnthn++ | 01:30 | |
looks like recent regex work has reclaimed a few more spectests. | |||
[Coke] will push updated list shortly. | 01:31 | ||
01:32
replore left
01:34
replore joined
01:39
f00li5h joined
|
|||
dalek | ast: 40a7cbb | Coke++ | S (5 files): rakudo nom fudging |
01:41 | |
kudo/nom: 008201f | Coke++ | t/spectest.data: track failures, run fudged tests. |
01:42 | ||
01:44
wolfman2000 joined
01:46
araujo joined
02:15
plobsing joined
|
|||
[Coke] | perl6: say Failure() | 02:17 | |
p6eval | pugs: OUTPUT«*** No such subroutine: "&Failure" at /tmp/M1yOvUQQIz line 1, column 5 - line 2, column 1» | ||
..niecza v10-17-g8fdba33: OUTPUT«===SORRY!===Undeclared name: 'Failure' used at line 1Unhandled Exception: Check failed at /home/p6eval/niecza/boot/lib/CORE.setting line 766 (CORE die @ 2)  at /home/p6eval/niecza/src/STD.pm6 line 1136 (STD P6.comp_unit @ 36) … | |||
..rakudo 008201: OUTPUT«Could not find sub &Failure in block <anon> at /tmp/tvklenYEWp:1 in <anon> at /tmp/tvklenYEWp:1» | |||
02:17
frhodes joined
|
|||
[Coke] | perl6: say 1 ~~ Failure | 02:17 | |
p6eval | pugs: OUTPUT«*** No such subroutine: "&Failure" at /tmp/8yVNMzEINT line 1, column 5 - line 2, column 1» | ||
..niecza v10-17-g8fdba33: OUTPUT«===SORRY!===Undeclared name: 'Failure' used at line 1Unhandled Exception: Check failed at /home/p6eval/niecza/boot/lib/CORE.setting line 766 (CORE die @ 2)  at /home/p6eval/niecza/src/STD.pm6 line 1136 (STD P6.comp_unit @ 36) … | |||
..rakudo 008201: OUTPUT«Bool::False» | |||
02:18
frhodes left
02:19
cotto joined
02:22
frhodes joined
02:23
packetknife joined,
cotto left
|
|||
dalek | ast: bd0cef4 | Coke++ | S02- (3 files): niecza fudging. |
02:23 | |
ecza: 5be99bf | Coke++ | t/spectest.data: run a fudged test |
02:24 | ||
soh_cah_toa_ | p6eval: sub foo(Str $a?, Int $b?) { say 'foobar' }; foo("abc"); foo(42) | ||
perl: sub foo(Str $a?, Int $b?) { say 'foobar' }; foo("abc"); foo(42) | |||
agh... | |||
nom: sub foo(Str $a?, Int $b?) { say 'foobar' }; foo("abc"); foo(42) | |||
p6eval | nom 008201: OUTPUT«foobarNominal type check failed for parameter '$a'; expected Str but got Int instead in sub foo at /tmp/tqVQ97rBvu:1 in block <anon> at /tmp/tqVQ97rBvu:1 in <anon> at /tmp/tqVQ97rBvu:1» | ||
soh_cah_toa_ | niecza: sub foo(Str $a?, Int $b?) { say 'foobar' }; foo("abc"); foo(42) | 02:25 | |
p6eval | niecza v10-17-g8fdba33: OUTPUT«Potential difficulties: $a is declared but not used at /tmp/2oWY1F2iss line 1:------> sub foo(Str ⏏$a?, Int $b?) { say 'foobar' }; foo("abc $b is declared but not used at /tmp/2oWY1F2iss line 1:------> sub foo(Str $a?, Int [3… | ||
benabik | soh_cah_toa_: Were you looking for perl6: ? | ||
soh_cah_toa_ | ah | ||
perl6: sub foo(Str $a?, Int $b?) { say 'foobar' }; foo("abc"); foo(42) | |||
p6eval | pugs: OUTPUT«foobarfoobar» | ||
..rakudo 008201: OUTPUT«foobarNominal type check failed for parameter '$a'; expected Str but got Int instead in sub foo at /tmp/EXF60VxZS1:1 in block <anon> at /tmp/EXF60VxZS1:1 in <anon> at /tmp/EXF60VxZS1:1» | |||
..niecza v10-17-g8fdba33: OUTPUT«Potential difficulties: $a is declared but not used at /tmp/iOWoEUkvua line 1:------> sub foo(Str ⏏$a?, Int $b?) { say 'foobar' }; foo("abc $b is declared but not used at /tmp/iOWoEUkvua line 1:------> sub foo(Str $a?, Int [3… | |||
soh_cah_toa_ | wow, pugs got it right | ||
benabik | soh_cah_toa_: I don't think so. I think if you have ($a?, $b?), you have to give a $a to give a $b | 02:26 | |
soh_cah_toa_ | but they're both optional | ||
02:27
colomon joined
|
|||
benabik | soh_cah_toa_: Yes, which means you can skip both. I don't think the binder is required to try skipping over parameters to match types. | 02:27 | |
foo(42) and foo('bar') both try to set $a | 02:28 | ||
soh_cah_toa_ | hm, that's right | 02:29 | |
it doesn't re-dispatch though? | |||
i wonder if it's in the spec of pugs just does it by accident | 02:30 | ||
s/of/or/ | |||
colomon | I'm pretty sure benabik's correct, and pugs is just confused. | 02:33 | |
benabik | I think pugs is ignoring the type constraint. | ||
pugs: sub foo(Str $a) { say $a }; foo('bar'); foo(42) | |||
p6eval | pugs: OUTPUT«bar42» | ||
soh_cah_toa_ | i guess i can just use a multi method instead w/ a bit more hackery | ||
benabik | pugs: sub foo(Int $a) { say $a }; foo('bar'); foo(42) | 02:34 | |
p6eval | pugs: OUTPUT«bar42» | ||
02:34
frhodes left
|
|||
colomon | pugs: sub foo(Str $a?, Int $b?) { say 'foobar'; say :$a.perl; say :$b.perl }; foo("abc"); foo(42) | 02:34 | |
p6eval | pugs: OUTPUT«foobarpugs: Named argument found where no matched parameter expected: (a,Var "$a")» | ||
benabik | Yeah. 42 might be the string "42", but "bar" is never the int bar. | ||
colomon | pugs: sub foo(Str $a?, Int $b?) { say 'foobar'; say $a; say $b }; foo("abc"); foo(42) | 02:35 | |
p6eval | pugs: OUTPUT«foobarabcfoobar42» | ||
colomon | pugs: sub foo(Str $a?, Int $b?) { say 'foobar'; say "a: $a"; say "b: $b" }; foo("abc"); foo(42) | ||
p6eval | pugs: OUTPUT«foobara: abcb: foobara: 42b: » | ||
02:36
woosley joined
|
|||
colomon | benabik's got it sussed out correctly. :) | 02:40 | |
02:41
uasi joined
02:42
HarryS joined
02:45
cotto joined
|
|||
soh_cah_toa_ | perl6: fail 'foobar' | 02:47 | |
p6eval | niecza v10-18-g5be99bf: OUTPUT«===SORRY!===Undeclared routine: 'fail' used at line 1Unhandled Exception: Check failed at /home/p6eval/niecza/boot/lib/CORE.setting line 766 (CORE die @ 2)  at /home/p6eval/niecza/src/STD.pm6 line 1136 (STD P6.comp_unit @ 36) … | ||
..rakudo 008201: ( no output ) | |||
..pugs: OUTPUT«*** Cannot use this control structure outside a 'routine' structure at /tmp/5TcTFqplsT line 1, column 1 - line 2, column 1» | |||
soh_cah_toa_ | nom: fail 'foobar' | 02:48 | |
p6eval | nom 008201: ( no output ) | ||
soh_cah_toa_ | i knew it wasn't just me | ||
diakopter | nom:say fail fail 44 | 02:49 | |
nom: say fail fail 44 | 02:50 | ||
p6eval | nom 008201: OUTPUT«44 in block <anon> at /tmp/giyisj_6XO:1 in <anon> at /tmp/giyisj_6XO:1» | ||
02:57
alester joined
03:02
HarryS left
03:12
packetknife left
03:16
envi joined
03:20
cotto left
03:22
alester left
03:29
cotto joined
03:32
packetknife joined,
bluescreen10 left
03:37
xinming joined
03:42
HarryS joined
03:45
soh_cah_toa_ left
03:46
ingy joined
03:53
kaleem joined
03:57
f00li5h left
|
|||
sorear | good * #perl6 | 03:58 | |
phenny: tell GlitchMr 1. it's is equiv<++>, not is equiv:<++>, these are completely different 2. precedence on multis is NYI in niecza, just use regular subs | 04:00 | ||
phenny | sorear: I'll pass that on when GlitchMr is around. | ||
04:08
ingy left,
envi left,
wolfman2000 left,
diakopter left,
ggoebel left,
benabik left,
espadrine left,
LoRe left,
eiro left,
nsh- left,
mls_ left,
mux left,
szbalint left,
baest left,
awwaiid left,
Lorn left,
fhelmberger_ left,
pmichaud left,
kaleem left,
lumi_ left,
Helios left,
cosimo left,
pochi left,
colomon left,
[Coke] left,
moritz left,
Yappoko___ left,
hillu left
04:11
satyavvd joined,
kaleem joined,
envi joined,
colomon joined,
wolfman2000 joined,
benabik joined,
[Coke] joined,
espadrine joined,
szbalint joined,
diakopter joined,
sivoais joined,
ruoso joined,
risou joined,
localhost joined,
preflex joined,
sftp joined,
cognominal_ joined,
Grimnir_ joined,
mikemol joined,
jlaire joined,
skangas joined,
DarthGandalf joined,
m6locks joined,
szabgab joined,
orafu joined,
kst` joined,
slavik1 joined,
Patterner joined,
PZt joined,
robinsmidsrod joined,
ponbiki joined,
Sarten-X joined,
aloha joined,
ashleydev joined,
jerome_ joined,
japhb joined,
pyrimidine joined,
imarcusthis joined,
zenog joined,
BLZbubba joined,
bbkr_ joined,
lateau_ joined,
arnsholt joined,
jesk joined,
Gothmog_ joined,
jrockway joined,
domidumont joined,
p6eval joined,
carlin joined,
Maddingue joined,
snarkyboojum joined,
wooden joined,
senobmeht joined,
ggoebel joined,
baest joined,
lumi_ joined,
awwaiid joined,
Helios joined,
cosimo joined,
Lorn joined,
pmichaud joined,
fhelmberger_ joined,
pochi joined,
mux joined,
mls_ joined,
nsh- joined,
eiro joined,
LoRe joined,
hillu joined,
Yappoko___ joined,
moritz joined,
renormalist joined,
arthur-_ joined,
breinbaas joined,
apejens joined,
yath joined,
Grrrr joined,
hubbard.freenode.net sets mode: +v p6eval,
ingy joined
04:12
thou left
04:13
jaldhar joined
04:14
kaleem left
04:15
satyavvd left,
kaleem joined
04:18
lestrrat joined
04:19
jaldhar left,
jaldhar joined,
satyavvd joined
04:22
sunnavy joined
04:23
frhodes joined
04:32
frhodes left
04:36
frhodes joined
04:38
HarryS left
04:41
uasi left
|
|||
benabik | nom: say fail 42 | 04:42 | |
p6eval | nom 008201: OUTPUT«42 in block <anon> at /tmp/pAi8tvAKdY:1 in <anon> at /tmp/pAi8tvAKdY:1» | ||
benabik | nom: fail 42 | ||
p6eval | nom 008201: ( no output ) | ||
benabik | Fails only fail when something tries to use them as a value, right? | ||
04:43
_jaldhar joined
04:44
jaldhar left
04:46
uasi joined
04:47
frhodes left
05:05
shinobicl_ left
05:06
shinobicl_ joined,
shinobicl_ left
05:14
daniel-s joined,
risou is now known as risou_awy,
mberends joined,
mikemol left,
mikemol joined,
TiMBuS|Away joined
05:15
TiMBuS|Away is now known as TiMBuS
|
|||
moritz | good morning | 05:39 | |
nom: $^n | |||
p6eval | nom 008201: ( no output ) | ||
moritz | nom: $^n; say 'alive' | 05:40 | |
p6eval | nom 008201: OUTPUT«alive» | ||
moritz | nom: say lines("a\nb\n").perl | 05:41 | |
p6eval | nom 008201: OUTPUT«("a", "b").list» | ||
05:42
f00li5h joined
|
|||
moritz | rakudo: my $a; eval $a.WHO | 05:43 | |
p6eval | rakudo 008201: OUTPUT«Nominal type check failed for parameter '$code'; expected Str but got Stash instead in sub eval at src/gen/CORE.setting:420 in block <anon> at /tmp/2yrXekDZ9H:1 in <anon> at /tmp/2yrXekDZ9H:1» | ||
05:43
HarryS joined
|
|||
sorear | rakudo: my $a; say $a.WHO | 05:44 | |
p6eval | rakudo 008201: OUTPUT«().hash» | ||
sorear | rakudo: my $a; say ~$a.WHO | ||
p6eval | rakudo 008201: OUTPUT«» | ||
sorear | moritz: what were you expecting that to do? | 05:45 | |
moritz: and good mornign | |||
moritz | sorear: not Null PMC Access'ing :-) | ||
sorear: I have no idea, actually | 05:46 | ||
std: $^n | |||
p6eval | std 8b331d2: OUTPUT«===SORRY!===Placeholder variable $^n may not be used outside of a block at /tmp/QJ6c2B3TGl line 1:------> <BOL>⏏$^nCheck failedFAILED 00:01 119m» | ||
moritz | hm, makes sense | ||
dalek | ast: b3f8106 | moritz++ | S03-operators/assign.t: expand tests for RT #93972 |
05:47 | |
moritz | rakudo: my $i; sub foo { say $i if ++$i %% 50; eval "foo" }; foo(); say "alive" | 05:48 | |
p6eval | rakudo 008201: OUTPUT«50100150alive» | ||
05:57
cotto left
|
|||
sorear | moritz: was it NPAing earlier? | 05:59 | |
06:06
mj41 joined
|
|||
moritz | b: $^n | 06:06 | |
p6eval | b 1b7dd1: ( no output ) | ||
moritz | sorear: yes, at least a ticket claimed so | 06:07 | |
06:09
mberends left
|
|||
dalek | ecza/serialize: 5be99bf | Coke++ | t/spectest.data: run a fudged test |
06:15 | |
ecza/serialize: 94e9968 | sorear++ | / (25 files): Merge remote branch 'origin/master' into serialize |
|||
06:18
packetknife left
|
|||
sorear wonders why 5be99f was reported separately | 06:19 | ||
moritz | rakudo: my @a = (1); @a ||= (); say @a.perl | 06:22 | |
p6eval | rakudo 008201: OUTPUT«(timeout)maximum recursion depth exceeded» | ||
benabik | bwa? | 06:23 | |
moritz | rt.perl.org/rt3/Ticket/Display.html?id=90158 | ||
sorear | niecza: my @a = (1); @a ||= (); say @a.perl | 06:25 | |
moritz | nom: say 10 % i | ||
p6eval | niecza v10-18-g5be99bf: OUTPUT«[1].list» | ||
nom 008201: OUTPUT«Could not find sub &i in block <anon> at /tmp/l2pLEEweGT:1 in <anon> at /tmp/l2pLEEweGT:1» | |||
moritz | nom: say 10 % 1i | ||
p6eval | nom 008201: OUTPUT«(timeout)maximum recursion depth exceeded» | ||
benabik | I wonder what @a is that it's recursing so much. | 06:26 | |
I wonder if "maximum recursion depth exceeded" is actually "multi go boom" somehow. | |||
I wonder if I shouldn't have been asleep several hours ago. | |||
benabik wonders. | |||
sorear | Hellllo benabik | ||
sorear should probably be asleep now! | 06:27 | ||
benabik | sorear: What time are you at? I was up at 6 AM and it's now 2:30 AM. | ||
But I finished my homework. | 06:28 | ||
sorear | pst | ||
benabik | sorear: Bah, PST. It's not even midnight out there. | 06:29 | |
sorear | benabik: Morning classes. | 06:31 | |
06:32
aloha left
|
|||
benabik | sorear: My class wasn't until 2, but the assistantship requires me to be there by 7:30. It's exciting. | 06:33 | |
06:33
aloha joined
06:34
Grimnir_ left
06:36
koban joined
06:42
uasi left
06:48
alim joined
|
|||
sorear seleep | 06:50 | ||
06:53
mj41 left
06:56
cotto joined
07:09
dragonhawk joined
|
|||
dragonhawk | Hi | 07:09 | |
moritz | hi dragonhawk | ||
dragonhawk | How's it | ||
07:09
cotto left
07:10
mj41 joined
|
|||
dragonhawk | This my first time here | 07:10 | |
moritz | then welcome to the wonderful world of Perl 6 programming | 07:11 | |
dragonhawk | Do u guys just talk programing | ||
moritz | also language design, testing and many related subjects | 07:13 | |
dragonhawk | R there any just plain chat rooms | ||
moritz | I don't know | 07:14 | |
mauke | #defocus | ||
#haskell-blah | |||
dragonhawk | Hay thanks | 07:15 | |
That worked | |||
07:16
cotto joined
|
|||
dalek | kudo/nom: 66d0a4a | moritz++ | src/core/ (2 files): infix % and %% only make sense on Real, not Numeric |
07:18 | |
07:20
cotto left
07:24
Trashlord joined
07:39
cotto joined
07:50
alim left
07:57
ram___ joined
|
|||
moritz | arxiv.org/PS_cache/arxiv/pdf/1109/1...6160v1.pdf # another update the the v > c neutrinos | 08:00 | |
08:00
daxim joined
08:01
wamba joined,
ram___ left
|
|||
moritz | std: class A { method b() { } }; &A::b = sub { } | 08:10 | |
p6eval | std 8b331d2: OUTPUT«ok 00:01 126m» | ||
moritz | perl6: class A { method b() { } }; &A::b = sub { } | ||
p6eval | pugs: OUTPUT«*** Can't modify constant item: VStr "MkCode {isMulti = False, subName = \"&b\", subType = SubMethod, subOuterPads = [PRuntime {pr_pad = MkPad (padToList [(\"&b\",PEStatic {pe_type = (mkType \"Method\"), pe_proto = <Method:0x7f837f01bb81>, pe_flags = MkEntryFlags {ef_isCont… | ||
..rakudo 66d0a4, niecza v10-18-g5be99bf: ( no output ) | |||
08:12
dragonhawk left
08:22
rhr left,
tty234 left,
plobsing left
08:23
flussence joined,
s1n1 joined,
araujo left,
itz left,
sorear left
08:27
simcop2387 joined
08:28
koban left,
HarryS left,
mikemol left,
envi left,
kst` left,
orafu left,
szabgab left,
DarthGandalf left,
skangas left,
jlaire left,
m6locks left,
wamba left,
wolfman2000 left,
diakopter left,
risou_awy left,
slavik1 left,
zenog left,
domidumont left,
snarkyboojum left,
wooden left,
senobmeht left,
ggoebel left,
daxim left,
benabik left,
espadrine left,
Patterner left,
Sarten-X left,
ashleydev left,
bbkr_ left,
jrockway left,
LoRe left,
eiro left,
nsh- left,
mls_ left,
mux left,
szbalint left,
sivoais left,
sftp left,
preflex left,
Gothmog_ left
08:29
BLZbubba left,
baest left,
awwaiid left,
Lorn left,
fhelmberger_ left,
sunnavy left,
localhost left,
cognominal_ left,
robinsmidsrod left,
jerome_ left,
pyrimidine left,
lateau_ left,
p6eval left,
Maddingue left,
pmichaud left,
imarcusthis left,
arnsholt left,
jesk left,
carlin left,
lumi_ left,
Helios left,
cosimo left,
pochi left,
colomon left,
[Coke] left,
ruoso left,
PZt left,
ponbiki left,
japhb left,
Grrrr left,
yath left,
apejens left,
breinbaas left,
arthur-_ left,
renormalist left,
moritz left,
Yappoko___ left,
hillu left,
mj41 left,
ranguard left,
Tene left,
Exodist left,
kaleem left,
replore left,
dukeleto left,
cxreg left,
Khisanth left,
miso2217 left,
BinGOs left,
cotto left,
Trashlord left,
TiMBuS left,
daniel-s left,
buubot_backup left,
pothos left,
geekosaur left,
aloha left,
_jaldhar left,
lestrrat left,
y3llow left,
takesako left,
Reaganomicon left,
Util left,
dalek left
08:38
jql joined
08:40
jdhore joined,
sftp joined,
shachaf joined,
alim joined,
pnu joined,
itz__ joined,
huf_ joined,
krakan_ joined,
tty234_ joined,
z-b joined,
spacebat_ joined,
ribasushi_ joined,
ascent__ joined,
plobsing_ joined,
pjcj_ joined,
zostay_ joined,
wamba joined,
daxim joined,
mj41 joined,
koban joined,
HarryS joined,
mikemol joined,
sunnavy joined,
kaleem joined,
saaki joined,
jfried joined,
ruz joined,
TimToady joined,
JodaZ_ joined,
sbp joined,
nsh joined,
_sri joined,
betterworld joined,
Vlavv` joined,
ranguard joined,
Tene joined,
Exodist joined,
replore joined,
envi joined,
colomon joined,
wolfman2000 joined,
benabik joined,
[Coke] joined,
espadrine joined,
szbalint joined,
diakopter joined,
sivoais joined,
ruoso joined,
risou_awy joined,
localhost joined,
preflex joined,
cognominal_ joined,
jlaire joined,
skangas joined,
DarthGandalf joined,
m6locks joined,
szabgab joined,
orafu joined,
kst` joined,
slavik1 joined,
Patterner joined,
PZt joined,
robinsmidsrod joined,
ponbiki joined,
Sarten-X joined,
ashleydev joined,
jerome_ joined,
japhb joined,
pyrimidine joined,
imarcusthis joined,
zenog joined,
BLZbubba joined,
bbkr_ joined,
lateau_ joined,
arnsholt joined,
jesk joined,
Gothmog_ joined,
jrockway joined,
domidumont joined,
p6eval joined,
carlin joined,
Maddingue joined,
snarkyboojum joined,
wooden joined,
senobmeht joined,
ggoebel joined,
baest joined,
lumi_ joined,
awwaiid joined,
Helios joined,
cosimo joined,
Lorn joined,
pmichaud joined,
fhelmberger_ joined,
hubbard.freenode.net sets mode: +v p6eval,
pochi joined,
mux joined,
mls_ joined,
nsh- joined,
eiro joined,
LoRe joined,
hillu joined,
Yappoko___ joined,
moritz joined,
renormalist joined,
arthur-_ joined,
breinbaas joined,
apejens joined,
yath joined,
Grrrr joined,
jdhore left,
jdhore joined
|
|||
mls_ | niecza: { CATCH { default { say "caught"} } ; LEAVE { say "leave" ; die } } | 08:40 | |
p6eval | niecza v10-18-g5be99bf: OUTPUT«leavecaught» | ||
08:40
sjn joined,
tomaw joined,
nebuchadnezzar joined,
dukeleto joined,
cxreg joined,
Khisanth joined,
miso2217 joined,
BinGOs joined,
mattp_ joined,
phenny joined,
daemon joined,
BooK joined,
bloonix joined,
jevin joined,
felipe joined,
broquaint joined,
revdiablo joined,
mdxi_ joined,
Bucciarati joined,
yahooooo joined,
literal joined,
meraxes joined,
rhr_ joined,
mauke joined,
aloha joined,
_jaldhar joined,
lestrrat joined,
y3llow joined,
alvis joined,
[particle]1 joined,
mtk joined,
bacek_at_work joined,
aindilis joined,
djanatyn joined,
yves_ joined,
hugme joined,
PacoLinux_ joined,
Woodi joined,
takesako joined,
Reaganomicon joined,
Util joined,
dalek joined,
hubbard.freenode.net sets mode: +vv hugme dalek,
felher joined,
araujo joined,
sorear joined,
cotto joined,
Trashlord joined,
TiMBuS joined,
daniel-s joined,
buubot_backup joined,
pothos joined,
shinobicl joined,
dual joined,
geekosaur joined,
silug joined,
_ilbot joined
08:41
y3llow left
|
|||
mls_ | niecza: { die ; CATCH { default { say "caught"} } ; LEAVE { say "leave" ; die } } | 08:41 | |
p6eval | niecza v10-18-g5be99bf: OUTPUT«caughtleavecaught» | ||
08:41
mauke is now known as Guest24058,
y3llow joined,
araujo left
08:42
araujo joined,
araujo left,
araujo joined
|
|||
mls_ | niecza++ | 08:42 | |
08:42
arthur-_ left
|
|||
mls_ | niecza: { die ; CATCH { die; } ; LEAVE { say "leave" ; die } } | 08:42 | |
p6eval | niecza v10-18-g5be99bf: OUTPUT«leaveUnhandled Exception: Died Died at line 0 (ExitRunloop @ 0)  at /tmp/8DalPUiYwx line 1 (MAIN C3_ANON @ 3)  at line 0 (ExitRunloop @ 0)  at /tmp/8DalPUiYwx line 1 (MAIN C1_ANON @ 2)  at /tmp/8DalPUiYwx line 1 (MAIN mainline @ 1)  at /hom… | 08:43 | |
08:43
araujo left
|
|||
mls_ | niecza: { die ; CATCH { die; } ; LEAVE { say "leave" } } | 08:43 | |
p6eval | niecza v10-18-g5be99bf: OUTPUT«leaveUnhandled Exception: Died Died at line 0 (ExitRunloop @ 0)  at /tmp/GYxnAEBuk8 line 1 (MAIN C1_ANON @ 2)  at /tmp/GYxnAEBuk8 line 1 (MAIN mainline @ 1)  at /home/p6eval/niecza/lib/CORE.setting line 2115 (CORE C1022_ANON @ 2)  at /home/p6e… | ||
08:43
felher is now known as Guest73321
|
|||
jnthn | morning, #perl6 | 08:43 | |
mls_ | morning jnthn! | 08:44 | |
08:44
woosley left,
araujo joined
|
|||
frettled_ | Good moaning! | 08:45 | |
08:52
Guest24058 left,
mauke_ joined,
mauke_ is now known as mauke
08:54
replore left
09:14
mj41 left
09:19
pnu left
09:30
orafu left
09:33
hanekomu joined
|
|||
hanekomu | <- p6 n00b | 09:33 | |
just cloned rakudo nom, perl Configure.pl --gen-parrot, make, make test, make spectest and got | |||
t/spec/S05-modifier/ignorecase.rakudo, t/spec/S06-signature/slurpy-params.rakudo, t/spec/S19-command-line/dash-e.rakudo failed | |||
all others ok | 09:34 | ||
is that expected? | |||
09:34
mj41 joined
09:35
Khisanth left
09:36
orafu joined,
Khisanth joined
|
|||
jnthn | I've heard others say that dash-e.rakudo can fail intermitently. Here slurpy-params.rakudo shows up as having a TODO'd test that passes, not as failing. | 09:36 | |
09:38
ab5tract joined
|
|||
hanekomu | hm | 09:41 | |
btw, i kind of got interested in grammars, types etc, looked around for where to start and found that perl 6 might be a nice environment to learn these concepts | 09:42 | ||
looking forward to talking to you in Vienna | |||
moritz | hanekomu: which operating system are you using? | 09:43 | |
hanekomu | os x 10.6.8 | ||
09:44
ab5tract left
|
|||
moritz | hanekomu: if you run ./perl6 t/spec/S19-command-line/dash-e.rakudo what do you get as output? | 09:44 | |
hanekomu | hm | 09:45 | |
no ICU lib loaded | |||
ah | |||
i thought it would complain if there was no icu | |||
moritz | well know, we allow to build rakudo without icu | ||
though I'm not sure if that's a great idea | 09:46 | ||
s/know/no/ | |||
dalek | kudo/nom: 6060607 | moritz++ | t/spectest.data: dash-e depends on ICU |
09:47 | |
jnthn | moritz: Getting ICU sorted out here on Windows is a real nuisance. | 09:48 | |
When Parrot bundled ICU I did a bunch of stuff to get it to reliably build on Windows. | |||
Then they unbundled it. :/ | 09:49 | ||
moritz | :( | ||
jnthn | And I'm not going to fix it again. | ||
hanekomu: Yes, looking forward to Twin city Perl workshop :) | |||
meeting & | 09:51 | ||
mls_ | niecza: { say 'hello'; ENTER { say 'enter' } ; ENTER { say 'enter2' } ; LEAVE { say 'leave2' } ; LEAVE { say 'leave' } } | 09:54 | |
p6eval | niecza v10-18-g5be99bf: OUTPUT«enterenter2helloleaveleave2» | ||
mls_ | hmm, dunno if the leave blocks should really be run in reverse order... | ||
dalek | ast: e2cbb6d | moritz++ | S12-methods/private.t: test that private methods cannot be called from outside |
09:57 | |
ast: 398be5a | moritz++ | S06-signature/optional.t: required params need to come before optional ones (RT #71110) |
10:00 | ||
hanekomu | i've installed icu now; what do i have to recompile? | 10:03 | |
tadzik | Parrot I suppose | 10:04 | |
moritz | all of it | ||
rm -rf install/ | |||
perl Configure.pl --gen-parrot | |||
hanekomu | ok :) | ||
dalek | ast: a493f00 | moritz++ | S06-traits/is-rw.t: test that "is rw" requires a variable for writing (RT #74820) |
10:08 | |
10:16
Trashlord left
10:20
grondilu joined
|
|||
moritz | niecza: say Int.WHO | 10:20 | |
p6eval | niecza v10-18-g5be99bf: OUTPUT«Stash.new(...)» | ||
grondilu | rakudo is a bit slow to startup. It's gonna get better in the future, right? | ||
flussence | takes less than a second to get to the REPL on my netbook... what version are you using? | 10:21 | |
grondilu | This is Rakudo Perl 6, version 2011.07 built on parrot 3.6.0 0 | 10:22 | |
4.41 seconds for 'perl6 -e 0' | |||
flussence | oh, then yes it'll get better in the future | ||
i.e. later today when 2011.09 is released | |||
10:23
Mowah_ joined
|
|||
grondilu | ok cool | 10:23 | |
I also read that perl6 might be as fast as C, thanks to strong typing. That would be great. | 10:24 | ||
mauke | einstein's theory implies perl6 cannot be faster than c | 10:25 | |
hanekomu | is there a "definition of terms" for the beginning perl 6 hacker somewhere - that explains "nom", "nqp", "rakudo", "6model" etc. and the relationships between them? | 10:26 | |
moritz | grondilu: 0.8s on my machine in the last development branch, to be released today | 10:27 | |
grondilu | mauke: it's in "perl5to6" (perlgeek.de/en/article/5-to-6): << When you have type informations at compile time, you can perform certain optimizations. Perl 6 doesn't have to be slower than C, in principle. >> | 10:28 | |
grondilu needs to compile a more recent version | |||
moritz | hanekomu: no; there is a similar document, but it's outdated. I need to update it | ||
grondilu | Does the current branch do arbitrary precision arithmetics? Mine doesn't. | 10:29 | |
moritz | no | 10:30 | |
tadzik | mauke: C isn't fast. C implementation can be, or more precisly, the code that a C implementation generates | 10:31 | |
moritz | though niecza implements bigints | ||
tadzik | C isn't fast in the same terms as English isn't fast | ||
grondilu | englist is fast, imho. | ||
dalek | ast: 7228246 | moritz++ | S10-packages/basic.t: test that .WHO returns a Stash |
||
mauke | does no one here know einstein? | ||
grondilu | mauke: ? | ||
tadzik | I was invited to a party that he attended, but I got ill and didn't go | 10:32 | |
mauke | grondilu: you and tadzik replied to what I said in a way that baffles me | 10:33 | |
nine | I think most people did not notice the difference between c and C :) | 10:36 | |
grondilu understands the joke now. | |||
moritz | nom: say (1, , 3).perl | 10:37 | |
p6eval | nom 606060: OUTPUT«(1, 3)» | ||
moritz | nom: return | ||
p6eval | nom 606060: OUTPUT«Attempt to return outside of any Routine in sub die at src/gen/CORE.setting:416 in block <anon> at /tmp/GYMlDWq6aO:1 in <anon> at /tmp/GYMlDWq6aO:1» | ||
moritz closes 2 of the 5 oldest tickets in the perl6 queue | 10:41 | ||
10:42
grondilu left
|
|||
hanekomu | t/spec/S05-modifier/ignorecase.rakudo passes as well now that icu4c is installed | 10:42 | |
10:46
pnu joined
10:58
ron__ joined
|
|||
ron__ | moritz: ping | 11:00 | |
phenny: tell moritz that there is an open rt ticket 86144 that looks possibly closable and similar to the 92354 ticket he just closed | 11:03 | ||
phenny | ron__: I'll pass that on when moritz is around. | ||
ron__ | rakudo: say 1.WHO; say 1.WHO.keys.Str | 11:04 | |
p6eval | rakudo 606060: OUTPUT«().hash» | ||
11:05
ron__ left
11:19
hanekomu left
11:23
lestrrat left
11:24
lestrrat joined
11:36
Psyche^ joined,
Patterner left,
Psyche^ is now known as Patterner
|
|||
[Coke] wonders how much people would pay for a box they could feed a sql query to and have it say "this would run faster if you <foo>" | 11:37 | ||
moritz | [Coke]: quite a bit, some folks | 11:39 | |
phenny | moritz: 11:03Z <ron__> tell moritz that there is an open rt ticket 86144 that looks possibly closable and similar to the 92354 ticket he just closed | ||
[Coke] | moritz: Like me, right now. ;) | ||
moritz | phenny: tell ron__ thank you, I'll close it too | 11:40 | |
phenny | moritz: I'll pass that on when ron__ is around. | ||
11:42
bluescreen10 joined
|
|||
moritz | nom: my @a := 1 | 11:44 | |
p6eval | nom 606060: ( no output ) | ||
moritz | nom: say 1|2 === 1 | 11:45 | |
p6eval | nom 606060: OUTPUT«Bool::False» | ||
dalek | ast: 8e96ed1 | moritz++ | S03-operators/value_equivalence.t: === does not autothread (RT #61692) |
11:48 | |
11:48
ab5tract joined
11:54
alim_ joined
|
|||
flussence | rakudo: my $count = 3; my $str = 'aaaaa'; say ($str ~~ /\N ** {0..$count}/).perl | 11:54 | |
p6eval | rakudo 606060: OUTPUT«Match.perl(orig => "aaaaa", from => 0, to => 5, ast => Mu, list => ().list, hash => EnumMap.new())» | ||
flussence | rakudo: my $count = 3; my $str = 'aaaaa'; say ($str ~~ /^^ (\N ** {0..$count})/).perl | ||
p6eval | rakudo 606060: OUTPUT«Match.perl(orig => "aaaaa", from => 0, to => 5, ast => Mu, list => (Match.perl(orig => "aaaaa", from => 0, to => 5, ast => Mu, list => ().list, hash => EnumMap.new()),).list, hash => EnumMap.new())» | 11:55 | |
flussence | hm, that doesn't seem to work... | ||
11:55
ab5tract left
11:58
alim left,
alim_ is now known as alim
12:01
Mowah_ left
12:10
satyavvd left
|
|||
flussence | on the other hand, it makes ~20 more of Text::Tabs::Wrap's tests pass and gets rid of the annoying undefined str errors... | 12:13 | |
12:13
bluescreen10 left
12:14
hanekomu joined
|
|||
hanekomu | dumb questions coming up... | 12:15 | |
nom is the compiler using 6model, right? | 12:16 | ||
moritz | right | ||
hanekomu | what's the relationship between rakudo and nqp? | ||
moritz | rakudo uses nqp | ||
for compiling some of rakudo's source files | |||
hanekomu | so, just for bootstrapping? | 12:17 | |
flussence | nqp is glue between the VM and perl6 | ||
moritz | hanekomu: 6model also lives in the nqp repository | ||
hanekomu: so bootstrapping and a bit more :-) | |||
hanekomu | i should make a note of these things and create a roadmap for n00bs | 12:18 | |
moritz | that would be greatly appreciated | ||
hanekomu | :) | ||
given that 6model lives in nqp lives in rakudo, what's the purpose of jnthn's separate 6model repo on github? | 12:20 | ||
moritz | hanekomu: that was for early prototyping | ||
hanekomu | so it's deprecated? | ||
moritz | hanekomu: and maybe it will be used for a .NET implementation of 6model | ||
hanekomu | ok | ||
moritz | hanekomu: its code isn't used directly in nqp or rakudo at the moment | 12:21 | |
ingy | TimToady: can I interest you in a %%%? | ||
TimToady: <a> %%% <b> matches optional b on either side of a | |||
TimToady: I need it constantly :) | 12:22 | ||
12:26
bluescreen10 joined
|
|||
moritz | nom: my $res = try { die "foo" } | 12:27 | |
p6eval | nom 606060: OUTPUT«Cannot assign a non-Perl 6 value to a Perl 6 container in block <anon> at /tmp/GetcJR0cFl:1 in <anon> at /tmp/GetcJR0cFl:1» | ||
moritz | teh fun! | ||
moritz closes another 2 year old rakudobug | 12:29 | ||
12:34
SHODAN joined
|
|||
flussence | niecza: my $count = 3; my $str = 'aaaaa'; say ($str ~~ /^^ (\N ** {0..$count})/).perl | 12:36 | |
p6eval | niecza v10-18-g5be99bf: OUTPUT«#<match from(0) to(3) text(aaa) pos([#<match from(0) to(3) text(aaa) pos([].list) named({}.hash)>].list) named({}.hash)>» | ||
flussence | niecza++ :D | ||
moritz | rakudo: class A { class B {}; B.new } | 12:37 | |
p6eval | rakudo 606060: ( no output ) | ||
moritz | rakudo: enum A <a>; say a; eval 'sub a { "O HI" }'; say a | ||
p6eval | rakudo 606060: OUTPUT«A::aA::a» | ||
moritz | rakudo: grammar { token a-a { a }; token TOP { <a-a> } } | 12:40 | |
p6eval | rakudo 606060: OUTPUT«===SORRY!===regex assertion not terminated by angle bracket at line 1, near "-a> } }"» | ||
moritz | std: grammar { token a-a { a }; token TOP { <a-a> } } | ||
p6eval | std 8b331d2: OUTPUT«ok 00:01 121m» | ||
moritz | rakudo: my IO $a; $a.readline | 12:41 | |
p6eval | rakudo 606060: OUTPUT«IO is disallowed in safe mode in sub die at src/gen/CORE.setting:416 in sub restricted at src/SAFE.setting:2 in block <anon> at src/SAFE.setting:15 in <anon> at src/gen/Metamodel.pm:2064 in find_method_fallback at src/gen/Metamodel.pm:2062 in find_metho… | ||
moritz | rakudo: sub foo { say "bar" }; my $x = 'foo'; &::($x)() | 12:43 | |
p6eval | rakudo 606060: OUTPUT«bar» | ||
moritz | rakudo: say %("foo" ~~ /foo/).exists("foo") | 12:44 | |
p6eval | rakudo 606060: OUTPUT«Bool::False» | ||
moritz | rakudo: subset FooStr of Str where /^foo/; multi method rakudo: subset FooStr of Str where /^foo/; multi | 12:46 | |
p6eval | rakudo 606060: OUTPUT«===SORRY!===Malformed block at line 1, near ": subset F"» | ||
moritz | rakudo: subset FooStr of Str where /^foo/; multi trim(FooStr $self:) { return "OH HAI" }; say "foo".trim | ||
p6eval | rakudo 606060: OUTPUT«foo» | ||
12:51
Guest73321 is now known as felher
12:55
cognominal_ left,
cognominal joined
12:58
alim left
|
|||
dalek | ast: 6fba902 | moritz++ | S0 (2 files): add a test for RT #65308; fudge capturing-contexts.t for rakudo |
12:59 | |
moritz | nom: augment class Match { method keys() { %(self).keys } } | 13:01 | |
p6eval | nom 606060: OUTPUT«===SORRY!===augment not allowed without 'use MONKEY_TYPING' at line 1, near "{ method k"» | ||
moritz | nom: use MONKEY_TYPING; augment class Match { method keys() { %(self).keys } } | ||
p6eval | nom 606060: ( no output ) | ||
jnthn back from keeting | 13:04 | ||
er, meeting | 13:05 | ||
flussence | niecza: say [max] 1, 3, 5 | ||
p6eval | niecza v10-18-g5be99bf: 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 1408 (CORE reduceop @ 10)  at /tmp/GmOXmVdnOK line… | ||
flussence | aw, that still doesn't work :( | ||
niecza: say (1, 3, 5).max | 13:06 | ||
p6eval | niecza v10-18-g5be99bf: OUTPUT«Unhandled Exception: Unable to resolve method max in class Parcel at /tmp/B5mhcY1NQl line 1 (MAIN mainline @ 1)  at /home/p6eval/niecza/lib/CORE.setting line 2115 (CORE C1022_ANON @ 2)  at /home/p6eval/niecza/lib/CORE.setting line 2116 (CORE module-… | ||
flussence | niecza: say [1, 3, 5].max | ||
p6eval | niecza v10-18-g5be99bf: OUTPUT«Unhandled Exception: Unable to resolve method max in class Array at /tmp/A9vkf5KTtM line 1 (MAIN mainline @ 1)  at /home/p6eval/niecza/lib/CORE.setting line 2115 (CORE C1022_ANON @ 2)  at /home/p6eval/niecza/lib/CORE.setting line 2116 (CORE module-C… | ||
flussence | perl6: say max(1,3,5) | ||
p6eval | niecza v10-18-g5be99bf: OUTPUT«===SORRY!===Undeclared routine: 'max' used at line 1Unhandled Exception: Check failed at /home/p6eval/niecza/boot/lib/CORE.setting line 766 (CORE die @ 2)  at /home/p6eval/niecza/src/STD.pm6 line 1136 (STD P6.comp_unit @ 36)  … | ||
..pugs, rakudo 606060: OUTPUT«5» | |||
jnthn | hanekomu: I'm planning to do updates to nqp on CLR and 6model in CLR in the 6model repo initially. At some point stuff should migrate into the NQP repository, but for now it's easier to do it outside. | 13:07 | |
hanekomu | jnthn: I'll pretend that I understood that. :) | ||
jnthn | I tried to be clear about what it's for in the 6model repo's README. If it's not clear, patches welcome. ;) | 13:08 | |
Or questions that lead to such. :) | |||
I like the idea of a "what is what" kinda doc. I plan to write one for the Rakudo repository at some point. | |||
moritz | I plan to do an update to perlgeek.de/blog-en/perl-6/rakudo-overview.html | 13:09 | |
rakudo: enum A <b c>; say A.b | 13:10 | ||
p6eval | rakudo 606060: OUTPUT«Method 'b' not found for invocant of class 'A' in block <anon> at /tmp/5M9QeVfoAZ:1 in <anon> at /tmp/5M9QeVfoAZ:1» | ||
jnthn | moritz: ah, nice :) | 13:11 | |
moritz: I realized while on train to meeting earlier that there's something not quite right int he only sub analysis I put in last night, and it may get some false positives in the "could never work" thing. | |||
moritz: Just a heads up in case you go fixing spectests. | |||
Will try and fix later today. | 13:12 | ||
moritz | rakudo: say [X] [<a b c>] xx 3 | ||
p6eval | rakudo 606060: OUTPUT«a c b c a c b c c c b c a c b c b c b c a c b c c c b c a c b c a c b c a c b c c c b c a c b c b c b c a c b c c c b c a c b c c c b c a c b c c c b c a c b c b c b c a c b c c c b c a c b c a c b c a c b c c c b c a c b c b c b c a c b c c c b c a c b c b c b c a… | ||
moritz | rakudo: class class {}; say class.new.perl | 13:14 | |
p6eval | rakudo 606060: OUTPUT«===SORRY!===Unable to parse $*PKGDECL definition at line 1, near ".new.perl"» | ||
jnthn | ugh | ||
b: class class {}; say class.new.perl | |||
p6eval | b 1b7dd1: OUTPUT«===SORRY!===Malformed package declaration at line 22, near ".new.perl"» | ||
jnthn | hm | ||
std: class class {}; say class.new.perl | |||
p6eval | std 8b331d2: OUTPUT«ok 00:01 120m» | ||
jnthn | Not sure what's going on there. | 13:15 | |
Maybe have a look at package_def rule. | |||
13:17
hanekomu left
|
|||
moritz wonders why he hasn't got a huge wave of mails from RT yet | 13:18 | ||
13:23
sayu joined
13:24
bbkr1 joined
13:25
bbkr left
13:27
bbkr joined,
bbkr1 left
13:31
packetknife joined
13:32
bbkr left,
bbkr1 joined
|
|||
mls_ | good news: I've got ENTER/LEAVE phasers working a bit | 13:34 | |
exceptions in LEAVE loop currently | 13:35 | ||
13:37
bbkr joined,
bbkr1 left
|
|||
jnthn | mls_: nice :) | 13:38 | |
(nice progress, not nice that they look in LEAVE... ;)) | 13:39 | ||
*loop | |||
...yeah, I can't type at all any more. Time for a weekend. :) | |||
13:41
SHODAN left
13:42
Trashlord joined
13:44
koban left
13:47
bbkr left,
bbkr joined
|
|||
moritz | in .de, the Monday is free too \o/ | 13:51 | |
13:53
bbkr left
13:54
bbkr joined
13:57
abercrombie joined
|
|||
jnthn | moritz: ooh, nice | 13:59 | |
14:00
bluescreen10 left
14:01
daxim left,
bluescreen10 joined
14:02
bbkr1 joined,
bbkr left
|
|||
moritz | make | 14:03 | |
ww | |||
14:08
bbkr1 left
14:11
bbkr joined
|
|||
dalek | kudo/nom: 5feefbe | moritz++ | t/spectest.data: run capturing-contexts.t |
14:13 | |
kudo/nom: f2cc823 | moritz++ | src/core/IO.pm: IO.seek and .tell |
|||
14:20
bbkr left
14:26
Trashlord left
14:27
Trashlord joined
14:28
bbkr joined
14:30
molaf__ joined
14:31
bbkr left
14:32
bbkr joined,
molaf_ left
14:36
cognominal left,
cognominal joined
14:37
mj41 left
14:43
bbkr left
14:47
cosimo left
14:49
thou joined
14:53
kaleem left
14:54
MayDaniel joined
14:55
MayDaniel left,
MayDaniel joined,
frew joined
14:56
frew left,
frew joined
|
|||
sorear | good * #perl6 | 14:59 | |
14:59
frew left
15:00
hanekomu joined
|
|||
flussence | heh, I've finally got my $dayjob to stop complaining about me "wasting time" on TDD. 22 fails, 1722518 passes :) | 15:01 | |
hanekomu | should multi sub foo(Int $n where { $n == "Foo" }) { say "what?" } complain about "Foo" not being an Int? | 15:02 | |
sorear | no | 15:03 | |
at least not at compile time | |||
flussence | the where check is a code block that's opaque to the rest of the signature, so it can't tell something's wrong. | ||
rakudo: my $n = 1; $n == 'Foo' | 15:04 | ||
p6eval | rakudo f2cc82: ( no output ) | ||
flussence | no errors, because it's technically valid code | ||
hanekomu | sure, but here I say "Int $n" - so it might behave the same as my Int $foo = "Foo" | ||
but ok | |||
sorear | hanekomu: == and = are not the same at all | ||
flussence | rakudo: say "Foo".Int | 15:05 | |
p6eval | rakudo f2cc82: OUTPUT«0» | ||
jnthn | $n == "Foo" will be true whenever $n contains 0. | ||
flussence | rakudo: say "Foo".Int == "Foo" | ||
p6eval | rakudo f2cc82: OUTPUT«Bool::True» | ||
jnthn | Anyway, you don't need to write the block | ||
hanekomu | ah indeed. | ||
jnthn | multi sub foo(Int $n where "foo") { } is just as good. | 15:06 | |
er | |||
Well, it's still crazy :) | |||
multi sub foo(Int $n where 42) { } # works | |||
But then you coulda just written | |||
multi sub foo(42) { } # works | |||
15:06
mkramer1 joined
|
|||
hanekomu | multi sub foo(Int $n where $n == "Foo") does not appear to be the same as multi sub foo(Int $n where "Foo") | 15:07 | |
jnthn | ah, no | 15:09 | |
it's more like $n eq "Foo" | |||
hanekomu | btw, multi sub foo(0) { say "zero" } multi sub foo(0) { say "another zero" } foo(0); says something about it being ambiguous and lists :(Int) twice | ||
jnthn | Well, it *is* ambiguous. | ||
hanekomu | might it not list ":(0)", since it has more precise information? | ||
jnthn | Yes, it can...I even did the refactor the other day to enable us to do that. | ||
hanekomu | ah :) | ||
jnthn | Just didn't get around to it yet. | ||
15:13
hanekomu_ joined
15:16
hanekomu left
|
|||
jnthn | Time to head out for beer and dinner. Back later :) | 15:19 | |
15:21
cosimo joined
15:37
am0c joined
15:49
bbkr joined
15:53
MayDaniel left,
bbkr left
15:55
Reaganomicon left
|
|||
dalek | ecza/serialize: 174e334 | sorear++ | / (3 files): Implement compiler support for is-traits |
16:00 | |
[Coke] | (mails from RT) did you remember to check the "cc list" box? | 16:03 | |
if so, sometimes those emails need to be whitelisted, IIRC. | |||
16:04
hanekomu_ left
16:05
packetknife left
16:07
bbkr joined
|
|||
[Coke] thinks all the LHF on niecza running spec tests is nearly done. | 16:07 | ||
mls_ | hah! it doesn't loop anymore! \o/ | 16:14 | |
16:20
zenog left
16:21
arthur-_ joined
16:23
risou_awy is now known as risou
|
|||
mls_ | perl6: eval(q{ { } }) | 16:23 | |
p6eval | pugs, niecza v10-18-g5be99bf: ( no output ) | ||
..rakudo f2cc82: OUTPUT«===SORRY!===Unable to parse postcircumfix:sym<( )>, couldn't find final ')' at line 1» | |||
moritz | rakudo: multi sub foo(0, $){}; multi sub foo(Int $n, Str $a="A"){say $a}; foo(2,"A") | 16:32 | |
p6eval | rakudo f2cc82: OUTPUT«A» | ||
dalek | ast: 39684f0 | moritz++ | S06-multi/value-based.t: dispatch test involving literals and optional parameters (RT #88562) |
16:36 | |
16:36
mberends joined
|
|||
moritz | tadzik: how is the release coming along? | 16:37 | |
16:37
_jaldhar left
|
|||
moritz | rakudo: multi sub foo(:bar(:$quux)!) { }; foo(:bar); | 16:41 | |
p6eval | rakudo f2cc82: OUTPUT«No applicable candidates found to dispatch to for 'foo'. Available candidates are::(Any $quux) in sub foo at /tmp/6LJVP9mYAj:1 in block <anon> at /tmp/6LJVP9mYAj:1 in <anon> at /tmp/6LJVP9mYAj:1» | ||
16:41
cotto left
|
|||
mberends | [Coke]: good job on all the testing! Do whatever you like with test_summary. I'll resume microbenchmarking with it in a few weeks. | 16:41 | |
16:41
cotto joined
|
|||
sorear | o/ mberends | 16:42 | |
Coke++ # testing! | |||
moritz | rakudo: "foo".{ say $^a } | ||
p6eval | rakudo f2cc82: OUTPUT«Null PMC access in find_method('gist') in sub say at src/gen/CORE.setting:4930 in block <anon> at /tmp/TQySHMT3jS:1 in <anon> at /tmp/TQySHMT3jS:1» | ||
mberends | o/ sorear | ||
moritz | rakudo: say min(3,6) | 16:43 | |
p6eval | rakudo f2cc82: OUTPUT«3» | ||
moritz | rakudo: +sub {} | 16:44 | |
mberends | sorear: how are you doing with the serialize branch? | ||
p6eval | rakudo f2cc82: OUTPUT«No applicable candidates found to dispatch to for 'Numeric'. Available candidates are::(Mu, Mu %_) in method Numeric at src/gen/CORE.setting:607 in sub prefix:<+> at src/gen/CORE.setting:1804 in block <anon> at /tmp/A3VR50QVdR:1 in <anon> at /tmp/A3VR50QV… | ||
16:45
packetknife joined
|
|||
sorear | mberends: I'm feeling pretty decent about it. Very high chance it will run Hello World at least by next #phasers | 16:46 | |
ETA 2 weeks | |||
mberends | sorear++: excellent :) | 16:47 | |
16:47
cotto left
|
|||
mberends will try Mono's System.Drawing instead of Gtk for a bit | 16:48 | ||
16:48
cooper joined
16:50
cotto joined
|
|||
sorear | mberends: how do you get a window to use with System.Drawing? | 16:52 | |
(winforms?) | 16:54 | ||
16:55
makkksimal joined
|
|||
mberends | sorear: yes, and gacutil -l says System.Windows.Forms is not installed :-( That API might be patented. | 16:56 | |
sorear: that's probably the biggest hurdle, to create an object for the drawing area. | 16:58 | ||
felher | If i define a closure in a class, does the closure know 'self'? I.d.: Can i do 'class A { has $.x; has $.closure = { say self.x; }}'. If not, why? Isn't 'self' in the lexical scope of the class? Do i have totally wrong assumptions here? :) | 16:59 | |
moritz | felher: I thought and hoped you could, but nom doesn't seem to allow it | ||
felher | moritz: Okay, but it should work some far day? :) | 17:00 | |
17:00
daniel-s left
|
|||
moritz | felher: I hope so | 17:01 | |
felher | moritz: nice :) | ||
17:02
am0c left
|
|||
felher | Hm, does that mean one will be able to do: 'class Vector { has $.dimension; subset Compatible of Vector where { self.dimension == $_.dimension }; method distance-to(Compatible $vector) { ... }; }' | 17:03 | |
17:04
jevin left
17:05
kaleem joined
17:07
MayDaniel joined,
mkramer1 left
|
|||
sorear | mberends: I hear mono supports WinForms. | 17:07 | |
17:07
hanekomu joined
17:08
localhost left
17:09
localhost joined
17:10
jevin joined
|
|||
felher | +? | 17:10 | |
mberends | sorear: yes, there are examples online that suggest that. I'm porting a simple C# one: zetcode.com/tutorials/monowinformst...roduction/ | 17:11 | |
[Coke] | sorear, mberends: glad to help. | ||
sorear | mberends: if you're having too much trouble, ask #mono | ||
(irc.gimp.net) | |||
er, irc.gnome.org | 17:12 | ||
17:12
sayu left
|
|||
mberends | sorear: thanks, good idea for later, but not from a moving train | 17:12 | |
felher | std: class A { has $.x = 0; has $.clossure = { say self.x; } }; # :( | 17:14 | |
p6eval | std 8b331d2: OUTPUT«===SORRY!==='self' used where no object is available at /tmp/WMnKXeOifB line 1:------> has $.x = 0; has $.clossure = { say self⏏.x; } }; # :(Check failedFAILED 00:01 123m» | ||
17:14
espadrine left
|
|||
TimToady | my current thinking: 'print' stays raw list/Str output as in P5, 'show' becomes 'print @args».gist', and 'say' is then defined as show + newline. | 17:14 | |
shinobicl | nom: ('' =~ '')?1:0 | 17:15 | |
p6eval | nom f2cc82: OUTPUT«===SORRY!===Unsupported use of =~ to do pattern matching; in Perl 6 please use ~~ at line 1, near " '')?1:0"» | ||
shinobicl | nom: ('' ~~ '')?1:0 | ||
p6eval | nom f2cc82: OUTPUT«===SORRY!===Unsupported use of ?: for the conditional operator; in Perl 6 please use ??!! at line 1, near "1:0"» | ||
shinobicl | nom: ('' ~~ '')??1!!0 | ||
p6eval | nom f2cc82: ( no output ) | ||
sorear | TimToady: what's wrong with the status quo? | ||
perl6: say '' ~~ '' | 17:16 | ||
p6eval | rakudo f2cc82, niecza v10-18-g5be99bf: OUTPUT«Bool::True» | ||
..pugs: OUTPUT«1» | |||
TimToady | sorear: people were hating on the status quo yesterday | ||
[Coke] | sorear: there was much gnashing of teeth yesterday about say not being "print plus newline". | ||
TimToady | so I'm suggesting that say is "show plus newline" | 17:17 | |
show basically being a say without the newline | |||
[Coke] | TimToady: that | ||
TimToady | with vague allusions to "show your hand" | ||
[Coke] | (allusions aside) that's not a bad compromise. | ||
TimToady | indicate something before commiting to it | ||
and also works because 'show' is how many command APIs dump out settable values | 17:18 | ||
mberends | I would prefer to rollback a few weeks and not make .gist the default stringifier for say. | 17:19 | |
tadzik | oooh | 17:21 | |
moritz: thanks for reminding :0 | |||
I'm on it | |||
are we fine with non-clean spectest? | 17:22 | ||
sorear prefers the status quo to all proposals, but will accept TimToady's decision | |||
TimToady | there were good reasons for gisting the output of say, since it's primarily used for human output, not computer input | 17:23 | |
or however you say that | |||
there are also good reasons for leaving print raw | 17:24 | ||
[Coke] | who (aside from TT) is making the distincting between human output and non-human output? | ||
*distinction | |||
That's my primary source of disconnect with the change. | 17:25 | ||
TimToady | maybe you're not a human? | ||
mberends | sorear: Debian/Ubuntu package libmono-winforms2.0-cil must be installed | 17:28 | |
mls_ | the problem seems to be that you've got two directions of freedom, but just print/say | ||
print/println, say/saynl ;) | 17:29 | ||
printnl | |||
tadzik | sayln, nice | ||
or saysay | 17:30 | ||
mls_ | currently print/say are in the "opposite" corners | ||
which makes it hard to define the other two | |||
TimToady | and I think they should stay there | ||
flussence | bah, I fix a bunch of T-T-W for nom and it causes niecza to barf... | ||
TimToady | I'm suggesting show for one corner | ||
tadzik got distracted by $lugtalk and is now working on the release | |||
TimToady | (prompt being implemented in terms of show, probably) | 17:31 | |
as for printnl, that's not really much better than print @args, nl; # assuming constant nl = "\n" | |||
mls_ | yes, but having three different names that have nothing in common is confusing for beginners | ||
[Coke] | I'd prefer to have to say .gist if I meant it, rather than multiply operators by output type. | 17:32 | |
mls_ | (Of course I was kidding with that nl suffix ;) ) | ||
TimToady | human languages are most irregular at the most used spots | ||
and this is a heavily used spot | |||
PerlJam | greetings | 17:33 | |
[Coke] | yes, but they are that way not because they were designed that way. | ||
mls_ | TimToady: That's certainly true, from a usage perspective print/say are exactly right IMHO | ||
17:33
espadrine joined
|
|||
TimToady | [Coke]: you should read The Search for the Perfect Language by Umberto Eco | 17:35 | |
the heavily used bits of a language are precisely where you do *not* want orthogonality | |||
PerlJam | ingy: <b>? ~ <b>? <a> # There's your %%% :-) | ||
mls_ | I just think that 'show' is confusing, how about printgist? | 17:36 | |
(assuming it's not used often) | |||
TimToady | printline, printgist, and printgistline AKA say :) | 17:37 | |
17:37
mberends left,
donri joined
|
|||
TimToady | prin, prig, and pring :) | 17:37 | |
mls_ | maybe too much huffman ;) | 17:38 | |
17:38
lateau_1 joined
|
|||
[Coke] | printgist ain't much shorter than print ....gist | 17:38 | |
TimToady | too much Perfect Language | ||
PerlJam | TimToady: so ... what's the short-hand for print + newline ? | ||
TimToady | indeed, and printline is no shorter than print ,nl | 17:39 | |
17:39
makkksimal left
|
|||
TimToady | how about a built-in nl constant? | 17:39 | |
or NL | |||
mls_ | but it looks easier and it's easier to append stuff at the end | ||
TimToady | saves all of two characters | ||
PerlJam | Just like C++ (there, does that kill it? :) | ||
felher | I like print, show, say. It would leave print and say untouched, just adding show to be say - newline. Or am i wrong about that? | 17:41 | |
flussence | argh, too much workarounding | ||
tadzik | I liked the old behaviour of print/say | ||
flussence gives up trying to make Text::Wrap work in niecza | |||
moritz | tadzik: which part of the spectest is non-clean? | ||
tadzik | moritz: rechecking, maybe I'm wrong about it, but istr some tests failing non-deterministically | 17:42 | |
sorear | I happen to really like the current definition of say. | ||
[Coke] | felher: (untouched) from today, not from a week ago or whenever that was. | ||
tadzik | maybe they got fudged when I wasn't looking | ||
[Coke] | sorear: and I happen to really not. ;) | ||
17:42
donri left
17:43
donri joined,
donri left
|
|||
mls_ | ok, I have to head home, enjoy the further discussion... -> afk | 17:43 | |
17:43
Chillance joined
|
|||
PerlJam | sorear: what if show were today's say and say was just print + newline ? | 17:43 | |
17:43
donri joined
|
|||
moritz would be fine with that | 17:43 | ||
felher | [Coke]: Yeah. What was the old behaviour? say = print + nl? | ||
[Coke] | felher: yes. | ||
flussence | sorear: how much trouble would it be to get continue{} working? | 17:44 | |
[Coke] | that would be better than the earlier proposed compromise, IMO. | ||
17:48
risou is now known as risou_awy
|
|||
felher | We may use print, say (for .Str) and show, echo (for .gist) ;D Perhaps that would keep me from trying to write 'say' on the commandline ;D | 17:48 | |
sorear | PerlJam: I wouldn't complain. | ||
flussence: can you explain what continue{} does? | 17:49 | ||
flussence: do you mean NEXT{}? | |||
flussence | ...I'm doing something idiotic that only coincidentally works in rakudo again, aren't I? :) | ||
well, I get a NYI message now, so I suppose I'm asking for NEXT :) | 17:50 | ||
felher | std: class A { has $.x = 0; has $.closure = { say self.x; } }; # TimToady: Should that be possible? | 17:51 | |
p6eval | std 8b331d2: OUTPUT«===SORRY!==='self' used where no object is available at /tmp/uL9E2UNDTP line 1:------> has $.x = 0; has $.closure = { say self⏏.x; } }; # TimToady: Should that be possCheck failedFAILED 00:01 123m» | ||
17:51
kaare_ joined
|
|||
PerlJam | felher: perhaps if it were a method, otherwise it's not clear what "self" means. | 17:51 | |
TimToady | which is precisly what the error message says already | 17:52 | |
17:52
espadrine left
|
|||
sorear | flussence: S04:359 "There is no longer a C<continue> block." | 17:52 | |
17:53
wamba left
|
|||
felher | I thought maybe self is in the lexical scope of a class. :/ | 17:53 | |
TimToady | but what would it *mean*? | ||
sorear | niecza doesn't do NEXT (yet) though. | ||
tadzik | moritz: okay, it's a PASS, it's just some TODOs passed | 17:54 | |
t/spec/S06-signature/slurpy-params.rakudo and t/spec/S19-command-line/dash-e.rakudo | |||
moritz | tadzik: slurpy-params.t can be unfudged, I think | 17:55 | |
tadzik: and I'd just comment out dash-e.t for now | |||
tadzik | okay, but that's a roastthing | ||
moritz: from spectest.data? | |||
flussence blames perl6.vim for having misleading highlighting on "continue" | |||
moritz | tadzik: aye | ||
TimToady | flussence: that's a fossil, it's "proceed" now | 17:56 | |
17:56
espadrine joined
|
|||
PerlJam | flussence: it's probably a hold over since I belive perl6.vim started life as perl5.vim | 17:56 | |
felher | I think i just don't know enough, but i thought it might work just as: sub a() { my $x; return sub() { $x++ } }. Every invocation of a() gets its own $x. Just so every object gets it own self. | 17:57 | |
PerlJam | felher: but you don't have an object in the class definition | ||
17:57
mberends joined
|
|||
moritz | felher: well, it can only work if the sub is within a method | 17:57 | |
flussence | rakudo: for 1, 2 { say 'a'; continue { say 'b' } } | 17:58 | |
p6eval | rakudo f2cc82: OUTPUT«aCould not find sub &continue in block <anon> at /tmp/fZI1md5tlN:1 in method reify at src/gen/CORE.setting:3746 in method reify at src/gen/CORE.setting:3651 in method reify at src/gen/CORE.setting:3651 in method gimme at src/gen/CORE.setting:3988 in me… | ||
flussence | huh, why did that work in my code... | ||
felher | I thought i don't have a sub at 'sub a() { my $x ... } ' either, just a definition of a sub. | 17:59 | |
flussence | oh. of course. it never reached that because it's not a NEXT | ||
rakudo: for 1, 2 { say 'a'; NEXT { say 'b' } } | |||
p6eval | rakudo f2cc82: OUTPUT«aCould not find sub &NEXT in block <anon> at /tmp/La64ZtobaZ:1 in method reify at src/gen/CORE.setting:3746 in method reify at src/gen/CORE.setting:3651 in method reify at src/gen/CORE.setting:3651 in method gimme at src/gen/CORE.setting:3988 in method… | ||
flussence | erm. | ||
rakudo: my $x = 3; while $x-- { say 'a'; NEXT { say 'b' } } | |||
p6eval | rakudo f2cc82: OUTPUT«aCould not find sub &NEXT in block <anon> at /tmp/1eLCrCgEQv:1 in block <anon> at /tmp/1eLCrCgEQv:1 in <anon> at /tmp/1eLCrCgEQv:1» | ||
felher | As well as a class is a definition of an object. Thats not right, hm, isn't it? :) | ||
TimToady | b: for 1, 2 { say 'a'; NEXT { say 'b' } } | ||
p6eval | b 1b7dd1: OUTPUT«aCould not find sub &NEXT in <anon> at line 22:/tmp/yD2etZc42e in main program body at line 1:src/metamodel/RoleToInstanceApplier.nqp» | ||
flussence | rakudo: my $x = 3; while $x-- { say 'a'; next; say 'c'; NEXT { say 'b' } } | ||
p6eval | rakudo f2cc82: OUTPUT«aaa» | ||
flussence | rakudo: my $x = 3; while $x-- { say 'a'; next; say 'c'; some-completely-made-up-keyword { say 'b' } } | 18:00 | |
p6eval | rakudo f2cc82: OUTPUT«aaa» | ||
18:00
Reaganomicon joined
|
|||
dalek | kudo/nom: f2e57ca | tadzik++ | VERSION: [release] bump VERSION |
18:00 | |
kudo/nom: 1403177 | tadzik++ | t/spectest.data: Temporarily comment out dash-e.t |
|||
TimToady | rakudo: for 1, 2 { say 'a'; LEAVE { say 'b' } } | ||
p6eval | rakudo f2cc82: OUTPUT«===SORRY!===LEAVE phaser not yet implemented at line 1, near " }"» | ||
TimToady | b: for 1, 2 { say 'a'; LEAVE { say 'b' } } | 18:01 | |
p6eval | b 1b7dd1: OUTPUT«===SORRY!===LEAVE phaser not yet implemented at line 22, near " }"» | ||
felher | moritz: my 'sub a() ' just built a closure. It wasn't meant to be in a class at all. Sorry for the confusion. :) | 18:02 | |
18:02
mberends left
|
|||
TimToady | NEXT is really just a LEAVE that doesn't fire when unwound by a 'last' | 18:02 | |
sorear | TimToady: so NEXT runs twice in your example? | 18:03 | |
sorear thought there had to be an actual last element | |||
TimToady | yes, it runs right before the loop condition is tested again, as continue does in P5 | ||
flussence | should rakudo's spectest.data mention all the files in t/spec? I just noticed most of S04-phasers isn't there at all... | ||
moritz | flussence: no | 18:04 | |
TimToady | from an optimization point of view, NEXT is just a bit of code at the end that a 'next' does a goto to | ||
that's how P5 implements continue | |||
18:05
felher left
|
|||
TimToady | biab & | 18:05 | |
dalek | ast: 97c23e5 | moritz++ | S12-attributes/instance.t: refudge and correct S12-attributes/instance.t; add tests for attribute list assignment |
||
moritz | tadzik: I just fudged another test file -- can I add it to spectest.data before the release? | ||
tadzik | moritz: go on | 18:06 | |
moritz: I assume it doesn't break anything? :) | 18:09 | ||
I'll just retag everything and ship it, I just checked the tarball for workingness | |||
moritz | tadzik: no need to retagging | ||
tadzik | really? | ||
but I already have a tarball and everything | |||
moritz | tadzik: it's fine to add it after the release; I just didn't want to mess with your prcoess | ||
tadzik | no worries, nothing can stop me now | 18:10 | |
moritz | nom: say 10.ln | ||
p6eval | nom f2cc82: OUTPUT«Method 'ln' not found for invocant of class 'Int' in block <anon> at /tmp/wHslIxEoFE:1 in <anon> at /tmp/wHslIxEoFE:1» | ||
flussence | rakudo: say 'a'; goto 'end'; say 'b'; end: say 'c'; | 18:11 | |
p6eval | rakudo f2cc82: OUTPUT«===SORRY!===Confused at line 1, near "end: say '"» | ||
flussence | niecza: say 'a'; goto 'end'; say 'b'; end: say 'c'; | 18:12 | |
p6eval | niecza v10-18-g5be99bf: OUTPUT«ac» | 18:13 | |
tadzik | okay, release complete | 18:14 | |
moritz | tadzik++ | ||
tadzik | if I didn't forget anything | ||
flussence | \o/ | ||
tadzik | sorry for the delay | ||
dalek | ast: 8c73ebb | moritz++ | integration/99problems-51-to-60.t: use Any instead of Mu where appropriate |
18:15 | |
18:16
felher joined
|
|||
ingy | PerlJam: huh? that doesn't work | 18:16 | |
I want class: <method> %%% <comment>* | 18:17 | ||
in the real world | |||
er | |||
class: <method>+ %%% <comment>* | |||
TimToady | druther do something different, like %? and ?% | 18:18 | |
dalek | kudo/nom: cf85f33 | moritz++ | t/spectest.data: run instance attribute tests |
||
kudo/nom: 091bee7 | moritz++ | src/core/ (2 files): fail() in Complex.Real |
|||
ingy | TimToady: I thought about that but it's not really needed | 18:19 | |
if you are trying to say optional front, but no optional rear | |||
just reverse a and b | |||
felher | PerlJam, moritz: I finally understood it. Thnx for your help :) | 18:20 | |
18:20
Arrgh joined
|
|||
ingy | TimToady: so ?%? too? | 18:21 | |
Arrgh!!!! | |||
(that felt so good) | |||
flussence | .oO( I can't write code to spec that works in anything. this is giving me web-dev flashbacks... ) |
||
ingy | Arrgh++ | ||
moritz | nom: class A { method x() { sub { self } } }; my $x = A.new; say $x === $x.x.() | ||
TimToady | I don't think reversing it will work | ||
p6eval | nom f2cc82: OUTPUT«Bool::True» | ||
moritz | felher: here the inner sub is a closure that closes over self | 18:22 | |
Arrgh | Howdy, glad to be of help. ;) I'm a Scala guy, just curious about how you guys are progressing these days | ||
moritz | Arrgh: quite nicely, actually | ||
ingy | no? | ||
18:22
mberends joined
|
|||
ingy | TimToady: failing example please | 18:23 | |
moritz | Arrgh: in rakudo, we are now at a point where we can implement nice optimizations | ||
ingy | Arrgh: I can translate p6 modules to Scala! | ||
Arrgh: cdent.org/examples/hello-world/ | |||
:D | 18:24 | ||
not very many modules yet ;) | |||
moritz can translate "Hello, World" into a whole lot of programming languages | |||
18:25
packetkn_ joined
|
|||
felher | moritz: yeah, i see :) | 18:25 | |
ingy | TimToady: let me know if you drop %% and add ?%? or whatever | ||
dinner& | |||
18:27
gfldex joined
18:28
packetknife left
|
|||
diakopter | . | 18:29 | |
sorear | hello diakopter | ||
18:29
envi left
|
|||
diakopter | hi | 18:29 | |
mberends | Niecza can make an empty System.Windows.Forms.Form with Mono :) | 18:30 | |
diakopter | gist? | ||
mberends | soon, this mobile interweb is flaky | 18:31 | |
diakopter | TimToady: show +1 | ||
PerlJam | diakopter: ah, but which version of show? :) | 18:32 | |
diakopter | irclog.perlgeek.de/perl6/2011-09-30#i_4504618 | 18:33 | |
PerlJam | diakopter: what about irclog.perlgeek.de/perl6/2011-09-30#i_4504833 ? | 18:34 | |
diakopter | hm yeah +1 to that too | 18:35 | |
less trouble for p5 migration | |||
well sorta | |||
flussence | perl6: sub foo($a, $b, $c) { say "$a $b $c" }; my &wrapped = &foo.assuming('a', 'b'); &wrapped('c'); | 18:36 | |
p6eval | rakudo f2cc82, niecza v10-18-g5be99bf: OUTPUT«a b c» | 18:37 | |
..pugs: OUTPUT«*** Can't modify constant item: VStr "MkCode {isMulti = True, subName = \"&\", subType = SubPrim, subOuterPads = [], subInnerPad = MkPad (padToList []), subPackage = , subAssoc = AIrrelevantToParsing, subParams = [], subBindings = [], subSlurpLimit = [], subReturns = (mkTyp… | |||
flussence | perl6: sub foo($a, $b, *@_) { say "$a $b @_" }; my &wrapped = &foo.assuming('a', 'b'); &wrapped('c'); | ||
p6eval | rakudo f2cc82, niecza v10-18-g5be99bf: OUTPUT«a b @_» | ||
..pugs: OUTPUT«*** Can't modify constant item: VStr "MkCode {isMulti = True, subName = \"&\", subType = SubPrim, subOuterPads = [], subInnerPad = MkPad (padToList []), subPackage = , subAssoc = AIrrelevantToParsing, subParams = [], subBindings = [], subSlurpLimit = [], subReturns = (mkTyp… | |||
flussence | perl6: sub foo($a, $b, *@_) { say "$a $b " ~ @_.join }; my &wrapped = &foo.assuming('a', 'b'); &wrapped('c'); | ||
p6eval | rakudo f2cc82, niecza v10-18-g5be99bf: OUTPUT«a b c» | ||
..pugs: OUTPUT«*** Can't modify constant item: VStr "MkCode {isMulti = True, subName = \"&\", subType = SubPrim, subOuterPads = [], subInnerPad = MkPad (padToList []), subPackage = , subAssoc = AIrrelevantToParsing, subParams = [], subBindings = [], subSlurpLimit = [], subReturns = (mkTyp… | |||
PerlJam | flussence: @_[] or {@_} would have interpolated | ||
felher | moritz: Hm, so since what i want seems not to be possible: is there a way to get something like: 'class Vector { has $.dimension; ... >>>subset Compatible of Vector where { $.dimension == $_.dimension };<<< method sum(Comptabible $other) {...}; method prod(Compatible $other) {...};}'? I know i could use a method is_compatible(Vector $other). I would like to have a subset, though. :) | 18:38 | |
moritz | felher: should be possible | 18:39 | |
felher: hm, no | 18:41 | ||
types cannot have dependencies on multiple objects in a sane fashion | |||
felher | moritz: Hm, what a pitty. Well, thnx nevertheless. # moritz++ for his incredible patience :) | 18:42 | |
18:44
Arrgh left
18:46
Exodist left
|
|||
PerlJam | felher: you could put the where clause each method ... method sum(Vector $v where { $.dimension == $v.dimension }) { ... } | 18:47 | |
felher: if we had macros it wouldn't even be that onerus to do it to multiple methods. | |||
(if we had macros) | |||
18:50
mberends left
|
|||
moritz | nom: Int.^add_fallback(-> $, $ { True }, sub f($a, $b) { say "$a,$b" }); 5.foo | 18:50 | |
p6eval | nom f2cc82: OUTPUT«5,fooMethod 'postcircumfix:<( )>' not found for invocant of class 'Bool' in <anon> at src/gen/Metamodel.pm:3143 in block <anon> at /tmp/f4MoK03QIW:1 in <anon> at /tmp/f4MoK03QIW:1» | ||
felher | PerlJam: yeah :) if we had macros. :) | 18:51 | |
felher -> afk, studying | 18:54 | ||
18:56
MayDaniel left
|
|||
moritz | there's an even better way | 18:58 | |
make it a generic role | |||
Vector[$Dimension] | |||
PerlJam | oh, good point | ||
Woodi | b: sub a { my $b=1; $b != 2 ?? { say "p1$b"; return False} !! { say "p2$b" } }; say a(); | ||
p6eval | b 1b7dd1: OUTPUT«_block1080» | ||
moritz | and then you have a real type | 18:59 | |
Woodi | rakudo: sub a { my $b=1; $b != 2 ?? { say "p1$b"; return False} !! { say "p2$b" } }; say a(); | ||
p6eval | rakudo 091bee: OUTPUT«_block1015» | ||
Woodi | rakudo: sub a { my $b=1; $b != 2 ?? &{ say "p1$b"; return False} !! &{ say "p2$b" } }; say a(); | ||
p6eval | rakudo 091bee: OUTPUT«===SORRY!===Non-declarative sigil is missing its name at line 1, near "&{ say \"p1"» | ||
moritz | Woodi: try to invoke the result | ||
rakudo: sub a { my $b=1; $b != 2 ?? { say "p1$b"; return False} !! { say "p2$b" } }; say a()() | |||
p6eval | rakudo 091bee: OUTPUT«p11Attempt to return from exhausted Routine in sub die at src/gen/CORE.setting:416 in sub EXHAUST at src/gen/CORE.setting:481 in block <anon> at /tmp/VKIfuDHHCh:1 in block <anon> at /tmp/VKIfuDHHCh:1 in <anon> at /tmp/VKIfuDHHCh:1» | ||
Woodi have no idea what invoke is :) | 19:00 | ||
moritz | call | ||
19:02
jlaire left
|
|||
Woodi | rakudo: sub a { my $b=1; $b != 2 ?? &{ say "p1$b"; return False} !! &{ say "p2$b" }; say "more" }; say a()() | 19:02 | |
p6eval | rakudo 091bee: OUTPUT«===SORRY!===Non-declarative sigil is missing its name at line 1, near "&{ say \"p1"» | ||
Woodi | rakudo: sub a { my $b=1; $b != 2 ?? { say "p1$b"; return False} !! { say "p2$b" }; say "more" }; say a()() | ||
p6eval | rakudo 091bee: OUTPUT«moreMethod 'postcircumfix:<( )>' not found for invocant of class 'Bool' in <anon> at src/gen/Metamodel.pm:3143 in block <anon> at /tmp/poa0qPZ36s:1 in <anon> at /tmp/poa0qPZ36s:1» | ||
moritz | Woodi: just use if/else :-) | 19:03 | |
Woodi | right :) | ||
moritz | you can also use do { ... } | ||
but that's *really* bad style | |||
Woodi | but it always annoy me that C/Perl5 ?: allows only one operation | 19:04 | |
PerlJam starts working on "Elements of Perl 6 Programming Style" | |||
Woodi | is do {} have good performance ? | ||
err | |||
PerlJam | Woodi: that's not true | ||
Woodi | do do {} have good performance ? | 19:05 | |
moritz | Woodi: in rakudo, every { } block is an invocation, and that's relatively slow | ||
PerlJam | Woodi: but aside from that ... if you need something more complicated, that's what if/else is for. | ||
moritz | doesn't matter if the block belongs to a 'do', an 'if' or whatever | ||
Woodi | i want something not so complicated :) just assign to walue and return.. | 19:06 | |
tadzik | did my p6c email get there? | ||
Woodi | k, rewrite to if | ||
moritz | tadzik: I haven't got it yet | ||
tadzik | dang | 19:07 | |
moritz | tadzik: I'd also expected to get lots of mails from RT today (because I closed lots of tickets), but didn't get any | ||
seems p6c has a hiccup | 19:08 | ||
19:08
jlaire joined
19:09
GlitchMr joined
|
|||
GlitchMr | niecza: ... | 19:09 | |
phenny | GlitchMr: 04:00Z <sorear> tell GlitchMr 1. it's is equiv<++>, not is equiv:<++>, these are completely different 2. precedence on multis is NYI in niecza, just use regular subs | ||
p6eval | niecza v10-18-g5be99bf: OUTPUT«Unhandled Exception: >>>Stub code executed at /tmp/sChZLjultR line 1 (MAIN mainline @ 1)  at /home/p6eval/niecza/lib/CORE.setting line 2115 (CORE C1022_ANON @ 2)  at /home/p6eval/niecza/lib/CORE.setting line 2116 (CORE module-CORE @ 58)  at /home/… | ||
GlitchMr | rakudo: ... | 19:10 | |
p6eval | rakudo 091bee: ( no output ) | ||
GlitchMr | no output... | ||
rakudo: '$'..'@' | 19:12 | ||
p6eval | rakudo 091bee: ( no output ) | ||
GlitchMr | rakudo: say chr $_ for 36..64 | 19:13 | |
p6eval | rakudo 091bee: OUTPUT«$%&'()*+,-./0123456789:;<=>?@» | ||
GlitchMr | For me both of those forms looks identical... | ||
Oh I see... | |||
I forgot print | |||
lol | |||
rakudo: print '$'..'@' | |||
p6eval | rakudo 091bee: OUTPUT«(timeout)$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$… | 19:14 | |
GlitchMr | whatever, it was wrong | ||
rakudo: say $_ for '$'..'@' | |||
dalek | kudo/nom: ebd4d87 | moritz++ | src/core/Failure.pm: throw an exception when calling an exception of Failure Probably not spec, but much better than the message that the method could not be found |
||
p6eval | rakudo 091bee: OUTPUT«(timeout)» | ||
19:15
kaare_ left,
masak joined
|
|||
masak | guten heute, #perl6 | 19:15 | |
GlitchMr | rakudo: `clear`; | ||
p6eval | rakudo 091bee: OUTPUT«===SORRY!===Confused at line 1, near "`clear`;"» | ||
masak | GlitchMr: qx | 19:16 | |
GlitchMr | rakudo: qx(clear); | ||
masak | rakudo: qx[clear] | ||
p6eval | rakudo 091bee: OUTPUT«Could not find sub &clear in block <anon> at /tmp/_TDl4Z9DiS:1 in <anon> at /tmp/_TDl4Z9DiS:1» | ||
rakudo 091bee: OUTPUT«qx, qqx is disallowed in safe mode in sub die at src/gen/CORE.setting:416 in sub restricted at src/SAFE.setting:2 in sub QX at src/SAFE.setting:9 in block <anon> at /tmp/w5P2mf9IAL:1 in <anon> at /tmp/w5P2mf9IAL:1» | |||
GlitchMr | safe mode... | ||
O_o | |||
masak | GlitchMr: parentheses always mean sub call | ||
GlitchMr: safe mode is on in #perl6. | |||
GlitchMr | What is safe mode? | ||
masak | it's turning off some potentially damaging function in Rakudo. | 19:17 | |
jnthn | evenin' | ||
GlitchMr | I guess it's similar to safe_mode in PHP... but... that doesn't say much... | ||
masak | jnthn: o/ | ||
19:17
sivoais left
|
|||
masak | GlitchMr: not sure it's similar to that. | 19:17 | |
moritz | GlitchMr: would you run an IRC bot and allow everybody to execute shell commands on your server? | ||
flussence | well for one, rakudo's safe mode actually does something :) | ||
tadzik | oh hai mr masak | ||
GlitchMr | Makes sense... | ||
masak | GlitchMr: it's just a way to prevent obvious abuses of the p6eval bot. | ||
tadzik: mr tadzik, czesc! | |||
GlitchMr | niecza: qx[clear] | 19:18 | |
dalek | ast: 9842081 | moritz++ | S06-signature/slurpy-params.t: unfudge now-passing "is default" test for rakudo |
||
p6eval | niecza v10-18-g5be99bf: OUTPUT«Unhandled Exception: System.Exception: Unable to find lexical rungather in mainline at Niecza.CLRBackend.NamProcessor.ResolveLex (System.String name, Boolean upf, System.Int32& uplevel, Boolean core) [0x00000] in <filename unknown>:0  at Niecza.CLRBac… | ||
GlitchMr | ... | ||
moritz | tadzik++ # best rakudo release ever | ||
masak | moritz++ # been busy in RT, I see | 19:19 | |
jnthn | .oO( if tadzik++ does the best Rakudo releases ever, we should just get him to do all of them ;) ) |
||
masak | oh, we've had a release? neat! | ||
moritz | rakudo: class A { method foo { my $a = 42; method bar { say $a | ||
p6eval | rakudo 091bee: OUTPUT«===SORRY!===Unable to parse blockoid, couldn't find final '}' at line 1» | ||
moritz | rakudo: class A { method foo { my $a = 42; method bar { say $a } } }; given A.new { .foo; .bar } | ||
p6eval | rakudo 091bee: OUTPUT«42» | 19:20 | |
masak | moritz: congrats on closing RT #52242 -- was that our oldest open one? | ||
moritz: wow, methods in methods -- that's *evil*! who makes up this stuff? :P | |||
moritz | masak: I just know who submitted the ticket :-) | 19:21 | |
jnthn | masak: you? :P | ||
Did it not work out at one time? | |||
masak glances around innocently | |||
jnthn: I think it NPMCAs in ng. | |||
or something. | |||
moritz | yep | 19:22 | |
rt.perl.org/rt3/Ticket/Display.html?id=83902 | |||
felher | moritz: Hm, vector[$dimension]. Yeah, right. :) One won't be able to easily extend one's vector into a new dimension, though. But it's definitively enought for what i want to do. Ty! | ||
masak | so... evil... | ||
GlitchMr | rakudo: class nope { method nope { print 'nope' }} class yope is nope {} my $yope = yope.new(); $yope.nope | ||
p6eval | rakudo 091bee: OUTPUT«===SORRY!===Confused at line 1, near "class nope"» | ||
GlitchMr | ... | 19:23 | |
masak | GlitchMr: semicolon after closing brace. | ||
if you mean to write more on that line. | |||
GlitchMr | rakudo: class Nope { method nope { print 'nope' }}; class Yope is nope {}; my $yope = Yope.new(); $yope.nope | ||
masak | which you usually do in one-liners :) | ||
p6eval | rakudo 091bee: OUTPUT«===SORRY!===No applicable candidates found to dispatch to for 'trait_mod:<is>'. Available candidates are::(Mu $type, Any $size, Any $nativesize):(Attribute $attr, Any $rw):(Attribute $attr, Any $readonly):(Routine $r, Any $rw):(Routine $r, Any $default):(Par… | ||
jnthn | masak: daaligt. | ||
Glad it's fixed. | |||
GlitchMr | O_o | ||
masak | GlitchMr: "Nope", not "nope" | ||
jnthn | GlitchMr: Case sensitive. | ||
GlitchMr | rakudo: class Nope { method nope { print 'nope' }}; class Yope is Nope {}; my $yope = Yope.new(); $yope.nope | ||
p6eval | rakudo 091bee: OUTPUT«nope» | ||
masak | jnthn: once again, it shows that lexpads rule everything. | 19:24 | |
GlitchMr | :) | ||
jnthn | I wonder if we can add a default trait_mod:<is> that's a tad more informative... | ||
masak | GlitchMr: also, Barbara Liskov frowns at you :P | ||
GlitchMr | class Nope { function nope() { print 'nope'; }} class Yope extends Nope {} $yope = new Yope(); $yope->nope(); | ||
It reminds me PHP for some reason... | 19:25 | ||
masak | perhaps because that's where you learned OO? :) | ||
GlitchMr | Maybe... | ||
That's very posible... | |||
dalek | ast: a72deaf | moritz++ | S12-methods/instance.t: test for inner methods, RT #83902 |
||
GlitchMr | possible... | ||
jnthn | It kinda reminds me of Java and C# and C++ too... ;) | ||
masak | GlitchMr: be sure to check out roles. they're much better than anything OO-based in PHP. | ||
GlitchMr | class ClassName; | 19:26 | |
sjohnson | ( `ー´) | ||
GlitchMr | ... this in PHP would make empty class... | ||
jnthn | GlitchMr: In Perl 6 it means that rest of the file makes up the body of that class. | ||
GlitchMr | Makes sense... | 19:27 | |
masak | sjohnson: hello, cute doggie face! | ||
sjohnson | heheh | ||
moritz | nom: class Class { }; say Class.new | ||
p6eval | nom 091bee: OUTPUT«Class<95918824>» | ||
GlitchMr | Oh wait... class ClassName; makes syntax error in PHP... | ||
I find it weird... it other block instructions, it makes empty instruction... | |||
moritz | std: Class | 19:28 | |
p6eval | std 8b331d2: OUTPUT«ok 00:01 118m» | ||
GlitchMr | Whatever... | ||
moritz | so, Class exists? | ||
GlitchMr | niecza: class Class { }; say Class.new | ||
moritz | or not? | ||
p6eval | niecza v10-18-g5be99bf: OUTPUT«Class.new(...)» | ||
sorear | hello, GlitchMr. | ||
GlitchMr | sorear, hi | ||
sorear | moritz: fossil I'm sure | ||
jnthn | moritz: It doesn't. | ||
19:29
sivoais joined
|
|||
flussence | std: Whatever, ... | 19:29 | |
p6eval | std 8b331d2: OUTPUT«Potential difficulties: Comma found before apparent series operator; please remove comma (or put parens around the ... listop, or use 'fail' instead of ...) at /tmp/UMWmVvaHYX line 1:------> Whatever,⏏ ...ok 00:01 121m» | ||
sorear | moritz: from way back when class A { } defines A (~~ Class) and A.new ~~ A | ||
GlitchMr | std: print print print print print 2; | ||
p6eval | std 8b331d2: OUTPUT«ok 00:01 119m» | ||
GlitchMr | niecza: print print print print print 2; | 19:30 | |
p6eval | niecza v10-18-g5be99bf: OUTPUT«2Bool::TrueBool::TrueBool::TrueBool::True» | ||
GlitchMr | Makes sense... | ||
dalek | ast: 7dd7383 | moritz++ | S02-names-vars/names.t: test that class Class is OK |
||
GlitchMr | print "\x07" while Bool::True | ||
niecza: print "\x07" while Bool::True | 19:31 | ||
p6eval | niecza v10-18-g5be99bf: OUTPUT«(timeout)… | ||
sorear | GlitchMr: what exactly are you trying to do? | ||
GlitchMr | niecza: print "\x07" for 1..100 | ||
p6eval | niecza v10-18-g5be99bf: OUTPUT«» | ||
GlitchMr | Weird... it caused beep in my IRC client. | ||
That probably means my IRC client fails... | |||
mikemol | Yeah, caused a beep in mine, too. | ||
flussence | p6eval should probably filter out control chars. | 19:32 | |
rakudo: print "\x14AAAAA!" | |||
p6eval | rakudo 091bee: OUTPUT«===SORRY!===Invalid character for UTF-8 encoding» | ||
moritz | nom: say NaN == NaN | ||
p6eval | nom 091bee: OUTPUT«Bool::False» | ||
flussence | niecza: print "\x14AAAAA!" | ||
moritz | nom: say NaN === NaN | ||
p6eval | nom 091bee: OUTPUT«Bool::False» | ||
niecza v10-18-g5be99bf: OUTPUT«ꪪ!» | |||
GlitchMr | <moritz> nom: say NaN == NaN | ||
<p6eval> nom 091bee: OUTPUT«Bool::False» | |||
flussence | whoops | ||
rakudo: print "\x[14]AAAAA!" | |||
GlitchMr | It reminds me JavaScript for some reason... | ||
p6eval | rakudo 091bee: OUTPUT«AAAAA!» | ||
moritz | nom: s[] | ||
p6eval | nom 091bee: OUTPUT«===SORRY!===Unrecognized regex metacharacter (must be quoted to match literally) at line 1, near ""» | ||
sorear | why are you (ab)using p6eval for this? | ||
19:33
sivoais left
|
|||
GlitchMr | On my PC running that infinite beep loop code causes cmd.exe to freeze... | 19:33 | |
moritz | nom: say (1, 2) >>[+]<< (10, 10) | 19:34 | |
GlitchMr | That's probably bug in Micosoft code... | ||
p6eval | nom 091bee: OUTPUT«11 12» | ||
flussence | ah, the good old DOS DOS... | ||
GlitchMr | nom: ('h', 'e', 'l', 'l', 'o' Z=> 'w', 'o', 'r', 'l', 'd').perl | ||
p6eval | nom 091bee: ( no output ) | ||
GlitchMr | nom: print ('h', 'e', 'l', 'l', 'o' Z=> 'w', 'o', 'r', 'l', 'd').perl | ||
p6eval | nom 091bee: OUTPUT«("h" => "w", "e" => "o", "l" => "r", "l" => "l", "o" => "d").list» | ||
GlitchMr | Right... | ||
sorear wonders if ey should set an /ignore on GlitchMr and p6eval | 19:35 | ||
GlitchMr | nom: #!/usr/bin/perl | ||
p6eval | nom 091bee: ( no output ) | ||
19:35
soh_cah_toa joined
|
|||
sorear | hello soh_cah_toa | 19:36 | |
soh_cah_toa | sorear: hey | ||
dalek | ast: 5e3afdd | moritz++ | S03-metaops/hyper.t: test for >>[+]<<, RT #83510 |
||
flussence | rakudo: say ord("\c[BENZENE RING]") # ooc, is there a way to do the inverse of this? | 19:37 | |
p6eval | rakudo 091bee: OUTPUT«9004» | ||
19:37
sivoais joined
|
|||
GlitchMr | nom: die "Because Perl 5" | 19:37 | |
p6eval | nom 091bee: OUTPUT«Because Perl 5 in sub die at src/gen/CORE.setting:416 in block <anon> at /tmp/ALXEMq1BXi:1 in <anon> at /tmp/ALXEMq1BXi:1» | ||
19:38
GlitchMr left,
baest left
19:39
pmurias joined
|
|||
sorear | flussence: I guess something like charnames::viacode(9004) | 19:39 | |
o/ pmurias | |||
moritz | nom: *.&say | 19:40 | |
p6eval | nom 091bee: ( no output ) | ||
moritz | nom: say *.&say.WHAT | ||
p6eval | nom 091bee: OUTPUT«WhateverCode()» | ||
[Coke] | tadzik++ | 19:42 | |
dalek | ast: 924663b | moritz++ | S02-types/whatever.t: *.&foo currying, RT #81448 |
19:43 | |
pmurias | sorear: hi | 19:45 | |
sorear: how well does niecza support .net on windows? | 19:46 | ||
sorear | pmurias: I hear it works, and I've been trying not to break it. I can't help with specific problems; diakopter is my main contact | 19:47 | |
pmurias | i'm currently using Win32::GUI and perl5 :( for an app that has to run on windows an was wondering if niecza would be a better choice ;) | ||
sorear | Maybe, if you know how to do .net GUI stuff and don't mind installing .net on client machines | 19:48 | |
pmurias | isn't .net bundle with windows nowdays? | 19:49 | |
19:49
molaf__ left
|
|||
pmurias | * bundled | 19:49 | |
sorear | pmurias: No clue. | 19:50 | |
I haven't actually developed on Windows since Win98 | |||
pmurias | but propably just using Win32::GUI and getting it over with ASAP would be best | 19:51 | |
sjohnson | sorear: can you talk small bit about why you chose C# for niecza? | ||
sorear | sjohnson: yes | 19:52 | |
19:52
dual left
|
|||
masak | nom: class A { method foo { my $a = 42; class B { method bar { say $a } } } }; A.new.foo; B.new.bar | 19:53 | |
p6eval | nom 091bee: OUTPUT«Could not find sub &B in block <anon> at /tmp/JGv3SmCXFi:1 in <anon> at /tmp/JGv3SmCXFi:1» | ||
sjohnson | sorear: please do :) | ||
moritz | rakudo: my @a = <a b c>; @a[0 ..^ *-1] >>~=>> "\n"; say @a.perl | ||
masak | nom: class A { method foo { my $a = 42; class B { method bar { say $a } } } }; A.new.foo; A::B.new.bar | ||
p6eval | rakudo 091bee: OUTPUT«Array.new("a\n", "b\n", "c")» | ||
nom 091bee: OUTPUT«42» | |||
masak | \o/ | ||
nom: class A { method foo { my $a = 42; class B { method bar { say $a } } } }; A::B.new.bar | |||
p6eval | nom 091bee: OUTPUT«Any()» | ||
masak | \o/ | ||
sorear | sjohnson: 1. diakopter used it in sprixel, which was where niecza was born 2. I've decided I really like the language | ||
sjohnson | thanks | 19:54 | |
so it's not a failed attempt by MS to do something good? | |||
masak | in which sense was niecza born at sprixel? | ||
sjohnson | (the language) | ||
flussence | imo it's more like a failed attempt by them to do something evil :) | ||
arnsholt | sjohnson: I usually describe C# as Java, just better | 19:55 | |
sorear | sjohnson: don't forget, GHC is primarily funded by Microsoft | ||
arnsholt | It has lambdas, for crying out loud =D | ||
sorear | sjohnson: diakopter said C# was created outside Microsoft initially. They bought it because it's so good. | 19:56 | |
sjohnson | hmm, i had a hard time googling for GHC. what is that? | ||
yath | glasgow haskell compiler | ||
sjohnson | interesting | ||
19:56
dual joined
|
|||
sorear | sjohnson: C# was influenced a great deal by Java but it was designed with much more emphasis on being compatible with C++ codebases | 19:56 | |
sjohnson | sorear: and C# compiles on non-Windows OS's? | ||
sorear | yes | 19:57 | |
sjohnson | interesting | ||
i had no idea | |||
sorear | there are a handful of non-Microsoft C# compilers | ||
sjohnson | maybe i should give it a shot | ||
masak | sjohnson: you most definitely should. | ||
sjohnson: a lot of nice things are happening around C# right now. | |||
and the CLR. | |||
sjohnson | i just assumed it was some crap language like MS Visual Basic | 19:58 | |
i'm glad i asked | |||
sorear | masak: the details are fuzzy, but I started to work on diakopter's "convert STD to CIL" project for a couple weeks and then we discovered that we had massively different project visions, so I split my code off and gave it a new name | 19:59 | |
diakopter | sorear: actually I said the .net vm/cil was developed outside | ||
19:59
pyrimidine left
|
|||
diakopter | I'm certain C# itself was an MS thing | 19:59 | |
sorear | diakopter: oh, so the acquired product was C/CLI and C# came later? very interesting | ||
sjohnson: heh, I thought the same thing, diakopter++ for pressuring me to actually give it a try | 20:00 | ||
diakopter | I'm sure the development of C# had tons of influence over the first *release* of .Net, but from what I've read, the actual VM had its early stages in research and an outside company that was acquired | ||
in other words I bet C# influenced the first *release* of the CIL spec | 20:02 | ||
masak | sounds probably. | ||
probable* | |||
sorear | the most problematic thing with the CLR as a development platform is that, due to the metadata-loading requirement, it has non-insignificant fixed overhead | ||
20:03
mberends joined
|
|||
sorear | the second most problematic thing I've found is that you don't have complete control over memory layout and the ability to hook arbitrarily into the GC | 20:04 | |
20:04
lateau_1 left
|
|||
diakopter | forking/bundling mono could solve that, but would create lots of other problems :) | 20:05 | |
sorear | IME Mono's fixed overhead, while significant, is much less than the Sun JVM's | 20:06 | |
pmurias | fixed overhead = ? | ||
sorear | a Mono hello world can start from a cold cache on my 8 year old computer in less than a second | ||
moritz | and how long does Perl 5 need? :-) | 20:07 | |
diakopter | :) | ||
it'd be hard to get a computer in a state where Perl hasn't been run | |||
well, maybe not | |||
moritz | diakopter: you can have multiple perls | 20:08 | |
20:08
kaleem left
|
|||
diakopter | oh yeah | 20:08 | |
benabik | diakopter: You can force the Linux kernel to drop its caches. | ||
dalek | ast: 104edee | moritz++ | S02-types/array.t: test array indexing with 0..^*-1, RT RT #79270 |
||
sorear | there's another problem that shows up with very large applications | ||
niecza has about 5MB of assemblies (I want to find ways to reduce the source/binary expansion factor here) | 20:09 | ||
the time required to parse the metadata for STD.dll et al accounts for a substantial fraction of niecza's startup slowness | |||
moritz | rakudo: my $pair = "OH HAI" => 42; say $pair.Capture.perl | 20:10 | |
p6eval | rakudo ebd4d8: OUTPUT«key OH HAI value 42» | ||
diakopter | sorear: have you experimented with the JIT flags? in perlesque I saw a dramatic speedup by telling mono not to optimize certain things | ||
sorear | diakopter: I try to measure niecza after AOTing. | 20:11 | |
diakopter | oh | 20:13 | |
pmurias | sorear: would having a persistent niecza compiler help things? | 20:14 | |
sorear: it still will hurt development there | 20:15 | ||
s/there// | |||
sorear | That is unacceptable. | 20:19 | |
diakopter | what's unacceptable? | ||
sorear | diakopter: a single persistant niecza daemon | 20:20 | |
ingy | p6 has demons! | 20:32 | |
pmurias | sorear: why is that unacceptable? | 20:34 | |
benabik | Hm. Scala has a huge startup load, and that's exactly how they manage it. Use fsc instead of scalar and it starts a resident version of the compiler. | ||
*scalac, not scalar | |||
dalek | kudo/optimizer: 56be5f9 | jnthn++ | src/binder/bind.c: Fix a couple of oversights in compile-time bind analysis. |
20:35 | |
[Coke] | Anyone here near Albany, NY? | ||
benabik | [Coke]: same state, which is closer than some. ;-) | 20:36 | |
[Coke] offers a beer to anyone who makes it out this way. | |||
benabik makes a note to get free beer next time he visits his brother-in-law. ;-) | |||
20:37
vlixes joined
|
|||
flussence | I think mod_perl/mod_php have prior art over scala there :) | 20:37 | |
sorear | same country, which is closer than some. :-) | 20:38 | |
jnthn | Same hemisphere... :) | 20:39 | |
20:39
bbkr left
20:40
bbkr joined
|
|||
[Coke] does wish there was an active enough perl community in this part of NYS to bring jnthn over for a chat (and a beer) | 20:41 | ||
benabik | [Coke]: +1 | ||
[Coke] will try to make it down to NYC the next time something happens there. | |||
sorear | almost all (in the Lebesgue sense) pairs of points on Earth share a hemisphere. | ||
and I don't think we have any Perl hackers in space yet. | 20:42 | ||
sjohnson | @karma | ||
pmurias | sorear: why does print eval("4",:lang<perl5>); attempt to call gist? | 20:46 | |
sorear | pmurias: it's calling gist on the return value of print | 20:48 | |
actual answer: a bug | |||
print ~eval for now | |||
mberends | one-liner: mono run/Niecza.exe -e 'CLR::("System.Windows.Forms.MessageBox,System.Windows.Forms,Version=2.0.0.0,Culture=neutral,PublicKeyToken=b77a5c561934e089").Show("Oh Hai!")' | 20:50 | |
diakopter | niecza: CLR::("System.Windows.Forms.MessageBox,System.Windows.Forms,Version=2.0.0.0,Culture=neutral,PublicKeyToken=b77a5c561934e089").Show("Oh Hai!") | 20:57 | |
p6eval | niecza v10-18-g5be99bf: OUTPUT«Unhandled Exception: CLR objects may not be used directly in safe mode at /tmp/wl41_ilwlO line 1 (MAIN mainline @ 1)  at /home/p6eval/niecza/lib/CORE.setting line 2115 (CORE C1022_ANON @ 2)  at /home/p6eval/niecza/lib/CORE.setting line 2116 (CORE mo… | ||
diakopter | nice | ||
20:58
thou left
|
|||
diakopter | hunh; I disagree with the explanation of the example at en.wikipedia.org/wiki/Common_knowle...28logic%29 | 21:09 | |
hanekomu | rakudo: say $_ for 1..3 | ||
p6eval | rakudo ebd4d8: OUTPUT«123» | ||
hanekomu | rakudo: say for 1..3 | ||
p6eval | rakudo ebd4d8: OUTPUT«» | ||
hanekomu | hm | 21:10 | |
diakopter | rakudo: .say for 1..3 | ||
p6eval | rakudo ebd4d8: OUTPUT«123» | ||
hanekomu | ah :) | ||
21:11
mberends left
|
|||
diakopter | specifically, for k >= 3, I'll insist that the blue-eyed fact *is* common knowledge | 21:11 | |
(before the outsider announces it) | 21:12 | ||
masak | diakopter: I've heard the example stated in a couple of forms, sometimes with bell tolls and cheating husbands etc. it's fine for a logic exercise, but it feels very unlike how people act in real life. reality is too fuzzy for people to act like first-order logic computers. | 21:13 | |
but maybe that isn't your complaint. | |||
hanekomu: bare 'say' should be disallowed in Rakudo. it's a known bug that it isn't. | 21:15 | ||
std: say for 1..3 | |||
p6eval | std 8b331d2: OUTPUT«===SORRY!===Unsupported use of bare 'say'; in Perl 6 please use .say if you meant $_, or use an explicit invocant or argument at /tmp/q_m2tAemSc line 1:------> say⏏ for 1..3Check failedFAILED 00:01 121m» | ||
hanekomu | what's std? yet another compiler? | ||
masak | hanekomu: it's a reference parser. | 21:16 | |
it mainly gives informative error messages. doesn't run code. | |||
hanekomu | ah | ||
masak | hanekomu: moritz thinks it's a bit unfair to block a perfectly good Perl 6 use case ('say' printing an empty line) just because Perl 5 people may get it wrong. | 21:17 | |
TimToady insists on it though, mainly by not saying anything back ;) | |||
diakopter | masak: no; that's not my complaint. I'm simply arguing that if k >= 3, everyone on the island (from the beginning of "time" on the island) knows that everyone else knows there is at least one blue-eyed person on the island, and that's sufficient for it to be common knowledge | 21:18 | |
masak | diakopter: oh, I think I see what you mean. | 21:19 | |
diakopter | so, on the k-th day from the beginning of "time", all the blue-eyed people know the color of their own eyes, and leave | ||
21:19
sivoais left
|
|||
masak | yeah. | 21:20 | |
diakopter | it helps to presume/understand that the situation as presented is in an unreachable state if there was no beginning of time (they've been there infinite time already) | ||
21:21
sivoais joined
|
|||
masak | one would think infinitely old beings would be more tolerant towards blue-eyes. | 21:22 | |
diakopter | the xkcd edition xkcd.com/blue_eyes.html implies they're infinitely old beings; heh | 21:24 | |
21:33
bluescreen10 left
21:41
shinobicl left
|
|||
cognominal | problem with that common knowledge logic is that the crowd knowledge is screwed if there is one single guy that does not know shit about logic. Too bad knowledge about logic is harldy common. | 21:42 | |
21:44
erb joined,
erb is now known as Fuad
|
|||
masak | hi Fuad! | 21:44 | |
21:45
Fuad left,
Fuad joined
|
|||
Fuad | masak: hello bro! | 21:45 | |
21:45
espadrine left
|
|||
cognominal | Jean Yves Girard, the guy who designed System F have very harsh words about all these junk logics. | 21:46 | |
*has | 21:47 | ||
masak | 'night, #perl6 | ||
21:48
masak left
21:49
supernovus joined
|
|||
cognominal | the double negation "not knowing no shit" is tastier when talking about logic. | 21:50 | |
21:53
Fuad left
|
|||
colomon | mberends++ # one-liner | 21:57 | |
diakopter: I'm with you. No one ever has been able to convince me that stating something everyone already knows is true should have any effect at all.... | 21:58 | ||
diakopter | colomon: to put it more precisely, for the puzzle to retain sanity, it has to say that the outsider makes the announcement at the beginning of "time" on the island | 21:59 | |
... and it must not actually give numbers for how many people have blue eyes. | 22:02 | ||
22:11
huf_ is now known as huf
|
|||
[Coke] tries to run niecza on windows 7. | 22:14 | ||
(apparently no one does this using the makefile. woof.) | 22:16 | ||
diakopter | well, it requires cygwin | 22:17 | |
diakopter does it | |||
requires cygwin to build | |||
dalek | osystem: d1c546e | (Timothy Totten)++ | META.list: Added HTTP::Status and HTTP::Client to the list. |
||
[Coke] | diakopter: I don't think there's anything in here that /should/ require cygwin. | 22:19 | |
pmurias | diakopter: what is cygwin required for? | ||
diakopter | rm -rf | 22:20 | |
[Coke] | gmake. | ||
diakopter | touch | ||
[Coke] | If sorear doesn't mind depending on a perl5, those are both fixable. | 22:21 | |
diakopter | make test needs perl5, so I wouldn't think he would mind | ||
[Coke] will head down that path, at least for my own enjoyment. | |||
diakopter | wget is also needed, but there are of course non-cygwin builds of that | ||
diakopter tries a .Net build from cygwin | 22:22 | ||
failed | 22:23 | ||
sorear | [Coke]: I only consider the binaries (which don't have a Makefile at all) supported on Windows | ||
diakopter | github.com/sorear/niecza/issues/61 | 22:24 | |
oh | |||
[Coke] | sorear: I can't get at the binaries without the makefile. | ||
diakopter | that's a good point | ||
[Coke] | I mean, I /can/, sure, but I'd have to poke around. I'd like to just type "nmake" | 22:25 | |
sorear: and I'll be happy to get things working on windows and provide support on that part. | |||
diakopter too | |||
[Coke] | (working sans cygwin) | ||
tadzik | supernovus++ # nice modules | 22:26 | |
diakopter | [Coke]: see the url I pasted above, for the .Net build | ||
[Coke] | k. | 22:27 | |
sorear | diakopter: that is a weird fail. | ||
[Coke]: the binaries are on the github 'Downloads' page. However if you can find a non-awful way to make the Makefile portable, that would be even better. | 22:28 | ||
[Coke] | sorear: starting with a win32 specific version. | 22:30 | |
Then we can figure out if/how to combine them (or just generate the right choices at a (not yet extant) config time) | |||
oh, look, I have a c# compiler. whee! | |||
pmurias | [Coke]: you'll replace the Makefile with C#? | 22:31 | |
sorear | [Coke]: do you have the .net devtools in PATH by default? | 22:33 | |
[Coke] | sorear: yes. | 22:40 | |
pmurias: no | |||
but If I have a C# compiler, I can try the build. | |||
22:40
bbkr left
|
|||
[Coke] | makefile line 62: can you translate that rule to english for me? I am not familiar with patsubst. | 22:41 | |
22:41
bbkr joined
|
|||
diakopter | [Coke]: all you have to do is change RUN_CLR to blank and CSC to csc | 22:41 | |
Makefile line 62 is empty | 22:42 | ||
[Coke] | diakopter: except that the makefile DOES NOT WORK, yes. ;) | ||
whoops, line 27 | |||
diakopter | no, I mean to build using .Net in cygwin | ||
sorear | diakopter: [Coke] appears to be using nmake | ||
[Coke] | I have said this already, but: | ||
I am not using cygwin. | |||
sorear | [Coke]: that's a schema for producing one rule for each niecza source module | 22:43 | |
diakopter | actually you haven't said that explicitly | ||
[Coke] | diakopter: ok, now I have, and we can move on. ;) | ||
diakopter | is there a way to remove the dependency on wget and unzip using Perl? | 22:44 | |
[Coke] | so you end up with a rule for boot/obj/CClass.nam : depends on src/CClass.pm6 ? | ||
diakopter: sure, if you don't mind install modules. | |||
*installing | 22:45 | ||
sorear | [Coke]: yes | ||
flussence | well if you've got cpan, you have most of those modules already :) | ||
diakopter | I thought LWP and the compression ones were bundled with perl for many years | ||
sorear | [Coke]: but see also the list of cross-dependencies at the end | ||
diakopter: install Module::CoreList | |||
[Coke] | sorear: hurm. Then I think instead of creating a Makefile.win32, I'll autogen one. Danke. | ||
flussence | (I don't think it has a zip module though, probably only bz/gz) | 22:46 | |
sorear | IO::Compress::Gzip was cored in 5.9.4 | 22:47 | |
LWP::Simple is not in core | |||
flussence | also I dunno if anyone's mentioned it yet, but the test turned on in niecza 5be99bf is really broken for me | ||
sorear | diakopter: perl 5 sounds like "let's trade one big dependency for a different one" | 22:48 | |
flussence | or some other one... | ||
hm, works when I run it manually... | |||
[Coke] | flussence: define "really broken" | ||
diakopter | sorear: I agree | ||
flussence | infinite loop, printing out fail lines | ||
supernovus | tadzik: thanks, one day I'd like to get SSL support into HTTP::Client and then the need for using wget in scripts will be gone. | ||
soh_cah_toa | perl6: class Foo { ... }; class Bar { also is Foo }; say 'foobar' | ||
[Coke] | sorear: you mean, trade cygwin for perl5? | ||
p6eval | rakudo ebd4d8: OUTPUT«===SORRY!===also not yet implemented at line 1, near "}; say 'fo"» | ||
..pugs: ( no output ) | |||
..niecza v10-18-g5be99bf: OUTPUT«foobar» | |||
diakopter | I think requiring cygwin/wget/unzip for builds on Windows is fine | 22:49 | |
flussence | I'm running a spectest on it now just to make sure... | ||
[Coke] | flussence: are you sure your spec dir is up to date? | ||
flussence | oh. probably not :) | ||
[Coke] | because I fudged the test that goes into an infinite loop. | ||
soh_cah_toa | perl6: class Foo { ... }; class Bar { is Foo }; say 'foobar' | ||
p6eval | niecza v10-18-g5be99bf: OUTPUT«===SORRY!===Undeclared routine: 'is' used at line 1Package was stubbed but not defined at /tmp/7jdVh9MaGM line 1:------> class Foo { ... }⏏; class Bar { is Foo }; say 'foobar'Unhandled Exception: Check failed… | ||
..rakudo ebd4d8: OUTPUT«===SORRY!===The following packages were stubbed but not defined: Foo» | |||
..pugs: ( no output ) | |||
pmurias | replacing cygwin with perl5 for windows seems sensible | ||
22:50
hanekomu left
|
|||
flussence | yeah, that's probably it, my local spectest repo gets slightly out of sync at times | 22:50 | |
diakopter | pmurias: yeah but as sorear pointed out, it's perl5 plus Compress plus LWP | ||
pmurias | replacing cygwin by .net stuff seems the best option | 22:51 | |
diakopter | oh hm; I hadn't thought of that. | ||
soh_cah_toa | perl6: role Foo { ... }; class Bar { also does Foo }; say 'foobar' | ||
p6eval | niecza v10-18-g5be99bf: OUTPUT«===SORRY!===Action method trait_mod:does not yet implemented at /tmp/vp_E38xRLI line 1:------> Foo { ... }; class Bar { also does Foo ⏏}; say 'foobar'Unhandled Exception: Cannot use hash access on an object of ty… | ||
..rakudo ebd4d8: OUTPUT«===SORRY!===also not yet implemented at line 1, near "}; say 'fo"» | |||
..pugs: ( no output ) | |||
diakopter | an .exe would be needed in the source checkout that could supply wget/unzip functionality | 22:52 | |
sorear | perl 5.8 contains Net::FTP | 22:53 | |
22:54
pmurias left
|
|||
[Coke] | (.net stuff) no, because why support 2 completely different toolchains? | 22:55 | |
22:55
supernovus left
|
|||
diakopter | [Coke]: we meant CLR stuff. | 22:55 | |
[Coke] | for use in the build process? | 22:56 | |
diakopter | yeah, as another option instead of Perl | ||
[Coke] | eh. if someone wants to figure that out, fine. | ||
Any takers? | 22:57 | ||
[Coke] tables his work in anticipation. | 22:58 | ||
diakopter | :) not I... I guess requiring perl/wget/unzip is better than requiring cygwin/perl/wget/unzip or perl/LWP/Compress | ||
[Coke] | well, you've talked me out of doing anything about it. I'll play with rakudo tonight instead. | 23:00 | |
23:01
whiteknight joined
|
|||
sorear is not fond of build systems | 23:02 | ||
[Coke] | in that "you don't want one", or "you don't want to have to create/maintain one" ? | ||
sorear | the latter :) | 23:03 | |
[Coke] | k. | 23:04 | |
jlaire | .u ə̂ | 23:05 | |
phenny | U+0259 LATIN SMALL LETTER SCHWA (ə) | ||
U+0302 COMBINING CIRCUMFLEX ACCENT (◌̂) | |||
jlaire | tyvm | 23:06 | |
diakopter wonders where jnthn is tonight | 23:09 | ||
sorear | .u ab | ||
phenny | U+C555 HANGUL SYLLABLE AB (압) | ||
[Coke] | phenny, tell jnthn: I need some guidance on RT67364 - it refers to a 2 year old irc log, says there are examples, I don't see any. You are namedropped. | 23:10 | |
phenny | [Coke]: I'll pass that on when jnthn is around. | ||
[Coke] | perl6: Inf.int.say | 23:11 | |
p6eval | niecza v10-18-g5be99bf: OUTPUT«Unhandled Exception: Unable to resolve method int in class Num at /tmp/rW0b7USgcY line 1 (MAIN mainline @ 1)  at /home/p6eval/niecza/lib/CORE.setting line 2115 (CORE C1022_ANON @ 2)  at /home/p6eval/niecza/lib/CORE.setting line 2116 (CORE module-COR… | ||
..pugs: OUTPUT«1797693134862315907729305190789024733617976978942306572734300811577326758055009631327084773224075360211201138798713933576587897688144166224928474306394741243777678934248654852763022196012460941194530829520850057688381506823424628814739131105408272371633505106845862982399472… | |||
..rakudo ebd4d8: OUTPUT«Method 'int' not found for invocant of class 'Num' in block <anon> at /tmp/1I2vGY217g:1 in <anon> at /tmp/1I2vGY217g:1» | |||
diakopter | heh | ||
[Coke] | perl6: say 34.Int; | 23:12 | |
p6eval | rakudo ebd4d8, niecza v10-18-g5be99bf: OUTPUT«34» | ||
..pugs: OUTPUT«*** No such method in class Int: "&Int" at /tmp/kdja7H6IYe line 1, column 5-11» | |||
jlaire | pugs: Inf.int.chars.say | ||
p6eval | pugs: OUTPUT«309» | ||
[Coke] | perl6: say Inf.Int; | ||
p6eval | niecza v10-18-g5be99bf: OUTPUT«1797693134862315907729305190789024733617976978942306572734300811577326758055009631327084773224075360211201138798713933576587897688144166224928474306394741243777678934248654852763022196012460941194530829520850057688381506823424628814739131105408272371633505… | ||
..pugs: OUTPUT«*** No such method in class Num: "&Int" at /tmp/MueMO4TytJ line 1, column 5-12» | |||
..rakudo ebd4d8: OUTPUT«-9223372036854775808» | |||
diakopter | rakudo wow | 23:13 | |
jlaire | pugs and niecza almost agree | ||
[Coke] | rakudo: say NaN.int | ||
p6eval | rakudo ebd4d8: OUTPUT«Method 'int' not found for invocant of class 'Num' in block <anon> at /tmp/JyxSMR_pcS:1 in <anon> at /tmp/JyxSMR_pcS:1» | ||
[Coke] | rakudo: say NaN.Int | ||
p6eval | rakudo ebd4d8: OUTPUT«-9223372036854775808» | ||
dalek | ok: 3c32c3d | soh_cah_toa++ | src/roles.pod: Fixed example on roles that did not use the 'also' declaractor. Also added an example of using the 'also' declarator with an anonymous class. |
23:15 | |
23:24
Exodist joined
23:26
_jaldhar joined
|
|||
[Coke] | rakudoVolken: do we have a policy on bug reports from non-standard platforms from 2+ years ago when the OP doesn't respond? | 23:27 | |
(my thought: reject the ticket as can't reproduce, ask the user to get back to us if it still happens.) | 23:28 | ||
diakopter | what platform? (curious!) | ||
23:29
dual_ joined
|
|||
[Coke] | openbsd. | 23:29 | |
There are no smokes for rakudo from that platform. | |||
23:31
dual left
|
|||
soh_cah_toa | defining a DESTROY submethod for an object creates a "destructor" which means that it will be called when the object seizes to exist, right? which at the very least, is at program termination | 23:31 | |
23:31
dual_ is now known as dual
|
|||
[Coke] | "ceases" | 23:31 | |
soh_cah_toa | lol, yes | ||
[Coke] | though I like the cut of your malaprop. | ||
soh_cah_toa | :) | 23:32 | |
sorear | soh_cah_toa: whether finalizers are run on exit is implementation defined. | ||
soh_cah_toa | what?! lame... | ||
tadzik | :) | 23:33 | |
[Coke] | diakopter: you have cygwin; have you done rakudo on cygwin lately? | ||
soh_cah_toa | what would something like that be implementation-specific? isn't that standard practice? | ||
diakopter | no, but I'd be glad to if you like | ||
soh_cah_toa | s/what/why/ | ||
[Coke] | If you can take RT#64032, I'd appreciate it. | 23:34 | |
diakopter | hm, I don't even know how to get to RT | ||
soh_cah_toa | is there anyway i can get that kind of behavior atleast? i want a method that is guaranteed to be called at least at program termination | 23:36 | |
b/c defining a DESTROY submethod doesn't seem to work on 2011.07 | |||
tadzik | . o O ( Native::atexit ) | ||
night.good | 23:37 | ||
diakopter finds rt.perl.org/rt3/Public/Bug/Display...l?id=64032 | |||
23:38
huf left
|
|||
[Coke] | Yes, that one. Thanks in advance. | 23:38 | |
diakopter clones git://github.com/rakudo/rakudo.git | 23:39 | ||
23:39
huf joined
|
|||
diakopter | I've cloned it. now what. | 23:39 | |
23:40
tokuhiro_ joined
|
|||
diakopter installs from cygwin: libicu-devel, libicu38, libicu45, libicu48 | 23:42 | ||
[Coke] | perl Configure.pl --gen-parrot will pull in dependencies and configure rakudo. | ||
then "make" | |||
23:43
soh_cah_toa left
|
|||
diakopter | I can try from strawberry/mingw too, or is that what you use? | 23:43 | |
[Coke] | RT question: search on "updated < '2011-05-01' does not actually restrict the results to tickets updated before then. Any pointers? | ||
the OP specifically had issues with cygwin. I use strawberry every few months, seems ok. | 23:44 | ||
dalek | ecza/serialize: 0a6c198 | sorear++ | lib/ (3 files): Implement runtime MRO generation |
||
23:44
soh_cah_toa joined
|
|||
sorear | soh_cah_toa: standard practice is actually the opposite - finalizers are NOT run on program termination. Why do you want this? | 23:45 | |
diakopter installs git for cygwin (was using TortoiseGit) | |||
soh_cah_toa | i'm building a Test::Builder module. i want the final report to be displaying at the end but don't want the user to have to do $tb.final_report | ||
sorear | soh_cah_toa: typical usage of a finalizer is to free an OS resource like a file descriptor, and if the program is going to exit anyway, closing file descriptors is wasted effort | ||
soh_cah_toa: that's a job for an END block | 23:46 | ||
rakudo: END { say 5 } # I wonder | |||
p6eval | rakudo ebd4d8: OUTPUT«5» | ||
sorear | on exit, END blocks in all modules are run. | ||
soh_cah_toa | it's object-oriented though so where would i put that in the class? | ||
sorear | you put that in the module. somewhere. | 23:47 | |
soh_cah_toa | but then it's not possible to refer to specific instance | ||
sorear | sure it is, keep specific instances in variables | ||
[Coke] | cognominal: ping. | ||
phenny: ask cognominal to update RT#75850 with the expected output. | 23:48 | ||
phenny | [Coke]: I'll pass that on when cognominal is around. | ||
sorear | niecza/serialize can now compile my class Mu { 0 }; my class Any is Mu { 1 }; my class Cool { 2 } correctly | ||
diakopter | parrot clone is 90 MiB; wow. | 23:49 | |
flussence | `du` on rakudo/parrot here is 203MB :( | ||
soh_cah_toa | sorear: nopaste.snit.ch/83340 | 23:51 | |
diakopter | size on disk of C:\Program Files (x86)\Mono-2.10.3 is 405 MB | ||
soh_cah_toa | sorear: how would i modify that to use and END block, then? | ||
[Coke] | diakopter: it's 10 years of version control: CVS -> svn -> git | 23:52 | |
diakopter | [Coke]: parrot failed to build | 23:54 | |
soh_cah_toa | sorear: on the Foo::Bar module side, that is | ||
benabik | [Coke]: I bet the history is a small part of it. Git uses delta compression and zlib, it makes repos amazingly small. :-D | 23:55 | |
diakopter | [Coke]: gist.github.com/1255365 | ||
[Coke] | diakopter: Guess it's not a rakudo issue, then. I'd appreciate it if you could open a ticket at trac.parrot.org/ for that, with the build error and a pointer back to the RT. | 23:56 | |
sorear | soh_cah_toa: my @testers; submethod BUILD { push @testers, self }; END { .end for @testers } | ||
soh_cah_toa | interesting | ||
[Coke] | nom: my @range_a = 1..*; | ||
p6eval | nom ebd4d8: ( no output ) | 23:57 | |
[Coke] | nom: my @range_a = 1..*; say "alive"; | ||
p6eval | nom ebd4d8: OUTPUT«alive» | ||
[Coke] | nom: my @range_a = 1..*; say "alive"; say @range_a | ||
p6eval | nom ebd4d8: OUTPUT«alive...» | ||
soh_cah_toa | i'd actually like the Test::Builder module to be a singleton but don't know how to do that in p6 | ||
flussence | fun anecdote: at work I have a 3GB SVN repo. Using git to clone it, including the entire 5 year history which itself contained several compressed files, came out *smaller*. | ||
[Coke] | nom: my @range_a = 1..*; say "alive"; print @range_a | ||
p6eval | nom ebd4d8: OUTPUT«(timeout)alive1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889909192939495969798991001011021031041051061071081091101111121131141151161171181191201… | ||
flussence | s/SVN repo/SVN checkout/ | ||
[Coke] | nom: my @range_a = 1..*; say "alive"; print @range_a[2344]; | 23:58 | |
p6eval | nom ebd4d8: OUTPUT«alive2345» | ||
benabik | flussence: That's because SVN stores a pristine copy of every file, wholly uncompressed, in a checkout. | ||
flussence | unfortunately I can't use git for any of the existing projects at $dayjob because they're dumb :( | ||
sorear | soh_cah_toa: just do it the same way the p5 version does. my $Test; method new { $Test //= callsame } | ||
diakopter | [Coke]: it is very unapparent from trac.parrot.org how to submit a bug report | 23:59 | |
soh_cah_toa | oh, neat | ||
benabik | Wow. my parrot/.git is 98MB... | ||
[Coke] | I think you can cheat and send an email to [email@hidden.address] | ||
flussence: I use git-svn at work. |