»ö« Welcome to Perl 6! | perl6.org/ | evalbot usage: 'perl6: say 3;' or rakudo:, niecza:, std:, or /msg p6eval perl6: ... | irclog: irc.perl6.org/ | UTF-8 is our friend!
Set by sorear on 4 February 2011.
masak for anonymous parameters it should say "for parameter at position 1" or something like that. 00:00
though that will still be potentially confusing for methods.
00:02 thou joined
sorear masak: Wouldn't position 1 mean $y in :($x,$y) ? :) 00:02
00:03 Trashlord left
masak that's another potential source of confusion :) 00:04
dalek ecza: 4a19674 | sorear++ | lib/ (3 files):
Implement binder support for "where" and sub-signatures
00:15
sorear goes looking for tests to enable
00:18 molaf left, alvis joined
sorear colomon: there's your post_constraint fix 00:22
00:30 molaf joined 00:31 thou__ joined
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:␤------> sub foo(where Int ⏏$x) { }␤ok 00:01 124m␤»
sorear I did not know you could do that!
00:34 thou left
sorear however! 00:40
std: sub foo($ where *>2 where *<5) { }
p6eval std dc62e1d: OUTPUT«===SORRY!===␤Whitespace required before < operator at /tmp/NEgeyrEj8J line 1:␤------> sub foo($ where *>2 where *<⏏5) { }␤ expecting escape␤Parse failed␤FAILED 00:01 123m␤»
ruoso sorear: since quasi is nyi, is there any simple way of getting the optree for a perl6 code snippet?
sorear std: sub foo($ where * > 2 where * < 5) { }
p6eval std dc62e1d: OUTPUT«ok 00:01 123m␤»
sorear std: sub foo(where * > 2 where * < 5 $foo) { }
p6eval std dc62e1d: OUTPUT«===SORRY!===␤Multiple prefix constraints not yet supported at /tmp/LYMpTmfa3g line 1:␤------> sub foo(where * > 2 where * < 5 ⏏$foo) { }␤Potential difficulties:␤ $foo is declared but not used at /tmp/LYMpTmfa3g line 1:␤------> […
masak o.O 00:41
sorear ruoso: no
masak 'night, #perl6
sorear masak: I am thinking STD is being excessively liberal here. 00:42
also, things like
std: my ::T $x; #What does this even mean? 00:43
p6eval std dc62e1d: OUTPUT«ok 00:01 120m␤»
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.
sorear rakudo: say v6 00:45
p6eval rakudo 327fc9: OUTPUT«===SORRY!===␤CHECK FAILED:␤Undefined routine '&v6' called (line 1)␤»
sorear niecz: say v6
niecza: say v6
p6eval niecza v13-154-g29d510e: OUTPUT«===SORRY!===␤␤Action method value:version not yet implemented at /tmp/4OhPseQxgS line 1 (EOF):␤------> say v6⏏<EOL>␤␤Unhandled exception: Check failed␤␤ at /home/p6eval/niecza/boot/lib/CORE.setting line 919 (die @ 2) …
sorear what?
00:46 thou__ left
sorear ah, S02:4475 00:48
jnthn sleep & 01:00
colomon sorear++ 01:07
01:10 spetrea joined 01:11 bkolera left
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…
kshannon What it the reason for using: (@a,)
It's not supposed to recontainerize the elements is it?
It's just making sure that if @a is an array, then make a new list. 01:22
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)
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…
[Coke] still getting those 815 failures. must be something in my new niecza checkout that is just for getting stats. 01:26
colomon [Coke]: rat.t is crashing hard at test 7 or so 01:29
it's got ~800 tests in it
[Coke] I'm seeing failures like got <7/4>, expected 7/4 in, e.g. # got: <7/4> 01:30
# expected: 7/4
er, in: 01:31
integration/advent2009-day14
niecza: say 1.75.perl 01:32
p6eval niecza v13-155-g4a19674: OUTPUT«<7/4>␤»
colomon right, those too 01:33
I think that's the source of all current problems that I know of
[Coke] is that a new spec change that the tests haven't caught up with yet?
colomon yes 01:34
[Coke] k
colomon but also that niecza hasn't fully caught up with yet
[Coke] niecza: say <7/4>
p6eval niecza v13-155-g4a19674: OUTPUT«7/4␤»
[Coke] niecza: say <7/4>.perl
p6eval niecza v13-155-g4a19674: OUTPUT«"7/4"␤»
colomon that's a string
[Coke] O_o
need to reboot. back in a bit. 01:35
colomon it should be a Rat now
'k
perl6: say 3e5.perl 01:48
p6eval niecza v13-155-g4a19674: OUTPUT«300000␤»
..rakudo 327fc9: OUTPUT«300000e0␤»
..pugs b927740: OUTPUT«300000/1␤»
01:50 kmwallio joined
colomon niecza: say (\42).perl 02:07
p6eval niecza v13-155-g4a19674: OUTPUT«\(42)␤»
colomon niecza: say (\NaN).perl
p6eval niecza v13-155-g4a19674: OUTPUT«\(NaN)␤»
dalek ast: 5e9f461 | (Solomon Foster)++ | S02-names-vars/perl.t:
Fudge for niecza.
02:12
skids perl6: grammar g { regex m { foo } } ; say "foo" ~~ /<g::m>/;
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␤»
..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…
..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 left 02:21 packetknife joined
colomon skids: are you trying to figure out how to use a grammar? 02:23
skids well, not from the TOP. 02:27
[Coke] colomon: until those get straigtened out, here's the damage:
colomon [Coke]: I'm working on sorting things right now. :)
[Coke] gist.github.com/1476841 02:28
dalek ast: ecf238e | (Solomon Foster)++ | S32-num/rat.t:
Fudge for niecza.
[Coke] down to 88.9%
ok, I can still do another run today if needs be. ;)
colomon I'll have you up to 93% in a few minutes, I think. :)
skids really just named regexps, though namespacing would be good too. 02:29
colomon skids: give me a minute 02:30
02:30 Guest34262 left
dalek ast: 5cdb9d9 | (Solomon Foster)++ | S32-num/complex.t:
Refudge for niecza.
02:31
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␤»
..rakudo 327fc9: OUTPUT«=> <foo>␤␤»
..niecza v13-155-g4a19674: OUTPUT«#<match from(0) to(3) text(foo) pos([].list) named({}.hash)>␤»
colomon skids: there you go
awkward, but it works
02:34 packetknife left
skids At least it's awkward-but-to-spec. Thanks. 02:36
02:36 tokuhirom joined
dalek ast: 65d1d83 | (Solomon Foster)++ | S03-sequence/basic.t:
Update tests to match the new standard for Rat.perl.
02:47
colomon niecza: say 1/60000 + 1/60001 02:50
p6eval niecza v13-155-g4a19674: OUTPUT«3.3333055560185109E-05␤»
colomon niecza: say (1/60000 + 1/60001).perl 02:51
p6eval niecza v13-155-g4a19674: OUTPUT«<120001/3600060000>␤»
02:55 wolfman2000 joined, kmwallio left
dalek ast: 2a1ed07 | (Solomon Foster)++ | integration/advent2009-day14.t:
Rework tests for new Rat.perl standard, fix broken test.
02:57
Tene masak: axisofeval.blogspot.com/2012/01/typ...ivity.html 02:58
02:59 sudokode left
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 @ …
..rakudo 327fc9: OUTPUT«5 7 8␤»
..pugs b927740: OUTPUT«578␤»
dalek ast: 314dffc | (Solomon Foster)++ | S02-types/parcel.t:
Fudge for niecza.
03:08
ast: 3548dd2 | (Solomon Foster)++ | S02-types/num.t:
Modernize tests a bit. Add new test. Unfudge for niecza.
03:13
colomon [Coke]: almost there 03:14
03:19 kst` joined
dalek ecza: 63667d5 | (Solomon Foster)++ | lib/CORE.setting:
Smarter Num.perl.
03:19
ecza: c649af4 | (Solomon Foster)++ | t/spectest.data:
Turn on S02-names-vars/perl.t.
ecza: ff7dc00 | (Solomon Foster)++ | lib/CORE.setting:
Fix last Num.perl patch.
colomon [Coke]: go 03:20
03:21 kst left 03:38 Psyche^ joined 03:41 Patterner left, Psyche^ is now known as Patterner 03:51 orafu left 03:52 orafu joined
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.
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
sorear my intuition says that types should be checked *before* the value is bound to $odd
colomon sorear: what you do think is wrong with Int $odd where { $odd % 2 } ?
Is the Int the issue?
sorear colomon: if there's a value in $odd, it should be odd 04:03
even values should never show up in $odd, imo
therefore, it doesn't make sense to bind $odd without first type-checking
colomon Oh, you're suggesting it should be $odd where * % 2 or something like that? 04:04
sorear yes
colomon something that doesn't directly reference $odd, I mean
sorear exactly
colomon I'm sympathetic to your position, but historically rakudo definitely handled that case. It's all over roast. 04:06
maybe we should take it up with TimToady and jnthn ? 04:07
sorear should be brought up, yes 04:10
dalek ecza: 4672447 | sorear++ | lib/Kernel.cs:
Bind values before type checking as a DWIM fudge
04:11
sorear but it won't hurt to be compatible in the short term
colomon sorear++ 04:13
The more I think about it, the more I think $odd % 2 shouldn't work, for what it's worth. 04:14
bedtime.
o/
04:21 Chillance joined 04:22 tokuhirom left 04:23 carlin left 05:03 lutok left
sorear pugs: class A { submethod DESTROY { say "hi" } }; A.new 05:08
p6eval pugs b927740: OUTPUT«hi␤»
sorear pugs: class A { submethod BUILD { say "hi" }; submethod DESTROY { say "bye" } }; A.new for ^10
p6eval pugs b927740: OUTPUT«hi␤hi␤hi␤hi␤hi␤hi␤hi␤hi␤hi␤hi␤bye␤»
sorear pugs: class A { submethod BUILD { say "hi" }; submethod DESTROY { say "bye" } }; 05:09
p6eval pugs b927740: ( no output )
sorear pugs: class A { submethod DESTROY { say "bye" } }; my $i = 0; (A.new; 0) until $i++ == 1000
p6eval pugs b927740: OUTPUT«*** ␤ Unexpected ";"␤ expecting term postfix, operator or ")"␤ at /tmp/KGBXsgNvvr line 1, column 63␤»
sorear pugs: class A { submethod DESTROY { say "bye" } }; my $i = 0; (A.new, 0) until $i++ == 1000
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␤bye␤bye␤bye␤bye␤bye␤bye␤bye␤bye␤bye␤bye␤bye␤bye␤bye␤bye␤bye␤bye␤bye␤bye␤bye␤bye␤bye␤bye␤bye␤bye␤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
moritz \o 05:28
sorear o/ moritz 05:32
sorear is not sure how DESTROY should interact with compartmentalization and serialization
moritz "nicely" :-) 05:34
sorear moritz: :P 05:50
05:56 Radvendii joined
Radvendii yo guys, is there a way to do one-liners with the current rakudo? 05:56
sorear -e
Radvendii like perl -e''
perl6 -e raises an error
kshannon perl6 -e
Radvendii Option -e requires a value and cannot be grouped
sorear ... you need code after the -e?
kshannon what error?
Radvendii with input: perl6 -e'say "hello"' 05:57
kshannon perl6 -e 'say "hi"'
space after -e
Radvendii ah
that's new
okay
thanks
sorear niecza doesn't need the space :p
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)
(the Rakudo team thinks it's OK to make something that's close to getopt but with minor usability improvements) 05:59
Radvendii getopt?
sorear (my position is that any deviation from the standard is a major POLS problem)
Radvendii im not understanding all these terms 06:00
what standard? POLS?
sorear Radvendii: getopt is the standard C subroutine for parsing command-line options
GNU getopt is a version of getopt that supports long arguments, like --foo
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
Radvendii mhmm
sorear The standard for getopt says that the argument is *allowed* to immediately follow the option
Radvendii at least it should give me a reasonable error when i do it wrong. like "please put a space in there" :P
sorear since most C programs use getopt, most C programs allow no-space 06:02
Radvendii it does that when you use variables like $$
sorear on UNIX I mean ... DOS has different expectations
Radvendii it says "variable is depricated"
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
kshannon "cannot be grouped" means "please put a space in there" :P
Radvendii kshannon: not exactly intuitive
kshannon Yeah, the terminology is very getopt'ish
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
Radvendii like perl6 :e(say "hi")
sorear: ah
moritz Radvendii: but the standard UNIX shells have a special meaning for parenthesis
sorear perl6 sees '-esay "hello"' and interprets it as -e -s -a -y -' ' -'"' -h ...
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
sorear Radvendii: use q[]
Radvendii sorear: oh. i see
sorear perl6 -e 'say q[$foo]'
I really wish *sh supported nested quotes like Perl and Tcl do
Radvendii sorear: so it totally ignores the ' in -e'say...? 06:06
yeah... or unicode delimiters
so i could use some obscure character i would never use in code
sorear Radvendii: the best way to think about it is that ' tells the shell to ignore spaces
Radvendii that's weird...
dalek ast: 71b482c | moritz++ | S04-declarations/constant.t:
RT #66636, my constant = Enum::val
06:07
ast: 375b371 | moritz++ | S03-operators/flip-flop.t:
fudge fff tests out for rakudo, but the ff tests still do not pass
sorear a space separates words, unless an odd number of ' have been seen
Radvendii i feel like the shell is really outdated...
for one thing it has really hard to use one-line loops
sorear how old are you?
Radvendii haha. 15 06:08
sorear the Bourne shell was released in '77
it might be older than your parents.
Radvendii so why is it still used? is there any alternative?
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...
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
kind of like the situation with third parties in the US :)
Radvendii one could just run the interpreted perl6 i suppose 06:10
oh. none of them caught on?
that seems kind of silly
sorear I think zsh is the most popular of the unpopular shells
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)
kshannon I never use them. 06:12
Or more accurately I never use the short form loops.
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...
zsh has: 06:14
for name ( word ... ) cmd
geekosaur stolen from csh
Radvendii what's word? 06:15
kshannon and: while list { list }
geekosaur although I think it's saner about parsing it than csh is
kshannon for a ( * ) mv $a $a.bak
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.
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)
Radvendii does that work well for one-liners? 06:17
(complex ones, i mean)
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 ast: 3500e66 | moritz++ | S12-class/lexical.t:
RT #69316, constructing objects of inner class in constructor of outer class
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
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 :-)
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
kshannon Shell one-liners usually look pretty gross, i.e. before I realized there was tools/autounfudge.pl in rakudo I wrote:
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.ok
moritz geekosaur: I didn't know about fc. Thanks.
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:21
Radvendii uh-huh... 06:22
the time's i
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
(or over and over for the infinit loops
and somehow while 1 {perl} seems simpler than while [1] do; perl; done;
kshannon ^^ while true 06:24
geekosaur while :; do perl; done
Radvendii or for qx[ls] {perl} vs i dont even know what
kshannon I never remember : for while
geekosaur (of course if you're not familiar with bourne shell tricks that makes people a bit crosseyed0
Radvendii mhmm
i guess what im asking is "is there a way to import the shell comands (ls, pwd) to perl6? 06:25
i suppose it's a minor annoyance to put qx[] around it all...
except that if i qx[cd] then it doesn't change it for the future 06:26
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 estrabd left
Radvendii right. is there a way to make it essentially replace the shell? 06:28
sorear how much do you know about processes?
Radvendii nothing... that i know of 06:29
sorear you don't want to replace your shell with perl6
Radvendii i dont?
sorear you'd lose job control that way, for a start
Radvendii i mean just practically speaking
sorear and quotes would get annoying 06:30
Radvendii why would quotes get annoying?
sorear but job control is the big one
ls '-l'
versus ls -l
Radvendii i type "perl6\n qx[ls -l]" and it works fine 06:31
sorear ...that's with qx 06:32
this is one of those things that everybody comes up with but nobody can ever make work
Radvendii why not? [genuine question] 06:33
sorear scripting languages and shells fill different niches and can only substitute for each other poorly
Radvendii what do shells do more conveniently? 06:34
moritz pipes 06:35
job control
Radvendii 1) why shouldn't skripting languages impliment pipes? [not rhetorical] 06:38
2) what *is* job control?
sorear job control is control-Z, fg, bg, and &
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:39
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)
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
p6eval pugs b927740: OUTPUT«*** No such subroutine: "&callwith"␤ at /tmp/hi9aLhiQCF line 1, column 66-87␤»
..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…
..rakudo 327fc9: ( no output )
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
fine
sorear (I feel so dirty saying this :|)
Radvendii i just learned using ctr-c
geekosaur maybe. ^Z is largely but not completely obsoleted by windowing systems
moritz Radvendii: it's nto the same
Radvendii then what?
geekosaur shells let you run things in the background (&) as wel as in the foreground 06:43
06:43 kaare__ joined
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)
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: $_ .= ();
p6eval nom 327fc9: OUTPUT«===SORRY!===␤Method 'isa' not found for invocant of class 'Undef'␤»
geekosaur used to be that was a common way to pop into a shell quickly, for example
^Z, do whatever (e.g. check for exact name of a file), fg
skids Windowing systems provide only focus control, if you do want the program to pause, there's usually not a WM hook for that.
Radvendii oh. clever.
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
Radvendii obviously it doesnt work as-is 06:46
but some hybrid ought to...
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:47
(EWMH defined _NET_WM_PID but there are still many programs that don't set it, like anything that wraps Tk for graphics) 06:48
Radvendii i dont understand how you guys are making such a clear distinction between "shell" languages and "scripting" languages 06:49
how/why
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.)
sorear skids: ...I do that today 06:50
skids Well, OK compiling/testing perl6 may have brought that back :-)
sorear skids: even g++ can bring this machine to a crawl
geekosaur funny, we're discussing the old turbo switch in another channel :p 06:51
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...
skids: isn't that just java?
(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
bash only just got associative arrays. zsh has had them for a while but the syntax... leaves something tobe desired
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...
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:55
which is why pipelines are trivial to put together; the data goes *there*, not in the script. (ideally) 06:56
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
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.
geekosaur "unix swiss army knife" 06:59
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!
dalek ast: b0bcb38 | moritz++ | S03-operators/binding-scalars.t:
RT #77594, binding to a literal should not work
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...
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 )
Radvendii so then how is that not the same as a shell?
and interrupts (like ctr-z) im sure you could figure out 07:03
sorear Radvendii: no support for pipes, $?, less-useful quoting, job control
Radvendii on now-adays computers? i would be *very* surprised if you couldnt
why would it be hard to impliment pipes?
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]
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)
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
07:06 bacek left
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.
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.
sorear aka 'almquist shell'
Radvendii it's not like starting from scratch... 07:08
sorear actually, it is
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.
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:09 isBEKaml left
Radvendii alright 07:10
in the mean time it's 2:00. i need to go to sleep
good night!
07:10 isBEKaml joined
Radvendii thanks for the patience. 07:10
geekosaur (btw, I did write most of a shell at one point. It's something I've since avoided.) 07:11
Radvendii haha
alright.
g'night
07:11 Radvendii left
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:12
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
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:14
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:15
isBEKaml skids: chaos in parrot land? I'm amused - all I can see is _dark_ silence (pardon the pun). 07:16
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
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)
o/ geekosaur
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.
isBEKaml sorear: o/ 07:22
sorear o/ isBEKaml
skids and, while I'm fixing thinkos/typos, whiteknight++
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:23
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
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.
sorear geekosaur: "small" or "tiny"?
geekosaur both (PDP11 called "small" "split I and D") 07:26
sorear ah
skids So where are we on running Perl6 on 8-bit architectures :-)
sorear A lot of modern compilers aren't really well set up for split I/D
didn't realize PDP had that 'feature'
isBEKaml speaking of small - there was also TCC - "Tiny C Compiler" but that was only for x86 archs 07:28
sorear "Tiny C Compiler" is a very modern thing 07:30
are you perhaps thinking of "Turbo C" or "Small C"?
both of which are mid-80s tech
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. :/
sorear: I just said "was" - I'm not referring to modern or oldish stuff. :) 07:31
07:33 bacek left
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:34
sorear isBEKaml: 10 minutes for the first time 07:35
isBEKaml sorear: fair warning - my pc's pretty old (think like > 10 years)
sorear my pc is only from 2003
isBEKaml sorear: the first time? do you have separate bootstraps or something? 07:36
sorear isBEKaml: I mean that it uses "make"
isBEKaml sorear: ah, okay.. I have to set up the runtimes first (mono et al)
sorear isBEKaml: I recommend getting at least 2.8 07:37
if you're on Debian that means building from source
isBEKaml sorear: I'm on slackware - building from source.
sorear it'll take about an hour (on my 9yo system), but the benefit is huge
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:38
sorear isBEKaml: niecza's self-compilation really needs about 256 MB of memory 07:39
peak allocation is about 400 07:40
isBEKaml sorear: that's good enough for me - got about 512 megs here
07:40 Trashlord left
kshannon Yeah, rakudo needs about 2G atm... 07:41
07:42 Trashlord joined
skids isBEKaml: The blog with Nov 4th is his old blog, follow the link there, or maybe just planet.parrotcode.org for newer 07:42
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:␤------> my ⏏$x = role { };␤␤»
sorear niecza: my $x = role [$x] { };
isBEKaml kshannon: been following your patches to rakudo with interest. good work! :)
p6eval niecza v13-159-g4672447: OUTPUT«Potential difficulties:␤ $x is declared but not used at /tmp/_dTJFGZFUE line 1:␤------> my $x = role [⏏$x] { };␤␤»
tadzik g'morning
isBEKaml tadzik! o/ 07:44
is that really morning? looks about 11am.. :D
tadzik hi isBEKaml \o
it's 8:44
that's the mornest morning I've since I didn't sleep through the night on wed ;) 07:45
07:45 baest_ joined
isBEKaml tadzik: "mornest morning" ;) 07:45
07:45 cosimo left, cosimo joined
isBEKaml skids: yeah, I'll add that (I generally dislike planet aggregations since it tends to grab all things together) 07:46
sorear: mono lists libgdiplus as a dependency. Okay if I install an older one and go for the latest mono source? 07:47
sorear: older one -> older libgdiplus
07:47 baest left
sorear isBEKaml: probably not, but it's worth trying since niecza doesn't actually use libgdiplus 07:48
o/ tadzik 07:49
07:49 bacek joined 07:53 araujo left
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
2.8 is just twice as fast
I don't know if it works on 2.4; if it doesn't, I don't care 07:57
but I'll actively keep it working on 2.6.7 for some time yet
07:59 araujo joined, araujo left, araujo joined
isBEKaml sorear: Oh, I see 07:59
08:04 Kharec joined
Kharec hi 08:04
phenny Kharec: 07 Jan 22:32Z <masak> tell Kharec may I humbly recommend strangelyconsistent.org/blog/june-1...and-output for learning Perl 6? all of the posts can be found at strangelyconsistent.org/blog/list-of-posts
Kharec My rakudo compilation was finished, my installation too, any errors, but not any perl6, rakudo, nqp or p6 on the laptop. Strange! 08:05
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')?
sorear i.e. parrot_install/bin/perl6 08:07
kshannon: hard weird cases
Kharec sorear: oops... I haven't specify it...
sorear kshannon: you shouldn't ever use it, but sometimes you have to
Kharec --"
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.
dalek ast: b976f54 | sorear++ | S14-roles/ (2 files):
[S14-roles] Niecza unfudges
08:09
kshannon Ahh, I bet it's because it's in the middle of a list...
sorear #?skip only works with calls to testing functions 08:11
Kharec isBEKaml: I used it! perl Configure.pl --gen-nqp --gen-parrot 08:14
make
and after, make install.
sorear Kharec: you will find your perl6 in parrot_install/bin/perl6
Kharec ok thanks
sorear if you wanted perl6 available from the shell, you needed to have used --gen-parrot-prefix=/usr/local 08:15
and wait for the whole thing to rebuild because it's not relocatable
Kharec instead of --gen-parot
sorear in addition to
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
I'm doing it that way
Kharec tadzik: sure! 08:17
but if I link it, i can write #!/usr/bin/perl6 for portable scripts 08:19
tadzik if you write #!/usr/bin/perl6 the scripts won't be portable at all 08:21
#!/usr/bin/env perl6 is probably a better choice
Kharec tadzik: Oh. You're right.
tadzik in which it also doesn't matter where your perl6 lives
Kharec right, right. 08:22
08:31 sayu joined 08:32 tokuhirom joined
dalek ecza: 99d652d | sorear++ | / (3 files):
Implement sub mixins and mixin of class names (fixes #100)
08:37
ast: 5c378f6 | sorear++ | S14-roles/mixin.t:
[S14-roles/mixin] Unfudge for sorear/niecza#100
08:55 baest_ is now known as baest
sorear -> sleep 08:58
tentative next project: constant folding
isBEKaml sorear: g'night. sleep well
09:08 yath left 09:16 sayu left 09:18 kaare__ left 09:20 sayu joined 09:21 araujo left 09:24 sayu left, sayu joined 09:34 donri joined 09:35 Mowah joined
moritz fwiw the default install location is now just install/bin 09:36
not parrot_install anymore
09:44 Kharec left
isBEKaml moritz: o/ 09:44
09:46 mkramer joined, mkramer left
moritz \o isBEKaml 09:49
tadzik hello moritz 09:50
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.
isBEKaml ducks
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 :/
isBEKaml: Ronja is doing well; she's turning 1 year next Saturday :-) 09:54
09:54 mkramer joined
tadzik nice :) 09:54
my sister's daughter turned 2 yesterday
moritz or rather, adding a second, staged setting was easy; migrating stuff from core1 to core2 is what's hard
tadzik "two" is the only number she can say, too ;)
isBEKaml moritz: aww, that's nice. :)
09:55 mkramer left
isBEKaml tadzik: well, that's a lot better than having your niece pull at your nose everytime you call her out! ;) 09:56
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 :)
moritz tadzik: and does she listen while you read? 09:58
isBEKaml moritz: good question! :D
moritz I know a ~2.5-year old who brings books for reading in very quick succession, but runs off after the second page 09:59
tadzik moritz: yeah, she can point when the animals are and stuff :) 10:01
moritz nom: my Int @a; say @a.WHAT
isBEKaml kids and their fun... :)
p6eval nom 327fc9: OUTPUT«Array+{TypedArray}()␤»
tadzik I have to ask questions carefully, since for "how many..." she always answers "two"
moritz tadzik: well, that's good
:-)
tadzik Mathilda goes for another book when I finish the previous one
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
10:02 sayu left
tadzik :P 10:02
there was a phase when my nephew always asked "yes" for every question
isBEKaml It's always "Two 'o clock!"
tadzik no, sorry, that was "me"
"who's loudest in the car?" "me!" 10:03
"who didn't eat his dinner?" "me!"
isBEKaml :D
tadzik but then, his dad asks "who's washing the dishes today?"
"...daddy!"
isBEKaml that's awesome! knows where his nickels are! :) 10:04
dalek ast: 77b4e58 | moritz++ | S (2 files):
RT #77748, type object gistification of typed array
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.
moritz isBEKaml: I'll try 10:06
tadzik what are our plans on Star?
10:06 sayu joined
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
isBEKaml moritz: thanks!
dalek kudo/staged-settings: 62de8d2 | moritz++ | / (3 files):
first experiment with two-staged setting

the new setting between CORE and the user program is called CORE2. How uninspired
10:08
kudo/staged-settings: cee2658 | moritz++ | tools/build/Makefile.in:
fix up the dependency of SAFE; install CORE2
isBEKaml moritz++ #experiment initiated! 10:13
moritz the task is "just" to move stuff from CORE to CORE2 10:15
... and still having it compile
isBEKaml o.O(items in storage, lab systems ready to go!) 10:17
dalek ast: d140c59 | moritz++ | S02-names-vars/names.t:
RT #77750, :: as a term
10:37
kudo/staged-settings: 89a1a8c | moritz++ | / (3 files):
move Pod to core2; fix more dependencies
10:41
10:49 Mowah left 10:51 Mowah joined
dalek ast: facbde9 | kshannon++ | / (17 files):
Make fudge 'emit' gobble up other fudge lines first

If two implementations were both using 'emit' in the same place, only the last one worked.
There were also a few places which depended on multiple successive emit lines, which have been updated.
A future project would be rewriting fudge from scratch so it's not quite so spaghetti like...
10:52
10:53 sayu left, sayu joined
masak morning, #p6 11:06
moritz \o masak
tadzik o/
isBEKaml o/
dalek ast: 7922e91 | kshannon++ | / (17 files):
Revert my last commit.

Not the right solution.
11:16
11:32 replore joined
masak rewriting fudge from scratch sounds like an excellent hackathon task for a group of 2..3 people using TDD :) 11:32
isBEKaml ah, TDD done by TDD! 11:36
Or, s/done//
masak :) 11:40
kshannon Well, I've added a little more spaghetti instead... Just rechecking I haven't broken anything else. 11:42
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
11:43 sayu left
masak huh. 11:43
11:45 spine joined 11:56 donri left
dalek kudo/staged-settings: 7aed098 | moritz++ | / (3 files):
move Main.pm to core2
11:57
kudo/staged-settings: ac44e3c | moritz++ | tools/build/Makefile.in:
move Grammar to core2
kudo/staged-settings: b8af1ec | moritz++ | src/core/control.pm:
remove dependency between control.pm and terms.pm
12:00 donri joined
moritz somehow I can't seem to move Instant, Duration and Temporal to core2 12:03
which IMHO should work, and that's nearly 700 lines of code
isBEKaml holysmokes, niecza only takes a third of the time to run a program than it was with Rakudo! :)
but it maxes out the cpu though (blame it on mono) 12:04
jnthn moritz: "can't"? How does it fail?
moritz jnthn: "rtype not set" whe compiling CORE 12:05
isBEKaml hola, jnthn! :)
jnthn eek
o/ isBEKaml
moritz I did several different attempts, another one failed with a message that an object of type Sub was missing an SC context 12:06
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.
sorear will know more. 12:08
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.
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:10
12:11 mkramer joined 12:12 jferrero left
isBEKaml jnthn: is 6model abandoned or does it reside within nom these days? :) 12:12
moritz it's in nqp 12:13
src/6model/
and it's not all abandoned, rakudo and nqp use it heavily
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
12:14 tokuhirom left
isBEKaml moritz: My question was more about the 6model that resides in jnthn/6model as backends for CLR and JVM. :) 12:14
moritz ah, that one lags behind 12:15
isBEKaml ah
dalek ast: 33cafa9 | kshannon++ | fudge:
Completely skip any 'emit' fudges for other implementations
ast: 1d6c88b | kshannon++ | / (2 files):
Fudge rakudo for new Rat.perl standard
isBEKaml jnthn: ping
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.
isBEKaml Will be back later tonight. Have a good day, folks! o/ 12:19
12:19 isBEKaml left
moritz \o ingy 12:19
erm, meant isBEKaml, but he was already gone
and i<tab> got ingy :-)
masak ...mis-tabbing claims another victim... :) 12:20
moritz nom: say Any.new ~~ Any.new 12:24
p6eval nom 327fc9: OUTPUT«Bool::False␤»
moritz nom: class A { }; say A.new ~~ A.new
p6eval nom 327fc9: OUTPUT«Bool::False␤»
moritz nom: class A {}; say A.new ~~ A.new 12:25
p6eval nom 327fc9: OUTPUT«Bool::False␤»
12:26 whiteknight joined 12:27 whiteknight is now known as Guest10731
moritz masak: I'm confused by RT #107740 12:35
nom: class A {}; say A.new ~~ A.new
p6eval nom 327fc9: OUTPUT«Bool::False␤»
moritz that's what fails in the ticket
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)
moritz urks, that ticket is using a rakudo from 2011-11-04
masak moritz: closing ticket.
moritz masak: did you have that in your inbox for long?
masak moritz: yes, that's exactly what happened. I found it drafts.
should I close it, or mark it testsneeded? 12:38
moritz masak: close it. Tests in S03-smartmatch/any-any.t
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.
jnthn moritz: (DateTime multis) weird. 12:40
moritz: I'll try and re-create it later today. 12:41
moritz jnthn: I can push it into a branch if you want, to make recreation easier 12:42
jnthn moritz: That also works :)
jnthn looks deeper into the NFA issue he found yesterday 12:43
12:44 overrosy left
masak p6cc registration is now closed. 35 people signed up! 12:53
judging from last year, 9 or 10 or so will submit solutions :P 12:54
colomon \o/ 12:58
12:59 Mowah left 13:01 Mowah joined, mkramer left 13:04 mkramer joined, mkramer left
kshannon masak: As long as I don't get bogged down in trying to fix bugs I find when writing my solutions :) 13:04
colomon kshannon: but that's the whole point of the contest! ;) 13:08
dalek ecza: 4bbc204 | (Solomon Foster)++ | t/spectest.data:
Turn on integration/advent2009-day08.t.
13:10
jnthn kshannon: Your find_method patch probably needs to be reverted, I'm afraid.
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
Suppressing all exceptions in some custom find_method is also problematic.
Plus the exception handler on a hot path has caused something of a slowdown. 13:12
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.
(Yes, they're probably also my fault. :)) 13:14
kshannon *grin*
jnthn kshannon: What was the original bug that you were fixing, if you can remember? 13:15
kshannon --target=past couldn't dump.
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:16
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...
jnthn In the Parrot repo?
Failure should throw on method lookups, I think.
The innards sound like they need fixing though 13:18
kshannon 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
dalek kudo/staged-setting-fail: 390b435 | moritz++ | / (3 files):
move Date ops to core2

fails during compilation of CORE with "rtype not set"
13:24
moritz jnthn: pushed branch staged-setting-fail for you
13:26 araujo joined, araujo left, araujo joined 13:31 REPLeffect left 13:32 MarkBerlin joined
MarkBerlin hello 13:32
masak hi! 13:33
MarkBerlin is there a deb-package of perl6 (parrot)? 13:35
masak I seem to recall there is. 13:36
kshannon packages.debian.org/search?keywords=parrot and packages.debian.org/sid/rakudo
MarkBerlin google says not many
masak might be a bit dated at this point, because development still proceeds pretty fast.
kshannon++ 13:37
MarkBerlin thanks mr. kshannon =)
masak MarkBerlin: the reason you won't find it under "perl6" is that there are several Perl 6 implementations.
MarkBerlin which one is the best? 13:38
13:38 REPLeffect joined
kshannon That's like asking which is better: vi or emacs. 13:39
MarkBerlin hehe
masak MarkBerlin: we have two competing for "best" right now.
Rakudo and Niecza.
to a first approximation, Rakudo is the more featureful, but Niecza is faster.
see also perl6.org/compilers/features 13:40
MarkBerlin thanks for your advise 13:42
i think, i will download the source and then compile
masak that's a good idea. 13:43
let us know if you encounter any problems along the way.
MarkBerlin includes the source of rakudo also the VM parrot? 13:44
maybe no?
masak it downloads it during 'perl Configure.pl --gen-parrot' 13:45
downloads and builds it.
MarkBerlin cool 13:46
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:48
13:53 thou_ left 13:54 mucker joined
lumi___ moritz: I'm not a git pro, but does git fetch --prune sound like what you want? 13:55
masak maybe 'git branch -d remotes/origin/foo' ? 14:04
but you've probably already tried that... :)
lumi___ moritz: git remote prune ? 14:05
masak try the #git channel? ;) 14:06
moritz lumi___: thanks, git fetch --prune seems to do what I want 14:10
kshannon lumi___++ has it right: git remote prune origin
dalek ast: 3beca23 | (Solomon Foster)++ | S06-multi/type-based.t:
Fudge for niecza.
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.
phenny colomon: I'll pass that on when sorear is around.
dalek ecza: 2549654 | (Solomon Foster)++ | t/spectest.data:
Turn on S06-multi/type-based.t.
14:20
14:20 zhu_yj joined 14:21 zhu_yj left
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.
dalek p/qbootstrap: a3bb381 | jnthn++ | src/QHLL/Grammar.pm:
Get a few more tests by fixing quotemod checking.
14:31
p/qbootstrap: a60d71e | jnthn++ | src/6model/knowhow_bootstrapper.c:
KnowHOW's find_method should not throw to indicate method not found (kshannon++).
p/qbootstrap: a5de18f | jnthn++ | src/pmc/sixmodelobject.pmc:
Remove find_method exception handler, which is the wrong fix. Also, explicitly implement can.
p/qbootstrap: af9aa47 | jnthn++ | src/ (2 files):
Ensure tracing does not mess up NFA state lookup.
14:32 tokuhirom joined
dalek ast: 0d9e55e | (Solomon Foster)++ | S06-multi/syntax.t:
Add a couple of trivial but obvious tests. Fudge for niecza.
14:35
ecza: 026a721 | (Solomon Foster)++ | t/spectest.data:
Turn on S06-multi/syntax.t.
moritz wow, qbootstrap passes some tests again 14:38
jnthn moritz: Yes :)
nqp: if 1 != 2 { say('ok 4'); } 14:39
p6eval nqp: OUTPUT«ok 4␤»
jnthn ok, fixing that can be the next challenge...
moritz might be LTM 14:41
./nqp -e '1 == 2'
jnthn --rxtrace suggests it doesn't parse an infix.
moritz Assignment ("=") not supported in NQP, use ":=" instead at line 1
jnthn aha
Yeah, something is very busted there 14:42
BTW, --rxtrace gives tree-ish output these days :) 14:45
Not nearly as nice as Grammar::Tracer though. Yet. :)
hmm, yeah, somehow it never crosses the fate edge for == 14:48
.u = 14:52
phenny U+003D EQUALS SIGN (=)
masak what's the name of that program which adds a history/REPL to any unix tool? 14:54
moritz rlwrap 14:55
jnthn rlwrap?
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«==␤»
jnthn epic fail
moritz is that what it's looking for? 14:57
jnthn yeah, the NFA that gets generated for == is hosed
This probably explains a bunch of the failures
oh
masak moritz++ jnthn++: thanks
jnthn It's anything that uses « I guess
oh, it may not even be the NFA's fault 14:58
nah, I think it's <sym> handling.
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.
arnsholt I use it for my Lisp development. Neither SBCL nor Allegro have readline in their CLI REPLs. Really annoying 15:02
dalek p/qbootstrap: 6d3fb4f | jnthn++ | src/QRegex/P6Regex/Actions.nqp:
Handle French quote case of :sym (probably need something more general in the long run).
15:06
jnthn Well. That drastically cut down the number of test failures. 15:07
nqp: say(q<foo>) 15:10
p6eval nqp: OUTPUT«foo␤»
jnthn nqp: say(q <foo>)
p6eval nqp: OUTPUT«foo␤»
jnthn In qbootstrap, it's parsing that as a name q followed by a postcircumfix. 15:14
15:15 shinobicl___ joined 15:26 mj41 joined 15:42 mucker left
colomon niecza: say 1e10.FatRat.WHAT 15:47
p6eval niecza v13-160-g99d652d: OUTPUT«Rat()␤»
15:51 unixms joined
Woodi hi ppls :) 15:54
colomon o/
[Coke] colomon: I se you were hard at work. kicking off another run. 15:55
colomon hold a moment.
[Coke] heee! 15:56
dalek p/qbootstrap: 3d22db6 | jnthn++ | src/NQPQ/Grammar.pm:
Couple of small tweaks that help trim various branches earlier, saving time and making the trace less noisy.
p/qbootstrap: b24283c | jnthn++ | src/QHLL/Grammar.pm:
Get LANG working-er.
ast: 3edaa5f | (Solomon Foster)++ | S32-num/fatrat.t:
First stab at a general FatRat test. Mostly derived from rat.t.
[Coke] ok.
dalek ecza: 177806b | (Solomon Foster)++ | t/spectest.data:
Turn on S32-num/fatrat.t.
colomon There you go. :)
Woodi is there a Coffe and Chocolate and Pizza Fund for Perl6 Developers ? :)
colomon Woodi: alas, not that I know of. 15:57
colomon would prefer Cider and Pizza. ;)
Woodi TPF do not have one ? :)
colomon they have a big fund for grants 15:58
Woodi thats to big :)
I was speeking seriously :)
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.
Mind you, the good company at those gatherings was more than worth the price of the meal! 15:59
Woodi hmm, thats idea - contact YAPC organizers to shedule free pizza session around noon :) 16:00
ok, anyone considered something like "persistence as a first class construct" ? labs.oracle.com/projects/qvm/ 16:01
16:03 zby_home left 16:04 am0c joined 16:06 REPLeffect left 16:09 PacoAir joined
moritz I guess you can play with persistent REPRs in 6model 16:09
jnthn Probably. 16:10
No reason in theory why you couldn't have a REPR that has e.g. disk based object storage.
Woodi 6model is in C ? 16:11
moritz Woodi: yes 16:12
jnthn: the problem is probably more to make the values from disc storage available to the program again somehow
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 ?
jnthn moritz: Think we're up to two thirds of NQP test suite passing on qbootstrap now
spine nom: say (-9)%(-9) 16:15
p6eval nom 327fc9: OUTPUT«-9␤»
spine niecza: say (-9)%(-9)
p6eval niecza v13-160-g99d652d: OUTPUT«0␤»
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
it's nice if an object is loaded, but it's only useful if some variable points to it 16:21
16:22 zby_home_ joined
Woodi I thinked varible/object first needs data from storage and asks about it using REPR or proxy... 16:24
masak oh, we haven't fixed the "module sucks in Rakudo" bug yet? :/ 16:28
do we have failing spectests for it?
we should at least work around it somehow... 16:29
jnthn Which bug?
masak nom: say (-9)%(-9)
p6eval nom 327fc9: OUTPUT«-9␤»
masak gets the RT ticket
jnthn What's that got to do with modules?
masak modulo* 16:30
rt.perl.org/rt3/Ticket/Display.html?id=107492
moritz b: say (-9) % (-9)
p6eval b 1b7dd1: OUTPUT«0␤»
jnthn oh. 16:31
jnthn shoulda seen that was a typo...
masak jnthn: also, irclog.perlgeek.de/perl6/2012-01-03#i_4924416 16:32
well, it's tricky when the typo means something, too :)
jnthn ah, it's a libtommath quirk. OK. 16:36
masak what should we do about it? 16:38
work around it in the wrapper code; fix libtomath; ditch libtomath? :) 16:39
jnthn er, no way are we doing the last of those :)
masak just trying to be comprehensive :)
jnthn The first two are good options. Hard to know which is best.
masak aye.
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:40
16:41 PacoAir left
jnthn masak: Please do. :) 16:41
16:43 Trashlord left
masak ah, #libtom here on freenode. nice. 16:48
masak goes there
16:51 isBEKaml joined
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
isBEKaml! \o/
isBEKaml OHHAIYO! :)
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 mos
isBEKaml jnthn: you missed something there? or bad phenny again? :) 16:52
jnthn phenny ;)
t welcome!
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 ;)
jnthn isBEKaml: Well, at the moment the blocker is the tests that fail in the qbootstrap branch of nqp 16:54
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
jnthn The tests are almost certainly valid.
So, fixing whatever's breaking 'em. 16:56
masak wouldn't go near a problem requiring more than one Horus
:P
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 agentzh left
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... :)
isBEKaml lol
masak jnthn: oh, I was thinking Egyptian god, but to each his own... :)
jnthn I, er...dang. P 16:58
:P
isBEKaml jnthn: any way I can run specific tests? make test qregex? 17:01
jnthn nqp t/nqp/the-test.t # to run one
prove --exec=nqp t/nqp # do this in the qbootstrap branch to run them all 17:02
isBEKaml jnthn: other than TODOs, tests seem to pass..... 17:04
oh qbootstrap.
jnthn yes :) 17:05
nom: grammar a { token x { a }; token TOP { <x> [b||c] } }; say a.parse('ab')
p6eval nom 327fc9: OUTPUT«=> <ab>␤ x => <a>␤␤»
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>␤␤»
jnthn nom: grammar a { token x { a }; token y { z } token TOP { [<x>]? [b <y> ||c] } }; say a.parse('abz')
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')
p6eval nom 327fc9: OUTPUT«=> <abz>␤ x => <a>␤ y => <z>␤␤»
jnthn nom: grammar a { token x { a }; token y { z }; rule TOP { [<x>]? [b <y> || c] } }; say a.parse('abz')
p6eval nom 327fc9: OUTPUT«#<failed match>␤»
jnthn nom: grammar a { token x { a }; token y { z }; rule TOP { [<x>]? [b <y> || c] } }; say a.parse('a b z')
p6eval nom 327fc9: OUTPUT«=> <a b z>␤ x => <a>␤ y => <z>␤␤»
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')
p6eval nom 327fc9: OUTPUT«=> <a b z>␤ y => <z>␤␤»
masak isBEKaml: 'git pull origin <branch>'? 17:09
jnthn ah, there it is :(
masak jnthn: o.O
jnthn nom: grammar a { token x { a }; token y { z }; rule TOP { <x> [c || b <y>] } }; say a.parse('a b z')
p6eval nom 327fc9: OUTPUT«=> <a b z>␤ x => <a>␤ y => <z>␤␤»
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>␤␤»
jnthn masak: You spot the issue?
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?
git--
jnthn masak: Feel free to RT that
masak submits rakudobug 17:12
moritz isBEKaml: if you had that branch previously checked out, you also need 'git pull' after that
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.
jnthn yeah but only if the previous capture was quantified.
masak ah, right. 17:14
insidious.
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
isBEKaml moritz: so I fetched it again. thanks! 17:15
17:16 PacoAir joined
jnthn masak: yeah, no fun to find 17:16
isBEKaml moritz: (backlogging) I...claimed..ingy? :O
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:17
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
moritz both are pre<tab> :-) 17:19
but the m<tab>s are much worse, really :-)
nom: say 9 % -9
p6eval nom 327fc9: OUTPUT«0␤»
17:19 isBEKaml is now known as m1l3st0n3
moritz nom: say 3 % -9 17:19
p6eval nom 327fc9: OUTPUT«-6␤»
17:19 MarkBerlin left
m1l3st0n3 now ehh... 17:19
moritz m1l3st0n3: :-) 17:20
nom: say (-10) % -9
p6eval nom 327fc9: OUTPUT«-1␤»
moritz is (-9) % (-9) the only case that's broken?
m1l3st0n3 moritz: I gain first preference in lexical order! :D
17:20 m1l3st0n3 is now known as isBEKaml
moritz lexicographic, maybe 17:21
or are you in the most-inner scope? :-)
erm, inner-most
isBEKaml *, moritz. :)
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>␤␤»
jnthn nom: grammar a { token x { a }; token y { z }; rule TOP { [<x>]* [c || b <y>] } }; say a.parse('a b z')
p6eval nom 327fc9: OUTPUT«=> <a b z>␤ y => <z>␤␤»
jnthn nom: grammar a { token x { a }; token y { z }; rule TOP { [<x>]+ [c || b <y>] } }; say a.parse('a b z')
p6eval nom 327fc9: OUTPUT«=> <a b z>␤ y => <z>␤␤»
moritz nom: say 9 % -9 17:24
p6eval nom 327fc9: OUTPUT«0␤»
masak moritz: that's currently correct because two bugs cancel each other out! 17:25
moritz masak: which two?
ah, parsing bug 17:26
nom: say 9 % (-9)
p6eval nom 327fc9: OUTPUT«-9␤»
moritz "huh"
what it parse the other one as?
isBEKaml nom: (9 % (-9)).say
p6eval nom 327fc9: OUTPUT«-9␤»
moritz nom: say 9 % (-9)
p6eval nom 327fc9: OUTPUT«-9␤»
moritz nom: say (-9) % (-9) 17:27
p6eval nom 327fc9: OUTPUT«-9␤»
masak moritz: if you find that out, let me know.
isBEKaml nom: say (-9) % 9
p6eval nom 327fc9: OUTPUT«0␤»
isBEKaml huh
masak that's correct. 17:28
isBEKaml oh, right..
17:28 tokuhirom left
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
isBEKaml nom: say (9 % (-1 * 9)) 17:29
p6eval nom 327fc9: OUTPUT«-9␤»
17:29 thou joined
x3nU nom: (print "Hello World") 17:29
p6eval nom 327fc9: OUTPUT«Hello World»
x3nU yeah, perl6 is lisp-compatible
:D
isBEKaml nom: say 9 % (-1)
p6eval nom 327fc9: OUTPUT«-1␤»
isBEKaml perl6: say 9 % (-1) 17:31
p6eval rakudo 327fc9: OUTPUT«-1␤»
..pugs b927740, niecza v13-160-g99d652d: OUTPUT«0␤»
moritz nom: say 80 % (-9)
p6eval nom 327fc9: OUTPUT«-1␤»
isBEKaml is "-1" special cased in rakudo? 17:32
17:33 tokuhirom left
moritz no 17:33
it's the same bug as with -9 17:34
isBEKaml nom: say (10 % -10)
p6eval nom 327fc9: OUTPUT«0␤»
isBEKaml nom: say (10 % (-10)) 17:35
p6eval nom 327fc9: OUTPUT«-10␤»
masak argh, I keep wanting Perl 5 to have arity-1 &sort blocks! :) 17:36
17:38 Yary joined
Yary Hi all... there are some tests in the perl6 "make spectest" that hang- 17:40
moritz aye, me too
Yary in t/spec/S03-operators/range.rakudo "is ~('Y'..'z'), 'Y Z'"
moritz Yary: which version of rakudo are you testing? and which test files hang?
Yary perl6: ~(('Y'..'z')[0..3])
p6eval pugs b927740, rakudo 327fc9, niecza v13-160-g99d652d: ( no output )
Yary hmm 17:41
jnthn nom: say ~(('Y'..'z')[0..3])
p6eval nom 327fc9: OUTPUT«Y Z AA AB␤»
sorear good * #perl6
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.
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.
sorear: 14:28Z <colomon> tell sorear Also it seems that multi foo { ... } (with no signature) breaks multi handling for foo.
moritz nom: say ~('Y' .. 'z')
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
p6eval nom 327fc9: OUTPUT«(timeout)»
Yary moritz: Oh I met you just hung num
nom
I remember there being discussion on perl6-lang about ranges and case boundries, how it can be hard to do right 17:42
when you get away from ascii
iin any case, not good to have spectest hang partway through
moritz agreed 17:43
isBEKaml that test sucks 17:45
Yary niecza: say ~(('Y'..'z')[0..3]) 17:46
p6eval niecza v13-160-g99d652d: OUTPUT«Y Z AA AB␤»
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 ? :/
sorear: o/ 17:47
sorear o/ isBEKaml
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 ecza: dab47b7 | sorear++ | lib/CORE.setting:
Ensure that Num.FatRat always returns a FatRat, colomon++
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
which is a plain-vanilla nom build, I think
from githib
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?
sorear colomon: Yes 17:50
that example will work in most cases
isBEKaml nqp: say(q <foo 7>)
p6eval nqp: OUTPUT«foo 7␤»
sorear hmm, I wonder if this will work --
niecza: say 0e0.FatRat.perl 17:51
p6eval niecza v13-160-g99d652d: OUTPUT«FatRat.new(1, 8988465674311579538646525953945123668089884894711532863671504057886633790275048156635423866120376801056005693993569667882939488440720831124642371531973706218888394671243274263815110980062304705972654147604250288441907534117123144073695655527…
17:51 sayu joined
isBEKaml hmm, that fails here.. 17:51
sorear as I expected :|
masak o.O
sorear GetAsRational needs to be smarter about handling irregular numbers (NaN, Inf, 0, denormals)
TimToady by spec ('Y'..'z')[0..3] should return Y Z [ \
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?
moritz Yary: weird, I get no hang here 17:52
Yary nom: say ~(('Y'..'_')[0..3])
p6eval nom 327fc9: OUTPUT«Y Z AA AB␤»
Yary the hang isn
TimToady S03:3526 transmutes the .. to a ...
Yary 't with the [0..3]
it's when you remove the index
TimToady and ... treats single char endpoints specially
sorear not that NaN.FatRat makes much sense (perhaps it should throw?)
Yary "say ~('Y'..'z')", "say ~('Y'..'_')" hangs 17:53
moritz Yary: I mean I ran the test here, and got no hang
Yary oh, "make spectest" skips over those for you?
moritz Yary: because of #?rakudo 4 skip directive
Yary: yes
sorear isBEKaml: There is a 'niecza' branch in the yapsi repository which worked out of the box back when it was current
moritz Yary: what's the last commit in your t/spec/ repo? 17:54
sorear niecza: say $*PROGRAM_NAME
p6eval niecza v13-160-g99d652d: OUTPUT«/tmp/s4AgZun1HK␤»
Yary moritz: so I need to "git pull?" ... let's see
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
moritz: I thought I saw it do a "git pull"
moritz: the spectest was from two days ago, let's see if anything has changed... 17:56
sorear git rev-parse HEAD
git status
moritz or just paste the first line from 'git log'
Yary ok in the "rakudo" dir- $ git rev-parse HEAD says 975b6bb4603a6ecdc1c29e96388aec77896333d8
isBEKaml sorear: Okay, I'll check
Yary same in ~/rakudo/t 17:57
sorear isBEKaml: seems it mostly still works - one failing test
Yary I'll make spectest again now
sorear but in the intervening half-year I implemented undef warnings, and it's... quite spammy with them
moritz Yary: the output in t/spec/ is more interesting
isBEKaml sorear: spammy? :) You mean it spews a lot messages? 17:58
Yary same in there
17:58 PacoAir left
moritz Yary: is there no .git dir inside your t/spec/ directory? 17:59
Yary moritz: no
moritz Yary: that's very odd
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
isBEKaml Yary: you sure you checked that with "ls -a" t/spec? Or did you directly download the tests?
moritz rm -rf t/spec/; make spectest # fetches a new t/spec/ for you via git
18:00 shinobicl___ left
Yary moritz: I hate wasting people's time like that! 18:00
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..
Yary moritz: "rm -rf t/spec/ && make spectest" is more pedantically correct :-) 18:02
this is going to be a while, I'll report back when there's something reportable 18:03
Going to refresh/rebuild rakudo too while I'm at this
isBEKaml jnthn: nqp -e 'say(q <7 okay>)' 18:04
jnthn: spews gibberish. :|
pretty sure I just built a freshly pulled branch.
nqp: say(q <okay bar>) 18:05
p6eval nqp: OUTPUT«okay bar␤»
jnthn isBEKaml: Right, that's one of the failing tests that needs fixing.
isBEKaml: It's mis-parsing it as a term q followed by a postcircumfix, rather than a quoting construct
isBEKaml jnthn: the nqp on p6eval is an older one that was working?
jnthn I ain't sure why yet
isBEKaml: The nqp on p6eval is the current nqp master branch 18:06
isBEKaml: The qbootstrap branch is the one where the switch to qregex as the engine for parsing NQP is being made.
isBEKaml jnthn: I see... misparsing, .. sounds right! :) 18:07
sorear isBEKaml: yes 18:08
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.
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)
moritz nom: say 81 % -9
isBEKaml jnthn: so you have zeroed in on the offending code now? :)
p6eval nom 327fc9: OUTPUT«0␤»
moritz nom: say 81 % (-9) 18:11
p6eval nom 327fc9: OUTPUT«-9␤»
sorear isBEKaml: try 'git diff master..niecza'
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...
sorear isBEKaml: almost all of those changes are still necessary; some of them are also needed for nom?
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:12
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)
sorear TimToady: I just think it's too ugly to be legal :p
TimToady a language that prevents ugly can't be beautiful
an example from English that can only be solved with lexical lookup: "the three sheep" vs "the three dog" 18:14
(barring elaborate setup for what a "three dog" is :) 18:15
18:15 unixms left
TimToady and any productive mechanism in a language can be abused to the point of ugliness 18:16
English allows nouns to be used as adjectives, but... 18:17
18:19 unixms joined
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:20
sorear colomon: your complaint about MMD is just Bug #101 18:24
isBEKaml jnthn: Do you recognise this? //gist.github.com/1579217
colomon sorear: is it? It gets different error messages... 18:25
18:26 PacoAir joined
geekosaur .oO { three dog night } 18:28
sorear shrug, to me #101 generically means "MMD isn't finished"
[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
but there aren't too many of them
[Coke]: Wow!
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
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
Int $x where * %% 2 is one of those evil thoughts that must be allowed
sorear TimToady: I was just thinking that the constraint would be evaluated with the value in quarantine
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
but it's problematic to say there must be a mechanism to enforce such a quaranteen
[Coke] sorear++, colomon++, I haven't added any functionality lately. ;)
TimToady some things just have to be erroneous, another lesson from Ada 18:32
18:32 sayu left
[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?
colomon sorear: actually, there was example from the spectests I saw after we talked about it...
sorear: sub foo($a, $b where { $a < $b })
isBEKaml [Coke]: In any case, both are good. :)
[Coke] passing spec tests. 18:33
gist.github.com/1476841 shows the ongoing saga.
18:34 jan_ joined
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
TimToady the designers of Ada worried a lot about implementability, and it was only just bare implementation in that day
*barely
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
but you could certainly do evil things with side effects in a constraint
colomon mwah hah hah HAH! 18:38
TimToady at some point community standards have to be enforced by the community...
isBEKaml jnthn: the rxtrace output for the above weird error: gist.github.com/1579267 18:40
18:43 birdwindupbird joined
ingy o/ moritz :) 18:46
moritz \o ingy :-)
18:46 thou left
ingy . o ( does Perl 6 have a working PSGI web framework? ) 18:48
18:54 am0c left 18:55 icwiener joined, unixms left 18:59 cooper left 19:00 kaare_ joined, pochi joined 19:03 cooper joined 19:19 jferrero joined
ingy *crickets* 19:21
isBEKaml what does pir::find_method__PPs do?
19:25 Trashlord joined 19:27 simcop2387 left 19:30 simcop2387 joined, Mowah left
cognominal that's a convention to call pir opcode from NQP 19:30
find_method is the opcode
PPs is its siignature
the signature convention is document in the beginning of parrot/compilers/pct/src/PAST/Compiler.pir 19:32
19:32 Mowah joined
cognominal *documented 19:32
Yary following up on my earlier problems with "make spectest"- it is working (not hanging) now that I have updated the spectest 19:33
ingy: Have you tried github.com/mberends/http-server-simple ? 19:34
ingy: "A Perl 6 implementation of the Perl 5 HTTP::Server::Simple::PSGI". I don't know if it works 19:35
isBEKaml cognominal: thanks! I was searching for the docs for a while and gave up. Should have looked there. :) 19:39
19:39 kaare_ left
cognominal it took me a while to figure out. 19:40
19:44 kaare_ joined 19:45 alvis left 19:46 Yary left
dalek p: b0eb530 | moritz++ | 3rdparty/libtommath/bn_mp_mod.c:
fix bigint mod with negative numbers
19:48
tadzik ingy: yeah, it does :) 19:49
ingy: Bailador is my Dancer clone, it used to use HTTP::Server::Simple, now it uses HTTP::Easy 19:50
19:50 kaare_ left
x3nU tadzik: is it possible to deploy application written using Bailador as CGI or FCGI application? 19:52
or only using built-in server?
19:56 LlamaRider joined
LlamaRider hi all o/ 19:57
19:58 mtk left
masak hi LlamaRider! 19:58
how goeth the p6cc coding?
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.
LlamaRider I couldn't find info on switching number systems, hex/oct/binary in Perl6 and what does mean for the types 20:00
those mean**
moritz nom: say 1234.base(16)
p6eval nom 327fc9: OUTPUT«4D2␤»
moritz nom: say :16(4F2)
p6eval nom 327fc9: OUTPUT«===SORRY!===␤Malformed radix number at line 1, near "(4F2)"␤»
moritz nom: say :16('4F2')
p6eval nom 327fc9: OUTPUT«1266␤»
LlamaRider seriously now...
moritz nom: say :16('4D2') 20:01
p6eval nom 327fc9: OUTPUT«1234␤»
moritz it helps if one can type
isBEKaml nom: say :16(0x4D2)
p6eval nom 327fc9: OUTPUT«4660␤»
moritz nom: say 0x4D2
p6eval nom 327fc9: OUTPUT«1234␤»
moritz LlamaRider: anyway, that's how one switches between number systems
isBEKaml nom: say 013
p6eval nom 327fc9: OUTPUT«13␤»
moritz std: 013
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:␤------> 013⏏<EOL>␤ok 00:01 118m␤»
isBEKaml nom: say :8(013) # 0 prefixed isn't octal?
p6eval nom 327fc9: OUTPUT«11␤» 20:02
moritz isBEKaml: nope, it isn't
LlamaRider neat.
moritz isBEKaml: 0o prefix is
isBEKaml nom: say 0o13;
p6eval nom 327fc9: OUTPUT«11␤»
LlamaRider And the typing is oblivious of the base since they have nothing to do with each other?
moritz LlamaRider: correct 20:03
masak isBEKaml: why would a '0' prefix mean octal? that makes no sense at all :P
isBEKaml masak: POLA! :)
masak sorry, is that an acronym?
I'm not familiar with it.
moritz LlamaRider: internally all numbers are stored as binary; bases only come into play when you convert between numbers and strings
isBEKaml buubot_backup: eval(print 013);
moritz Principle Of Least... Astronomy? Astonishment? Atonement? 20:04
isBEKaml Astonishment.
moritz buubot_backup: eval: 013
masak Least Astigmatism.
isBEKaml perl -le 'print 013'
11
moritz isBEKaml: it's only "least astonishment" if you're used to one of those languages that do non-obvious stuff
masak isBEKaml: we reserve the right to break with tradition when tradition makes no sense.
LlamaRider moritz: thanks, good to know. Now I have what I came for *scribbles away*
moritz I mean, why should a 0 mean base 8, and not... base 0? or 16? or 12?
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␤»
moritz hm
masak moritz: because base 8 is very natural on a machine where the word size is 12 bits, duh :)
moritz nom: say unbase('FF', 16)
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␤»
moritz nom: say unbase(16, 'FF')
p6eval nom 327fc9: OUTPUT«255␤»
moritz not sure if that's spec
probably not
but that's what :16(...) uses under the hood, iirc
masak oh, ok.
they do seem similar. 20:06
I can't decide whether 'unbase' is suggestive of its function, or just confusing :)
colomon has never heard of unbase
isBEKaml moritz: by all means, break all you want. But I argue that error messages should be indicative of those! :)
moritz isBEKaml: did you see STD's warning?
std: say 07
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:␤------> say 07⏏<EOL>␤ok 00:01 119m␤» 20:07
isBEKaml moritz: rakudo's?
moritz no, STD's
colomon niecza: say 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):␤------> say 07⏏<EOL>␤␤7␤»
LlamaRider unbase seems completely confusing to me out of context ^^
isBEKaml colomon: that's prolly because niecza uses STD's parser under the hood.
20:07 kaare_ joined
isBEKaml moritz: I saw STD's. Rakudo's looseness doesn't make sense. :P 20:08
nom: say 013
p6eval nom 327fc9: OUTPUT«13␤»
moritz isBEKaml: rakudo just doesn't throw parse-time warnings yet, that's all
LlamaRider Doesn't something like 'FF'.Int(:base(16)) make more sense?
isBEKaml moritz: oh, ok 20:09
masak LlamaRider: I think such a mechanism has been suggested at some point. 20:10
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.
dalek ast: b04f684 | moritz++ | S03-operators/arith.t:
RT #107492, mod with negative divisor
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 gfldex left
masak moritz: that will never work. 20:11
it cannot.
moritz nom: my $n = 16; say eval ":$n('FF')"
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␤»
moritz nom: my $n = 16; say eval ":{$n}('FF')"
p6eval nom 327fc9: OUTPUT«255␤»
LlamaRider eval ftw ^^ 20:12
masak /o\
20:12 kaare__ joined
isBEKaml moritz: okay, now add another constraint into p6eval sandbox. Ban all evals! :P 20:12
20:12 gfldex joined
moritz why? 20:13
20:13 kaare_ left
isBEKaml /o\ 20:13
20:13 unixms joined
moritz eval is great fun! 20:13
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:14 unixms left
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 :)
'goto' is another.
sorear isBEKaml: fwiw, diakopter talked a while ago about ending all the sandbox restrictions and just relying on regular backups
isBEKaml nom: 'FF'.Int(:base(16)); #convert this string to an Int knowing full well that it's in hex format. Feels like LTR.
p6eval nom 327fc9: ( no output )
masak class inheritance is another. (roles are a safer form)
LlamaRider isBEKaml: what is LTR? 20:16
isBEKaml sorear: does that include qx?
sorear sadly, diakopter seems to have left us
isBEKaml: yes
isBEKaml LlamaRider: LTR . "natural" #bad communication
sorear so I can't get this confirmed
isBEKaml sorear: wow
masak in some sense, programming language history seems to be constantly finding safer/more predictable ways of doing unsafe but interesting things. 20:17
20:17 kaare__ left
isBEKaml LlamaRider: I meant that it reads well from left-to-right 20:18
LlamaRider got it :) 20:19
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
(read that story - don't recall the source)
masak isBEKaml: McCarthy. 20:21
but yes.
sorear lisp is the classic example of software that was not 'released' so much as 'escaped'
dalek ast: 2b38b6a | moritz++ | integration/advent2009-day10.t:
fudge integration/advent2009-day10.t for rakudo
20:22
20:22 kaare__ joined
dalek kudo/nom: 13f3e6d | moritz++ | tools/build/NQP_REVISION:
bump to an NQP revision that fixes negative bigint modulo
20:23
kudo/nom: 8c5258a | moritz++ | t/spectest.data:
run advent2009-day10.t
20:23 MayDaniel joined
colomon negative modulo fixed? \o/ 20:23
moritz evalbot rebuild nom
p6eval OK (started asynchronously)
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
TimToady :8(42) is supposed to fail
masak moritz++ 20:25
TimToady: hm, I wonder if we have an RT ticket for that...
masak looks
colomon as opposed to :8<42> ? 20:26
TimToady yes, that's fine
moritz TimToady: :8(Numeric) in general?
20:26 cognominal left, y3llow left
masak seems we don't. 20:26
TimToady :8(none(Str)) :)
20:26 pothos left, cognominal joined
masak nom: say :8(42) 20:26
p6eval nom 327fc9: OUTPUT«34␤»
masak submits rakudobug
colomon niecza: say :8(42) 20:27
p6eval niecza v13-165-gdab47b7: OUTPUT«===SORRY!===␤␤Runtime base conversions NYI at /tmp/bajj_wsuu9 line 1 (EOF):␤------> say :8(42)⏏<EOL>␤␤Unhandled exception: Check failed␤␤ at /home/p6eval/niecza/boot/lib/CORE.setting line 919 (die @ 2) ␤ at /home/p6e…
moritz not hard to do
colomon nom: say :8("42")
p6eval nom 327fc9: OUTPUT«34␤»
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
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␤»
sorear what's up with this?
I used sudo
20:28 pothos joined, y3llow joined
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:28 arlinius left
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 MayDaniel left, arlinius joined 20:30 y3llow left, mj41 left
colomon TimToady: right near there in the spec, there's an example (FatRat.new(1,1) * 2 ** -128) 20:30
20:30 y3llow joined, kaare_ joined 20:31 proller joined
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 pothos left
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
colomon moritz: that's why I say "work"
20:31 kaare__ left, pothos joined
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
Num takes precedence over FatRat, so the whole expression has type Num
20:32 y3llow left 20:33 y3llow joined
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
meanwhile, 1/(2**128) should work
colomon 1/(2**128) should be a Num
20:34 mj41 joined
TimToady well, might as well just put 2**128 in the constructor 20:34
20:34 pothos left
moritz FatRat.new(1, 2**128) works 20:34
colomon TimToady: yes, that will work fine
20:34 pothos joined
colomon it's an interesting issue, because... 20:34
TimToady feel free to fix the spec
moritz fixes the spec
colomon TimToady++ moritz++
TimToady perl6: say (say 2**128).WHAT 20:35
p6eval pugs b927740: OUTPUT«340282366920938463463374607431768211456␤Bool␤»
..rakudo 327fc9, niecza v13-165-gdab47b7: OUTPUT«340282366920938463463374607431768211456␤Bool()␤»
TimToady perl6: say (2**128).WHAT
p6eval pugs b927740: OUTPUT«Rat␤»
..rakudo 327fc9, niecza v13-165-gdab47b7: OUTPUT«Int()␤»
TimToady perl6: say (2**-128).WHAT
p6eval pugs b927740: OUTPUT«*** ␤ Unexpected "128"␤ at /tmp/w2Be2TBe9R line 1, column 10␤»
..rakudo 327fc9, niecza v13-165-gdab47b7: OUTPUT«Num()␤»
colomon niecza: say FatRat.new(1,1) * 2 ** -1024
p6eval niecza v13-165-gdab47b7: OUTPUT«5.5626846462680035E-309␤»
colomon niecza: say FatRat.new(1,1) * 2 ** -2048
p6eval niecza v13-165-gdab47b7: OUTPUT«0e0␤»
moritz I guess FatRat.new(2, 0) ** -128 should work too, no? 20:36
colomon niecza: say FatRat.new(2, 0) ** -128
p6eval niecza v13-165-gdab47b7: OUTPUT«NaN␤»
colomon ooo, there's a bug
sorear 2, 1 might work better
colomon right
niecza: say FatRat.new(2, 1) ** -128
p6eval niecza v13-165-gdab47b7: OUTPUT«2.9387358770557188E-39␤»
colomon niecza: say FatRat.new(2, 1) ** -2048
moritz niecza: say FatRat.new(1, 2) ** 128
p6eval niecza v13-165-gdab47b7: OUTPUT«0␤»
niecza v13-165-gdab47b7: OUTPUT«2.9387358770557188E-39␤»
moritz niecza: say (FatRat.new(1, 2) ** 128).WHAT 20:37
p6eval niecza v13-165-gdab47b7: OUTPUT«FatRat()␤»
colomon niecza: say (FatRat.new(2, 1) ** -2048).nude
p6eval niecza v13-165-gdab47b7: OUTPUT«1 3231700607131100730071487668866995196044410266971548403213034542752465513886789089319720141152291346368871796092189801949411955915049092109508815238644828312063087736730099609175019775038965210679605763838406756827679221864261975616183809433847617047058…
colomon there we are
isBEKaml nom: say FatRat.^methods(:local).perl
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
dalek ecs: 2bffe34 | moritz++ | S02-bits.pod:
[S02] fix example for FatRat construction

in the old example, 2 ** -128 returns a Num. colomon++
isBEKaml nom: say Rat.^methods(:local).perl
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())␤»
colomon :\
isBEKaml ...
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 Chillance left
TimToady wishes someone would implement ^methods as specced so it has a sane defulat 20:39
default, even
isBEKaml .perl bites again
TimToady though a sane defulat would also be helpful
sorear evalbot control restart
20:40 p6eval joined, ChanServ sets mode: +v p6eval
sorear evalbot rebuild niecza 20:40
moritz nom: say 9 % (-9)
masak it would be helupufl.
p6eval OK (started asynchronously)
nom 327fc9: OUTPUT«-9␤»
masak :(
moritz nom rebuild hasn't finished (yet?) 20:41
isBEKaml I would be grautuful
masak :U
sorear evalbot rebuild niecza
p6eval OK (started asynchronously)
moritz ah, out-of-memory while trying to compile the setting
dalek Rebuild of niecza complete. 0
moritz What is the 0 at the end?
sorear $?
TimToady \0/ 20:42
isBEKaml I think $?
moritz sorear: maybe change that to "exit code 0" or so
TimToady maybe only say the exit if nonzero
moritz even better
20:42 proller left
moritz evalbot rebuild nom 20:42
p6eval OK (started asynchronously)
sorear isn't quite sure how to write that 20:43
moritz if ($status != 0) { $msg ~= " exit code $status" } 20:44
isBEKaml or, $msg ~= " exit code $status" if $status
sorear that might work if it were perl :p
LlamaRider or, $status && $msg ~= "exit code $status"
isBEKaml wait, is that shell? :/ 20:45
I saw ~= and thought it's perl
moritz if $? then echo "exit code $?"; else echo ""; fi
moritz not good at shell
TimToady you could replace the whole message 20:46
sorear huh, the dalek poller is using 500mb virtual 20:48
dalek Rebuild of nom complete. 0
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 imarcusthis left
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
evalbot control restart
20:50 p6eval left, p6eval joined, ChanServ sets mode: +v p6eval
LlamaRider Why am I seing trigonometric operations in Str.^methods ? oO 20:51
seeing*
TimToady because the default is not yet sane
you're probably seeing things from Cool
dalek albot: bb5fc1e | (Perl 6 Evalbot)++ | / (2 files):
Announce end of rebuilds (I am sorear++ )
20:52
TimToady heh
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
sorear this has been... rectified. 20:54
masak sorear++ # taking care of... problems
jnthn wonders whether to add an all_methods or something similar that the MOP can use
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?
jnthn sorear: Yeah but :( 20:56
sorear But what? No named arguments in NQP?
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 21:02 tim left
jnthn Adverbs showing up all over the place are usually considered a code smell. 21:02
TimToady probably a good argument for a separate method
and methods(:all) just calls allmethods
or some such
sorear What sorts of things does the MOP use .^methods for?
jnthn *nod*
sorear btw, I just killed and restarted the poller, -0.5 GB swap used
TimToady or make .^can without args return all the methods :)
jnthn sorear: Off hand, the role composer...
TimToady: heh :)
Anyway, I'll try and get the change to .^methods in before the next Rakudo release.
sorear jnthn: I don't see why the role composer should need to enumerate the full list of inherited methods
TimToady it keeps confusing new arrivals :)
21:05 ilogger2 joined, ChanServ sets mode: +v ilogger2
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
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...
TimToady actually, that was the old lexer in STD, dunno about the new lexer sorear++ added
looks like it still has $CursorBase::fakepos++; 21:09
moritz S05 says that recursion terminates the declarative prefix
21:10 raiph joined
sorear jnthn: Recursion terminated the delarative prefix in Niecza too 21:11
jnthn: the relevant trick is at lib/Cursor.cs:1620; <foo> is treates as {} if 'foo' is in the method-name stack already 21:12
jnthn Grr, new regex engine needs ICU much more than the one that came before it, it seems 21:15
21:18 proller joined
masak why? 21:19
dalek p/qbootstrap: cfca054 | jnthn++ | src/QRegex/Cursor.nqp:
Ensure that we invalidate matches as needed.
p/qbootstrap: 0ffa51b | jnthn++ | src/QRegex/NFA.nqp:
Try and have the NFA builder not explode upon recursion.
jnthn masak: In the case I'm seeing here, I ain't exactly sure... 21:20
masak: In general because it uses 32-bit fixed-width or some such. 21:22
Which is fast to index into, of course.
dalek kudo/nom: 4e5d8aa | jnthn++ | src/core/Routine.pm:
Improve Routine.perl.
21:25
sorear jnthn: any chance of getting icu bundled with nqp like libtommath is? 21:28
*ducks*
jnthn Yay. Seems that QRegex can compile its own parser. 21:31
sorear \o/
jnthn Of course, now this is at the annoying point where there's a bunch of little details to try and sort out... :)
jnthn will be happy to eliminate the second to last "big load of PIR" dependency Rakudo has 21:32
masak \o/ 21:34
jnthn General question: should I tentatively start to add spectests and spec for the declarative aspects of the MOP stuff?
masak sure, why not?
jnthn At the moment S12 only documents the introspective parts.
sorear jnthn: Yes.
jnthn OK
S12 or another synopsis?
sorear jnthn: I promise to whine if you accidentally put in something that leaks too much of the Rakudo metamodel specifics :)
S12 is fine for now. I think eventually we should start a 21:35
MOP synopsis
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 :)
TimToady +1
sorear c.f. TimToady's comment about decoupling the synopses from Camel 1.0
dalek p/qbootstrap: cb91e0b | jnthn++ | / (3 files):
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
21:41 LlamaRider joined
jnthn moritz: If you have chance, would be interested to see an NQP test output from latest qbootstrap. 21:41
(from somebody with ICU)
Will have to get my ICU setup working here... 21:42
Or make us need it a bit less
tadzik argh, pararell build still fails
jnthn tadzik: Where, ooc?
tadzik make: *** No rule to make target `qregex', needed by `qregex-test'. Stop. 21:43
I'll paste the whole thing
dalek ecza: cdf48b2 | sorear++ | lib/CodeGen.cs:
Use a hash of delegates instead of a giant (near 1k lines) if chain in DowncallReceiver; tiny speedup
21:44
tadzik gist.github.com/1579807 around #144
jnthn Is that really a parallel build fail?
Or fails with serial too? 21:45
tadzik pararell
I'm building with -j1 fine
jnthn ok
tadzik jnthn: gist.github.com/1579823 test summary 21:47
that's with icu
masak perl6: my %h = foo => 42; say %h.elems 21:48
p6eval pugs b927740, rakudo 8c5258, niecza v13-165-gdab47b7: OUTPUT«1␤»
jnthn tadzik: thanks 21:49
oh, I really should submit for German Perl Workshop...
Before moritz++ has to come and hunt me down again about it :) 21:50
tadzik yay, $understandable-talks++
jnthn Ich kann mein talk in Deutsch given! 21:51
...not really. :)
21:51 LlamaRider_ joined
tadzik Ich kann verstehe eine Deutsche talke, aber nicht so gut 21:51
masak ich auch.
jnthn Ich kann...mit bier. :) 21:52
masak und cheesecake!? o.O 21:53
jnthn :P
masak ah, in-jokes.
21:54 LlamaRider left 22:02 ksi joined
sorear hmm, I can almost read that 22:04
felher talking about conferences.yapceurope.org/gpw2012/index.html ? 22:05
tadzik aye 22:06
felher Hm, interesting
masak good night, #perl6 22:07
jnthn Well, submitted.
:)
jnthn wonders how easily he can get to this one by train
felher o/ masak 22:08
tadzik jnthn: I'm thinking about the same thing :) 22:10
haha, I can get to Erlangen in mere 11 hours 22:11
well, 11 train hours, that'll be like 20 human hours 22:12
22:12 LlamaRider_ left, LlamaRider joined
jnthn tadzik: ouch, long connection somewhere? 22:13
tadzik jnthn: it's going through Berlin
6 + 5 hours
felher jnthn: whats the topic of your submitted talk?
jnthn felher: Meta-programming 22:14
felher jnthn: nice :)
sorear (Could it have been anything else?) 22:15
sorear needs to get to a YAPCish thing someday
jnthn Guess YAPC::NA is your nearest.
All the ones I've been to, wherever they were, have been fun. 22:16
tadzik GPW seems to be of size of about half a YAPC 22:17
3 days too, only 2 tracks, not 4
jnthn 3 days? That's quite long for a workshop too. 22:18
Often they're 1 or 2 days.
Makes for more evenings to consume German beer on, though. \o/
22:20 packetknife joined 22:34 LlamaRider left
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
Time to go relax &
23:25 proller left 23:53 pmichaud left 23:55 tokuhirom joined 23:59 Util joined, masak joined