Camelia, the Perl 6 bug

IRC log for #perl6, 2012-01-08

Perl 6 | Reference Documentation | Rakudo | Niecza | Specs

| Channels | #perl6 index | Today | | Search | Google Search | Plain-Text | summary

All times shown according to UTC.

Time Nick Message
00:00 masak for anonymous parameters it should say "for parameter at position 1" or something like that.
00:00 masak though that will still be potentially confusing for methods.
00:02 thou joined #perl6
00:02 sorear masak: Wouldn't position 1 mean $y in :($x,$y) ? :)
00:04 masak that's another potential source of confusion :)
00:15 dalek niecza: 4a19674 | sorear++ | lib/ (3 files):
00:15 dalek niecza: Implement binder support for "where" and sub-signatures
00:15 dalek niecza: review: https://github.com/sorear/niecza/commit/4a19674cbc
00:15 * sorear goes looking for tests to enable
00:18 alvis joined #perl6
00:22 sorear colomon: there's your post_constraint fix
00:30 molaf joined #perl6
00:31 thou__ joined #perl6
00:33 sorear std: sub foo(where Int $x) { }
00:33 p6eval std dc62e1d: OUTPUT«Potential difficulties:â�¤  $x is declared but not used at /tmp/NiUu0sLBAF line 1:â�¤------> [32msub foo(where Int [33mâ��[31m$x) { }[0mâ�¤ok 00:01 124mâ�¤Â»
00:33 sorear I did not know you could do that!
00:40 sorear however!
00:40 sorear std: sub foo($ where *>2 where *<5) { }
00:40 p6eval std dc62e1d: OUTPUT«[31m===[0mSORRY![31m===[0mâ�¤Whitespace required before < operator at /tmp/NEgeyrEj8J line 1:â�¤------> [32msub foo($ where *>2 where *<[33mâ��[31m5) { }[0mâ�¤    expecting escapeâ�¤Parse failedâ�¤FAILED 00:01 123mâ�¤Â»
00:40 ruoso sorear: since quasi is nyi, is there any simple way of getting the optree for a perl6 code snippet?
00:40 sorear std: sub foo($ where * > 2 where * < 5) { }
00:40 p6eval std dc62e1d: OUTPUT«ok 00:01 123m␤»
00:40 sorear std: sub foo(where * > 2 where * < 5 $foo) { }
00:40 p6eval std dc62e1d: OUTPUT«[31m===[0mSORRY![31m===[0mâ�¤Multiple prefix constraints not yet supported at /tmp/LYMpTmfa3g line 1:â�¤------> [32msub foo(where * > 2 where * < 5 [33mâ��[31m$foo) { }[0mâ�¤Potential difficulties:â�¤  $foo is declared but not used at /tmp/LYMpTmfa3g line 1:â�¤------> […
00:41 masak o.O
00:41 sorear ruoso: no
00:41 masak 'night, #perl6
00:42 sorear masak: I am thinking STD is being excessively liberal here.
00:42 sorear also, things like
00:43 sorear std: my ::T $x; #What does this even mean?
00:43 p6eval std dc62e1d: OUTPUT«ok 00:01 120m␤»
00:44 sorear phenny: tell TimToady I am curious about the validation rules for type_constraint.  Are the examples given just before this message supposed to be legal in a real implementation?
00:44 phenny sorear: I'll pass that on when TimToady is around.
00:45 sorear rakudo: say v6
00:45 p6eval rakudo 327fc9: OUTPUT«===SORRY!===␤CHECK FAILED:␤Undefined routine '&v6' called (line 1)␤»
00:45 sorear niecz: say v6
00:45 sorear niecza: say v6
00:45 p6eval niecza v13-154-g29d510e: OUTPUT«[31m===[0mSORRY![31m===[0mâ�¤â�¤Action method value:version not yet implemented at /tmp/4OhPseQxgS line 1 (EOF):â�¤------> [32msay v6[33mâ��[31m<EOL>[0mâ�¤â�¤Unhandled exception: Check failedâ�¤â�¤  at /home/p6eval/niecza/boot/lib/CORE.setting line 919 (die @ 2) …
00:45 sorear what?
00:48 sorear ah, S02:4475
01:00 jnthn sleep &
01:07 colomon sorear++
01:10 spetrea joined #perl6
01:21 colomon niecza: multi sub very_odd(Int $odd where { $odd % 2 }) { Bool::True; }; very_odd(1)
01:21 p6eval niecza v13-155-g4a19674: OUTPUT«Unhandled exception: System.NullReferenceException: Object reference not set to an instance of an object␤  at Builtins.mod (Niecza.Variable a1, Niecza.Variable a2) [0x00000] in <filename unknown>:0 ␤  at Anon.1.Run.MAIN.C2ANON (Niecza.Frame ) [0x00000] in…
01:21 kshannon What it the reason for using: (@a,)
01:21 kshannon It's not supposed to recontainerize the elements is it?
01:22 kshannon It's just making sure that if @a is an array, then make a new list.
01:23 kshannon Why wouldn't you just use @a.list ?
01:23 colomon niecza: multi sub very_odd($odd where { $odd % 2 }) { Bool::True; }; very_odd(1)
01:23 p6eval niecza v13-155-g4a19674: OUTPUT«Unhandled exception: System.NullReferenceException: Object reference not set to an instance of an object␤  at Builtins.mod (Niecza.Variable a1, Niecza.Variable a2) [0x00000] in <filename unknown>:0 ␤  at Anon.1.Run.MAIN.C2ANON (Niecza.Frame ) [0x00000] in…
01:26 [Coke] still getting those 815 failures. must be something in my new niecza checkout that is just for getting stats.
01:29 colomon [Coke]: rat.t is crashing hard at test 7 or so
01:29 colomon it's got ~800 tests in it
01:30 [Coke] I'm seeing failures like got <7/4>, expected 7/4 in, e.g. #           got: <7/4>
01:30 [Coke] #      expected: 7/4
01:31 [Coke] er, in:
01:31 [Coke] integration/advent2009-day14
01:32 [Coke] niecza: say 1.75.perl
01:32 p6eval niecza v13-155-g4a19674: OUTPUT«<7/4>␤»
01:33 colomon right, those too
01:33 colomon I think that's the source of all current problems that I know of
01:33 [Coke] is that a new spec change that the tests haven't caught up with yet?
01:34 colomon yes
01:34 [Coke] k
01:34 colomon but also that niecza hasn't fully caught up with yet
01:34 [Coke] niecza: say <7/4>
01:34 p6eval niecza v13-155-g4a19674: OUTPUT«7/4␤»
01:34 [Coke] niecza: say <7/4>.perl
01:34 p6eval niecza v13-155-g4a19674: OUTPUT«"7/4"␤»
01:34 colomon that's a string
01:34 [Coke] O_o
01:35 [Coke] need to reboot. back in a bit.
01:35 colomon it should be a Rat now
01:35 colomon 'k
01:48 colomon perl6: say 3e5.perl
01:48 p6eval niecza v13-155-g4a19674: OUTPUT«300000␤»
01:48 p6eval ..rakudo 327fc9: OUTPUT«300000e0␤»
01:48 p6eval ..pugs b927740: OUTPUT«300000/1␤»
01:50 kmwallio joined #perl6
02:07 colomon niecza: say (\42).perl
02:07 p6eval niecza v13-155-g4a19674: OUTPUT«\(42)␤»
02:07 colomon niecza: say (\NaN).perl
02:07 p6eval niecza v13-155-g4a19674: OUTPUT«\(NaN)␤»
02:12 dalek roast: 5e9f461 | (Solomon Foster)++ | S02-names-vars/perl.t:
02:12 dalek roast: Fudge for niecza.
02:12 dalek roast: review: https://github.com/perl6/roast/commit/5e9f461633
02:12 skids perl6: grammar g { regex m { foo } } ; say "foo" ~~ /<g::m>/;
02:12 p6eval rakudo 327fc9: OUTPUT«Method 'g' not found for invocant of class 'Cursor'␤  in regex <anon> at /tmp/5RqMUfLpBE:1␤  in method ACCEPTS at src/gen/CORE.setting:7218␤  in block <anon> at /tmp/5RqMUfLpBE:1␤  in <anon> at /tmp/5RqMUfLpBE:1␤»
02:12 p6eval ..niecza v13-155-g4a19674: OUTPUT«Unhandled exception: Cannot dispatch to a method on g because it is not inherited or done by Cursor␤  at /home/p6eval/niecza/lib/CORE.setting line 191 (Mu.dispatch:<::> @ 3) ␤  at /tmp/bcI5Sq_qSp line 1 (ANON @ 4) ␤  at /home/p6eval/niecza/lib/CORE.settin…
02:12 p6eval ..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…
02:20 packetknife joined #perl6
02:23 colomon skids:  are you trying to figure out how to use a grammar?
02:27 skids well, not from the TOP.
02:27 [Coke] colomon: until those get straigtened out, here's the damage:
02:27 colomon [Coke]: I'm working on sorting things right now.  :)
02:28 [Coke] https://gist.github.com/1476841
02:28 dalek roast: ecf238e | (Solomon Foster)++ | S32-num/rat.t:
02:28 dalek roast: Fudge for niecza.
02:28 dalek roast: review: https://github.com/perl6/roast/commit/ecf238e165
02:28 [Coke] down to 88.9%
02:28 [Coke] ok, I can still do another run today if needs be. ;)
02:28 colomon I'll have you up to 93% in a few minutes, I think.  :)
02:29 skids really just named regexps, though namespacing would be good too.
02:29 colomon skids: give me a minute
02:31 dalek roast: 5cdb9d9 | (Solomon Foster)++ | S32-num/complex.t:
02:31 dalek roast: Refudge for niecza.
02:31 dalek roast: review: https://github.com/perl6/roast/commit/5cdb9d9447
02:32 colomon perl6: grammar g { regex m { foo } } ; say g.parse("foo", :rule<m>);
02:32 p6eval pugs b927740: OUTPUT«*** No such method in class g: "&parse"␤    at /tmp/ELR2nU0I_h line 1, column 37-61␤»
02:32 p6eval ..rakudo 327fc9: OUTPUT«=> <foo>␤␤»
02:32 p6eval ..niecza v13-155-g4a19674: OUTPUT«#<match from(0) to(3) text(foo) pos([].list) named({}.hash)>␤»
02:32 colomon skids: there you go
02:32 colomon awkward, but it works
02:36 skids At least it's awkward-but-to-spec.  Thanks.
02:36 tokuhirom joined #perl6
02:47 dalek roast: 65d1d83 | (Solomon Foster)++ | S03-sequence/basic.t:
02:47 dalek roast: Update tests to match the new standard for Rat.perl.
02:47 dalek roast: review: https://github.com/perl6/roast/commit/65d1d838c8
02:50 colomon niecza: say 1/60000 + 1/60001
02:50 p6eval niecza v13-155-g4a19674: OUTPUT«3.3333055560185109E-05␤»
02:51 colomon niecza: say (1/60000 + 1/60001).perl
02:51 p6eval niecza v13-155-g4a19674: OUTPUT«<120001/3600060000>␤»
02:55 wolfman2000 joined #perl6
02:57 dalek roast: 2a1ed07 | (Solomon Foster)++ | integration/advent2009-day14.t:
02:57 dalek roast: Rework tests for new Rat.perl standard, fix broken test.
02:57 dalek roast: review: https://github.com/perl6/roast/commit/2a1ed075d1
02:58 Tene masak: http://axisofeval.blogspot.com/2012/0​1/type-systems-vs-interactivity.html
03:06 colomon perl6: say <5 7 8>[]
03:06 p6eval niecza v13-155-g4a19674: OUTPUT«Unhandled exception: No value for parameter \$index in postcircumfix:<[ ]>␤  at /home/p6eval/niecza/lib/CORE.setting line 0 (postcircumfix:<[ ]> @ 1) ␤  at /tmp/bgs5vRoeUD line 1 (mainline @ 2) ␤  at /home/p6eval/niecza/lib/CORE.setting line 2833 (ANON @ …
03:06 p6eval ..rakudo 327fc9: OUTPUT«5 7 8␤»
03:06 p6eval ..pugs b927740: OUTPUT«578␤»
03:08 dalek roast: 314dffc | (Solomon Foster)++ | S02-types/parcel.t:
03:08 dalek roast: Fudge for niecza.
03:08 dalek roast: review: https://github.com/perl6/roast/commit/314dffcdb5
03:13 dalek roast: 3548dd2 | (Solomon Foster)++ | S02-types/num.t:
03:13 dalek roast: Modernize tests a bit.  Add new test.  Unfudge for niecza.
03:13 dalek roast: review: https://github.com/perl6/roast/commit/3548dd2c58
03:14 colomon [Coke]: almost there
03:19 kst` joined #perl6
03:19 dalek niecza: 63667d5 | (Solomon Foster)++ | lib/CORE.setting:
03:19 dalek niecza: Smarter Num.perl.
03:19 dalek niecza: review: https://github.com/sorear/niecza/commit/63667d5a0b
03:19 dalek niecza: c649af4 | (Solomon Foster)++ | t/spectest.data:
03:19 dalek niecza: Turn on S02-names-vars/perl.t.
03:19 dalek niecza: review: https://github.com/sorear/niecza/commit/c649af461c
03:19 dalek niecza: ff7dc00 | (Solomon Foster)++ | lib/CORE.setting:
03:19 dalek niecza: Fix last Num.perl patch.
03:19 dalek niecza: review: https://github.com/sorear/niecza/commit/ff7dc00f88
03:20 colomon [Coke]: go
03:38 Psyche^ joined #perl6
03:52 orafu joined #perl6
04:00 sorear colomon: niecza has never deliberately supported zen slices
04:00 colomon sorear: huh.  no idea why that showed up as a new failure, then.
04:02 sorear colomon: do you think Int $odd where { $odd % 2 } should really be allowed?
04:02 colomon oh, I guess the test might have been added recently
04:02 sorear my intuition says that types should be checked *before* the value is bound to $odd
04:02 colomon sorear: what you do think is wrong with Int $odd where { $odd % 2 }   ?
04:02 colomon Is the Int the issue?
04:03 sorear colomon: if there's a value in $odd, it should be odd
04:03 sorear even values should never show up in $odd, imo
04:03 sorear therefore, it doesn't make sense to bind $odd without first type-checking
04:04 colomon Oh, you're suggesting it should be $odd where * % 2 or something like that?
04:04 sorear yes
04:04 colomon something that doesn't directly reference $odd, I mean
04:04 sorear exactly
04:06 colomon I'm sympathetic to your position, but historically rakudo definitely handled that case.  It's all over roast.
04:07 colomon maybe we should take it up with TimToady and jnthn ?
04:10 sorear should be brought  up, yes
04:11 dalek niecza: 4672447 | sorear++ | lib/Kernel.cs:
04:11 dalek niecza: Bind values before type checking as a DWIM fudge
04:11 dalek niecza: review: https://github.com/sorear/niecza/commit/4672447c28
04:11 sorear but it won't hurt to be compatible in the short term
04:13 colomon sorear++
04:14 colomon The more I think about it, the more I think $odd % 2 shouldn't work, for what it's worth.
04:14 colomon bedtime.
04:14 colomon o/
04:21 Chillance joined #perl6
05:08 sorear pugs: class A { submethod DESTROY { say "hi" } }; A.new
05:08 p6eval pugs b927740: OUTPUT«hi␤»
05:08 sorear pugs: class A { submethod BUILD { say "hi" }; submethod DESTROY { say "bye" } }; A.new for ^10
05:08 p6eval pugs b927740: OUTPUT«hi␤hi␤hi␤hi␤hi␤hi␤hi␤hi␤hi␤hi␤bye␤»
05:09 sorear pugs: class A { submethod BUILD { say "hi" }; submethod DESTROY { say "bye" } };
05:09 p6eval pugs b927740:  ( no output )
05:09 sorear pugs: class A { submethod DESTROY { say "bye" } }; my $i = 0; (A.new; 0) until $i++ == 1000
05:09 p6eval pugs b927740: OUTPUT«*** ␤    Unexpected ";"␤    expecting term postfix, operator or ")"␤    at /tmp/KGBXsgNvvr line 1, column 63␤»
05:09 sorear pugs: class A { submethod DESTROY { say "bye" } }; my $i = 0; (A.new, 0) until $i++ == 1000
05:09 p6eval pugs b927740: OUTPUT«bye␤bye␤bye␤bye␤bye␤bye␤bye␤bye␤bye␤bye​␤bye␤bye␤bye␤bye␤bye␤bye␤bye␤bye␤bye␤bye␤bye␤b​ye␤bye␤bye␤bye␤bye␤bye␤bye␤bye␤bye␤bye␤bye␤bye​␤bye␤bye␤bye␤bye␤bye␤bye␤bye␤bye␤bye␤bye␤bye␤b​ye␤bye␤bye␤bye␤bye␤bye␤bye␤bye␤bye␤bye␤bye␤bye​␤bye␤bye␤bye␤bye␤bye␤bye␤bye␤bye␤bye␤bye␤by…
05:20 Trashlord joined #perl6
05:28 moritz \o
05:32 sorear o/ moritz
05:32 * sorear is not sure how DESTROY should interact with compartmentalization and serialization
05:34 moritz "nicely" :-)
05:50 sorear moritz: :P
05:56 Radvendii joined #perl6
05:56 Radvendii yo guys, is there a way to do one-liners with the current rakudo?
05:56 sorear -e
05:56 Radvendii like perl -e''
05:56 Radvendii perl6 -e raises an error
05:56 kshannon perl6 -e
05:56 Radvendii Option -e requires a value and cannot be grouped
05:56 sorear ... you need code after the -e?
05:56 kshannon what error?
05:57 Radvendii with input: perl6 -e'say "hello"'
05:57 kshannon perl6 -e 'say "hi"'
05:57 kshannon space after -e
05:57 Radvendii ah
05:57 Radvendii that's new
05:57 Radvendii okay
05:57 Radvendii thanks
05:57 sorear niecza doesn't need the space :p
05:58 kshannon :P
05:58 sorear (I am probably the only one here who thinks a bug-compatible simulation of GNU getopt is a good idea)
05:59 sorear (the Rakudo team thinks it's OK to make something that's close to getopt but with minor usability improvements)
05:59 Radvendii getopt?
05:59 sorear (my position is that any deviation from the standard is a major POLS problem)
06:00 Radvendii im not understanding all these terms
06:00 Radvendii what standard? POLS?
06:00 sorear Radvendii: getopt is the standard C subroutine for parsing command-line options
06:00 sorear GNU getopt is a version of getopt that supports long arguments, like --foo
06:01 Radvendii ah. and the standard says the argument immediately follows the option
06:01 sorear POLS is the "Principle of least suprise", sometimes also the "Principle of least astonishment" - programs should act the way a typical person expects them to
06:01 Radvendii mhmm
06:01 sorear The standard for getopt says that the argument is *allowed* to immediately follow the option
06:01 Radvendii at least it should give me a reasonable error when i do it wrong. like "please put a space in there" :P
06:02 sorear since most C programs use getopt, most C programs allow no-space
06:02 Radvendii it does that when you use variables like $$
06:02 sorear on UNIX I mean ... DOS has different expectations
06:02 Radvendii it says "variable is depricated"
06:03 Radvendii it's not *such* a problem to be different (like the new regex) but there doesn't really seem to be a reason for this one
06:03 sorear the fact that Rakudo requires a space astonishes people
06:03 kshannon "cannot be grouped" means "please put a space in there" :P
06:03 Radvendii kshannon: not exactly intuitive
06:03 kshannon Yeah,  the terminology is very getopt'ish
06:04 Radvendii if the syntax resembled calling a perl6 function, i could understand that
06:04 sorear "grouping" is a feature name in getopt; it means that you can write -x -y -z as -xyz
06:04 Radvendii like perl6 :e(say "hi")
06:04 Radvendii sorear: ah
06:04 moritz Radvendii: but the standard UNIX shells have a special meaning for parenthesis
06:04 sorear perl6 sees '-esay "hello"' and interprets it as -e -s -a -y -' ' -'"' -h ...
06:05 sorear which is not allowed, because -e cannot be grouped
06:05 Radvendii or if they somehow removed the need to escape all single quotes... :P
06:05 sorear Radvendii: use q[]
06:05 Radvendii sorear: oh. i see
06:05 sorear perl6 -e 'say q[$foo]'
06:05 sorear I really wish *sh supported nested quotes like Perl and Tcl do
06:06 Radvendii sorear: so it totally ignores the ' in -e'say...?
06:06 Radvendii yeah... or unicode delimiters
06:06 Radvendii so i could use some obscure character i would never use in code
06:06 sorear Radvendii: the best way to think about it is that ' tells the shell to ignore spaces
06:06 Radvendii that's weird...
06:07 dalek roast: 71b482c | moritz++ | S04-declarations/constant.t:
06:07 dalek roast: RT #66636, my constant = Enum::val
06:07 dalek roast: review: https://github.com/perl6/roast/commit/71b482cd2a
06:07 dalek roast: 375b371 | moritz++ | S03-operators/flip-flop.t:
06:07 dalek roast: fudge fff tests out for rakudo, but the ff tests still do not pass
06:07 dalek roast: review: https://github.com/perl6/roast/commit/375b371cf7
06:07 sorear a space separates words, unless an odd number of ' have been seen
06:07 Radvendii i feel like the shell is really outdated...
06:07 Radvendii for one thing it has really hard to use one-line loops
06:07 sorear how old are you?
06:07 Radvendii haha. 15
06:08 sorear the Bourne shell was released in '77
06:08 sorear it might be older than your parents.
06:08 Radvendii so why is it still used? is there any alternative?
06:08 kshannon Hmmm,  well nqp is the bit giving the "cannot be grouped" message;  the thing is it doesn't support grouping at all so the error message is really bad...
06:09 Radvendii i mean... i end up just using perl(6) -e for most things
06:09 sorear Radvendii: there are so many alternatives that none of them became very popular
06:09 sorear kind of like the situation with third parties in the US :)
06:10 Radvendii one could just run the interpreted perl6 i suppose
06:10 Radvendii oh. none of them caught on?
06:10 Radvendii that seems kind of silly
06:10 sorear I think zsh is the most popular of the unpopular shells
06:11 kshannon Well,  some of them have pretty big followings - zsh and ksh are probably the two major ones.
06:11 Radvendii and what do one-line loops look like (just as an example)
06:12 kshannon I never use them.
06:12 kshannon Or more accurately I never use the short form loops.
06:13 moritz while true; do date; sleep 1; done
06:13 kshannon I do write LOOOOOOOOONG lines of shell,  but there's lots of statements serparated by semicolons...
06:14 kshannon zsh has:
06:14 kshannon for name ( word ... ) cmd
06:14 geekosaur stolen from csh
06:15 Radvendii what's word?
06:15 kshannon and: while list { list }
06:15 geekosaur although I think it's saner about parsing it than csh is
06:15 kshannon for a ( * ) mv $a $a.bak
06:15 geekosaur Radvendii, just whatever the shell is using for word syntax at the moment (i.e. it depends on $IFS), and you can use globs etc.
06:16 kshannon for a ( hello world ) echo $a
06:16 * geekosaur only uses the single line ones at the command line; for scripts he uses multiline and indentation (although he does cuddle "then"s with "if"s)
06:17 Radvendii does that work well for one-liners?
06:17 Radvendii (complex ones, i mean)
06:18 geekosaur (also I don;t use csh-style one-liners, mostly because I never got into the habit; complex commands pretty much always done in sh)
06:18 dalek roast: 3500e66 | moritz++ | S12-class/lexical.t:
06:18 dalek roast: RT #69316, constructing objects of inner class in constructor of outer class
06:18 dalek roast: review: https://github.com/perl6/roast/commit/3500e66eab
06:18 geekosaur does which work well?  I can generally keep track fo complex commands, but, well, 30 years of experience you tend to get used to such things
06:19 Radvendii so it's convention to start saving to a file once you want to do something like nesting loops?
06:19 moritz it's convention to use perl when you want nested loops :-)
06:20 Radvendii haha
06:20 geekosaur it's often a good idea.  also, building complex commands iteratively (prepending "echo" to effectful commands).  see also the "fc" command for taking your current iteration into an editor
06:20 kshannon Shell one-liners usually look pretty gross,  i.e. before I realized there was tools/autounfudge.pl in rakudo I wrote:
06:20 kshannon while read t rest;do t="t/spec/${${${t#t/spec/}%.t}%.rakudo}"; mv "$t.t" "$t.orig"; grep -ne '^[[:space:]]*#[?]rakudo \d\d* skip' -e '^[[:space:]]*#[?]rakudo skip' <"$t.orig" | while read num rest;do num="${num%%:*}";(echo "$t $num"; sed -e "${num}s/ skip/ todo/" <"$t.orig" >"$t.t"; schroot- make "$t.t"; read -q "yn?$t.t $num ?") <&3 >&4 2>&1 && echo $t $num;done; rm -f "$t.rakudo" ; mv "$t.orig" "$t.t";done 3<&0 4>&1 <t/spectest.data.skip >t/spectest.data.o
06:20 moritz geekosaur: I didn't know about fc. Thanks.
06:21 geekosaur that's the sort of thing I might initially build in command line but it will end up in a file with proper indentation at some point.  that one would probably be sooner rather than later :)
06:22 Radvendii uh-huh...
06:22 Radvendii the time's i
06:23 Radvendii i've run into problems are not so much building complex scripts but even just looping infininitely (or over contents of a folder) and doing stuff (like running a perl script) on each one.
06:23 Radvendii (or over and over for the infinit loops
06:23 Radvendii and somehow while 1 {perl} seems simpler than while [1] do; perl; done;
06:24 kshannon ^^ while true
06:24 geekosaur while :; do perl; done
06:24 Radvendii or for qx[ls] {perl} vs i dont even know what
06:24 kshannon I never remember : for while
06:24 geekosaur (of course if you're not familiar with bourne shell tricks that makes people a bit crosseyed0
06:24 Radvendii mhmm
06:25 Radvendii i guess what im asking is "is there a way to import the shell comands (ls, pwd) to perl6?
06:25 Radvendii i suppose it's a minor annoyance to put qx[] around it all...
06:26 Radvendii except that if i qx[cd] then it doesn't change it for the future
06:28 Radvendii as in, i open perl6 interpreter, then i type qx[cd] then qx[pwd] and it doesnt change it...
06:28 sorear of course not
06:28 Radvendii right. is there a way to make it essentially replace the shell?
06:28 sorear how much do you know about processes?
06:29 Radvendii nothing... that i know of
06:29 sorear you don't want to replace your shell with perl6
06:29 Radvendii i dont?
06:29 sorear you'd lose job control that way, for a start
06:29 Radvendii i mean just practically speaking
06:30 sorear and quotes would get annoying
06:30 Radvendii why would quotes get annoying?
06:30 sorear but job control is the big one
06:30 sorear ls '-l'
06:30 sorear versus ls -l
06:31 Radvendii i type "perl6\n qx[ls -l]" and it works fine
06:32 sorear ...that's with qx
06:32 sorear this is one of those things that everybody comes up with but nobody can ever make work
06:33 Radvendii why not? [genuine question]
06:33 sorear scripting languages and shells fill different niches and can only substitute for each other poorly
06:34 Radvendii what do shells do more conveniently?
06:35 moritz pipes
06:35 moritz job control
06:38 Radvendii 1) why shouldn't skripting languages impliment pipes? [not rhetorical]
06:38 Radvendii 2) what *is* job control?
06:38 sorear job control is control-Z, fg, bg, and &
06:39 geekosaur building up programs from external commands, in general.  if you arranged to be able to do everything with p6 functions, p6 might work as a shell... until you needed to do something not built in
06:40 * geekosaur notes that a syntax more like ls :l might work for a p6shell, but transmuting that syntax when referring to external commands with divergent notions of how option parsing works would prove "interesting"
06:40 Radvendii sorear: if you ran, say qx[top] it would pass it to the shell, so ctr-c would still work. (im not sure what ctr-z does)
06:41 skids shells are called shells because they primarily serve as ways to run other programs.
06:41 sorear perl6: class A { method foo(|$c) { say $c } }; class B { method foo() { callwith(self,1,2,3) } }; B.foo
06:41 p6eval pugs b927740: OUTPUT«*** No such subroutine: "&callwith"␤    at /tmp/hi9aLhiQCF line 1, column 66-87␤»
06:41 p6eval ..niecza v13-159-g4672447: OUTPUT«Unhandled exception: No next function to call!␤  at /home/p6eval/niecza/lib/CORE.setting line 1111 (callwith @ 3) ␤  at /tmp/Fm0AsoEazq line 1 (B.foo @ 3) ␤  at /tmp/Fm0AsoEazq line 1 (mainline @ 4) ␤  at /home/p6eval/niecza/lib/CORE.setting line 2841 (AN…
06:41 p6eval ..rakudo 327fc9:  ( no output )
06:42 sorear Radvendii: if you don't know what ^Z does, I don't think you should be trying to replace the shell
06:42 Radvendii the same thing as ctr-c
06:42 Radvendii fine
06:42 sorear (I feel so dirty saying this :|)
06:42 Radvendii i just learned using ctr-c
06:42 geekosaur maybe.  ^Z is largely but not completely obsoleted by windowing systems
06:42 moritz Radvendii: it's nto the same
06:42 Radvendii then what?
06:43 geekosaur shells let you run things in the background (&) as wel as in the foreground
06:43 kaare__ joined #perl6
06:43 Radvendii oh, i use tabs. that works just as well geekosaur is right.
06:43 geekosaur job control lets you suspend the foreground task (ctrl-z), then resume some other stopped task in the foregrouns (fg) or background (bg)
06:44 Radvendii and I'm not saying perl6 straight out of the package works for this. If it did, i would be using it :P
06:44 moritz nom: $_ .= ();
06:44 p6eval nom 327fc9: OUTPUT«===SORRY!===␤Method 'isa' not found for invocant of class 'Undef'␤»
06:44 geekosaur used to be that was a common way to pop into a shell quickly, for example
06:44 geekosaur ^Z, do whatever (e.g. check for exact name of a file), fg
06:44 skids Windowing systems provide only focus control, if you do want the program to pause, there's usually not a WM hook for that.
06:44 Radvendii oh. clever.
06:45 * moritz still uses that a lot, often in connection with ssh and when I forgot to start screen first :-)
06:45 geekosaur right, that's the most common usage these days
06:45 agentzh joined #perl6
06:46 Radvendii obviously it doesnt work as-is
06:46 Radvendii but some hybrid ought to...
06:47 geekosaur (X11 does not provide ways to control the program that is operating a window.  Even XKillClient() works not by sending a signal, but by telling the server to drop its end of the client's connection in the hope that the client will get a read error on its end and exit
06:48 geekosaur (EWMH defined _NET_WM_PID but there are still many programs that don't set it, like anything that wraps Tk for graphics)
06:49 Radvendii i dont understand how you guys are making such a clear distinction between "shell" languages and "scripting" languages
06:49 Radvendii how/why
06:49 skids .oO(kids these days with their souped up machines.  When I was their age I had to pause compiles to speed up my editor.)
06:50 sorear skids: ...I do that today
06:50 skids Well, OK compiling/testing perl6 may have brought that back :-)
06:50 sorear skids: even g++ can bring this machine to a crawl
06:51 geekosaur funny, we're discussing the old turbo switch in another channel :p
06:52 skids Radvendii: the crux of the matter is that dynamic languages are moving towards running on VMs which sometimes do not have the ability to spawn child processes.  This would make implementing a true shell problematic.
06:52 Radvendii skids: I don't even see how that's relevant...
06:52 Radvendii skids: isn't that just java?
06:53 Radvendii (previous comment was delayed)
06:53 geekosaur one of the key distinctions between shells and scripting languages is that, while shells are very good at connecting and manipulatingprograms and processes, they are typically lousy at data organization
06:53 geekosaur bash only just got associative arrays.  zsh has had them for a while but the syntax... leaves something tobe desired
06:54 skids .oO(though that hasn't stopped them from being a primary language for OS scripts even when they aren't working with processes.)
06:54 Radvendii i just dont see why that has to be the case...
06:55 geekosaur mostly, the shell workflow is that you don't deal with data inside the shell, you make the programs deal with the data
06:56 geekosaur which is why pipelines are trivial to put together; the data goes *there*, not in the script.  (ideally)
06:57 skids It doesn't have to be, it would be technically possible to choose a VM that can exec programs.  However, if you are maintaining alternative syntax for command options, that would be labor intensive, other than base suites like busybox.
06:57 Radvendii busybox?
06:58 isBEKaml joined #perl6
06:58 geekosaur really, the intended workflow is the real distinguisher between shells and scripting languages.  although shells were often abused as scripting languages before perl and python became widespread, because they were guaranteed to be available
06:58 skids busybox is an integrated shell+common utilities used in embedded systems and ramdisks.  Basically a sh interpreter plus most of the programs that are completely essential all in one binary.
06:59 geekosaur "unix swiss army knife"
07:00 * sorear misses the days when a reasonable imitation of a complete Linux system would fit on a single high-density floppy
07:00 geekosaur minix!
07:01 dalek roast: b0bcb38 | moritz++ | S03-operators/binding-scalars.t:
07:01 dalek roast: RT #77594, binding to a literal should not work
07:01 dalek roast: review: https://github.com/perl6/roast/commit/b0bcb389d5
07:01 Radvendii I'm not understanding how your answers apply to the problem at hand. Let's say I just make an addition to perl that takes any unknown bareword and makes a search of the directories in @PATH and qx[] it with whatever arguments you give it reformatted into a form that bash can understand...
07:02 * geekosaur is pretty sure someone's already done a (or several) p5shells using sub AUTOLOAD
07:02 sorear .oO( OTOH, within the same mm³age as a high-density floppy you can fit a complete Debian mirror in flash format )
07:02 Radvendii so then how is that not the same as a shell?
07:03 Radvendii and interrupts (like ctr-z) im sure you could figure out
07:03 sorear Radvendii: no support for pipes, $?, less-useful quoting, job control
07:03 Radvendii on now-adays computers? i would be *very* surprised if you couldnt
07:03 Radvendii why would it be hard to impliment pipes?
07:04 geekosaur Radvendii, mostly what it comes down to is that a general purpose language steals a lot more syntax
07:04 Radvendii geekosaur: why is that a problem? [legit question]
07:05 geekosaur maybe *you* like having to quote everything; most of us would rather not
07:05 Radvendii like what? give an example please? (sorry, im not understanding)
07:06 geekosaur also to take your pipes question as an example, either you're going to have a very odd overloading of the | operator or you are going to end up with something cumbersome
07:06 geekosaur oh dear.  if it's not obvious, perhaps you are not ready to work on shells
07:06 skids If your really interested in doing such a thing, download a sh source and go through all the files and think what they would take to implement.
07:07 geekosaur I suggest something simple like ash or a descendent thereof
07:07 Radvendii i would *use* the shell! just write a perl layer on top.
07:07 sorear aka 'almquist shell'
07:08 Radvendii it's not like starting from scratch...
07:08 sorear actually, it is
07:09 sorear 90% of the shell is syntax and semantics
07:09 skids and geeksaur's point is, if you are not just writing a sh in perl5/6, and want to put new syntax in, you have to figure out how to integrate the sh syntax and that of Perl5/6.  Grammatically, that;s going to be difficult because sh is a relatively awful grammar made worse by the "grammar" of the programs you are running.
07:09 geekosaur Radvendii, maybe the easiest answer is:  go do it.  You will learn what we mean fairly quickly, I suspect, justr from trying to use it
07:10 Radvendii alright
07:10 Radvendii in the mean time it's 2:00. i need to go to sleep
07:10 Radvendii good night!
07:10 isBEKaml joined #perl6
07:10 Radvendii thanks for the patience.
07:11 geekosaur (btw, I did write most of a shell at one point.  It's something I've since avoided.)
07:11 Radvendii haha
07:11 Radvendii alright.
07:11 Radvendii g'night
07:12 skids I think the biggest testament to the awfulness of sh is that, last time I looked, there was no parrot sh, despite the PCC making it a fad to start implementations for everything under the sun.
07:13 isBEKaml skids: there was psh,IIRC (but that was in p5, did parrot announce another one? ) :O
07:13 geekosaur some of that is that people tend to expect the originl bourne shell's quoting rules, which were (and still are)... difficult
07:14 geekosaur that was one thing I never tried to emulate fully, because the corner cases are very sharp and it turns out to be a complex fractal (i.e. LOTS of corners)
07:15 skids isBEKaml: not that I saw. But then, it is pretty hard to keep track of everything in parrot-land, given the general chaos.
07:16 isBEKaml skids: chaos in parrot land? I'm amused - all I can see is _dark_ silence (pardon the pun).
07:17 isBEKaml parrot folks seem to working out of a dark room (no news, blogs or anything of interest in general circles).
07:17 skids whitenight++ tries to blog.
07:18 bacek joined #perl6
07:20 geekosaur (note that emulating sh's quoting rules is not something that a p5/p6/python/whatever shellish thing should probably attempt; it's mostly useful for actual shell scripts, which it is nice to have work in anything that resembles a bourne shell)
07:20 isBEKaml skids: I'll try to follow his blog (but his last post was on 4Nov, not very frequent I'd say)
07:20 isBEKaml o/ geekosaur
07:21 sorear skids: PCT.  "PCC" is the Portable C Compiler (it generates code for BOTH vax AND pdp11!!!) and that left me spinning for a few loops
07:21 skids Oh right I was thinking "compiler collection" for some reason.
07:22 isBEKaml sorear: o/
07:22 sorear o/ isBEKaml
07:22 skids and, while I'm fixing thinkos/typos, whiteknight++
07:23 * geekosaur a little slow tonight, also notwork is being notworky (and how'd it get to be 0230?  no wonder I'm slow.  staying on local time probably doomed at this point...)
07:24 geekosaur pcc worked on more than pdp11/vax, but intel (unless you only supported "small model") did cause it some headaches
07:24 sorear move back to the "K" area and it will be 2330 :D
07:25 * sorear has seen a version of pcc for the 80386 32-bit "tiny" model
07:25 * skids realizes the time.  And the seriously low quality of the anime he's watching.  Should really pack it in for the night.
07:25 sorear geekosaur: "small" or "tiny"?
07:26 geekosaur both (PDP11 called "small" "split I and D")
07:26 sorear ah
07:26 skids So where are we on running Perl6 on 8-bit architectures :-)
07:26 sorear A lot of modern compilers aren't really well set up for split I/D
07:26 sorear didn't realize PDP had that 'feature'
07:28 isBEKaml speaking of small - there was also TCC - "Tiny C Compiler" but that was only for x86 archs
07:30 sorear "Tiny C Compiler" is a very modern thing
07:30 sorear are you perhaps thinking of "Turbo C" or "Small C"?
07:30 sorear both of which are mid-80s tech
07:30 isBEKaml BTW, what happened to Rakudo compile times these days? I tried to build rakudo y'day and it just was eating memory until I had to kill it. :/
07:31 isBEKaml sorear: I just said "was" - I'm not referring to modern or oldish stuff. :)
07:34 isBEKaml sorear: what's niecza compile times like? I might just try niecza (if rakudo doesn't look like compile times are getting low down soon)
07:35 sorear isBEKaml: 10 minutes for the first time
07:35 isBEKaml sorear: fair warning - my pc's pretty old (think like > 10 years)
07:35 sorear my pc is only from 2003
07:36 isBEKaml sorear: the first time? do you have separate bootstraps or something?
07:36 sorear isBEKaml: I mean that it uses "make"
07:36 isBEKaml sorear: ah, okay.. I have to set up the runtimes first (mono et al)
07:37 sorear isBEKaml: I recommend getting at least 2.8
07:37 sorear if you're on Debian that means building from source
07:37 isBEKaml sorear: I'm on slackware - building from source.
07:37 sorear it'll take about an hour (on my 9yo system), but the benefit is huge
07:38 isBEKaml sorear: Okay, I'll have to check if there are any additional steps specific to my distribution (I was just thinking of taking the stock 2.6 package off distribution sites)
07:39 sorear isBEKaml: niecza's self-compilation really needs about 256 MB of memory
07:40 sorear peak allocation is about 400
07:40 isBEKaml sorear: that's good enough for me - got about 512 megs here
07:41 kshannon Yeah,  rakudo needs about 2G atm...
07:42 Trashlord joined #perl6
07:42 skids isBEKaml: The blog with Nov 4th is his old blog, follow the link there, or maybe just planet.parrotcode.org for newer
07:43 sorear niecza: my $x = role { };
07:43 p6eval niecza v13-159-g4672447: OUTPUT«Potential difficulties:â�¤  $x is declared but not used at /tmp/jjtSQd8NtX line 1:â�¤------> [32mmy [33mâ��[31m$x = role { };[0mâ�¤â�¤Â»
07:43 sorear niecza: my $x = role [$x] { };
07:43 isBEKaml kshannon: been following your patches to rakudo with interest. good work! :)
07:43 p6eval niecza v13-159-g4672447: OUTPUT«Potential difficulties:â�¤  $x is declared but not used at /tmp/_dTJFGZFUE line 1:â�¤------> [32mmy $x = role [[33mâ��[31m$x] { };[0mâ�¤â�¤Â»
07:43 tadzik g'morning
07:44 isBEKaml tadzik! o/
07:44 isBEKaml is that really morning? looks about 11am.. :D
07:44 tadzik hi isBEKaml \o
07:44 tadzik it's 8:44
07:45 tadzik that's the mornest morning I've since I didn't sleep through the night on wed ;)
07:45 baest_ joined #perl6
07:45 isBEKaml tadzik: "mornest morning" ;)
07:45 cosimo joined #perl6
07:46 isBEKaml skids: yeah, I'll add that (I generally dislike planet aggregations since it tends to grab all things together)
07:47 isBEKaml sorear: mono lists libgdiplus as a dependency. Okay if I install an older one and go for the latest mono source?
07:47 isBEKaml sorear: older one -> older libgdiplus
07:48 sorear isBEKaml: probably not, but it's worth trying since niecza doesn't actually use libgdiplus
07:49 sorear o/ tadzik
07:49 bacek joined #perl6
07:56 isBEKaml sorear: okay. BTW, Niecza's README suggests getting 2.6 mono - correct that one?
07:56 sorear isBEKaml: 2.6 is the minimum requirement
07:56 sorear 2.8 is just twice as fast
07:57 sorear I don't know if it works on 2.4; if it doesn't, I don't care
07:57 sorear but I'll actively keep it working on 2.6.7 for some time yet
07:59 araujo joined #perl6
07:59 araujo joined #perl6
07:59 isBEKaml sorear: Oh, I see
08:04 Kharec joined #perl6
08:04 Kharec hi
08:04 phenny Kharec: 07 Jan 22:32Z <masak> tell Kharec may I humbly recommend http://strangelyconsistent.org/b​log/june-1-2011-input-and-output for learning Perl 6? all of the posts can be found at http://strangelyconsistent.org/blog/list-of-posts
08:05 Kharec My rakudo compilation was finished, my installation too, any errors, but not any perl6, rakudo, nqp or p6 on the laptop. Strange!
08:06 sorear Kharec: by default, Rakudo installs into the directory "parrot_install"
08:06 kshannon What is the fudge 'emit' supposed to be used for (why use 'emit' rather than 'skip')?
08:06 sorear i.e. parrot_install/bin/perl6
08:07 sorear kshannon: hard weird cases
08:07 Kharec sorear: oops... I haven't specify it...
08:07 sorear kshannon: you shouldn't ever use it, but sometimes you have to
08:07 Kharec --"
08:08 kshannon Because it doesn't play well with others.  colomon-- added an emit to S02-names-vars/perl.t for niecza which screwed up rakudo's emit :(
08:08 isBEKaml Kharec: IIRC, there's still "--gen-parrot" option. If you have given that, it will fetch and build parrot and later install rakudo into the parrot_install folder after building it.
08:09 dalek roast: b976f54 | sorear++ | S14-roles/ (2 files):
08:09 dalek roast: [S14-roles] Niecza unfudges
08:09 dalek roast: review: https://github.com/perl6/roast/commit/b976f54548
08:09 kshannon Ahh,  I bet it's because it's in the middle of a list...
08:11 sorear #?skip only works with calls to testing functions
08:14 Kharec isBEKaml: I used it! perl Configure.pl --gen-nqp --gen-parrot
08:14 Kharec make
08:14 Kharec and after, make install.
08:14 sorear Kharec: you will find your perl6 in parrot_install/bin/perl6
08:14 Kharec ok thanks
08:15 sorear if you wanted perl6 available from the shell, you needed to have used --gen-parrot-prefix=/usr/local
08:15 sorear and wait  for the whole thing to rebuild because it's not relocatable
08:15 Kharec instead of --gen-parot
08:15 sorear in addition to
08:16 Kharec nope, I will use it from the repertory and link it to /usr/local/bin/
08:16 tadzik Kharec: you can just add /path/to/parrot_install/bin to your $PATH
08:16 tadzik I'm doing it that way
08:17 Kharec tadzik: sure!
08:19 Kharec but if I link it, i can write #!/usr/bin/perl6 for portable scripts
08:21 tadzik if you write #!/usr/bin/perl6 the scripts won't be portable at all
08:21 tadzik #!/usr/bin/env perl6 is probably a better choice
08:21 Kharec tadzik: Oh. You're right.
08:21 tadzik in which it also doesn't matter where your perl6 lives
08:22 Kharec right, right.
08:31 sayu joined #perl6
08:32 tokuhirom joined #perl6
08:37 dalek niecza: 99d652d | sorear++ | / (3 files):
08:37 dalek niecza: Implement sub mixins and mixin of class names (fixes #100)
08:37 dalek niecza: review: https://github.com/sorear/niecza/commit/99d652daa7
08:37 dalek roast: 5c378f6 | sorear++ | S14-roles/mixin.t:
08:37 dalek roast: [S14-roles/mixin] Unfudge for sorear/niecza#100
08:37 dalek roast: review: https://github.com/perl6/roast/commit/5c378f6499
08:58 * sorear -> sleep
08:58 sorear tentative next project: constant folding
08:58 isBEKaml sorear: g'night. sleep well
09:20 sayu joined #perl6
09:24 sayu joined #perl6
09:34 donri joined #perl6
09:35 Mowah joined #perl6
09:36 moritz fwiw the default install location is now just install/bin
09:36 moritz not parrot_install anymore
09:44 Kharec left #perl6
09:44 isBEKaml moritz: o/
09:46 mkramer joined #perl6
09:49 moritz \o isBEKaml
09:50 tadzik hello moritz
09:51 moritz tadzik o/
09:51 isBEKaml moritz: personally, I find rakudo's 2gig requirement for builds to be insane.. but then, #perl6 is the place of insanity.
09:51 * isBEKaml ducks
09:53 isBEKaml moritz: Oh, how's Ronja? :)
09:53 moritz isBEKaml: I'm well aware. I've tried to split the setting in two to ease the memory burden, but it's  a rather complex undertaking :/
09:54 moritz isBEKaml: Ronja is doing well; she's turning 1 year next Saturday :-)
09:54 mkramer joined #perl6
09:54 tadzik nice :)
09:54 tadzik my sister's daughter turned 2 yesterday
09:54 moritz or rather, adding a second, staged setting was easy; migrating stuff from core1 to core2 is what's hard
09:54 tadzik "two" is the only number she can say, too ;)
09:54 isBEKaml moritz: aww, that's nice. :)
09:56 isBEKaml tadzik: well, that's a lot better than having your niece pull at your nose everytime you call her out! ;)
09:57 moritz and ronja is starting to pull herself up to both feet
09:57 tadzik no, she just brings me books for her to read, one after another :)
09:58 moritz tadzik: and does she listen while you read?
09:58 isBEKaml moritz: good question! :D
09:59 moritz I know a ~2.5-year old who brings books for reading in very quick succession, but runs off after the second page
10:01 tadzik moritz: yeah, she can point when the animals are and stuff :)
10:01 moritz nom: my Int @a; say @a.WHAT
10:01 isBEKaml kids and their fun... :)
10:01 p6eval nom 327fc9: OUTPUT«Array+{TypedArray}()␤»
10:01 tadzik I have to ask questions carefully, since for "how many..." she always answers "two"
10:01 moritz tadzik: well, that's good
10:01 moritz :-)
10:01 tadzik Mathilda goes for another book when I finish the previous one
10:02 isBEKaml tadzik: In my case, I just have to ask "When does you mom come back from work?" "Two 'o clock!". Or rather, "When does..." "Two 'o clock!" :)
10:02 tadzik :P
10:02 tadzik there was a phase when my nephew always asked "yes" for every question
10:02 isBEKaml It's always "Two 'o clock!"
10:02 tadzik no, sorry, that was "me"
10:03 tadzik "who's loudest in the car?" "me!"
10:03 tadzik "who didn't eat his dinner?" "me!"
10:03 isBEKaml :D
10:03 tadzik but then, his dad asks "who's washing the dishes today?"
10:03 tadzik "...daddy!"
10:04 isBEKaml that's awesome! knows where his nickels are! :)
10:04 dalek roast: 77b4e58 | moritz++ | S (2 files):
10:04 dalek roast: RT #77748, type object gistification of typed array
10:04 dalek roast: review: https://github.com/perl6/roast/commit/77b4e5807a
10:05 tadzik yeah, he's clever one, being 8 now
10:05 isBEKaml moritz: speaking about builds, any chance you could post a "mini" blog post about that stuff? There's a chance somebody can chime in after reading it.
10:06 moritz isBEKaml: I'll try
10:06 tadzik what are our plans on Star?
10:06 sayu joined #perl6
10:07 moritz tadzik: jnthn++ had some things he wanted to fix in rakudo and zavolaj (I think he mentioned them yesterday, or the day before) and then release
10:07 tadzik okay
10:07 isBEKaml moritz: thanks!
10:08 dalek rakudo/staged-settings: 62de8d2 | moritz++ | / (3 files):
10:08 dalek rakudo/staged-settings: first experiment with two-staged setting
10:08 dalek rakudo/staged-settings:
10:08 dalek rakudo/staged-settings: the new setting between CORE and the user program is called CORE2.
10:08 dalek rakudo/staged-settings: How uninspired
10:08 dalek rakudo/staged-settings: review: https://github.com/rakudo/rakudo/commit/62de8d2936
10:08 dalek rakudo/staged-settings: cee2658 | moritz++ | tools/build/Makefile.in:
10:08 dalek rakudo/staged-settings: fix up the dependency of SAFE; install CORE2
10:08 dalek rakudo/staged-settings: review: https://github.com/rakudo/rakudo/commit/cee26583d7
10:13 isBEKaml moritz++ #experiment initiated!
10:15 moritz the task is "just" to move stuff from CORE to CORE2
10:15 moritz ... and still having it compile
10:17 isBEKaml o.O(items in storage, lab systems ready to go!)
10:37 dalek roast: d140c59 | moritz++ | S02-names-vars/names.t:
10:37 dalek roast: RT #77750, :: as a term
10:37 dalek roast: review: https://github.com/perl6/roast/commit/d140c59789
10:41 dalek rakudo/staged-settings: 89a1a8c | moritz++ | / (3 files):
10:41 dalek rakudo/staged-settings: move Pod to core2; fix more dependencies
10:41 dalek rakudo/staged-settings: review: https://github.com/rakudo/rakudo/commit/89a1a8c2a5
10:51 Mowah joined #perl6
10:52 dalek roast: facbde9 | kshannon++ | / (17 files):
10:52 dalek roast: Make fudge 'emit' gobble up other fudge lines first
10:52 dalek roast:
10:52 dalek roast: If two implementations were both using 'emit' in
10:52 dalek roast: the same place,  only the last one worked.
10:52 dalek roast:
10:52 dalek roast: There were also a few places which depended on
10:52 dalek roast: multiple successive emit lines, which have been
10:52 dalek roast: updated.
10:52 dalek roast:
10:52 dalek roast: A future project would be rewriting fudge from
10:52 dalek roast: scratch so it's not quite so spaghetti like...
10:52 dalek roast: review: https://github.com/perl6/roast/commit/facbde9ee1
10:53 sayu joined #perl6
11:06 masak morning, #p6
11:06 moritz \o masak
11:06 tadzik o/
11:06 isBEKaml o/
11:16 dalek roast: 7922e91 | kshannon++ | / (17 files):
11:16 dalek roast: Revert my last commit.
11:16 dalek roast:
11:16 dalek roast: Not the right solution.
11:16 dalek roast: review: https://github.com/perl6/roast/commit/7922e91b8a
11:32 replore joined #perl6
11:32 masak rewriting fudge from scratch sounds like an excellent hackathon task for a group of 2..3 people using TDD :)
11:36 isBEKaml ah, TDD done by TDD!
11:36 isBEKaml Or, s/done//
11:40 masak :)
11:42 kshannon Well,  I've added a little more spaghetti instead...   Just rechecking I haven't broken anything else.
11:43 kshannon I'v seen a couple of times recently where fudge would fall off the end of the file and be trying to read from STDIN :(
11:43 masak huh.
11:45 spine joined #perl6
11:57 dalek rakudo/staged-settings: 7aed098 | moritz++ | / (3 files):
11:57 dalek rakudo/staged-settings: move Main.pm to core2
11:57 dalek rakudo/staged-settings: review: https://github.com/rakudo/rakudo/commit/7aed098230
11:57 dalek rakudo/staged-settings: ac44e3c | moritz++ | tools/build/Makefile.in:
11:57 dalek rakudo/staged-settings: move Grammar to core2
11:57 dalek rakudo/staged-settings: review: https://github.com/rakudo/rakudo/commit/ac44e3cd35
11:57 dalek rakudo/staged-settings: b8af1ec | moritz++ | src/core/control.pm:
11:57 dalek rakudo/staged-settings: remove dependency between control.pm and terms.pm
11:57 dalek rakudo/staged-settings: review: https://github.com/rakudo/rakudo/commit/b8af1ec0e7
12:00 donri joined #perl6
12:03 moritz somehow I can't seem to move Instant, Duration and Temporal to core2
12:03 moritz which IMHO should work, and that's nearly 700 lines of code
12:03 isBEKaml holysmokes, niecza only takes a third of the time to run a program than it was with Rakudo! :)
12:04 isBEKaml but it maxes out the cpu though (blame it on mono)
12:04 jnthn moritz: "can't"? How does it fail?
12:05 moritz jnthn: "rtype not set" whe compiling CORE
12:05 isBEKaml hola, jnthn! :)
12:05 jnthn eek
12:05 jnthn o/ isBEKaml
12:06 moritz I did several different attempts, another one failed with a message that an object of type Sub was missing an SC context
12:07 isBEKaml masak: got a question - how does niecza play with yapsi? (I know, been a long time :| )
12:07 masak isBEKaml: I remember sorear working on supporting Yapsi. he had to tweak a number of things in the Yapsi source, but he did get it working.
12:08 masak sorear will know more.
12:09 isBEKaml phenny: tell sorear I got niecza installed on my machine. masak++ was telling me that you worked on making Yapsi play well on Niecza. Can you let me know the details? I can take it further, perhaps.
12:09 phenny isBEKaml: I'll pass that on when sorear is around.
12:10 moritz jnthn: ah, that problem also appears when I move only the Date and DateTime multis into core2, and leave the rest as-is
12:11 mkramer joined #perl6
12:12 isBEKaml jnthn: is 6model abandoned or does it reside within nom these days? :)
12:13 moritz it's in nqp
12:13 moritz src/6model/
12:13 moritz and it's not all abandoned, rakudo and nqp use it heavily
12:14 isBEKaml moritz: I saw that last night when I tried building rakudo. Killed it, built nqp and later pointed rakudo to use the pre-built nqp. Still ate loads of memory. :(
12:14 isBEKaml moritz: My question was more about the 6model that resides in jnthn/6model as backends for CLR and JVM. :)
12:15 moritz ah, that one lags behind
12:15 isBEKaml ah
12:15 dalek roast: 33cafa9 | kshannon++ | fudge:
12:15 dalek roast: Completely skip any 'emit' fudges for other implementations
12:15 dalek roast: review: https://github.com/perl6/roast/commit/33cafa9714
12:15 dalek roast: 1d6c88b | kshannon++ | / (2 files):
12:15 dalek roast: Fudge rakudo for new Rat.perl standard
12:15 dalek roast: review: https://github.com/perl6/roast/commit/1d6c88bab6
12:15 isBEKaml jnthn: ping
12:17 isBEKaml phenny: ask jnthn if there's any chance of bringing the 6model repo in his repository uptodate with the latest 6model in nqp. Anything that I can do to help. (don't know much about architecture, but will try to pick things up)
12:17 phenny isBEKaml: I'll pass that on when jnthn is around.
12:19 isBEKaml Will be back later tonight. Have a good day, folks! o/
12:19 moritz \o ingy
12:19 moritz erm, meant isBEKaml, but he was already gone
12:19 moritz and i<tab> got ingy :-)
12:20 masak ...mis-tabbing claims another victim... :)
12:24 moritz nom: say Any.new ~~ Any.new
12:24 p6eval nom 327fc9: OUTPUT«Bool::False␤»
12:24 moritz nom: class A { }; say A.new ~~ A.new
12:24 p6eval nom 327fc9: OUTPUT«Bool::False␤»
12:25 moritz nom: class A {}; say A.new ~~ A.new
12:25 p6eval nom 327fc9: OUTPUT«Bool::False␤»
12:26 whiteknight joined #perl6
12:35 moritz masak: I'm confused by RT #107740
12:35 moritz nom: class A {}; say A.new ~~ A.new
12:35 p6eval nom 327fc9: OUTPUT«Bool::False␤»
12:35 moritz that's what fails in the ticket
12:36 jnthn mebbe we were missing Any.ACCEPTS
12:36 phenny jnthn: 12:17Z <isBEKaml> ask jnthn if there's any chance of bringing the 6model repo in his repository uptodate with the latest 6model in nqp. Anything that I can do to help. (don't know much about architecture, but will try to pick things up)
12:36 moritz urks, that ticket is using a rakudo from 2011-11-04
12:36 masak moritz: closing ticket.
12:36 moritz masak: did you have that in your inbox for long?
12:36 masak moritz: yes, that's exactly what happened. I found it drafts.
12:38 masak should I close it, or mark it testsneeded?
12:38 moritz masak: close it. Tests in S03-smartmatch/any-any.t
12:39 jnthn phenny: tell isBEKaml I'm mostly focusing on doing some stuff in NQP at the moment to make portability to e.g. CLR and JVM easier. One is switching to QRegex, which I'm on with. Another will be finishing and moving to QAST. At that point we should have very little PIR code left to depend on, and getting NQP bootstrapped on another VM will be a realistic prospect. Now any effort will block on the NQP tasks I'm doing. Help with that is most welcome though! :)
12:39 phenny jnthn: I'll pass that on when isBEKaml is around.
12:39 jnthn moritz: (DateTime multis) weird.
12:41 jnthn moritz: I'll try and re-create it later today.
12:42 moritz jnthn: I can push it into a branch if you want, to make recreation easier
12:42 jnthn moritz: That also works :)
12:43 * jnthn looks deeper into the NFA issue he found yesterday
12:53 masak p6cc registration is now closed. 35 people signed up!
12:54 masak judging from last year, 9 or 10 or so will submit solutions :P
12:58 colomon \o/
13:01 Mowah joined #perl6
13:04 mkramer joined #perl6
13:04 kshannon masak: As long as I don't get bogged down in trying to fix bugs I find when writing my solutions :)
13:08 colomon kshannon: but that's the whole point of the contest!  ;)
13:10 dalek niecza: 4bbc204 | (Solomon Foster)++ | t/spectest.data:
13:10 dalek niecza: Turn on integration/advent2009-day08.t.
13:10 dalek niecza: review: https://github.com/sorear/niecza/commit/4bbc204c72
13:10 jnthn kshannon: Your find_method patch probably needs to be reverted, I'm afraid.
13:11 jnthn kshannon: find_method should not throw an exception on method not found, but instead return a null or undefined value. The throwing find_method is the thing to fix.
13:11 jnthn Suppressing all exceptions in some custom find_method is also problematic.
13:12 jnthn Plus the exception handler on a hot path has caused something of a slowdown.
13:13 kshannon Yeah, I've noticed that nqp and rakudo have a lot invested in throwing exceptions in find_method...
13:13 jnthn If they're throwing to indicate method not found, then those throws are wrong.
13:14 jnthn (Yes, they're probably also my fault. :))
13:14 kshannon *grin*
13:15 jnthn kshannon: What was the original bug that you were fixing, if you can remember?
13:15 kshannon --target=past couldn't dump.
13:16 kshannon I've got some patches to parrot I'm working on to make the dumping more robust,  but that's a band aid over the real problem.
13:17 jnthn Where is the dumping code for that today?
13:17 kshannon There's bits of the innards in 6model which throw on method not found,  and Failure throws on just about all method lookups...
13:17 jnthn In the Parrot repo?
13:17 jnthn Failure should throw on method lookups, I think.
13:18 jnthn The innards sound like they need fixing though
13:18 kshannon https://github.com/parrot/parrot/pull/239 is my pull request,  but I'm still working on cleaning it up further and adding some tests to exercise it.
13:24 sudokode joined #perl6
13:24 dalek rakudo/staged-setting-fail: 390b435 | moritz++ | / (3 files):
13:24 dalek rakudo/staged-setting-fail: move Date ops to core2
13:24 dalek rakudo/staged-setting-fail:
13:24 dalek rakudo/staged-setting-fail: fails during compilation of CORE with "rtype not set"
13:24 dalek rakudo/staged-setting-fail: review: https://github.com/rakudo/rakudo/commit/390b435620
13:24 moritz jnthn: pushed branch staged-setting-fail for you
13:26 araujo joined #perl6
13:26 araujo joined #perl6
13:32 MarkBerlin joined #perl6
13:32 MarkBerlin hello
13:33 masak hi!
13:35 MarkBerlin is there a deb-package of perl6 (parrot)?
13:36 masak I seem to recall there is.
13:36 kshannon http://packages.debian.org/search?keywords=parrot  and  http://packages.debian.org/sid/rakudo
13:36 MarkBerlin google says not many
13:36 masak might be a bit dated at this point, because development still proceeds pretty fast.
13:37 masak kshannon++
13:37 MarkBerlin thanks mr. kshannon  =)
13:37 masak MarkBerlin: the reason you won't find it under "perl6" is that there are several Perl 6 implementations.
13:38 MarkBerlin which one is the best?
13:38 REPLeffect joined #perl6
13:39 kshannon That's like asking which is better: vi or emacs.
13:39 MarkBerlin hehe
13:39 masak MarkBerlin: we have two competing for "best" right now.
13:39 masak Rakudo and Niecza.
13:39 masak to a first approximation, Rakudo is the more featureful, but Niecza is faster.
13:40 masak see also http://perl6.org/compilers/features
13:42 MarkBerlin thanks for your advise
13:42 MarkBerlin i think, i will download the source and then compile
13:43 masak that's a good idea.
13:43 masak let us know if you encounter any problems along the way.
13:44 MarkBerlin includes the source of rakudo  also the VM parrot?
13:44 MarkBerlin maybe no?
13:45 masak it downloads it during 'perl Configure.pl --gen-parrot'
13:45 masak downloads and builds it.
13:46 MarkBerlin cool
13:48 moritz question to all the git geeks:  git branch -a  also lists branches under remotes/origin/foo that have been deleted from github. How do I get rid of those?
13:54 mucker joined #perl6
13:55 lumi___ moritz: I'm not a git pro, but does git fetch --prune sound like what you want?
14:04 masak maybe 'git branch -d remotes/origin/foo' ?
14:04 masak but you've probably already tried that... :)
14:05 lumi___ moritz: git remote prune ?
14:06 masak try the #git channel? ;)
14:10 moritz lumi___: thanks, git fetch --prune seems to do what I want
14:10 kshannon lumi___++ has it right: git remote prune origin
14:19 dalek roast: 3beca23 | (Solomon Foster)++ | S06-multi/type-based.t:
14:19 dalek roast: Fudge for niecza.
14:19 dalek roast: review: https://github.com/perl6/roast/commit/3beca23051
14:19 colomon phenny: tell sorear Look at the fudging in S06-multi/type-based.t -- there are several common cases of multi dispatch that niecza doesn't handle yet.
14:19 phenny colomon: I'll pass that on when sorear is around.
14:20 dalek niecza: 2549654 | (Solomon Foster)++ | t/spectest.data:
14:20 dalek niecza: Turn on S06-multi/type-based.t.
14:20 dalek niecza: review: https://github.com/sorear/niecza/commit/254965439b
14:20 zhu_yj joined #perl6
14:28 colomon phenny: tell sorear Also it seems that multi foo { ... } (with no signature) breaks multi handling for foo.
14:28 phenny colomon: I'll pass that on when sorear is around.
14:31 dalek nqp/qbootstrap: a3bb381 | jnthn++ | src/QHLL/Grammar.pm:
14:31 dalek nqp/qbootstrap: Get a few more tests by fixing quotemod checking.
14:31 dalek nqp/qbootstrap: review: https://github.com/perl6/nqp/commit/a3bb3815f9
14:31 dalek nqp/qbootstrap: a60d71e | jnthn++ | src/6model/knowhow_bootstrapper.c:
14:31 dalek nqp/qbootstrap: KnowHOW's find_method should not throw to indicate method not found (kshannon++).
14:31 dalek nqp/qbootstrap: review: https://github.com/perl6/nqp/commit/a60d71e7e2
14:31 dalek nqp/qbootstrap: a5de18f | jnthn++ | src/pmc/sixmodelobject.pmc:
14:31 dalek nqp/qbootstrap: Remove find_method exception handler, which is the wrong fix. Also, explicitly implement can.
14:31 dalek nqp/qbootstrap: review: https://github.com/perl6/nqp/commit/a5de18fb1a
14:31 dalek nqp/qbootstrap: af9aa47 | jnthn++ | src/ (2 files):
14:31 dalek nqp/qbootstrap: Ensure tracing does not mess up NFA state lookup.
14:31 dalek nqp/qbootstrap: review: https://github.com/perl6/nqp/commit/af9aa47269
14:32 tokuhirom joined #perl6
14:35 dalek roast: 0d9e55e | (Solomon Foster)++ | S06-multi/syntax.t:
14:35 dalek roast: Add a couple of trivial but obvious tests.  Fudge for niecza.
14:35 dalek roast: review: https://github.com/perl6/roast/commit/0d9e55ece5
14:35 dalek niecza: 026a721 | (Solomon Foster)++ | t/spectest.data:
14:35 dalek niecza: Turn on S06-multi/syntax.t.
14:35 dalek niecza: review: https://github.com/sorear/niecza/commit/026a72107c
14:38 moritz wow, qbootstrap passes some tests again
14:38 jnthn moritz: Yes :)
14:39 jnthn nqp: if 1 != 2 { say('ok 4'); }
14:39 p6eval nqp: OUTPUT«ok 4␤»
14:39 jnthn ok, fixing that can be the next challenge...
14:41 moritz might be LTM
14:41 moritz ./nqp -e '1 == 2'
14:41 jnthn --rxtrace suggests it doesn't parse an infix.
14:41 moritz Assignment ("=") not supported in NQP, use ":=" instead at line 1
14:41 jnthn aha
14:42 jnthn Yeah, something is very busted there
14:45 jnthn BTW, --rxtrace gives tree-ish output these days :)
14:45 jnthn Not nearly as nice as Grammar::Tracer though. Yet. :)
14:48 jnthn hmm, yeah, somehow it never crosses the fate edge for ==
14:52 jnthn .u =
14:52 phenny U+003D EQUALS SIGN (=)
14:54 masak what's the name of that program which adds a history/REPL to any unix tool?
14:55 moritz rlwrap
14:55 jnthn rlwrap?
14:56 jnthn nom: say chr(120) ~ chr(58) ~ chr(115) ~ chr(121) ~ chr(109) ~ chr(171) ~ chr(61) ~ chr(61)
14:56 p6eval nom 327fc9: OUTPUT«x:sym«==␤»
14:56 jnthn epic fail
14:57 moritz is that what it's looking for?
14:57 jnthn yeah, the NFA that gets generated for == is hosed
14:57 jnthn This probably explains a bunch of the failures
14:57 jnthn oh
14:57 masak moritz++ jnthn++: thanks
14:57 jnthn It's anything that uses « I guess
14:58 jnthn oh, it may not even be the NFA's fault
14:58 jnthn nah, I think it's <sym> handling.
15:01 arnsholt masak: I <3 rlwrap. Makes life so much simpler for many things
15:01 masak I've used rlwrap for exactly three minutes, and I <3 it too.
15:02 arnsholt I use it for my Lisp development. Neither SBCL nor Allegro have readline in their CLI REPLs. Really annoying
15:06 dalek nqp/qbootstrap: 6d3fb4f | jnthn++ | src/QRegex/P6Regex/Actions.nqp:
15:06 dalek nqp/qbootstrap: Handle French quote case of :sym (probably need something more general in the long run).
15:06 dalek nqp/qbootstrap: review: https://github.com/perl6/nqp/commit/6d3fb4ff09
15:07 jnthn Well. That drastically cut down the number of test failures.
15:10 jnthn nqp: say(q<foo>)
15:10 p6eval nqp: OUTPUT«foo␤»
15:10 jnthn nqp: say(q   <foo>)
15:10 p6eval nqp: OUTPUT«foo␤»
15:14 jnthn In qbootstrap, it's parsing that as a name q followed by a postcircumfix.
15:15 shinobicl___ joined #perl6
15:26 mj41 joined #perl6
15:47 colomon niecza: say 1e10.FatRat.WHAT
15:47 p6eval niecza v13-160-g99d652d: OUTPUT«Rat()␤»
15:51 unixms joined #perl6
15:54 Woodi hi ppls :)
15:54 colomon o/
15:55 [Coke] colomon: I se you were hard at work. kicking off another run.
15:55 colomon hold a moment.
15:56 [Coke] heee!
15:56 dalek nqp/qbootstrap: 3d22db6 | jnthn++ | src/NQPQ/Grammar.pm:
15:56 dalek nqp/qbootstrap: Couple of small tweaks that help trim various branches earlier, saving time and making the trace less noisy.
15:56 dalek nqp/qbootstrap: review: https://github.com/perl6/nqp/commit/3d22db65ae
15:56 dalek nqp/qbootstrap: b24283c | jnthn++ | src/QHLL/Grammar.pm:
15:56 dalek nqp/qbootstrap: Get LANG working-er.
15:56 dalek nqp/qbootstrap: review: https://github.com/perl6/nqp/commit/b24283c467
15:56 dalek roast: 3edaa5f | (Solomon Foster)++ | S32-num/fatrat.t:
15:56 dalek roast: First stab at a general FatRat test.  Mostly derived from rat.t.
15:56 dalek roast: review: https://github.com/perl6/roast/commit/3edaa5fdfd
15:56 [Coke] ok.
15:56 dalek niecza: 177806b | (Solomon Foster)++ | t/spectest.data:
15:56 dalek niecza: Turn on S32-num/fatrat.t.
15:56 dalek niecza: review: https://github.com/sorear/niecza/commit/177806b06b
15:56 colomon There you go.  :)
15:56 Woodi is there a Coffe and Chocolate and Pizza Fund for Perl6 Developers ? :)
15:57 colomon Woodi: alas, not that I know of.
15:57 * colomon would prefer Cider and Pizza.  ;)
15:57 Woodi TPF do not have one ? :)
15:58 colomon they have a big fund for grants
15:58 Woodi thats to big :)
15:58 Woodi I was speeking seriously :)
15:58 colomon but I don't think, for instance that TPF ever paid for lunch or dinner when TimToady and I got together with the Parrot gang at YAPC::NA last year.
15:59 colomon Mind you, the good company at those gatherings was more than worth the price of the meal!
16:00 Woodi hmm, thats idea - contact YAPC organizers to shedule free pizza session around noon :)
16:01 Woodi ok, anyone considered something like "persistence as a first class construct" ? http://labs.oracle.com/projects/qvm/
16:04 am0c joined #perl6
16:09 PacoAir joined #perl6
16:09 moritz I guess you can play with persistent REPRs in 6model
16:10 jnthn Probably.
16:10 jnthn No reason in theory why you couldn't have a REPR that has e.g. disk based object storage.
16:11 Woodi 6model is in C ?
16:12 moritz Woodi: yes
16:12 moritz jnthn: the problem is probably more to make the values from disc storage available to the program again somehow
16:13 jnthn yeah, that's the harder bit to wire up
16:13 Woodi just asked to be sure :) how is with use it with many threads ?
16:13 jnthn moritz: Think we're up to two thirds of NQP test suite passing on qbootstrap now
16:15 spine nom: say (-9)%(-9)
16:15 p6eval nom 327fc9: OUTPUT«-9␤»
16:15 spine niecza: say (-9)%(-9)
16:15 p6eval niecza v13-160-g99d652d: OUTPUT«0␤»
16:20 Woodi why moving data from disk back to app can be harder ?
16:20 moritz Woodi: it's not that importing it back is harder, but it also needs to be made available to the program in some form
16:21 moritz it's nice if an object is loaded, but it's only useful if some variable points to it
16:22 zby_home_ joined #perl6
16:24 Woodi I thinked varible/object first needs data from storage and asks about it using REPR or proxy...
16:28 masak oh, we haven't fixed the "module sucks in Rakudo" bug yet? :/
16:28 masak do we have failing spectests for it?
16:29 masak we should at least work around it somehow...
16:29 jnthn Which bug?
16:29 masak nom: say (-9)%(-9)
16:29 p6eval nom 327fc9: OUTPUT«-9␤»
16:29 * masak gets the RT ticket
16:29 jnthn What's that got to do with modules?
16:30 masak modulo*
16:30 masak https://rt.perl.org/rt3/Tic​ket/Display.html?id=107492
16:30 moritz b: say (-9) % (-9)
16:30 p6eval b 1b7dd1: OUTPUT«0␤»
16:31 jnthn oh.
16:31 * jnthn shoulda seen that was a typo...
16:32 masak jnthn: also, http://irclog.perlgeek.de/​perl6/2012-01-03#i_4924416
16:32 masak well, it's tricky when the typo means something, too :)
16:36 jnthn ah, it's a libtommath quirk. OK.
16:38 masak what should we do about it?
16:39 masak work around it in the wrapper code; fix libtomath; ditch libtomath? :)
16:39 jnthn er, no way are we doing the last of those :)
16:39 masak just trying to be comprehensive :)
16:39 jnthn The first two are good options. Hard to know which is best.
16:39 masak aye.
16:40 masak I'd like to talk to someone who wrote libtomath and ask them if they know about this, and whether there's any reason for results to come out all wrong.
16:41 jnthn masak: Please do. :)
16:48 masak ah, #libtom here on freenode. nice.
16:48 * masak goes there
16:51 isBEKaml joined #perl6
16:51 masak there; I asked them. it's quite a small channel, and no-one seems active there right at this moment. we'll see if they pick it up. otherwise I'll try later when it becomes active.
16:51 masak isBEKaml! \o/
16:51 isBEKaml OHHAIYO! :)
16:51 phenny isBEKaml: 12:39Z <jnthn> tell isBEKaml I'm mostly focusing on doing some stuff in NQP at the moment to make portability to e.g. CLR and JVM easier. One is switching to QRegex, which I'm on with. Another will be finishing and moving to QAST. At that point we should have very little PIR code left to depend on, and getting NQP bootstrapped on another VM will be a realistic prospect. Now any effort will block on the NQP tasks I'm doing. Help with that is mo
16:52 isBEKaml jnthn: you missed something there? or bad phenny again? :)
16:52 jnthn phenny ;)
16:52 jnthn t welcome!
16:53 jnthn Maybe IRC line length limit rather than phenny's fault, though.
16:53 isBEKaml jnthn: wow.. anything more specific? (with usual caveats and no guarantees ;)
16:54 jnthn isBEKaml: Well, at the moment the blocker is the tests that fail in the qbootstrap branch of nqp
16:55 jnthn There may be some LHF in some of them. It can be hard to tell "deep problem needing a couple of horus" from "solvable in 5 minutes" at times, though.
16:55 isBEKaml jnthn: and fixing those tests or falsifying them? :P
16:55 jnthn The tests are almost certainly valid.
16:56 jnthn So, fixing whatever's breaking 'em.
16:56 * masak wouldn't go near a problem requiring more than one Horus
16:56 masak :P
16:57 isBEKaml masak: Horus?
16:57 jnthn Most of them seem to come down to 2 issues, though. One being infinite recursion while building an NFA for the regex parser. The other being that somehow it's losing parent and role.
16:57 jnthn Hmm, if Swedish had a case system that could be a declension of Hora :P
16:57 masak isBEKaml: just making fun of jnthn's spelling... :)
16:57 isBEKaml lol
16:57 masak jnthn: oh, I was thinking Egyptian god, but to each his own... :)
16:58 jnthn I, er...dang. P
16:58 jnthn :P
17:01 isBEKaml jnthn: any way I can run specific tests? make test qregex?
17:01 jnthn nqp t/nqp/the-test.t # to run one
17:02 jnthn prove --exec=nqp t/nqp # do this in the qbootstrap branch to run them all
17:04 isBEKaml jnthn: other than TODOs, tests seem to pass.....
17:04 isBEKaml oh qbootstrap.
17:05 jnthn yes :)
17:05 jnthn nom: grammar a { token x { a }; token TOP { <x> [b||c] } }; say a.parse('ab')
17:05 p6eval nom 327fc9: OUTPUT«=> <ab>␤ x => <a>␤␤»
17:06 jnthn nom: grammar a { token x { a }; token TOP { [<x>]? [b||c] } }; say a.parse('ab')
17:06 p6eval nom 327fc9: OUTPUT«=> <ab>␤ x => <a>␤␤»
17:06 jnthn nom: grammar a { token x { a }; token y { z } token TOP { [<x>]? [b <y> ||c] } }; say a.parse('abz')
17:07 p6eval nom 327fc9: OUTPUT«===SORRY!===␤Unable to parse blockoid, couldn't find final '}' at line 2␤»
17:07 jnthn nom: grammar a { token x { a }; token y { z }; token TOP { [<x>]? [b <y> ||c] } }; say a.parse('abz')
17:07 p6eval nom 327fc9: OUTPUT«=> <abz>␤ x => <a>␤ y => <z>␤␤»
17:07 jnthn nom: grammar a { token x { a }; token y { z }; rule TOP { [<x>]? [b <y> || c] } }; say a.parse('abz')
17:07 p6eval nom 327fc9: OUTPUT«#<failed match>␤»
17:07 jnthn nom: grammar a { token x { a }; token y { z }; rule TOP { [<x>]? [b <y> || c] } }; say a.parse('a b z')
17:07 p6eval nom 327fc9: OUTPUT«=> <a b z>␤ x => <a>␤ y => <z>␤␤»
17:08 isBEKaml question for gitxperts: how do I pull changes from a specific remote branch after "git checkout -t <remotebranch> "?
17:08 jnthn nom: grammar a { token x { a }; token y { z }; rule TOP { [<x>]? [c || b <y>] } }; say a.parse('a b z')
17:08 p6eval nom 327fc9: OUTPUT«=> <a b z>␤ y => <z>␤␤»
17:09 masak isBEKaml: 'git pull origin <branch>'?
17:09 jnthn ah, there it is :(
17:09 masak jnthn: o.O
17:09 jnthn nom: grammar a { token x { a }; token y { z }; rule TOP { <x> [c || b <y>] } }; say a.parse('a b z')
17:09 p6eval nom 327fc9: OUTPUT«=> <a b z>␤ x => <a>␤ y => <z>␤␤»
17:10 jnthn nom: grammar a { token x { a }; token y { z }; rule TOP { [<x>]? [c || b <y>] } }; say a.parse('a b z')
17:10 p6eval nom 327fc9: OUTPUT«=> <a b z>␤ y => <z>␤␤»
17:10 jnthn masak: You spot the issue?
17:11 jnthn Seems it needs an alternation that fails and a previously quantified match.
17:11 isBEKaml masak: uhh, last commit on that branch was on jan 5? Or have I tracked the wrong one? or simply checked out to a local branch after giving the correct remote repo branchname?
17:11 isBEKaml git--
17:11 jnthn masak: Feel free to RT that
17:12 * masak submits rakudobug
17:12 moritz isBEKaml: if you had that branch previously checked out, you also need 'git pull' after that
17:13 moritz or git fetch; git merge origin/qbootstrap # which is the same, really
17:13 masak jnthn: I think I spot it. the order of rhs and lhs around '||' affects captures.
17:13 jnthn yeah but only if the previous capture was quantified.
17:14 masak ah, right.
17:14 masak insidious.
17:14 isBEKaml moritz: ah, I did it while on master and it showed the relevant filesets. So went thinking I didn't need to do it on branch. :(
17:15 snearch joined #perl6
17:15 isBEKaml moritz: so I fetched it again. thanks!
17:16 PacoAir joined #perl6
17:16 jnthn masak: yeah, no fun to find
17:16 isBEKaml moritz: (backlogging) I...claimed..ingy? :O
17:17 moritz isBEKaml: you were gone, I hit i<tab> and hit ingy. I was not clever enough to actually read what I wrote before pressing enter :-)
17:18 masak jnthn: it's now #107746.
17:18 isBEKaml moritz: great! now we are all going to name our nicks after few targets.. predators vs prey! :P
17:18 moritz both are pre<tab> :-)
17:19 moritz but the m<tab>s are much worse, really :-)
17:19 moritz nom: say 9 % -9
17:19 p6eval nom 327fc9: OUTPUT«0␤»
17:19 moritz nom: say 3 % -9
17:19 p6eval nom 327fc9: OUTPUT«-6␤»
17:19 m1l3st0n3 now ehh...
17:20 moritz m1l3st0n3: :-)
17:20 moritz nom: say (-10) % -9
17:20 p6eval nom 327fc9: OUTPUT«-1␤»
17:20 moritz is (-9) % (-9) the only case that's broken?
17:20 m1l3st0n3 moritz: I gain first preference in lexical order! :D
17:21 moritz lexicographic, maybe
17:21 moritz or are you in the most-inner scope? :-)
17:21 moritz erm, inner-most
17:21 isBEKaml *, moritz. :)
17:22 jnthn nom: grammar a { token x { a }; token y { z }; rule TOP { [<x>]? [c || b <y>] } }; say a.parse('a b z')
17:22 p6eval nom 327fc9: OUTPUT«=> <a b z>␤ y => <z>␤␤»
17:22 jnthn nom: grammar a { token x { a }; token y { z }; rule TOP { [<x>]* [c || b <y>] } }; say a.parse('a b z')
17:22 p6eval nom 327fc9: OUTPUT«=> <a b z>␤ y => <z>␤␤»
17:22 jnthn nom: grammar a { token x { a }; token y { z }; rule TOP { [<x>]+ [c || b <y>] } }; say a.parse('a b z')
17:22 p6eval nom 327fc9: OUTPUT«=> <a b z>␤ y => <z>␤␤»
17:24 moritz nom: say 9 % -9
17:24 p6eval nom 327fc9: OUTPUT«0␤»
17:25 masak moritz: that's currently correct because two bugs cancel each other out!
17:25 moritz masak: which two?
17:26 moritz ah, parsing bug
17:26 moritz nom: say 9 % (-9)
17:26 p6eval nom 327fc9: OUTPUT«-9␤»
17:26 moritz "huh"
17:26 moritz what it parse the other one as?
17:26 isBEKaml nom: (9 % (-9)).say
17:26 p6eval nom 327fc9: OUTPUT«-9␤»
17:26 moritz nom: say 9 % (-9)
17:26 p6eval nom 327fc9: OUTPUT«-9␤»
17:27 moritz nom: say (-9) % (-9)
17:27 p6eval nom 327fc9: OUTPUT«-9␤»
17:27 masak moritz: if you find that out, let me know.
17:27 isBEKaml nom: say (-9) % 9
17:27 p6eval nom 327fc9: OUTPUT«0␤»
17:27 isBEKaml huh
17:28 masak that's correct.
17:28 isBEKaml oh, right..
17:28 isBEKaml nom: say 9 % ((-) 9)
17:28 p6eval nom 327fc9: OUTPUT«===SORRY!===␤Preceding context expects a term, but found infix - instead at line 1, near ") 9)"␤»
17:29 tokuhirom joined #perl6
17:29 isBEKaml nom: say (9 % (-1 * 9))
17:29 p6eval nom 327fc9: OUTPUT«-9␤»
17:29 thou joined #perl6
17:29 x3nU nom: (print "Hello World")
17:29 p6eval nom 327fc9: OUTPUT«Hello World»
17:29 x3nU yeah, perl6 is lisp-compatible
17:29 x3nU :D
17:29 isBEKaml nom: say 9 % (-1)
17:29 p6eval nom 327fc9: OUTPUT«-1␤»
17:31 isBEKaml perl6: say 9 % (-1)
17:31 p6eval rakudo 327fc9: OUTPUT«-1␤»
17:31 p6eval ..pugs b927740, niecza v13-160-g99d652d: OUTPUT«0␤»
17:31 moritz nom: say 80 % (-9)
17:31 p6eval nom 327fc9: OUTPUT«-1␤»
17:32 isBEKaml is "-1" special cased in rakudo?
17:33 moritz no
17:34 moritz it's the same bug as with -9
17:34 isBEKaml nom: say (10 % -10)
17:34 p6eval nom 327fc9: OUTPUT«0␤»
17:35 isBEKaml nom: say (10 % (-10))
17:35 p6eval nom 327fc9: OUTPUT«-10␤»
17:36 masak argh, I keep wanting Perl 5 to have arity-1 &sort blocks! :)
17:38 Yary joined #perl6
17:40 Yary Hi all... there are some tests in the perl6 "make spectest" that hang-
17:40 moritz aye, me too
17:40 Yary in t/spec/S03-operators/range.rakudo "is ~('Y'..'z'), 'Y Z'"
17:40 moritz Yary: which version of rakudo are you testing? and which test files hang?
17:40 Yary perl6:  ~(('Y'..'z')[0..3])
17:40 p6eval pugs b927740, rakudo 327fc9, niecza v13-160-g99d652d:  ( no output )
17:41 Yary hmm
17:41 jnthn nom: say ~(('Y'..'z')[0..3])
17:41 p6eval nom 327fc9: OUTPUT«Y Z AA AB␤»
17:41 sorear good * #perl6
17:41 phenny sorear: 12:09Z <isBEKaml> tell sorear I got niecza installed on my machine. masak++ was telling me that you worked on making Yapsi play well on Niecza. Can you let me know the details? I can take it further, perhaps.
17:41 phenny sorear: 14:19Z <colomon> tell sorear Look at the fudging in S06-multi/type-based.t -- there are several common cases of multi dispatch that niecza doesn't handle yet.
17:41 phenny sorear: 14:28Z <colomon> tell sorear Also it seems that multi foo { ... } (with no signature) breaks multi handling for foo.
17:41 moritz nom: say ~('Y' .. 'z')
17:41 Yary The one I'm using is This is perl6 version 2011.12-37-gb86c667 built on parrot 3.11.0 revision RELEASE_3_11_0
17:41 p6eval nom 327fc9: OUTPUT«(timeout)»
17:41 Yary moritz: Oh I met you just hung num
17:41 Yary nom
17:42 Yary I remember there being discussion on perl6-lang about ranges and case boundries, how it can be hard to do right
17:42 Yary when you get away from ascii
17:42 Yary iin any case, not good to have spectest hang partway through
17:43 moritz agreed
17:45 isBEKaml that test sucks
17:46 Yary niecza: say ~(('Y'..'z')[0..3])
17:46 p6eval niecza v13-160-g99d652d: OUTPUT«Y Z AA AB␤»
17:46 isBEKaml moritz: I don't know what the idea was behind that test. From the looks of it, it just tests for Y Z in the range Y..z ? :/
17:47 isBEKaml sorear: o/
17:47 sorear o/ isBEKaml
17:48 isBEKaml moritz: in any case, I see that it's meant to be skipped by both rakudo and niecza. Or have I missed something?
17:48 dalek niecza: dab47b7 | sorear++ | lib/CORE.setting:
17:48 dalek niecza: Ensure that Num.FatRat always returns a FatRat, colomon++
17:48 dalek niecza: review: https://github.com/sorear/niecza/commit/dab47b7b53
17:49 Yary It looks to be testing the elements a range generates. If it's meant to be skipped by Rakudo, the skipping wasn't working on my build
17:49 Yary which is a plain-vanilla nom build, I think
17:49 Yary from githib
17:49 colomon sorear: I meant to take a further look at that.  In theory, we can exactly convert a Num to a FatRat, can't we?
17:50 sorear colomon: Yes
17:50 sorear that example will work in most cases
17:50 isBEKaml nqp: say(q  <foo 7>)
17:50 p6eval nqp: OUTPUT«foo 7␤»
17:50 sorear hmm, I wonder if this will work --
17:51 sorear niecza: say 0e0.FatRat.perl
17:51 p6eval niecza v13-160-g99d652d: OUTPUT«FatRat.new(1, 8988465674311579538646525953945123668089884894711​5328636715040578866337902750481566354238661203768​0105600569399356966788293948844072083112464237153​1973706218888394671243274263815110980062304705972​654147604250288441907534117123144073695655527…
17:51 sayu joined #perl6
17:51 isBEKaml hmm, that fails here..
17:51 sorear as I expected :|
17:51 masak o.O
17:51 sorear GetAsRational needs to be smarter about handling irregular numbers (NaN, Inf, 0, denormals)
17:51 TimToady by spec ('Y'..'z')[0..3] should return Y Z [ \
17:51 phenny TimToady: 00:44Z <sorear> tell TimToady I am curious about the validation rules for type_constraint.  Are the examples given just before this message supposed to be legal in a real implementation?
17:52 moritz Yary: weird, I get no hang here
17:52 Yary nom: say ~(('Y'..'_')[0..3])
17:52 p6eval nom 327fc9: OUTPUT«Y Z AA AB␤»
17:52 Yary the hang isn
17:52 TimToady S03:3526 transmutes the .. to a ...
17:52 Yary 't with the [0..3]
17:52 Yary it's when you remove the index
17:52 TimToady and ... treats single char endpoints specially
17:52 sorear not that NaN.FatRat makes much sense (perhaps it should throw?)
17:53 Yary "say ~('Y'..'z')", "say ~('Y'..'_')" hangs
17:53 moritz Yary: I mean I ran the test here, and got no hang
17:53 Yary oh, "make spectest" skips over those for you?
17:53 moritz Yary: because of #?rakudo 4 skip   directive
17:53 moritz Yary: yes
17:53 sorear isBEKaml: There is a 'niecza' branch in the yapsi repository which worked out of the box back when it was current
17:54 moritz Yary: what's the last commit in your t/spec/ repo?
17:54 sorear niecza: say $*PROGRAM_NAME
17:54 p6eval niecza v13-160-g99d652d: OUTPUT«/tmp/s4AgZun1HK␤»
17:54 Yary moritz: so I need to "git pull?" ... let's see
17:55 moritz Yary: you shouldn't have to; 'make spectest' in rakudo calls 'git pull' in t/spec/
17:55 Yary moritz: "git status" doesn't tell me- I'm no git guru... what is git command to tell me where I am
17:55 Yary moritz: I thought I saw it do a "git pull"
17:56 Yary moritz: the spectest was from two days ago, let's see if anything has changed...
17:56 sorear git rev-parse HEAD
17:56 sorear git status
17:56 moritz or just paste the first line from 'git log'
17:56 Yary ok in the "rakudo" dir- $ git rev-parse HEAD says 975b6bb4603a6ecdc1c29e96388aec77896333d8
17:56 isBEKaml sorear: Okay, I'll check
17:57 Yary same in ~/rakudo/t
17:57 sorear isBEKaml: seems it mostly still works - one failing test
17:57 Yary I'll make spectest again now
17:57 sorear but in the intervening half-year I implemented undef warnings, and it's... quite spammy with them
17:57 moritz Yary: the output in t/spec/ is more interesting
17:58 isBEKaml sorear: spammy? :) You mean it spews a lot messages?
17:58 Yary same in there
17:59 moritz Yary: is there no .git dir inside your t/spec/ directory?
17:59 Yary moritz: no
17:59 moritz Yary: that's very odd
18:00 Yary moritz: so I presume that means I have some kind of old spectest dir that isn't tracked by git?
18:00 moritz Yary: exactly
18:00 isBEKaml Yary: you sure you checked that with "ls -a" t/spec? Or did you directly download the tests?
18:00 moritz rm -rf t/spec/; make spectest # fetches a new t/spec/ for you via git
18:00 Yary moritz: I hate wasting people's time like that!
18:01 Yary isBEKaml: I checked with "ls .git" while in the spec dir
18:01 isBEKaml Yary: no worries. Let us know what you find running what moritz said..
18:02 Yary moritz: "rm -rf t/spec/ && make spectest" is more pedantically correct :-)
18:03 Yary this is going to be a while, I'll report back when there's something reportable
18:03 Yary Going to refresh/rebuild rakudo too while I'm at this
18:04 isBEKaml jnthn: nqp -e 'say(q  <7 okay>)'
18:04 isBEKaml jnthn: spews gibberish. :|
18:04 isBEKaml pretty sure I just built a freshly pulled branch.
18:05 isBEKaml nqp: say(q   <okay bar>)
18:05 p6eval nqp: OUTPUT«okay bar␤»
18:05 jnthn isBEKaml: Right, that's one of the failing tests that needs fixing.
18:05 jnthn isBEKaml: It's mis-parsing it as a term q followed by a postcircumfix, rather than a quoting construct
18:05 isBEKaml jnthn: the nqp on p6eval is an older one that was working?
18:05 jnthn I ain't sure why yet
18:06 jnthn isBEKaml: The nqp on p6eval is the current nqp master branch
18:06 jnthn isBEKaml: The qbootstrap branch is the one where the switch to qregex as the engine for parsing NQP is being made.
18:07 isBEKaml jnthn: I see... misparsing, .. sounds right! :)
18:08 sorear isBEKaml: yes
18:09 sorear jnthn: good sign for my 6model-fu that I came to the same conclusion re. find_method and exceptions
18:09 jnthn isBEKaml: Yeah, a mis-parse. It wsan't immediately obvious to me why.
18:10 jnthn sorear: Yeah, I've cleared that up now
18:10 isBEKaml sorear: well, my plan was mostly to keep yapsi updated (atleast to some extent more than what it's on, if not updated to the latest on whatever implementation it's on)
18:10 moritz nom: say 81 % -9
18:10 isBEKaml jnthn: so you have zeroed in on the offending code now? :)
18:10 p6eval nom 327fc9: OUTPUT«0␤»
18:11 moritz nom: say 81 % (-9)
18:11 p6eval nom 327fc9: OUTPUT«-9␤»
18:11 sorear isBEKaml: try 'git diff master..niecza'
18:11 TimToady sorear: regarding type constraints, in any real language there are always things that make syntactic sense but do no make semantic sense; you really don't want a language that solves everything with syntax...
18:11 sorear isBEKaml: almost all of those changes are still necessary; some of them are also needed for nom?
18:12 isBEKaml sorear: I think I didn't make myself clear: I wasn't aiming at specific implementation level targets. All I said was, if it's on niecza - yapsi can also be in step with niecza. same with other compiler implementations.
18:13 sorear TimToady: there is, at least, a well-defined interpretation of what sub (where * > 0 Real $x) means
18:13 isBEKaml (big undertaking, I know)
18:13 sorear TimToady: I just think it's too ugly to be legal :p
18:13 TimToady a language that prevents ugly can't be beautiful
18:14 TimToady an example from English that can only be solved with lexical lookup: "the three sheep" vs "the three dog"
18:15 TimToady (barring elaborate setup for what a "three dog" is :)
18:16 TimToady and any productive mechanism in a language can be abused to the point of ugliness
18:17 TimToady English allows nouns to be used as adjectives, but...
18:19 unixms joined #perl6
18:19 TimToady Please sign and return the spring quarter law school summer schedule coordination committee meeting agenda addenda sheet enclosure soon.  Be brief.
18:19 jnthn Time for a break &
18:24 sorear colomon: your complaint about MMD is just Bug #101
18:24 isBEKaml jnthn: Do you recognise this? //gist.github.com/1579217
18:25 colomon sorear: is it?  It gets different error messages...
18:26 PacoAir joined #perl6
18:28 geekosaur .oO { three dog night }
18:28 sorear shrug, to me #101 generically means "MMD isn't finished"
18:29 [Coke] # 01/08/2012 - niecza at 95.45%
18:29 * sorear isn't quite sure what the point of a bunch of "X isn't finished" tickets is
18:29 sorear but there aren't too many of them
18:29 sorear [Coke]: Wow!
18:29 TimToady sorear: it is impossible to test constraints on a value without putting it somewhere first; this is why Ada first distinguished what it called the base type of a variable (what we'd call the storage type) from it's constrained type
18:30 TimToady constraints are one of those areas where you either have to solve the halting problem in your type system, or allow the program to think "evil thoughts"
18:30 TimToady Int $x where * %% 2 is one of those evil thoughts that must be allowed
18:30 sorear TimToady: I was just thinking that the constraint would be evaluated with the value in quarantine
18:31 TimToady the parameter declaration can be viewed as a kind of quaranteen, and the evil values should not leak out past the 'where'
18:31 TimToady but it's problematic to say there must be a mechanism to enforce such a quaranteen
18:31 [Coke] sorear++, colomon++, I haven't added any functionality lately. ;)
18:32 TimToady some things just have to be erroneous, another lesson from Ada
18:32 [Coke] and it's not a rakudo regression, either, rakudo is also passing more tests.
18:32 isBEKaml [Coke]: I don't understand what the percentages are about... Test coverage or tests passing?
18:32 colomon sorear: actually, there was example from the spectests I saw after we talked about it...
18:32 colomon sorear: sub foo($a, $b where { $a < $b })
18:32 isBEKaml [Coke]: In any case, both are good. :)
18:33 [Coke] passing spec tests.
18:33 [Coke] https://gist.github.com/1476841 shows the ongoing saga.
18:34 jan_ joined #perl6
18:35 TimToady for certainly kinds of constraints, one can optimize things into the type system, but in general that's a path to madness, and unimplementability
18:35 * geekosaur wonders if the right answer to that kind of thing is $^a
18:35 TimToady the designers of Ada worried a lot about implementability, and it was only just bare implementation in that day
18:35 TimToady *barely
18:37 TimToady I will say that one of the reasons for evaluating the parameter bindings left-to-right is to guarantee that any where clauses to the left of the comma have given their okay before the parameter gets used later
18:37 TimToady but you could certainly do evil things with side effects in a constraint
18:38 colomon mwah hah hah HAH!
18:38 TimToady at some point community standards have to be enforced by the community...
18:40 isBEKaml jnthn: the rxtrace output for the above weird error: https://gist.github.com/1579267
18:43 birdwindupbird joined #perl6
18:46 ingy o/ moritz :)
18:46 moritz \o ingy :-)
18:48 ingy . o ( does Perl 6 have a working PSGI web framework? )
18:55 icwiener joined #perl6
19:00 kaare_ joined #perl6
19:00 pochi joined #perl6
19:03 cooper joined #perl6
19:19 jferrero joined #perl6
19:21 ingy *crickets*
19:21 isBEKaml what does pir::find_method__PPs do?
19:25 Trashlord joined #perl6
19:30 simcop2387 joined #perl6
19:30 cognominal that's a convention to call pir opcode from NQP
19:30 cognominal find_method is the opcode
19:30 cognominal PPs is its siignature
19:32 cognominal the signature convention is document in the beginning of parrot/compilers/pct/src/PAST/Compiler.pir
19:32 Mowah joined #perl6
19:32 cognominal *documented
19:33 Yary following up on my earlier problems with "make spectest"- it is working (not hanging) now that I have updated the spectest
19:34 Yary ingy: Have you tried https://github.com/mberends/http-server-simple ?
19:35 Yary ingy: "A Perl 6 implementation of the Perl 5 HTTP::Server::Simple::PSGI". I don't know if it works
19:39 isBEKaml cognominal: thanks! I was searching for the docs for a while and gave up. Should have looked there. :)
19:40 cognominal it took me a while to figure out.
19:44 kaare_ joined #perl6
19:48 dalek nqp: b0eb530 | moritz++ | 3rdparty/libtommath/bn_mp_mod.c:
19:48 dalek nqp: fix bigint mod with negative numbers
19:48 dalek nqp: review: https://github.com/perl6/nqp/commit/b0eb5301ab
19:49 tadzik ingy: yeah, it does :)
19:50 tadzik ingy: Bailador is my Dancer clone, it used to use HTTP::Server::Simple, now it uses HTTP::Easy
19:52 x3nU tadzik: is it possible to deploy application written using Bailador as CGI or FCGI application?
19:52 x3nU or only using built-in server?
19:56 LlamaRider joined #perl6
19:57 LlamaRider hi all o/
19:58 masak hi LlamaRider!
19:58 masak how goeth the p6cc coding?
19:59 LlamaRider had a break for some days, other stuffs. But now I'm back to it and one thing got me intrigued (hence I'm here :))
19:59 masak do tell.
20:00 LlamaRider I couldn't find info on switching number systems, hex/oct/binary in Perl6 and what does mean for the types
20:00 LlamaRider those mean**
20:00 moritz nom: say 1234.base(16)
20:00 p6eval nom 327fc9: OUTPUT«4D2␤»
20:00 moritz nom: say :16(4F2)
20:00 p6eval nom 327fc9: OUTPUT«===SORRY!===␤Malformed radix number at line 1, near "(4F2)"␤»
20:00 moritz nom: say :16('4F2')
20:00 p6eval nom 327fc9: OUTPUT«1266␤»
20:00 LlamaRider seriously now...
20:01 moritz nom: say :16('4D2')
20:01 p6eval nom 327fc9: OUTPUT«1234␤»
20:01 moritz it helps if one can type
20:01 isBEKaml nom: say :16(0x4D2)
20:01 p6eval nom 327fc9: OUTPUT«4660␤»
20:01 moritz nom: say 0x4D2
20:01 p6eval nom 327fc9: OUTPUT«1234␤»
20:01 moritz LlamaRider: anyway, that's how one switches between number systems
20:01 isBEKaml nom: say 013
20:01 p6eval nom 327fc9: OUTPUT«13␤»
20:01 moritz std: 013
20:01 p6eval std dc62e1d: OUTPUT«Potential difficulties:â�¤  Leading 0 does not indicate octal in Perl 6; please use 0o13 if you mean that at /tmp/uRyaGs8h4T line 1:â�¤------> [32m013[33mâ��[31m<EOL>[0mâ�¤ok 00:01 118mâ�¤Â»
20:01 isBEKaml nom: say :8(013) # 0 prefixed isn't octal?
20:02 p6eval nom 327fc9: OUTPUT«11␤»
20:02 moritz isBEKaml: nope, it isn't
20:02 LlamaRider neat.
20:02 moritz isBEKaml: 0o prefix is
20:02 isBEKaml nom: say 0o13;
20:02 p6eval nom 327fc9: OUTPUT«11␤»
20:02 LlamaRider And the typing is oblivious of the base since they have nothing to do with each other?
20:03 moritz LlamaRider: correct
20:03 masak isBEKaml: why would a '0' prefix mean octal? that makes no sense at all :P
20:03 isBEKaml masak: POLA! :)
20:03 masak sorry, is that an acronym?
20:03 masak I'm not familiar with it.
20:03 moritz LlamaRider: internally all numbers are stored as binary; bases only come into play when you convert between numbers and strings
20:03 isBEKaml buubot_backup: eval(print 013);
20:04 moritz Principle Of Least... Astronomy? Astonishment? Atonement?
20:04 isBEKaml Astonishment.
20:04 moritz buubot_backup: eval: 013
20:04 masak Least Astigmatism.
20:04 isBEKaml perl -le 'print 013'
20:04 isBEKaml 11
20:04 moritz isBEKaml: it's only "least astonishment" if you're used to one of those languages that do non-obvious stuff
20:04 masak isBEKaml: we reserve the right to break with tradition when tradition makes no sense.
20:04 LlamaRider moritz: thanks, good to know. Now I have what I came for *scribbles away*
20:04 moritz I mean, why should a 0 mean base 8, and not... base 0? or 16? or 12?
20:05 moritz nom: say 'FF'.unbase(16)
20:05 p6eval nom 327fc9: OUTPUT«Method 'unbase' not found for invocant of class 'Str'␤  in block <anon> at /tmp/DXp2iF4KXO:1␤  in <anon> at /tmp/DXp2iF4KXO:1␤»
20:05 moritz hm
20:05 masak moritz: because base 8 is very natural on a machine where the word size is 12 bits, duh :)
20:05 moritz nom: say unbase('FF', 16)
20:05 p6eval nom 327fc9: OUTPUT«Nominal type check failed for parameter '$base'; expected Int but got Str instead␤  in sub unbase at src/gen/CORE.setting:3839␤  in block <anon> at /tmp/EpWPelMY0m:1␤  in <anon> at /tmp/EpWPelMY0m:1␤»
20:05 moritz nom: say unbase(16, 'FF')
20:05 p6eval nom 327fc9: OUTPUT«255␤»
20:05 moritz not sure if that's spec
20:05 moritz probably not
20:05 moritz but that's what :16(...) uses under the hood, iirc
20:05 masak oh, ok.
20:06 masak they do seem similar.
20:06 masak I can't decide whether 'unbase' is suggestive of its function, or just confusing :)
20:06 * colomon has never heard of unbase
20:06 isBEKaml moritz: by all means, break all you want. But I argue that error messages should be indicative of those! :)
20:06 moritz isBEKaml: did you see STD's warning?
20:06 moritz std: say 07
20:06 p6eval std dc62e1d: OUTPUT«Potential difficulties:â�¤  Leading 0 does not indicate octal in Perl 6; please use 0o7 if you mean that at /tmp/N4WpuQ1Ns0 line 1:â�¤------> [32msay 07[33mâ��[31m<EOL>[0mâ�¤ok 00:01 119mâ�¤Â»
20:07 isBEKaml moritz: rakudo's?
20:07 moritz no, STD's
20:07 colomon niecza: say 07
20:07 p6eval niecza v13-165-gdab47b7: OUTPUT«Potential difficulties:â�¤  Leading 0 does not indicate octal in Perl 6; please use 0o7 if you mean that at /tmp/8823he7iOF line 1 (EOF):â�¤------> [32msay 07[33mâ��[31m<EOL>[0mâ�¤â�¤7â�¤Â»
20:07 LlamaRider unbase seems completely confusing to me out of context ^^
20:07 isBEKaml colomon: that's prolly because niecza uses STD's parser under the hood.
20:07 kaare_ joined #perl6
20:08 isBEKaml moritz: I saw STD's. Rakudo's looseness doesn't make sense. :P
20:08 isBEKaml nom: say 013
20:08 p6eval nom 327fc9: OUTPUT«13␤»
20:08 moritz isBEKaml: rakudo just doesn't throw parse-time warnings yet, that's all
20:08 LlamaRider Doesn't something like    'FF'.Int(:base(16))   make more sense?
20:09 isBEKaml moritz: oh, ok
20:10 masak LlamaRider: I think such a mechanism has been suggested at some point.
20:10 masak LlamaRider: my only argument against it is that :base is a property of the conversion, not of the resulting Int. not sure how heavily such an objection weighs.
20:10 dalek roast: b04f684 | moritz++ | S03-operators/arith.t:
20:10 dalek roast: RT #107492, mod with negative divisor
20:10 dalek roast: review: https://github.com/perl6/roast/commit/b04f68477c
20:11 moritz nom: my $n = 16; say :$n('FF')
20:11 p6eval nom 327fc9: OUTPUT«Method 'postcircumfix:<( )>' not found for invocant of class 'Pair'␤  in <anon> at src/gen/Metamodel.pm:3368␤  in block <anon> at /tmp/f5OKtjLQU1:1␤  in <anon> at /tmp/f5OKtjLQU1:1␤»
20:11 masak moritz: that will never work.
20:11 masak it cannot.
20:11 moritz nom: my $n = 16; say eval ":$n('FF')"
20:11 p6eval nom 327fc9: OUTPUT«Method 'postcircumfix:<( )>' not found for invocant of class 'Int'␤  in <anon> at src/gen/Metamodel.pm:3368␤  in block <anon> at /tmp/toHWkVdWio:1␤  in <anon> at /tmp/toHWkVdWio:1␤»
20:11 moritz nom: my $n = 16; say eval ":{$n}('FF')"
20:11 p6eval nom 327fc9: OUTPUT«255␤»
20:11 LlamaRider eval ftw ^^
20:12 masak /o\
20:12 kaare__ joined #perl6
20:12 isBEKaml moritz: okay, now add another constraint into p6eval sandbox. Ban all evals! :P
20:12 gfldex joined #perl6
20:13 moritz why?
20:13 isBEKaml /o\
20:13 unixms joined #perl6
20:13 moritz eval is great fun!
20:14 tadzik x3nU: FCGI should work
20:14 LlamaRider masak: I think giving the base as a parameter to an Int method is much more revieling than "unbase". Maybe it needs a better name :inbase or :frombase or ...
20:15 LlamaRider revealing* (damn)
20:15 masak I like it how &eval is one of the concepts in CS that's so potent that we shy away from it and re-invent it in weaker forms that are safer to use :)
20:15 masak 'goto' is another.
20:15 sorear isBEKaml: fwiw, diakopter talked a while ago about ending all the sandbox restrictions and just relying on regular backups
20:15 isBEKaml nom: 'FF'.Int(:base(16)); #convert this string to an Int knowing full well that it's in hex format. Feels like LTR.
20:15 p6eval nom 327fc9:  ( no output )
20:15 masak class inheritance is another. (roles are a safer form)
20:16 LlamaRider isBEKaml:  what is LTR?
20:16 isBEKaml sorear: does that include qx?
20:16 sorear sadly, diakopter seems to have left us
20:16 sorear isBEKaml: yes
20:16 isBEKaml LlamaRider: LTR . "natural" #bad communication
20:16 sorear so I can't get this confirmed
20:16 isBEKaml sorear: wow
20:17 masak in some sense, programming language history seems to be constantly finding safer/more predictable ways of doing unsafe but interesting things.
20:18 isBEKaml LlamaRider: I meant that it reads well from left-to-right
20:19 LlamaRider got it :)
20:20 isBEKaml masak: somewhat tangential - LISP would not have come into existence had some idle grad student not implemented 'eval' out of djikstra's theoretical foundations! :D
20:20 isBEKaml (read that story - don't recall the source)
20:21 masak isBEKaml: McCarthy.
20:21 masak but yes.
20:21 sorear lisp is the classic example of software that was not 'released' so much as 'escaped'
20:22 dalek roast: 2b38b6a | moritz++ | integration/advent2009-day10.t:
20:22 dalek roast: fudge integration/advent2009-day10.t for rakudo
20:22 dalek roast: review: https://github.com/perl6/roast/commit/2b38b6a38c
20:22 kaare__ joined #perl6
20:23 dalek rakudo/nom: 13f3e6d | moritz++ | tools/build/NQP_REVISION:
20:23 dalek rakudo/nom: bump to an NQP revision that fixes negative bigint modulo
20:23 dalek rakudo/nom: review: https://github.com/rakudo/rakudo/commit/13f3e6db8f
20:23 dalek rakudo/nom: 8c5258a | moritz++ | t/spectest.data:
20:23 dalek rakudo/nom: run advent2009-day10.t
20:23 dalek rakudo/nom: review: https://github.com/rakudo/rakudo/commit/8c5258ae17
20:23 MayDaniel joined #perl6
20:23 colomon negative modulo fixed?  \o/
20:23 moritz evalbot rebuild nom
20:23 p6eval OK (started asynchronously)
20:24 TimToady note that nom is not behaving according to spec wrt S02:3365
20:24 sorear hmm - it would be relatively simple to have p6eval tell dalek when the compile is done
20:24 TimToady :8(42) is supposed to fail
20:25 masak moritz++
20:25 masak TimToady: hm, I wonder if we have an RT ticket for that...
20:25 * masak looks
20:26 colomon as opposed to :8<42>  ?
20:26 TimToady yes, that's fine
20:26 moritz TimToady: :8(Numeric) in general?
20:26 masak seems we don't.
20:26 TimToady :8(none(Str)) :)
20:26 cognominal joined #perl6
20:26 masak nom: say :8(42)
20:26 p6eval nom 327fc9: OUTPUT«34␤»
20:26 * masak submits rakudobug
20:27 colomon niecza: say :8(42)
20:27 p6eval niecza v13-165-gdab47b7: OUTPUT«[31m===[0mSORRY![31m===[0mâ�¤â�¤Runtime base conversions NYI at /tmp/bajj_wsuu9 line 1 (EOF):â�¤------> [32msay :8(42)[33mâ��[31m<EOL>[0mâ�¤â�¤Unhandled exception: Check failedâ�¤â�¤  at /home/p6eval/niecza/boot/lib/CORE.setting line 919 (die @ 2) â�¤  at /home/p6e…
20:27 moritz not hard to do
20:27 colomon nom: say :8("42")
20:27 p6eval nom 327fc9: OUTPUT«34␤»
20:28 moritz nom: say '42'.base(8)
20:28 sorear ln: creating hard link `/chroot/home/p6eval/dalek-queue' => `/home/drain/dalek-poller/queue': Operation not permitted
20:28 p6eval nom 327fc9: OUTPUT«Method 'base' not found for invocant of class 'Str'␤  in block <anon> at /tmp/Qhn9vdGz1h:1␤  in <anon> at /tmp/Qhn9vdGz1h:1␤»
20:28 sorear what's up with this?
20:28 sorear I used sudo
20:28 pothos joined #perl6
20:28 y3llow joined #perl6
20:28 moritz sorear: is /home/ mounted separately?
20:28 TimToady note also that :8<42> is a special form, so is not subject to val() semantics
20:29 moritz and subject to Str.Numeric semantics?
20:29 TimToady though even if it were, <42> counts 42 as a Str in addition to an Int
20:29 arlinius joined #perl6
20:30 colomon TimToady: right near there in the spec, there's an example (FatRat.new(1,1) * 2 ** -128)
20:30 y3llow joined #perl6
20:30 kaare_ joined #perl6
20:31 proller joined #perl6
20:31 colomon TimToady: that doesn't actually "work", does it?
20:31 masak TimToady: will both 'my Str $a = <42>;' and 'my Int $a = <42>;' work, or just one of them?
20:31 moritz colomon: I'd expect 2 ** -128 to return a Num
20:31 sorear moritz: I found the problem - chattr +a blocks updates to the link count, so I had to clear it temporarily
20:31 colomon moritz: that's why I say "work"
20:31 pothos joined #perl6
20:32 * colomon was thinking about these issues this morning while working on fatrat.t.
20:32 sorear colomon: ** has higher precedence, so 2 ** -128 will be evaluated first, returning Num
20:32 sorear Num takes precedence over FatRat, so the whole expression has type Num
20:33 y3llow joined #perl6
20:33 colomon sorear: the spec uses it as an example of FatRat construction, I think.  That's why I'm bringing it up
20:33 TimToady will have to think about that
20:33 TimToady meanwhile, 1/(2**128) should work
20:33 colomon 1/(2**128) should be a Num
20:34 mj41 joined #perl6
20:34 TimToady well, might as well just put 2**128 in the constructor
20:34 moritz FatRat.new(1, 2**128) works
20:34 colomon TimToady: yes, that will work fine
20:34 pothos joined #perl6
20:34 colomon it's an interesting issue, because...
20:34 TimToady feel free to fix the spec
20:34 * moritz fixes the spec
20:34 colomon TimToady++ moritz++
20:35 TimToady perl6: say (say 2**128).WHAT
20:35 p6eval pugs b927740: OUTPUT«34028236692093846346​3374607431768211456␤Bool␤»
20:35 p6eval ..rakudo 327fc9, niecza v13-165-gdab47b7: OUTPUT«340282366920938463463​374607431768211456␤Bool()␤»
20:35 TimToady perl6: say (2**128).WHAT
20:35 p6eval pugs b927740: OUTPUT«Rat␤»
20:35 p6eval ..rakudo 327fc9, niecza v13-165-gdab47b7: OUTPUT«Int()␤»
20:35 TimToady perl6: say (2**-128).WHAT
20:35 p6eval pugs b927740: OUTPUT«*** ␤    Unexpected "128"␤    at /tmp/w2Be2TBe9R line 1, column 10␤»
20:35 p6eval ..rakudo 327fc9, niecza v13-165-gdab47b7: OUTPUT«Num()␤»
20:35 colomon niecza: say FatRat.new(1,1) * 2 ** -1024
20:35 p6eval niecza v13-165-gdab47b7: OUTPUT«5.5626846462680035E-309␤»
20:35 colomon niecza: say FatRat.new(1,1) * 2 ** -2048
20:35 p6eval niecza v13-165-gdab47b7: OUTPUT«0e0␤»
20:36 moritz I guess FatRat.new(2, 0) ** -128  should work too, no?
20:36 colomon niecza: say FatRat.new(2, 0) ** -128
20:36 p6eval niecza v13-165-gdab47b7: OUTPUT«NaN␤»
20:36 colomon ooo, there's a bug
20:36 sorear 2, 1 might work better
20:36 colomon right
20:36 colomon niecza: say FatRat.new(2, 1) ** -128
20:36 p6eval niecza v13-165-gdab47b7: OUTPUT«2.9387358770557188E-39␤»
20:36 colomon niecza: say FatRat.new(2, 1) ** -2048
20:36 moritz niecza: say FatRat.new(1, 2) ** 128
20:36 p6eval niecza v13-165-gdab47b7: OUTPUT«0␤»
20:36 p6eval niecza v13-165-gdab47b7: OUTPUT«2.9387358770557188E-39␤»
20:37 moritz niecza: say (FatRat.new(1, 2) ** 128).WHAT
20:37 p6eval niecza v13-165-gdab47b7: OUTPUT«FatRat()␤»
20:37 colomon niecza: say (FatRat.new(2, 1) ** -2048).nude
20:37 p6eval niecza v13-165-gdab47b7: OUTPUT«1 3231700607131100730071487668866995196044410​2669715484032130345427524655138867890893197​2014115229134636887179609218980194941195591​5049092109508815238644828312063087736730099​6091750197750389652106796057638384067568276​79221864261975616183809433847617047058…
20:37 colomon there we are
20:37 isBEKaml nom: say FatRat.^methods(:local).perl
20:37 p6eval nom 327fc9: OUTPUT«===SORRY!===␤CHECK FAILED:␤Undefined routine '&FatRat' called (line 1)␤»
20:38 moritz isBEKaml: in nom, every Rat is fat right now
20:38 dalek specs: 2bffe34 | moritz++ | S02-bits.pod:
20:38 dalek specs: [S02] fix example for FatRat construction
20:38 dalek specs:
20:38 dalek specs: in the old example, 2 ** -128 returns a Num. colomon++
20:38 dalek specs: review: https://github.com/perl6/specs/commit/2bffe34f45
20:38 isBEKaml nom: say Rat.^methods(:local).perl
20:38 p6eval nom 327fc9: OUTPUT«(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())␤»
20:38 colomon :\
20:38 isBEKaml ...
20:39 moritz nom: say Rat.^methods(:local)
20:39 p6eval nom 327fc9: OUTPUT«new nude Num Int Bridge Rat succ pred WHICH Str perl numerator denominator␤»
20:39 * TimToady wishes someone would implement ^methods as specced so it has a sane defulat
20:39 TimToady default, even
20:39 isBEKaml .perl bites again
20:39 TimToady though a sane defulat would also be helpful
20:39 sorear evalbot control restart
20:40 p6eval joined #perl6
20:40 sorear evalbot rebuild niecza
20:40 moritz nom: say 9 % (-9)
20:40 masak it would be helupufl.
20:40 p6eval OK (started asynchronously)
20:40 p6eval nom 327fc9: OUTPUT«-9␤»
20:40 masak :(
20:41 moritz nom rebuild hasn't finished (yet?)
20:41 isBEKaml I would be grautuful
20:41 masak :U
20:41 sorear evalbot rebuild niecza
20:41 p6eval OK (started asynchronously)
20:41 moritz ah, out-of-memory while trying to compile the setting
20:41 dalek Rebuild of niecza complete. 0
20:41 moritz What is the 0 at the end?
20:41 sorear $?
20:42 TimToady \0/
20:42 isBEKaml I think $?
20:42 moritz sorear: maybe change that to "exit code 0" or so
20:42 TimToady maybe only say the exit if nonzero
20:42 moritz even better
20:42 moritz evalbot rebuild nom
20:42 p6eval OK (started asynchronously)
20:43 * sorear isn't quite sure how to write that
20:44 moritz if ($status != 0) { $msg ~= " exit code $status" }
20:44 isBEKaml or, $msg ~= " exit code $status" if $status
20:44 sorear that might work if it were perl :p
20:44 LlamaRider or, $status && $msg ~= "exit code $status"
20:45 isBEKaml wait, is that shell? :/
20:45 isBEKaml I saw ~= and thought it's perl
20:45 moritz if $? then echo "exit code $?"; else echo ""; fi
20:45 * moritz not good at shell
20:46 TimToady you could replace the whole message
20:48 sorear huh, the dalek poller is using 500mb virtual
20:48 dalek Rebuild of nom complete. 0
20:49 sorear nom: say $*PERL<version>
20:49 p6eval nom 327fc9: OUTPUT«Method 'at_key' not found for invocant of class 'Failure'␤  in method postcircumfix:<{ }> at src/gen/CORE.setting:1165␤  in block <anon> at /tmp/ClBfsuqKSZ:1␤  in <anon> at /tmp/ClBfsuqKSZ:1␤»
20:50 sorear looks like exit codes aren't working in the first place, and I'm not interested enough to find out why
20:50 * sorear removes the print
20:50 sorear evalbot control restart
20:50 p6eval joined #perl6
20:51 LlamaRider Why am I seing trigonometric operations in Str.^methods ? oO
20:51 LlamaRider seeing*
20:51 TimToady because the default is not yet sane
20:51 TimToady you're probably seeing things from Cool
20:52 dalek evalbot: bb5fc1e | (Perl 6 Evalbot)++ | / (2 files):
20:52 dalek evalbot: Announce end of rebuilds (I am sorear++ )
20:52 dalek evalbot: review: https://github.com/perl6/evalbot/commit/bb5fc1e6da
20:52 TimToady heh
20:52 sorear It seems that no-one ever "git pull"ed on the actual server after merging kshannon's Perl6 build changes
20:52 imarcusthis joined #perl6
20:54 sorear this has been... rectified.
20:54 masak sorear++ # taking care of... problems
20:54 * jnthn wonders whether to add an all_methods or something similar that the MOP can use
20:55 jnthn What TimToady++ considers sane for the user's needs is mostly insane for the way the MOP code uses .^methods internally :)
20:55 sorear jnthn: .^methods(:all), ne?
20:55 jnthn sorear: Yeah but :(
20:56 sorear But what?  No named arguments in NQP?
20:56 jnthn I can do it, it just feels odd that every internal usage the MOP ever makes of .^methods is going to have to pass it.
20:57 tim joined #perl6
20:57 jnthn Adverbs showing up all over the place are usually considered a code smell.
20:58 TimToady probably a good argument for a separate method
20:58 TimToady and methods(:all) just calls allmethods
20:58 TimToady or some such
20:58 sorear What sorts of things does the MOP use .^methods for?
20:58 jnthn *nod*
20:58 sorear btw, I just killed and restarted the poller, -0.5 GB swap used
20:59 TimToady or make .^can without args return all the methods :)
20:59 jnthn sorear: Off hand, the role composer...
20:59 jnthn TimToady: heh :)
20:59 jnthn Anyway, I'll try and get the change to .^methods in before the next Rakudo release.
21:00 sorear jnthn: I don't see why the role composer should need to enumerate the full list of inherited methods
21:00 TimToady it keeps confusing new arrivals :)
21:01 sorear nom: 1
21:01 p6eval nom 8c5258:  ( no output )
21:01 jnthn There may be an argument that all of the internals of the MOP should walk the mro and to .method_table anyway.
21:01 sorear nom: (-81) % (-9)
21:01 p6eval nom 8c5258:  ( no output )
21:01 sorear nom: say (-81) % (-9)
21:01 p6eval nom 8c5258: OUTPUT«0␤»
21:01 jnthn *do
21:02 jnthn TimToady: Any views on Method.perl?
21:02 jnthn I can make it do method name(sig) { ... } quite easily...
21:03 TimToady beats a kick in the head
21:03 jnthn Most things do... :P
21:04 jnthn sorear: When computing DFAs, what do you do when you encounter recursion? Terminate the declarative prefix at that point?
21:04 TimToady if you haven't made progress, you must, since you've uncovered a left recursion
21:05 ilogger2 joined #perl6
21:05 jnthn k
21:05 TimToady but STD uses the notion of a fake position that advances when something with width matches, so we can tell
21:06 TimToady dunno if niecza still uses that notion
21:06 jnthn Seems Pm's NFA builder doesn't handle that. Discovered so today, when it did infinite recursion...
21:06 TimToady actually, that was the old lexer in STD, dunno about the new lexer sorear++ added
21:09 TimToady looks like it still has $CursorBase::fakepos++;
21:09 moritz S05 says that recursion terminates the declarative prefix
21:10 raiph joined #perl6
21:11 sorear jnthn: Recursion terminated the delarative prefix in Niecza too
21:12 sorear jnthn: the relevant trick is at lib/Cursor.cs:1620; <foo> is treates as {} if 'foo' is in the method-name stack already
21:15 jnthn Grr, new regex engine needs ICU much more than the one that came before it, it seems
21:18 proller joined #perl6
21:19 masak why?
21:19 dalek nqp/qbootstrap: cfca054 | jnthn++ | src/QRegex/Cursor.nqp:
21:19 dalek nqp/qbootstrap: Ensure that we invalidate matches as needed.
21:19 dalek nqp/qbootstrap: review: https://github.com/perl6/nqp/commit/cfca054493
21:19 dalek nqp/qbootstrap: 0ffa51b | jnthn++ | src/QRegex/NFA.nqp:
21:19 dalek nqp/qbootstrap: Try and have the NFA builder not explode upon recursion.
21:19 dalek nqp/qbootstrap: review: https://github.com/perl6/nqp/commit/0ffa51bc13
21:20 jnthn masak: In the case I'm seeing here, I ain't exactly sure...
21:22 jnthn masak: In general because it uses 32-bit fixed-width or some such.
21:22 jnthn Which is fast to index into, of course.
21:25 dalek rakudo/nom: 4e5d8aa | jnthn++ | src/core/Routine.pm:
21:25 dalek rakudo/nom: Improve Routine.perl.
21:25 dalek rakudo/nom: review: https://github.com/rakudo/rakudo/commit/4e5d8aa3e2
21:25 birdwindupbird left #perl6
21:28 sorear jnthn: any chance of getting icu bundled with nqp like libtommath is?
21:28 sorear *ducks*
21:31 jnthn Yay. Seems that QRegex can compile its own parser.
21:31 sorear \o/
21:31 sorear \o/
21:31 sorear \o/
21:31 jnthn Of course, now this is at the annoying point where there's a bunch of little details to try and sort out... :)
21:32 * jnthn will be happy to eliminate the second to last "big load of PIR" dependency Rakudo has
21:34 masak \o/
21:34 jnthn General question: should I tentatively start to add spectests and spec for the declarative aspects of the MOP stuff?
21:34 masak sure, why not?
21:34 jnthn At the moment S12 only documents the introspective parts.
21:34 sorear jnthn: Yes.
21:34 jnthn OK
21:34 jnthn S12 or another synopsis?
21:34 sorear jnthn: I promise to whine if you accidentally put in something that leaks too much of the Rakudo metamodel specifics :)
21:35 sorear S12 is fine for now.  I think eventually we should start a
21:35 sorear MOP synopsis
21:35 jnthn sorear: That's fine. It's a good chance for me to review what I've done in Rakudo too. I'm sure I'll yell WTF at myself a couple of times on the way :)
21:35 TimToady +1
21:35 sorear c.f. TimToady's comment about decoupling the synopses from Camel 1.0
21:41 dalek nqp/qbootstrap: cb91e0b | jnthn++ | / (3 files):
21:41 dalek nqp/qbootstrap: Add a circularity-breaking thingummy so that we can load QRegex by default again; say('a fool' ~~ /foo/) now works again in NQP and QRegex compiled using QRegex.
21:41 dalek nqp/qbootstrap: review: https://github.com/perl6/nqp/commit/cb91e0b375
21:41 LlamaRider joined #perl6
21:41 jnthn moritz: If you have chance, would be interested to see an NQP test output from latest qbootstrap.
21:41 jnthn (from somebody with ICU)
21:42 jnthn Will have to get my ICU setup working here...
21:42 jnthn Or make us need it a bit less
21:42 tadzik argh, pararell build still fails
21:42 jnthn tadzik: Where, ooc?
21:43 tadzik make: *** No rule to make target `qregex', needed by `qregex-test'.  Stop.
21:43 tadzik I'll paste the whole thing
21:44 dalek niecza: cdf48b2 | sorear++ | lib/CodeGen.cs:
21:44 dalek niecza: Use a hash of delegates instead of a giant (near 1k lines) if chain in DowncallReceiver; tiny speedup
21:44 dalek niecza: review: https://github.com/sorear/niecza/commit/cdf48b2c11
21:44 tadzik https://gist.github.com/1579807 around #144
21:44 jnthn Is that really a parallel build fail?
21:45 jnthn Or fails with serial too?
21:45 tadzik pararell
21:45 tadzik I'm building with -j1 fine
21:45 jnthn ok
21:47 tadzik jnthn: https://gist.github.com/1579823 test summary
21:47 tadzik that's with icu
21:48 masak perl6: my %h = foo => 42; say %h.elems
21:48 p6eval pugs b927740, rakudo 8c5258, niecza v13-165-gdab47b7: OUTPUT«1␤»
21:49 jnthn tadzik: thanks
21:49 jnthn oh, I really should submit for German Perl Workshop...
21:49 jnthn Before moritz++ has to come and hunt me down again about it :)
21:50 tadzik yay, $understandable-talks++
21:51 jnthn Ich kann mein talk in Deutsch given!
21:51 jnthn ...not really. :)
21:51 LlamaRider_ joined #perl6
21:51 tadzik Ich kann verstehe eine Deutsche talke, aber nicht so gut
21:51 masak ich auch.
21:52 jnthn Ich kann...mit bier. :)
21:53 masak und cheesecake!? o.O
21:53 jnthn :P
21:53 masak ah, in-jokes.
22:02 ksi joined #perl6
22:04 sorear hmm, I can almost read that
22:05 felher talking about http://conferences.yapceur​ope.org/gpw2012/index.html ?
22:06 tadzik aye
22:06 felher Hm, interesting
22:07 masak good night, #perl6
22:07 jnthn Well, submitted.
22:07 jnthn :)
22:07 * jnthn wonders how easily he can get to this one by train
22:08 felher o/ masak
22:10 tadzik jnthn: I'm thinking about the same thing :)
22:11 tadzik haha, I can get to Erlangen in mere 11 hours
22:12 tadzik well, 11 train hours, that'll be like 20 human hours
22:12 LlamaRider joined #perl6
22:13 jnthn tadzik: ouch, long connection somewhere?
22:13 tadzik jnthn: it's going through Berlin
22:13 tadzik 6 + 5 hours
22:13 felher jnthn: whats the topic of your submitted talk?
22:14 jnthn felher: Meta-programming
22:14 felher jnthn: nice :)
22:15 sorear (Could it have been anything else?)
22:15 * sorear needs to get to a YAPCish thing someday
22:15 jnthn Guess YAPC::NA is your nearest.
22:16 jnthn All the ones I've been to, wherever they were, have been fun.
22:17 tadzik GPW seems to be of size of about half a YAPC
22:17 tadzik 3 days too, only 2 tracks, not 4
22:18 jnthn 3 days? That's quite long for a workshop too.
22:18 jnthn Often they're 1 or 2 days.
22:18 jnthn Makes for more evenings to consume German beer on, though. \o/
22:19 donri left #perl6
22:20 packetknife joined #perl6
22:44 jnthn Hm. Seems I'm too tired to fix $other_issues in qbootstrap, though at least I've figured out what's going on with a few more of the tests...
22:44 jnthn Time to go relax &
23:55 tokuhirom joined #perl6
23:59 Util joined #perl6
23:59 masak joined #perl6

| Channels | #perl6 index | Today | | Search | Google Search | Plain-Text | summary

Perl 6 | Reference Documentation | Rakudo | Niecza | Specs