»ö« | perl6.org/ | nopaste: paste.lisp.org/new/perl6 | evalbot usage: 'perl6: say 3;' or rakudo: / pugs: / std: , or /msg p6eval perl6: ... | irclog: irc.pugscode.org/ | UTF-8 is our friend!
Set by wolfe.freenode.net on 30 October 2009.
jnthn back 00:00
00:03 nihiliad left 00:21 nbrown joined 00:23 carlin sets mode: +vv zaslon pointme 00:36 tarski joined
tarski perl6: say '1' . 5; 00:38
p6eval elf 29297: Parse error in: /tmp/Mnje3ILWFX␤panic at line 1 column 0 (pos 0): Can't understand next input--giving up␤WHERE: say '1' . 5;␤WHERE:/\<-- HERE␤ STD_red/prelude.rb:99:in `panic'␤ STD_red/std.rb:76:in `scan_unitstopper'␤ STD_red/std.rb:224:in `comp_unit'␤ STD_red/std.rb:210:in `_UNIT'␤
..…
..pugs: *** ␤ Unexpected "."␤ expecting operator, ":" or ","␤ at /tmp/oOtITp5jNV line 1, column 9␤
..rakudo 7ef386: Confused at line 2, near ". 5;"␤in Main (file <unknown>, line <unknown>)␤
00:38 lestrrat is now known as lest_away
colomon tarski: what were you expecting that to do? 00:40
rakudo: say '1' ~ 5;
p6eval rakudo 7ef386: 15␤
tarski i was wondering about how concat works now
colomon It's ~ now, like my example there. 00:42
tarski colomon, i noticed
thowe Has the Perl 6 spec been finalized in any way, or is it still subject to change? 00:49
00:49 JMorse joined, JMorse left
colomon It's not finalized, but the changes are slowing down, I think. 00:50
It goes back and forth with spec improvements and implementation improvements, with info feeding both ways.
wayland76 thowe: The main bulk is fairly stable, but there are some areas that are still almost unwritten
Threads, for example 00:51
thowe interesting 00:52
00:54 nihiliad joined
colomon thowe: as a simple example I was part of, someone doing numerical work turned up a bug in Rat involving adding fractions whose denominators temporarily made a number too large to hold in a 32-bit Int. 00:56
tarski are the core operators of perl6 still being modified or have they been finalized?
colomon Around the time I was adding tests to rat.t that Rat arithmetic failed gracefully in these cases, TimToady was writing that rule into the Specs.
thowe Rat being "rational"?
colomon thowe: yes.
ng: say 1/ 60000 + 1 / 60000; 00:57
p6eval ng 98d34f: 3.33333333333333e-05␤
colomon hmmm.
ng: say (1 / 60000 + 1 / 60000).perl
p6eval ng 98d34f: 1/30000␤
colomon Interesting, I didn't think that worked in ng. 00:58
that was going to be my example of how it used to fail.
tarski: I'm not quite sure what you mean by "core operators". 00:59
tarski: I can tell you that in the perl 6 code I've written, only the tiniest changes have been needed because of changes to the Spec. 01:00
tarski: That's over the last eight months or so.
thowe: anyway, 1 / 60000 + 1 / 60000 used to fail hard, with a completely incomprehensible error message. 01:01
thowe: As soon as we realized what was going on, I fixed the code and the spec was changed to more or less match the changes I was making. 01:02
thowe Is there something like Ruby's BigInteger?
colomon thowe: That's in the spec, but not yet implemented in Rakudo.
thowe I guess it is kind of like a numeric in PostgreSQL.
TimToady Int is supposed to be big 01:03
thowe I'm trying to write something like that in C++ (using GMP) and it's not always easy to decide how certain things should work...
colomon The basic Int type is unlimited.
thowe Oh? And accurate? Integer math?
colomon Yes.
thowe awesome.
colomon and Rat is supposed to have an Int numerator, but only a 64-bit denominator. 01:04
wayland76 ng: Int $a = 62; Int $b = 8; say $a / $b;
p6eval ng 98d34f: Confused at line 1, near "Int $a = 6"␤current instr.: 'perl6;HLL;Grammar;panic' pc 519 (src/stage0/HLL-s0.pir:336)␤
thowe That's super nice to have. Especially for business programs that probably deal with money.
colomon right now, though, everything is 32-bits or 64-bits, I believe.
tarski colomon, i had in mind the basic operators like assignment, arithmetic, logical and relational 01:05
TimToady wayland76: you can't start a declaration with a typename
wayland76 Yeah, I'm re-reading the spec now. I've been away from p6 for a month :)
colomon tarski: I don't know that TimToady has officially locked them down, but I think they're pretty unlikely to change.
romanhunt does get_hll_global query the global symbol table for perl6 metadata?
sjohnson missed ya 01:06
tarski colomon, ok thanks
TimToady tarski: we aim only for a convergent design, not a static design :)
wayland76 ng: my Int $a = 62; my Int $b = 8; say $a / $b; 01:08
p6eval ng 98d34f: 7.75␤
wayland76 ng: my Int $a = 62; my Int $b = 8; say $a div $b;
p6eval ng 98d34f: 7␤
wayland76 thowe: If by "Integer math", you mean "Integer division", you see you have to use the appropriate operator
tarski TimToady, oy vey. what about the basic types? are they nailed down, or same thing? 01:09
01:10 lest_away is now known as lestrrat
TimToady define "basic" 01:11
we have specced native, low-level types like int32 and complex64
colomon thowe: note that if $a and $b are Ints, $a / $b isn't division at all, it's constructing a Rat. 01:12
TimToady rakudo: say (1/0).WHAT
p6eval rakudo 7ef386: Rat()␤
colomon TimToady: which is a perfect example of a corner of the spec I'm not sure we're all comfortable with yet. :) 01:13
TimToady looks like another name for +Inf to me :)
tarski: I quibble with your word "basic" because the native types are further from "basic" mathematical integers than Int is. :) 01:14
they're more like constrained types
tarski TimToady, for example, hashes, lists, scalars, and now there are static types such as Str and Int, etc. are the features of those types/structures expected to change?
colomon TimToady: but unless you've tweaked something since the last time I've looked, that''s 1/0 = +Inf is not in the spec yet. :) 01:15
TimToady okay, basic in the Perl 5 sense. :)
tarski TimToady, yes sir, thats what i mean
TimToady anything that is currently in Perl 5 is likely to be fairly well specced 01:16
01:17 nbrown_ joined
TimToady generally, the default behavior for a hash or array or such is going to degenerate to the P5ish behavior 01:18
sjohnson std: use v5;
TimToady hashes still have string keys by default, but may be declared to take object keys
p6eval std 29297: ok 00:01 104m␤
sjohnson std: use v5; local $" = "\n";
p6eval std 29297: ===SORRY!===␤Unsupported use of $" variable; in Perl 6 please use .join() method at /tmp/fHPAzZG44u line 1:␤------> use v5; local $"⏏ = "\n";␤FAILED 00:01 105m␤
TimToady sjohnson: but STD doesn't know what that means, and thinks it's still in p6
sjohnson TimToady: ic. is this the "ideal" syntax once it's "factory ready"? 01:19
TimToady I have to finish the p5 parser in src/perl6/STD_P5.pm
ideal for what?
sjohnson ideal as in, correct syntax that will be used when release time comes
and also, the "best way" of the timtoady ways
TimToady the best way of the timtoady ways doesn't involve regressing to Perl 5 :P 01:20
sjohnson haha
01:20 nbrown_ left
TimToady but that's likely to work 01:21
sjohnson rakudo: no strict; { $i = 1;} say $i
p6eval rakudo 7ef386: Confused at line 2, near "say $i"␤in Main (file <unknown>, line <unknown>)␤
sjohnson rakudo: no strict; { $i = 1;}; say $i
TimToady for some definition of work
p6eval rakudo 7ef386: Symbol '$i' not predeclared in <anonymous> (/tmp/tMsCjVkqC1:2)␤in Main (file <unknown>, line <unknown>)␤
sjohnson i broketed it!!
TimToady rakudo doesn't know what "strict" means
sjohnson i should probably just read the Apocolypses
TimToady that will give you the original thinking, and some of the [Update] sections might even still be accurate... 01:22
if you really want to understand history, though, you should read all 361 RFCs 01:23
carlin would be nice if it was 'use lenient;' :-) 01:24
TimToady I was thinking "use cheat" yesterday :)
sjohnson use sjohnson;
( `ー´)
carlin use less; 01:25
sjohnson i'm pretty stoked about a lot of p6's base class array / list methods 01:27
i wonder if i can think up a good one that might be included prior to major rakudo releases
maybe an in_array type thing PHP has 01:28
if it hasn't been done already
maybe grep already does that though
01:29 ihrd joined 01:30 ihrd left, payload left
sjohnson <-- out of good ideas 01:30
01:31 stephenl1 joined
sjohnson rakudo: my @list; @list.push(0); say (@list); 01:31
p6eval rakudo 7ef386: 0␤
01:32 agentzh joined
sjohnson rakudo: for 2 { print "hi" } 01:32
carlin *sigh* I didn't achieve my proto goal for today because I spent to long finding a silly bug (that was my fault) and now I have to go to work ... ah well
01:32 jaldhar joined
p6eval rakudo 7ef386: hi 01:32
carlin later all
sjohnson cya
rakudo: my $buf; for 2 { $buf ~= "hi" }; say $buf; 01:33
01:33 thowe left
p6eval rakudo 7ef386: hi␤ 01:33
sjohnson rakudo: my $buf; for 1 .. 2 { $buf ~= "hi" }; say $buf;
p6eval rakudo 7ef386: hihi␤
TimToady you're look for rakudo: my $buf; for ^2 { $buf ~= "hi" }; say $buf; 01:34
*looking
rakudo: my $buf; for ^2 { $buf ~= "hi" }; say $buf;
p6eval rakudo 7ef386: hihi␤
01:35 nbrown left
sjohnson rakudo: say (^2).WHAT 01:36
p6eval rakudo 7ef386: Range()␤
sjohnson <--- learning
rakudo: say (1..2).WHAT;
p6eval rakudo 7ef386: Range()␤
sjohnson tents fingers
cool feature!
01:37 rgrau left
TimToady note that ^2 is 0..1 rather than 1..2 01:38
sjohnson thanks for the headsup. i couldn't quite figure out a p6 way to print the range vals
TimToady actually, it's officially 0..^2
sjohnson rakudo: say Range().list
p6eval rakudo 7ef386: invoke() not implemented in class 'Range'␤in Main (file <unknown>, line <unknown>)␤
sjohnson say Range().methods 01:39
rakudo: say Range().methods
p6eval rakudo 7ef386: invoke() not implemented in class 'Range'␤in Main (file <unknown>, line <unknown>)␤
sjohnson (´ー` )
01:40 payload joined
romanhunt rakudo: say Range().HOW 01:40
p6eval rakudo 7ef386: invoke() not implemented in class 'Range'␤in Main (file <unknown>, line <unknown>)␤
TimToady omit the ()
sjohnson rakudo: say Range.methods
p6eval rakudo 7ef386: Method 'methods' not found for invocant of class ''␤in Main (file src/gen_setting.pm, line 324)␤
sjohnson rakudo: say Range.list
TimToady .^methods
p6eval rakudo 7ef386: ␤
sjohnson rakudo: say Range.^methods 01:41
p6eval rakudo 7ef386: maxminmaxiteratorfrom_exclusivepopperlfromofScalarStrto_exclusivebyreverseshifttruepostcircumfix:[
..]ACCEPTStominordrandtruncatesortsqrtrindexasinintatanhcoshcosecgrepvaluescharsrootsreverseisaucfirstkvsamecasetancoscapitalizefmtbytesflipdoesp5choplcasinhacotanreducecotanhchracotanh:d:e:fc…
sjohnson (´ー` )
are they null string terminated?
rakudo: for (Range.^methods) { print "$_ " }
TimToady say isn't gonna put ' ' between the list elements for you
p6eval rakudo 7ef386: minmax iterator from_exclusive pop perl from of Scalar Str to_exclusive by reverse shift true postcircumfix:[ ] ACCEPTS to min max flip does atanh cosec exp acosec chars can cosech lcfirst roots map cis comb log atan min acos max bytes chop sin rindex tanh Int values asinh acosech
..abs e…
sjohnson <--- smart 01:42
TimToady now leave out those parens too :)
sjohnson that is a nice feature no parens
TimToady rakudo: say ~Range.^methods
p6eval rakudo 7ef386: ACCEPTS to min max minmax iterator from_exclusive pop perl from of Scalar Str to_exclusive by reverse shift true postcircumfix:[ ] tan substr cos fmt bytes pick evalfile acosec join sinh asinh cosech trim asec chr acotanh floor sech asech rand truncate round sort sqrt rindex asin
..split …
TimToady stringifying a list puts spaces 01:43
sjohnson that squiggle must be some sort of specical char
oh
rakudo: say {Range.^methods}
p6eval rakudo 7ef386: _block55␤
sjohnson ahh thats what i get for being too createive
rakudo: say ${Range.^methods}
TimToady add ""
p6eval rakudo 7ef386: say requires an argument at line 2, near " ${Range.^"␤in Main (file src/gen_setting.pm, line 2593)␤
01:43 ihrd joined
sjohnson rakudo: say "{Range.^methods}" 01:43
p6eval rakudo 7ef386: minmax iterator from_exclusive pop perl from of Scalar Str to_exclusive by reverse shift true postcircumfix:[ ] ACCEPTS to min max chop tanh split exp match acosh words can cotan atan2 lcfirst uc srand keys map polar cis log substr min max pick first evalfile trans sin Int acosec
..join s…
sjohnson oh that is what i meant to do
there we go 01:44
cute methods
rakudo: say ^5
p6eval rakudo 7ef386: 01234␤
01:44 tylerni7 joined
sjohnson rakudo: say "{^5}" 01:44
p6eval rakudo 7ef386: 0 1 2 3 4␤
01:44 ihrd left
TimToady rakudo: say ~^5 01:44
p6eval rakudo 7ef386: 0 1 2 3 4␤ 01:45
01:45 r0bby_ is now known as r0bby
TimToady arguably incorrect, though 01:45
sjohnson rakudo: say "^5 is {^5]"
p6eval rakudo 7ef386: Unable to parse block; couldn't find final '}' at line 2, near "]\""␤in Main (file <unknown>, line <unknown>)␤
sjohnson rakudo: say "^5 is {^5}"
p6eval rakudo 7ef386: ^5 is 0 1 2 3 4␤
sjohnson this language spec seems pretty powerful and robust
TimToady rakudo: say ~^ "foo"
p6eval rakudo 7ef386: ␤ 01:46
sjohnson i'm really happy for it's near release
its*
TimToady rakudo doesn't implement the buffer complement yet
sjohnson is that the :buffer thing?
TimToady a buffer is like a string, but just an array of integers really 01:47
like old-fashioned byte strings are really buffers
buffers don't know about unicode
01:48 stephenlb left
sjohnson so it is possible, to do $buf[2] type editing? 01:48
or would i be doing @buf[2]
kind of like ye olde C char arrays? 01:49
TimToady depends on the name of the variable, but yes, like C strings
except not 0 terminated
sjohnson is there any sort of XS type thing for Perl 6? or does it depend on its interpretor 01:50
ie, rakudo, smop, etc may have their own way of doing things...
TimToady implementation dependent
though anyone that implements "use v5" will probably want to give access to XS
sjohnson use v1;
classic mode
i had a look at some XS code but it was a bit over my head. do you know the internals quite well? 01:51
or did another major perl5 dev kind of take care of that XS system
TimToady well, there's a "punie" language on parrot that implements Perl 1
so they should be able to support "use v1"
sjohnson heh, that's kind of cool 01:52
was kind of curious to see the differences in the languages
TimToady: did you ever do C++ sometime in your past? 01:53
or are you mostly a "C guy"
TimToady I've done some C++, which is why Perl 5 got objects 01:54
sjohnson have you ever met Bjarne or Mr. Ritchie 01:55
?
jimi_hendrix TimToady, you wrote perl6's spec?
sjohnson i believe he helped serve as an "editor" with probably his own ideas as well 01:56
01:56 cottoo joined
sjohnson compiled from various suggestion papers submitted to him 01:56
01:56 cotto left
jimi_hendrix ah 01:56
wayland76 Maybe arbiter might be better
TimToady a lot of people have participated in the design, but I'm where the buck stops
sjohnson heheh 01:57
jimi_hendrix TimToady, hehe
sjohnson all bribes should thus be directed to him
TimToady
.oO(if only that implied that some bucks would stop here too... :)
wayland76 Any fool can change the spec, but TimToady has the final word. Sometimes there are arguments that convince him that he's wrong, though, so it's not as bad as it might sound. We *asked* him to make the final decisions
diakopter see perlcabal.org/syn/ (Apocalypses first, then the Exegeses, then the Synopses)
jimi_hendrix TimToady, btw, THANK YOU FOR OBJECTS! i hated the hacky perl OO in perl5
diakopter ... he was referring to perl5 when he said it got objects 01:58
TimToady yes, well, rule 2 and all that...
jimi_hendrix i feel lost
jimi_hendrix goes back to sleep
TimToady Rule 1: Larry is always right. Rule 2: When Larry changes his mind, he's still right. :) 01:59
wayland76 hugme: hug cotto's computer 02:00
hugme hugs cotto's
wayland76 Interesting :)
jimi_hendrix TimToady, hehe
the star language quote is my favorite :)
(the rules about hubris and laziness are up there too)
02:02 nbrown joined
TimToady so, basically, apply Rule 1 to Perl 5 and Rule 2 to Perl 6. :) 02:02
jimi_hendrix xD 02:03
*
sjohnson im still trying to figure out exactly what those 3 values mean
jimi_hendrix does vim have perl6 highlights yet? 02:04
sjohnson kobesearch.cpan.org/htdocs/Syntax-H...anges.html 02:06
diakopter no.. 02:07
sjohnson syn off
diakopter (that's not the place to find perl6.vim)
TimToady github.com/petdance/vim-perl maybe 02:08
wayland76 Googling << "star language" "larry wall" >> doesn't come up with any useful hits
diakopter github.com/petdance/vim-perl/blob/m.../perl6.vim seems fairly up-to-date, yeah 02:09
TimToady the * language is actually from GEB, iirc
dinner &
02:09 vamped joined
diakopter Sternensprache 02:10
jimi_hendrix TimToady, oh really? a friend told me it was Wall's
wayland76 Ah, ok. I'm currently reading GEB, so I'll come across it if I haven't
diakopter zvezdnyj jazyk
jimi_hendrix GEB = ?
02:10 hcchien_ is now known as hcchien
diakopter en.wikipedia.org/wiki/G%C3%B6del,_Escher,_Bach 02:11
sjohnson jimi_hendrix: TimToady is Larry Wall
wayland76 Does Sternensprache mean what I think it means?
sjohnson .. maybe i misread you 02:12
jimi_hendrix i am lost
sjohnson sounds like german for sore throat
wayland76 sjohnson: Well, I thought stern = rear, and sprache = speak
jimi_hendrix lol
sjohnson i also know absolutely no german, so don't quite me on anything 02:13
vamped stern = star ?
02:13 hercynium left
wayland76 Ah, that would make sense :) 02:13
vamped I've a question for TimToady
wayland76 jimi_hendrix: Are you found now?
vamped TimToady: I am wondering if you are active still in P5 development, or if you're letting "the P5 camp" take over the language. 02:14
jimi_hendrix wayland76, i am still looking for my cerebellum after my head exploded, give me a minute 02:15
well sleep will help clear my brain... 02:16
and if TimToady is larry wall, then you are my favorite programmer
night all
wayland76 'night
vamped afk - will look back later. 02:20
02:31 Wolfman2000 joined 02:35 romanhunt left 02:44 crythias joined, ihrd1 joined 02:45 ShaneC left 02:51 envi^office joined 02:56 aubreyja_ joined 02:59 tarski left 03:01 JimmyZ joined 03:04 cottoo left 03:05 orafu left, orafu joined 03:30 yahooooo left, aubreyja_ left, yahooooo joined 03:36 justatheory left
sjohnson perl6: say 3; 03:37
p6eval elf 29297, pugs, rakudo 7ef386: 3␤
03:40 zamolxes left, zamolxes joined 03:45 synth left
sjohnson test 03:49
03:51 cdarroch left 03:53 synth joined 03:56 meppl left
colomon shouldn't day 9 of the Advent calendar have gone live by now? 03:56
PerlJam @seen masak 03:57
lambdabot Unknown command, try @list
PerlJam seen masak
sjohnson im surprised that isn't in there!
colomon I'm going to publish what he's got, it looks fine to me.
PerlJam I'd wait 03:58
He'll be up in a couple of hours
colomon he had it scheduled to up at midnight UTC, not sure why it didn't.
PerlJam hmm. 03:59
Well, go ahead an publish it then I guess 04:00
colomon Already did before you said "I'd wait." :)
zaslon lolperl6adventhazblogged! perl6advent++ 'Day 9: Having beautiful arguments (and parameters)': perl6advent.wordpress.com/2009/12/0...arameters/
colomon I've just backlogged, I'm pretty sure he did intend it to go up.
It's a lovely post, at any rate. 04:01
04:05 synth left 04:06 stephenl1 left
colomon should be in bed, but is listening to Ron Hynes and trying to get a few more passing tests for ng instead. 04:13
Wolfman2000 just finished reading the day 9 post. Definitely expands on what I did...I appreciate it. 04:18
04:19 colomon left
pugs_svn r29298 | colomon++ | [t/spec] Change "list reverse" to just "reverse". Not sure what the list was supposed to be doing there, but it was confusing ng, and all the tests worked with it. 04:24
dalek kudo/ng: ff5edcf | (Solomon Foster)++ | t/spectest.data:
Turn on S32-list/reverse.t.
04:26
diakopter <sigh /> my C# nfa engine made the mono JIT segfault 04:30
oh, and made the mono C# compiler produce invalid IL 04:31
04:32 colomon joined
dalek kudo/ng: 5bc904a | (Solomon Foster)++ | src/core/Any-list.pm:
proto and slurpy sub versions of reverse.
04:32
pugs_svn r29299 | colomon++ | [t/spec] Fudge for ng. 04:42
04:44 gfx joined
dalek kudo/ng: 7796544 | (Solomon Foster)++ | (2 files):
Add proto for join.
04:44
04:59 lestrrat is now known as lest_away 05:04 lest_away is now known as lestrrat 05:10 xomas_ left 05:15 colomon left 05:38 orafu left 05:39 orafu joined, nihiliad left 05:46 vamped left 05:57 cotto joined 06:08 crythias left 06:12 am0c joined 06:14 FCO left 06:16 gfx left, masak joined
masak good actual morning, #perl6! \o/ 06:16
PerlJam masak: guten Nacht (hopefully I got that right :) 06:17
masak PerlJam: I think you did, but I'm not German. :P 06:18
PerlJam: moritz_ my IRC twin, is.
PerlJam I know.
I'm just trying to not be so American :) 06:19
masak oh. :)
well done, in that case. :)
PerlJam anyway, it's 12:19 here
masak PerlJam: 晚安!
PerlJam and what ever that means right back at you :) 06:21
masak :)
(it means 'guten Nacht'.)
PerlJam masak: hey, any ideas why your post didn't er ... post when it was supposed to? 06:23
colomon had to manually kick it into being.
masak colomon++
PerlJam: no idea, except that I had a slight glitch with auto-posting last time as well.
I blame software. 06:24
PerlJam Usually it's humans that cause the problems though.
masak nod.
perhaps I missed a step somewhere. 06:25
wayland76 PerlJam: when you see Masak, write "Gøøð Mørn" 06:27
masak :D 06:28
PerlJam Awesome presentation title: A fictitious domain/distributed Lagrange multiplier method for the particulate flow of Oldroyd-B fluids
wayland76 (sorry, that was supposed to be a joke)
PerlJam makes a note to miss that particular talk
masak wayland76: it was funny. :)
wayland76 My Dad's thesis had something about pseudopotentials in it
My sister joked that he had a lot of pseudo-potential, but it didn't pan out :) 06:29
PerlJam wonders if he has any finnish saved away somewhere 06:32
A long time ago, it seemed there were many more Finns on IRC than today. I used to ask them how to say phrases and save them in a file for later use. 06:33
haluan nuolla seksikk�it� varpaitasi 06:34
That means "I want to lick your sexy toes" if what I have here is accurate :)
diakopter masak: you woke up! 06:36
masak diakopter: I know!
diakopter: and you know what? I feel rested!
PerlJam: that sounds about right.
PerlJam: two characters came out as encoding trouble, though. 06:37
PerlJam anyway, it is *Way* past my bed time, so good night all. See you in a few hours :) 06:40
PerlJam .zZ &
wayland76 'night
diakopter masak: I broke mono
masak :/ 06:41
diakopter :)
masak wayland76: 'night!
colomon: "1/0 = +Inf isn't in the spec *yet*". you sound like it should ever be. 06:42
am0c (test) 06:44
wayland76 masak: Sorry, I was replying to PerlJam. it's about 6pm here :) 06:49
masak oh, right. 06:50
wayland76 I've finally gotten the hang of this "Morning = Americans, Evening = Europeans, 3-5pm = no one here but us Australians" :)
masak heh. :) 06:51
here, it's "Afternoon = pmichaud, Night = jnthn, Morning = mberends" :)
07:01 kaare joined
JimmyZ ALL day = masak? 07:02
07:02 kaare is now known as Guest76737
masak JimmyZ: during the past week, yes. not so anymore. 07:02
JimmyZ ;) 07:03
07:04 brrant joined 07:26 hicx174 left 07:30 snearch_ joined
moritz_ re 07:31
07:32 Lorn left
masak good morning, moritz_. 07:33
07:37 hicx174 joined 07:41 ihrd1 left 07:51 Lorn joined, brrant left 07:52 elkng joined 07:58 elkng_ joined, elkng_ left 08:00 allbery_b left, obra left, Baggio_ joined
mdxi and a very late (and crazy, in a good way) night for me on the east coast of NA. zzzzz 08:01
08:02 Baggio_ left 08:03 allbery_b joined 08:17 elkng left, ashizawa left 08:26 iblechbot joined
masak www.nntp.perl.org/group/perl.ponie....sg487.html 08:33
this was three years ago, and then some.
I'm curious about the phrase "When it [Ponie] had good momentum and sponsored developers, it needed a number of Parrot features that weren't yet available." 08:34
in the three years since, how do we stand with those Parrot features?
mathw I always felt that Ponie could probably be taken up again one day 08:35
08:35 cotto left
mathw By somebody smarter than me, which is going to be the problem throughout 08:35
moritz_ I think it's not primarily about smartness 08:36
masak agree.
moritz_ but about knowing the Perl 5 and Parrot internals well enough
masak also, having an astounding supply of long-term tuits.
moritz_ ng: say 0.WHAT 08:37
p6eval ng 779654: Int()␤
moritz_ ng: say abs(0).WHAT
p6eval ng 779654: Int()␤
masak ng: say 'so'.WHAT
p6eval ng 779654: Str()␤
mathw Tuits are the biggest problem
masak mathw: yeah. it's a big difference from a limited project like the Advent Calendar. 08:38
mathw: in fact, Pugs got started by first being limited to a subset of Perl 6.
probably wouldn't have at that time otherwise. 08:39
mathw Well the Advent Calendar is easy
We're mostly just playing off the knowledge we already have
We can be comprehensive because there are so many of us 08:40
08:40 Baggio_ joined
masak mathw: yes, but look at the energy put into it. in kW or whatever. 08:40
mathw: it's currently the most active project in Perl 6 land, more so even than Rakudo. 08:41
mathw Also, the Advent Calendar is the result of many tuits spent over a long period of time, I suppose
In that we have to acquire that knowledge
pugs_svn r29300 | moritz++ | [t/spec] use smart match for type checking in abs.t, comparing $thing.WHAT is a bit too strict
mathw And we've all studied things in order to do that
moritz_ .o( kW is power, not energy :-)
masak moritz_: oops. thanks.
look at the power put into it.
mathw wonders what @ryanmaple doesn't like about Perl 6 08:42
masak mathw: also, it's odd that he thinks he *has* to learn it anyway, or 'burn in Perl hell'. 08:44
moritz_ people are weird. 08:45
masak but they're better than the alternatives. :P
masak resolves to read the Moose test suite for Christmas 08:47
mathw He probably thinks Perl 5's going to drift away 08:48
Which is clearly not going to happen
At least not without something like Ponie
Because projects can't just transition wholesale onto Perl 6
masak no.
mathw I hope what Perl 6 will inspire is new projects to choose it over other languages
A goal of mine is to see good GObject library bindings, and see if we can get people writing Linux desktop things in Perl 6 08:49
I think it'd be a great language for sticking UIs together with
Even if you push your serious calculation stuff into libraries
If you write them in Vala, and we've got GObject Introspection bindings generators for Perl 6, it'd be trivial to call them 08:50
I don't seem to be able to envisage any good situation for anything at all that doesn't involve multiple languages. I guess some people wouldn't like that.
08:52 farkerd joined 09:02 JimmyZ left 09:08 farkerd is now known as farkered_
masak here's the thread that announced Pugs. groups.google.com/group/perl.perl6....b3c2?pli=1 09:08
it bears an interesting resemblance with Linus' announcement of Linux. "just a hobby, won't be big and professional like gnu" 09:09
moritz_ well, it didn't stay side-effect free for long :-)
masak exactly.
and Linux didn't stay just a hobby for long.
09:09 farkered_ is now known as farkerd
mathw approves of today's advent post 09:10
masak \o/ 09:11
mathw where clauses are wonderful things 09:12
masak I didn't describe them; only used them. 09:13
it felt like any description of them would only complicate things. :P
09:16 farkerd left
Tene *sigh* 09:17
Another night without getting anything done.
I hate these early-morning classes. they take everything out of me for the rest of the day. 09:18
Goodnight all.
masak hugme: hug Tene
hugme hugs Tene
masak Tene: 'night!
09:19 c9s_ joined
moritz_ ng: sub increase_by_one($n is rw) { ++$n }; increase_by_one(42) 09:22
p6eval ng 779654: Cannot assign to readonly value␤current instr.: '&infix:<=>' pc 13684 (src/builtins/Junction.pir:124)␤
mathw well, go on and fix it then :P 09:24
09:24 cogno joined
mathw is writing tests in C++ and finding it moderately unpleasant 09:25
need a regex library...
masak hm, Andrew Shitov mentioned a regex library in C++. 09:27
what was its name again?
moritz_ I think boost comes with a regex library, amongst other things
mathw yeah 09:28
we've got libpcre floating around somewhere
unfortunately our build system can't cope with Boost::Regex at the moment, as it only understands Boost header-only libraries 09:29
fortunately boost::shared_ptr is header-only
masak right, boost. moritz_++ 09:30
mathw boost is astonishing
it even has a library for named parameter passing
although it's a bit messy
masak what is boost? a kind of Spring for C++?
mathw and some of the stuff they do with template metaprogramming is utterly terrifying 09:31
boost is a collection of C++ libraries
smart pointers, data structures, parsers, programming aids, threading, I/O...
Kind of like, everything you wished was in the standard library, but isn't (yet)
Just a few Boost libraries, correctly applied, can make a massive difference to your code 09:32
that's a positive difference of course, as they're correctly applied :)
moritz_ template metaprogramming can be quite scary 09:33
mathw just a tad
moritz_ I think I've mentioned the linear algebra library "eigen" at times here
mathw there is one team here who are reputedly using Boost::MPL
09:33 lestrrat is now known as lest_away
mathw I don't even want to *think* about what they're doing with it 09:33
moritz_ that library has the most scary expression template system I've ever seen 09:34
but it allows you to write things like A = B * C + f*D, where A, B, C, D are matrices and f is a scalar
and it evaluates such an exression in a single, vectorized operation
and without creating a temporary 09:35
mathw ... 09:36
And I bet the error messages when it goes wrong are spectacular
moritz_ yes
09:37 lest_away is now known as lestrrat, japhb left
moritz_ it tells me about template parameter mismatches in 5 line long types 09:37
09:37 japhb joined 09:39 colomon joined
mathw That's about what I'd expect 09:40
09:41 envi^office left
colomon moritz_: on the abs(0).WHAT thing -- I'm under the impression ng parses that as (0).WHAT.abs. 09:41
mathw That's... surprising 09:43
09:43 pmurias joined
colomon At least, that was the only way I was able to make sense of the messages I was seeing. Maybe there is some other explanation. 09:44
ng: say abs(4).WHAT 09:45
p6eval ng 779654: sh: ./perl6: No such file or directory␤
colomon ng: say abs(4).WHAT 09:46
p6eval ng 779654: sh: ./perl6: No such file or directory␤
09:47 cogno left
colomon ng: say abs(4).WHAT 09:48
p6eval ng 779654: Int()␤
09:48 jl_2 left, simcop2387 left, [particle] left, mj41 left, brody left, estrai left, PZt left
colomon ng: say 4.abs.WHAT 09:48
p6eval ng 779654: Num()␤
colomon ng: say (abs(4)).WHAT
p6eval ng 779654: Num()␤
mathw ng: my $a = abs(4); say $a.WHAT;
p6eval ng 779654: Num()␤
mathw Well, isn't that interesting
colomon abs is an operator, you see.... 09:49
09:50 flip214 joined
flip214 Hello everybody! 09:50
Clap your hands!
It's feeling good ...
and so on and so on, keep working, thanks
Does anybody have some '/path/to/file'.stat for me? 09:51
Or maybe .IO.s, .IO.d or something like that?
masak flip214: I usually do things like 'file' ~~ :e
09:52 Baggio_ left 09:54 Baggio_ joined
mathw I still don't like that syntax 09:54
masak which one? 09:55
mathw 'file' ~~ :e 09:56
masak there's a fundamental difficulty in the whole strings/files/stats design area.
a pair of opposing forces, if you will.
(1) we want things to be easy to write
(2) we want OO-y and type-wise purity
mathw 'file'.IO.e is no harder to write 09:57
masak I think "'file' ~~ :e" wins on (1), but fails on (2).
even "'file'.IO" is doubtful, because it claims that Str needs to know about statbufs. 09:58
flip214 I thought "...".IO.e to be both 1 and 2
No ... but there's a way to get a statbuf from a string
mathw No, it claims that Str needs to know how to turn itself into a filename
flip214 likewise from a handle
masak it's certainly more (2) than "'file' ~~ :e"
mathw which then knows about stat
flip214 Well, I read the bit about pathname quoting p{} ... 09:59
masak even Str knowing how to turn itself into a filename feels less-than-pure to me.
flip214 and while I can understand it (at least for windows users), it feels a bit wrong ....
moritz_ actually windows has an api for accessing file names as text strings 10:00
flip214 at least if it's more than a "quoting without escape"
mathw masak: yeah, I'm not entirely sure that's good either
moritz_ as opposed to unix
masak flip214: it's an idea with merit, but one of those things that p6l tends to discuss until the idea is destroyed. :/
moritz_ in which file names are just buffers
flip214 that's another thing I've been thinking about ... 10:01
10:01 jl_2 joined, simcop2387 joined, [particle] joined, mj41 joined, brody joined, PZt joined, estrai joined
flip214 the *@ARGV should perhaps be a Buf type, as we can only guess its encoding 10:01
masak flip214: did you mean @*ARGV? is there still such a variable?
flip214 I don't know how a Str is stored internally, but if it's something else than Buf+encoding information (say, autoconvert to utf8) I wouldn't be happy
yes, sorry, just quick typing 10:02
because if a user enters a string on the commandline, and this has to be converted to something else, only to be converted back to be used in an open() call, that's (at least IMO) inacceptable
moritz_ flip214: you're not supposed to care about how a Str is stored internally
but you're right that there should be a way to access the Buf nature of @*ARGS 10:03
10:03 estrai left, jl_2 left, [particle] left, brody left, PZt left, mj41 left, simcop2387 left
flip214 And should Buf have most of the same methods as a Str? RegexMatch, substr, etc? 10:04
10:04 Baggio_ left
flip214 Because if it doesn't, and it has to be converted to do matching, that feels bad, too 10:04
But maybe I'm worrying too much
Or not enough ... encoding issues are always bad
moritz_ no, it's a good question
basically we have three classes of types so far: pure text strings (Str), buffers that know their encoding (utf8, utf16le etc.), and "pure" buffers 10:06
I think you can argue that utf8 and utf16 should automatically allow all the operations that Str supports
however doing Buf().match(/\w/) doesn't make sense 10:07
because \w implies "word character", and a buffer has no ideas about what is a word character and what not
flip214 maybe that should be a plain ASCII word character?
So there should be an "C" locale Buf encoding, too 10:08
10:08 Baggio_ joined 10:10 Baggio_ left
flip214 In parrot there's a compilers/ncigen ... 10:10
Does someone have experience with that?
masak phenny: tell jnthn : since you're reading papers on metamodels, you might find this paper on ADTs and OO classes interesting. delivery.acm.org/10.1145/1650000/16...N=11430493 it's quite short, and draws interesting parallels between the two worlds. 10:11
phenny masak: I'll pass that on when jnthn is around.
10:11 Baggio_ joined
flip214 masak: I can't read that, it needs an ACM account 10:12
masak flip214: :/
flip214: I'm probably inside a uni wall that I don't know about, then. 10:13
moritz_ rakudo: say 1234567890.flip.comb(/\d**1..3/).join('.').flip
p6eval rakudo 7ef386: 1.234.567.890␤
10:13 Baggio_ left
flip214 But if that's the same, we're ok: www.cs.utexas.edu/~wcook/Drafts/2009/essay.pdf 10:13
masak flip214: yep. thanks. 10:14
phenny: tell jnthn better URL from flip214++: www.cs.utexas.edu/~wcook/Drafts/2009/essay.pdf 10:15
phenny masak: I'll pass that on when jnthn is around.
flip214 masak: but if you can easily read such ACM things, then I'll know who to ask next time ;-} 10:16
10:18 jl_2 joined, simcop2387 joined, [particle] joined, mj41 joined, brody joined, PZt joined, estrai joined
flip214 > flip214 | In parrot there's a compilers/ncigen ... Does someone have experience with that? 10:20
lambdabot <no location info>: parse error on input `|'
flip214 sorry, that should've been quoting ...
mathw lambdabot-- 10:21
moritz_ is tempted to hack karma tracking into hugme, and kick lambdabot for good 10:22
mathw yes
please do
moritz_ sadly ELITTLETUITS atm
10:23 Baggio_ joined
sjohnson hi guys! 10:24
mathw ETOOFEWTUITS, surely
or mayb eyou have tuits, but they are small ones
hmm
we could get all philosophical about that
hi sjohnson
sjohnson hi matt
10:25 agentzh left
masak hi sjohnson! 10:26
mathw sjohnson: what's upo
masak whoz op?
mathw s/o $$//
10:26 mathw sets mode: +o masak
mathw masak: you 10:26
masak :D
"op bit by street slang". 10:27
sjohnson hi masak
mathw: just got home from shooting pool and avoiding a bar fight with my stupid yet awesome pool mentor 10:28
... but perl6-related... really stoked for the rakudo release soon
mathw :D 10:29
I'm getting ready for the weekly fire alarm test. Fingers in ears...
moritz_ weekly?
paranoia?
mathw rules
the alarms must be tested every week
there are people who have to go around and make sure they're all making noises 10:30
masak if I were a fire, I'd go off Monday mornings, when people were expecting a drill...
mathw ah well the rule is, if the test lasts for more than thirty seconds then we must evacuate
masak even more fun! 10:31
10:31 pmurias left
mathw unfortunately once when they changed maintenance people, they managed to be incapable of shutting it off for ten minutes 10:31
by which time we were all outside in the rain
office management were not impressed
because they hadn't bene able to get their umbrellas, and it ruined their hair
masak lunch & 10:32
mathw LUNCH?
sigh
10:32 ashizawa joined
moritz_ good idea, actually 10:33
flip214 enjoy your happy meal 10:38
10:41 kaare joined, kaare is now known as Guest40164 10:44 estrai left, jl_2 left, [particle] left, brody left, PZt left, mj41 left, simcop2387 left 10:47 gfx joined
sjohnson hows it going moritz? 10:48
10:51 snearch_ left 10:54 Guest76737 left 10:56 jl_2 joined, simcop2387 joined, [particle] joined, mj41 joined, brody joined, PZt joined, estrai joined 11:04 quantumEd joined 11:09 estrai left, jl_2 left, [particle] left, brody left, PZt left, mj41 left, simcop2387 left
wayland76 sjohnson: It looks like "elsewhere" is the correct answer to your question :) 11:09
mathw hi wayland76
wayland76 Hi :) 11:10
Juerd_ What does Array.join return if the array contains both Strs and Bufs? 11:11
sjohnson night guys :) 11:17
wayland76 goodnight
flip214 rakudo: my @ar= 1,2,3; @ar ==> @ar;
p6eval rakudo 7ef386: Feed operators are not yet implemented in Rakudo, sorry␤in sub 11:18
flip214 Does anyone know when they will be?
So that the operations can be written in the flowing order, instead of backwards (map,grep, etc)
jnthn oh hai, #perl6 11:19
phenny jnthn: 10:11Z <masak> tell jnthn : since you're reading papers on metamodels, you might find this paper on ADTs and OO classes interesting. delivery.acm.org/10.1145/1650000/16...N=11430493 it's quite short, and draws interesting parallels between the two worlds.
jnthn: 10:15Z <masak> tell jnthn better URL from flip214++: www.cs.utexas.edu/~wcook/Drafts/2009/essay.pdf
jnthn masak: Tack! 11:20
flip214 happy meal 11:22
11:28 simcop2387 joined 11:29 xomas_ joined 11:36 lestrrat is now known as lest_away 11:39 Baggio_ left 11:40 jferrero joined 11:42 jl_2 joined, [particle] joined, mj41 joined, brody joined, PZt joined, estrai joined 11:47 payload left 11:49 envi^home joined
moritz_ şøñđëřżēıċħęŋđőmæîņĭśŧşũþėŗ.de/char.jpg 11:51
masak heh. for once, Emacs' URI module fails on that one. :) 11:53
moritz_ (sonderzeichendomain could be translated as "special character domain")
masak: so does Regexp::Common, which my IRC logs use
masak software: we're not there yet. 11:54
jnthn My IRC client didn't highlight that. :-/ 11:56
11:56 Baggio_ joined
spinclad that ... is a _very_ silly name 11:57
moritz_ aye.
I like it.
flip214 Well, konsole lets me open that. 11:59
masak kønsøle++
flip214 Well, göögle.de does something different from göogle.de 12:00
spinclad i count one, two, or three arguably undecorated characters 12:01
flip214 interesting ...
spinclad but the first counts as a negative decoration 12:02
.u m 12:06
phenny U+006D LATIN SMALL LETTER M (m)
spinclad and i missed that one entirely
12:08 payload joined 12:10 hanekomu joined 12:14 Astoria` joined
Astoria` Hello 12:14
masak hi! 12:15
Astoria` Hi masak
12:22 lichtkind joined 12:23 gfldex joined
gfldex is there an easy way to type cast a whole list (untyped) to a typed list? 12:24
moritz_ gfldex: not yet. We've been discussion various approaches for that, but haven't settled on one yet 12:26
12:27 bluescreen joined, payload left 12:29 lest_away is now known as lestrrat
masak gfldex: one thorny problem with that is what to do when the list is lazily infinite. 12:30
say, my @a = 5..Inf, "lolnotanint"; and then try to cast that to Array[Int]. 12:31
12:31 ihrd joined
moritz_ that would never get to the "lolnotanint", so not a problem :-) 12:31
but the problem as such persits
12:32 ihrd left
moritz_ *persists 12:32
maybe it could check the first 1 or 2 elements, and defer the rest of the type checks to the evaluation time
12:36 Baggio_ left 12:39 asdasd joined
gfldex the naive way would be @list_of_strings>>.Num , what doesnt work because it gets out of order and Str does not implement Num 12:40
but it looks neat :)
12:41 Baggio_ joined
moritz_ it doesn't get out of order 12:42
the execution is not in order, but the result is
12:42 Astoria` left
moritz_ but in the end it also just returns a List, not a List[Num] 12:42
12:42 asdasd left 12:43 DJ-Dongdot joined 12:45 DJ-Dongdot left, DJ-Dongdot joined 12:51 DJ-Dongdot left
moritz_ rakudo: say "45".num 12:57
p6eval rakudo 7ef386: Method 'num' not found for invocant of class 'Str'␤in Main (file src/gen_setting.pm, line 324)␤
moritz_ rakudo: say "45".Num
p6eval rakudo 7ef386: Method 'Num' not found for invocant of class 'Str'␤in Main (file src/gen_setting.pm, line 324)␤
moritz_ rakudo: say <42 23 7>.map(+*).perl
p6eval rakudo 7ef386: [42, 23, 7]␤
Tene rakudo: say <42 7 23>.sort(-*).perl 12:59
p6eval rakudo 7ef386: ["42", "23", "7"]␤
gfldex map(+*) does not look neat. It looks like ... perl :D
13:00 iblechbot left
moritz_ anyway, >>.Num is supposed to work, in the sense that it converts each item of the list to a number 13:01
13:01 gfx left
masak gfldex: well, Perl 6 is all about taking line noise to a higher level of abstraction. :) 13:05
moritz_ luckily the number of bugs is rougly proportional to the lines of code 13:07
most independent of the abstraction level of the programming language
which is why expressive languages produce better code :-)
masak as overgeneralizations go, that's pretty accurate. 13:11
13:12 lichtkind left
moritz_ insert $appropriate-degeneracy here :-) 13:12
takadonet morning all 13:13
13:15 Baggio_ left 13:16 meppl joined 13:17 KatrinaTheLamia left, lestrrat is now known as lest_away 13:19 lest_away is now known as lestrrat 13:20 Baggio_ joined 13:21 KatrinaTheLamia joined
takadonet wow the Perl6 advent calendar is really slow... that's a good thing! 13:21
masak not so slow here... 13:23
moritz_ the admin interface is slow, the blog itself seems fine here
takadonet it's better now but a few minutes ago could not even load a page 13:24
masak
.oO( we need to get slashdotted again... )
13:26
moritz_ hey, did anybody submit it to digg? :-) 13:27
masak didn't
13:27 colomon left
masak also Reddit, Hacker News, Metafilter... 13:28
moritz_ I did it with reddit
13:28 Baggio_ left
moritz_ but only to the perl section, not programming 13:28
masak 7 days ago... no comments. :/ it must not have gotten very much attention. 13:29
moritz_ www.reddit.com/r/programming/commen..._calendar/ 13:31
somebody else did
masak \o/
but that's the Perl calendar, not Perl 6. 13:32
moritz_ oh
moritz_ not really concentrated
takadonet moritz_: did you post on reddit about the perl 6 advent calendar? 13:33
13:33 lestrrat is now known as lest_away
masak takadonet: see the above discussion. 13:34
moritz_ takadonet: www.reddit.com/r/perl/comments/aa0t..._calendar/
but not in the programming section
takadonet thanks
moritz_ feel free to that
I'll upvote it :-)
takadonet me too 13:35
masak nepotism feels so much nicer when you're on the nephew's side yourself. :) 13:37
moritz_ masak: www.perlmonks.org/?node_id=811919 you might compete with Perl 6 there :-) 13:38
masak :) 13:39
I'm at work, so tl;dr. but definitely intersting.
I'm actually slightly dubious as to whether Perl 6 would beat Perl 5 at such a task. 13:40
especially since we don't have 'no strict' yet in Rakudo.
moritz_ got a point there 13:41
masak Perl 6: slightly more verbose, and proud of it. :) 13:42
moritz_ thought that .fmt being shorter than sprintf might help :-) 13:43
13:46 Baggio_ joined 13:49 wolverian joined 13:54 payload joined 13:56 pmurias joined 13:57 pmurias_ joined, pmurias_ left
moritz_ translate.google.com/translate?js=y...&tl=en <- machine-translation of opennet.ru/opennews/art.shtml?num=24567 which talks about our advent calendar 14:04
PerlJam good morning (or afternoon for some of you) 14:06
moritz_ good localtime
14:06 colomon joined
colomon o/ 14:08
14:20 payload left 14:30 flip214 left 14:32 payload joined
Tene perlgeek.de/blog-en/perl-6/failing-softly.html -- fail() returns a Failure, not an Exception 14:35
14:38 lest_away is now known as lestrrat 14:39 iblechbot joined
moritz_ oh 14:41
I should change that
Tene++ 14:43
14:46 tarbo2 joined 14:53 Guest40164 left
pmichaud good morning #perl6 14:53
PerlJam morning pm 14:54
moritz_ oh hai
masak greetings, pmichaud. 14:55
14:55 payload left 14:56 payload joined
colomon \o 14:58
15:00 pmurias left 15:01 KyleHa joined 15:10 mberends joined
diakopter mberends: hi 15:11
mberends hi diakopter, just finished $work here, now reading some backlogs :) nice Advent posts 15:13
15:15 PacoLinux joined, BOOKZ joined
masak welcome to our humble backlogs, mberends. :) 15:17
15:18 BOOKZ left, payload left, BOOKZ joined
mberends diakopter: you uploaded a lot into Sprixel, but is it runnable yet? 15:18
masak: it's a bind having a backlog habit :P 15:19
masak mberends: there are worse vices than that. :)
15:19 BOOKZ left
Tene Just maintain a healthy ignore list. ;) 15:20
morning pm
masak Tene: I usually backlog in skim mode, until my eyes pick up a term or piece of code I'm interested in. 15:21
mberends Tene: /ignore is very useful, should do that more
15:22 payload joined
masak considers making a joke out of 'did somebody just say something?' 15:22
15:22 BOOKZ joined
masak nah. better not. :) 15:22
Tene I used to backlog obsessively, but I've learned to stop doing that. 15:26
masak rakudo: class A { has $.c; method foo() { bar(:$!c) }; sub bar(:$c!) { say $c } }; A.new(:c("OH HAI")).foo 15:27
p6eval rakudo 7ef386: ( no output ) 15:28
moritz_ masak: don't even try. p6eval + rakudo + class = timeout
masak locally, "OH HAI".
moritz_: I thought you disproved that hypothesis.
moritz_ ng: class A { has $.c; method foo() { bar(:$!c) }; sub bar(:$c!) { say $c } }; A.new(:c("OH HAI")).foo 15:29
p6eval ng 779654: Unable to parse blockoid, couldn't find final '}' at line 1␤current instr.: 'perl6;Regex;Cursor;FAILGOAL' pc 1664 (src/stage0/Regex-s0.pir:907)␤
moritz_ masak: nope, I didn't
masak moritz_: at least, I'm pretty sure I've seen both false positives and false negatives lately.
ah, there's that Cursor we keep hearing about. :)
and FAILGOAL is for when it can't find matching '}'s, for example... 15:30
masak makes mental notes
15:32 BOOKZ left 15:33 BooK joined, BooK left, BooK joined
frettled Shouldn't that be «masak makes mental memorandums»? 15:36
masak frettled: not as long as memorandum is pluralized -a :P
frettled d'oh!
masak makes mental mazes 15:37
masak dusts off frettled's Latin
frettled hmm, actually, «memorandums» is permissible in English.
moritz_ shouldn't the plural be 'memoranda' or something?
frettled that works, too
moritz_ (I've never learned Latin, just guessing) 15:38
sometimes it also feels as if I haven't learned English either :-)
masak yes, the '-ums' forms are probably quite OK in contemporary English.
PerlJam frettled: "datums" is permissible in English too, but it means something different than "data" :)
frettled Latin ≠ English anyway.
masak PerlJam: no, it doesn't. :P
PerlJam masak: yes, it does.
masak data is datums.
moritz_ "Commander Datums, please come to the bridge immediately"
masak 哈哈 15:39
frettled According to 1913-Webster, «memorandums» is English, «memoranda» is Latin.
masak bah, Webster. :)
15:41 BooK_ joined
masak oh -- 'memorandum' comes from 'memorandus', which is a gerundive of 'memorāre', to mention, tell. 15:41
15:42 BooK_ left
masak in other words, 'memoranda'/'-ums' means 'needsmentionings'. 15:43
or 'to-be-mentioneds'. 15:44
15:45 Psyche^ joined 15:48 cotto joined
frettled So, er, you're welcome for letting me derail you from whatever important stuff you were procrastinating from. 15:50
15:51 romanhunt joined
frettled But now that carlin surely has fixed zaslon, it's time for me to write a small blog entry again, just to keep the hungry crowds (all three of them) happy. What about? :d 15:51
moritz_ blog posts are good. 15:53
15:54 bpetering joined 15:57 Avi-school joined 16:01 nihiliad joined, Patterner left, Psyche^ is now known as Patterner 16:02 Baggio_ left 16:07 hanekomu left
romanhunt is there any particular reason everything in src/classes in written in PIR? Is there anything stopping some of it from being re-written in perl 6 ? 16:07
16:08 payload left, mberends left, payload joined
PerlJam romanhunt: you must be looking at the master branch. In the ng branch, most things are written in Perl 6. 16:08
moritz_ some of them are quire low-level
PerlJam (well, NQP anyway)
moritz_ for example you can't write class Object in Perl 6 16:09
because it would try to inherit from class Any
but that doesn't exist yet
and so on
romanhunt is there a perl 6 equivalent to get_hll_global ? 16:10
16:10 payload left
romanhunt I was looking at something simpler than that 16:10
moritz_ there might a syntax for looking into namespaces directly
but I don't know if that's implemented
romanhunt i see 16:11
16:11 parduncia left, ssm left, constant left, nihiliad left, yahooooo left, cognominal left, pugs_svn left, Woodi left, spinclad left, Infinoid left, phenny left, hatseflats left, dukeleto left, jiing left, TimToady left, cls_bsd left, jjore_ left, ingy left, Tene left, meppl left, Gothmog_ left, jantore_ left, rjh_ left, kolibrie left, krunen left, jnthn left, avar left, nsh left, elmex left, sbp left, felipe left, bigpresh_ left, simcop2387 left, sjohnson left, revdiablo left, arnsholt left, frettled left, rhr left, frew left, meteorswarm left, PerlJam left, pjcj left, ilbot2 left, jrockway left, Maddingue left, gabiruh left, IRSeekBot left, lambdabot left, zostay left, charsbar left
moritz_ also the notion of "global" is a bit tricky in Perl 6 16:11
there are no real globals
builtins notionally live in an outer lexical scope, not in a global scope 16:12
romanhunt I see
16:13 hanekomu joined 16:14 PZt left
colomon romanhunt: One of the various things I've done on the ng branch is translate a few of the low-level routines from PIR to Perl 6. The index method, for instance. 16:14
16:14 jnthn joined, Gothmog_ joined, bigpresh_ joined, jantore_ joined, rjh_ joined, avar joined, elmex joined, nsh joined, sbp joined, felipe joined, kolibrie joined, krunen joined, meppl joined, payload joined, nihiliad joined, yahooooo joined, cognominal joined, ssm joined, constant joined, parduncia joined, Tene joined, jjore_ joined, ingy joined, Woodi joined, Infinoid joined, TimToady joined, cls_bsd joined, dukeleto joined, irc.freenode.net sets mode: +oooo jnthn Tene TimToady dukeleto, pugs_svn joined, hatseflats joined, jiing joined, phenny joined, spinclad joined, irc.freenode.net sets mode: +vvo pugs_svn phenny spinclad
colomon It's a good thing, too, because I can sort of make out what PIR is doing, but I'm not competent to write it. 16:14
16:15 frettled joined, simcop2387 joined, meteorswarm joined, jrockway joined, frew joined, zostay joined, charsbar joined, rhr joined, IRSeekBot joined, Maddingue joined, arnsholt joined, gabiruh joined, pjcj joined, ilbot2 joined, irc.freenode.net sets mode: +ovov frettled IRSeekBot arnsholt ilbot2, revdiablo joined, sjohnson joined, lambdabot joined, PerlJam joined, irc.freenode.net sets mode: +vo lambdabot PerlJam, Avi-school left, pmurias joined
frew in yesterday's advent post Wolfman2000 did sub very_odd(Int $odd where {$odd % 2}) 16:17
phenny frew: 26 Nov 00:59Z <Wolfman2000> tell frew it's near that time for me to let go of my donkeyness
frew: 26 Nov 14:43Z <Wolfman2000> tell frew github.com/wolfman2000/Perl-6-Pastebin/
frew would where { * % 2 } work as well?
or maybe $_ % 2?
TimToady either * or {} but not both 16:18
frew I thought that might be the case
so where * % 2?
TimToady is fine
frew nice
TimToady std: sub foo ($x where * % 2) {} 16:19
p6eval std 29300: ok 00:01 108m␤
TimToady where requires an expression of no lower precedence than chaining, or you'd need parens 16:20
I'm sure a caffeinated brane would find a better way to say that... 16:21
pmurias diakopter: where does sprixel live nowdays?
masak I don't know why, but I'm unnerved by the `$a where { $a % 2 }` style. i.e. using the actual parameter in the where block.
PerlJam masak: me too 16:22
(but only a little)
moritz_ likes it
pmurias masak: you prefer $a where { $_ % 2)?
masak pmurias: semantically, yes. syntactically, no. :)
16:23 romanhunt left
pmurias masak: so what's your prefered version of that? 16:23
masak but I suppose a case could be made for :($a, $b where { $b > 2 * $a })
TimToady hmm, $a where $a ![!%] 2 ought to work
masak so perhaps I'm just squeamish.
colomon I'm with moritz_, I like $a where { $a % 2 } -- feels very natural to me.
TimToady or $a where $a % 2 != 0 16:24
moritz_ std: 1 ![!%] 2
p6eval std 29300: ok 00:01 106m␤
masak pmurias: my absolute favourite is `$a where { $^n % 2 }`, for some reason. module the actual names.
s/module/modulo/
TimToady std: 1 !!% 2 # fail, I think
p6eval std 29300: ===SORRY!===␤Ternary !! seems to be missing its ?? at /tmp/XDgh61beW9 line 1:␤------> 1 ⏏!!% 2 # fail, I think␤ expecting any of:␤ infix stopper␤ standard stopper␤ terminator␤FAILED 00:01 106m␤
masak I just realized something. Since Perl 5 has finitely many operators, and Perl 6 has aleph-0 of them, Perl 7 will have to have aleph-1 operators... 16:26
TimToady get real
masak too late.
we're already up in the hyperreals.
oh. 16:27
masak gets the joke
:D
moritz_ :-) 16:28
16:28 perlygatekeeper joined
TimToady א¹ bottles of real beer on the wall... 16:28
masak I'm slow today. it took me several seconds to get a cardinality joke. :)
PerlJam that's because you're not catholic. 16:29
TimToady or is that א₁ I want?
masak PerlJam: that's an unorthodox opinion.
moritz_
.oO( Q: is there a cardinal higher than the pope? A: sure: two to the pope )
16:30
PerlJam masak: as long as we're kosher
TimToady yes, but how big is the cantor set? 16:31
personally, I'd rather have a decantor..
masak I think you're preaching to the choir.
PerlJam masak++ nice
TimToady that's in france 16:32
so likely catholic
colomon wow, ack -w end on rakudo/src was massively ineffective for finding the implementation of end... 16:35
PerlJam you mean for arrays? 16:36
colomon yes.
colomon is looking for LHF
moritz_ colomon: ack 'method.*\bend\b' 16:37
that will exclude all those .end lines from PIR
colomon moritz_++ # brill!
moritz_ but fail if the method end was implemented in PIR
colomon and instantly successful, too.
moritz_ then you need ack '\bend\b.*:method'
colomon ah, so the master implementation doesn't even attempt to handle the tricky bits. 16:38
moritz_ .end and .elems are allowed to force eager evaluation of the list
colomon I was more worried about the multi-dimensional cases 16:39
moritz_ there is no multi-dimensional case :-) 16:40
colomon "Returns the final subscript of the first dimension; for a one-dimensional array this simply the index of the final element. For fixed dimensions this is the declared maximum subscript. For non-fixed dimensions (undeclared or explicitly declared with *), the index of the actual last element is used."
S32-containers end, that is. 16:41
moritz_ you might have missed my smiley at the end :-)
colomon ah.
16:43 KyleHa left 16:46 bpetering left 16:50 IllvilJa left
colomon ng: my @array = (); say @array.elems 16:53
p6eval ng 779654: 1␤
colomon ummm....
moritz_ ng: my @array; say @array.elems
colomon rakudo: my @array = (); say @array.elems
p6eval ng 779654: 0␤
rakudo 7ef386: 0␤
moritz_ ng: my @array = (), (); say @array.elems
p6eval ng 779654: 1␤
masak :)
colomon :\ 16:54
masak strangely inconsistent.
colomon ng: my @array; say @array.defined
p6eval ng 779654: 1␤
16:54 justatheory joined
colomon rakudo: my @array; say @array.elems 16:54
p6eval rakudo 7ef386: 0␤
moritz_ would wait with .end until pmichaud++ has fixed lists and iterators 16:55
16:56 pmurias left
colomon but I think .elems is all that is really needed to make it work.... 16:57
though the damned end.t calls pop and shift and unshift and push, and I think at least half of those aren't implemented yet....
moritz_ ng: my @a = < foo bar >; say @a.pop 16:58
p6eval ng 779654: Method 'pop' not found for invocant of class 'Array'␤current instr.: '_block14' pc 29 (EVAL_1:0)␤
moritz_ ng: my @a = < foo bar >; say @a.shift
p6eval ng 779654: Method 'shift' not found for invocant of class 'Array'␤current instr.: '_block14' pc 29 (EVAL_1:0)␤
moritz_ ng: my @a = < foo bar >; say @a.push(3)
p6eval ng 779654: foobar3␤
moritz_ ng: my @a = < foo bar >; say @a.unshift(3)
p6eval ng 779654: 3foobar␤
colomon well, I'm in the mood for some ng hacking....
moritz_ wonders why the hard cases are implemented, but not the simple ones 16:59
colomon I seem to recall someone coming up with clever implementations for push and unshift....
ooo, push and unshift aren't in the core. 17:00
moritz_ and I think there's good reason for that
17:01 payload left, payload joined, cdarroch joined
colomon actually, may be wrong about that. 17:03
core/Array.pm has them.
I think I was looking in list.pm any-list.pm before.
TimToady ng: my @array = Nil; say @array.elems 17:07
p6eval ng 779654: 1␤
TimToady ng: my @array = Nil; say @array[0].WHAT
p6eval ng 779654: Method 'WHAT' not found for invocant of class 'Undef'␤current instr.: '_block14' pc 29 (EVAL_1:0)␤
masak I'm reading www.t3.org/tangledwebs/07/tw0706.html and feeling more than a twinge of recognition... :) 17:08
RichiH should i be able to paste multi-line code into the interactive shell? i want follow some of the examples in the advent calendar & not being able to just c & p annoys me to no end 17:09
masak I think I should start twirling my moustache.
RichiH: pro tip: do not use the interactive shell.
RichiH: you'll thank yourself.
pmichaud how about a form-based perl6 evaluator? 17:10
colomon Anyone know the pir:: magic code to take an array and return an Any? (ie pop or shift)
RichiH masak: i am used to the shell of perl5 sucking, but i had more hopes for perl 6 17:11
pmichaud RichiH: we're not done with it yet.
masak RichiH: oh, the high hopes are still there. 17:12
RichiH: what pmichaud said.
RichiH pmichaud: that was my assumption, which is why i asked :)
masak RichiH: but seriously, you'll feel better putting things in a file and running the file.
pmichaud it still might be worthwhile to have a form-based perl6 evaluator :-)
(online, e.g.)
RichiH masak: i regularly use perl -e to test stuff and run short helper one-liners 17:13
masak RichiH: me too. 17:14
moritz_ I think most of us do :-)
RichiH so i have a natural interest in the shell :)
moritz_ for Perl 5 you might also be interested in Devel::REPL
masak RichiH: use.perl.org/~masak/journal/38279 17:15
colomon ng: say fail("Hello?");
p6eval ng 779654: sh: ./perl6: No such file or directory␤
masak it didn't even fail to fail... 17:16
food & 17:17
17:17 masak left
colomon ng: say fail("Hello?"); 17:17
p6eval ng 779654: sh: ./perl6: No such file or directory␤
colomon grumble 17:18
moritz_ ng: say fail("Hello?");
p6eval ng 779654: No exception handler and no message␤current instr.: '&fail' pc 13834 (src/builtins/Junction.pir:200)␤
17:18 estrai left, jl_2 left, [particle] left, brody left, mj41 left
colomon interesting. 17:18
moritz_ ng: say sub { fail("Hello?") }.();
p6eval ng 779654: Confused at line 1, near "say sub { "␤current instr.: 'perl6;HLL;Grammar;panic' pc 519 (src/stage0/HLL-s0.pir:336)␤
moritz_ ng: sub f { fail("Hello?") }; say f()
p6eval ng 779654: Mu()␤
RichiH rakudo: sub test($first = "foo", $second = "bar"){say $foo; say bar}; test (undef, "quux")
colomon I just tried it at home, and I don't get anything at all, not even a newline.
p6eval rakudo 7ef386: Symbol '$foo' not predeclared in test (/tmp/qz9QnUPFgM:2)␤in Main (file <unknown>, line <unknown>)␤
RichiH how am i supposed to use the default value for the first argument, in this case? 17:19
colomon rakudo: sub test($first = "foo", $second = "bar"){say $foo; say bar}; test (:second("bar"));
moritz_ rakudo: sub test($first = 'foo', $second = 'bar') { say $first }; test(:second('blubb'))
p6eval rakudo 7ef386: Symbol '$foo' not predeclared in test (/tmp/xfdK1Dh5AB:2)␤in Main (file <unknown>, line <unknown>)␤
rakudo 7ef386: foo␤
RichiH erm, i failed to rewrite my example 17:20
rakudo: sub test($first = "foo", $second = "bar"){say $first; say $second}; test (undef, "quux")
p6eval rakudo 7ef386: Use of uninitialized value␤ quux␤bar␤
moritz_ RichiH: first of all there's no space allowed between 'test' and '(" 17:21
colomon pmichaud: pir::pop__??
moritz_ RichiH: with space it means "calls function test with this list as its only argument"
pmichaud colomon: pir::pop__PP, probably.
RichiH ah, makes sense
colomon PP?
pmichaud colomon: but you also have to update the $!generated counter.
RichiH rakudo: sub test($first = "foo", $second = "bar"){say $first; say $second}; test(undef, "quux")
p6eval rakudo 7ef386: Use of uninitialized value␤␤quux␤
moritz_ RichiH: and you can fill the second parameter by name 17:22
colomon pmichaud: okay, that's a new one on me.
pmichaud PP === returns a PMC, takes a PMC argument.
moritz_ rakudo: sub test($first = "foo", $second = "bar"){say $first; say $second}; test(:second<bar>)
p6eval rakudo 7ef386: foo␤bar␤
moritz_ rakudo: sub test($first = "foo", $second = "bar"){say $first; say $second}; test(:second<other>)
p6eval rakudo 7ef386: foo␤other␤
colomon I don't see any examples of generated in the src?
RichiH moritz_: that seems to be very cumbersome 17:23
moritz_ RichiH: then it's your job to write the parameters in a better order :-)
17:24 envi^home left
moritz_ how does C++ do this? 17:25
colomon moritz_: it doesn't.
RichiH hmm, there is a way which i can live with 17:26
colomon pmichaud: "pop_pmc() not implemented in class 'Array'" (that's without any $!generated)
RichiH rakudo: sub test($first = "foo", $second = "bar"){say $first; say $second}; $second="quux" test(:$second)
p6eval rakudo 7ef386: Confused at line 2, near "test(:$sec"␤in Main (file <unknown>, line <unknown>)␤
RichiH rakudo: sub test($first = "foo", $second = "bar"){say $first; say $second}; $second="quux"; test(:$second) 17:27
p6eval rakudo 7ef386: Symbol '$second' not predeclared in <anonymous> (/tmp/tRuA1RVj0w:2)␤in Main (file <unknown>, line <unknown>)␤
pmichaud colomon: you have to pop the '$!values' attribute, not the array itself.
RichiH will take this back to his shell
pmichaud An Array object is a List.... a List has a $!values attribute that is used to hold the (possibly lazy) elements of the list
moritz_ rakudo: sub test($first = "foo", $second = "bar"){say $first; say $second}; my $second="quux"; test(:$second)
p6eval rakudo 7ef386: foo␤quux␤ 17:28
moritz_ RichiH: btw you can also /msg p6eval rakudo: say "hi"
17:28 brody joined
colomon pmichaud: woot! That seems to have done it! 17:30
Huh. The method form works now, but the sub form gets a Null PMC. 17:34
our proto sub pop(@array) { @array.pop; }
17:34 facsimile joined
colomon Am I doing something stupid there? 17:34
17:34 quantumEd left
moritz_ try s/proto/multi/ for now 17:34
sometimes it works with proto, sometimes it dosn't 17:35
I haven't found a pattern in it
17:35 facsimile left
colomon yeah, I've been having pretty good luck with proto 17:35
17:35 quantumEd joined
colomon Same with multi. 17:36
moritz_ colomon: have you looked in cheats/ if there's a PIR version somehere? 17:37
s/here/where/
colomon a PIR version of pop?
17:37 perlygatekeeper left, pmurias joined
moritz_ aye 17:37
colomon ng: my @array = 1...10; say @array.perl; say pop @array
p6eval ng 779654: (1, 2, 3, 4, 5, 6, 7, 8, 9, 10)␤Could not find non-existent sub &pop␤current instr.: '_block14' pc 29 (EVAL_1:0)␤
17:38 perlygatekeeper joined
colomon There is not. 17:38
(ps ack in TextMate is the nicest thing evar.)
moritz_ ok. Where' the Null PMC access happening?
17:39 pmurias_ joined 17:40 pmurias_ left, patspam1 joined
lisppaste3 colomon pasted "Null PMC from pop @array" at paste.lisp.org/display/91820 17:40
moritz_ woo 17:41
looks as if it does a smart match somewhere
colomon Hmmm... suppose I could check in my changes. .pop seems to work, and sub pop didn't work before, so no new test failures from the broken one. 17:42
moritz_ aye 17:43
colomon++
colomon pushed. 17:46
17:47 payload left
colomon dear heavens, the master unshift implementation is ugly 17:47
oh, wait, I wanted to look for shift.
dalek kudo/ng: e1fcd3c | (Solomon Foster)++ | src/core/Array.pm:
Quick version of .pop which seems to work, and a very mysteriously broken pop proto.
17:48
colomon I always get those two mixed up.
17:52 mofino joined, jl_2 joined, [particle] joined, mj41 joined, estrai joined, romanhunt joined
colomon moritz_: huh. maybe it's proto with an array argument that's the problem? now I'm getting it with end: our proto sub end(@array) { @array.end; } 17:53
(it eq "Null PMC" blah blah blah)
and it seems like I might have had the same problem with reverse last night as well. 17:54
17:55 lambdabot left
colomon ng: sub hello(@a) { say @a.perl }; hello(1...10); 17:56
pugs_svn r29301 | pmurias++ | [viv] hack to handle postcircumfix ops
r29301 | [mildew] more porting to current STD
p6eval ng 779654: Confused at line 1, near "hello(1..."␤current instr.: 'perl6;HLL;Grammar;panic' pc 519 (src/stage0/HLL-s0.pir:336)␤
17:56 cotto left
colomon ng: sub hello(@a) { say @a.perl; }; my @array = 1...10; hello(@array); 17:56
p6eval ng 779654: Null PMC access in get_string()␤current instr.: 'perl6;Perl6Role;Str' pc -1 ((unknown file):-1)␤
colomon yeah baby, that's the bug.
where's jnthn when you need him? 17:57
17:57 IllvilJa joined 18:01 pmurias left 18:03 patspam1 left
dalek kudo/ng: 607a650 | (Solomon Foster)++ | src/core/Array.pm:
Quick version of .shift which seems to work, and a very mysteriously broken shift proto.
18:05
TimToady ng: say 1...10
p6eval ng 779654: 1␤No applicable candidates found to dispatch to for '&infix:<...>'␤current instr.: '_block14' pc 29 (EVAL_1:0)␤ 18:06
frettled Hmm, should it work with ellipsis instead? 18:07
That is, should it work with _both_ ellipsis and ...? 18:08
colomon ng: say (1...10).perl 18:10
p6eval ng 779654: (1, 2, 3, 4, 5, 6, 7, 8, 9, 10)␤
colomon ng: say (1...10)
p6eval ng 779654: 12345678910␤
colomon ng: say 1...10
p6eval ng 779654: 1␤No applicable candidates found to dispatch to for '&infix:<...>'␤current instr.: '_block14' pc 29 (EVAL_1:0)␤
colomon ??? 18:11
is that parsing as (say 1)...10 ?
std: say 1...10
p6eval std 29300: ok 00:01 106m␤
18:11 stephenlb joined
colomon std: (say 1)...10 18:11
p6eval std 29300: ok 00:01 104m␤ 18:12
colomon std: say (say 1).WHAT
p6eval std 29300: ok 00:01 104m␤
colomon ng: say (say 1).WHAT
p6eval ng 779654: 1␤Bool()␤
18:12 rgrau joined 18:13 jferrero left 18:14 Astoria` joined 18:15 payload joined 18:19 ShaneC joined
colomon TimToady: is that an ng bug or just a weird corner of Perl 6? 18:22
18:24 japhb left
moritz_ list infix is tighter than list prefix 18:24
so it's a ng bug
diakopter .u 20000 18:25
phenny diakopter: Sorry, no results for '20000'.
diakopter .u \u20000
phenny diakopter: Sorry, no results
colomon moritz_: quite possibly my bug, then.
diakopter .u "\u20000"
phenny diakopter: U+0022 U+005C U+0075 U+0032 U+0030 U+0030 U+0030 U+0030 U+0022
frettled I think we need a bugfix notation as well. 18:26
moritz_ bugfix notation?
frettled infix, outr 18:27
infix, outfix, postfix, prefix
and bugfix
moritz_ finally got it :-)
token infix:sym<...> { <sym> <O('%list_infix')> } # looks right to me
colomon what about the next line?
the next was in STD.pm, but I wasn't sure how to port it, and it seemed to work with just the list_infix one... 18:28
moritz_ that looks also right, but ng doesn't seem to have the list_prefix prec level
which would also explain the parse failure
18:28 riffraff joined
colomon hmmm.... 18:28
moritz_ unless that's supposed to be list_assignment 18:29
colomon ...this would be an excellent time for pmichaud or jnthn to wander by... 18:30
moritz_ ah yes, S03 lists infix:<=> as list prefix precdence
colomon STD.pm also has a list_assignment, though.
it's prec<i=> 18:31
okay, this is all way over my head. 18:32
moritz_ prec<i=> is item_assignment in ng :-) 18:34
colomon It's both in std.pm 18:35
item and list, I mean.
moritz_ ng: say 1, 2 Z 3, 4 18:36
p6eval ng 607a65: 12␤Could not find non-existent sub &infix:<Z>␤current instr.: '_block14' pc 29 (EVAL_1:0)␤
colomon Hmmm, Z is in the ng grammar... 18:38
moritz_ but not implemented, it seems
and it's the only other list infix in ng
colomon ng: sub infix:<Z>(@a, @b) { say @a.perl; say @b.perl; }; say 1, 2 Z 3, 4
p6eval ng 607a65: 12␤Null PMC access in get_string()␤current instr.: 'perl6;Perl6Role;Str' pc -1 ((unknown file):-1)␤
colomon oh, right. 18:39
moritz_ ng: multi sub infix:<Z>(@a, @b) { say @a.perl; say @b.perl; }; say 1, 2 Z 3, 4
p6eval ng 607a65: 12␤Null PMC access in get_string()␤current instr.: 'perl6;Perl6Role;Str' pc -1 ((unknown file):-1)␤
18:39 riffraff left
colomon I really thing @ arguments in subs are just completely broken in ng. 18:41
moritz_ ng: multi sub infix:<Z>(*@a, *@b) { say @a.perl; say @b.perl; }; say 1, 2 Z 3, 4 18:42
p6eval ng 607a65: 12␤(1, 3, 4)␤Method 'perl' not found for invocant of class 'Undef'␤current instr.: 'perl6;List;_block7106' pc 257721 (src/gen/core.pir:28409)␤
colomon has finally stopped listening to Ron Hynes....
ooo, nice attempt! 18:43
18:43 thowe joined
colomon wherefore comes the 12? 18:44
moritz_ (say 1, 2) Z ... 18:45
colomon then why 1, 3, 4? 18:53
18:54 literal is now known as Hinrik
moritz_ because *@a gets all the arguments 18:54
1 is the return value from say
colomon aha!
moritz_ and 3, 4 come from the RHS of Z
colomon moritz_++
moritz_ rakudo: (say 4).perl 18:55
18:55 Hinrik is now known as literal
p6eval rakudo 7ef386: 4␤ 18:55
moritz_ rakudo: say (say 4).perl
p6eval rakudo 7ef386: 4␤Bool::True␤
18:58 literal left, payload1 joined, literal joined 18:59 payload left
colomon moritz_: does this suggestion a solution to you? 19:01
moritz_ is 'fix the parser' a solution? :-) 19:04
I think of myself as being good with regexes, but whenever I touch a parser it blows up 19:06
colomon moritz_: well, it's a bit better plan than my plan to beg jnthn and/or pmichaud to fix it... 19:07
but it could definitely use some more details.
pmichaud hello 19:08
TimToady good timing
or bad...
pmichaud sees his nick highlighted several times in the backscroll....
PerlJam colomon: now that you've summoned the pmichaud, get him to fix whatever it is.
What needs fixing anyway?
oh, Z 19:09
colomon PerlJam: most recently, the operator precedence for list infix operators.
moritz_ TimToady: don't think you'll get away easily :-) I see that S03 lists infix:<=> among "list prefix" precedence, but STD.p has both "list prefix" and "list assignment"
colomon Also, @ arguments seem to be broken in ng.
pmichaud infix:<=> is special.
moritz_ (and ng only has list_assignment, not list_prefix) 19:10
pmichaud I suspect STD.pm is correcter here
TimToady STD is correct on its precedence to the right of =, but I'm less certain it's doing the right thing on the left 19:14
19:14 SmokeMachine joined
wayland76 ping bots :) 19:15
TimToady: That reminds me of "Asterix and the Great Divide" :) 19:16
TimToady it should probably reduce the left side at item assignment precedence always, but I suspect it's using the right-hand precedence to reduce the left
it should probably use the 'sub' substitute precedence mechanism that listops use
19:17 TimToady sets mode: +vvvv buubot dalek hugme iblechbot, TimToady sets mode: +vvv ilbot2 ilogger2 IRSeekBot, TimToady sets mode: +vvv lisppaste3 p6eval phenny, TimToady sets mode: +vvv pointme pugs_svn zaslon, romanhunt left, supernovus left
wayland76 Does that mean I should ping bots again? 19:18
TimToady I won't stop you. 19:19
19:28 orafu left
pmichaud ng: multi sub infix:<Z>($a, $b) { say $a.perl; say $b.perl; }; say 1,2 Z 3,4; 19:30
p6eval ng 607a65: 12␤1␤(3, 4)␤
thowe is wondering what he needs to be aware of to handle the UTF-8 databases he has with Perl 6
pmichaud looks right to me.
moritz_ rakudo: say 1, 2 Z 3, 4 19:31
p6eval rakudo 7ef386: 1324␤
pmichaud rakudo is wrong there, then.
moritz_ disagrees with pmichaud
pmichaud STD appears to parse say 1, 2 Z 3, 4 as (say 1,2) Z 3,4 19:32
TimToady if so, STD is wrong
pmichaud (if I'm reading the output correctly)
moritz_ list infix precedence is tighter than list prefix, according to S03
pmichaud argument lists only go down to %list_infix precedence, though
STD.pm:3399 19:33
| <EXPR(item %list_infix)> {{
TimToady yes, it looks like STD is wrong
pmichaud ah, then that's why ng is wrong :)
TimToady not sure why yet 19:34
pmichaud well, infix:<Z> is %list_infix, and the EXPR line in arglist says to stop parsing when reaching a %list_infix operator
19:35 japhb joined, supernovus joined
diakopter imagines another operator-precedence-parser layer for list_prefix... 19:36
TimToady yeah, probably lt vs le confusion
pmichaud what is EXPR(item %list_infix) supposed to mean?
does it mean stop on a %list_infix operator, or stop on any operator that is looser than %list_infix ? 19:37
TimToady currently STD uses le, which probably means that should be %list_prefix instead
pmichaud so, stop on any operator that is %list_prefix or below
wfm
TimToady yes 19:38
tweaked STD.pmc to list_prefix and it parses correctly 19:39
pmichaud makes the corresponding tweak to ng's grammar
colomon \o/
19:41 tann1 joined 19:44 iblechbot left
pmichaud pushed. 19:47
dalek kudo/ng: dc293ee | pmichaud++ | src/Perl6/Grammar.pm:
Update precedence of arglist parsing to %list_prefix (to match STD.pm update).
19:49
moritz_ ng's spectest is... noisy 19:53
colomon pmichaud: It appears slurpy array arguments work in ng, while non-slurpy ones fail.
say 1...10 19:54
12345678910
\o/
19:54 SmokeMachine left
pugs_svn r29302 | lwall++ | [STD] off-by-fencepost in limiting precedence inside list prefix, @::('#perl6')>>.++ 19:54
pmichaud colomon: example ?
colomon ng: sub hello(@a) { say @a.perl; }; my @array = 1...10; hello(@array);
p6eval ng 607a65: Null PMC access in get_string()␤current instr.: 'perl6;Perl6Role;Str' pc -1 ((unknown file):-1)␤
pmichaud ng: sub hello(@a) { say 'yes'; }; my @array = 1,2,3; hello(@array); 19:55
p6eval ng 607a65: Null PMC access in get_string()␤current instr.: 'perl6;Perl6Role;Str' pc -1 ((unknown file):-1)␤
pmichaud ng: my @array = 1,2,3; say @array ~~ Positional;
p6eval ng 607a65: Null PMC access in get_string()␤current instr.: 'perl6;Perl6Role;Str' pc -1 ((unknown file):-1)␤ 19:56
pmichaud *that's* the problem.
colomon ah.
pmichaud it doesn't recognize Positional
PerlJam it's all jnthn's fault! ;)
pmichaud actually, it's pmichaud's fault
(as usual)
just haven't gotten around to restoring positional roles for array-like objects yet
colomon Is it a nasty piece of work? I've found a good bit of LHF that could be claimed if that were fixed... 19:57
PerlJam
.oO(There's a bunch of low hanging fruit just on the other side of this fence...)
19:58
pmichaud I'm not sure what the state of roles in general is at the moment
colomon wonders if saying jnthn's name three times in a row would make him appear... 19:59
TimToady phone 20:00
colomon perhaps the right question to ask is if there is a quick cheat?
pmichaud is Positional even defined yet in ng ?
colomon builtins/Positional.pir 20:01
tann1 how close is ng to becoming master? 20:02
moritz_ it's still quite a bit away
20:02 payload1 left
colomon ng: my @array = 1,2,3; say @array ~~ Array 20:04
p6eval ng 607a65: 1␤
moritz_ ng: my @array = 1,2,3; say @array ~~ Positional 20:05
p6eval ng 607a65: Null PMC access in get_string()␤current instr.: 'perl6;Perl6Role;Str' pc -1 ((unknown file):-1)␤
colomon This would be handy information if there actually were a straightforward call to ~~ Positional in the code... 20:07
I'm looking at bind.c, and it looks tantalizingly comprehensible, but I still can't quite see what is going on.... 20:11
moritz_ it's not a bind problem, but a type check/roles problem, I think 20:12
20:18 mariano__ joined 20:19 gabiruh_ joined
pmichaud say Positional.WHAT 20:19
ng: say Positional.WHAT
20:19 mariano__ left
p6eval ng dc293e: ( no output ) 20:19
pmichaud ng: say ~Positional
p6eval ng dc293e: Null PMC access in get_string()␤current instr.: 'perl6;Perl6Role;Str' pc -1 ((unknown file):-1)␤
pmichaud rakudo: say ~Positional
p6eval rakudo 7ef386: Positional()␤
20:19 mariano__ joined, gabiruh left
pmichaud the problem is probably that List is not yet defined as "does Positional" 20:20
20:20 literal_ joined
moritz_ rakudo: say Int ~~ Positional 20:20
p6eval rakudo 7ef386: 0␤
moritz_ rakudo: say Array ~~ Positional 20:21
pmichaud rakudo: say List ~~ Positional
p6eval rakudo 7ef386: 1␤
20:21 KyleHa joined, estrai left, jl_2 left, [particle] left, mj41 left
pmichaud ng: say List ~~ Positional 20:21
p6eval ng dc293e: Null PMC access in get_string()␤current instr.: 'perl6;Perl6Role;Str' pc -1 ((unknown file):-1)␤
20:21 literal left
moritz_ ng: say Int ~~ Positional 20:21
p6eval ng dc293e: Null PMC access in get_string()␤current instr.: 'perl6;Perl6Role;Str' pc -1 ((unknown file):-1)␤
pmichaud the problem is either an imcomplete implementation of Positional or that List doesn't have that role composed into it
or both
*incomplete 20:22
moritz_ right; that allone would explain why Int ~~ Positional dies
20:24 bluescreen left 20:26 jaldhar left 20:30 jaldhar joined 20:32 viklund_ joined, viklund left 20:33 jl_2 joined, mj41 joined, SmokeMachine joined 20:34 [particle] joined 20:35 kwan joined 20:39 payload joined 20:41 kwan left 20:44 _jaldhar joined 20:45 mariano__ left 20:46 pmurias joined 20:52 iblechbot joined 20:56 jaldhar left 21:02 pmurias_ joined 21:04 crythias joined, romanhunt_ joined, nihiliad left
romanhunt_ hello all 21:04
21:04 nihiliad joined 21:05 aindilis joined
pmurias_ romanhunt_: hi 21:05
21:05 SmokeMachine left
moritz_ hi 21:05
21:06 lambdabot joined
diakopter pmurias_: to answer your question (re: sprixel), it lives locally for the time being. I'm still tinkering with different VMs/architectures. 21:07
pmurias_ what VM are you considering?
* VMs
21:10 pmurias_ left
diakopter pmurias: you still there? 21:11
still V8 && mono/clr 21:12
leaning more toward mono/clr
21:13 pmurias left
moritz_ what happened to your PAST translater for NQP-rx? 21:13
diakopter it's still "there", and it passed all the nqp-rx test suite up until the OO/class & Regex stuff.. 21:14
the same translator/interpreter model will operate much faster in C#... 21:15
colomon is salivating at the thought of Perl 6 running on mono / .net...
diakopter ... but I got ever grossed out at the thought of having to emulate parrot's OO system so that it could support a direct lift-shift/port from nqp-rx 21:16
just too many peculiarities (not necesarily bad ones)
21:17 jferrero joined
diakopter so now it seems it's angling toward being an nqp-rx implementation itself 21:17
not a self-hosting one, mind you 21:18
(being an interpreter) :)
21:18 dbrock joined
romanhunt_ could someone please tell me what :<is>($arg, $list) syntax means 21:19
?
as in multi func_name:<is>($arg1, $arg2)
does it verify the argument signature for the multi function? 21:20
colomon where is that from?
diakopter the regex/nfa engine is now primitive-feature complete... it supports Perl (as opposed to POSIX) semantics on *, +, ?, (and their non-greedy editions), |, char ranges, full unicode, lookahead, lookbehind ... what remains is capturing groups, and I guess character classes? 21:21
oh, and ^, $ (are done/working) 21:22
it's about 20x slower than Perl 5 for success-only paths, but scads faster for paths requiring lots of backtracking
21:23 meppl left
diakopter the engine is definitely optimized for backtracking 21:23
for very large inputs, it will need a fallback mode for handling unicode (that doesn't presplit the input string), since currently it splits the input string into int32[]) 21:24
but only 20x slower than Perl 5 on success paths isn't unbearable, imho 21:26
moritz_ romanhunt_: looks like some kind of adverb, but a bit strange to me 21:28
diakopter after capturing groups, I was going to work on the LTM modes. I tried to get to the LTM modes two (and one) days ago, but .. kept finding issues with the primitives implementation. Now I have confidence in it... 21:29
jnthn/pmurias/masak/pmichaud: you may be interested to learn that I tried an explicit stack (Stack<StateNode>), but storing the Invoker on each StateNode is much more efficient than using a Stack.. 21:32
also it will make the LTM mode much simpler to implement
(.Invoker)
21:38 estrai joined 21:41 perlygatekeeper left, xenoterracide left 21:42 xenoterracide joined 21:45 pmurias joined, Wolfman2000 left 21:49 am0c left 21:57 romanhunt_ left 22:00 PZt joined 22:05 crythias left 22:06 takadonet left 22:07 hercynium joined
sjohnson afternoon dudes 22:11
colomon o/ 22:12
sjohnson hi colomon 22:13
colomon 'ello
jnthn colomon: (roles) still working on 'em. 22:16
diakopter jnthn: howdy
jnthn colomon: Didn't quite get to doing does checks properly yet.
Planned to today but ended up fighting a screwed SQL Server installation instead.
diakopter: hi 22:17
colomon jnthn: you've seen the Positional stuff WRT @ arguments in the backlog?
jnthn colomon: Yeah
colomon: I suspect that's not *quite* working yet.
diakopter: I see you're making nice progress on regexy stuff in .Net. That's cool.
diakopter whee 22:18
jnthn diakopter: I plan to work on object model stuff in .Net
I guess we can then meet in the middle somehow. :-)
diakopter: ng is priority for now though.
diakopter jnthn: plz plz plz don't try to make Perl 6 types bijective with .NET types...?
jnthn diakopter: No, I won't.
diakopter HAPPY 22:19
jnthn diakopter: I've already sketched out a bit what I may want.
diakopter b/c DLR sux0r that way
jnthn While figuring out metamodel bits overall.
I suspect we'll need changes to the way Rakudo on Parrot handles it all.
(not just for multi backends, just generally anyway)
So I don't expect "emulating all of Parrot" is how it'll wind up. 22:20
It's just a bit much to do all of those bits while doing ng too.
My aim is that ClassHOW and RoleHOW and so on will be in nqp. 22:21
diakopter probably what I'll end up with is a simple actor/message/responder system 22:22
(all dispatchers in nqp code)
jnthn Yeah...not sure about the dispatchers yet. 22:23
I strongly suspect the Rakudo ones will stay in c. 22:24
*c
wtf...C
:)
anyways, now I've got a fixed sql server...I'll go and do the one hour task I set out to do early afternoon. :-/ 22:25
diakopter l8r
22:34 KyleHa left 22:37 meppl joined 22:53 literal_ is now known as literal 22:55 payload left 22:59 stephenlb left, romanhunt joined
wayland76 I hate writing Perl 5 code that really needs a macro :) 22:59
romanhunt hello all 23:00
wayland76 hi! 23:01
romanhunt quick question. 'Perl6Object' from the parrot global symbol table.... how does it translate to perl 6? is it the protoobject that all perl 6 objects decend from? 23:02
23:03 zibri joined, crythias joined
romanhunt it is often called as 'perl6meta = get_hll_global('Perl6Object', ... 23:03
in PIR 23:04
I am new to OOP by the way ... to make matters worse
wayland76 pmichaud? jnthn?
23:05 _jaldhar is now known as jaldhar
romanhunt I am just working on converting some Q::PIR blocks to perl6 but I need to know more about how the Parrot global symbol table abstracts to the compiler 23:08
23:09 xenoterracide left
romanhunt learning by immersion! If it works for natural language it *should* work for perl :) 23:09
23:09 xenoterracide joined
carlin rakudo: my @a=((1|1),'',[],1,{1},1,{},/1/,/1/,(1=>1),/1/,'',{1},{},{1},/1/,'');my @b=(0,2,0,2,0,1,1,1,2,1,2,1,0,1,1,1,0,1,0,1,1,1,2,1,1,1,0,2,3,2,1,1,2,1);for map {lc .WHAT},@a {print .substr(@b.shift,@b.shift)}; 23:15
p6eval rakudo 7ef386: ( no output )
carlin oh come on :(
23:17 payload joined 23:19 iblechbot left
colomon romanhunt: what are you trying to convert? 23:22
23:24 Astoria` left 23:25 tarbo2 left
romanhunt to be honest I am just trying to understand what I am reading moreso than actually convert anything *sorry for delays I am afk and back again* 23:26
23:27 stephenlb joined
colomon I guess my thought here is that Perl6Object is a Parrot detail, not a Perl 6 one. 23:29
The root object as far as Perl 6 is concerned is Mu.
jnthn References to Perl6Object should be gone in ng.
In master, Perl6Object is the internal name for object 23:30
erm, Object
If you're talking about it in Perl 6 code, write Object.
diakopter which which?
:)
colomon jnthn: Was Object not renamed to Mu in master? 23:31
jnthn colomon: No
colomon: We just did the equivalent of Mu := Object :)
colomon Ah.
romanhunt awesome thx all 23:35
so I checked out master as specified in Frew's workflow and did a `git co -b ng --track' 23:36
git said my branch was changed but when I tried a git pull I was told I was up tp date 23:37
am I syncing to ng correctly?
colomon romanhunt: I'm not good with the git, but there's a simple test.
cat build/PARROT_REVISION
If you've got an up-to-date ng, it should be 42920. 23:38
romanhunt eerg im at 42559
colomon yeah, that's probably still master, then.
supernovus romanhunt: that's the rev from master
colomon git branch 23:39
?
(as a command to run, I mean)
romanhunt CFW88430WY1B0:rakudo romanhunt$ git branch 23:41
master
* ng
[particle] git fetch origin ng 23:42
romanhunt could it be because I forked my cp?
thowe does Larry Wall ever actually show up here?
colomon thowe: pretty much every day.
romanhunt: you're on a forked Rakudo?
romanhunt yeah thats what the suggested workflow linked on rakudo.org said to do 23:43
[particle] git checkout ng
thowe that's pretty cool of him. what's his nick?
[particle] TimToady
23:43 nihiliad left
romanhunt [particle] it says I am already on ng 23:43
23:43 nihiliad joined
romanhunt the fork must be the issue I bet 23:44
[particle] yeah, that's what git branch says, too
colomon do you have a fork on github? 23:46
supernovus hmm, if you do a git clone git://github.com/rakudo/rakudo.git then type 'git branch' it only shows 'master'. If you do 'git checkout -b ng --track' it creates a new branch called 'ng' which is identical to master. I
jnthn I think you need to do something like git checkout remote/ng/ first or some such...
And then a command like the above. 23:47
I forget exactly...it takes a little fiddling. :-)
colomon jnthn: gack. we need to document this somewhere so we don't do this every time someone tries to switch to ng. 23:48
[particle] which remote branch is your local ng branch tracking?
supernovus okay, 'git checkout origin/ng -b ng --track' properly switches to the remote 'ng' branch.
[particle] supernovus++
23:52 avar left 23:53 avar joined