»ö« | perl6-projects.org/ | nopaste: paste.lisp.org/new/perl6 | evalbot: perl6: say 3;' | irclog: irc.pugscode.org/ | UTF-8 is our friend!
Set by moritz_ on 27 June 2009.
00:04 beggars joined, kane_ left 00:11 redicaps left, justatheory joined 00:13 payload left 00:16 cdarroch left 00:25 frew_ left 00:27 fridim_ left 00:28 AnTriber joined 00:34 payload joined 00:37 AnTriber left 00:43 justatheory left 01:07 egypt joined 01:10 orafu left, orafu joined 01:13 lumi__ joined 01:14 Limbic_Region left 01:17 molaf_x joined 01:20 hercynium joined
tann rakudo: my @a = 1..10; say @a[5..*].perl; 01:21
p6eval rakudo dd5767: OUTPUT«[6, 7, 8, 9, 10, undef]␤»
01:22 colomon joined
egypt why the undef? 01:22
tann egypt: methinks, it's a bug 01:23
rakudo's bug that is
pugs: my @a = 1..10; say @a[5..*].perl; 01:24
p6eval pugs: OUTPUT«(6, 7, 8, 9, 10)␤»
01:26 Whiteknight left
araujo wonders what '.perl' does 01:26
sjohnson araujo: it's like Data::Dumper in P5 01:27
tann sraujo: stringifies the content of the object
araujo oooh
nice
tann so you can eval it back in
TimToady like .repr in python, except we think there's more than one possible representation :) 01:28
araujo aah I see :)
and so, i guess all the valid representations can be eval'ed too? 01:29
tann theorectically yes :)
TimToady it is not guaranteed :)
araujo hah ok
TimToady or we'd have to write test cases for python, ruby, lisp, bf, tcl, etc. :) 01:30
tann test cases for p6's subscripts already make one go insane :D 01:31
01:34 lumi_ left
tann TimToady: so, which syn/how can i do my $x = \$y; $$x = 1 like in p5? 01:34
01:34 molaf_xx left
TimToady why do you need the indirection? 01:35
tann TimToady: porting p5 modules to p6
TimToady why did the module need the indirection? 01:36
tann it's Benchmark.pm and the guys does crazy referenences in that code
and i'm too lazy or trying to change as little as possible :D
TimToady short answer is using Captures 01:37
tann long answer is rewriting that portion of code then? :)
TimToady which S08 will theoretically be about
tann s08 isn't on perlcal, is it? 01:38
TimToady but basically you're talking about a list of one element, one way or another
some container that happens to hold only one element 01:39
you can do it with a Capture, but it's different from P5 in that it automatically derefs it for you 01:40
the most general container may end up being something called a Parcel though
hasn't hit the spec yet though
01:41 r0bby left
tann oh...this is nice....p6 has <-> !!! :) 01:42
TimToady and, of course, you can always define an object that contains a single attribute 01:43
01:46 awwaiid left
TimToady you can blame the persistence of Juerd++ for <-> 01:47
tann i'm thankful for it ! :) 01:48
rakudo: my @a = 1..5; for @a <-> $i { $i **= 2 }; say @a.perl; 01:49
p6eval rakudo dd5767: OUTPUT«[1, 4, 9, 16, 25]␤»
pmichaud_ aiiigh! 01:50
tann hola
pmichaud_ rakudo: my @a = 1..5; @a = @a >>**>> 2; say @a.perl; # I like this one
p6eval rakudo dd5767: OUTPUT«[1, 4, 9, 16, 25]␤»
Juerd_ No >>**>>= operator then? ;)
pmichaud_ NYI in rakudo, I suspect 01:51
(I don't know that it's valid anyway)
and it'd probably be >>**=>>
std: (1,2) >>**=>> 2
Juerd_ I can't wrap my head around how and when to use >> and << anyway
p6eval std 27720: OUTPUT«ok 00:02 37m␤»
pmichaud_ the fat part of the arrows always point to the array
Juerd_ Why is there a second one?
TimToady in case there are two arrays 01:52
pmichaud_ to distinguish it from @a >>**<< @b
Juerd_ What would @a >>* 2 do?
TimToady std: @a >>* 2
p6eval std 27720: OUTPUT«##### PARSE FAILED #####␤Preceding operator expects term, but found infix > instead at /tmp/qnwkpY6pf0 line 1:␤------> @a >>*⏏ 2␤ expecting infix_circumfix_meta_operator__S_291LtLt_GtGt␤Other potential difficulties:␤ Variable @a is not predeclared at
../tmp/qnw…
Juerd_ Be invalid. Okay :)
pmichaud_ that's not the most awesome error I can imagine for that... but it's workable :-)
Juerd_ "␤" is wonderful. Never knew it existed.
TimToady yeah, parsed it as @a > > 01:53
Juerd_ I'm off to bed (localtime = 3:53 am) 01:54
pmichaud_ actually, that's not what the error shows
Juerd_ Good night :)
pmichaud_ it parsed it as @a >> * >
I mean
@a >> *
lambdabot Maybe you meant: activity activity-full admin all-dicts arr ask . ? @ v
pmichaud_ or
hmmm.
tann rakudo: my @a = 1..5; say @a[@a.end +> 1 .. *].perl
pmichaud_ maybe the position is just off. The marker came back as being after the *
p6eval rakudo dd5767: OUTPUT«[3, 4, 5, undef]␤» 01:55
TimToady std: @a >> 42
tann pmichaud: is there a rt for this ^^?
p6eval std 27720: OUTPUT«##### PARSE FAILED #####␤Obsolete use of >> to do right shift; in Perl 6 please use +> or ~> instead at /tmp/WeQIi9olBB line 1:␤------> @a >> ⏏42␤Other potential difficulties:␤ Variable @a is not predeclared at /tmp/WeQIi9olBB line 1:␤------> @a⏏
..…
TimToady hmm
std: @a >>42
p6eval std 27720: OUTPUT«##### PARSE FAILED #####␤Preceding operator expects term, but found infix > instead at /tmp/XOR9BRZAMz line 1:␤------> @a >>⏏42␤ expecting any of:␤ infix or meta-infix␤ infix stopper␤ standard stopper␤ terminator␤Other potential difficulties:␤
..Variable @a is …
pmichaud_ tann: you mean about [1..*] going off the end of the array? I think there's an rt for it, yes.
TimToady curious
pmichaud_ TimToady: perhaps it parsed forward, then backtracked? 01:56
TimToady std: @a >>|| 42
p6eval std 27720: OUTPUT«##### PARSE FAILED #####␤Preceding operator expects term, but found infix > instead at /tmp/HWAt0rBMCW line 1:␤------> @a >>||⏏ 42␤ expecting infix_circumfix_meta_operator__S_291LtLt_GtGt␤Other potential difficulties:␤ Variable @a is not predeclared at
../tmp/H…
TimToady something like that
but it ought to have reset the high-water mark somewhere 01:57
pmichaud_ yup.
TimToady std: @a »* 42 01:58
p6eval std 27720: OUTPUT«##### PARSE FAILED #####␤Syntax error (two terms in a row?) at /tmp/NbbJIXLbHW line 1:␤------> @a »*⏏ 42␤ expecting infix_circumfix_meta_operator__S_290Fre_Nch␤Other potential difficulties:␤ Variable @a is not predeclared at /tmp/NbbJIXLbHW line 1:␤------>
..[…
TimToady there are still times when it really ought to just say "I'm really confused here" 01:59
pmichaud_ "Oops."
But yes, I'd like a compiler that says "I'm confused." 02:00
That's so much nicer than "You're wrong."
02:01 Jedai left 02:02 dukeleto joined
dukeleto howdy 02:03
TimToady greetin's
dukeleto is there an equivalent to "use integer;" in perl 6/rakudo?
TimToady not currently 02:04
at the moment you'd declare your variables with 'int' type to do something similar
a little harder, but less likely to get you into accidental trouble 02:05
pmichaud_ (and rakudo doesn't support that yet)
dukeleto: what effect would you expect "use integer" to have?
i.e., what are you wanting to see from it? 02:06
dukeleto i wanted to speed up sqrt($n) when $n is an int, but I guess declaring my Int $n; does the trick, correct?
pmichaud_ if $n is an Int, then multidispatch should already go for the faster sqrt() 02:07
(not that I know how/why it would be faster, though.)
dukeleto that is good. I have a small group of people working on the euler_bench project, which aims to write the Euler Project problems in various languages to benchmark them. We are starting with perl 5 and rakudo :) 02:08
pmichaud_ ah, yes. Keep in mind that at the moment Rakudo doesn't offer a lot of optimization options.
while it seems like having a typed variable would make things faster -- in Rakudo it actually will tend to slow things down slightly (because of the need to check the types) 02:09
eventually when we have some type-based optimizations in place, that probably won't be the case.
dukeleto good to know
euler bench lives at github.com/notbenh/euler_bench/tree/master
pmichaud_ it would be interesting to test both typed and untyped variables :-) 02:10
02:10 rbuels joined
tann substr no longer does replacement? 02:11
sjohnson Perl 5: www.istockphoto.com/file_thumbview_...-camel.jpg
Perl 6: eppy7890.files.wordpress.com/2009/0..._camel.jpg
pmichaud_ tann: nyi 02:12
dukeleto pmichaud: we will test both typed and untyped variables
pmichaud: are there any other things that you would like to see benchmarked?
pmichaud_ I'm sure I'll think of them as I see more :-)
jnthn++ undoubtedly has some ideas
02:14 tann left
pmichaud_ sjohnson: so, Perl 6 is harmful to your health and requires a surgeon general's warning? 1/2 :-) 02:17
sjohnson i was thinkin, Perl 6 is more badass 02:18
pmichaud_ It's definitely cool. But I still think that Perl 5 is really cool too.
sjohnson the Perl 5 camel looks like a wimp compared to the smoking Camel
02:18 colomon left
pmichaud_ Perl 5 ain't no wimp. 02:18
sjohnson yeah I use Perl 5 at work everyday
i just meant the pictures
not the language 02:19
pmichaud_ yes, I know.
sjohnson i just realized the truth of using split regex's in Perl 5
today was a happy day for me
can get stuff done so much quicker than PHP
@lines = split / +/ => $str;
lambdabot Unknown command, try @list
sjohnson oopsies 02:20
confused the bot
02:22 rbuels is now known as biorobot
sjohnson is going to perl jail 02:22
02:22 biorobot is now known as rbuels
wayland76 sjohnson: Yes, that should've been @lines = split /\s+/, $str; 02:25
:)
Because that picks up tabs too
sjohnson right!
dukeleto pmichaud: does rakudo need things from parrot to implement type-based optimizations ? 02:26
wayland76 And if you had $_ = $str, you could do @lines = split;
pmichaud_ dukeleto: Don't know yet (more)
sjohnson wayland76: what will that split though, newlines?
pmichaud_ dukeleto: type-based optimizations aren't high on our priority list at the moment -- we're still more focused on feature completeness and removing "not yet implemented" failures
wayland76: I just pushed some more build/install changes into the ins2 branch 02:28
dukeleto pmichaud: I understand that, but I am more interested in highlighting what needs to be optimized in Parrot by blatantly pointing it out with Rakudo code :)
pmichaud_ (including a couple of things you posted in your patch)
wayland76 sjohnson: Not sure, but I think p5 split defaults to /\s+/
pmichaud_ dukeleto: then benchmarks will help. So will profiling.
wayland76 pmichaud_: Good to hear. rurban seems to be keen on getting that sort of thing to work on Windows 02:29
pmichaud_ wayland76: I didn't add the *.spec files from your patch yet
next time you send a patch -- can you do it against the ins2 branch instead of the trunk, though?
It was hard to tease out your changes from the ones I had already made
wayland76 pmichaud_: That's fine (re spec file). Hmm. Sorry I wasn't around; I think git would've let me regenerate the patch against ins2 easily 02:30
sjohnson wayland76: ok
pmichaud_ no problem, I learned some git-fu as a result :-)
wayland76 pmichaud_: Actually, couldn't you just patch HEAD, and then do "git diff origin/ins2"? 02:31
pmichaud_ no, because HEAD is different from where ins2 branched
wayland76 Oh, ok :)
pmichaud_ so I had to go back and find the branch point, then apply the patch to that.
wayland76 Because I made a patch of your ins2 stuff, applied it to head, and then did my own code on top of that :) 02:32
pmichaud_ right.
For install stuff I want to keep everything in the ins2 branch until we get it working (on multiple platforms), then I'll move it to head
I don't want to put the install stuff in head until we've tested/confirmed it on multiple platforms
wayland76 I think it's fair to merge it as long as it works better that HEAD :)
pmichaud_ no ... (more) 02:33
wayland76 But I agree about multi-platform :)
pmichaud_ if someone has a platform that works now but doesn't work in the install branch, then by prematurely moving it to head we'd be cutting out those platforms
(and we might not know how long until we get it fixed)
02:33 awwaiid joined
wayland76 Yeah, I pretty much agree; I think we were using different words to try to say the same thing 02:34
pmichaud_ okay.
anyway, I don't plan to move the install stuff into head until after we've confirmed it runs on various platforms. 02:35
wayland76 Agreed
pmichaud_ (because at the moment there's not an easy way to do the install stuff *and* preserve the ability to work against the build copy of Parrot)
wayland76 Ah, ok.
pmichaud_ so when we switch to using an installed parrot for building rakudo, it'll have to be switched for everyone 02:36
wayland76 Sounds good to me :)
pmichaud_ (or we start maintaining separate Makefiles, or adding lots of conditionals, or doing all sorts of other ugly things I'd rather avoid)
anyway, if you can re-send a new patch that has just the .spec files and whatever other changes you think are needed to the current ins2 branch, I can apply them. 02:37
wayland76 Did you come up with an alternative to the MANIFEST? 02:38
pmichaud_ yes.
wayland76 Great :) 02:39
02:39 jauaor joined
pmichaud_ github.com/rakudo/rakudo/blob/94417...akefile.in lines 207 through 215 02:39
wayland76 Looks good. I'll try it out, although it may have to wait until Monday. 02:42
pmichaud_ that's fine, I have a few more patches to review for it and then will ask others to try out the branch
wayland76 Oh, ok 02:43
02:43 ewilhelm joined 02:49 the_irrational_1 joined 02:55 Jedai joined 02:59 mepplock left 03:00 Chillance__ left 03:07 mkfort_ joined
pmichaud_ okay, done with my patches to ins2 (for now) 03:08
Any test reports on the 'ins2' branch from various platforms would be greatly appreciated.
03:10 hercynium left
pmichaud_ (there's also a 'make install' target, if people would like to test that) 03:11
time for some dinner 03:13
03:18 mkfort left 03:20 donaldh left, donaldh joined
wayland76 pmichaud_: Yay, thanks :) 03:23
03:25 colomon joined
cotto should 'git checkout ins2' get me working with the right branch? 03:27
wayland76 That's what I'd be guessing 03:36
Wait,
depends, I think
Anyway, try it; if you mess it up, you can always try something else
Hmm. Anyway, I've found "git branch -a" to be useful in debugging these git branch things 03:37
Food calls. AFK &
03:39 arnsholt left 03:42 colomon left
cotto it doesn't work if I run make clean in Parrot's build dir 03:42
make: *** No rule to make target `/usr/src/parrot/parrot-svn-clean/runtime/parrot/library/PGE/Perl6Grammar.pbc', needed by `src/gen_grammar.pir'. Stop. 03:44
dukeleto cotto: git checkout -b ins2 upstream/ins2 (where upstream is the name of the remote) 03:45
03:45 skids joined
dukeleto pmichaud: do you want anything other than "make spectest" on ins2? 03:45
pugs_svn r27721 | lwall++ | [STD] correctly recognize missing << or >>, Juerd++ 03:47
r27721 | lwall++ | [STD] remove some "daunt" and visual confusion from parsefail messages
dukeleto pmichaud: ins2 "make test" passes on OS X 10.5.7, gcc 4.0.1, running "make spectest" now 03:49
03:49 lumi__ left 03:54 KyleHa joined
KyleHa Howdy folks. 03:55
If, indeed, there are any folks.
TimToady hides behind a sigil
03:55 skids_ joined
sjohnson our $toady; 03:56
KyleHa Aw, the finest of folks!
I noticed someone else noticing this earlier today:
rakudo: say Any ~~ Object; say Object ~~ Any;
p6eval rakudo dd5767: OUTPUT«1␤1␤»
KyleHa I'm wondering which of those is wrong and which is right and whether that's in the spec somewhere. 03:57
TimToady the second is wrong
sjohnson TimCodey always has the right answer 03:58
TimToady Wiley Codey
sjohnson TimToady: have you ever been to India? 03:59
TimToady not yet 04:00
04:03 lumi_ joined
KyleHa rakudo: say Int ~~ Num; say Num ~~ Int; 04:04
p6eval rakudo dd5767: OUTPUT«1␤0␤»
04:10 finanalyst joined
pugs_svn r27722 | kyle++ | [t/spec] Object-Any matching, jntn++ and TimToady++ 04:12
KyleHa Bleah, I misspelled jnthn++ 04:13
finanalyst @seen TimToady 04:14
lambdabot TimToady is in #perl6. I last heard TimToady speak 14m 31s ago.
04:15 jauaor left
finanalyst TimToady: which method should I use to determine what traits are associated with a variable? 04:15
i tried searching the specs for WHAT and WHICH but could not find them with the Google tool on perlcabal 04:16
04:24 tann joined
dukeleto pmichaud: ins2 has some spectest failures: gist.github.com/154694 04:29
04:29 lumi_ left
TimToady finanalyst: traits mix in methods to an object at compile time, so once the variable is declared, it's introspection is like the introspection of any other object, and "I came from a trait" is not known. 04:31
*its
std: @a »* 4
p6eval std 27722: OUTPUT«===SORRY!===␤Missing « or » at /tmp/qZr1gnExRt line 1:␤------> @a »*⏏ 4␤ expecting infix_circumfix_meta_operator__S_290Fre_Nch␤Other potential difficulties:␤ Variable @a is not predeclared at /tmp/qZr1gnExRt line 1:␤------>
..@a⏏[31…
cotto how colorful 04:33
sjohnson 4color!
finanalyst TimToady: so how would i determine whether a variable is readonly ? @x.WHAT ?
rakudo: my @x is ro; say @x.WHAT 04:34
p6eval rakudo dd5767: OUTPUT«No applicable candidates found to dispatch to for 'trait_mod:is'␤in Main (/tmp/PeL5wYr5R7:2)␤»
04:35 eternaleye joined
TimToady rakudo: my @x is readonly; say @x.readonly 04:35
p6eval rakudo dd5767: OUTPUT«No applicable candidates found to dispatch to for 'trait_mod:is'␤in Main (/tmp/qENGOqYNiZ:2)␤»
finanalyst is there a way to list the roles associated with a variable? 04:36
04:37 justatheory joined
finanalyst std: @a>>*4 04:40
p6eval std 27722: OUTPUT«===SORRY!===␤Missing << or >> at /tmp/Ly40vIQhhZ line 1:␤------> @a>>*⏏4␤ expecting infix_circumfix_meta_operator__S_291LtLt_GtGt␤Other potential difficulties:␤ Variable @a is not predeclared at /tmp/Ly40vIQhhZ line 1:␤------>
..@a⏏…
finanalyst std: my @a; @a>>*>>4 04:41
p6eval std 27722: OUTPUT«ok 00:02 37m␤»
04:41 justatheory left
pmichaud_ back again 04:48
"make spectest" in the ins branch will undoubtedly have some fails 04:49
"make test" is sufficient
04:49 lumi_ joined
finanalyst pmichaud_: is there a way to get a list of the traits/roles associated with a variable? 04:49
pmichaud_ finanalyst: I'm not aware of one, but that doesn't mean there isn't one 04:50
sjohnson Perl 6 Q: will there be a @array[] push syntax, much like PHP? 04:51
@array .= 'another item'; # maybe?
lambdabot Avast!
finanalyst sjohnson: @array.push('some stuff')
sjohnson o 04:52
finanalyst rakudo: my @x=1,2,3; @x .= push: 5; @x.perl.say 04:53
p6eval rakudo dd5767: OUTPUT«Statement not terminated properly at line 2, near ": 5; @x.pe"␤in Main (src/gen_setting.pm:3343)␤»
sjohnson rakudo: my @x=1,2,3; @x .= push 5; @x.perl.say
p6eval rakudo dd5767: OUTPUT«[1, 2, 3, 5]␤»
sjohnson rakudo: my @x=1,2,3; @x .= 5; @x.perl.say
p6eval rakudo dd5767: OUTPUT«.= must have a call on the right hand side at line 2, near " .= 5; @x."␤in Main (src/gen_setting.pm:2602)␤»
finanalyst sjohnson: .= calls something. 5 is not callable 04:54
sjohnson finanalyst: how do you contatinate $strings? 04:55
Tene ~
so use ~=
finanalyst rakudo: my $s='1234'; my $t='abcd'; say $s~$t
p6eval rakudo dd5767: OUTPUT«1234abcd␤»
sjohnson cool man 04:56
finanalyst rakudo: my $s='abcd'; $s ~= '43'; $s.say
p6eval rakudo dd5767: OUTPUT«abcd43␤»
sjohnson squiggle operator 04:57
tann rakudo: my $vals = [1,2]; printf "%d %d", $vals;
pmichaud_ "stitching operator" :-)
p6eval rakudo dd5767: OUTPUT«Null PMC access in get_integer()␤in Main (/tmp/puBmccAa1H:2)␤»
04:57 jhelwig joined
tann pmichaud: ^^^ a bug? 04:57
pmichaud_ tann: "
"Null PMC is almost always a bug"
tann granted $vals.list will work
finanalyst rakudo: my $vals = [1,2]; printf( "%d %d", $vals) 04:58
p6eval rakudo dd5767: OUTPUT«Null PMC access in get_integer()␤in Main (/tmp/pc8uyFEtfg:2)␤»
finanalyst rakudo: my @vals = [1,2]; printf "%d %d", @vals 04:59
p6eval rakudo dd5767: OUTPUT«Null PMC access in get_integer()␤in Main (/tmp/Xv0i0S5GUR:2)␤»
finanalyst rakudo: my @vals = [1,2]; printf("%d %d", @vals)
p6eval rakudo dd5767: OUTPUT«Null PMC access in get_integer()␤in Main (/tmp/15KpPPeVDa:2)␤»
finanalyst rakudo: my @vals = 1,2; printf("%d %d", @vals)
p6eval rakudo dd5767: OUTPUT«1 2»
tann maybe, printf should always faltten to list? 05:00
pmichaud_ it shouldn't auto-flatten a scalar I don't think.
finanalyst i thought printf was working in some form
tann it does
pmichaud_ printf is working. It's having trouble with "%d %d" when there's only one argument following
tann it only chokes with objects
pmichaud_ rakudo: my $vals = [4]; printf("%d %d", $vals); 05:01
Tene rakudo: my $vals = [1,2]; printf("%d %d", |$vals);
p6eval rakudo dd5767: OUTPUT«Null PMC access in get_integer()␤in Main (/tmp/EBSWVH71OI:2)␤»
rakudo dd5767: OUTPUT«1 2»
pmichaud_ rakudo: my $vals = [4]; printf("%d", $vals);
p6eval rakudo dd5767: OUTPUT«1»
tann rakudo: printf "%d %d", [1, 2], 3; 05:02
p6eval rakudo dd5767: OUTPUT«2 3»
Tene that's the correct behavior.
pmichaud_ and come to think of it, the bug is in parrot's sprintf opcode. I'm not sure how to fix that. 05:03
pmichaud_ looks.
looks like too much trouble to track tonight :-| 05:06
anyway, it can be rakudobugged
tann any better *working* code does this in rakudo? $s = $s.substr(0,1) ~ '-' ~ $s.substr(1); 05:19
05:22 nihiliad left
PerlJam tann: depends on how you define better :) 05:33
my $s = "foo"; $s ~~ /^./; $s.=subst($/,"$/-"); say $s; # working, yes; better, ... maybe
tann PerlJam: less verbose == better :) 05:34
PerlJam: cool.... i was trying to find substitute for substr($s, 1, 0) = '-'; :) 05:35
05:35 jauaor joined
PerlJam lvalue substr doesn't work AFAIL 05:35
er, AFAIK
tann PerlJam: yup...that's why the workaround 05:36
the joy of making perl5 code works in rakudo :)
PerlJam Ideally, $s .= subst(/^./, "$/-"); should work too 05:37
tann PerlJam: $/ holds the match now (w/o the ^ $) ? 05:38
05:38 frew_ joined
PerlJam the stringy version of $/ is what was matched. 05:39
tann rakudo: my $s = "abc"; $s .= subst(/^./, "$/-"); 05:40
p6eval rakudo dd5767: OUTPUT«Use of uninitialized value␤»
tann rakudo: my $s = "abc"; $s ~~ /^./; $s .= subst(/^./, "$/-"); 05:41
p6eval rakudo dd5767: ( no output )
tann oh man..too cryptic... i like the java-like verbose version $s = $s1 ~ '-' ~ $s2; :( 05:43
PerlJam Hmm. I guess $s .= subst(/^./, "$/-"); can't work. 05:44
egypt yay! \o/
when did rakudo get "The grammar has no TOP rule..." errmsg? 05:45
PerlJam rakudo: my $s = "foo"; $s .= subst(/^./, { "$_-" }); say $s; 05:46
p6eval rakudo dd5767: OUTPUT«f-oo␤»
PerlJam ah, there we go.
(guessing for magic)++
egypt: it's been a while now I think. according to git blame, May 6, 2008 was when that line was added. 05:48
egypt PerlJam: that's strange, I'm sure I didn't get that as recently as a month ago 05:49
PerlJam no offense, but I trust git more than your memory :) 05:51
tann pugs: my $s = "foo"; substr($s, 1, 0) = '-'; say $s; 05:54
p6eval pugs: OUTPUT«f-oo␤»
PerlJam ah, lvalue substr *does* work.
(for pugs :)
so ... all you have to do is run pugs from within rakudo. 05:55
05:56 unitxt left
tann what about use v5? :P 05:56
06:05 lumi_ left 06:33 asciiville joined 06:34 asciiville left 06:35 lumi_ joined 06:36 asciiville joined 06:38 synth left
asciiville asdf 06:39
06:40 skids_ left 06:50 kane___ left
TimToady std: asdf 06:59
p6eval std 27722: OUTPUT«Undeclared routine:␤ asdf used at 1 ␤ok 00:02 36m␤»
07:00 beggars left
pmichaud_ asqew 07:02
tann std: :)
p6eval std 27722: OUTPUT«===SORRY!===␤Illegal use of colon as invocant marker at /tmp/OCXdSL9brn line 1:␤------> :⏏)␤FAILED 00:02 36m␤»
tann std: :D
p6eval std 27722: OUTPUT«ok 00:02 36m␤»
tann std: :D :O 07:03
p6eval std 27722: OUTPUT«ok 00:02 36m␤»
tann now if there's an editor that can display smileys for p6 :D 07:04
07:10 sri_kraih left
cbk moritz_, pmichaud_ thanks but I have to go to work now. THANKS rakudo.org for #19 went to sleep at 3am last night and woke up at 7am. now I'm going to be a zombie at work :) 07:13
07:14 cbk left
TimToady zzz & 07:19
07:20 donaldh left
tann rakudo: multi sub f(%h) { 'h' }; multi sub f(@a) { 'a' }; multi sub f { 'oops!' }; f(1); 07:20
p6eval rakudo dd5767: OUTPUT«No applicable candidates found to dispatch to for 'f'␤in Main (/tmp/W4BBIMfQ6j:2)␤»
07:20 donaldh joined
tann pugs: multi sub f(%h) { 'h' }; multi sub f(@a) { 'a' }; multi sub f { 'oops!' }; f(1); 07:22
p6eval pugs: ( no output )
tann multi sub f(%h) { 'h' }; multi sub f(@a) { 'a' }; multi sub f { 'oops!' }; say f(1);
pugs: multi sub f(%h) { 'h' }; multi sub f(@a) { 'a' }; multi sub f { 'oops!' }; say f(1);
p6eval pugs: OUTPUT«oops!␤»
07:30 Su-Shee joined
Su-Shee good morning future. :) 07:30
pmichaud_ The future is here? 07:46
07:46 pmichaud_ is now known as pmichaud
egypt good morning Su-Shee :) 07:46
Su-Shee pmichaud: aren't you working like there is no tomorrow on the future? :)
pmichaud Su-Shee: that sounds about right, yes. :-) 07:47
egypt wouldn't that be kinda contradictory?
pmichaud egypt: yes, but that's pretty much me in a nutshell. 07:48
Su-Shee egypt: it's all very zen with rakudo.. the future has no tomorrow, it's now. ;)
egypt Su-Shee: i am too tired for zen. my body clock needs to be defragged :( 07:56
but that's neither here nor there; good morning too you; i'm off to bed :) 07:57
Tene having fun with curses in rakudo. :)
Tene annoyed by unicode fail in Parrot curses. :(
egypt Tene: rakudo can do curses? how? 07:58
Tene egypt: use Curses:from<parrot>;
egypt might play with rakudo a little longger :) 07:59
lisppaste3 tene pasted "Curses example for egypt" at paste.lisp.org/display/84163
Tene This works against latest parrot. Not against Parrot 1.4, though. There were a couple of missing curses functions. 08:00
Bet you can't tell what I'm working on. ;) 08:01
tann rakudo: multi sub f(Sub $f) { 'sub' }; multi sub f(Int $n) { 'int' }; f(sub { 1 }); 08:03
p6eval rakudo dd5767: ( no output )
tann oh..interesting..i got a 'Bus error' on my mac 08:04
Tene nice! 08:05
tann it looks like my rakudo build is kinda hmm...jumpy 08:06
08:08 asciiville left
tann rakudo: multi sub f(Sub $f) { 'sub' }; multi sub f(Int $n) { 'int' }; say f(sub { 1 }); 08:08
p6eval rakudo dd5767: OUTPUT«sub␤» 08:09
tann rakudo: multi sub f(Code $f) { 'sub' }; multi sub f(Int $n) { 'int' }; say f(sub { 1 });
p6eval rakudo dd5767: OUTPUT«sub␤»
tann rakudo: multi sub f(Code $f) { 'sub' }; multi sub f(Int $n) { 'int' }; say f(1);
p6eval rakudo dd5767: OUTPUT«int␤»
tann std: sub f(Str|Code $a) { say $a.WHAT }; f("p5"); 08:16
p6eval std 27722: OUTPUT«===SORRY!===␤Unable to parse multisig; couldn't find final ')' at /tmp/Ugd7HChH6t line 1:␤------> sub f(Str⏏|Code $a) { say $a.WHAT }; f("p5");␤ expecting any of:␤ param_sep␤ parameter␤ post_constraint␤ trait␤ 08:17
..type_constraint␤ whitespace␤FAIL…
08:17 redicaps1 joined 08:32 masak joined
dukeleto pmichaud: some failing tests in your ins2 branch: gist.github.com/154748 gist.github.com/154745 08:33
08:34 tann_ joined, tann left
moritz_ looks to me like ins2 isn't sufficiently up-to-date 08:34
Tene hai masak 08:36
masak y0 Tene
Tene got something for you to look at. 'sec.
masak curious 08:37
Tene github.com/tene/cutegirls/tree/b239...127903f/p6 08:39
masak ooh, getch! 08:40
(but can we please also work at getting the corresponding call into core Rakudo?)
Tene: anyway, way cool! 08:41
Tene masak: what call? 08:42
masak getch.
don't remember what it's supposed to be in Perl 6.
masak checks
Tene masak: That's a Curses getch. Different from reading a keystroke without curses, I think... not quite sure.
masak ok. 08:43
I found some hints in S32/IO. getc reads a character from an IO object.
but there's also a "these are not the droids you're looking for" note there. 08:44
saying I really want 'readkey()', which hasn't been specced yet.
Tene there's always .read(1), but that's "read one byte" not "read one character". 08:45
I discovered that Parrot's curses library is broken WRT unicode. :(
masak :(
Tene but maybe I will fix it!
yay fixing! 08:46
But not tonight.
masak I'm getting record amounts (for me) of comments to "Three things in Perl 6 that aren't so great", proving once again that the only thing more attention-grabbing than shiny graphics is a medium-sized rant. 08:48
moritz_ masak: there are also some comments on www.reddit.com/r/programming/commen..._so_great/ 08:49
masak thank you. 08:50
I always miss when that kind of linkage happens.
there ought to be a mechanism for telling the original author (except for moritz_++, that is)
wow, comments so far exceed my expectations of a reddit thread. 08:52
Tene masak: fwiw, check out UI.pm on that github directory I linked. I indented all the methods in those classes. :) 08:53
masak Tene: github is sad right now. they're deploying something, I think. 08:54
Tene :(
masak I can't clone the repo either. 08:57
Tene so sad. :(
masak bah, time to do some hacking instead. :)
still racing towards being able to blog later today about week 11 of Web.pm
Tene allalone.org/~tene/cg.tar.bz2 08:58
has a copy of the repo
masak danke.
Tene masak: I've got most of the weekend free, so please let me know if there's anything you'd like me to do for Web.
message on IRC on e-mail are both great. 08:59
masak Tene: I haven't really updated you on my recent thoughts about the feasibility of making a Parrot-based version of Hitomi.
at present, I think it's harder than I originally thought.
things are pretty dynamic on the inside of Genshi. 09:00
Tene I'm actually going to sleep right now, but I'd love to see e-mail from you when I wake up.
'night
masak I'll se what I can do.
good night.
Tene: hey, you indented your classes, but you have no Pod in there whatsoever! 09:01
that's no challenge. :) 09:02
finanalyst masak: re indenting POD is it possible to use unspace?
masak finanalyst: don't think so.
finanalyst eg. \ =begin
masak unspace is a feature of Perl 6, and Pod is basically a separate language. 09:03
not just a slang, but a separate language.
(AFAIU)
finanalyst but Pod is used in perl6
masak reason being, Pod translators shouldn't have to know Perl 6.
haven't seen unspace specced in Pod, ergo it's not in Pod.
09:03 zamolxes left
finanalyst then perhaps, Pod implementors should use unspace 09:03
masak finanalyst: it would certainly solve the problem almost entirely. 09:04
finanalyst: I cannot say how intrusive it would be to the idea of Pod itself, though.
finanalyst ?(@pod-implementors == @perl6-implementors)
lambdabot Unknown command, try @list
masak lambdabot: hush. 09:05
finanalyst how much is Pod used outside of perl?
masak finanalyst: @pod-spec-authors is basically TheDamian.
finanalyst realistically as opposed to idealistically?
thought so 09:06
finanalyst sending Damian an email
masak finanalyst: and he hasn't made a sound about it in a couple of years.
finanalyst he has said he is making progress quietly
masak yes, but he said that in 2006. 09:07
meanwhile, back in 2009, I'm starting to want to mark up my document with Pod.
09:10 molaf_x left
pmichaud for those playing with the 'ins2' branch -- it's known that spectests will fail 09:25
I just need "make test"
09:25 pmurias joined
masak rakudo: class A { has @!a; method foo { .say for @!a.elems, @!a.perl } }; sub bar(*%_) { A.new(|%_) }; my @b = 42,43,44; bar(:a(@b)).foo 09:27
p6eval rakudo dd5767: OUTPUT«1␤[[42, 43, 44]]␤»
masak this is related to flaws I experienced yesterday. 09:28
when arrays are passed through *%_, they get an extra layer of array around them.
masak submits rakudobug
09:30 colomon joined
pmichaud that actually seems right to me 09:31
because the value portion of a pair is a scalar 09:32
and placing an array into a scalar creates a reference
(modulo any new capture/parcel semantics) 09:35
masak pmichaud: ok. let's say I want to have an array in my @!a. 09:36
(and I need to use *%_ because I'm passing unknown things along)
how do I do it?
pmichaud I don't know.
I'm not arguing in favor of the current semantics -- I'm just having trouble seeing how they ought to work 09:37
masak it works without the *%_ step. or without the class/attr.
pmichaud well, the %* definitely converts pairs into a hash
masak and yet, this works: 09:38
rakudo: sub foo(:@a) { say @a.elems }; sub bar(*%_) { foo(|%_) }; my @b = 42,43,44; bar(:a(@b))
p6eval rakudo dd5767: OUTPUT«3␤»
pmichaud okay, it must be something in .new then 09:39
masak it's only when this is combined with storing the array into an attr in an object that the extra layer of array is added.
masak adds this to the bug ticket
pmichaud my guess is going to be that :a(@b) builds a named argument with a capture 09:40
interestingly, though, that would mean that changes to @b would affect the named argument
anyway, it's fine to file it as a bug, but I think we'll have to wait for spec clarity on captures/flattening before it can be reliably fixed (or even reliably determined what "fixed" means) 09:42
masak yes, I understand.
I'll be logging off now. going to Stockholm to spend the day with nerdy people. will be back tonight for the massive Week 11/Web.pm-summary-so-far blog post. 09:44
see you then. o/
09:44 masak left
pmichaud class A { has @!a; method foo { say @!a.elems; } }; my @b = 42,43; sub bar(*%_) { @b = 1..10; A.new(|%_) }; bar(:a(@b)).foo 09:44
2? or 10?
afk also 09:45
09:59 jauaor left 10:04 wknight8111 joined 10:08 tann_ left, egypt is now known as bpetering 10:18 payload left 10:34 meppl joined 10:36 jauaor joined 10:37 Front_slash joined 10:51 zamolxes joined 10:55 icwiener joined 10:59 fridim_ joined 11:02 wknight8111 left 11:05 yahooooo left 11:07 yahooooo joined
jnthn o/ 11:17
eiro hello 11:18
in for @a { say $^a++ } , $a is read only ... cool ! 11:19
11:20 donaldh left, payload joined
eiro for @a <-> $a { say $a } $a is side effect 11:20
is there a way to write something like for @a -> temp $a { # here i can modify the temp value of $a
11:20 donaldh joined
eiro ( is rw works like <-> ) 11:22
jnthn is copy 11:23
for @a -> $a is copy { ... }
eiro thx jnthn
no short for it ?
11:24 Jedai left
payload rakudo: my @a = 1..5; for @a <-> $a { $a *= 2 }; say @a 11:24
p6eval rakudo dd5767: OUTPUT«246810␤»
eiro payload, that's side effect! 11:25
i don't want side effect!
jnthn eiro: That isn't so long! :-P 11:26
payload rakudo: my @a = 1..5; for @a -> $a is copy { $a *= 2; print $a }; say " ", @a.perl
p6eval rakudo dd5767: OUTPUT«246810 [1, 2, 3, 4, 5]␤»
eiro jnthn, too long for perl programmer :) 11:27
jnthn, it feel to me that for @a { say $^a } must be the default behavior 11:28
jnthn That's pretty much equivalent to for @a -> $a { say $a } 11:30
rakudo: my $foo = { %^a }; say $foo.signature.perl;
p6eval rakudo dd5767: OUTPUT«:(%a)␤»
jnthn rakudo: my $foo = { $^a }; say $foo.signature.perl; # gah, meant this
p6eval rakudo dd5767: OUTPUT«:(Object $a)␤»
jnthn rakudo: my $foo = -> $a { $a }; say $foo.signature.perl; # same, I expect 11:31
p6eval rakudo dd5767: OUTPUT«:(Object $a)␤»
jnthn introspection++
eiro jnthn, no ... what i meant is: by default, $a is readonly ... not a copy 11:33
finanalyst rakudo: my @a; foo(@a);@a = 4,3,2;sub foo(@z) { bar(@z) }; sub bar(@x) { } 11:34
p6eval rakudo dd5767: OUTPUT«Cannot assign to readonly variable.␤in Main (/tmp/fO36SkkFpF:2)␤»
finanalyst problem is the assignment to @a after calling foo
any help as to a workaround? 11:35
Su-Shee wow what do I read with my old eyes? :) "There will be the first major release of Rakudo in spring 2010" ? 11:36
finanalyst before christmas 11:39
jnthn finanalyst: That looks like a rakudo bug..
Su-Shee well andy lester of perl buzz posted it..
jnthn rakudo: my @a; @a = 4,3,2; sub foo(@z) { bar(@z) }; sub bar(@x) { } 11:40
11:40 fridim_ left
p6eval rakudo dd5767: ( no output ) 11:40
jnthn rakudo: my @a; foo(@a); @a = 4,3,2; sub foo(@z) { bar(@z) }; sub bar(@x) { }
eiro have a nice WE all
p6eval rakudo dd5767: OUTPUT«Cannot assign to readonly variable.␤in Main (/tmp/bYWrd085jV:2)␤»
jnthn rakudo: my @a; bar(@a); @a = 4,3,2; sub foo(@z) { bar(@z) }; sub bar(@x) { }
p6eval rakudo dd5767: ( no output )
jnthn ouch
Looks like bug. :-/
finanalyst jnthn: just posted a bug 11:41
jnthn Thanks. 11:42
finanalyst i spent over a week narrowing it down to this code
just found a workaround 11:44
11:44 frew_ left
finanalyst rakudo: my @a; foo(@a);@a = 4,3,2;sub foo(@z) { my @xz = @z; bar(@xz) }; sub bar(@x) { } 11:44
p6eval rakudo dd5767: ( no output )
finanalyst rakudo: my @a; foo(@a);@a = 4,3,2;sub foo(@z) { my @xz = @z; bar(@xz) }; sub bar(@x) { };say @a.perl 11:45
p6eval rakudo dd5767: OUTPUT«[4, 3, 2]␤»
11:48 molaf joined 11:49 payload1 joined, payload left
jauaor :P 11:51
11:51 molaf left 12:09 bpetering left 12:17 icwiener_ joined 12:20 colomon left 12:21 unitxt joined, unitxt left 12:33 icwiener left 12:35 icwiener_ left 12:36 fridim_ joined 12:51 redicaps1 left
pugs_svn r27723 | moritz++ | [t/spec] unfudge [//] and [||] tests for rakudo 12:54
13:03 finanalyst left 13:20 icwiener_ joined
hoelzro good (morning), perl6! 13:37
sbp hey hoelzro 13:38
hoelzro so I wrote the following program running on Rakudo: pastebin.com/d65b49dc1 13:39
but when I type a line, ex. "say 'hello'", I get this error:
ResizablePMCArray: Can't pop from an empty array! in Main (src/gen_setting.pm:3340) 13:40
wondering if anyone had any insight into that
or if someone knows a way for me to get a better stack trace
s/better// 13:41
jnthn ooh, I haven't seen anybody try that one before. ;-) 13:48
hoelzro per pmichaud's suggestion, I'm going to try to create an online REPL for Rakudo =) 13:49
so I figured I'd rip apart HLLCompiler.interactive
jnthn :-)
I'm guessing it is some compiler state not being set up properly or something like that. 13:51
hoelzro that was my guess as well 13:52
I just wish I knew which array it was trying to pop from 13:53
I'll continue to play around with it
jnthn @?BLOCKS perhaps, but you'd expect it to have pushed onto there too. :-S 13:54
13:57 Chillance joined
jnthn hoelzro: 14:01
Got a stack trace for you that's a bit more helpful.
14:01 colomon joined
jnthn hoelzro: gist.github.com/154804 14:01
hoelzro jnthn: thanks! 14:02
jnthn hoelzro: Added patch to the gist to a line you can comment out to get these details
hoelzro that'll help a LOT, how'd you do that?
jnthn hoelzro: so if you apply that patch you can get it 14:03
hoelzro awesome
jnthn The mechanism getting in there way there is the one that only shows Routines in the backtrace, not just any Block (since all are Parrot-level subs) 14:04
hoelzro I'm a little inexperienced with PIR; I assume pop_eh != pop, and is special?
jnthn But it may be nice to print out also the Parrot-level subs when we're outside of Perl 6 code.
pop_eh = pop the top exception handler off the top of the exception handler stack 14:05
hoelzro ah
jnthn Opposite of push_eh
hoelzro ok, there's only one pop in parse, so this "should" be easy
jnthn afk for a little bit, back later 14:06
hoelzro ok, thanks again
jnthn np, look forward to seeing an online REPL! :-)
hoelzro I'll do what I can =) 14:07
14:17 nihiliad joined
pmichaud good morning, #perl6 14:18
the biggest issue with the REPL is handling lexicals.
araujo morning 14:19
hoelzro pmichaud: I decided not to worry about that for now 14:21
I'm just going to try to get a basic online, non-safe REPL working
just something I can run at home
then I'll add security
I'm hoping to leverage HLLCompiler, so if we add lexicals to the standard REPL, they "should" work in the online version 14:22
pmichaud hoelzro: yes, I agree -- I want the standard REPL to be able to handle lexicals 14:24
hoelzro: so you're just working on the online part, then?
hoelzro yup =)
pmichaud that sounds like an excellent plan
hoelzro I had some great help from jnthn
I'm trying to get a simple script (seen in a message of mine above) working, and so I'm working on a bug 14:25
then I'm thinking of subclassing Perl6::Compiler to create an online, interactive REPL
pmichaud hoelzro: yes, I just looked at the pastebin. 14:27
I don't think you need/want ".new" on Perl6::Compiler
hoelzro oh?
pmichaud you might be able to do Perl6::Compiler.interactive 14:28
pmichaud tries it
hoelzro interesting
pmichaud works for me
hoelzro interesting
pmichaud (I think that it ought to work with .new on Perl6::Compiler, yes -- but I think the current Perl6::Compiler object doesn't know how to handle multiple instances of itself. 14:29
hoelzro then that's another issue for another time
I'll dig through interactive then 14:30
and attempt to replace the I/O with some sort of online version
pmichaud seems very reasonable.
hoelzro another thing I'd like to try to get working is multi-line input for blocks in the REPL 14:33
ex. for (1..10) {\n<different prompt until final }>
doing that bit with the online version could get annoying 14:34
14:36 firmicus joined
pmichaud hoelzro: well, the ultimate way that's currently designed to happen is via '.moreinput' in the grammar. 14:38
the STD.pm grammar has a .moreinput subrule that says "I really need more input in order to get to something that is parseable" 14:39
hoelzro ok
pmichaud Rakudo hasn't adopted that yet, but we'll need to. Actually, it really wants to go into PCT::Grammar at some point, so that all grammars can take advantage of it.
14:43 ZuLuuuuuu joined, jevin left 14:44 firmicus left 14:48 pmurias left
jnthn hi pmichaud 14:54
.oO( did he fly already )
moritz_ he sais something 4 minutes ago in #parrot
s/sais/said/
jnthn didn't even parse sais as wrong English, but curious lolspeak 14:55
pmichaud I'm still here, but they're boarding now 14:56
so I'm about to be not-here
moritz_ I just tested ins2 successfully on Debian Lenny/amd64 14:57
pmichaud \o/
many thanks
I'm primarily interested in Win32 next
jnthn uh-oh
pmichaud: p6object's isa did something horrid
pmichaud: Assumed that if we were matching against Any and it wasn't a Junction it was fine. 14:58
pmichaud: And thus Object ~~ Any.
pmichaud right
I saw that.
jnthn Yeah
It's gotta die. I know it helps performance.
But it also ties the multi dispatcher's narrowness analysis in knots.
I was sure I'd got a bug...but no, garbage in, circularity error out.
pmichaud well, keep in mind that the shortcutting is also there to be able to handle non-Rakudo objects 14:59
jnthn Turns out making it give the correct answer breaks two spectests. Going to investigate. One looks trivial fix (case of incorrect signature) anyway.
Yeah, there is that too.
We need a better plan on that I guess.
pmichaud the other purpose for the shortcutting was so that non-native Rakudo objects still look like subclasses of Any 15:00
jnthn Right, I get that.
pmichaud since we have our own p6metaclass, does this mean we can have our own isa?
jnthn We need to find a different way to provide for that, which doesn't result in us giving wrong results.
pmichaud and move the rakudo-specific stuff out of the parrot p6metaclass?
jnthn Well, actually I'm talking bull. It's actually in ACCEPTS that we have the issue. :-) 15:01
But yes, we can have our own too.
Would you ratehr I did that and left p6o alone?
And we work out a good solution later?
pmichaud if we're willing to live with the performance issue, I don't mind if we simply say that Any is true for any object that isn't a Perl6Object
(and Perl6Object also)
jnthn It's gonna break again as soon as somebody subclasses Object.
pmichaud I'd remove the test for Junction 15:02
jnthn oh, sorry
I mis-understood what you meant.
Yes, that's sane.
pmichaud okay, I gotta get in line to board
jnthn I can live with a small performance hit in order to gain correctness.
pmichaud feel free to experiment with it
jnthn OK, safe flight!
pmichaud hopefully it *is* a small performance hit
later
15:20 donaldh left, donaldh joined 15:21 Whiteknight joined 15:24 KyleHa left, KyleHa joined 15:29 Chillance_ joined 15:31 M_o_C joined 15:33 hoelzro|home joined, itz_ joined 15:37 Whiteknight left 15:39 payload1 left 15:41 payload joined 15:42 cognominal left 15:46 Chillance left, cognominal joined 15:51 StephenPollei left
hoelzro|home is there a good way to print to STDERR in PIR? 15:57
15:58 Chillance_ left
hoelzro|home ah, I think I found it 15:58
16:11 jaldhar joined
jaldhar Hello. Question: in the construct for < 1 2 3 > -> $number { do_something($number) } 16:12
is do_something executed in "parallel" or consecutively? 16:13
(hope that made sense)
TimToady consecutively
you can tell it to operate in parallel however, if the 'for' is in hyper context
my @result = hyper for < 1 2 3 > -> $number { do_something($number) } 16:14
that tells the for it can run them in parallel
currently specced, but I'm sure not implemented
jaldhar I wonder if that is what is happening? My actual do_something function assigns a game piece to an empty space on the board. But sometimes two are ending up in the same space 16:15
latest rakudo btw
TimToady is do_something not idempotent?
jaldhar not using hyper afaict
TimToady should be doing them sequentially
possibly a scoping problem? 16:16
so you're starting over somehow?
16:16 kane___ joined
jaldhar what I do is pick a random space in a repeat ... until (space is empty) 16:16
TimToady how does the second iteration learn of the first iteration's results?
what is your board stored in? 16:17
jaldhar an array of spaces
each space has a slot for a piece and an adjacency table
TimToady declared where and how?
jaldhar a space is a class and the board has an array of spaces 16:18
board is also a class
TimToady how is the board declared, in in what scope?
which declarator are you using? 16:19
you might print out .WHICH on the two iterations to see if you're really modifying the same object 16:20
16:21 asciiville joined
jaldhar ok. In reference to your previous question, it is class Space{...} and class Board{...} if that's what you're asking. Board includes @!grid of Space 16:21
oh sorry thats %!grid of Space 16:22
TimToady with 'has', I presume 16:23
jaldhar yes 16:24
TimToady if you're sure you're dealing with the same Board each time through, then the problem would be on the setting and sticking end, I suppose
asciiville is there any notion of "forward declaration" in Rakudo/Perl 6? I get invoke() errors unless I change the order of the classes/subclasses in DBDI/Driver/SQLite3.pm 16:25
TimToady I doubt that rakudo would be trying to do any concurrency
jaldhar TimToady: Yes I get the feeling that my logic of assigning to an empty space is wrong somehow. It is definitely the same Board according to .WHICH 16:26
TimToady asciiville: a class name has to be predeclared before you can use it, but you can put class Foo {...} with the ... stub
that would serve as a forward declaration 16:27
asciiville ah! much obliged
TimToady alternately, you can say ::Foo for a not-yet-defined ref
(though not in a declarative context, alas)
we should probably separate those concepts... 16:28
but currently, if you need sub foo (::Foo $bar) you have to use class Foo {...} instead 16:29
since the ::Foo would mean to capture the type of the $bar parameter en passant
asciiville the stub sounds good. :) i've been dealing with C, PIR, and Perl 6 to get the SQLite3 working in latest Parrot/Rakudo
TimToady rakudo probably needs "is also" on the real definition to suppress warnings 16:30
and "is also" will change to "augment" in rakudo someday
but you shouldn't need either if the original was a stub
jaldhar aargh I think I figured it out. I have
repeat { $rand = ( 20.rand.int ) + 1; } until %!grid{$rand}.occupant == ''; 16:31
asciiville i'm guessing the stub is much easier than reorganizing classes
jaldhar but == is numeric isn't it.
TimToady == is numeric
jaldhar doh
the occupant slot holds a string
TimToady jaldhar++ for making progress
@karma jaldhar 16:32
lambdabot jaldhar has a karma of 1
TimToady jaldhar++ for having the courage to ask questions too
@karma jaldhar
lambdabot jaldhar has a karma of 2
jaldhar its so helpful to just talk it out sometimes. I must have stared at that code 100 times before and glossed over the == 16:33
TimToady the == ought to have been giving you warnings, I think
but perhaps not, depending on if we think '' is a valid representation of 0 16:34
maybe it's something the compiler could notice 16:35
jaldhar I think it would be a good idea 16:37
hoelzro|home how can I test if a pmc is null in PIR? is it just unless null mypmc goto some_label? 16:43
TimToady ENOKLOO # not a PIR expert 16:44
TimToady is not even a PIR amateur...
hoelzro|home ugh 16:45
I just realized my stupid mistake
s/unless/if/ 16:46
16:48 Patterner left
pmichaud greetings from San Diego :-) 16:50
16:51 ZuLuuuuuu left, Whiteknight joined 16:53 Psyche^ joined, Psyche^ is now known as Patterner
TimToady ah yes, one of the many SWA "hubs" :) 16:54
pmichaud it's quite a contrast from SJC
SJC has a new terminal open, which is a very long hallway and tons of space between the gates
TimToady always fun landing over the hill in SD
oh, were you in the new terminal B? 16:55
pmichaud San Diego has 12 gates crowded into a small circle, with no room for everyone here :-)
TimToady: apparently. Someone next to me remarked that he flew out every week and this was "all new to him"
okay, time to board
TimToady peddle hard
pmichaud see you later/tomorrow
dalek kudo: 240b984 | (Kyle Hasselbacher)++ | Test.pm:
report expected and actual results after "is" test failure
17:03
17:03 wayland76 left 17:06 kane___ left 17:10 pmurias joined 17:13 FurnaceBoy joined, kane___ joined
pugs_svn r27724 | moritz++ | [t/spec] test for RT #67876 17:17
r27725 | lwall++ | [STD] hide "multisig" from user 17:18
17:24 frew_ joined 17:26 cbk joined 17:27 sri_kraih joined 17:44 dukeleto left 17:45 fridim_ left 17:47 FurnaceBoy is now known as pearshaped, pearshaped is now known as FurnaceBoy 18:05 sri_kraih left, sri_kraih joined
pugs_svn r27726 | lwall++ | [S05] permanently reserve ; within regex as indicating missing terminator 18:09
pmurias TimToady: why do we reserve the semicolon? 18:10
pugs_svn r27727 | lwall++ | [STD] more humanization of error messages 18:12
TimToady as a statement separator, it's a very good spot to figure out that someone didn't terminate their regex properly
and it was already an "unrecognized metacharacter" 18:13
this just let's us give a more useful message in the case that they actually did leave off the terminator
18:13 jauaor left
TimToady *lets 18:13
I can probably give a better message for /;/ though 18:19
18:28 fridim_ joined 18:29 sri_kraih_ joined 18:33 edpratomo joined 18:35 arejay left 18:36 arejay joined
pugs_svn r27728 | kyle++ | [t/spec] Check semicolon in rx 18:43
18:44 sri_kraih left 18:47 tann joined
pmurias TimToady: does reserving something as none existent actually mean anything (rather than a hint how a good error message should be implemented) 18:49
colomon Hi all. Any idea why when /^(\d+)\-(\d+)/ { @entities_needed.push: $0..$1; } 19:03
would get an error message of Multiple Dispatch: No suitable candidate found for 'cmp', with signature 'PP->I' in method Range::true (src/gen_setting.pm:1650) ? 19:04
hoelzro|home pmichaud: I got the REPL working with a Perl6::Compiler instance, not just Perl6::Compiler =)
jnthn colomon: Maybe rakudobug...does +$0..+$1 work any better? 19:06
jnthn bbs - dinner 19:07
19:11 masak joined
masak ahoj, adventurers! 19:12
你们好马?
er, wrong 'ma3'. should've been 吗.
Su-Shee thank, very well. ;) learning chinese? 19:13
masak Su-Shee: constantly.
colomon jnthn: Yes, that does indeed make it work. rakduobug?
hoelzro|home masak: I only saw hao3, and judging from your statement about ma, I assume you asked 'ni men hao ma?' I'm quite well, thanks =)
masak hoelzro|home: bad fonts, eh? :) 19:14
19:16 mkfort_ is now known as mkfort, Front_slash left
masak I think that if Perl 6 is to be inspired by something in Python, it should be something like this: docs.python.org/library/itertools.html 19:17
providing this in a module is fine by me.
19:18 M_o_C left 19:19 mberends joined 19:20 donaldh left, donaldh joined
masak moritz_: what's that shrieking yellow arrow thing in the STD.pm parse error output? the idea is sound, I think, but could you make it another colour? 19:20
19:21 mberends left
jnthn colomon: Yes, rakudobug 19:21
KyleHa Is that a given/when bug or a matching bug or what (i.e., where should the test go)? 19:22
jnthn KyleHa: range
KyleHa Thanks!
jnthn masak: I think the point is to aid people who are red/green colorblind. 19:23
masak jnthn: by blinding the rest of us? :)
jnthn Right. It's parse error socialism in action! 19:24
masak I'm happy with any variant of yellow with less brightness in it.
colomon KyleHa: Are you planning on adding a test case for it?
masak it shrieks less against the light grey brackground, but it still shrieks.
19:25 mberends joined
masak @array .= 'say something, lambdabot' 19:25
lambdabot Swab the deck!
masak :)
KyleHa colomon: Yeah, probably.
masak KyleHa: did you submit an RT ticket? 19:27
colomon KyleHa: Can you walk me through how, so I can do it myself in the future? :)
KyleHa I have not submitted a ticket.
I was expecting colomon to submit the ticket.
colomon: You have a pugs commit bit? 19:28
colomon I do, from the pre-history of pugs.
masak ah. colomon: go for it. :)
colomon Not sure I still remember the password.
19:28 kane___ left
KyleHa OK, so, I have my repo checkout, and I'm editing t/spec/S03-operators/range.t 19:29
colomon Have the file up in my editor to follow along. 19:30
19:30 szabgab left
KyleHa I go to the end, and I usually operate in a new block with a comment before it that says what ticket number I'm testing. 19:30
# RT #1234 \n { \n } 19:31
At this point, I'm hoping you know how to write tests. 8-)
masak (and the comment causes a 'new tests' mail to be automatically sent, right?)
colomon Actually, I was in the process of learning how to do that when I stumbled on the bug.
KyleHa masak: Actually it's the commit message that triggers the email. 19:32
masak aha.
colomon (In the Perl 5 / Perl 6 context, I mean.)
masak I love those mails.
KyleHa OK, in the briefest terms...
You set up some condition and then the actual "test" is written with ok() and friends. 19:33
ok( $true_condition, 'description of the test' )
ok( 1 == 1, 'the == operator works' );
colomon Or nok ($false_condition, 'desc'), right?
KyleHa Yes.
There are lots of variants, but you can do everything with ok() if that's all you know. 8-) 19:34
19:35 szabgab joined
KyleHa Another good one: is( $got, $expected, 'got what i expected); 19:35
So, I write my tests in the file...
When I'm done, I count the number of tests I've added and adjust the 'plan' line at the top of the file. 19:37
19:37 olaf225 joined
KyleHa I added two, and it says "plan 80" right now, so I change it to "plan 82". 19:37
Then I try running the test file with my tests added, and it's time to debug. 8-) 19:38
19:38 lumi_ left
masak KyleHa: so you haven't tested the new plan-less feature? no more counting tests! 19:38
KyleHa in my rakudo dir, I do:
colomon So something like my $a = 1; my $b = 3; ok($a..$b == 1..3, "range limits are variables"); ?
19:39 meppl left
jnthn Don't think == is quite what you want there. 19:39
colomon Thought it might not be.
masak colomon: better to build the range object and examine .from, .to etc.
KyleHa That's the right idea, but I don't think you can use == to compare two ranges.
jnthn is($a..$b, 1..3, 'comment') may be fine
masak though it does string comparison, methinks.
KyleHa masak: I think plans are a good idea whenever possible, but I'm glad I can go without now when I need to. 8-)
jnthn rakudo: say 1..3 19:40
p6eval rakudo 240b98: OUTPUT«123␤»
jnthn Should work out OK
colomon Also, I'm not sure if the bug is triggered just by the use of variables, or if it was specifically the pattern match variables that were the problem.
jnthn It'll be the pattern match vars, surely.
rakudo: my $a = 1; my $b = 2; say $a..$b;
p6eval rakudo 240b98: OUTPUT«12␤»
masak KyleHa: de gustibus non disputandum est. :) I don't think I'll write a plan ever again now that I don't have to.
KyleHa colomon: Usually I start with what I know triggers the bug and then try to eliminate extra stuff.
colomon Fair enough. Though I don't see any tests for ranges with normal variables. 19:41
jnthn rakudo: "1 3" ~~ /(\d) \s (\d)/; say $0..$1;
p6eval rakudo 240b98: OUTPUT«Multiple Dispatch: No suitable candidate found for 'cmp', with signature 'PP->I'␤in method Range::true (src/gen_setting.pm:1674)␤called from Main (/tmp/mb9wc22e4L:2)␤»
jnthn There she is.
colomon yup.
19:42 lumi_ joined
masak interesting error. 19:42
guess there's no way for a range to know whether to numify or stringify. 19:43
19:44 nbrown left
colomon masak: Maybe not a bug, then? 19:45
KyleHa rakudo: '1 3' ~~ /(\d)\s(\d)/; say 'alive';
p6eval rakudo 240b98: OUTPUT«alive␤»
KyleHa rakudo: '1 3' ~~ /(\d)\s(\d)/; my $range = $0..$1; say 'alive'; 19:46
p6eval rakudo 240b98: OUTPUT«alive␤»
KyleHa akudo: '1 3' ~~ /(\d)\s(\d)/; my $range = $0..$1; say $range; say 'alive';
Oops.
rakudo: '1 3' ~~ /(\d)\s(\d)/; my $range = $0..$1; say $range; say 'alive'; 19:47
p6eval rakudo 240b98: OUTPUT«Multiple Dispatch: No suitable candidate found for 'cmp', with signature 'PP->I'␤in method Range::true (src/gen_setting.pm:1674)␤called from Main (/tmp/sffH2b5C27:2)␤»
masak colomon: I think at least the error could be more awesome.
pugs_svn r27729 | kyle++ | [t/spec] Test bug from colomon++ 19:53
19:55 frew_ left
jnthn rakudo: my $a = '1'; my $b = '3'; $a..$b 19:55
p6eval rakudo 240b98: ( no output )
jnthn rakudo: '1 3' ~~ /(\d)\s(\d)/; say $0.WHAT; 19:56
p6eval rakudo 240b98: OUTPUT«Match()␤»
jnthn Ah
colomon KyleHa: Interesting patch. Will ask more questions about it in a sec (ordering dinner with wife now).
jnthn Range dunno what to do with a match object.
masak exactly. 19:57
19:57 hoelzro|home left
masak more exactly, range dunno how to cmp it when printing. 19:57
KyleHa rakudo: '1 3' ~~ /(\d)\s(\d)/; my $range = $0..$1; "$range"; 19:58
p6eval rakudo 240b98: OUTPUT«Multiple Dispatch: No suitable candidate found for 'cmp', with signature 'PP->I'␤in method Range::true (src/gen_setting.pm:1674)␤called from method Range::Str (src/gen_setting.pm:1678)␤called from Main (/tmp/rKyRRxqGbs:2)␤»
19:59 hoelzro left
jnthn masak: well, when ranging I guess 19:59
erm
when looking for the next value I mean 20:00
masak right.
or it might be for checking whether the range is empty or not.
rakudo: say 1..3
p6eval rakudo 240b98: OUTPUT«123␤»
jnthn Well
masak jnthn: or it might be what you said.
:)
jnthn When it gets the next element it needs to know if there is one ;-)
masak aye. 20:01
jnthn I think we're both saying different levels of specificity of the same thing. :-)
masak or I'm just wrong. :)
colomon KyleHa: (Wife is being slow making up her mind.) I think I understand everything from the tests except the #?rakudo bits. Special code to indicate todos and skips? Does it modify the next line / test / ok ? 20:04
KyleHa Yes.
Those are called fudges.
The spec tests are supposed to be run by any implementation. 20:05
Fudging is how we indicate that a particular Perl 6 needs to regard a particular test differently than how it's written.
masak KyleHa++
KyleHa If you look around enough, you'll see fudges for Pugs too. (#?pugs todo 'feature') 20:07
masak and mildew, nowadays!
colomon KyleHa++ indeed.
pmurias The motivation for fudging is that an implementation can run a part of the test file withought being able to handle the whole of it
colomon Sure, makes great sense. 20:08
KyleHa We 'todo' the ones that fail and 'skip' the ones that crash. 8-)
masak why is 'say' both an Any-method and a sub, while 'warn' is just a sub? 20:09
colomon Got to place the dinner order now, then should I send the bug to RT and stick the RT number in range.t?
KyleHa Feel free!
jnthn masak: Maybe argumentless warn is valid? 20:10
rakudo: warn
p6eval rakudo 240b98: OUTPUT«Warning! Something's wrong.␤␤»
jnthn rakudo++
masak jnthn: I don't see why that should prevent warn from also being a method. 20:11
jnthn You could have it as a method too
Not sure I see the usecase.
masak today I found myself saying something like '.perl.warn for @things'
jnthn I mean, warn "oh noes it's a brussel sprout" reads much more naturally than the method form.
Ah, OK. 20:12
Hmm
masak it felt natural.
jnthn Yeah, you're right, I do concede it looks natural there.
masak I think of warn as a say to STDERR.
jnthn It's a bit more than that.
But aj, I see where you're coming from.
masak dobrze.
jnthn Well, guess it's permission or forgiveness. ;-) 20:13
20:14 payload left
masak loves forgiveness 20:14
YAY! I got the first significant test in Hitomi to pass! \o/ 20:15
Hang on, I'll make y'all a gist. 20:16
gist.github.com/154937 20:18
jnthn can reacall what hitomi = beautiful, but has already forgotten what it does :-)
masak not just 'beautiful', but doubly beautiful.
peek at the test to see what it does! :) 20:19
jnthn Ah, templating engine.
masak yes, SAX-based, and with full Perl 6 expression evaluation.
er, eventually.
jnthn ${$var} and $var are basically the same thing?
masak yes.
but the former allows for whole expressions.
jnthn eh, OK
Full Perl 6 expressions? 20:20
masak aye.
jnthn Interesting.
Though can lead to an impure view.
masak there's always that problem, I guess.
jnthn has a homegrown web framework that just doesn't allow embedded code in the view
Sometimes I wish for it, but usually I find it's (a) a sign I'm putting the logic int he wrong place or (b) a sign that the template language is lacking something. 20:21
masak well, it's not meant for putting logic in the wrong place. 20:22
actually, I haven't fully grokked the Genshi evaluation engine yet, so I don't know how far the power extends.
but I think it's pretty complete.
jnthn *nod*
Oh, sure, it's never the intention it'll be used that way, just a risk. 20:23
Just 'cus something can be mis-used doesn't make it bad, though.
masak I believe more in admonishing people in the usage instructions than in reducing the power for everybody.
jnthn Aye, and that's probably a more Perl-ish way of looking at things.
masak but hooray, the test passes!
jnthn Yes! :-)
jnthn would be curious to see the implementation at some point 20:24
TimToady I take it the ${$var} is done by something else, because it's certainly no legal Perl 6
*not
masak TimToady: only the thing inside the {} is Perl 6 code. the rest is ordinary text in an XML document. 20:25
jnthn: the implementation is online, in the Web.pm repo. it weighs 10k right now, most of which I've written in the past few days. 20:26
jnthn found it
masak I think it's the most involved Perl 6 I've written so far, not due to any advanced tricks, but due to its size and complexity.
jnthn: hold on, I'll push the latest changes.
pushed. 20:27
now, time to blog. 20:28
jnthn yaymasakblogpost!
Hitomi/Markup.pm has a BUILD that looks like it'll get a lot shorter once $!foo parameters are implemented... 20:29
masak TimToady: I elected ${} rather than just {}, because I think the risk is too high for false positives with the latter.
jnthn: aye.
I miss those sometimes.
jnthn Clean, neat code though. :-)
masak thank you. :)
Genshi++, that code is often a joy to read. 20:30
I don't know Python nearly well enough, but that doesn't seem to matter much.
moritz_: Rakudo still isn't announced on use.perl.org. 20:33
moritz_ masak: that's unfortunate. 20:34
masak moritz_: 'unfortunate' is a good description for a lot of things on use.perl.org.
moritz_ use.perl.org/submit.pl?op=list 20:36
was it wrong to submit it for "News" and not for "Mainpage"? 20:37
masak oh. it was accepted, but not onto the main page.
moritz_: well, I have no idea where it ended up now. :/
moritz_ no, it's still "Pending"
masak maybe that means 'rejected' in some language. a newer one was accepted. 20:38
moritz_ well, maybe I should then submit it at least to my journal. 20:39
use.perl.org/~moritz/journal/39350 it is now. 20:42
jnthn Writing a blog post was one of the many things I planned to do today. :-/ 20:43
Dealing with my twisting pile of Rakudo diffs was another.
20:44 jaldhar left 20:55 wolverian joined 20:58 edpratomo left
pugs_svn r27730 | moritz++ | [t/spec] avoid segfault at test end by fudging a previously TODOed test for Rakudo 21:04
moritz_ KyleHa: it might be worthwile to think about how to create a list of tickets that don't have tests associated yet 21:05
21:06 kane___ joined
tann rakudo: say caller(0).perl; 21:06
p6eval rakudo 240b98: OUTPUT«Could not find non-existent sub caller␤»
moritz_ the right thing to do would probably be a tag test_available in RT 21:07
Tene Where are the specs for caller() ? 21:08
moritz_ I'd guess S04
no, it's S06 21:09
=head2 The C<context> and C<caller> functions
pmichaud: as RT admin for Perl 6, can you create a new tag? (Tests_available would be very useful) 21:10
21:10 szabgab left
moritz_ (the other tags seem to be CamelCased, so TestAvail or so might be tter) 21:11
better even
masak whoa. this is going to be a longish post. 21:12
tann rakudo: class C { }; my C $o; 21:13
p6eval rakudo 240b98: ( no output )
jnthn cheers on masak 21:14
21:14 szabgab joined
tann std: class C { method new(Int $i) { $i } }; new C 1; 21:17
p6eval std 27729: OUTPUT«===SORRY!===␤Obsolete use of C++ constructor syntax; in Perl 6 please use method call syntax instead at /tmp/UcoqydMSDr line 1:␤------> C { method new(Int $i) { $i } }; new C ⏏1;␤FAILED 00:03 40m␤»
tann std: class C { method new(Int $i) { $i } }; new C: 1;
p6eval std 27729: OUTPUT«ok 00:03 42m␤»
jnthn It even knows to blame C++. ;-) 21:18
jnthn wonders if the "SORRY!" will become annoying over time.
It's nicer than ERROR though. :-) 21:19
21:19 meppl joined, the_irrational_1 left, the_irrational_1 joined, mberends left
tann rakudo: class C { method new(Int $i) { $i } }; my $o = new C: 1; say $o.perl; 21:20
p6eval rakudo 240b98: OUTPUT«Statement not terminated properly at line 2, near ": 1; say "␤in Main (src/gen_setting.pm:3343)␤» 21:21
jnthn Don't think Rakudo knows that syntax yet.
pugs_svn r27731 | colomon++ | Tag test with RT number. 21:22
moritz_ "new C" is wrong. 21:23
tann rakudo: class C { }; say C.perl;
p6eval rakudo 240b98: OUTPUT«C␤»
21:24 r0bby joined
tann rakudo: class C { }; say C.WHAT; 21:24
p6eval rakudo 240b98: OUTPUT«C()␤»
jnthn Ah, yes. 21:25
Though say $a: "oh hai" probably should work and doesn't.
std: say $a: "oh hai"
rakudo: say $a: "oh hai"
p6eval std 27730: OUTPUT«Potential difficulties:␤ Variable $a is not predeclared at /tmp/hS3m394wVt line 1:␤------> say $a⏏: "oh hai"␤ok 00:04 39m␤»
rakudo 240b98: OUTPUT«Statement not terminated properly at line 2, near ": \"oh hai\""␤in Main (src/gen_setting.pm:3343)␤»
jnthn Aye
mkelly32 so, i'm curious... is there anything about perl6 that people would consider a "killer" feature? some single thing that'll make people wnat to switch to it from perl5? 21:27
i've only started digesting some docs on perl6
tann rakudo: class C { }; multi sub f(C $x) { 'C' }; multi sub f(Int $x) { 'Int' }; multi sub f { 'nada' }; say f(Int); say f(C); say f(Num);
p6eval rakudo 240b98: OUTPUT«Int␤C␤No applicable candidates found to dispatch to for 'f'␤in Main (/tmp/Fbc3UGTy2d:2)␤»
moritz_ mkelly32: the regular expressions/grammars 21:28
tann pugs: class C { }; multi sub f(C $x) { 'C' }; multi sub f(Int $x) { 'Int' }; multi sub f { 'nada' }; say f(Int); say f(C); say f(Num);
p6eval pugs: OUTPUT«nada␤C␤nada␤»
21:29 Whiteknight left
mkelly32 and, if i wanted to test those sort of things out right now... would rakudo be the implementation to try it with? 21:29
moritz_ mkelly32: yes
mkelly32 moritz_: ok, thanks
moritz_ mkelly32: rakudo.org/how-to-get-rakudo is a good start for obtaining it 21:30
mkelly32 yeah, i've got it building
i think it was failinga spec test for me
forget which one right now, not at that machine
i also was trying out the heredoc syntax i saw mentioned on the wikibook... something like q:to/END/... but it wasn't liking that.
moritz_ there are two files of which we expect "Non-zero wait status" 21:31
yes, heredocs are not yet implemented
mkelly32 ok
what's the reason for the change from the <<END syntax?
TimToady to allow << a b c >> as a synonym for « a b c » 21:32
and to switch to a syntax where you could add modifiers easily
mkelly32 what sort of other modifiers would there be? 21:33
TimToady such as to determine what will or will not interpolate
mkelly32 ah, interesting.
so, say, not interpolating [email@hidden.address] into something like "foobar baz bam.net" 21:34
TimToady that's already handled by default in p6
since @example won't interpolate without a [] afte rit
after it
mkelly32 ah, ok.
good.
if it werent' for syntax hilighting, that would've bit me many times 21:35
TimToady it's really the sum total of lots of little killer features that adds up
21:35 payload joined
mkelly32 i'm also guessing that optimization isn't coming until it's feature-complete, correct? 21:35
21:35 Su-Shee left
TimToady it's becoming more of a priority as time goes on 21:36
but hasn't been till now
moritz_ parrot (the virtual machine on which Rakudo runs) wants to focus more on speed in the coming year
and Rakudo will benefit from that, of course
mkelly32 yeah. 21:37
well. i guess i'll keep an eye on things, then.
would there be any use in me doing regular smoke tests of rakudo? or do you have enough of that already?
moritz_ we tend to have enough testers on linux, and not enough on any other platform 21:39
mkelly32 hrm, want some fbsd testing then?
moritz_ yes.
mkelly32 k. do you have any sorta suggested smoking script/setup somewhere? 21:40
moritz_ the parrot folks have a cool automated smoke collection system named "smolder"
you automatically submit a report when you run 'make smolder_test' in parrot
it would be great to have that (or something similar) set up for rakudo too 21:41
mkelly32 well, that'd require me to actually do more than a 5 minute cronjob :p
and my plate is kinda full right now.
TimToady you'll have to be very careful then, because hacking on this stuff is highly addictive 21:42
21:42 maja_ joined, olaf225 left 21:43 snearch_ joined
mkelly32 so. git pull && perl Configure.pl --gen-parrot && make && make test && make spectest should be sufficient, right? 21:47
(need to send it somewhere w/ a pass/fail subject i guess) 21:48
21:49 snearch_ is now known as snearch
moritz_ right 21:49
currently we have no list for these kind of reports 21:50
bed&
mkelly32 well. i could probably just throw some simple webpage together w/ them. but, that'll just have to go on my TODO for sometime
TimToady you could use the webpage apparatus that was built for pugs 21:51
mkelly32 haven't seen that. was thinking something like cpantesters, only less shiny 21:52
TimToady see the smoke target in pugs/Makefile
assuming you have the pugs repo handy
mkelly32 not right now.
svn.pugscode.org/pugs/ ? 21:53
TimToady that's also where we store all the spec tests
21:53 snearch left
TimToady so if you want to whack on those, a commit bit is very easy to acquire 21:53
mkelly32 yeah, but make spectest checks that out for me
21:54 maja__ left
TimToady all the specs are in the pugs repo as well 21:55
if you want a pugs commit bit, we can get you one in about a minute
mkelly32 i'll wait on that till i have a useful something to commit 21:56
TimToady oh, where's your sense of adventure :P
jnthn TimToady: You're meant to give out the commit bit before warning about the addictiveness. ;-) 21:57
TimToady oops
21:58 hoelzro joined
jnthn TimToady: Are you not making YAPC::Asia this year? 21:58
masak TimToady: oh hai, did you see the discussion on :$!bar ? I can haz this syntax? kthxbai. 21:59
TimToady as far as I know, I don't have an invite yet
jnthn Ah, ok
TimToady you already have it
masak \o/
.jump for @joy
TimToady std: :$^bar
p6eval std 27731: OUTPUT«ok 00:02 36m␤»
TimToady std: :$*bar 22:00
22:00 snearch joined
p6eval std 27731: OUTPUT«ok 00:02 36m␤» 22:00
jnthn "torment the implementors" ;-)
(akshually, shouldn't be so hard...)
masak was just going to say that
jnthn masak: Feel free to file it as a todo ticket if you didn't already. 22:01
masak jnthn: filed a ticket the other day. 22:02
jnthn If I need some light relief from beating traits, the metamodel and the multi-dispatcher into shape, I may just do it.
masak not sure it was TODO, though, but it touches on exactly this.
jnthn That's fine.
jnthn is at an annoying point of discovering a couple of things that were broken, and in their brokenness making other things Just Work. 22:03
22:03 snearch left
jnthn So I either need to fix the lot, or we regeress for a short while on something. 22:03
22:03 fridim_ is now known as esil_bot
masak or work in a branch for a while. 22:05
22:05 esil_bot is now known as fridim_ 22:06 to_char joined
jnthn True, true... 22:07
22:07 to_char left
jnthn Either way, it's a bit to untangle. 22:08
Plus I'm seeing more and more stuff that I want to clean up as I go.
Probably a good sign that things are somehow starting to fall into place in my head.
22:12 icwiener-_- joined
hoelzro BUILD *is* the construction initialization submethod, right? 22:12
jnthn Yes. 22:13
hoelzro I can't seem to get it to work
masak works fine here. 22:14
hoelzro I'll play around for a bit
if I still can't get it working, I'll ask again
jnthn rakudo: class Foo { submethod BUILD { say "called" } }; Foo.new 22:15
p6eval rakudo 240b98: OUTPUT«called␤»
hoelzro jnthn: that's what I'm doing 22:16
well, something like that
also, do I have to do submethod BUILD(self:) { ... } to get access to $self? 22:17
jnthn hoelzro: Well, if you want it in $self 22:18
22:18 the_irrational_1 left
jnthn hoelzro: But you can use the self keyword 22:18
hoelzro ah, just self, not $self?
22:18 the_irrational_1 joined
jnthn Right. 22:18
hoelzro ah ok =)
TimToady unless you declare ($self:) 22:19
jnthn Sure. You can declare ($worreva:)
Or ($p6l_argued_for_weeks:)
hoelzro ah, ok
haha
TimToady or ($私:) 22:20
hoelzro ok, so BUILD worked in one example...
ok 22:22
masak use.perl.org/~masak/journal/39351
jnthn \o/ 22:23
masak that was a lot to write in one go.
but I also feel it's the greatest Web.pm post so far. 22:24
hoelzro this doesn't work: class OnlineRepl is Perl6::Compiler { submethod BUILD { say 'hello'; } } OnlineRepl.new;
other than that, BUILD works fine
masak hoelzro: :)
jnthn groans 22:25
I can guess why too
hoelzro jnthn: why's that?
masak answer contains "Parrot" somehow...
KyleHa Regarding RT tags, I had been thinking 'tested' and 'testable' for "has a test" and "could have a test but doesn't".
jnthn rakudo: Perl6::Compiler.^parents>>.say
22:25 icwiener_ left
p6eval rakudo 240b98: OUTPUT«Method '!.^' not found for invocant of class ''␤» 22:25
jnthn ...yeah ouch.
masak o_O
jnthn rakudo: Perl6::Compiler.HOW.parents(Perl6::Compiler)>>.say 22:26
p6eval rakudo 240b98: OUTPUT«Method 'say' not found for invocant of class ''␤»
masak rakudo: say Perl6::Compiler.WHAT
jnthn rakudo: say Perl6::Compiler.HOW.parents(Perl6::Compiler)
p6eval rakudo 240b98: OUTPUT«Perl6::Compiler()␤»
rakudo 240b98: OUTPUT«PCT::HLLCompiler()␤»
masak rakudo: say Perl6::Compiler.PARROT
p6eval rakudo 240b98: OUTPUT«Method 'PARROT' not found for invocant of class ''␤»
hoelzro so...what should I do?
write a bug report? new test for that?
masak hoelzro: yay!
jnthn rakudo: class OnlineRepl is Perl6::Compiler { submethod BUILD { say 'hello'; } } OnlineRepl.new; 22:27
p6eval rakudo 240b98: OUTPUT«Statement not terminated properly at line 2, near "OnlineRepl"␤in Main (src/gen_setting.pm:3343)␤»
jnthn rakudo: class OnlineRepl is Perl6::Compiler { submethod BUILD { say 'hello'; } }; OnlineRepl.new;
p6eval rakudo 240b98: ( no output )
hoelzro masak: yay for what?
masak hoelzro: bugs and tests. keep'em coming!
jnthn rakudo: class OnlineRepl is Perl6::Compiler is Any { submethod BUILD { say 'hello'; } }; OnlineRepl.new;
p6eval rakudo 240b98: OUTPUT«hello␤»
hoelzro masak: you got it!
masak hoelzro: oh, and jnthn just found a workaround for ya. :)
hoelzro jnthn: thanks
jnthn hoelzro: See above workaround, but also plz we can haz ticket kplzthnxbai.
hoelzro jnthn: coming in right now
jnthn still hasn't got past the bible quote in masak++'s post yet 22:28
masak *lol*
hoelzro setting up a bug reporting account right now 22:30
jnthn masak: "Also, the thing doing the serialization is called XHTMLSerializer, but there are a number of those, including HTMLSerializer which takes the same event stream but produces impeccable HTML 4.01." 22:31
hoelzro and the tests are in SVN, right?
jnthn masak: Will it also be able to automatically html-encode stuff, or some similar mechanism?
masak jnthn: html-encode?
you mean escape stuff?
hoelzro also, do I need certain privileges to create a bug report? I'm logged in, but I don't see any way to create a ticket... 22:32
masak hoelzro: [email@hidden.address]
hoelzro: the only way to report is by email. 22:33
hoelzro ah ok
jnthn masak: Yeah
masak: Or rather, how much has security stuff - in this case against XSS - been thought about when doing Web.pm related things? 22:34
masak jnthn: yes, escaping will done by default. there's a way to pass in things, saying "I know this is already markup, so no need to escape this". it's quite nice.
jnthn OK. Secure *by default* is what I was hoping to hear.
Excellent.
masak jnthn: there are XSS filters in Genshi. all part of this filtering mechanism I mention in the post.
masak really, really likes the example Genshi sets 22:35
22:35 icwiener-_- left
pugs_svn r27732 | lwall++ | [STD] make perl6-projects more welcoming to all civil people 22:35
jnthn is glad there'll be more lolbible 22:36
jnthn doesn't even know what "various molecular aspects of metabolism" means ;-)
hoelzro bug report away!
jnthn hoelzro++ # thanks. 22:37
hoelzro =)
test coming up
um...where should I put the test?
masak jnthn: that's one reason I decided not to switch. :)
jnthn: here's one example :) en.wikipedia.org/wiki/Citric_acid_cycle 22:38
(maybe I should like to that for extra effect) 22:39
jnthn hoelzro: moaybe in S12-class/inheritnce.t
hoelzro mkay
TimToady hoelzro: do you have a pugs commit bit?
KyleHa Maybe S12-construction/BUILD.t
hoelzro are the tests in the Rakudo repo, or somewhere else?
TimToady: I do
at least, I should
jnthn masak: That diagram is liek omfg
hoelzro last time I worked on Pugs was like 2 years ago =( 22:40
masak hoelzro: in the Pugs repo, in t/spec
hoelzro mkay
TimToady do you still have a repo image?
I can resend the commit bit if you've forgotten your password
masak jnthn: your body does that billions of times every day. :)
jnthn KyleHa: Yes, better.
hoelzro TimToady: I'll try to remember, I'll let you know if I need it =) 22:41
jnthn masak: meh, no wonder it gets tired by evening ;-)
masak :)
jnthn Eurgh. 22:43
jnthn hates having a cold
hoelzro if I add a new file, will it automatically get run?
jnthn Hopefully I have vaguely more motivation to do something useful tomorrow...
hoelzro: For Rakudo to run it, it needs to go into t/spectest.data in the Rakudo repo 22:44
hoelzro mkay
jnthn hoelzro: Are you thinking of adding a new file?
For this particular test?
hoelzro jnthn: per KyleHa's suggestion
I could put it somewhere else
jnthn No no, that file already exists, I think?
KyleHa If the file I specified doesn't exist, I typoed. 22:45
jnthn KyleHa: It's something *like* that. :-)
KyleHa Pasted: t/spec/S12-construction/BUILD.t
hoelzro mkay
jnthn svn.pugscode.org/pugs/t/spec/S12-co...on/BUILD.t
That one.
Ah, KyleHa++ beat me to it. :-)
22:46 bpetering joined
masak time to sleep. 22:48
bpetering night masak :) 22:49
masak good night, futuristic Perl people! see y'all tomorrow!
22:49 masak left
pugs_svn r27733 | hoelzro++ | Added a test for RT #67888 (Perl6::Compiler subclassing and BUILD) 22:49
hoelzro mkay, I remembered my password =)(
bpetering quits to figgur out this yoonicode stuff in his term
22:50 bpetering left
hoelzro please feel free to review my test 22:50
be back in a bit; grabbing dinner
22:50 hoelzro left
pugs_svn r27734 | lwall++ | [p6-proj] tweak "bluespace" a bit 22:55
jnthn www.perl6-projects.org/ on Firefox at 1024x768 has some layout issues. 22:57
pugs_svn r27735 | kyle++ | [t/spec] label and adjust RT #67888 test
jnthn Going to sleep now, but mentioning it if anyone has time and html-fu to investigate... :-) 22:58
night all!
23:02 arthur-_ joined
pugs_svn r27736 | lwall++ | [p6-proj] how 'bout I tweak the correct parameters this time... 23:06
23:10 justatheory joined
pugs_svn r27737 | lwall++ | [p6-proj] and move boxes down a bit 23:12
23:17 KyleHa left
pmichaud back home! 23:19
23:20 donaldh left, donaldh joined 23:24 hoelzro joined
pmichaud (and now going out for dinner) 23:25
hoelzro did anyone look over my test? 23:26
also, if I defined BUILD in PIR, would it be .sub 'BUILD' :submethod ... .end? 23:27
pugs_svn r27738 | lwall++ | [p6-proj] put Community *first*, not as part of miscellaneous 23:29
hoelzro does a grep
TimToady looks like KyleHa++ tweaked it some 23:30
hoelzro TimToady: my test? 23:32
TimToady do svn up and you'll find out :)
hoelzro ah ha =) 23:33
sjohnson how's TimToady today 23:41
pugs_svn r27739 | lwall++ | [p6-proj] delete 'and Interpreters' as meaningless precision 23:44
TimToady is recovering from OSCON and cooking dinner while tweaking perl6-projects to be Human-Compliant™ 23:45
23:49 payload left 23:51 lumi__ joined, lumi_ left 23:54 fridim_ left