»ö« 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.
dalek ecza: 8cf84c4 | (Solomon Foster)++ | t/spectest.data:
Turn on S03-operators/short-circuit.t.
00:01
ecza: d1c33de | (Solomon Foster)++ | lib/CORE.setting:
Fix postfix:<i> so it handles Complex numbers properly.
sorear colomon: pong 00:13
colomon sorear: whoops 01:06
sorear: I've got a couple of failing spectests here now. I think from changes of yours earlier in the day?
S13-type-casting/methods.t and t/spec/S32-trig/atan2.t 01:07
sorear colomon: this test (S13) is pretty nonsense 01:18
subclassing Str? and then calling new? seriously? 01:19
colomon it's dodgy, for sure, but I believed it's always worked in Rakudo... 01:23
do you have a reason to think it is actually wrong? I'm certainly not attached to it... 01:24
sorear yes
the test predates Cool, and we use Cool now to mark stuff that can be coerced
dalek ast: 307d69f | sorear++ | S13-type-casting/methods.t:
[S13-type-casting/methods] We use Cool to mark Str-usable things now; refudge
01:25
sorear the second failure is very real though 01:26
colomon niecza: 10.Rat(1e-9) 01:27
p6eval niecza v12-124-gd1c33de: OUTPUT«Unhandled exception: Excess arguments to Int.Rat, used 1 of 2 positionals␤ at /home/p6eval/niecza/lib/CORE.setting line 0 (Int.Rat @ 0) ␤ at /tmp/QXCba_zo2W line 1 (mainline @ 1) ␤ at /home/p6eval/niecza/lib/CORE.setting line 2486 (ANON @ 2) ␤ at /hom…
dalek ecza: 46519aa | sorear++ | lib/CORE.setting:
Oops, adding this made no sense
01:28
colomon that's got it 01:29
dalek ast: d0e5790 | (Solomon Foster)++ | S32-num/power.t:
Unfudge test that works now.
01:38
ast: 797dfa0 | (Solomon Foster)++ | S05-grammar/action-stubs.t:
Unfudge test that works now.
colomon sorear: originally what I pinged you for was for help writing infix:<^^> and infix:<xor>. but after studying the source, I figure it's too complicated for an easy project tonight. :) 01:54
dalek ast: 0956e55 | (Solomon Foster)++ | S0 (2 files):
Fudge for niecza.
02:23
dalek ecza: bc9276f | (Solomon Foster)++ | t/spectest.data:
Turn on S02-lexical-conventions/unspace.t.
02:23
colomon perl6: say "a".ord 02:26
p6eval niecza v12-125-g46519aa: OUTPUT«Unhandled exception: Unable to resolve method ord in class Str␤ at /tmp/4ISJ7ffSZS line 1 (mainline @ 1) ␤ at /home/p6eval/niecza/lib/CORE.setting line 2485 (ANON @ 2) ␤ at /home/p6eval/niecza/lib/CORE.setting line 2486 (module-CORE @ 59) ␤ at /home/p…
..pugs b927740, rakudo dfd1d7: OUTPUT«97␤»
colomon sorear: ping? 02:32
niecza: say "a".codes 02:34
p6eval niecza v12-125-g46519aa: OUTPUT«1␤»
colomon nom: say "hello".ord 02:35
p6eval nom dfd1d7: OUTPUT«104␤»
sorear colomon: pong 02:42
colomon o/ 02:43
one moment,
sorry, wife had a present wrapping disaster just then 02:44
I think I meant to be asking about implementing .ord
I distracted myself by actually going a long way toward figuring out the C# aspects of the problem. 02:45
nom: say "".ord 02:46
p6eval nom dfd1d7: OUTPUT«Cannot get character of empty string␤ in method ord at src/gen/CORE.setting:1734␤ in block <anon> at /tmp/xrwqL7xQub:1␤ in <anon> at /tmp/xrwqL7xQub:1␤»
sorear niecza: say ord("七")
p6eval niecza v12-125-g46519aa: OUTPUT«19971␤»
sorear colomon: LHF. 02:47
colomon oh, geez!
never thought to check that
okay, I can take it from there.
colomon wishes he had an embarrassed smiley face
dalek ecza: 7c57deb | (Solomon Foster)++ | lib/CORE.setting:
Add Cool.ord.
02:50
ecza: 7b80047 | (Solomon Foster)++ | t/spectest.data:
Turn on S02-literals/quoting-unicode.t.
colomon well, sweet, that's a 72 test file which now works without any fudging at all. 02:51
nom: say ords("hello") 02:53
p6eval nom dfd1d7: OUTPUT«104 101 108 108 111␤»
colomon perl6: say ords("hellO")
p6eval pugs b927740: OUTPUT«*** No such subroutine: "&ords"␤ at /tmp/iqnwvDDeWw line 1, column 5 - line 2, column 1␤»
..rakudo dfd1d7: OUTPUT«104 101 108 108 79␤»
..niecza v12-125-g46519aa: OUTPUT«===SORRY!===␤␤Undeclared routine:␤ 'ords' used at line 1␤␤Unhandled exception: Check failed␤␤ at /home/p6eval/niecza/boot/lib/CORE.setting line 880 (die @ 2) ␤ at /home/p6eval/niecza/src/STD.pm6 line 1143 (P6.comp_unit @ 32) ␤ at /hom…
colomon nom: say ords("hello").chrs 02:56
p6eval nom dfd1d7: OUTPUT«hello␤»
colomon niecza: say "hello".comb 03:00
p6eval niecza v12-125-g46519aa: OUTPUT«h e l l o␤»
colomon :\
sorear :\ ? 03:02
colomon niecza> "hello".comb
Unable to resolve method postcircumfix:<( )> in class Any
at /Users/colomon/tools/niecza/lib/CORE.setting line 501 (Cool.comb @ 7)
My only change was adding two subs in CORE.setting. 03:03
sorear cool, you've discovered a new REPL bug 03:04
colomon \o/
sorear comb doesn't work in the REPL for me either
colomon ooo, looks like my code does indeed work. sorear++ 03:05
colomon niecza: say "\c[LATIN CAPITAL LETTER A, COMBINING DOT ABOVE]" 03:12
p6eval niecza v12-128-g7b80047: OUTPUT«A􏿽xCC􏿽x87􏿽xE2􏿽x90􏿽xA4»
[Coke] niecza: say q{"\00"}
p6eval niecza v12-128-g7b80047: OUTPUT«"\00"␤»
dalek ast: 5c867ca | (Solomon Foster)++ | S29-conversions/ord_and_chr.t:
Fudge for niecza.
03:13
ast: 6725641 | coke++ | S02-literals/char-by-number.t:
niecza fudge
ecza: 98e6ce1 | coke++ | t/spectest.data:
run fudged test
03:14
ecza: cbdb331 | coke++ | t/spectest.data:
run (already) fudged test
03:17
ecza: 481d20d | (Solomon Foster)++ | lib/CORE.setting:
Add .chr, .ords, .chrs, ords, and chrs.
03:22
ecza: 4102b49 | (Solomon Foster)++ | t/spectest.data:
Turn on S29-conversions/ord_and_chr.t.
ecza: 64f5cf1 | coke++ | t/spectest.data:
run another test
03:23
colomon [Coke]: That ord_and_chr.t was another 247 passing tests
[Coke] I just added a couple of dozen. 03:25
colomon It's been a good evening for it. :)
dalek ast: 20ad8da | Coke++ | S02-names-vars/contextual.t:
@*INC isn't always set.
03:26
[Coke] that's a left over from weeks ago that I just found on my home machine. 03:27
colomon 'night, all 03:28
[Coke] colomon: ~~ 03:29
[Coke] sorear: S02-literals/hex_chars.t fails only one test for me (but is hard to fudge) 03:33
so maybe you can wrangle it. ;) 03:34
sorear colomon++ [Coke]++ 03:39
[Coke] t/spec/S05-mass/named-chars.t looks tempting. 03:40
colomon [Coke]: I fudged it so it runs to completion, but it's got gazillions of fails. 03:40
dalek ast: f1b8437 | coke++ | integration/advent2009-day19.t:
niecza fudge
ecza: 794a876 | coke++ | t/spectest.data:
run more tests
03:41
sorear whyfor the fails? 03:49
sorear oh 03:54
dalek ecza: 59989fe | sorear++ | / (2 files):
Fix case being ignored on multi-character backslash escapes; we now pass S05-mass/named-chars.t
03:59
sorear [Coke]: hex_chars.t will fix itself after the next bootstrap 04:03
it's one of the issues that results from boot/ not being surrogates aware
so the chr() call inside the compiler fails
[Coke] ah. 04:05
[Coke] before 59989fe, we got up to 12198 passing tests. 04:06
[Coke] 377 more from that test. 04:08
nom: say (12198+377)/18418
p6eval nom dfd1d7: OUTPUT«0.682755999565642␤»
[Coke] nom: say (18418*.7-(12198+377)).Int 04:09
p6eval nom dfd1d7: OUTPUT«317␤»
[Coke] sorear++
sorear niecza: say (12198+377)/18418 04:10
p6eval niecza v12-135-g59989fe: OUTPUT«0.68275599956564226␤»
sorear I fixed this yesterday :P
perl6: say log(2) - ~log(2)
p6eval rakudo dfd1d7: OUTPUT«3.33066907387547e-16␤»
..pugs b927740, niecza v12-135-g59989fe: OUTPUT«0␤»
moritz good morning 04:20
moritz phenny: tell tadzik the failure in Panda is easy to fix "class Pand::Ecosystem is Pies::Ecosystem" should have s/is/does/. Otherwise it tries to pun a class from the role, and fails because methods are stubbed 04:21
phenny moritz: I'll pass that on when tadzik is around.
moritz the error message might be a tad LTA though
phenny: tell tadzik I can push the fix if you give me a commit bit :-) 04:22
phenny moritz: I'll pass that on when tadzik is around.
moritz hugme: list projects 04:23
hugme moritz: I know about Math-Model, Math-RungeKutta, MiniDBI, bench-scripts, book, gge, hugme, ilbot, java2perl6, json, modules.perl6.org, november, nqp-rx, nqpbook, perl6, perl6-examples, perl6-wtop, proto, pugs, rakudo, star, svg-matchdumper, svg-plot, tardis, try.rakudo.org, tufte, ufo, web, yapsi 04:23
moritz no panda :(
sorear no niecza either.
did we ever get the github org thing resolved? 04:24
moritz which thing do you mean?
sorear iirc there were issues with github orgs that prevented rakudo from working after perl6 became an org 04:25
moritz continues to backlog, and finds that tadzik++ already came to the same conclusion (re panda)
sorear: I don't remember such issues
sorear: only hugme wasn't able to add people to an organization, because the organization API wasn't working back then 04:26
sorear that's what I mean, "hugme: add foo to rakudo" 04:27
moritz hugme: add sorear to perl6
hugme moritz: You need to register with freenode first
moritz hugme: add sorear to perl6
moritz urks, seems that thing is broken again 04:28
moritz malformed JSON string, neither array, object, number, string or atom, at character offset 0 (before "LWP will support htt...") at /home/moritz/perl5/perlbrew/perls/perl-5.14.1/lib/site_perl/5.14.1/JSON/Any.pm line 571. 04:28
that's how hugme dies
but it worked before, and it's probably just a SMOP to fix, not a fundamental issue
hugme: hug github 04:30
hugme hugs github
dalek ecza: 525ca24 | sorear++ | lib/UCD.cs:
Add support for the roast-defined LF, CR, FF, NEL aliases
04:32
moritz hugme: add moritz to perl6 04:33
hugme hugs moritz. Welcome to the perl6 github organization
moritz ah, an upgrade of Net::GitHub fixed it
yay for easy maintenance :-)
dalek ast: 34bcde0 | sorear++ | S05-mass/named-chars.t:
[S05-mass/named-chars] Unfudge for niecza
04:34
sorear 44 more tests
moritz: SMO"P" eh :) 04:35
moritz :-) 04:36
sorear: it was, I just let somebody else do the programming :-)
moritz let's see if an update of POE::Component::IRC::Plugin::AutoJoin also fixes the problem that hugme often fails to rejoin 04:39
moritz tries to sleep again 05:30
sorear gn
masak morg'n, #perl6 05:34
sorear o/ mask
waitwaitwait. Why are masak and moritz in opposition if they're both in the CEST/EEST region? 05:35
masak sorear: I can only guess because moritz wanted a few extra shuts of eye due to wakeful child-rearing. 05:44
and I'm early up, because I'm still partly on Hong Kong time. :) 05:47
ss/early up/up early/
masak is stoked about this year's p6cc, and want to make other people excited about it too 05:49
sorear *muhahahahahaa8* 05:50
masak: backlogged any yet? 05:51
dalek ast: 42cc279 | sorear++ | S05-mass/properties-script.t:
[S05-mass/properties-script] Bidi, lookahead

Restores the negative lookahead tests that were removed in f199800d; updates Bidi_Class checks to use valued property syntax; adds missing underscores to Old_Italic and Canadian_Aboriginal.
05:54
sorear 361 more passing tests 05:55
dalek ecza: 45f825d | sorear++ | / (2 files):
Implement usage of pseudo-properties like :Letter for all gc/sc aliases
masak sorear: I'm backlogging now and then, but I'm still on 2011-12-04. 05:56
sorear: was there anything noteworthy in the past few hours that I should have seen?
sorear coke, colomon, and I have been attacking spectests is all. 05:57
niecza: say (12198+377+44+361)/18418
p6eval niecza v12-136-g525ca24: OUTPUT«0.70474535780215009␤»
sorear and that. ;) 05:58
masak: ^^^ directed at you 05:59
masak sorear: ok -- what do the numbers mean? 06:01
sorear 18418 - non-skip spectests passed by Rakudo nom 06:02
12198 - non-skip spectests passed by Niecza as of much earlier today
377+44+361 - new test files added to niecza's linup since then
masak \o/
sorear++ 06:03
dalek ecza: 20a19dd | sorear++ | src/STD.pm6:
Allow <:!Letter> to parse
masak sorear: at this rate, you'll overtake Rakudo sometime around Easter ;)
sorear I would also like to call your attention to the fact that the result of the division is displayed in convenient decimal format 06:04
masak _sri++ # wanting reference documentation 06:05
sorear: yes, I noticed already yesterday when I upgraded. that's very nice.
sorear rakudo: / <:Moo> /
p6eval rakudo dfd1d7: ( no output )
dalek ecza: 3c28d9b | sorear++ | lib/UCD.cs:
Enable loose matching for property *names*
06:11
dalek ecza: d8d1e25 | sorear++ | lib/UCD.cs:
Fix <:CurrencySymbol> rejection
06:16
sorear gently taunts the person who decided to use 9FC4 as an "unassigned character" in properties-general.t 06:21
it's a CJK ideograph with Age=5.2. Write future-proof tests please
it turns out that the tests that are failing as a result are *precisely* the tests that Rakudo skips, except for the Lr ones 06:23
sorear I'm gonna change em to FFFE and FFFF 06:24
dalek ast: 3e54827 | sorear++ | S05-mass/properties-general.t:
[S05-mass/properties-general] Update, niecza fudge

This file was using characters chosen to be unassigned in Unicode 5.1, but they got assigned in 5.2! They have been changed to characters guaranteed to remain unassigned.
06:31
ecza: 8e88d76 | sorear++ | lib/UCD.cs:
Seems the spectests want Sc to mean :gc<Sc>, requiring Script written out in full
ecza: b6f0531 | sorear++ | t/spectest.data:
We run S05-mass/properties-general.t
sorear niecza: say (12198+377+44+361+584)/18418 # 584 more passing spectests
p6eval niecza v12-138-g20a19dd: OUTPUT«0.73645346943207735␤»
masak [Coke]: re pasting with a bot: what if there was a bot who listened people's gist feeds, and gists marked up in some trivial way were reported to the channel. people would have to "register" their github accounts with the bot for it to listen to them. 06:48
I think that could be quite nice.
masak [backlog] Things I Did Not Expect, #518: a US politics blog does a riff on one of Perl 6's operators, and links to the Perl 6 Advent calendar. o.O 06:59
dalek ecza: 7450fe2 | sorear++ | lib/UCD.cs:
Add ANY, ASCII, ASSIGNED properties
07:03
dalek ecza: 2f49fa3 | sorear++ | / (2 files):
Add :InFoo block shortcuts
07:25
sorear 670 more!
dalek ast: 1f2c5a3 | sorear++ | S05-mass/properties-block.t:
[S05-mass/properties-block] Unfudge for niecza
masak woo! 07:26
sorear niecza: say (12198+377+44+361+584+670)/18418
p6eval niecza v12-143-g7450fe2: OUTPUT«0.77283092626778149␤»
sorear will retire for the night now.
masak sorear: sleep well. 07:29
masak hops on a train & 07:30
donri perl6: say ?:!foo 08:53
p6eval rakudo dfd1d7, niecza v12-144-g2f49fa3: OUTPUT«Bool::True␤»
..pugs b927740: OUTPUT«1␤»
donri this can't possibly be right? 08:54
perl6: say :!foo.value
p6eval pugs b927740: OUTPUT«pugs: Named argument found where no matched parameter expected: (foo,Val (VBool False))␤»
..rakudo dfd1d7, niecza v12-144-g2f49fa3: OUTPUT«Bool::False␤»
donri perl6: say "hi" if :!foo 08:57
p6eval pugs b927740, rakudo dfd1d7, niecza v12-144-g2f49fa3: OUTPUT«hi␤»
dalek nda: 87743c0 | tadzik++ | lib/Panda/Ecosystem.pm:
Fix a typo. Fixes compilation issues on new Rakudo
09:07
dalek nda: ebafa5b | tadzik++ | / (2 files):
Don't compile precompile modules for now. Causes more harm than good
09:22
tadzik Perl 5 has Module::XS. How would you name a Perl 6 module using NCI? 09:42
phenny tadzik: 04:21Z <moritz> tell tadzik the failure in Panda is easy to fix "class Pand::Ecosystem is Pies::Ecosystem" should have s/is/does/. Otherwise it tries to pun a class from the role, and fails because methods are stubbed
tadzik: 04:22Z <moritz> tell tadzik I can push the fix if you give me a commit bit :-)
tadzik perl6: (:foo).perl.say 09:43
p6eval rakudo dfd1d7, niecza v12-144-g2f49fa3: OUTPUT«"foo" => Bool::True␤»
..pugs b927740: OUTPUT«("foo" => Bool::True)␤»
tadzik donri: ^
perl6: (:!foo).perl.say
p6eval rakudo dfd1d7, niecza v12-144-g2f49fa3: OUTPUT«"foo" => Bool::False␤»
..pugs b927740: OUTPUT«("foo" => Bool::False)␤»
tadzik perl6: (:!foo).value.perl.say 09:44
p6eval pugs b927740: OUTPUT«\Bool::False␤»
..rakudo dfd1d7, niecza v12-144-g2f49fa3: OUTPUT«Bool::False␤»
fsergot hi o/ 10:37
masak \o hi
(from a train!)
kshannon niecza: sub infix:<foo> ($a, $b = ($a foo 3 * 4)) is tighter(&infix:<*>) { ($a + $b) / 2 }; say infix:<foo>(1); say 1 foo (1 foo 3 * 4); say 1 foo (1 foo (3 * 4)); 10:57
p6eval niecza v12-144-g2f49fa3: OUTPUT«3.75␤4.5␤3.75␤»
kshannon installed into the grammar before the signature, and then precedence fixed up later after the default is parsed... 10:58
admittedly an edge case that should never occur naturally. 11:01
kshannon Ok, again but this time cover using the operator in the definition body: 11:19
niecza: sub infix:<foo> ($a, $b = ($a foo 2 * 3 - $a)) is tighter(&infix:<*>) { $a == 0 ?? 1 foo 2 * 3 !! $a + $b }; say infix:<foo>(1); say 1 foo 2 * 3; say 1 foo (2 * 3); say (1 foo 2) * 3; say 0 foo 0;
p6eval niecza v12-144-g2f49fa3: OUTPUT«7␤9␤7␤9␤9␤»
moritz
.oO( use parenthesis! )
11:29
perl 6 has the iron rule of never reparsing source code
I don't think we will bend it for such a case
donri tadzik: i know, but certainly the .Bool of a Pair is more intuitively the .value.Bool? 11:42
especially considering the :! syntax 11:43
i guess it's primarily used in ways where you get the .value anyway, rarely the Pair itself 11:44
tadzik donri: maybe 12:54
ghjk465 hi 13:19
moritz nom: say (:foo, :!foo)>>.Bool 14:02
p6eval nom dfd1d7: OUTPUT«Bool::True Bool::True␤»
colomon is .bytes really supposed to be implementation independent? 14:24
colomon I asked because S32-str/length.t has a bunch of tests for .bytes, and niecza fails almost all of them. 14:26
looking at the spec, I don't get the impression these tests are correct
moritz I don't think .bytes makes sense on a Str at all 14:27
more on a Buf
colomon it's definitely spec
our Int multi method bytes ( Str $string: $enc = $?ENC, :$nf = $?NF) is export
Returns the number of bytes in the string if it were encoded in the specified way.
moritz yes, I know it's spec 14:28
colomon but all the tests are using the default encodings.
moritz but... I don't see the reason for .bytes at all
colomon I think it makes sense -- maybe you need to know how much storage is being taken up.
but I'd think it would be used very infrequently 14:29
moritz colomon: but that's not what .bytes returns
colomon: it returns what storage would be taken up if the Str was encoded in a certain normal form and character encoding
colomon oh. 14:30
moritz but I can't think of any use case where you need to know that, but not need the buffer with that representation
colomon so it's actually telling you how big the equivalent Buf would be.
moritz ... in which case you'd just get the Buf straigt away, and ask *that* for the number of bytes
colomon: correct
kshannon So to get user defined precedence in Rakudo I'm thinking we'll need something like function_O from github.com/sorear/niecza/blob/mast...endSTD.pm6 in Perl6::Grammar and then fiddle with gen_op to call it rather than use the pre-calculated %prec.
I mean build the PAST to call it; not call it directly from gen_op. 14:31
colomon moritz: got to agree, that sounds like at best it has a very very very limited use
moritz kshannon: that sounds roughly sane, but I don't really know much of the operator overloading code 14:32
colomon back off to the insanity of last minute Christmas shopping... 14:34
kshannon We'll also need to implement the appropriate traits to save the information in the routine for the function_O to be able to find later.
The more I look at the more I think I'm biting off more than I can chew for a first patch... :) 14:36
Util Does any Perl 6 implementation currently support FIRST blocks? 14:52
moritz kshannon: have you been reading the advent calendar?
perl6: for 1, 2, 3 { FIRST { .say } }
p6eval rakudo dfd1d7: OUTPUT«===SORRY!===␤FIRST phaser not yet implemented at line 1, near " }"␤»
..niecza v12-144-g2f49fa3: OUTPUT«===SORRY!===␤␤Action method statement_prefix:FIRST not yet implemented at /tmp/BhNQXNbsQJ line 1:␤------> for 1, 2, 3 { FIRST { .say }⏏ }␤␤Unhandled exception: Unable to resolve method statement_level in class Str␤ a…
..pugs b927740: OUTPUT«␤»
moritz Util: looks like "no"
Util moritz: thanks! 14:53
kshannon moritz: Yes :) 15:14
moritz kshannon: good to see it's inspiring 15:29
sorear good * #perl6 15:42
sorear hello kshannon 15:45
rakudo: 2 @ 3
p6eval rakudo dfd1d7: OUTPUT«===SORRY!===␤Confused at line 1, near "2 @ 3"␤»
sorear rakudo: { my sub infix:<@>($x,$y) { $x * $y } }; 2 @ 3
p6eval rakudo dfd1d7: OUTPUT«===SORRY!===␤CHECK FAILED:␤Undefined routine '&infix:<@>' called (line 1)␤»
moritz ENOTLEXICALENOUGH 15:49
colomon sorear: did you see moritz++ and my discussion about .bytes? 15:54
sorear colomon: yes 15:56
colomon opinion? 15:57
sorear I, too, have never seen a use case for it
colomon even if there is a use case, does it make any sense to test it against a default number of bytes? that seems very implementation-dependent to me. (ie regardless of whether .bytes deserves to be whacked, are the tests wrong?_ 15:58
)
sorear colomon: If there is a standard default encoding (perhaps utf8/NFC), then the tests aren't "wrong" 16:01
however I doubt that much is actually spelled out in the spec
moritz I think the implicit assumption is that UTF-8 and some composed normal form are the default
but I'm not sure I've seen it in the spec either 16:02
colomon the definition references $?ENC and $?NF. Are those specified somewhere? 16:03
moritz nope, doesn't seem like (from a quick ack) 16:08
colomon okay, I'm taking those tests out of roast 16:13
dalek ast: c266519 | (Solomon Foster)++ | S32-str/length.t:
Remove the .bytes tests on the theory they are misguided and method itself
16:21
ecs: e52fc11 | util++ | S28-special-names.pod:
Fix typo. $*ARGFILES is plural in all but one instance.
16:22
colomon we landed properties-block.t, properties-general.t, and properties-script.t?! \o/ 16:42
sorear colomon: yes 16:43
colomon that's like 1000 tests, isn't it?
sorear -derived eluded me though.
niecza: say 361+584+670
p6eval niecza v12-144-g2f49fa3: OUTPUT«1615␤»
colomon \o/
you turned on named-chars.t too, eh? 16:44
with no fudging at all?!? \o/ 16:45
colomon sorear++ sorear++ sorear++ 16:47
moritz nom: my %a = ('a'.. 'c') X=> 'foo'; say %h.perl; 17:00
p6eval nom dfd1d7: OUTPUT«===SORRY!===␤Variable %h is not predeclared at line 1, near ".perl;"␤»
moritz nom: my %a = ('a'.. 'c') X=> 'foo'; say %a.perl;
p6eval nom dfd1d7: OUTPUT«("a" => "foo", "b" => "foo", "c" => "foo").hash␤»
moritz nom: my %a = ('a'.. 'c') X=> [1, 0]
p6eval nom dfd1d7: ( no output )
moritz nom: my %a = ('a'.. 'c') X=> [1, 0]; say %h.perl;
p6eval nom dfd1d7: OUTPUT«===SORRY!===␤Variable %h is not predeclared at line 1, near ".perl;"␤»
moritz nom: my %a = ('a'.. 'c') X=> [1, 0]; say %a.perl; 17:01
p6eval nom dfd1d7: OUTPUT«("a" => 0, "b" => 0, "c" => 0).hash␤»
moritz erm 17:02
that... shouldn't flatten
colomon nom: say "hello".bytes 17:06
p6eval nom dfd1d7: OUTPUT«5␤»
tadzik nom: say "żółw".bytes 17:12
p6eval nom dfd1d7: OUTPUT«7␤»
dalek ast: 0188367 | (Solomon Foster)++ | S05-mass/properties-derived.t:
Fudge for niecza.
17:33
dalek ecza: 24cbe92 | (Solomon Foster)++ | t/spectest.data:
Turn on S32-str/length.t.
17:42
ecza: a9455a3 | (Solomon Foster)++ | t/spectest.data:
Turn on S05-mass/properties-derived.t.
sorear ponders what direction next 17:43
dalek ast: 4d42452 | (Solomon Foster)++ | S05-mass/rx.t:
Unfudge passing tests.
17:45
colomon sorear: are grammar actions working yet? 17:49
sorear you mean like the stuff in NieczaActions.pm6? 17:54
colomon sorear: yes, and I take it that means the answer to my question is yes. 17:57
:)
"is export"? 17:59
roles, of course, I'm assuming you'll do when you're ready 18:00
sorear colomon: subs and classes only (see Test.pm6)
yeah... don't want to start on roles this close to the 26th 18:01
colomon it's actually a hard question ("what direction next?") because frankly, pretty much everything I've tried to do in Niecza lately has worked. :)
sorear is trying to see how Rakudo does :D currently
sorear rakudo: multi foo(Any:D $x) { "A" }; multi foo(Any $x) { "B" }; say foo(5) 18:05
p6eval rakudo dfd1d7: OUTPUT«Ambiguous dispatch to multi 'foo'. Ambiguous candidates had signatures:␤:(Any $x)␤:(Any $x)␤␤ in block <anon> at /tmp/_WbwFwt3QU:1␤ in <anon> at /tmp/_WbwFwt3QU:1␤»
sorear nom: say Mu.pred 18:14
p6eval nom dfd1d7: OUTPUT«Method 'pred' not found for invocant of class 'Mu'␤ in block <anon> at /tmp/waVerNGo86:1␤ in <anon> at /tmp/waVerNGo86:1␤»
sorear nom: say Mu.succ
p6eval nom dfd1d7: OUTPUT«Method 'succ' not found for invocant of class 'Mu'␤ in block <anon> at /tmp/CGCD0rBhb1:1␤ in <anon> at /tmp/CGCD0rBhb1:1␤»
[Coke] masak: (gist pasting) excellent plan. 18:16
sorear++ #even more stuff done, wow. 18:19
colomon [Coke]: new target is 75% ;) 18:20
sorear colomon: no, that can't be our new target. 18:35
niecza: say (12198+377+44+361+584+670)/18418
p6eval niecza v12-146-ga9455a3: OUTPUT«0.77283092626778149␤»
colomon dang it, I wasn't quite optimistic enough! 18:37
sorear niecza: say (18418 * 0.8).Int - (12198+377+44+361+584+670) 18:38
p6eval niecza v12-146-ga9455a3: OUTPUT«500␤»
sorear that should be a nice managable number ;) 18:39
colomon 80% by Boxing Day? 18:46
niecza: say 16797 / 18418
p6eval niecza v12-146-ga9455a3: OUTPUT«0.91198827234227386␤»
sorear wonders why github is giving a "Fork" button for sorear/niecza
What's 16767?
colomon total tests reported in a spectest run locally 18:47
but that's counting skipped and todo'd.
sorear coke's been using test_summary.pl 18:48
any new failure?
s
colomon no new failures that I know of, but definitely some new skips & todos 18:50
colomon is trying to figure out how to run test_summary against niecza 18:50
...and it's off!
moritz perl t/spec/test_sumamry niecza # I think 18:51
hm, that requires a './perl6'
which you can create as a shell script 18:52
colomon yeah, I hacked it to use mono run/Niecza.exe instead
colomon has two different perl6s installed on his system
woah, test_summary is slow compared to TEST_JOBS=4 make spectest 18:58
[Coke] yah, it's single threaded. :(
sorear o/ [Coke] 18:59
dalek ecza: 3db221f | coke++ | t/spectest.data:
run more tests
colomon hey, no fair obsoleting my counting run before it's finished! ;) 19:01
14509 pass 19:02
moritz that's what we'd call a "luxury problem" in German :-)
colomon niecza: say 14509 / 18418
p6eval niecza v12-146-ga9455a3: OUTPUT«0.78776197198392872␤»
colomon huh. so why 305 fails with test_summary, and none with make spectest? 19:03
[Coke] colomon: huh. good question. 19:05
7 more passes with those 2 files. 19:06
colomon test_summary printed a couple of screens of messages like this:
S03-operators/arith.niecza aborted 46 test(s)
[Coke] O_o
colomon if I run it with fudgeandrun, it's perfect 19:07
[Coke] wonder if fudgeandrun is doing something different than "fudge, and run"
colomon the fudging is the same 19:08
[Coke] colomon: gist.github.com/1515097
colomon [Coke]: what's that/ 19:09
?
moritz hm, maybe test_summary doesn't like tests without a description?
but then it would show the same troubles with rakudo...
[Coke] another helper script from rakudo.
fudged to run against niecza.
colomon moritz: overflow.t (which is what I'm currently looking at) has a description
[Coke] colomon: I grabbed the 2 that were passing unfudged and just added them. but there are others like t/spec/S04-phasers/begin.t that look like they could be fudged. (already passing 6/9) 19:11
slightly higher fruit.
colomon [Coke]++
[Coke] looking at anyhash-0t 19:12
huh. already fudged, even. 19:13
split-simple.t... 19:14
colomon I think I've got it. it looks like test_summary is counting tests that have no description as failures 19:17
yup, that's the problem 19:18
gist.github.com/1515122 19:19
[Coke] ah, good catch. 19:21
niecza: ''.split('')
p6eval niecza v12-147-g3db221f: ( no output )
[Coke] niecza: say (''.split('')).perl
p6eval niecza v12-147-g3db221f: OUTPUT«["", ""].list␤»
[Coke] niecza: say +(''.split(''))
p6eval niecza v12-147-g3db221f: OUTPUT«2␤»
colomon I'm rerunning now with my patch 19:22
[Coke] nom: say +(''.split(''))
p6eval nom dfd1d7: OUTPUT«use of uninitialized value of type Nil in numeric context␤0␤»
[Coke] niecza: 'theXbigXbang'.split(/X/, -1) 19:23
p6eval niecza v12-147-g3db221f: ( no output )
[Coke] niecza: 'theXbigXbang'.split(/X/, -1).say
p6eval niecza v12-147-g3db221f: OUTPUT«theXbigXbang␤»
moritz nom: say 'theXbigXbang'.split(/X/, -1).perl 19:26
p6eval nom dfd1d7: OUTPUT«().list␤»
colomon niecza: say 14814 / 18418 19:36
p6eval niecza v12-147-g3db221f: OUTPUT«0.80432185905092846␤»
sorear 80% wah?
colomon already, yup 19:37
tadzik outstanding
sorear the stuff Rakudo does better needs more tests. ;)
colomon test_summary was shortchanging us by 300-something
sorear why wasn't it shortchanging rakudo?
colomon of course, it might be shortchanging Rakudo too
[Coke]: was test_summary also showing failures for Rakudo? 19:39
moritz wonders why it's so hard to count :-) 19:41
sorear niecza: say "\c[0x3BB]" 19:44
p6eval niecza v12-147-g3db221f: OUTPUT«λ␤»
moritz fwiw new Test::Harness versions do count the number of skipped tests 19:46
it's just not printed by default
dalek ast: 5ee36f4 | (Solomon Foster)++ | test_summary:
Tests which have no description still have passed, honest.
moritz see search.cpan.org/~andya/Test-Harness...E_\*FH_%29
[Coke] colomon: yes, 28 failures for rakudo. 19:49
colomon: gist.github.com/1476841
moritz: is there an env var to print it? 19:50
moritz [Coke]: nope, it seems I need to hack t/harness (in rakudo at least) to use it
[Coke] so that's about another 250 in our favor. ;)
moritz: so we still need test_summary for now. 19:51
moritz [Coke]: aye
dalek kudo/nom: eb6c4be | moritz++ | lib/Test.pm:
[Test.pm] fix stupid thinko, moritz--
19:57
ast: 900ce61 | (Solomon Foster)++ | integration/99problems-31-to-40.t:
Fudge for niecza.
20:07
sorear moritz: it would be cool if we had an implementation-shared t/harness 20:08
niecza's is quite different and doesn't support muddle 20:09
I'd like to kill it
dalek ecza: 5dd7927 | (Solomon Foster)++ | t/spectest.data:
Turn on integration/99problems-31-to-40.t.
sorear colomon: a lot of these properties-derived fudges "icu" are quite silly 20:11
colomon the tests themselves, you mean? 20:12
sorear 9FC4 is immediately after the end of the ideographs block in 5.1
new ideographs are coined continuously, and occasionally they have to be encoded
sorear I'd like some stern words with whoever decided to test that the Chinese would stop being Chinese 20:12
moritz muddle? 20:15
sorear moritz: [Coke]'s WIP replacement for smolder
he wants to see niecza/rakudo spectests on it, too
moritz sorear: does rakudo's harness lack any features that niecza needs? 20:16
besides calling a different executable, that is :-) 20:17
sorear moritz: ability to check out/update the spectests 20:18
(I factored this a smidge differently from Rakudo, which does it in the Makefile)
moritz sorear: well, checking out the spectests can't be done from inside a shared harness in t/spec/, that's for sure :-)
sorear hah! 20:19
moritz doing it rakudo's way has a certain advantage: if you do a parallel make, the git pull can happen while the compiler builds 20:20
colomon do we have an Advent post for today? 20:28
moritz Util++ does, iirc 20:28
sorear #p5p is quite infuriating at times 20:40
dalek ast: d03f6cc | (Solomon Foster)++ | integration/lazy-bentley-generator.t:
Add forgotten plan.
ecza: 0776e11 | (Solomon Foster)++ | lib/CORE.setting:
Add simple implementation of trim methods and subs.
20:41
ecza: e1a40ee | (Solomon Foster)++ | t/spectest.data:
Turn on S32-str/trim.t.
ecza: 2bf9d26 | (Solomon Foster)++ | t/spectest.data:
Turn on integration/advent2009-day17.t.
colomon That's another 100 or so passing tests.
colomon nom: say (1, 1, 2, 3, 4, 4).grep({ $^a == $^b }).perl 20:52
p6eval nom eb6c4b: OUTPUT«Not enough positional parameters passed; got 1 but expected 2␤ in block <anon> at /tmp/g2O9tsIcuN:1␤ in method ACCEPTS at src/gen/CORE.setting:1290␤ in method reify at src/gen/CORE.setting:4352␤ in method reify at src/gen/CORE.setting:4257␤ in method gimme at src…
colomon pugs: say (1, 1, 2, 3, 4, 4).grep({ $^a == $^b }).perl 20:53
p6eval pugs b927740: OUTPUT«()␤»
colomon frowns deeply at grep.t 20:57
Util I am still writing my Advent post (Idiomatic Perl 6), finishing up in the next hour. 20:58
I would greatly appreciate any reviews of the almost-complete work:
colomon Util++
Util perlcabal.org/~util/Advent/
moritz Util: that's rather nice 21:01
Util: I jsut think that you should mark p5 and p6 separately in the code samples
Util: some people tend to gloss over the text, and miss the description of what is p5 and what is p6
moritz as it is, it will add confusion 21:02
colomon Util: say 0+@array; appears twice
moritz also the uniq examples are a bit weird, because they use return() outside of any subroutine 21:06
would be better to just assign to my @uniq or so
Util colomon: yes, it is identical in P5 and P6. I thought about suppressing that case, but have not (yet?) 21:07
colomon ah
moritz and @starts_with_number = grep { /^\d/ }, @a; 21:08
would be idiomatically written as just
grep /^\d/, @a
both in p5 and p6
Util moritz: I thought grep was block-only in P6, unless you use the * trick to generate the block. 21:09
Util moritz: Thanks, I am adding a `#` seperator between P5/P6 sections. 21:12
dalek ecza: 7596452 | sorear++ | lib/UCD.cs:
Allow access to Script_Extensions/scx
21:23
ecza: 7139c15 | sorear++ | docs/TODO.UTS18:
Add a TODO file for UTS18 conformance items
sorear niecza: say "2 + 2".words 21:50
p6eval niecza v12-151-g2bf9d26: OUTPUT«2 + 2␤»
sorear perl6: say "2 + 2".words.perl
p6eval niecza v12-151-g2bf9d26: OUTPUT«["2", "+", "2"].list␤»
..rakudo eb6c4b: OUTPUT«("2", "+", "2").list␤»
..pugs b927740: OUTPUT«*** No such method in class Str: "&words"␤ at /tmp/5Aw1t166AL line 1, column 5 - line 2, column 1␤»
sorear Util: $*ARGFILES, not @*ARGFILES 21:52
sorear Util: @array .= rotate; is not the same as @array.push: @array.shift 21:54
Util: the former involves re-assigning all elements, so it 1. is much slower 2. will do interesting things with a list of aliases 21:55
Util sorear: thanks for catching the @* 21:57
re: the rotate, S32-Containers says: A positive rotation of 1 is defined as: @array.push(@array.shift); 21:58
sorear oh, then I suspect you may be misusing .= 22:00
or something is inconsistent
Util Is the "re-assigning all elements" just the behavior of a current implementation?
sorear rakudo: my @foo = 1,2,3,4,5; @foo.rotate; say @foo
p6eval rakudo eb6c4b: OUTPUT«1 2 3 4 5␤»
sorear rakudo: my @foo = 1,2,3,4,5; @foo.push: @foo.shift; say @foo
p6eval rakudo eb6c4b: OUTPUT«2 3 4 5 1␤»
sorear look, not the smae
Util: no, it's what .= does 22:01
.= is a compound assignment operator; it does not work in place as people like to pretend
Util I am writing about Perl 6 as specced, even if we are currently doing it wrong in an implementation.
Hmmm. "compound assignment operator". Thinking... 22:02
sorear: From the spec: 22:03
@a.=rotate # @a is rotated in place
and it works: 22:06
rakudo: my @foo = 1,2,3,4,5; @foo.=rotate; say @foo
p6eval rakudo eb6c4b: OUTPUT«2 3 4 5 1␤» 22:07
sorear I suspect whoever wrote that was using an unusual definition of "in place" 22:09
@a.=rotate means @a = @a.rotate
japhb Util: There is nothing in your example that indicates it actually happened in place, rather than the rotated values being assigned back into @foo.
Util japhb: True, my example does not provide evidence of that, one way or the other. 22:15
I look to the spec, since that exact part was authored by Larry. 22:16
git show b4f39b3a
[Containers] define .rotate more like a PDL slice, rely on other ops for exact semantics
japhb Util, sure, no argument there -- I was merely responding to your "and it works:" comment. :-)
Util japhb: Oh, I see. My "and it works" was in reply to sorear's earlier p6eval, where = was used instead of .= 22:18
Util Last section completed, and article published: 23:20
perl6advent.wordpress.com/2011/12/2...ic-perl-6/
colomon Util++ 23:26
japhb Util: In section "Idiom 5 ==> Idiom 6", for example "Swap two variables", I think the '#' marker between Perl 5 and Perl 6 is one line too far down. 23:34
lue Util++ Great post, feels like just a couple steps short of a "Perl 6 Idioms" pamphlet :) 23:39
[Now time to write my advent post]
Util japhb: fixed, Thanks! 23:40
japhb No problem. And I should of course say a big Util++, because that was a truly excellent post. 23:41
sorear Util++ 23:47
tadzik Util: in Swap Variables, did # go too far? 23:51
great post, Util++ 23:54