»ö« 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:06 ispeak_ joined
soh_cah_toa interesting. not sure if this is a mistake or not but i just noticed that in nqp, you can pass arguments to a subroutine that doesn't take any yet perl6 throws a "Too many positional parameters passed" runtime error 00:10
00:10 replore joined
soh_cah_toa that seems like something that shouldn't be allowed :\ 00:12
jnthn nqp: sub foo() { }; foo(1) 00:13
p6eval nqp: ( no output )
jnthn oh...
soh_cah_toa yup
jnthn Yeah. Result of Parrot's calling conventions.
00:13 replore left
jnthn It doesn't emit get_params if there aren't any 00:13
soh_cah_toa ah, ok 00:14
00:14 thou left
benabik nqp: sub foo($x) { }; foo(1, 2) 00:14
jnthn We don't use Parrot's binder in Rakudo.
p6eval nqp: OUTPUT«too many positional arguments: 2 passed, 1 expected␤current instr.: 'foo' pc 251 ((file unknown):28027019) (/tmp/bDZpYpaTtr:0)␤»
jnthn For this and many, many other reasons.
sleep & 00:15
00:24 replore_ joined
[Coke] nom: say 703-91; 00:43
p6eval nom 63326f: OUTPUT«612␤»
[Coke] my @foo; @foo ,= 1, 2, 3; @foo.perl.say 00:44
rakudo: my @foo; @foo ,= 1, 2, 3; @foo.perl.say
p6eval rakudo 63326f: OUTPUT«splice() not implemented in class 'Mu'␤ in method reify at src/gen/CORE.setting:3952␤ in method gimme at src/gen/CORE.setting:4313␤ in method eager at src/gen/CORE.setting:4288␤ in method STORE at src/gen/CORE.setting:4707␤ in block <anon> at /tmp/NXMhYHJgd8:1…
[Coke] rakudo: class A { has Int $.color where 1|2; } 00:45
p6eval rakudo 63326f: OUTPUT«===SORRY!===␤Unable to parse blockoid, couldn't find final '}' at line 1␤»
00:46 lestrrat left 00:47 tokuhiro_ left 00:48 lestrrat joined
[Coke] rakudo: subset A of Mu; my A $x; 00:48
p6eval rakudo 63326f: ( no output )
japhb (ridiculously overdetailed edge case testing)++ # turns out it's not so ridiculous -- two obscure bugs found so far, and counting ... 00:52
[Coke] phenny: ask benabik when I can close RT#58592.
phenny [Coke]: I'll pass that on when benabik is around.
[Coke] rakudo: role Foo { our $pi = 3 }; say $Foo::pi
p6eval rakudo 63326f: OUTPUT«Any()␤»
[Coke] rakudo: module Foo { our $pi = 3 }; say $Foo::pi 00:53
p6eval rakudo 63326f: OUTPUT«3␤»
[Coke] rakudo: substr(Any, 0, 1) 00:54
p6eval rakudo 63326f: OUTPUT«Method 'substr' not found for invocant of class 'Any'␤ in sub substr at src/gen/CORE.setting:1615␤ in block <anon> at /tmp/wT5W1PSuj2:1␤ in <anon> at /tmp/wT5W1PSuj2:1␤»
[Coke] phenny: ask masak to summarize the bug in one line on rt.perl.org/rt3/Ticket/Display.html?id=76412 00:55
phenny [Coke]: I'll pass that on when masak is around.
[Coke] rakudo: my Range of Int $a;
p6eval rakudo 63326f: ( no output )
[Coke] rakudo: my Range of Str $a; 00:56
p6eval rakudo 63326f: ( no output )
[Coke] rakudo: my Range of Str $a; $a=1..2;
p6eval rakudo 63326f: OUTPUT«Type check failed in assignment to '$a'; expected 'Range' but got 'Range'␤ in block <anon> at /tmp/EffaNskyQY:1␤ in <anon> at /tmp/EffaNskyQY:1␤»
01:01 uasi joined
flussence japhb: it's better when you can automate the test generation itself; I added a one-liner at $dayjob that just checked two calculations gave the same answer... but multiply it by 3 million database inputs and it turned up quite a few bugs :) 01:02
japhb flussence, I bet! 01:03
flussence (IIRC sqlite does the same sort of thing to generate a few million/billion test cases...) 01:04
japhb flussence, in this case it was generated tests with a pile of sample inputs. As I was building the table of samples I was thinking "Why am I bothering with all of these variations? What is the likelihood that something that passes variants A-Y will fail on variant Z?" Turns out, 100%. ;-) 01:05
Now of course i need to figure out how in the heck the failures are occurring, but at least I know about them. 01:06
flussence in my case, it was something like 20 out of those 3 million happened to be parsable-but-garbage inputs that I had to work around in the end :( 01:10
japhb 20? Wow, that's nothing to sneeze at. 01:13
01:17 ispeak_ left 01:44 c1sung joined 01:56 thou joined 01:59 uasi left 02:05 uasi joined 02:10 whiteknight left 02:12 wolfman2000 joined 02:21 mkramer1 joined 02:23 benabik_ joined, benabik left, benabik_ is now known as benabik 02:25 gantry joined 02:26 mkramer joined 02:28 mkramer1 left
japhb nom: my @a = < a b c >; @a.unshift(1); @a.unshift(0); @a.unshift(2); @a.unshift(""); @a.unshift(3); @a.unshift(Mu); @a.unshift(4); @a.perl.say 02:41
p6eval nom 63326f: OUTPUT«Array.new(4, 3, 2, 1, "a", "b", "c")␤»
japhb Bug: List.unshift won't unshift false values.
colomon niecza: my @a = < a b c >; @a.unshift(1); @a.unshift(0); @a.unshift(2); @a.unshift(""); @a.unshift(3); @a.unshift(Mu); @a.unshift(4); @a.perl.say 02:43
p6eval niecza v10-58-gc851cf8: OUTPUT«␤Unhandled Exception: Nominal type check failed in binding anon_491 in CORE C532_ANON; got Mu, needed Any␤ at /home/p6eval/niecza/lib/CORE.setting line 0 (CORE C532_ANON @ 0) ␤ at line 0 (KERNEL map @ 2) ␤ at /home/p6eval/niecza/lib/CORE.setting line 1…
colomon niecza: my @a = < a b c >; @a.unshift(1); @a.unshift(0); @a.unshift(2); @a.unshift(""); @a.unshift(3); @a.unshift(4); @a.perl.say
p6eval niecza v10-58-gc851cf8: OUTPUT«[4, 3, "", 2, 0, 1, "a", "b", "c"].list␤»
02:45 drbean left 02:46 drbean joined
benabik [Coke]: --target and -e now work together, as much as PAST output works with 6model. 02:47
phenny benabik: 00:52Z <[Coke]> ask benabik when I can close RT#58592.
benabik [Coke]: So you should be able to close RT#58592, although maybe a ticket about --target=past being useless should be open. ;-) 02:48
02:50 envi_ joined, uasi left, envi_ left, envi_ joined 03:07 uasi joined 03:12 molaf joined
sorear good * #perl6 03:12
03:12 benabik left 03:13 benabik joined
japhb o/ sorear 03:13
sorear, BTW, colomon just discovered that some code I posted to show a rakudobug in List.unshift also shows a (different) bug in niecza 03:15
Where does one file nieczabugs?
sorear github issues pane 03:16
03:17 uasi left
sorear masak: getting basic functionality to work would be a weekend task 03:17
masak: basically I need to write an ExtendedArray class and desugar my @a[10;10] as my @a := ExtendedArray.new(10, 10)
ShapedArray?
maybe the Array/ShapedArray difference should be hidden from user code, in the same manner as the FixInt/BigInt split 03:18
japhb Rakudo's List.unshift seems odd: github.com/rakudo/rakudo/blob/nom/...st.pm#L196 03:19
sorear phenny: tell pmurias Now that "embedding a P5 interpreter" has become a common way, I think embedding tests belong in roast, in S01
phenny sorear: I'll pass that on when pmurias is around.
japhb Why do a while, when it seems better to do 'for @elems -> $e {' ? 03:20
sorear japhb: one, the order comes out wrong 03:21
two, Rakudo's for is (historically) SLOW
like >1ms per iteration
japhb Bleah. 03:22
Is that still true?
sorear nom probably improved it
nom gets a lot closer to niecza speed in general :D
japhb heh
03:29 wooden joined, wooden left, wooden joined 03:51 simcop2387 left, simcop2387 joined
sorear niecza: my @a = 1, 0; my $b := @a[0]; @a .= sort; say $b 03:54
p6eval niecza v10-58-gc851cf8: OUTPUT«1␤»
03:57 molaf left 04:00 satyavvd joined 04:01 bluescreen10 left, bluescreen100 left 04:03 uasi joined 04:18 abercrombie left 04:42 uasi left 04:43 soh_cah_toa left 04:46 uasi joined 04:59 kaleem joined 05:08 Juerd left 05:11 orafu left, orafu joined
dalek ecza/serialize: 42545ac | sorear++ | src/ (2 files):
Implement immediate regex capture numbering and get /(.)/ compiling again
05:17
05:24 Juerd joined
dalek kudo/nom: bc27f76 | duff++ | tools/contributors.pl:
minor improvement to contributor search
05:29
kudo/nom: 33d732c | duff++ | docs/announce/2011.10:
update 2011.10 announcement
kudo/nom: 410361d | duff++ | VERSION:
bump VERSION
05:34 Util left, PerlJam left, Juerd left, masak left, pmichaud left 05:45 hugme joined, ChanServ sets mode: +v hugme 05:48 am0c left 05:49 dual joined 05:50 Juerd joined
Juerd Sorry guys 05:51
Physical KVM box had extremely high loads. Had to reboot it.
Some processes on feather may not have come up correctly because /var and /home were not mounted during boot. Please let me know if you find things that are still broken but weren't broken yesterday. 05:52
(Or if you have root access, feel free to start things up yourself.)
05:57 uasi left
sorear Juerd! 05:58
Juerd HI
s/I/i/
sorear What's your current email address?
Or is there a better way to contact you now? In the past couple months two people have petitioned for feather accounts and I haven't ben able to reach you. 05:59
Juerd I've had a huge email backlog ever since a major concussion last January 06:00
06:01 uasi joined
Juerd It's down to 238 items now. I see a feathera account request from Andrew Whitworth. 06:01
But that's the only one I see there
[email@hidden.address] is fine
sorear: I'm surprised that you haven't been able to reach me, by the way. Which methods have you tried? 06:04
06:05 wtw joined 06:08 envi_ left 06:10 uasi left 06:11 uasi joined 06:33 dual left
sorear Juerd: lue and I forgot the other one 06:33
Juerd: I've been using email; a medical email backlog would explain things
sorear checks own outbox 06:35
Juerd: the last mail I sent was for lue to that address, on 5 Sep 06:36
I may have been thinking of whiteknight when I said two
sorear offers to Juerd whatever degree of support is appropriate 06:37
06:44 preflex left 06:45 thou left
japhb What's the correct incantation for spec tests that used to die at runtime (and so were tested with 'eval_dies_ok()' and now die at CHECK time? 06:46
06:46 thou joined
sorear japhb: eval_dies_ok 06:48
06:50 preflex joined
moritz good morning 06:51
but be careful, eval_dies_ok hides outer scopes from the eval
ie my $x; eval_dies_ok '$x'
there the $x isn't visible
when you need outer scopes, use dies_ok { eval '$x' } 06:52
06:52 uasi left
japhb sorear, Ah, I see what caused my confusion. In the .t version of a test file, it was eval_dies_ok('...'), but in the .rakudo version it was eval_dies_ok({...}) . 06:52
sorear um 06:53
eval_dies_ok({...}) is NEVER right
moritz japhb: you can use make t/spec/your/file.t to automatically rerun fudge
06:54 preflex left
japhb sorear, yeah, so I refudged, and that fixed it. 06:54
moritz, ah, a shortcut, thank you!
japhb wonders how it got wrong in the first place (not a file I had touched before) 06:55
Juerd sorear: lue's request was received. It didn't match my subject-search for /feather/ but I got the mail and will create the account 06:56
06:56 preflex joined
Juerd sorear: By the way, it is okay if you add new accounts yourself, as long as I still do get the formal request by mail. 06:57
06:57 bbkr joined
sorear Juerd: ah, will do 06:59
bbkr loves smell of fresh compiler release in the morning o/
sorear Juerd: best wishes for recovery if it's not too late already 07:00
Juerd sorear: Note that the request should come from the person requesting it :)
sorear: Oh, I've fully recovered by now; it's just the backlog that hasn't yet :)
Thanks though
07:01 preflex left
Juerd (As fully as possible, that is. There will probably always be gaps in my long term memory. Then again, that also happens if you don't smash your head into solid concrete.) 07:01
07:02 preflex_ joined
Juerd afk 07:02
07:02 preflex_ is now known as preflex 07:06 tadzik joined 07:24 uasi joined 07:29 koban joined 07:35 grondilu joined
grondilu so, I heard Archeopteryx is out. So we'll have a new version of rakudo soon, right? 07:35
sorear most likely 07:36
rakudo releases are normally scheduled 3-ish days after Parrot releases 07:37
the nom transition is disrupting things a bit though
dalek ecza/serialize: a289aa3 | sorear++ | lib/Kernel.cs:
Make inlining/protopads interaction a smidge more robust
07:42
grondilu any chance a perl6 DB_File module is written any time soon? 07:43
sorear you mean like ndbm? 07:44
niecza can now parse the whole of test.pl
maybe tomorrow I'll have some of it running
sorear sleeee
grondilu doesn't know ndbm much, but to him it seems different from Berkeley's DB 07:45
grondilu needs to 'man NDBM_File' 07:47
07:50 grondilu left
dalek kudo/nom: 9419114 | moritz++ | tools/build/Makefile.in:
warn that compiling the setting takes a long time
08:00
kudo/nom: 9cbe751 | moritz++ | docs/release_guide.pod:
update release guide to include tagging of NQP
08:02 Bzek joined 08:07 wk joined 08:11 Bzek left 08:17 mj41 joined, mj41_nb joined 08:22 masak joined
masak morning, #perl6. 08:23
phenny masak: 00:55Z <[Coke]> ask masak to summarize the bug in one line on rt.perl.org/rt3/Ticket/Display.html?id=76412
masak rakudo: substr(Any, 0, 1) 08:24
p6eval rakudo 410361: OUTPUT«Method 'substr' not found for invocant of class 'Any'␤ in sub substr at src/gen/CORE.setting:1615␤ in block <anon> at /tmp/RQGYyhWVzw:1␤ in <anon> at /tmp/RQGYyhWVzw:1␤»
masak [Coke]: the sub call above delegates to a method call. it shouldn't, AFAIU, since the method is defined in Cool, and Any isn't Cool. 08:25
nom: my @a = < a b c >; @a.unshift(1); @a.unshift(0); @a.unshift(2); @a.unshift(""); @a.unshift(3); @a.unshift(Mu); @a.unshift(4); @a.perl.say 08:28
p6eval nom 410361: OUTPUT«Array.new(4, 3, 2, 1, "a", "b", "c")␤»
masak <japhb> Bug: List.unshift won't unshift false values. 08:29
masak submits rakudobug
moritz nom: chop(Any)
p6eval nom 410361: OUTPUT«Method 'chop' not found for invocant of class 'Any'␤ in sub chop at src/gen/CORE.setting:1608␤ in block <anon> at /tmp/aLbmuv6Egw:1␤ in <anon> at /tmp/aLbmuv6Egw:1␤»
masak niecza: my @a = < a b c >; @a.unshift(1); @a.unshift(0); @a.unshift(2); @a.unshift(""); @a.unshift(3); @a.unshift(Mu); @a.unshift(4); @a.perl.say 08:30
p6eval niecza v10-58-gc851cf8: OUTPUT«␤Unhandled Exception: Nominal type check failed in binding anon_491 in CORE C532_ANON; got Mu, needed Any␤ at /home/p6eval/niecza/lib/CORE.setting line 0 (CORE C532_ANON @ 0) ␤ at line 0 (KERNEL map @ 2) ␤ at /home/p6eval/niecza/lib/CORE.setting line 1…
masak niecza: my @a = < a b c >; @a.unshift(1); @a.unshift(0); @a.unshift(2); @a.unshift(""); @a.unshift(3); @a.unshift(4); @a.perl.say
p6eval niecza v10-58-gc851cf8: OUTPUT«[4, 3, "", 2, 0, 1, "a", "b", "c"].list␤» 08:31
08:34 wk left
moritz urks 08:35
method unshift(*@elems) { while @elems.pop -> $e { ... }}
masak hahaha! *sob* 08:38
masak does 'git blame' and it finds tadzik 08:40
moritz spectests a fix 08:41
08:53 wk joined, odoacre_ joined 08:57 skangas joined, wk left
moritz failed at fixing, and tries a different fix 08:59
tadzik that was broken at the moment of writint, I know that 09:00
but it didn't cause any spectest failures, so I commited thath
because it was good enough for spectests, and my (and common) usage 09:01
istr pmichaud wanted it to use splice
moritz ... which is NYI too 09:02
unless you mean pir::splice
09:03 odoacre_ left 09:04 odoacre_ joined, odoacre_ left, odoacre left, odoacre joined
dalek ast: 6fb90f2 | moritz++ | S32-array/unshift.t:
Array.unshift with false elements
09:06
moritz rakudopatch forthcoming, just waiting for the spectests to finish 09:07
09:07 snarkyboojum left 09:09 snarkyboojum joined
tadzik moritz: nqp::splice I suppose 09:16
..ok, that was a stupid bug 09:19
my bad
moritz tadzik: no problem. Mostly working code > not working at all
tadzik and it resulted in new spectests
masak yeah. no hard feelings :) keep bumping up against those guardrails! :) 09:20
dalek kudo/nom: edd228b | moritz++ | src/core/Cool.pm:
add a few missing Cool type constraints
kudo/nom: 310225c | moritz++ | src/core/List.pm:
fix List.unshift with false elems (RT #101876)
masak moritz++ # quick ticket turnaround 09:23
dalek ast: a4d8b8f | moritz++ | S06-other/main-usage.t:
unfudge a passing MAIN test
09:26 skangas left
dalek ast: 5fe92c0 | moritz++ | S32-str/substr.t:
substr() is contrained to Cool (RT #76412)
09:31
moritz nom: sub f(:%x) { }; f :x 09:43
p6eval nom 9cbe75: OUTPUT«Nominal type check failed for parameter '%x'; expected Associative but got Bool instead␤ in sub f at /tmp/HQHFguFQ3D:1␤ in block <anon> at /tmp/HQHFguFQ3D:1␤ in <anon> at /tmp/HQHFguFQ3D:1␤»
moritz nom: sub f(:y(:%x)) { }; f :x
p6eval nom 9cbe75: OUTPUT«Nominal type check failed for parameter '%x'; expected Associative but got Bool instead␤ in sub f at /tmp/N_hvIMfcoP:1␤ in block <anon> at /tmp/N_hvIMfcoP:1␤ in <anon> at /tmp/N_hvIMfcoP:1␤»
moritz \o/
I can't seem to find any tests for named argument renaming, exception in the tests for MAIN 09:44
I did an ack ':\w+\(:[$@%&]' t/spec/ 09:45
did I miss any obvious case?
masak don't think so. 09:46
09:46 koban left 09:55 drbean left
dalek ast: 72cc163 | moritz++ | S06-signature/named-renaming.t:
test file for named parameter renaming/aliasing
09:55
moritz there could be many more tests in this file 09:56
like if the renamed correctly interact with multi dispatch 09:57
09:57 drbean joined
dalek ast: b691e71 | moritz++ | S06-signature/named-renaming.t:
fudge new test file for niecza
09:59
10:01 agentzh joined
dalek ecza: 5d1ba41 | moritz++ | t/spectest.data:
run new test file: S06-signature/named-renaming.t
10:01
kudo/nom: d8de3ae | moritz++ | t/spectest.data:
run new test file: S06-signature/named-renaming.t
10:02
moritz it's a good feeling to write a new test file, and then run it on two compilers, and both compilers PASS (except a known limitation in one of them)
I have a nice idea 10:18
somebody could try to calculate a "fitness" score for rakudo and niecza 10:19
use the data from the feature matrix, count a - as 0, a +- as 0.5, and a + as 1. Sum. Optionally weight the items by importance
add things in the mix like execution speed, compilation speed, startup time, working modules 10:20
maybe quality of error messages
of course the weighting will be grossly subjective, but still
10:21 mberends left, colomon left 10:22 cognominal_ joined 10:24 cognominal left
moritz then you could even offer a web interface where somebody can enter their own weights, and thus calculate custom fitness scores 10:27
niecza: say $*IN.read(2)
p6eval niecza v10-58-gc851cf8: OUTPUT«␤Unhandled Exception: Unable to resolve method read in class TextReader␤ at /tmp/hS0hwm8Ptc line 1 (MAIN mainline @ 1) ␤ at /home/p6eval/niecza/lib/CORE.setting line 2176 (CORE C1040_ANON @ 2) ␤ at /home/p6eval/niecza/lib/CORE.setting line 2177 (CORE mo…
10:34 mberends joined 10:36 replore_ left 10:37 colomon joined 10:39 GlitchMr joined
masak I like the fitness idea, if only because it quantifies how useful rakudo/niecza is to people. 10:48
one could do it as a percentage of the rows of the table, too.
at least before adding things like performance and modules.
snarkyboojum still entertains the idea that a compiler comparison matrix could be generated automatically from spec tests with appropriate mappings etc 10:57
then map to fitness :D
then map fitness to spectest coverage :)
flussence wants to have Text-Tabs-Wrap fully working in at least *one* of the two, but they're both broken in different ways :( 11:01
11:04 uasi left 11:07 thou left
masak wants to make crypt work on nom, but it's difficult without better regex support :/ 11:08
11:09 SHODAN joined
flussence yep, that's what's holding me back in both 11:10
masak <sorear> nom gets a lot closer to niecza speed in general :D
I think this should confer a sense of pride for both implementations. :)
flussence I've just installed niecza on my netbook, maybe I should've done it sooner for that reason... :) 11:12
11:13 kaleem left
masak from release announcement: "The Rakudo compiler is just the compiler for the Perl 6 language. Nothing else." 11:14
maybe s/the/a/ ?
colomon +1 11:15
masak makes it so 11:16
colomon niecza: say sqrt -1 11:18
p6eval niecza v10-59-g5d1ba41: OUTPUT«0+1i␤»
colomon dang it, I thought I fixed that
11:23 wk joined
flussence wait, what should it say? that output looks sensible... 11:23
colomon NaN
nom: say sqrt -1
p6eval nom d8de3a: OUTPUT«NaN␤»
colomon It's not supposed to answer with a complex number unless you pass it a complex number 11:24
dalek kudo/nom: e1a62ba | masak++ | docs/announce/2011.10:
[docs/announce/2011.10] reword slightly

  "the compiler" is so 2003 ;-)
flussence oh
masak right. complex numbers are sort of opt-in.
partly, I guess, to not freak realists out completely :P 11:25
masak .oO( complex numbers are interesting values of NaN )
colomon NaN should maybe really be NaR 11:26
(at least in this case)
masak that's a very complexist proposal :) 11:27
11:34 satyavvd left, _sri left 11:35 _sri joined, jfried left 11:36 _jan joined 11:38 wk left 11:39 whiteknight joined, Patterner left 11:43 Psyche^ joined, Psyche^ is now known as Patterner 11:49 whiteknight left 11:52 whiteknight joined 11:58 replore_ joined 11:59 uasi joined, cognominal joined 12:00 cognominal_ left 12:03 cognominal_ joined, bluescreen10 joined 12:05 cognominal left
moritz nom: my regex foo { abc }; say 'fooabcd' ~~ /<&foo>/ 12:10
p6eval nom e1a62b: OUTPUT«=> <abc>␤␤»
masak any reason that shouldn't stringify to just 'abc'? 12:11
moritz it does
it just doesn't .gist to 'abc'
and the reason is that the current .gist works really well on larger parse tress
masak hm. 12:12
moritz nom: enum Foo < a b >; class A { }; say A does Foo 12:13
p6eval nom e1a62b: OUTPUT«Method 'specialize' not found for invocant of class 'Perl6::Metamodel::EnumHOW'␤ in <anon> at src/gen/Metamodel.pm:1954␤ in <anon> at src/gen/Metamodel.pm:1950␤ in compose at src/gen/Metamodel.pm:1948␤ in mixin at src/gen/Metamodel.pm:910␤ in sub infix:<does> at …
masak guess an enum isn't specializable. 12:14
moritz nom: enum Foo < a b >; class A { }; say A does Foo::a
p6eval nom e1a62b: OUTPUT«No applicable candidates found to dispatch to for 'infix:<does>'. Available candidates are:␤:(Mu $obj, Positional @roles)␤:(Mu $obj, Mu $role)␤␤ in block <anon> at /tmp/AdzUhFzK05:1␤ in <anon> at /tmp/AdzUhFzK05:1␤»
moritz then how does 'but True' works?
flussence nom: say 0 but 1 12:15
p6eval nom e1a62b: OUTPUT«0␤»
dalek kudo/nom: 142c416 | moritz++ | NOMMAP.markdown:
update NOMMAP
flussence I guess value types work, but not enum values?
jnthn nom: enum Foo < a b >; class A { }; say A but Foo::a
p6eval nom e1a62b: OUTPUT«(signal SEGV)» 12:16
jnthn shit.
nom: enum Foo < a b >; class A { }; say A.new but Foo::a
p6eval nom e1a62b: OUTPUT«A+{<anon>}.new()␤»
jnthn nom: enum Foo < a b >; class A { }; say (A.new but Foo::a).Foo 12:17
p6eval nom e1a62b: OUTPUT«Foo::a␤»
jnthn grr, musta forgot the "no, you can't mix in to a type object" detection somewhere
masak submits rakudobug 12:19
12:22 jaldhar left
moritz github.com/moritz/perl6-faq/ 12:25
if you can remember any other questions that are asked frequently, please add (or tell me) 12:26
I'm not looking for questions of which Perl 6 folks think they should be asked frequently, but actual FAQs
masak moritz: make it markdown right away -- you'll thank yourself later.
moritz doesn't really know markdown syntax 12:27
masak oh!
there's not that much to know.
moritz I guess I'll have to use it for a project before I get used to it
I occasionally use sites that claim to use markdown (or a derivation of it), and sometimes they seem to work quite differently 12:28
(stackoverflow and github, for example)
masak yeah.
there are a few markdown variations out there. I use the original for my blog.
[Coke] rakudo: (1..3).map({$_ => $_*$_}).perl.say 12:32
p6eval rakudo e1a62b: OUTPUT«Use of uninitialized value in numeric context␤Use of uninitialized value in numeric context␤Use of uninitialized value in string context␤Method 'count' not found for invocant of class 'Hash'␤ in method reify at src/gen/CORE.setting:4045␤ in method reify at src/ge…
[Coke] Juerd++ # hope you're feeling better!
colomon niecza: (1..3).map({$_ => $_*$_}).perl.say 12:33
p6eval niecza v10-59-g5d1ba41: OUTPUT«Use of uninitialized value in string context␤ at /home/p6eval/niecza/lib/CORE.setting line 637 (CORE warn @ 2) ␤ at /home/p6eval/niecza/lib/CORE.setting line 21 (CORE Mu.Str @ 12) ␤ at line 0 (ExitRunloop @ 0) ␤ at /home/p6eval/niecza/lib/CORE.setting…
colomon niecza: (1..3).map({$_ => $_*$_; }).perl.say
p6eval niecza v10-59-g5d1ba41: OUTPUT«Use of uninitialized value in string context␤ at /home/p6eval/niecza/lib/CORE.setting line 637 (CORE warn @ 2) ␤ at /home/p6eval/niecza/lib/CORE.setting line 21 (CORE Mu.Str @ 12) ␤ at line 0 (ExitRunloop @ 0) ␤ at /home/p6eval/niecza/lib/CORE.setting…
colomon niecza: (1..3).map( -> $a {$a => $a*$a; }).perl.say
p6eval niecza v10-59-g5d1ba41: OUTPUT«(1 => 1, 2 => 4, 3 => 9).list␤»
colomon nom: (1..3).map( -> $a {$a => $a*$a; }).perl.say 12:35
p6eval nom e1a62b: OUTPUT«(1 => 1, 2 => 4, 3 => 9).list␤»
flussence niecza: sub explode($a = rx/a/) { say 'alive' }; explode() 12:36
p6eval niecza v10-59-g5d1ba41: OUTPUT«Potential difficulties:␤ $a is declared but not used at /tmp/qDEZdb2G66 line 1:␤------> sub explode(⏏$a = rx/a/) { say 'alive' }; explode()␤␤␤Unhandled Exception: System.Exception: Improper null return from sub default for $a = rx/a/ in…
[Coke] rakudo: say and die 3
p6eval rakudo e1a62b: OUTPUT«===SORRY!===␤CHECK FAILED:␤Undefined routine '&and' called (line 1)␤»
[Coke] rakudo: say && die 3 12:37
p6eval rakudo e1a62b: OUTPUT«===SORRY!===␤Non-declarative sigil is missing its name at line 1, near "&& die 3"␤»
[Coke] rakudo: say "' && die 3
p6eval rakudo e1a62b: OUTPUT«===SORRY!===␤Confused at line 1, near "say \"' && "␤»
[Coke] rakudo: say "" && die 3
p6eval rakudo e1a62b: OUTPUT«␤»
tadzik Files=521, Tests=17449, 2497 wallclock secs 12:38
flussence submits nieczabug
[Coke] jnthn: I think we should also start discounting [spec] tickets. but perhaps I'm overeager. 12:39
jnthn Maybe it's worth considering using the GitHub issues tracker in the specs repo for those. 12:40
moritz that's my favorite solution
12:40 preflex left
[Coke] OOOH. 12:40
moritz *another* ticket migration 12:41
[Coke] will our specmonster actually look at those? ;)
moritz: 20 tickets, no problem. 500 is too many. ;)
moritz [Coke]: not less than at our RT queue, where they are buried among hundreds of rakudobugs
[Coke] moritz: ah, but all good spec questions have either [RFE] or [SPEC] on them. 12:42
anything else we get when we find them, no worries.
12:42 uasi left
[Coke] so, to be clear, move them here? github.com/perl6/roast/issues 12:43
How on github issues do you say "show this text literally, do not interpret it as any kind of markup"? 12:45
masak `literal text`
flussence or indent 4 spaces
masak right.
both of those gives you a kind of <pre> or <code> thing.
[Coke] masak: doesn't work over multiple lines.
masak then indent 4 spaces.
[Coke] I'll try the indent trick.
flussence vanilla markdown also lets you just use inline HTML, but I doubt that works on github... 12:46
masak pro tip: read daringfireball.net/projects/markdown/basics
[Coke] so, anyone else +1 on moving spec tickets to roast's GH queue? 12:47
where maybe TimToady will be able to review them over the noise. ;) 12:48
so, jnthn and moritz win. migrating tickets... 12:50
moritz [Coke]: please move them to perl6/specs, not perl6/roast :-) 12:52
bbkr_ moritz: perl6-faq question - "what is the difference between BUILD and new?". for example can be explained on github.com/rakudo/rakudo/blob/nom/...um.pm#L5-6
[Coke] moritz: ... whoops. 12:55
I've already moved 2 of them. fixing..
is there a way to move tickets between projects in GH? 12:56
not that I can see. 12:57
masak don't think so.
jnthn moritz: Maybe "What is the difference between a role and a class?" or some such 12:58
[Coke] moritz: fixed. 12:59
moritz: thanks for catching that early in the process when it was still not painful to fix! ;) 13:00
masak jnthn: haven't heard anyone ask that. 13:01
13:01 uasi joined
[Coke] nom: say 699-91 13:01
p6eval nom 142c41: OUTPUT«608␤»
[Coke] so, easily 8 more spec tickets. I'll work on migrating them as time permits. 13:02
and, less than 700 (galactica) actual tickets.
masak "galactica"? 13:03
is that code for "masak, submit more rakudobugs"?
flussence we're running low! 13:04
[Coke] I first heard it on BSG. it's a naval thing where you're speaking to the actual commander of the ship instead of the communications officer.
so now whenever I hear "actual", I hear edward james olmos saying "this is galactica actual" 13:05
can someone deal with github.com/perl6/specs/pull/1 ? 13:07
it's from 12/2010
masak feels like a job for tadzik.
"
This pull request can be automatically merged." 13:08
that's reassuring, at least.
[Coke] assigns it thusly.
oh, masak's already on it. sweet.
moritz I think it's bogus
[Coke] moritz: Rejecting it is another way of dealing with it.
moritz my vim already shows it correctly, and says it's UTF-8
masak I'm not on it. just saying it might be just pushing the button.
masak runs 'file' on the file 13:09
moritz and my utf8-check script also says it's valid UTF-8
masak S26-documentation.pod: UTF-8 Unicode English text
moritz so, reject
moritz can do that
masak moritz++
tadzik > file S26-documentation.pod
S26-documentation.pod: UTF-8 Unicode English text
I think... oh, I'm slow
[Coke] note that it probably would have helped when it was submitted. 13:10
masak this reminds me. TheDamian sent all these S26 patches. I should go through them and commit them.
[Coke] wonders if we can stop encouraging people to submit patches via RT now.
tadzik masak: I was wondering about this, but I still like $= rather than $|
[Coke] given how much easier it theoretically is via GH. 13:11
tadzik yes, I know $= stays
I still don't like that change
but I guess I'm a minority here
plus I have no better idea
masak [Coke]: I see no encoding commits to S26 since December.
[Coke]: so something is clearly amiss with that pull request.
[Coke] masak: didn't someone completely rewrite S26 since then? 13:12
masak tadzik: huh. I don't remember that change...
[Coke]: no...
tadzik masak: it's hier
I mean, thier
[Coke] ah, they just completely rewrote the pod stuff in rakudo. nevermind, ticket's closed, I'm happy
masak tadzik: I need to review the changes again. if I hesitate, I'll mention it here first. 13:13
[Coke] rakudo: for 1..5 -> $a, $b { say $a, $b }
p6eval rakudo 142c41: OUTPUT«12␤34␤Not enough positional parameters passed; got 1 but expected 2␤ in block <anon> at /tmp/BU0IJx3rtJ:1␤ in method reify at src/gen/CORE.setting:4045␤ in method reify at src/gen/CORE.setting:3952␤ in method reify at src/gen/CORE.setting:3952␤ in method gimme… 13:14
masak rakudo: for 1..5 -> $a, $b? { say $a, $b } 13:16
p6eval rakudo 142c41: OUTPUT«12␤34␤5Mu()␤»
13:17 smash joined
masak rakudo: for 1..5 -> $a, *@b { say $a, @b } 13:17
p6eval rakudo 142c41: OUTPUT«1␤2␤3␤4␤5␤»
smash hello everyone
masak ooh, interesting -- why does $b? bind maximally but *@b minimally?
jnthn masak: iirc, map uses .count
masak hello smash
jnthn And .count is required plus optional positionals. 13:18
masak jnthn: I could never learn which one is .count and which one is .arity -- they seem completely arbitrary to me.
jnthn masak: Well, since you shouldn't really have to use intropsection much anyway, that's not such an issue. 13:19
masak [Coke]: I disagree with "we've regressed". it works as I expect it to.
13:21 daniel-s left 13:22 daniel-s joined
masak [Coke]: (re #60780) 13:23
[Coke] masak: if that's what TimToady meant, by all means correct me and mark the ticket as testneeded. 13:24
(note that I've commented on this ticket before, and the behavior has flip flopped) 13:25
so we have regressed to an earlier state, even if that state is wrong. ;)
er, right.
masak we need to sync up our use of the word "regress", I feel. 13:26
[Coke] regress: The action of returning to a former or less developed state 13:28
I pick "former" when convenient. :P
anyway, comment on the ticket. That's fine. I'm just trying to keep tickets moving, not say what's right. ;) 13:29
masak I can't see a time where we did any better than we do now.
but this might be a case of different perspectives or something.
13:29 PerlJam joined
masak the original behavior was awful becasue it was a very internal error message. 13:29
[Coke] masak: we did /exactly the same/ earlier. 13:30
masak the current error is fine with me. I don't see any regression, by any of your definitions.
[Coke] not originally, but earlier.
masak right.
[Coke] so, we have now returned to a former state.
masak if we did something else for a while, that might have been different but probably not significantly so.
[Coke] it used to say what it says now. then it executed and set the value to Mu(). now it does what it does now. 13:31
(and before those 3 states, you opened the ticket with a different horrible failure.)
masak some of the "this is what happens now" ticket updates are pure noise to me. I accept that they happen because it's good that the queue is kept up to date.
[Coke] rakudo: for 1..5 -> $a, $b? { say $a, $b }
p6eval rakudo 142c41: OUTPUT«12␤34␤5Mu()␤»
[Coke] AHA. 13:32
also, I'm confused.
Nothing has changed.
masak are we sync'd now? :) 13:34
[Coke] Talk to the ticket.
(I think so)
(behavior changed). I try not to do those at this point unless it's been a year since the last update.
13:34 gantry left
[Coke] once I go through all the tickets that are at least a year old, I will have to revisit this plan. (I only picked this one because the last thing was the equivalent of "testsneeded" and no one answered, and I thought it had changed behavior since then.) 13:34
and, half the time, the new behavior is good enough to close the ticket.
you will be glad that the "nothing has changed in the past year+" updates are just comments that I don't cc to the list. ;) 13:35
13:35 im2ee joined, cognominal_ left 13:38 cognominal joined
[Coke] rakudo: class A { has $.foo; method new($foo) {nextwith(:$foo) } }; say A.new("OH HAI").foo 13:39
p6eval rakudo 142c41: OUTPUT«OH HAI␤»
13:39 cyri_ left
[Coke] rakudo: class A { has $.foo; method new($foo) { say "ok" } }; say A.new("OH HAI") 13:39
p6eval rakudo 142c41: OUTPUT«ok␤Bool::True␤»
[Coke] rakudo: class A { has $.foo; method new($foo) { callwith($foo) } }; say A.new("OH HAI").foo
p6eval rakudo 142c41: OUTPUT«Default constructor only takes named arguments␤ in method new at src/gen/CORE.setting:516␤ in <anon> at src/gen/Metamodel.pm:2375␤ in call_with_args at src/gen/Metamodel.pm:2372␤ in method new at /tmp/WW9uUIODIh:1␤ in block <anon> at /tmp/WW9uUIODIh:1␤ in <an…
[Coke] masak: RT #68558; that was one of yours. 13:40
masak [Coke]: (behavior changed) yeah -- as I said, I'm mostly glad the ticket queue is alive. 13:41
[Coke]: looks like the desired behavior. 13:42
[Coke] (it's alive!) (weird science). Yes, my brain is full of useless triggers.
masak: what's up with the failure on the last one?
(marking ticket.) 13:44
nom: say 699-93, "!" 13:45
p6eval nom 142c41: OUTPUT«606!␤»
masak [Coke]: it delegates to the language-provided one, which righteously complains. 13:46
[Coke] masak: danke!
masak (by my current understanding of things) 13:47
benabik [Coke]: I should have asked phenny to pass it along, but did you see me respond to you re: RT#58592?
[Coke]: Oopha, GTG. Short answer: AFAICT you can close it. 13:48
benabik afk
[Coke] benabik: yes, saw it, marked/replied to the ticket.
benabik++ #adios 13:49
13:50 JimmyZ joined
JimmyZ nom: sub foo() { return 1,6; }; my ($x, $y) = foo; say $x, $y; 13:51
p6eval nom 142c41: OUTPUT«16␤»
masak nom: sub foo() { return 1,6; }; my ($x, $y) = foo; say ($x, $y) 13:52
p6eval nom 142c41: OUTPUT«1 6␤»
JimmyZ why? 13:53
say $x, $y is different from say ($x, $y)?
moritz because (...) constructs a Parcel
13:53 donri joined
moritz except when you do say($x, $y), then the () just delimits the argument list 13:54
nom: say (1, 2).Parcel
p6eval nom 142c41: OUTPUT«1 2␤»
moritz nom: say (1, 2).WHAT
p6eval nom 142c41: OUTPUT«Parcel()␤»
JimmyZ nom: say 'hello'.^methods() 13:56
p6eval nom 142c41: OUTPUT«Submethod.new() Method.new() Method.new() Method.new() Method.new() Method.new() Method.new() Method.new() Method.new() Method.new() Method.new() Method.new() Method.new() Method.new() Method.new() Method.new() Method.new() Method.new() Method.new() Method.new() Metho…
JimmyZ wft? 13:57
moritz I meant to fix that :-)
the spec is silent on the stringification of routines (iirc), so technically it's not wrong... :-) 13:58
nom: say 'hello'.^methods>>.name
p6eval nom 142c41: OUTPUT«BUILD Int Num chomp chop substr pred succ ll-match ords lines samecase samespace trim-leading trim-trailing trim words encode capitalize Bool Str ACCEPTS Numeric gist perl comb match subst split abs conjugate sqrt sign rand sin asin cos acos tan atan atan2 sec asec co…
13:58 djanatyn left
PerlJam Hrm... Did the Rakudo release announcement I sent last night make it to perl6-compiler? I don't see it 13:59
[Coke] Don't see it.
masak haven't seen it.
moritz neither
masak but p6* lists are famous for delaying emails.
[Coke] some of us are whitelisted. ;) 14:00
PerlJam who manages that list and how do I get whitelisted? :)
14:00 djanatyn joined
moritz www.nntp.perl.org/group/perl.perl6.compiler/ doesn't show it at least 14:00
[Coke] I think there's volunteers that de-spam the queues.
Iunno. it's a perl.org mystery. and my info could be out of date. 14:01
masak someone in the p5 camp concluded that the last release didn't get released during September just because that mail got delayed past the month boundary.
moritz PerlJam: I think you get whitelisted automatically when one of your mails is approved. The whitelisting dies after a certain time span of inactivity
PerlJam Well, I guess one email every 6 months isn't doing it for me.
moritz so, start more flamewars on p6l :-) 14:02
[Coke] heh.
14:02 kmwallio joined 14:03 JimmyZ left, JimmyZ joined
[Coke] this code is now invalid, yes: rt.perl.org/rt3/Ticket/Display.html?id=68138 14:04
(doesn't define T) ?
or is that still a bug? 14:05
JimmyZ can't open perlcabal.org/syn/S03.html
moritz [Coke]: jnthn should know :-) 14:07
[Coke] phenny: ask jnthn to poke at rt.perl.org/rt3/Ticket/Display.html?id=68138
phenny [Coke]: I'll pass that on when jnthn is around.
[Coke] rakudo: my @s = ($_ * 2 if $_ ** 2 > 3 for 0 .. 99); say @s.perl 14:08
p6eval rakudo 142c41: OUTPUT«Array.new(4, 6, 8, 10, 12, 14, 16, 18, 20, 22, 24, 26, 28, 30, 32, 34, 36, 38, 40, 42, 44, 46, 48, 50, 52, 54, 56, 58, 60, 62, 64, 66, 68, 70, 72, 74, 76, 78, 80, 82, 84, 86, 88, 90, 92, 94, 96, 98, 100, 102, 104, 106, 108, 110, 112, 114, 116, 118, 120, 122, 124, 1…
14:09 mkramer left
cognominal nom: class A { token TOP { <a>+ } ; token a { a } }; say 'aaa' ~~ m/<A::TOP>/ 14:09
p6eval nom 142c41: OUTPUT«===SORRY!===␤regex assertion not terminated by angle bracket at line 1, near "::TOP>/"␤»
moritz I don't believe this will ever work again
niecza: class A { token TOP { <a>+ } ; token a { a } }; say 'aaa' ~~ m/<A::TOP>/
p6eval niecza v10-59-g5d1ba41: OUTPUT«===SORRY!===␤␤Qualified references to non-private methods NYI at /tmp/8YtajhlmbH line 1:␤------> oken a { a } }; say 'aaa' ~~ m/<A::TOP⏏>/␤␤Potential difficulties:␤ 'token' declaration outside of grammar at /tmp/8Yta…
moritz token outside of grammar? 14:10
which one?
cognominal oops
moritz niecza: class A { token TOP { <a>+ } ; token a { a } };
p6eval niecza v10-59-g5d1ba41: OUTPUT«Potential difficulties:␤ 'token' declaration outside of grammar at /tmp/lZtRSA1Cty line 1:␤------> class A { token TOP ⏏{ <a>+ } ; token a { a } };␤␤»
cognominal nom: grammar A { token TOP { <a>+ } ; token a { a } }; say 'aaa' ~~ m/<A::TOP>/
p6eval nom 142c41: OUTPUT«===SORRY!===␤regex assertion not terminated by angle bracket at line 1, near "::TOP>/"␤»
moritz ah, it's grammar, not a class
niecza: role A { token foo { a } } 14:11
p6eval niecza v10-59-g5d1ba41: ( no output )
cognominal niecza: grammar A { token TOP { <a>+ } ; token a { a } }; say 'aaa' ~~ m/<A::TOP>/ 14:12
p6eval niecza v10-59-g5d1ba41: OUTPUT«===SORRY!===␤␤Qualified references to non-private methods NYI at /tmp/3fSnU6rCxj line 1:␤------> oken a { a } }; say 'aaa' ~~ m/<A::TOP⏏>/␤␤␤Unhandled Exception: Check failed␤␤ at /home/p6eval/niecza/boot/lib/CORE.se… 14:13
14:13 [Coke] left, cyri_ joined
JimmyZ nom: sub foo() { return 1,6; }; my ($x, $y) = foo; say\ ( $x, $y ); 14:16
p6eval nom 142c41: OUTPUT«␤Method 'postcircumfix:<( )>' not found for invocant of class 'Bool'␤ in <anon> at src/gen/Metamodel.pm:3177␤ in block <anon> at /tmp/6cloBhF7bI:1␤ in <anon> at /tmp/6cloBhF7bI:1␤»
14:16 wtw left
masak that should work, I think. 14:25
JimmyZ alpha: sub foo() { return 1,6; }; my ($x, $y) = foo; say\ ( $x, $y ); 14:31
p6eval alpha : OUTPUT«too many positional arguments: 2 passed, 2 expected␤in Main (file <unknown>, line <unknown>)␤»
14:32 Holy_Cow joined
JimmyZ alpha: sub foo() { return 1,6; }; my ($x, $y) = foo; say( $x, $y ); 14:32
p6eval alpha : OUTPUT«too many positional arguments: 2 passed, 2 expected␤in Main (file <unknown>, line <unknown>)␤»
masak decommutes
JimmyZ yes, that should work 14:33
14:33 kaare_ joined
JimmyZ couldn't understand what decommutes means 14:33
japhb I'm still backlogging, so maybe it's explained later, but I sense a miscommunication about the 'unshift false' bug, and I want to know what I did wrong. After announcing it in channel, I filed a bug. I spent a few hours off and on learning all the wrong ways to fix the bug, and eventually found a correct solution (the same as Moritz found, except as a one-line loop), and replied to the original bug report acceptance email with the patch. 14:35
Then I went to sleep. Then when I got up I saw the channel highlight, and noticed masak had filed another bug, Moritz had independently patched it, and my stuff got missed completely. Where did I mess up?
JimmyZ, leaves the office and heads for home. The opposite of commuting to work is decommuting from work. 14:36
(Although not common English usage. Might have been invented here, actually.)
bbkr_ what is the "nom way" to compose role into already loaded class? "class B{}; role A {}; class B does A;" does not work. 14:37
cognominal should not be MONKEY_TYPING and augment, the default within the Perl6 shell? meaning 'class' interpreted as 'augment'
PerlJam japhb: that's what we do on #perl6 -- invent language ;)
cognominal: what's the rationale? (Not disagreeing, just trying to understand) 14:38
JimmyZ thanks, japhb
cognominal because in shell one is experimenting and does not get things right the first time. 14:39
japhb JimmyZ, np
cognominal meaning when defining classes and such.
PerlJam bbkr_: you'd need to augment the class to compose a role into it after it's already been created. You can compose into individuale objects however.
er, s/uale/ual/ 14:40
japhb Dangit. I also had done the unfudge that Moritz found for MAIN tests. That was my fault though; I forgot to push my commit to roast.
PerlJam cognominal: what about -e scripts? should they do the same?
cognominal PerljamL I don't think so. A -e script is not remanent in any way. 14:41
PerlJam cognominal: yeah, but for experimenting ... perl6 -MSomeModuleThatDefinesAFooClass -e 'class Foo { ... }' 14:42
bbkr_ PerlJam: augmenting needs MONKEY_TYPING which I'd like to avoid. this one-time nom parsing is real pain when you need singletons and have to do boilerplating at the same time :(
PerlJam: thanks, looks like I have to redesign a lot 14:43
PerlJam bbkr_: then invert how you're doing it. Rather than class B {}; role A {}; class B does A; do class B; role A {}; class B does A { }; 14:44
14:44 shinobicl_ joined
PerlJam bbkr_: i.e. pre-declare the class and move the definition to somewhere later . 14:45
flussence perl6: class A { }; A.^add_method('b', method { say 'b!' }); A.new.b 14:47
p6eval niecza v10-59-g5d1ba41: OUTPUT«␤Unhandled Exception: Unable to resolve method add_method in class ClassHOW␤ at /tmp/1yxfhPWmbF line 1 (MAIN mainline @ 3) ␤ at /home/p6eval/niecza/lib/CORE.setting line 2176 (CORE C1040_ANON @ 2) ␤ at /home/p6eval/niecza/lib/CORE.setting line 2177 (COR…
..pugs b927740: OUTPUT«*** No such method in class Class: "&add_method"␤ at /tmp/ViXJo5HcZG line 1, column 14-53␤»
..rakudo 142c41: OUTPUT«b!␤»
PerlJam bbkr_: oh, flussence makes a good point .... you could probably use the MOP to compose the role after the fact. 14:48
14:48 drbean left
bbkr_ checking this solution now... 14:49
JimmyZ you didn't need MONKEY_TYPING if you use ^add_method
PerlJam nom: class B { }; role A { method foo { say "hi" } }; B.^add_role(A); B.new.foo; 14:51
p6eval nom 142c41: OUTPUT«Method 'foo' not found for invocant of class 'B'␤ in block <anon> at /tmp/bLBNDCSptt:1␤ in <anon> at /tmp/bLBNDCSptt:1␤»
bbkr_ don't you need role object here?
jnthn PerlJam: You didn't compose. 14:52
phenny jnthn: 14:07Z <[Coke]> ask jnthn to poke at rt.perl.org/rt3/Ticket/Display.html?id=68138
jnthn phenny: tell [Coke] will do
phenny jnthn: I'll pass that on when [Coke] is around.
PerlJam jnthn: I was just guessing :) 14:54
nom: class B { }; role A { method foo { say "hi" } }; B.^add_role(A); B.^compose; B.new.foo;
p6eval nom 142c41: OUTPUT«hi␤»
PerlJam yay!
bbkr_ awesome, just what I need. thanks! 14:55
14:55 drbean joined
PerlJam rakudo++ guessable MOP :) 14:55
jnthn++
14:55 Trashlord left
PerlJam jnthn: so ... what does it mean exactly to add a role but not compose? 14:56
jnthn: if I list the roles for the object do the uncomposed roles show up in the list? 14:57
s/object/class/
jnthn PerlJam: We have to know the full picture before we compose, so roles just go into a "to be composed" list when you .^add_role.
im2ee Hello! :) 14:58
tadzik helo im2ee
jnthn nom: class B { }; role A { method foo { say "hi" } }; B.^add_role(A); say B.^roles_to_compose; # I think...
p6eval nom 142c41: OUTPUT«A()␤»
jnthn nom: class B { }; role A { method foo { say "hi" } }; B.^add_role(A); say B.^roles_to_compose; B.^compose; say B.^roles_to_compose;
p6eval nom 142c41: OUTPUT«A()␤␤»
tadzik hah
jnthn Note how composition takes the "to compose" list and actually does the composition 14:59
nom: class B { }; role A { method foo { say "hi" } }; B.^add_role(A); say B.^roles; B.^compose; say B.^roles;
p6eval nom 142c41: OUTPUT«␤A()␤»
PerlJam aye.
jnthn And there's the answer to your question :)
(Which is what I expect.) 15:00
(The class doesn't actually do the role for real until composition time)
JimmyZ perl6++ :)
15:00 daniel-s left, Trashlord joined 15:01 JimmyZ_ joined 15:03 shinobicl_ left 15:05 JimmyZ left, JimmyZ_ is now known as JimmyZ
PerlJam jnthn: Is 6model's interface documented anywhere? It seems like you've got an implementation (or two :), and some "big picture" docs but no reference docs. 15:05
jnthn PerlJam: Needs some reference docs. And the interface seems to have become relatively stable these days, so this is likely a good time to do that. 15:09
Though in this case, it's not so much 6model that needs documenting, but the Rakudo MOP that lies on top of it.
PerlJam I guess. that line has always been blurry for me for some reason. 15:10
I want the MOP and the MOP-construction-kit both documented. :) 15:11
When I look at it though, the MOP *is* the construction kit.
jnthn Maybe it's better to start using MOP in the plural 15:13
PerlJam perhaps
TimToady then it's start sounding like the title of a novel
jnthn 6model core exposes the KnowHOW MOP. NQP's meta-objects define a MOP that is implemented in terms of that. Rakudo's meta-objects define a MOP that is implemneted in terms of NQP's meta-objects.
There happens to be a supersetting operation at each step of the way. 15:14
(Rakudo does more than NQP does more than 6model care) 15:15
*core
So essentially, yes, it's MOPs all the way down, the level below being the construction kit for the level above. :)
Plus the various levels let you extend the meta-model in the same level. Thus meta-circularity. 15:16
15:18 _jan is now known as jfried
PerlJam jnthn: so ... do you have time to start documenting or just I troll through the code and pester you with questions? :) 15:22
s/just I/should I just/
weird brain-o that
jnthn PerlJam: Well, I never have time for all the things that I should be working on. Trolling (trawling? ;)) through the code and asking me questions will probably get us the docs faster. :) 15:25
s/time/enough time/
PerlJam adds a documentation task to todo list 15:26
dalek ast: 1daba11 | (Geoffrey Broadwell)++ | S06-other/main-usage.t:
main-usage.t: Add a section comment; remove a fossil rakudo fudge mark
15:27
15:32 JimmyZ left 15:43 JimmyZ joined 15:44 risou_awy is now known as risou, PacoLinux left 15:45 agentzh left, PacoLinux joined 15:46 wamba joined 15:51 kaare_ left 15:52 Trashlord left 15:57 thou joined 15:59 bluescreen10 left 16:04 worr joined 16:06 bluescreen10 joined, bluescreen10 left 16:07 MayDaniel joined
moritz japhb: I think it was just the delay in mail delivery 16:08
japhb: when I wrote the patch, I hadn't seen any on the mailing list, and I hadn't backlogged far enough to see your statement, just masak repeating the bug 16:09
16:09 Trashlord joined, wolfman2000 left
moritz japhb: the best fix is of course to get a rakudo commit bit; submit a TPF CLA (unless you have already done that), and I'll ask jnthn and pmichaud if it's fine to give you a commit bit 16:10
TimToady believes he coined "decommuting" on this channel, for the record
it was a deliberate attempt to subvert the core meaning of "commuting", which means "go back and forth", or "go both ways", or some such 16:15
sorta like defining substraction as "deadding" 16:16
s:3rd/s//
im2ee nom: my @tab = <a b c>; sub foo ( @r is rw ) { say @tab.perl; @r = <c d e>; say @tab.perl; } 16:27
p6eval nom 142c41: ( no output )
im2ee nom: my @tab = <a b c>; sub foo ( @r is rw ) { say @tab.perl; @r = <c d e>; say @tab.perl; }; foo() 16:28
p6eval nom 142c41: OUTPUT«Not enough positional parameters passed; got 0 but expected 1␤ in sub foo at /tmp/9AiN45s8Aj:1␤ in block <anon> at /tmp/9AiN45s8Aj:1␤ in <anon> at /tmp/9AiN45s8Aj:1␤»
im2ee nom: my @tab = <a b c>; sub foo ( @r is rw ) { say @tab.perl; @r = <c d e>; say @tab.perl; }; foo(@tab)
p6eval nom 142c41: OUTPUT«Array.new("a", "b", "c")␤Array.new("c", "d", "e")␤»
jnthn You maybe wanted "is copy" 16:29
(rw means modify the original)
16:29 abercrombie joined
im2ee So, great. I want modify the original. :) 16:29
jnthn oh. Well, there you go then. :)
im2ee I'm just trying. :)
But thanks jnthn :) 16:30
abercrombie Is perlcabal down now?
16:32 JimmyZ left
masak yay weekend yay 16:38
sorear good * #perl6 16:40
yay, weekend!
16:42 plobsing left 16:43 plobsing joined
masak good sorear, * 16:47
yes, it was TimToady who introduced "decommuting".
16:53 Chillance joined 16:54 replore_ left
masak rakudo: say (1e6 .. 1e7).roll 17:00
p6eval rakudo 142c41: OUTPUT«Failed allocation of 800000 bytes␤Parrot VM: PANIC: Out of mem!␤C file src/gc/gc_gms.c, line 1823␤Parrot file (not available), line (not available)␤␤We highly suggest you notify the Parrot team if you have not been working on␤Parrot. Use parrotbug (located in parr… 17:01
masak o.O
potential LHF material, I guess.
roll is easy.
17:05 molaf joined
masak moritz: re FAQ: it'd be nice if we could hook up hugbot or some other bot to link people to the right Q: 'hugbot faq masak soo' or some such syntax. 17:25
colomon niecza: say (1e6 .. 1e7).roll 17:26
p6eval niecza v10-59-g5d1ba41: OUTPUT«(timeout)»
masak dåligt.
we create these nifty Range objects, and then we don't make proper use of them :P 17:27
tadzik :)
hey, I *did* optimize that
that could have been my first Rakudopatch or so
sorear is there a Proper Way to deal with dupbugs on github? 17:28
colomon .... actually, should (1e6 .. 1e7).roll work? or do the endpoints need to be Ints? 17:29
sorear niecza: say (1e2 .. 1e3).roll
p6eval niecza v10-59-g5d1ba41: OUTPUT«928␤»
sorear Ranges need to be less heinously inefficient in niecza 17:30
17:31 mkramer joined
colomon didn't someone say they'd implemented mkdir for niecza? 17:31
17:31 MayDaniel left 17:35 kranius joined, kranius left, Alias left 17:37 Alias joined, mattp_ left 17:38 kaleem joined 17:39 kranius joined, wamba left 17:40 kmwallio left
sorear colomon: I don't remember that. 17:46
colomon sorear: someone mentioned it to me right after I pushed "unlink", but my memory is like an iron sieve. 17:47
hmmm.... guess that gives me a date to look in the logs, though.
17:48 mkramer left
colomon snarkyboojum says he did it. 17:49
I just sent him a message via github. (I hope.) 17:50
he was trying to get panda running on niecza. that's a Good Cause, IMO. 17:54
sorear: I've been eyeing up the OpenTK library, for getting OpenGL running in Niecza. ;) 17:55
sorear googles OpenTK 17:56
colomon www.opentk.com/
dalek ecza/serialize: 4158e77 | sorear++ | lib/Kernel.cs:
Robustness fix for multisubs in protopads
17:57
bbkr_ everyone: can you please confirm segfault in this code on your machines "my $b = Buf.new(1); for ^100 { $b~=Buf.new(1..100); say [+]$b.list}"? happens for me after 10th iteration 17:58
sorear rakudo: my $b = Buf.new(1); for ^100 { $b~=Buf.new(1..100); say [+]$b.list}
p6eval rakudo 142c41: OUTPUT«(signal SEGV)5051␤10101␤15151␤20201␤25251␤30301␤35351␤40401␤»
sorear happens on host04.appflux.net after 8 iterations 17:59
bbkr_ sorear: thanks for confirming 18:00
bbkr_ reports
BTW: code is alive one iteration before crash, but memory is total garbage. for example references (if any defined before loop) of other variables points somewhere randomly 18:02
sorear bbkr_: what happens with -G inf?
18:02 espadrine joined
bbkr_ sorear: what do you mean? 18:03
sorear bbkr_: parrot command-line option to disable the garbage collector. I might be misspelling it 18:04
18:04 mattp_ joined
dalek ecza/serialize: 26e4a18 | sorear++ | src/niecza:
Fix <{ }> Match.set_signature error
18:05
18:05 wolfman2000 joined
bbkr_ sorear: i'll check from home later, got to go now. 18:06
sorear bye
bbkr_ phenny: tell moritz to check "my $b = Buf.new(1); for ^100 { $b~=Buf.new(1..100); say [+]$b.list}" code, something causes Segmentation fault there (ticket also filled) 18:07
phenny bbkr_: I'll pass that on when moritz is around.
bbkr_ bye
18:07 bbkr_ left
dalek ecza/serialize: 6eb73ed | sorear++ | lib/CodeGen.cs:
Fix slot map allocation in InlineCall
18:09
sorear \o/ compiling test.pl succeeded 18:10
18:10 mkramer1 joined 18:15 replore joined, cognominal left 18:17 cognominal joined 18:19 uasi left
masak sorear: \o/ 18:23
sorear o/ masak 18:24
flussence perl6: say ('abc' ~~ /<at(1)> (.)/).perl 18:26
p6eval niecza v10-59-g5d1ba41: OUTPUT«␤Unhandled Exception: Unable to resolve method at in class Cursor␤ at /tmp/NxzR1xf8Z5 line 1 (MAIN C3_ANON @ 2) ␤ at /home/p6eval/niecza/lib/CORE.setting line 1591 (CORE Regex.ACCEPTS @ 3) ␤ at /tmp/NxzR1xf8Z5 line 1 (MAIN mainline @ 1) ␤ at /home/p6ev…
..rakudo 142c41: OUTPUT«Method 'at' not found for invocant of class 'Cursor'␤ in regex <anon> at /tmp/bzmyko6uBZ:1␤ in method ACCEPTS at src/gen/CORE.setting:6596␤ in block <anon> at /tmp/bzmyko6uBZ:1␤ in <anon> at /tmp/bzmyko6uBZ:1␤»
..pugs b927740: OUTPUT«Error eval perl5: "if (!$INC{'Pugs/Runtime/Match/HsBridge.pm'}) {␤ unshift @INC, '/home/p6eval/.cabal/share/Pugs-6.2.13.20111008/blib6/pugs/perl5/lib';␤ eval q[require 'Pugs/Runtime/Match/HsBridge.pm'] or die $@;␤}␤'Pugs::Runtime::Match::HsBridge'␤"␤*** '<HAND…
flussence aw crap :(
sorear niecza: say ('ab' ~~ / <{ $/.from == 1 }> (.) /).perl 18:27
p6eval niecza v10-59-g5d1ba41: OUTPUT«␤Unhandled Exception: Unable to resolve method from in class Cursor␤ at /tmp/8tHiLvBLs7 line 1 (MAIN C3_ANON @ 3) ␤ at /home/p6eval/niecza/lib/CORE.setting line 1591 (CORE Regex.ACCEPTS @ 3) ␤ at /tmp/8tHiLvBLs7 line 1 (MAIN mainline @ 1) ␤ at /home/p6…
sorear niecza: say ('ab' ~~ / <{ $/.pos == 1 }> (.) /).perl
p6eval niecza v10-59-g5d1ba41: OUTPUT«#<match from(1) to(2) text(b) pos([#<match from(1) to(2) text(b) pos([].list) named({}.hash)>].list) named({}.hash)>␤»
sorear niecza: use MONKEY_TYPING; augment class Cursor { method at($i) { self.pos == $i ?? self !! Nil } }; say ('ab' ~~ / <at(1)> (.) /).perl 18:28
p6eval niecza v10-59-g5d1ba41: OUTPUT«#<match from(1) to(2) text(b) pos([#<match from(1) to(2) text(b) pos([].list) named({}.hash)>].list) named({"at" => Cursor.new(...)}.hash)>␤»
flussence sorear++
sorear does this belong in the setting? 18:29
flussence I think so, it's in the spec
(S05:4415)
oh, it wants a StrPos there... 18:30
wait, never mind
(does anything even implement StrPos yet?) 18:31
sorear Not really 18:33
We still haven't quite figured out what StrPos is for
18:39 [Coke] joined, wk joined 18:49 wk left 18:52 soh_cah_toa joined
sorear o/ [Coke], soh_cah_toa 18:55
18:55 Holy_Cow left
[Coke] returns. 18:56
phenny [Coke]: 14:52Z <jnthn> tell [Coke] will do
[Coke] stupid flaky home network. :P
soh_cah_toa sorear: howdy :) 18:57
diakopter [Coke]: you work from home? 19:01
[Coke] diakopter: no, I IRC via home.
somedays I work from home, not usually. 19:02
19:04 mkramer1 left 19:05 mkramer joined
[Coke] japhb: your email hit the list at 11:53 am today. 19:05
19:05 mkramer left
[Coke] (a minute after perljam's announcement) 19:05
masak's came through at 4:32 am. 19:06
(eastern)
Sorry about that.
masak I sent an email? 19:07
19:07 Kivutarrr joined
[Coke] masak: "bugreport" 19:07
masak oh, I have been known to send those... 19:12
19:16 mkramer joined 19:18 dual joined 19:23 wk joined 19:24 kaleem left 19:30 SHODAN left 19:36 ksi joined 19:46 mj41 left, mj41_nb left
[Coke] rakudo: class A { has $b; method new { my $b = 3; say $b } }; A.new() 19:47
p6eval rakudo 142c41: OUTPUT«Cannot assign into a PMCNULL container␤ in method new at /tmp/6Wnn0tQ2HA:1␤ in block <anon> at /tmp/6Wnn0tQ2HA:1␤ in <anon> at /tmp/6Wnn0tQ2HA:1␤»
[Coke] masakbugs. the gift that keeps on giving. 19:48
rakudo: grammar CSV { has Str $.sep }; say CSV.new(sep => ",").sep 19:49
p6eval rakudo 142c41: OUTPUT«,␤»
[Coke] rakudo: class A { has Str $.b }; say A.new().b.WHAT
p6eval rakudo 142c41: OUTPUT«Str()␤»
19:50 worr left
[Coke] rakudo: class A {}; class B { has A $.foo .= new } 19:51
p6eval rakudo 142c41: OUTPUT«Use of uninitialized value in string context␤Use of uninitialized value in string context␤===SORRY!===␤error:imcc:syntax error, unexpected DOT ('.')␤ in file '(file unknown)' line 371␤␤»
[Coke] niecza: class A {}; class B { has A $.foo .= new }
p6eval niecza v10-59-g5d1ba41: OUTPUT«␤Unhandled Exception: Unable to resolve method ctxzyg in class Method␤ at /home/p6eval/niecza/src/NieczaPassSimplifier.pm6 line 129 (NieczaPassSimplifier run_optree @ 6) ␤ at /home/p6eval/niecza/src/NieczaPassSimplifier.pm6 line 8 (NieczaPassSimplifier C…
[Coke] wow. masak, you can have that one. ;)
jnthn meh 19:53
That's not a pleasant fix either...
[Coke] jnthn: want me to stop? ;)
jnthn [Coke]: No :) 19:54
[Coke] OH! I missed the imcc error.
jnthn I'm sure some masak bugs are fixed :)
[Coke] I think about one in 5 or so are. 19:59
20:00 GlitchMr left 20:01 tokuhiro_ joined 20:10 risou is now known as risou_awy 20:11 worr joined 20:12 cognominal_ joined 20:15 cognominal left 20:17 im2ee left 20:18 im2ee joined
[Coke] slow p6 days 20:20
*day
20:21 japhb_ joined
japhb_ moritz, [Coke], thanks for letting me know about mail delays. Perhaps the lesson there is to speak up in channel when I'm sending a patch in, to at least avoid duplicate work due to ML lag. 20:21
20:21 mkramer left
japhb_ moritz, and regarding signing a contributor agreement, I know for sure I had done one for Parrot Foundation way back, and I *thought* I had done one for TPF as well, but I am not sure (and that would be multiple computer incarnations ago, so I doubt I still have a local copy in an easy to find spot). Is there someone/something that tracks who has and who hasn't submitted one? 20:23
20:25 dorlamm joined
[Coke] I'm not sure who tracks that, but can find out. 20:31
20:34 cooper joined 20:37 localhost left
masak [Coke]: I've been coding a bunch of p6 today, but I guess I haven't been making much noise about it. 20:37
20:37 mberends left
[Coke] masak: that's fine, when you squeek, tickets get opened. 20:38
masak that's how it works.
I do know about one nieczabug that should get reported, but I haven't narrowed it down enough yet. 20:39
compilation caching makes it more difficult to reason about :/
[Coke] I'm not touching that queue, have fun. ;) 20:40
masak I'd rather take a speed hit and have things more predictable, tbh.
well, Niecza's where it's at until nom gets full regex support...
sorear masak: how are you having issues with the compile cache? 20:44
20:46 pyrimidine left
masak sorear: I'm getting spurious errors, so sometimes I have to run 'make test' twice to get all OKs. 20:48
20:49 Kivutarrr left 20:50 mberends joined
sorear masak: bleh 20:50
masak yeah. it's mostly annoying. 20:51
sorear hrm
masak, are you on 2.6?
masak how do I check again, 'mono --version'?
sorear yes
sorear is wondering if this is the 2.6 multi-compile bug ey never bothered to fix 20:52
im2ee Good night! :)
20:52 im2ee left
masak I'm on 2.10.2 20:52
imarcusthis: hah, I almost mis-tabbed you again :P 20:53
[Coke] IWBNI Configure.pl --gen-parrot respected the git protocol of the existing checkout. 20:56
(I have to do http checkouts in some cases.) 20:57
20:57 donri left 20:58 Kivutarrr joined
masak [Coke]: I had to do that too! 20:58
hadn't needed that before...
[Coke] for now I'm just editing the scripts by hand that do the checkouts. 21:00
dalek ecza/serialize: efdcfd1 | sorear++ | lib/Kernel.cs:
Improve sanitization of CLR field names

ki9a++ for helping spot the problem
[Coke] phenny: tell jnthn --gen-parrot is definitely easier with activestate if you're using msvc. 21:02
phenny [Coke]: I'll pass that on when jnthn is around.
[Coke] Guess I'll get over it. ;)
sorear \o/ Failed 888/1007 subtests 21:03
[Coke] this in the branch? awesome. 21:05
sorear yes
[Coke] phenny: tell jnthn (except that the build failed. hurm.) 21:08
phenny [Coke]: I'll pass that on when jnthn is around.
21:16 Kivutarrr left 21:29 whiteknight left 21:42 worr left
dalek ecza/serialize: c6209d9 | sorear++ | lib/ (2 files):
Reserve space for spill slots in protopad
21:47
sorear Failed 587/1007 subtests 21:48
21:53 wolfman2000 left
diakopter sorear: do you have an idea about deserialization speed versus compilation? 21:53
21:54 alester left 22:00 dorlamm left
sorear diakopter: compiling CORE.setting locally takes >100s, deserialization takes <0.5s 22:02
diakopter: is that what you meant?
22:07 ksi left 22:09 PerlJam left, TimToady left, nebuchadnezzar left, ggoebel left, aloha left, [particle] left, Helios left, jjore left, shachaf left, zostay_ left, diakopter left 22:11 PerlJam joined, TimToady joined, nebuchadnezzar joined, ggoebel joined, aloha joined, [particle] joined, Helios joined, jjore joined, shachaf joined, zostay_ joined, diakopter joined, shachaf left, shachaf joined
diakopter sorear: oh; actually I guess I meant loading the setting dll 22:13
I suppose
whatever the speedup factor from master to the serialize branch represents 22:22
sorear diakopter: speedup factor is likely to be close to zero 22:26
sorry
diakopter oh 22:27
sorear I don't even know offhand what the sign of it is
22:30 Sarten-X left 22:38 Sarten-X joined
masak 'night, #perl6 22:44
dalek ecza/serialize: 468977e | sorear++ | lib/CodeGen.cs:
Get type correct for protosubs
22:54
sorear Failed 476/1006 subtests 22:55
10007
23:05 Sarten-X left 23:10 molaf_ joined 23:13 Sarten-X joined
dalek ecza/serialize: f3ce206 | sorear++ | lib/Kernel.cs:
Properly implement on-demand creation of mixin cache
23:14
23:14 molaf left 23:25 tokuhiro_ left