»ö« 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.
masak felliott: oh! there's one thing I should tell you about that room. 00:00
felliott I just tried x butterfly and got a crash.
masak good to know; will fix by tomorrow.
felliott: the sign in the chamber, once the descriptions are there, will read "LEAVE". one letter will appear to be erased after that word. 00:01
felliott Intriguing!
masak ;)
I'll say. I should really be asleep, but suddenly I have a user! 00:02
masak oh well. better sleep a bit. :) 00:04
'night, #perl6.
felliott night masak!
btw, it's fun! 00:05
masak felliott++ # testing
felliott v. nicely done
masak++ # making
masak thanks :)
awwaiid perl6: "0b1010" + 1 00:07
p6eval pugs, rakudo 1ddda5: ( no output )
..niecza v7-35-g4fc3649: OUTPUT«Unhandled exception: System.FormatException: Unknown char: b␤ at System.Double.Parse (System.String s, NumberStyles style, IFormatProvider provider) [0x00000] in <filename unknown>:0 ␤ at System.Double.Parse (System.String s, IFormatProvider provider) [0x…
sorear evalbot rebuild niecza 00:08
p6eval OK (started asyncronously)
awwaiid perl6: say "0b1010" + 1
p6eval pugs, rakudo 1ddda5: OUTPUT«11␤»
..niecza v7-35-g4fc3649: OUTPUT«Rebuild in progress␤»
awwaiid no rakudo?
TimToady it's there, it's just agreeing with pugs 00:12
awwaiid ah! 00:14
very good. So the fact that the nom branch results in '6' instead of '11' really is bad then 00:15
sorear no, really is good 00:15
awwaiid even better 00:16
what does it mean?
sorear actually I think the correct answer is 10
0b1010 is 8+2
oh, "+1"
awwaiid this is from t/00-parrot/01-literals.t output, btw.
sorear nom is broken
awwaiid great! so me poking at it isn't a waste of time 00:17
TimToady nom: say "0b1010" + 1 00:19
p6eval nom: OUTPUT«6␤»
TimToady nom: say 0b1010 + 1
p6eval nom: OUTPUT«11␤»
awwaiid hmm
TimToady nom: say :2<1010> + 1
p6eval nom: OUTPUT«11␤»
awwaiid nom: say "0b1010" + 1
p6eval nom: OUTPUT«6␤»
TimToady nom: say ':2<1010>' + 1
p6eval nom: OUTPUT«No applicable candidates found to dispatch to for 'Numeric'. Available candidates are:␤:(Mu, Mu %_)␤␤current instr.: 'Numeric' pc 451264 (src/gen/CORE.setting.pir:0) (src/gen/CORE.setting:332)␤»
TimToady nom: say '10' + 1 00:20
p6eval nom: OUTPUT«2␤»
TimToady um
awwaiid hah
TimToady wha?
nom: say '20' + 1 00:21
p6eval nom: OUTPUT«3␤»
TimToady nom: say '200' + 1
p6eval nom: OUTPUT«3␤»
TimToady nom: say '222222222222222222222222222222222222222222222222' + 1 00:22
p6eval nom: OUTPUT«2.22222222222222e+47␤»
TimToady o_O
awwaiid zero terminated numbers? 00:23
TimToady nom: say '201' + 1
p6eval nom: OUTPUT«202␤»
TimToady yeah
awwaiid nom: say '230' + 1
p6eval nom: OUTPUT«24␤»
awwaiid fancy
TimToady nom: say ?'0' 00:24
p6eval nom: OUTPUT«Bool::False␤»
awwaiid nom: say "10230" + 1 00:25
p6eval nom: OUTPUT«1024␤»
[particle] the 0's look like cookies 00:36
flussence pokes at the code 00:37
there's a flag to ignore trailing zeros (for decimals), but it shouldn't be set ever if there's no '.' in the string 00:38
awwaiid where lives this code of which you speak? 00:40
flussence rakudo/src/core/Str.pm:117, nqp/src/ops/nqp.ops:1269 00:41
pmichaud back again 00:42
pmichaud yes, looks like nom is broken somewhere. looking. 00:45
awwaiid I was about to ask what language is nqp/src/ops/nqp.ops -- then it suddenly came into focus! 00:49
pmichaud yes, it's a bug in the radix converter. located the bug, testing fix. 00:50
looks like C operator precedence strikes again :-/ 00:51
awwaiid the amount of polyglot knowledge necessary to navigate this codebase is... interesting. 00:52
dalek p: 46693c7 | pmichaud++ | src/ops/nqp.ops:
Fix bug arising from C operator precedence thinko.
00:53
[Coke] awwaiid: ramen. 00:54
[Coke] wonders if anyone in #perl6 is near london.
awwaiid ramen? the soup?
pmichaud Google says I'm about 275 mi away. 00:55
Unless, of course, you meant the other London. :)
awwaiid pmichaud -- now that you've updated that, what is the least that I need to do to tell my rakudo build to use your change? 00:56
(I don't know what step updates the nqp/ dir)
[Coke] awwaiid: en.wikipedia.org/wiki/Flying_Spaghetti_Monster 00:57
awwaiid ah, Coke++ 00:58
dalek kudo/nom: 196eb09 | pmichaud++ | tools/build/NQP_REVISION:
Bump NQP_REVISION to get radix fix.
01:02
pmichaud awwaiid: git pull the latest rakudo, it'll automatically update your nqp :) 01:03
s/rakudo/nom/
awwaiid cheater 01:05
(thanks) 01:06
pmichaud is_approx "20." / "5.", 4; 01:30
What should I do with this test? remove it?
pmichaud std: say 20. / 5. 01:31
p6eval std 516268a: OUTPUT«===SORRY!===␤Decimal point must be followed by digit at /tmp/c8VFcnrm1r line 1:␤------> say 20.⏏ / 5.␤Unsupported use of . to concatenate strings; in Perl 6 please use ~ at /tmp/c8VFcnrm1r line 1:␤------> say 20. ⏏/…
pmichaud std: say 20e 01:32
p6eval std 516268a: OUTPUT«===SORRY!===␤Whitespace is required between alphanumeric tokens at /tmp/Dq842Fgs5B line 1:␤------> say 20⏏e␤Two terms in a row at /tmp/Dq842Fgs5B line 1:␤------> say 20⏏e␤ expecting any of:␤ POST␤ bracketed i…
pmichaud std: say 20.0e
p6eval std 516268a: OUTPUT«===SORRY!===␤Whitespace is required between alphanumeric tokens at /tmp/TBlM8heZ5q line 1:␤------> say 20.0⏏e␤Two terms in a row at /tmp/TBlM8heZ5q line 1:␤------> say 20.0⏏e␤ expecting any of:␤ POST␤ bracket…
flussence rakudo: say e 01:32
p6eval rakudo 1ddda5: OUTPUT«2.71828182845905␤»
flussence hm... 01:33
std: sub postfix:<e>($n) { $n * e }; say 20e
p6eval std 516268a: OUTPUT«ok 00:01 127m␤»
pmichaud that might interfere with 20e0
I was curious what error message would be generated if someone included the 'e' but forgot the exponent :) 01:34
TimToady std: sub postfix:<e>($n) { $n * e }; say 20e10 01:41
p6eval std 516268a: OUTPUT«ok 00:01 127m␤»
pmichaud what should the result be of something like "xyz" == 3 ?
TimToady failure of some sort, I'd think 01:42
TimToady or maybe we should just say that's NaN == 3 01:42
pmichaud so, looks like we're at the point where we have to get all of the operators to propagate failure operands.
oh, I could have "xyz".Numeric return NaN instead of Failure, I suppose. 01:43
TimToady or by the other rules, as soon as you use it in ==, it throws
pmichaud well, the problem I'm having is a lot ot throwing where strings are being tested against infinity using ==
so where Rakudo used to treat "xyz".Numeric as 0, it now comes back with a failure and things blow up 01:46
s/blow up/get thrown/
like coffee mugs at a perl conference
TimToady a warning on loss of info when Failure converts to NaN maybe
pmichaud so, Failure.Numeric converts to NaN and warns... I could handle that 01:47
well, I still need to remove the tests for infinity
or come up with better tests :-)
maybe Inf.ACCEPTS(...) 01:48
are there any cases where $concrete.ACCEPTS(Abstract) is likely to be true? 01:52
I think I'll temporarily go back to defaulting to zero until I can think through this a bit more. 02:00
pmichaud maybe go over it again at yapc::eu, if not before then. 02:00
oh, first I'll try the NaN+warn option 02:01
oh, that looks icky also. 02:02
pmichaud punts to yapc::eu or later #perl6 discussion.
felliott nom: for 0,1 { say "moo"; sub hello() {}; } 02:11
p6eval nom: OUTPUT«Too many positional parameters passed; got 1 but expected 0␤current instr.: '_block1010' pc 419 ((file unknown):281) (/tmp/s5NpUhb0Hz:1)␤»
felliott nom: for 0,1 -> $a { say "moo"; sub hello() {}; } 02:12
p6eval nom: OUTPUT«moo␤moo␤»
pmichaud I'm guessing that the sub is somehow messing up the signature of the outer block.
might be a misplaced contextual somewhere (PerlJam++)
nom: for 0,1 -> $a { say 'moo'; sub hello($x) {}; } 02:13
felliott not sure if it's relevant, but the second one generates about 30 more lines of pir than the first.
p6eval nom: OUTPUT«moo␤moo␤»
pmichaud nom: for 0,1 { say 'moo'; sub hello($x) {}; }
felliott Otherwise, they're almost line-for-line identical
p6eval nom: OUTPUT«Too many positional parameters passed; got 1 but expected 0␤current instr.: '_block1010' pc 419 ((file unknown):601) (/tmp/Q3DRNSj9C1:1)␤»
pmichaud well, yes, the second one has more to do/check.
I don't know if it's worth 30 lines of pir of difference, but it could easily be that way. 02:14
dalek p: dad45a0 | pmichaud++ | src/ops/nqp.ops:
Fix off-by-one error in radix conversion.
02:27
pmichaud nom: say (2.Rat - 1.Rat).WHAT 02:37
p6eval nom: OUTPUT«Rat()␤»
dalek ast: 7e7c061 | pmichaud++ | S32-num/int.t:
Update spectest for Str.Numeric conversion.
04:04
pmichaud std: say 5. 04:07
p6eval std 516268a: OUTPUT«===SORRY!===␤Decimal point must be followed by digit at /tmp/e9Abxck8td line 1:␤------> say 5.⏏<EOL>␤Unsupported use of . to concatenate strings; in Perl 6 please use ~ at /tmp/e9Abxck8td line 1 (EOF):␤------> say 5.⏏[3…
dalek kudo/nom: 6b3b601 | pmichaud++ | src/core/operators.pm:
Fix regression introduced in ef31cef. According to S03-sequence/basic.t,

denominators are 1. Instead of narrowing values, narrow the geometric factor whenever its denominator is 1.
04:23
kudo/nom: 90a61f8 | pmichaud++ | src/core/Cool.pm:
Fix some bugs in .rindex method.
kudo/nom: 3923684 | pmichaud++ | / (2 files):
More Str.Numeric fixes and improvements.

Although converting a string with no number is supposed to fail, doing so causes all sorts of issues throughout the spectests with no clear-cut solutions. Therefore I'm fixing the conversion to treat non-numbers as integer zero for now, until we can regroup and figure out how we want to handle the failure cases.
Note that any non-whitespace characters following a valid number or partial number still results in a failure, though.
moritz good morning 05:18
perlhack how long popular perl6 ? 05:33
:-)
moritz this question no verb 05:34
sorear adjectives are NOT considered verbs in English
you need a copula in there 05:35
it's not clear whether you're talking about the past or the future, too
PerlJam perlhack: now. forever. 05:36
dalek ast: 737dfa2 | moritz++ | S03-sequence/basic.t:
unfudge a series test for rakudo that tadzik++ made pass
perlhack thanks for moritz and sorear.
moritz nom: for <100 0d10 0xa0.f 2+3i> { say +$_, ' ', (+$_).WHAT } 05:37
p6eval nom: OUTPUT«100 Int()␤10 Int()␤trailing characters after number in conversion␤current instr.: 'rethrow' pc 500134 (src/gen/CORE.setting.pir:140359) (src/gen/CORE.setting:3916)␤»
moritz nom: for <100 0d10 0xa0.f 2+3i> { try { say +$_, ' ', (+$_).WHAT } }
p6eval nom: OUTPUT«100 Int()␤10 Int()␤»
pmichaud Str.Numeric doesn't do complex values yet 05:38
is 0xa0.f legal?
moritz std: 0xa0.f 05:38
p6eval std 516268a: OUTPUT«ok 00:01 118m␤»
moritz hm, could be a method call
I don't think it's a legal literal 05:39
:16<a0.f> would be
nom: say ':16<a0.f>'.Numeric
p6eval nom: OUTPUT«0␤»
pmichaud thus far I've decided that :16<...> can be a fallback to the compiler
moritz nom: say '4/5'.Numeric
p6eval nom: OUTPUT«trailing characters after number in conversion␤current instr.: 'rethrow' pc 500134 (src/gen/CORE.setting.pir:140359) (src/gen/CORE.setting:3916)␤»
sorear niecza: 0xa0.f
p6eval niecza v7-37-g20310bc: OUTPUT«Unhandled exception: Unable to resolve method f in class Int␤ at /tmp/_uWs9SHEQZ line 1 (MAIN mainline @ 1) ␤ at /home/p6eval/niecza/lib/CORE.setting line 1890 (CORE C885_ANON @ 2) ␤ at /home/p6eval/niecza/lib/CORE.setting line 1891 (CORE module-CORE @ 5…
pmichaud same for num/den 05:40
but if someone wants to patch those into Str.Numeric, I'll be glad to see it :)
moritz pmichaud: I'm curious, why did you write it in Perl 6, and not nqp?
pmichaud: that way it'll be harder to reuse in the actions 05:41
pmichaud the nqp::radix opcode comes from nqp :-)
I can make an equivalent nqp function, if you wish :)
and then have Str.Numeric use that.
The tricky part is knowing how/where to have the Perl 6 code be able to access the NQP function
also, this was more "get it working" than "final design" 05:42
moritz ok 05:43
pmichaud do we have any Perl 6 code that is accessing NQP functions or methods yet?
I mean, other than for object protocol stuff?
moritz I have no idea 05:44
pmichaud I wasn't quite sure how to do that, without resorting to roles like we've done for match objects.
let me check what's in the bootstrap for the namespace defaults 05:45
anyway, I do plan to put a close equivalent into HLL::Actions
and Perl6::Actions can likely use that, although rats are still a bit tricky 05:46
sorear rakudo: .say if /B/ ff /D/ for <A B C D E>; 05:54
p6eval rakudo 1ddda5: OUTPUT«===SORRY!===␤Flip flip operators are not yet implemented at line 22, near " /D/ for <"␤»
sorear pmichaud: have you looked at felliott's patch?
pmichaud I discussed one with him last week; didn't look in great detail at the one he supplied today. 05:55
sorear o/ agentzh 05:56
agentzh sorear: hiya
sorear tried to port it to niecza but failed
I wonder how reasonable it would be to special case BEGIN { @*INC.push("literal") } for niecza. 05:58
pmichaud falling asleep here, so I'll be back in a few hours. Tomorrow is house-cleaning day, though, to prepare for guests this weekend 05:59
sorear e.g. I am looking at packages/A.pm in roast 06:00
wondering how this can work on niecza
I don't like the idea of disabling half of the package tests just for implementations that lack BEGIN
orthogonality of testing... 06:01
agentzh just clones niecza. 06:04
sorear ambiguous use of adverb 'just' 06:05
agentzh sorear: lol...well, i mean i cloned niecza just now and want to look deeper ;) 06:07
sorear ...thanks? 06:08
what are you interested in?
agentzh sorear: the performance goal ;) 06:09
sorear: i'll be very happy if just a subset of perl6 can be run fast enough :)
sorear: such that i can use it in production for our business :) 06:10
moritz too, if that subset is big enough :-)
agentzh moritz: a useful sebset like NQP :)
moritz agentzh: have you benchmarked NQP? 06:11
agentzh: it's not slow
agentzh moritz: to be honest, i haven't done that recently :P i'll try the norm branch :)
sorear calls NQP slow, but ey has unreasonable standards. 06:12
agentzh thinks perl 5 is also slow at times.
moritz sorear: have you benchmarked nqp recently? 06:12
sorear: where by "recently" I mean after it got native number? 06:13
sorear I don't think I need to, I've benchmarked PIR and call it slow. 06:14
I'm very pessimistic about the chances for any current Perl 6 implementation to beat Perl 5 on graph-intensive code 06:16
moritz what do you mean by "graph-intensive code"?
agentzh cpu-intensive code that writes images? *grin* 06:18
sorear moritz: allocate a bunch of objects and chasing pointers between them, calling methods, not doing much arithmetic
the kind of projects I tend to be involved in :) 06:19
mberends phenny, tell perlhack the following British reference estimates that a vocabulary of 1500 English words is a practical minimum. www.bbc.co.uk/news/14130942 06:34
phenny mberends: I'll pass that on when perlhack is around.
sorear perlhack's vocabulary is fine
but ey hasn't quite grokked English grammar
mberends sure, I just noticed in backlogging that a number interested em 06:35
sorear ey has this idea that adjectives can be used directly as verbs, which they can be - in Chinese and Japanese
TimToady sorear: you're not really helping with the spivaking :)
mberends it's infectious ;) 06:36
dalek ecza: f5e9082 | sorear++ | src/ (6 files):
mergeback
sorear TimToady: I do it for myself
TimToady yes, but it doesn't help perlhack++ understand English :) 06:37
sorear ah.
TimToady
.oO('course, *I* never mangle the language, oh no...)
mberends oh no 06:40
sorear rakudo: use lib '/tmp/; 06:46
p6eval rakudo 1ddda5: OUTPUT«===SORRY!===␤Unable to find module 'lib' in the @*INC directories.␤(@*INC contains:␤ lib␤ /home/p6eval/.perl6/lib␤ /home/p6eval//p1/lib/parrot/3.5.0-devel/languages/perl6/lib␤ .)␤»
sorear out 07:03
dalek kudo/nom: 48ba2f3 | moritz++ | tools/build/Makefile.in:
[build] "make test" needs to depend on Test.pir, because the last test attempts to load Test.pm
07:23
szabgab ohai 07:53
I think I am confused again
szabgab I just tried to build rakudo on Windows with Strawberry Perl 07:53
and it complains that it cannot find mingw32-make 07:54
when trying to do a realclean
anyone around with some Windows fu ? 07:59
moritz is that fatal? 08:17
szabgab moritz: you mean that it does not find the mingw32-make? 08:18
moritz yes
szabgab yes it is
let me paste
szabgab gist.github.com/1084313 08:20
anyway, rakudo * is coming out in 2 weeks, right? 08:21
will it be based on what is in trunk now? 08:22
moritz which rakudo branch is that?
szabgab mster
master
moritz we've had some discussions about star releases, but I don't remember the outcome :/
szabgab I'd like to build the win32 immediately when rakudo* comes out 08:23
if possible even before the announcement of rakudo*
so which branch should I try?
moritz szabgab: I think the problem might be that we try to use a 'make' utility for 'make realclean' before parrot has detected which one to use
szabgab: try to change build/gen_parrot.pl line 76 from 'system_or_die' to just 'system' 08:24
szabgab: if that fixes the overall build, I'll push that fix to master 08:25
szabgab there is not "build" directory 08:26
wait
my bad
I found the build directory , now trying to build it 08:28
it will take some time as this is a small machine
moritz szabgab: btw, is this a rakudo compiler build, or a "star" build you are trying? 08:45
szabgab gist.github.com/1084337 08:46
parrot failed but I think it complaine about a parrot version being around right from the beginning
renaming libparrot.dll and trying again 08:48
moritz: right now I am just trying to build rakudo but what I'd like to make sure is that when * is released (in 2 weeks?) then I can build it on windows and package it as I did 6 weeks ago 08:50
moritz szabgab: since pmichaud does the R* releases for now, it's him you have to talk to about that
szabgab: I'd certainly appreciate it if we had windows binaries
szabgab ok, I'll try to catch him later
but for now let's see if I can build trunk 08:51
or if you think I should try some other branch then let know and I'll try that 08:52
moritz in the long run it's more interesting to see if you can build the 'nom' branch 08:57
(though it's not installable yet)
szabgab I tried to switch to it but I think git co nom did not do the right thing 09:02
szabgab moritz: parrot built successfully and told me to gmake but I had to rename (or remove) both the parrot_install directory and the libparrot.dll that would have been done by the realclean of parrot I think 09:25
so I think the fix need to include the removal of those items as well
moritz szabgab: have you used that build directory with a different toolchain before? 09:27
szabgab I don't think so
I built rakudo earlier with strawberry only
moritz then I don't really understand the failure mode :( 09:29
btw 'make realclean' never removes the parrot_install directory
szabgab probably the problem I had (after your suggested fix) was caused by the libparrot.dll 09:30
that was built from an older parrot 09:31
szabgab moritz: gist.github.com/1084408 another fail :( 09:52
dalek ast: 2b7dab1 | moritz++ | S32-str/rindex.t:
some rakudo unfudges in rindex.t
09:53
moritz ugh 10:01
szabgab: what does 'git describe' print in the rakudo repo?
szabgab 2011.06-6-g1ddda5e 10:06
I hate it when my neighbor turns off his wifi...
dalek ast: dea1e41 | moritz++ | S32-str/rindex.t:
unfudge the rest of the rindex tests that rakudo master passed
10:52
kudo/nom: 3bf08d5 | moritz++ | src/core/Cool.pm:
handle case of empty needle in rindex
10:53
JimmyZ good evening, #perl6 11:48
takadonet morning all 11:57
[Coke] NYI form of number litereal encountered 12:59
--rakudo/nom
pmichaud good morning, #perl6 13:17
mberends o/
takadonet pmichaud: morning 13:18
[Coke] looks like we're losing spec tests:
Files=249, Tests=6913
pmichaud: how goes? 13:19
pmichaud we may be losing tests due to premature script deaths 13:20
moritz aye, the Str.Numeric changes did have some fallout 13:28
szabgab pmichaud: good morning
pmichaud: I was trying to build Rakudo on Windows but failed so far 13:29
some info in he backlog, if anyone could help me further
pmichaud szabgab: which version? the master branch or the nom branch?
szabgab master branch 13:32
pmichaud okay, I'll look into it. There have been reports lately of difficulties building Parrot on Windows. 13:33
szabgab pmichaud: though before we try it, actually what I'd like to , is to make sure I'll be able to build Rakudo* when it comes out in 2 weeks
so will it be based on master or nom?
or am I missing something? :) 13:34
pmichaud our plan is that the july compiler release (next thursday) and the july star release will be based on master
then we're going to have another compiler release and distribution release (may or may not be 'star') in early august, before yapc::eu 13:35
that's the tentative plan for now
szabgab I see 13:36
so I'll try to be around and build * on Windows and package it to be installable
preferable even before you send out the announcement about the new release
pmichaud okay, works for me. I'll keep you posted. 13:38
szabgab thanks
but for now I had some issues on my netwbook 13:39
szabgab I'll try it now on my virual "build machine" as well 13:39
moritz virual - virtual and viral at the same time! 13:43
szabgab :) 13:43
moritz pmichaud: I'm curious, what did you use as test cases when you did the Str.Numeric implementation?
pmichaud just a few simple ones
moritz ok
nom: say "12.3_4e-0_1".Numeric # just checking 13:44
p6eval nom: OUTPUT«1.234␤»
pmichaud \o/
I should test against S32-str/numeric.t 13:45
is_approx "20." / "5.", 4; 13:46
remove this test from S03-operators/arith.t ?
moritz or remove the trailing .
pmichaud I think the trailing . is what made the test unique
moritz then delete it
pmichaud # The example for sloppy divide, rigged to avoid the peephole optimiser.
is_approx "20." / "5.", 4;
moritz oh, it's an imported-from-p5 test 13:47
dalek ast: 8afd7a2 | pmichaud++ | S03-operators/arith.t:
Remove p5-thinko test from S03-operators/arith.t .
13:48
pmichaud my $a = '2 is my favorite number'; 13:49
isa_ok(+$a, Num, 'it is forced into a Num');
how about this test? remove it?
moritz yes
pmichaud check for failure?
moritz yes, but in numeric.t 13:50
we don't have cases of trailing ws + non-ws yet, iirc
dalek ast: c008d8f | pmichaud++ | S03-operators/context-forcers.t:
Fudge and fix tests relying on Str.Numeric .
13:54
pmichaud that gets us back to 7,055 tests. 13:56
[Coke] pmichaud++
(now everyone stop distracting him from finishing up the regex wiring. ;)
pmichaud this morning I'm going to be distracted by house cleanup :-/
moritz yeah, sorry for the interruption 13:57
[Coke] Would that I could send over some minions to assist. ;()
er, ;)
pmichaud f 'a+123';
Is there a way to #?rakudo todo that test?
moritz it should just work with #?rakudo todo 13:58
because I've marked sub f with #?DOES
pmichaud that didn't seem to work. 13:59
moritz hm
you can #?rakudo emit # 14:00
that skews the test plan, but that's not so tragic since it's planless testing
dalek ast: 32042f0 | moritz++ | S32-str/numeric.t:
test numification with trailing ws plus non-ws
14:01
pmichaud I'm probably wrong, but I thought that #?todo worked by syntactically looking for is|ok|nok|isa_ok|.... 14:02
so it won't be able to find 'f'
moritz and I thought that #?DOES extends that list
pmichaud oh, maybe it does.
moritz but it seems I'm wrong
pmichaud or maybe it DOESNT :-P
moritz I can confirm that it doesn't work here
#?DOES count 14:03
for all implementations, the following thing does count tests
(disables any attempt to autocount tests within the construct)
when construct is a sub, registers the sub name as tester
(and multiplies calls to tester sub by count tests)
so, it is supposed to
pmichaud okay
I'll just do an emit for now.
check '-0d123', Int, 123; 14:05
should be -123, yes?
moritz yes
pmichaud nom +1 :-P
moritz pmichaud++ # test review
pmichaud it's nom that's really doing the review :)
moritz then pmichaud++ # reviewing the review 14:06
pmichaud not sure how to mark the tests after #55 as being todo/skip, though.
moritz you can enclose them in a block of curlies
pmichaud oh, I can skip a block.
yes 14:07
moritz and add a #?rakudo skip in front
pmichaud check '123.', Rat, 123; 14:08
remove, or change to 'f' ?
moritz the latter
moritz doesn't really grok the fudge code 14:10
but the offending line might be 190 14:12
dalek ast: 3e4d1c5 | pmichaud++ | S32-str/numeric.t:
Initial fudge for nom, correct a few tests.
ast: 805fea2 | moritz++ | fudge:
[fudge] allow todo() and skip() of custom test subs (installed via #?DOES)
14:17
moritz pmichaud: should I fudge the rest of the failures out for now? 14:23
pmichaud I have some more fixes coming.
dalek ast: 83b6499 | pmichaud++ | S32-str/numeric.t:
More fudges and fixes for nom in S32-str/numeric.t .
14:24
moritz nom: say +"Inf" 14:25
p6eval nom: OUTPUT«0␤»
pmichaud Now fixed locally.
Doing a spectest run now and then will push.
moritz \o/
pmichaud that brings us to 7,214. moritz++ for excellent Str.Numeric tests 14:27
dalek kudo/nom: 8c957ea | pmichaud++ | / (2 files):
Add Inf and NaN to Str.Numeric. Add S32-str/numeric.t to spectests.
[Coke] www.stargit.net/#coke #just saw this in #parrot. 15:12
pmichaud www.stargit.net/#rakudo 15:13
sbp "The graph for sbp contains 0 nodes and 0 edges" 15:17
easy to do graph isomorphism on, at least 15:18
PerlJam my node on www.stargit.net/#rakudo doesn't even get a label 15:19
though I always seem to be on the opposite side of the visualization from ingy
dalek ast: 160967f | pmichaud++ | S32-str/numeric.t:
Add some more "num/den".Numeric tests.
15:20
kudo/nom: ff6f2f9 | pmichaud++ | src/core/Str.pm:
Refactor Str.Numeric a bit for clarity, add "num/den" conversion.
15:21
pmichaud I wonder if it's worth caching the numeric value in a Str object once we've computed it. 15:29
or even keeping a cache of already-done conversions.
[Coke] sounds like an optimization (so I wouldn't bother yet.) 15:30
masak yo, zebry. 15:37
pmichaud yo 15:39
masak rakudo: my @a = 1, 2, 3; say 3 == any @a, 4, 5 15:43
p6eval rakudo 1ddda5: OUTPUT«any(Bool::False, Bool::True)␤»
masak rakudo: my @a = 1, 2, 3; say so 3 == any @a, 4, 5
p6eval rakudo 1ddda5: OUTPUT«Bool::True␤»
dalek ast: 2f482ef | pmichaud++ | S03-metaops/zip.t:
Fix broken fudge.
15:44
pmichaud nom: say +"3/4" # checking 15:48
p6eval nom: OUTPUT«0.75␤» 15:49
masak I'm warming to that feature already :) 15:50
moritz nom: say "3/4".Numeric.WHAT 15:51
p6eval nom: OUTPUT«Rat()␤»
pmichaud my $a = "0d01.01"; 15:51
isa_ok(+$a, Rat);
is(+$a, 1, "0d01.01 numifies to 1");
remove this, yes?
masak what type should it numify to if not Rat? 15:53
but yes, the latter test looks wrong.
pmichaud it's an error. 0d doesn't allow fractional parts
masak oh!
masak well, then. 15:53
moritz std: 0d01.01
p6eval std 516268a: OUTPUT«===SORRY!===␤Confused at /tmp/rDQKW6dZt4 line 1:␤------> 0d01.⏏01␤ expecting postfix_prefix_meta_operator␤Parse failed␤FAILED 00:01 119m␤»
moritz ah, needs :10<...> notation to allow fractional 15:54
masak felliott: I've now fixed all the bugs you reported. felliott++ 15:56
next up: dinner, then add descriptions to all the rooms and all the objects.
&
dalek ast: 0b50b2c | pmichaud++ | S02-builtin_data_types/num.t:
Fix a broken test in S02-builtin_data_types/num.t, defudge some passing
15:58
sorear good * #perl6 16:07
thundergnat Should array (or hash) elements autovivify the first time they are modified during a hyper op? Or am I making rash assumptions? 17:09
rakudo: my @a; @a[0,0,0,0] <<+=>> (4,3,2,1); say @a;
p6eval rakudo 1ddda5: OUTPUT«1␤»
thundergnat But if you pre initialize the array.... 17:10
rakudo: my @a=(0); @a[0,0,0,0] <<+=>> (4,3,2,1); say @a;
p6eval rakudo 1ddda5: OUTPUT«10␤»
thundergnat It seems like the it doesn't autovivify. 17:11
Maybe the answer is "Don't do that." But if that was the case, I would expect the preinitialized array to have the same problem. 17:12
sorear thundergnat: it does autovivify. four times 17:13
thundergnat nom: my @a; @a[0,0,0,0] <<+=>> (4,3,2,1); say @a; # just wondering 17:14
p6eval nom: OUTPUT«Contextual $*UNITPAST not found␤current instr.: 'nqp;Perl6;Actions;_block1409' pc 19857 (src/gen/perl6-actions.pir:6358) (src/Perl6/Actions.pm:2618)␤»
sorear thundergnat: @a[0,0,0,0] creates four elements, which fight to get installed in the @a[0] slot
only one can win
jlaire niecza: my @a; @a[0,0,0,0] <<+=>> (4,3,2,1); say @a 17:17
p6eval niecza v7-38-gf5e9082: OUTPUT«1␤»
dalek ast: bbf0a8a | moritz++ | S (3 files):
some unfudges for rakudo
17:46
TimToady niecza: my @a; @a[0,1,2,3] <<+=>> (4,3,2,1); say @a 18:00
p6eval niecza v7-38-gf5e9082: OUTPUT«4321␤» 18:01
TimToady niecza: my @a; @a[0] <<+=>> (4,3,2,1); say @a
p6eval niecza v7-38-gf5e9082: OUTPUT«10␤»
TimToady niecza: my @a; @a[0] X+= (4,3,2,1); say @a
p6eval niecza v7-38-gf5e9082: OUTPUT«10␤» 18:02
TimToady niecza: my @a; @a[0] X+= 4,3,2,1; say @a
p6eval niecza v7-38-gf5e9082: OUTPUT«10␤»
sorear wonders if lazy autoviv was a mistake. 18:05
mjreed Is rakudo star on hold until rakudo moves to nom? 18:07
moritz no
there will be a R* release based on master this month
and probably another, nom-based distribution release bevore YAPC::EU 18:08
nom: say 'a:b:c:d'.split(':', 2) 18:10
p6eval nom: OUTPUT«Method 'split' not found for invocant of class 'Str'␤current instr.: '_block1002' pc 85 ((file unknown):76376827) (/tmp/ziLRl9OF62:1)␤»
tadzik good evening-o
moritz \o
mjreed moritz: thanks. given the lack of releases in May and June I thought maybe nom was the new target.. 18:27
sorear mjreed: there were no releases May and June because Star is released quarterly 18:30
moritz at least it is now; used to be monthly 18:38
moritz I just investigated porting IO::Socket::INET from master to nom 19:21
it needs Buf
and it relies on the now-deprecated sharing of attributes between roles the classes they are mixed into 19:22
dalek kudo/nom: 6c8b8d1 | moritz++ | src/core/ (2 files):
port Str.split(Str) from master
tadzik I now officially passed my gsoc midterms :) 19:24
moritz congratulations tadzik 19:25
moritz hopes he also passed his mideterms. He got no notification about it :/ 19:26
*midterms
mberends tadzik++
moritz std: Rat.&floor 19:32
p6eval std 516268a: OUTPUT«ok 00:01 122m␤»
tadzik nom: say &Rat::floor.WHAT
p6eval nom: OUTPUT«Any()␤»
tadzik nom: say &Rat::denominator.WHAT
p6eval nom: OUTPUT«Any()␤»
moritz nom: say Rat.^methods.grep('denominator')[0].WHAT 19:36
p6eval nom: OUTPUT«Mu()␤»
moritz nom: say Rat.^methods
p6eval nom: OUTPUT«new BUILD nude Num Int Bridge Rat succ pred Str perl <anon> <anon> abs sqrt sin cos tan sinh cosh tanh floor ceiling unpolar cis Complex log exp Numeric log log10 exp roots ACCEPTS Bool gist rand bytes chars fmt substr uc lc ucfirst lcfirst chomp chop ord flip index rindex o…
[Coke] tadzik++
moritz nom: say Rat.^methods.grep('chars')
p6eval nom: OUTPUT«chars␤»
moritz nom: say Rat.^methods.grep('chars')[0].WHAT
p6eval nom: OUTPUT«Method()␤»
tadzik yes, Rat.^methods.grep('chars')[0].WHY is definitely ugly :) 19:37
moritz nom: say Rat.^methods.grep('numerator')[0].WHAT
p6eval nom: OUTPUT«Mu()␤»
tadzik nominator?
moritz numerator and denominator, iirc
tadzik mebbe
moritz ah, problem is probably that the accessor methods don't know their own name 19:38
it's a bug I have fixed in master too at some point :-)
moritz rakudo: say Method.^mr0 19:56
rakudo: say Method.^mro
p6eval rakudo 1ddda5: OUTPUT«Method 'mr0' not found for invocant of class 'ClassHOW'␤ in main program body at line 22:/tmp/RmDmhsb3MT␤»
rakudo 1ddda5: OUTPUT«Method 'mro' not found for invocant of class 'ClassHOW'␤ in main program body at line 22:/tmp/QBgdRQ15RF␤»
moritz nom: say Method.^mro
p6eval nom: OUTPUT«Method() Routine() Block() Code() Any() Mu()␤»
moritz nom: say Method.^methods 19:57
p6eval nom: OUTPUT«Method 'gist' not found for invocant of class 'Sub'␤current instr.: 'gist' pc 478754 (src/gen/CORE.setting.pir:130216) (src/gen/CORE.setting:2216)␤»
moritz nom: say Method.^methods.join(',')
p6eval nom: OUTPUT«Method 'Stringy' not found for invocant of class 'Sub'␤current instr.: 'join' pc 458831 (src/gen/CORE.setting.pir:120399) (src/gen/CORE.setting:548)␤»
moritz discovers non-turtles 19:57
TimToady it's a shell game 19:58
moritz nom: anon method foo() { }
p6eval nom: ( no output )
moritz nom: sub f() { }; &f.'!set_name'('I CHEATED'); say &f 20:01
p6eval nom: OUTPUT«I CHEATED␤»
[Coke] github.com/perl6/nqp - this the nqp that rakudo/nom needs? 20:03
moritz yes
[Coke] danke
(trying to get a build going on win7) 20:04
blargh. bug in nqp build process. c:\bird got translated to Cird 20:07
moritz nom: say Rat.^method[0].name.WHAT
p6eval nom: OUTPUT«Method 'method' not found for invocant of class 'Perl6::Metamodel::ClassHOW'␤current instr.: 'dispatch:<.^>' pc 456617 (src/gen/CORE.setting.pir:119447) (src/gen/CORE.setting:437)␤»
moritz nom: say Rat.^methods[0].name.WHAT
p6eval nom: OUTPUT«Str()␤»
moritz nom: say Rat.^methods[0].name.reverse_index('(', 0)
p6eval nom: OUTPUT«Method 'reverse_index' not found for invocant of class 'Str'␤current instr.: '_block1002' pc 131 ((file unknown):19393963) (/tmp/JupOqVQuDg:1)␤»
moritz [Coke]: outch 20:08
[Coke] fixing... 20:14
this sucks. I have my git command shell, my msvc command shell, and my regular command shell. ;)
moritz [Coke]: you clearly need EMACS to unify them :-) 20:15
moritz runs fast and far
[Coke] I don't even use emacs on *nix. :P 20:17
hurm. i wonder if this is a bug in parrot.
looks like. 20:18
moritz hum, my fix for the attributes-don't-know-their-names bug makes the setting compilation loop or something 20:35
[Coke] ah. when trying to build things on windows, be sure to use dirs like "C:/bird", not "C:\bird", or something gets confused. 20:45
masak good evening, #perl6. 20:46
[Coke] guten abend, masak. 20:47
mberends hello masca lark
dalek p: 4e4a66e | moritz++ | src/HLL/Actions.pm:
replace guts of string_to_int with a short call to nqp::radix
masak mberends: moin marbend treins 20:48
[Coke] anyone else building rakudo/nom and NOT using --gen-parrot ? 20:51
[Coke] I installed parrot-latest, nom-latest, and am getting a "nqp too old" error building rakudo. 20:52
moritz [Coke]: what does 'git branch' say inside the nqp repo? 20:56
[Coke] I think I just missed an update. :P 20:57
ah, no. it configures fine, but that dies on nmake... checking... 20:58
moritz: master.
should it also be nom?
qregex? 20:59
[Coke] my --gen-parrot rakudo on osx has no set branch in the nqp/ build dir. 21:01
[Coke] this is weird - when I configure rakudo/nom, it's fine. when I make it, the check there bombs and it tells me to reconfigure... 21:06
[Coke] gist.github.com/e2c0454bb8017213aa7b 21:07
lichtkind mberends: cheers 21:12
jnthn: nazdravi :)
mberends cheers 2 U 2, lichtkind 21:13
lichtkind no spare char :) 21:15
masak the game now has descriptions for things. it thereby feels much more "complete". 21:47
(it's also just over 1kLoC at this point)
I invite people to try it out, and try to shake out bugs and corner cases that I've missed.
make sure you read the messages on the walls :) 21:48
github.com/masak/crypt
jlaire masak: I tried 'help car', got: Sorry, I don't understand the verb 'help'. Type 'help' for suggestions. 21:54
funny :), maybe it should just ignore the rest of input when it starts with 'help'
masak jlaire: excellent. yes :)
jlaire++
jlaire masak: 'go car' -> Sorry, I don't understand the verb 'go'. 21:56
masak hm.
ok, easy enough to fix.
jlaire I'll probably find lots of corner cases, no experience in games like this
masak that's just what I need.
jlaire I played one but it's been >10 years 21:57
masak it's too easy for the programmer to try only a very small subset of the possible state space.
jlaire yeah 21:58
masak pushed a fix so that "go car" gives sensible output. 21:59
jlaire pulled, masak++ 22:00
jlaire "You can't go the hill." :) 22:01
masak I'll leave that as it is :) 22:02
jlaire yeah, it's understandable
masak while you can arguably go a car, you actually can't go a hill :P
jlaire or a brook :P
the brook*
jlaire masak: "It'd made of stone" <-- It's 22:06
masak thank you; fixing.
jlaire masak: leading whitespace confuses it 22:10
masak gotcha. will add some trimming. 22:11
jlaire masak: look water => Any() 22:21
o_o
masak oops. 22:22
good catch.
fixed. 22:23
jlaire++ 22:26
going to bed now. I will backlog to catch any more bugs and things people++ turn up.
'night.
lichtkind good night 22:32
jlaire masak: I've several times used 'wall' instead of 'walls' 22:40
jlaire masak: pastebin.com/QbJFppfa <-- a bug and a (perhaps intended?) shortcut 22:54
(others++: spoiler warning!)
jlaire masak: pastebin.com/WtzeE9Vn 23:23
masak: I didn't find some of the items... 23:24
jlaire masak: the game was fun but quite difficult, I don't think I'd had the patience to solve it without peeking at the source 23:25
masak: (which is a joy to read)
otoh, it's bedtime here &
soh_cah_toa hey, could somebody help me understand the difference between: sub &infix:<foo> vs. sub infix:<foo> ? 23:58