»ö« | perl6.org/ | evalbot usage: 'perl6: say 3;' or rakudo:, alpha:, pugs:, std:, or /msg p6eval perl6: ... | irclog: irc.pugscode.org/ | UTF-8 is our friend! Set by moritz_ on 25 June 2010. |
|||
[particle] | cxreg: do like they do on the cpan | 00:00 | |
cxreg | um | ||
00:00
ashleydev left
|
|||
[particle] | make those tests optional | 00:00 | |
oha | isn't supposed that a *dbi will be tested using a mock driver? | ||
(just asking for curiosity) | 00:01 | ||
cxreg | who knows. MiniDBI ships with a functioning mysql and Pg, and some not-quite-as-functional others such as CSV | ||
[particle] | oha: we're in the infancy stage here, so we don't really have standards yet | ||
make it work, then make it good. | |||
oha | got it | ||
00:02
Patterner left,
Psyche^ is now known as Patterner,
dotan joined
|
|||
oha | does gather and infinite list works on rakudo? | 00:03 | |
colomon | oha: yes | 00:04 | |
with caveats, but yes | |||
oha | then i can't understand something | 00:05 | |
colomon | rakudo: say (1, 4, 16 ... *).munch(20).perl | ||
p6eval | rakudo f196e8: OUTPUT«(1, 4, 16, 64, 256, 1024, 4096, 16384, 65536, 262144, 1048576, 4194304, 16777216, 67108864, 268435456, 1073741824, 4294967296, 17179869184, 68719476736, 274877906944)» | ||
oha | lemme narrow it a bit. what happen if i use a infinite list with a junction? | ||
colomon | something like any(1...*) ? | ||
oha | yep, for example | ||
will be hang? | |||
colomon | that's what I would expect. | 00:06 | |
but I'm not the most knowledgeable about junctions. | |||
jnthn | Yeah, junctions + infinite lists don't to together. | ||
*GO | |||
[particle] | junctions are not lazy | 00:07 | |
colomon | basically, you don't want to use infinite lists anywhere that you suspect might need to know all the elements in the list. | ||
00:07
kensanata joined
|
|||
jnthn | Right. Junctions want to know all of the possibilities. When you consider junction auto-threading, things get even more fun. | 00:08 | |
Of course, we could say "ah, the auto-threading doesn't really call anything at that point, it just will if you use that junction", but I'm not sure that's just not delaying an innevitable explosion until further down the line in most junction use cases. | |||
oha | i've tried with rakudo a prime generator using gather/take | 00:09 | |
jnthn | Plus it's a bit too surprising. | ||
oha | but i was not able to make it work lazy | ||
jnthn | oha: If you're using any with an infinite list, it won't work. | ||
oha | nope | ||
that's what i expected too | |||
jnthn | oha: There's ways to do it, just not that way. :-) | ||
colomon | hmmm.... if you're talking about checking a number against a lazy sequence of primes to see if it is prime, what you need is a way to know when to stop looking at that sequence of primes. Presumably that's pretty easy if they are ordered.... | 00:11 | |
lue is looking at the Go language, and still likes Perl6 :) | 00:13 | ||
oha | colomon, probably i must work on this a bit more | ||
colomon | actually, that sounds like a really interesting test for Rakudo. | ||
oha | lemme check something more | ||
colomon is staring at mandelbrot and thinking that if series was just expanded to use .abs as an ending condition on a series, the inner loop could just be a series..... | 00:15 | ||
supernovus | Projects added, documentation added, pull request sent. | ||
colomon | supernovus++ | 00:16 | |
rakudo: say ({ @_.unpolar(@_) } ... { $_.abs > 10 }).perl | 00:17 | ||
p6eval | rakudo f196e8: ( no output ) | ||
00:18
PythonPup joined
|
|||
colomon | ah, we still don't allow Code for the RHS. :| | 00:18 | |
rakudo: say ({ @_.unpolar(@_) } ... 10).perl | |||
p6eval | rakudo f196e8: ( no output ) | 00:19 | |
colomon | rakudo: say ({ @_.unpolar(@_) } ... 10).munch(10).perl | ||
p6eval | rakudo f196e8: OUTPUT«(Complex.new(0, 0), Complex.new(0, 0), Complex.new(0, 0), Complex.new(0, 0), Complex.new(0, 0), Complex.new(0, 0), Complex.new(0, 0), Complex.new(0, 0), Complex.new(0, 0), Complex.new(0, 0))» | ||
colomon | rakudo: say (-> *@a { @a.unpolar(@a) } ... 10).munch(10).perl | 00:20 | |
p6eval | rakudo f196e8: OUTPUT«(Complex.new(0, 0), Complex.new(0, 0), Complex.new(0, 0), Complex.new(0, 0), Complex.new(0, 0), Complex.new(0, 0), Complex.new(0, 0), Complex.new(0, 0), Complex.new(0, 0), Complex.new(0, 0))» | ||
colomon | huh | ||
PythonPup | Howdy. I came here from an article talking about screencasts for perl6. Does anyone have a pointer to a non-flash version of the videos, so I can watch them? | 00:21 | |
supernovus | I added SCGI to the pls list too, it was already on the proto list. I'm not sure if the demand for SCGI is enough to warrant adding it to R* though (unless lots of people are going to be doing web apps, in which case SCGI is much, much faster than CGI... and simpler than FastCGI (which is already on my TODO list)) | 00:22 | |
oha | pastebin.com/J4TmtjXL | ||
i expected this should not loop | |||
jnthn | PythonPup: Hi! szabgab who created them hangs out here, but I think it may be sleep time where he is now. | ||
colomon | oha: you can't do @primes = an infinite list | 00:23 | |
PythonPup | I'll try later, then. Thank you. | ||
jnthn | Welcome. | ||
colomon | with very tight exceptions where it might work. | ||
you want my @primes := gather ... etc | |||
oha | oh! | ||
colomon | still don't know if that will work with the additional internal reference to @primes. | 00:24 | |
supernovus | Anyway, DateTime::Utils is definitely my big suggestion for a bundled module with R* :-) | ||
jnthn | phenny: tell szabgab PythonPup is looking for non-Flash versions of your Perl 6 screencasts; I know you mentioned some AVI version or something to. Is there a link to them somewhere? | ||
phenny | jnthn: I'll pass that on when szabgab is around. | ||
oha | colomon, great, using := it works | ||
colomon | oha: actually ... wait, really? | ||
I would have thought you would get an infinite loop anyway, because you're ... ah, I see. | 00:25 | ||
maybe. | |||
jnthn | colomon: Sounds feasible that it would... | ||
oha | yep | ||
jnthn | colomon: Since you're bound the thingy containing the gather iterator to that variable. | ||
colomon: And can then look at the re-ified part. | |||
colomon: = may well be a bit too eager for it to work. | 00:26 | ||
[Coke] runs parrot profiling tool against "say 3*2". this could take a while. :P | |||
colomon | it's the "for @primes" bit that has me tied in knots | ||
00:26
_macdaddy left
|
|||
jnthn | [Coke]: You'll mostly measure startup time, but that is interesting too :-) | 00:26 | |
[Coke]: Esp because every time we share off that, we shave off some hundreds times that for the test suite run :-) | 00:27 | ||
[Coke] | jnthn: it's too slow to measure anything else on this laptop. :P | ||
colomon | gotta go, being kicked out of library. ;) | ||
00:27
colomon left
|
|||
jnthn | .oO( They ban Perl 6 hacking in libraries now? ) |
00:28 | |
[Coke] | it's subversive. | ||
jnthn | But we switched to git! | 00:29 | |
oha | lol :) | ||
oh btw [Coke] i think i've found the heisenbug on the Match | |||
i've replied to the ticket, is it enough? | 00:30 | ||
dotan | rakudo: 'foo' ~~ m/:i OO/; | 00:31 | |
How can I do a case-insensitive test for a string in a variable? /$a/ works, /:i string/ works, /:i $a/ doesn't work :( | |||
p6eval | rakudo f196e8: ( no output ) | ||
[Coke] | oha - that should get your reply into RT, yes. | 00:32 | |
supernovus | Anyway, have a good ('day','night','morning','evening').pick(1); | ||
oha | [Coke], ok. | ||
00:32
supernovus left
|
|||
[Coke] | dober... den? vecher? whichever. | 00:32 | |
jnthn | [Coke]: Which slavic language were you aiming for? :-) | 00:33 | |
dotan: /:i $a/ should work, I believe - somebody filed a bug ticket about that recently: rt.perl.org/rt3/Ticket/Display.html?id=76500 | |||
dotan: But it didn't get fixed yet. | 00:34 | ||
[Coke] | jnthn: bulgarian. | ||
jnthn | [Coke]: Can't help you there then. :-( | 00:35 | |
[Coke] | I cannot remember which is evening, or day, or which. | ||
jnthn | den will be day | ||
[Coke] | I think leka nosht is good night. | ||
00:36
azert0x left
|
|||
jnthn | I've studied a decent bit of one West Slavic language, amd currently studying an East Slavic language, but never got to do any of the South Slavic ones just yet. | 00:36 | |
Would like to some day though. :) | |||
mberends | jnthn: o/ | 00:37 | |
jnthn | mberends!! :D | ||
mberends: How's things? | |||
00:38
colomon joined
|
|||
mberends | dobro jutro! Fine here in London, just had a dinner with much wine :-] <- happy glazed grinning look | 00:38 | |
colomon | you have a dobro? # en.wikipedia.org/wiki/Dobro | 00:39 | |
jnthn | uh-oh... | ||
oh, phew, it's something quite innocent :-) | |||
colomon: I assume they are good. ;-) | 00:40 | ||
mberends: That sounds nice :-) | |||
mberends: I've just taken care of a Krusovice and am now onto a Trashy Blonde. :-) | |||
colomon | jnthn: "Dobro means good in any language" was apparently an old company slogan | 00:41 | |
jnthn | colomon: nice | 00:42 | |
colomon: Oooh! The founders were actually Slovak! | 00:43 | ||
00:43
cdarroch left
|
|||
colomon | yeah, I didn't know that until I read the wikipedia article just now. | 00:43 | |
jnthn | Wow. :-) | ||
slovakia++ | |||
00:44
dotan left
|
|||
colomon | I just knew a dobro was a cool resonator guitar, I know a guy from Toronto who plays one. (In addition to playing guitar, mandolin, 4-string banjo, fiddle, etc.) | 00:44 | |
mberends | colomon, you've culturally enlightened us :) | 00:45 | |
00:48
kensanata left
|
|||
mberends | with the Zavolaj patch from cxreg++, NativeCall can now reference any Parrot internal function by not specifying an external library. I'm sure that's quite significant, but I'm racking my woozy brane for actual examples to demonstrate this capability (apart from fork, which started the fun). Any ideas? | 00:49 | |
jnthn | mberends: Segfaults! | ||
mberends shoots jnthn with a champagne cork | |||
jnthn | mberends: I struggle to think of a good practical use off-hand. I mean, most Parrot functionality is already exposed through PMCs etc. | 00:50 | |
mberends | indeed | 00:51 | |
jnthn | mberends: I wonder if you could use the embedding interface to embed Rakudo in itself. | ||
;-) | |||
mberends | pass that to the Department of Useless Information | 00:52 | |
jnthn | mberends: Maybe call the libc backtrace function so you can write a module to print a C stack backtrace at any point in a Perl 6 program. :-) | ||
That might even be occasionally useful. :-) | 00:53 | ||
mberends | that might actually work.. hmm, profiling hooks? | ||
jnthn | I think that's mostly done by running under a profiling runcore. | 00:54 | |
01:05
whiteknight left
01:08
kkrev left
01:10
kkrev joined,
dolmen left
|
|||
[Coke] | P6Object::HOW is the biggest sink on startup. | 01:16 | |
and that's 3 lines of PIR that I don't see how to speedup. | |||
jnthn | [Coke]: Whoa...really? | 01:17 | |
[Coke] | if I'm reading this right. | ||
ah, that could be inclusive. | 01:18 | ||
01:18
xabbu42 left
|
|||
[Coke] | ah, much better. =-) | 01:18 | |
jnthn | Yeah, but it shouldn't be calling anything, just returning something. | ||
[Coke] | also, the profiler could be stupidly broken. =-) | 01:19 | |
oha | my @a := gather { ... @a[1..$x] ... }; # this works :) | 01:25 | |
01:25
drakej joined
01:27
oha left
|
|||
[Coke] | non inclusive, looks like Perl6::Cool.(but no function name given) | 01:27 | |
jnthn | huh, weird | 01:28 | |
(the lack of name) | 01:29 | ||
rakudo: Cool.^methods(:local).perl.say | 01:30 | ||
p6eval | rakudo f196e8: OUTPUT«[{ ... }, { ... }, { ... }, { ... }, { ... }, { ... }, { ... }, { ... }, { ... }, { ... }, { ... }, { ... }, { ... }, { ... }, { ... }, { ... }, { ... }, { ... }, { ... }, { ... }, { ... }, { ... }, { ... }, { ... }, { ... }, { ... }, { ... }, { ... }, { ... }, { ... }, { ... | ||
..}, { … | |||
jnthn | rakudo: Cool.^methods(:local).join(', ').say | ||
p6eval | rakudo f196e8: OUTPUT«unpolar, floor, from-radians, asech, ord, capitalize, round, pred, split, match, acosh, words, lc, p5chop, to-radians, sinh, cotan, acotan, atan2, trim, asec, trim-leading, cotanh, ucfirst, sech, tan, rand, cos, truncate, fmt, trans, sqrt, asin, cosh, succ, subst, sign, | ||
..Numeric, ch… | |||
jnthn | [Coke]: It's kinda tricky to guess what's going on there. | 01:33 | |
[Coke]: Oh...the loadinit blocks are all anonymous | 01:34 | ||
[Coke]: How dominant is it? | |||
[Coke]: Also, is antying in ClassHOW quite high in the list? | |||
01:34
drakej left
01:35
timbunce joined
|
|||
[Coke] | perl6cool and perl6any dominate. | 01:38 | |
01:39
jferrero left
|
|||
[Coke] | then parrot post compiler;pir | 01:39 | |
then 3 anon _blocks. | |||
drops off after that. | |||
jnthn | [Coke]: Inclusive or exclusive? | 01:40 | |
sorear | std: { package Foo { }; }; { package Foo { }; } | 01:42 | |
p6eval | std 31795: OUTPUT«===SORRY!===Illegal redeclaration of symbol 'GLOBAL::<Foo>' (from line 1) at /tmp/MLFseHD1cM line 1:------> { package Foo { }; }; { package Foo ⏏{ }; }Check failedFAILED 00:01 114m» | ||
jnthn | [Coke]: Also, any chance you could mail me the file you're feeding into kcachegrind? | ||
01:42
TiMBuS joined
|
|||
jnthn | [Coke]: I'm a bit tired to do anything with this data tonight, but I'd like to browse it some more tomorrow. | 01:42 | |
sorear | phenny: ask TimToady - STD.pm6:5623-5624 contains a check for $name ~~ /^\&/ && $name eq ''. When is this true? | 01:43 | |
phenny | sorear: I'll pass that on when TimToady is around. | ||
01:44
timbunce left
|
|||
[Coke] | jnthn: I can show you how I created it, if you want. ^_^ | 01:45 | |
jnthn | [Coke]: Feel free to send that too - I have done so some time ago, but forgot the steps. :-) | 01:46 | |
(Thus why I have KCachegrind set up here already :-)) | |||
(Was some fun on Win32 :-)) | |||
[Coke] | jnthn: I'll put it on feather: | 01:50 | |
┗━$━∫ scp parrot.out.2312.bz2 [email@hidden.address] | |||
jnthn | [Coke]: thanks | ||
jnthn -> rest | 01:58 | ||
colomon | how do you say to stderr? | 02:00 | |
rakudo: $ERR.say "hello" | 02:01 | ||
p6eval | rakudo f196e8: OUTPUT«===SORRY!===Confused at line 22, near "$ERR.say \""» | ||
colomon | rakudo: $*ERR.say "hello" | ||
p6eval | rakudo f196e8: OUTPUT«===SORRY!===Confused at line 22, near "$*ERR.say "» | ||
colomon | hey, that one was right. :\ | 02:02 | |
rakudo: note "Hello" | |||
p6eval | rakudo f196e8: OUTPUT«Hello» | ||
02:02
xinming joined
02:05
xinming_ left
|
|||
lue | wello o/ | 02:08 | |
02:12
jaldhar joined
|
|||
colomon | \o | 02:13 | |
sorear | Hi! | ||
02:19
kkrev left
02:20
Eevee left,
kkrev joined
02:21
ab5tract left
|
|||
colomon | rakudo: say 90302 / 5151 | 02:29 | |
p6eval | rakudo f196e8: OUTPUT«17.530964861192» | ||
02:35
Eevee joined
|
|||
colomon | pmichaud: ping? | 02:41 | |
pmichaud: my current analysis suggests that the very straightforward for loop structure in mandelbrot is taking most of the execution time. | 02:44 | ||
much more time than the complex math | |||
dalek | ecza: 1e1b8ee | sorear++ | (4 files): Make classes into a kind of package |
||
ecza: 52f6d38 | sorear++ | (2 files): Implement "grammar" |
|||
sorear | colomon: I can absolutely beleive that | 02:46 | |
colomon | sorear: I'm glad one of us can believe it. | 02:47 | |
I'm trying translating it to a "loop" loop right now. | |||
yeah, wow. | 02:48 | ||
total time with math, 10.5s | 02:49 | ||
with just loop, 10s | |||
er, that's a "for ^17" loop; | |||
sorear | lists are the first thing in niecza that actually needed to be microoptimized | ||
colomon | with "loop ($i = 0; $i < 17; $i++)" 2.75s | ||
sorear | they're suprisingly heaviweight | 02:50 | |
colomon | with no loop at all, 1.5s | ||
sorear | and they're EVERYWHERE | ||
colomon | yeah | ||
dalek | ecza: 231d396 | sorear++ | (2 files): Unbreak GLOBAL:: before Scalar was defined. Oops. |
02:51 | |
colomon | the idea that rewriting to replace "for ^$total_iterations" with "loop ($i = 0; $i < $total_iterations; $i++)" might be such a massive improvement makes me kind of sad. | ||
sorear | well, we can do that replacement automatically | 02:52 | |
colomon | as far as I know, there aren't any optimizations of that nature in Rakudo yet. | 02:53 | |
personally, I'd hope to drastically improve list performance first. | |||
then make that transformation automatic. :) | |||
02:58
snarkyboojum left
02:59
synth joined
|
|||
TiMBuS | rakudo: Any := 1; say 'ok?' | 03:00 | |
p6eval | rakudo f196e8: OUTPUT«ok?» | ||
TiMBuS | 3: | ||
sorear | niecza: Any := 1; say 'ok?' | 03:01 | |
p6eval | niecza 4aabaad: OUTPUT«can't open CORE_ast.store: No such file or directory at CompilerDriver.pm line 40» | ||
03:01
[synth] left
|
|||
TiMBuS | aa, baad | 03:01 | |
sorear | uh, moritz is running 'make' after pulls right? | 03:02 | |
colomon | phenny: tell pmichaud that I knocked 60% off the mandelbrot-color.pl execution time by switching from "for ^$total_iterations" with "loop ($i = 0; $i < $total_iterations; $i++)" in the inner loop. Complex math appears to have relatively little effect on the overall execution time for this script. | 03:05 | |
phenny | colomon: I'll pass that on when pmichaud is around. | ||
TiMBuS | i can't really follow the code in infix:<:=>. pir::isnull(pir::getprop__PsP('type', $target)) seems to always be null | ||
03:06
justatheory joined
|
|||
TiMBuS | or always not null? well, its not entering the if loop | 03:06 | |
if block* i think my brain is broken | |||
03:09
meppl joined,
kkrev left
03:12
_jaldhar joined,
jaldhar left
03:16
envi^home joined
03:20
kkrev joined
|
|||
TiMBuS | rakudo: my Int $a; $a := 'string'; $a.say | 03:23 | |
p6eval | rakudo f196e8: OUTPUT«You cannot bind a variable of type Str() to a variable of type Int(). in 'infix:<:=>' at line 678:CORE.setting in main program body at line 22:/tmp/7Wqu_Yvxhx» | ||
03:24
cruftius_minimus joined
|
|||
TiMBuS | rakudo: my @a; @a.WHAT.say | 03:25 | |
p6eval | rakudo f196e8: OUTPUT«Array()» | ||
03:30
cruftius_minimus left
03:39
gbacon left
03:40
kkrev left
03:43
kkrev joined
|
|||
dalek | ecza: 1521ceb | sorear++ | (3 files): Implement sub is export |
03:46 | |
ecza: 64fc764 | sorear++ | (2 files): Factor out ok and plan into Test.pm6 |
|||
sorear | Why is module_name a proto regex? | 03:48 | |
03:55
DemoFreak left
03:57
DemoFreak joined
03:59
kkrev left,
meppel joined
04:00
kkrev joined
04:03
meppl left
04:07
justatheory left
04:12
meppel is now known as meppl
|
|||
TimToady | sorear: we used to have a variant form to recognize 'use v6-alpha' after that was no longer stadard | 04:19 | |
phenny | TimToady: 01:43Z <sorear> ask TimToady - STD.pm6:5623-5624 contains a check for $name ~~ /^\&/ && $name eq ''. When is this true? | ||
sorear | ah. | ||
TimToady | and my line 5623 doesn't look like that | ||
04:20
kkrev left
04:21
kkrev joined
04:22
kjjkvnf joined
|
|||
sorear | mine looks like elsif $name ~~ /^\&/ { self.sorry("Illegal redeclaration of routine '$sid'$loc") unless $name eq ''; | 04:24 | |
TimToady | yeah, found it | 04:26 | |
sorear | what line is that for you? | ||
TimToady | the previous routine had s/\&// there | 04:27 | |
04:27
agentzh joined
|
|||
pugssvn | r31796 | lwall++ | [STD] various little cleanups | 04:27 | |
04:30
kkrev left
04:31
_jaldhar is now known as jaldhar
04:37
kkrev joined
04:38
kjjkvnf left
|
|||
pmichaud | good evening, #perl6 | 04:43 | |
phenny | pmichaud: 03:05Z <colomon> tell pmichaud that I knocked 60% off the mandelbrot-color.pl execution time by switching from "for ^$total_iterations" with "loop ($i = 0; $i < $total_iterations; $i++)" in the inner loop. Complex math appears to have relatively little effect on the overall execution time for this script. | ||
pmichaud | ah, since my next plan was to update 'for', that information is timely. :) | 04:44 | |
colomon: ping | |||
04:45
kkrev left
04:47
kkrev joined
04:50
astrojp left
|
|||
sorear | uh oh, what is pmichaud going to do to for | 04:52 | |
04:52
kkrev left
|
|||
pmichaud | fix it so it uses .map (as it's supposed to) | 04:54 | |
TimToady | does .map still use introspection rather than partial binding? | ||
pmichaud | yes. | ||
sorear | partial binding? | ||
pmichaud | I know we need to fix that...but we'll likely look at it as part of jnthn++'s other refactors happening in the next 3-4 months | 04:55 | |
04:55
kkrev joined
|
|||
pmichaud | it'll be much cleaner to do then. | 04:55 | |
TimToady | sorear: when you bind to sig such as for map -> $a, $b, just let the binder count the args are turn the new arg cursor | ||
s/are/and/ | 04:56 | ||
/turn/return/ | |||
04:56
ashleydev joined
|
|||
TimToady | it's part of the reason for the switch to immutable cursors | 04:57 | |
sorear | What's the advantage of the New Way? | 04:58 | |
pmichaud | better mapping to multis | 04:59 | |
simply using .count isn't sufficient to know how many args to use when using .map with a multi | 05:00 | ||
05:01
ashleydev left
|
|||
TimToady | and just a basic feeling that introspection should be used only as a last resort | 05:02 | |
05:03
mafs joined
|
|||
TimToady | signature matching is just another form of pattern matching, really | 05:06 | |
sorear | Is it possible to do partial binding from Perl 6, or is it an implementation hook thingie? | 05:09 | |
pmichaud | iirc, part of the reason for defining it was to make it possible to do in Perl 6 | 05:11 | |
otherwise we have a key operation that isn't expressible in Perl 6 :) | |||
jnthn, moritz, masak, colomon (and others): I'd like to hold the freeze on PARROT_REVISION through the R* release. Let me know if it looks like we won't be able to do this. | 05:12 | ||
05:13
justatheory joined,
ktne left
05:16
kkrev left
05:18
justatheory left
05:21
kkrev joined
|
|||
dalek | ecza: 99b7b7e | sorear++ | (5 files): Implement use statements |
05:31 | |
ecza: 3402517 | sorear++ | (2 files): Build and use Test.dll as part of the test system |
|||
05:34
kkrev left
05:35
kkrev joined
05:41
kkrev left
05:43
kkrev joined
|
|||
sorear | niecza *could* run spectests now, but all the ones I'm looking at use features that aren't going to be implemented anytime soon | 05:45 | |
most importantly 'eval' | |||
sorear decides it's time to flesh out the regex compiler | 05:47 | ||
pmichaud | sorear: I feel your pain. I didn't like the fact that the spectests relied so much on eval() either. | ||
05:48
kkrev left
|
|||
pmichaud | you might be able to get by with having things like dies_ok simply skip the test altogether. | 05:48 | |
05:49
agentzh left
05:50
kkrev joined
|
|||
cxreg | pmichaud: you still trying to get parrot fixes in? | 05:52 | |
looks like it might come down to the wire on pg 9.0 vs r* | 05:54 | ||
maybe not, they're saying mid-august | 05:55 | ||
pmichaud | cxreg: I'm planning that R* will use the 2.6.0 release of Parrot | 05:56 | |
so, if a fix is not in already, it's not likely to make it for R*, unless it's Very Important | |||
but as long as it makes it into Parrot 2.7.0 it should be able to go into R*'s august release | 05:57 | ||
sorear | for some reason I thought R* was trimonthly | ||
pmichaud | well, ideally I'd like it to be trimonthly, but I think realistically we'll have too many early bugfixes and changes for the first few months to do that | 05:59 | |
so we'll start out monthly, and then as the fix flood dissipates we'll slow down to bimonthly or trimonthly | |||
if R* has a relatively easy way to say "update my compiler to a later version" then we might be able to not do monthly releases early on. (and R* should probably have that feature :) | 06:01 | ||
TiMBuS | how do you tell what 'type' of scalar was passed to a function. referring to the sigil type ($, @, or %) | 06:02 | |
not the actual type of the variable | 06:03 | ||
pmichaud | TiMBuS: I don't quite understand the question. | ||
06:03
kkrev left
06:04
kkrev joined
|
|||
TiMBuS | pmichaud, well I'm trying to fix &infix:<:=> so it properly checks the 'type' of the sigil for assignment | 06:05 | |
@a := 'foo' should be disallowed for example (according to moritz_) | 06:06 | ||
pmichaud | the variable already knows its type | ||
you don't have to check the sigil at runtime | 06:07 | ||
it's already been placed into the container's 'type' property | |||
rakudo: my @a := 'foo'; # testing | |||
p6eval | rakudo f196e8: ( no output ) | ||
pmichaud | rakudo: my @a := 'foo'; say @a; # testing | ||
p6eval | rakudo f196e8: OUTPUT«foo» | ||
pmichaud | rakudo: my @a; say pir::getprop__PsP('type', @a); | 06:08 | |
p6eval | rakudo f196e8: OUTPUT«Null PMC access in type() in main program body at line 22:/tmp/ZVhnYAokbM» | ||
TiMBuS | yeah but @a implies 'does Positional' | ||
pmichaud | hmmmmmm | ||
right | |||
TiMBuS | my Array @a | ||
cxreg | i'm having some pretty epic fail trying to execute NCI functions from plparrot so far :D | ||
TiMBuS | however, | ||
pmichaud | so it's supposed to already have a Positional 'type' property | ||
so, that's a bug in the code that sets up @a, not the code that does ':=' | |||
TiMBuS | that always returns null unless you set it | 06:09 | |
pmichaud | TiMBuS: and it should've been set by the declaration. | ||
TiMBuS | rakudo: my Array @a; say pir::getprop__PsP('type', @a); | ||
ah | |||
p6eval | rakudo f196e8: OUTPUT«Null PMC access in type() in main program body at line 22:/tmp/FR2KGiPTmY» | ||
06:09
kkrev left
|
|||
TiMBuS | well that usually works :/ | 06:09 | |
maybe i did it wrong | |||
pmichaud | well, my Array @a means "Positional of Array" | 06:10 | |
anyway, the problem is in the @a declaration, not := | |||
TiMBuS | how about this one: | 06:11 | |
rakudo: Any := 1; say 'ok' | |||
p6eval | rakudo f196e8: OUTPUT«ok» | ||
06:11
kkrev joined
|
|||
pmichaud | for that one, we need to have a property that distinguishes containers from values, I suspect | 06:12 | |
and := should check for that property | |||
there's also been speculation of a "bindrw" property, that indicates whether something can be rebound or no. That would also solve that problem. | |||
06:15
sjohnson left
|
|||
TiMBuS | that's a little bit over my head now. I don't know how/where rakudo sets up its pmcs (actions.pm?) | 06:16 | |
06:18
snarkyboojum joined
|
|||
pmichaud | yes, actions.pm | 06:18 | |
jnthn++ would be able to say exactly where the type information gets attached to the declared variable | 06:19 | ||
oh, for "Any := 1" we just need to decide how to mark that something is bindable. | |||
TiMBuS | if something is readonly can you bind it to something? if not you could check for rw | 06:21 | |
pmichaud | there's two forms of readonly-ness | 06:22 | |
there's the readonly-ness of the container for assignment | |||
and readonly-ness for binding | |||
they're separate operations | |||
sub foo($x is rw) { ... } # one can assign to $x and bind $x | 06:23 | ||
sub foo($x) { ... } # one can rebind $x but cannot assign to it | |||
TiMBuS | ahh its pointer const all over again | ||
szabgab | I have not been following it, is there any news about a windows installer for Rakudo * that would also include Padre ? | 06:24 | |
phenny | szabgab: 00:24Z <jnthn> tell szabgab PythonPup is looking for non-Flash versions of your Perl 6 screencasts; I know you mentioned some AVI version or something to. Is there a link to them somewhere? | ||
pmichaud | szabgab: I haven't heard anything like that yet. | 06:25 | |
szabgab | I saw it somewhere discussed | ||
but maybe I just dreamt :) | |||
pmichaud | then I don't know. That sounds like it would be very useful. | ||
could padre be installed via 'proto'? | |||
or is that just asking too much? | 06:26 | ||
06:26
kkrev left
|
|||
PythonPup | szabgab, Yes, I would like to watch the screencasts, but I can't install Flash. Are they available in another form? | 06:27 | |
szabgab | pmichaud: I think the better approach would be to bundle rakudo with stand alone padre | ||
pugssvn | r31797 | pmichaud++ | [t/spec]: Fix test bug in next/last for .map, unfudge test. | 06:28 | |
PythonPup | pmichaud has been talking up perl6 locally and I'd like to see where it is at now. | ||
06:28
kkrev joined
|
|||
szabgab | PythonPup: I have bot ogv and avi files on my disk | 06:28 | |
pmichaud | szabgab: probably. But I think that means we'd need separate Windows and *nix Rakudo Star distributions. | ||
(which we might indeed need -- just not sure we'll be ready for that by Thursday) | |||
szabgab | PythonPup: I can upload them to my server and link to them as well | ||
06:29
sjohnson joined
|
|||
PythonPup | szabgab, ogv is almost always my first choice. That would be nice. Thanks. | 06:29 | |
szabgab | pmichaud: I am not sure how you would NOT need? After all parrot is binary there | ||
dalek | kudo: 369f1e0 | pmichaud++ | src/builtins/control.pir: Refactor &return, &next, &last, &redo. |
06:30 | |
kudo: da9910a | pmichaud++ | src/builtins/MapIter.pir: Add loop control handling to MapIter. |
|||
kudo: 27f7a5b | pmichaud++ | src/builtins/MapIter.pir: Some next/last bugfixes for .map . |
|||
pmichaud | ...parrot is binary? | 06:31 | |
szabgab | btw have any people came to the channel in response to my latest screencast? | ||
pmichaud | I don't understand. | ||
szabgab | Rakudo * would include Parrot, right? | ||
compiled to the local OS | 06:32 | ||
so that's already different | |||
pmichaud | I think it's going to include the Parrot sources | ||
szabgab | oh so you are only talking about source code distro | ||
pmichaud | I don't think it will include binaries. If we do that, we'd have to build a different Rakudo * for each platform, and we're not yet at all close to being set up to do that. | ||
it's a distro in the same sense that Perl 5.12 is a distro | |||
szabgab | ok, I got it now | 06:33 | |
pmichaud | I expect that we'll create a source distro, and then individual platforms will take R* and build binaries using their native package managers | ||
in the Windows case, it should be possible to bundle Padre as well at that point | |||
eventually we may be building the binaries directly... but probably not for this first release. | 06:34 | ||
(I don't think anyone on the current team has much expertise in that anyway... so I'm hoping we'll attract more contributors there.) | |||
also, we can hand out commitbits to the R* repo more freely (i.e., without CLAs) | |||
sorear | TiMBuS: Don't worry about getting := exactly right | 06:35 | |
TiMBuS: it's not going to be possible to have := right until the variable refactor | |||
so just try to do the best approximation | |||
szabgab | I just ping CSJewell on #padre asking for a bundle of Padre and Rakudo * but he might be sleeping at this hour :) | 06:36 | |
PythonPup | szabgab, I came to the channel as a result of an article about your screencast that was mentioned on Hacker News. | ||
szabgab | PythonPup: link? | ||
TiMBuS | sorear, ok then. I'll see if I can at least add the 'type' property to vars at declaration time. that'll probably be 'good enough' | 06:39 | |
PythonPup | article 190 currently points to szabgab.com/perl6.html#screencast | ||
It is described as Perl6's screencasts | 06:40 | ||
moritz_ | good morning | 06:44 | |
sorear | good morning moritz_ | 06:45 | |
06:49
kkrev left
06:51
kkrev joined
|
|||
szabgab | PythonPup: the first two entries were uploaded: szabgab.com/perl6.html please let me know if they work for you | 06:59 | |
07:00
gfx joined
|
|||
PythonPup | I am playing the first one now. It looks good. Thank you. | 07:02 | |
dalek | p-rx: 11e10ac | moritz++ | src/Regex/Cursor.pir: Fixt RT #75484 - random incomplete Match objects oha++ |
07:04 | |
p-rx: f8bc67e | moritz++ | src/stage0/ (4 files): update bootstrap files with fix for RT #75484 |
|||
pmichaud | moritz: in backscroll I left a note that I'm wanting to hold the PARROT_REVISION freeze until after R*. Does the commit above pose a problem for that? | 07:06 | |
moritz_ | pmichaud: no, we can wait until after R* with that | 07:07 | |
pmichaud | okay, good. | ||
moritz_ | it's something that re-surfaces every few months, and I'm glad when it's fixed, but it's not that important | ||
oha++ | |||
I've added the bootstrap files to the parrot 2.6 release locally to test it | 07:08 | ||
testing parrot now | |||
07:10
kkrev left
|
|||
sorear just had an extremely evil idea for niecza | 07:11 | ||
method WHICH() { (state %){self} //= (state $)++ } | |||
the CLR doesn't give you a unique integer for each object, but it does give you hash tables. | 07:12 | ||
07:15
Raynes joined
07:17
kkrev joined
07:31
kkrev left
07:34
kkrev joined
07:43
kkrev left
07:45
ManateeLazyCat joined
07:47
eternaleye left
07:55
envi_home joined
07:56
envi^home left
07:58
ManateeLazyCat left
|
|||
pmichaud | std: say Nil 3, 4 | 08:03 | |
p6eval | std 31797: OUTPUT«===SORRY!===Two terms in a row at /tmp/iE8VvV7qii line 1:------> say Nil ⏏3, 4 expecting any of: bracketed infix infix or meta-infix statement modifier loopParse failedFAILED 00:01 116m» | ||
szabgab | rakudo: say 2 ++ 3 | ||
p6eval | rakudo 27f7a5: OUTPUT«5» | ||
szabgab | rakudo: say 2 +++ 3 | ||
p6eval | rakudo 27f7a5: OUTPUT«Cannot modify readonly value in '&infix:<=>' at line 1 in main program body at line 22:/tmp/yCQtOUWo72» | ||
szabgab | rakudo: say 2 ++ + 3 | 08:04 | |
p6eval | rakudo 27f7a5: OUTPUT«5» | ||
szabgab | rakudo: say 2 ++ ++ + 3 | ||
p6eval | rakudo 27f7a5: OUTPUT«Cannot modify readonly value in '&infix:<=>' at line 1 in main program body at line 22:/tmp/09Dnu6H6i1» | ||
sorear | niecza: say 2 ++ + 3 | 08:05 | |
p6eval | niecza 64fc764: OUTPUT«===SORRY!===Postfix found where infix expected (omit whitespace?) at /tmp/CGOrMgwOdD line 1:------> say 2 ⏏++ + 3 expecting any of: bracketed infix infix infix or meta-infixParse failed» | ||
szabgab | rakudo: 2++3 | 08:06 | |
p6eval | rakudo 27f7a5: OUTPUT«===SORRY!===Confused at line 22, near "2++3"» | ||
moritz_ | std: 2++3 | ||
p6eval | std 31797: OUTPUT«===SORRY!===Two terms in a row at /tmp/j7foCAKQw7 line 1:------> 2++⏏3 expecting any of: POST bracketed infix infix or meta-infix postfix postfix_prefix_meta_operator statement modifier loopParse | ||
..failedFAILED 00:01 115m» | |||
08:15
oha_ joined,
oha_ is now known as oha
|
|||
dalek | ecza: 5799a21 | sorear++ | Niecza/Actions.pm: Implement &foo syntax |
08:22 | |
ecza: e71aae9 | sorear++ | (2 files): Implement exportation of packageoids |
|||
ecza: 41d943c | sorear++ | (3 files): Turn the regex engine into a loadable module |
|||
ecza: 6d24c27 | sorear++ | Niecza/Actions.pm: Fix classes always turning into Any() when exported |
|||
sorear | stefan@stefans:~/niecza$ ./niecza_eval -e 'use RegexEngine; say "abcaaab" ~~ /ca*b/' | 08:23 | |
1 | |||
soon there will be a few more features... | |||
pmichaud | ....just catching up on twitter posts... wow. | 08:27 | |
Lots of retweets of "Perl Creator Hints at Imminent Perl 6 Release" :) | |||
08:28
envi_home is now known as envi^home
|
|||
sorear | "hints"? | 08:29 | |
Aren't hints supposed to be subtle? | 08:30 | ||
pmichaud | no, not necessarily. | 08:31 | |
my wife has learned that her hints to me have to be non-subtle or I'm likely to miss them altogether :) | |||
sorear | pugs: say $*IN.lines.[0] | ||
p6eval | pugs: OUTPUT«*** No such method in class Scalar: "&lines" at /tmp/x2wxfeR7iP line 1, column 5 - line 2, column 1» | ||
sorear | pugs: say lines | 08:32 | |
p6eval | pugs: OUTPUT«*** No such subroutine: "&lines" at /tmp/53DNf3hFzM line 1, column 5 - line 2, column 1» | ||
sorear | pugs: say $*IN.^methods(:local) | ||
p6eval | pugs: OUTPUT«*** No such method in class Class: "&methods" at /tmp/wI5weXskgp line 1, column 5 - line 2, column 1» | ||
sorear | pugs: say slurp | ||
p6eval | pugs: OUTPUT«***  Unexpected end of input at /tmp/ZCMJxGF_GQ line 2, column 1» | ||
sorear out | |||
08:33
envi_home2 joined
08:34
cibs joined
|
|||
oha | i expect that gather { .. } return an object, is there a way to refer to it inside gather { ... } ? | 08:34 | |
something like "self" | 08:35 | ||
pmichaud | gather returns a List | ||
dalek | ecza: b417e13 | sorear++ | RegexEngine.pm6: Implement ? and + in regexes |
||
pmichaud | I don't think there's a way to refer to it from inside the gather. | ||
oha | actually if i @list := gather { ... @list ... } # works | ||
cognominal | rakudo: sub a($a) { $a = 1 }; a(1) | 08:36 | |
p6eval | rakudo 27f7a5: OUTPUT«Cannot modify readonly value in '&infix:<=>' at line 1 in 'a' at line 22:/tmp/k4o2wB9hR7 in main program body at line 22:/tmp/k4o2wB9hR7» | ||
08:36
envi^home left
08:38
envi^home joined
|
|||
cognominal | rakudo: sub a(int $a) { $a = 1 }; a(1) | 08:39 | |
p6eval | rakudo 27f7a5: OUTPUT«===SORRY!===Invalid typename in parameter declaration at line 22, near " $a) { $a "» | ||
08:40
envi_home3 joined
08:41
envi_home2 left
|
|||
cognominal | rakudo: sub a($a is copy) { $a = 1 }; a(1) | 08:41 | |
p6eval | rakudo 27f7a5: ( no output ) | ||
szabgab | rakudo: state $x = 2; | 08:42 | |
p6eval | rakudo 27f7a5: OUTPUT«===SORRY!==="state" not yet implemented at line 22, near "= 2;"» | ||
08:42
envi_home3 is now known as envi_home
|
|||
cognominal | hum, with value argument not implemented, that will make signature so verbose :( | 08:43 | |
08:44
envi^home left
|
|||
cognominal | sub a(int $a) { $a = 1 }; a(1) # would be nice to implement it as to accept an Int and check it for non borderline values (NaN, undefined and such) | 08:45 | |
rakudo: sub b ($a is rw) {}; sub a($a) { b($a) }; a(1) | 08:47 | ||
p6eval | rakudo 27f7a5: ( no output ) | ||
08:54
kensanata joined
|
|||
colomon | pmichaud: pong | 08:58 | |
08:59
JimmyZ joined
|
|||
JimmyZ | hello , does Perl 6 support something like __call/__get/__set in PHP? | 09:02 | |
09:03
am0c left
|
|||
JimmyZ | just think it's useful in OO | 09:04 | |
09:04
kensanata left
|
|||
mberends | cognominal: bonjour, how's Silver Bullet coming along? | 09:05 | |
pugssvn | r31798 | pmichaud++ | [t/spec]: Refudge a test in wrap.t that fails after switching 'for' to use '.map'. | 09:11 | |
cognominal | Hi mberends. Hitting many problems with pattern matching and the like... Maybe I am too obsessed with experimenting with every Perl 6 feature than getting a deliverable :( | 09:12 | |
09:12
pmurias joined
|
|||
mberends | cognominal: addicted to 'le crack syntaxique' ? | 09:13 | |
cognominal | :) | 09:14 | |
dalek | kudo: f16df61 | pmichaud++ | src/ (2 files): Refactor Block.arity and Block.count; we now compute and cache it as |
||
kudo: 7d181b9 | pmichaud++ | src/builtins/Signature.pir: Fix forgotten goto after counting slurpy param. |
|||
kudo: b0e743b | pmichaud++ | src/Perl6/Actions.pm: Switch statement_control:sym<for> to use ".map" instead of :pasttype<for>. of continuity and compatibility until sink is more fully in place (coming next). 9c4a3c8 | moritz++ | src/Perl6/ (2 files): allow compilation of :g(1) in s/// partially reverts 4195e9a26e1841c80b999303a81d4706f456e2bb. Patch mostly by jnthn++ |
|||
09:14
jferrero joined
09:25
dual left
09:29
isBEKaml joined,
dual joined
09:37
JimmyZ left
09:38
gfx left
|
|||
szabgab | how can I export a subroutine from a module to the main namespace? | 09:41 | |
found it, never mind :) | 09:43 | ||
pmurias | szabgab: you shouldn't be doing that | 09:56 | |
colomon | pmurias: why? | 09:57 | |
pmurias | maybe i misunderstood the question | 09:58 | |
but you should import stuff to lexical scopes | 09:59 | ||
pugssvn | r31799 | pmichaud++ | [t/spec]: Remove tests that incorrectly treat Nil as a function. | ||
pmurias | szabgab: you want to do something like export stuff from Foo::Bar::Internals to Foo::Bar | ||
szabgab | so instead of automatically export it I should import? | ||
for now I am writing a sample implementation of the Mython language | 10:00 | ||
my $answer ← 42; | |||
say 2 ≠ 3; | |||
say 2↑2; | |||
stuff like this | |||
so I'd like to have as little disturbance as possible , and declare the infix operators in Mython.pm | 10:01 | ||
is there already a way to extend perl 6? | |||
pmurias | you mean add new operators or extend the grammar? | 10:02 | |
10:02
xinming left
|
|||
pmichaud | iiuc, the standard mechanism for exporting things is simply to mark them as "is export". | 10:02 | |
szabgab | oh I see there is a Mython language :( | ||
f ← λ x: x↑2 | |||
a ← f(2) | |||
ideally I' be able to write code like the above | 10:03 | ||
pmurias | pmichaud: but things are exported to the lexical scope not the main namespace by default | ||
pmichaud | pmurias: correct | ||
colomon | szabgab: as far as I know, exporting operators from modules does not work properly yet. | ||
szabgab | it worked for me :) | ||
colomon | at least, I had major issues with it when I tried it last week. | ||
pmichaud | pmurias: ...depending on what you mean by "main namespace" :-) | ||
szabgab | with is export | ||
10:04
xinming joined
|
|||
pmichaud | it wouldn't surprise me if it appears to work in some cases and not in others | 10:04 | |
(in Rakudo) | |||
jnthn and I did some revisions of operator overloading late last week, though | |||
(maybe even early this week -- I'm not sure I remember when.... checking log) | 10:05 | ||
colomon | oooo. | ||
will try things again | |||
szabgab | let's hope it will work on the version I am using on monday for the presentation :) | ||
pmichaud | I know there's a problem that overloaded operators will "leak" out of the lexical scopes in which they're supposed to be. | ||
szabgab | jnthn: had some awesome example of sorting I think at BPW | ||
colomon | pmichaud: turns out the biggest concern with the mandelbrot tests isn't the speed, it's the crashing. :( | ||
szabgab | but I have not written it down it started with something like multi sub f([]) { } I think | 10:06 | |
anyone with such cool examples? | |||
pmichaud | colomon: I'm curious to know if mandelbrot runs any faster/slower using 'for' and the fixes I just pushed this evening. | ||
szabgab: en.wikipedia.org/wiki/Perl_6#Quicksort | 10:07 | ||
colomon | pmichaud: yow, that's a major overhaul! | ||
give me a moment and I'll do a side-by-side comparison on my linux box. | 10:08 | ||
szabgab | pmichaud: thanks | ||
pmichaud | colomon: that's fine. it could be either faster or slower -- I don't know which. | ||
szabgab | he said wiki but I was searching in the perl 6 wiki | ||
pmichaud | it does eliminate the use of the Parrot iterator, though | ||
szabgab | and could not find it | ||
pmichaud | szabgab: I found it with "perl 6 quicksort" on google :) | 10:09 | |
colomon: more importantly, it starts to bring 'for' to follow the true specification by making it the same as 'map' | |||
colomon | pmichaud: right | 10:10 | |
pmichaud | next I plan to work on sink context a bit, so that 'for' at the end of a statement list isn't evaluated eagerly. | 10:11 | |
and by "next" I mean "after going to sleep and awakening again". :-) It's 03h12 here now... | 10:12 | ||
colomon | pmichaud: it's going to be a bit before I have results, have to rebuild rakudo to yesterday then re-run. | 10:13 | |
pmichaud | colomon: no problem -- I'll read the backscroll later | 10:14 | |
and I'm more curious than "need to know". I suspect the loop() form is still a bit faster, although at some point we need to find a way to make that not be the case | |||
anyway, I'm falling asleep at the kbd here, so I'll bbiaw | 10:15 | ||
colomon | o/ | ||
10:20
pmurias left
10:27
wamba joined
10:31
jferrero left
10:34
wamba left
10:43
envi_home left,
envi^home joined
|
|||
colomon | pmichaud: took 8m25s pre-new-for, 8m35s with latest Rakudo | 10:43 | |
that's on my 64-bit Linux box with lots of memory, versus the "loop" version taken 4m30s on my slower MacBook Pro. | 10:45 | ||
s/taken/which takes/ | 10:49 | ||
10:53
envi_home2 joined
10:57
envi^home left,
whiteknight joined
11:06
envi^home joined
11:10
envi_home2 left
11:25
xabbu42 joined
11:36
envi_home2 joined
|
|||
colomon | pmichaud: hmmm, just tried Vector again to check on operators and modules. Seems that the new dot product infix:<⋅> operator exports correctly, but infix:<+> for Vector does not. | 11:38 | |
11:39
envi^home left
11:40
envi^home joined
11:42
envi_home2 left
|
|||
kudo: 3f03fec | moritz++ | src/core/Match.pm: preserve .ast in Match.new. Implement eqv for matches |
|||
pugssvn | r31800 | colomon++ | Add test for exporting a multi infix:<+> operator. | 12:02 | |
r31801 | colomon++ | [t/spec] Update the count on import-subs.t. | 12:03 | ||
colomon | moritz_: you out there? | 12:04 | |
moritz_ | yes | ||
colomon | I need another brain on this. | 12:05 | |
.oO(or possibly, I need a brain on this) |
|||
moritz_ | on what? | ||
moritz_ lacks context | |||
colomon | I'm trying to Vector.pm working on current Rakudo. | ||
It compiles fine. | 12:06 | ||
but when I try to import it and its infix:<+>, I get Can't take numeric value for object of type Vector | |||
ie, it ignores infix:<+>(Vector, Vector) in favor of infix:<+>(Any, Any) | |||
moritz_ | did you check the candidate list, with Mu + Mu? | 12:07 | |
colomon | I figured it was something ... | ||
wait, what? just say Mu + Mu, or... ? | |||
moritz_ | rakudo: Mu + Mu | ||
p6eval | rakudo b0e743: OUTPUT«No applicable candidates found to dispatch to for 'infix:<+>'. Available candidates are::(Any $x = { ... }):(Int $a, Int $b):(Num $a, Num $b):(Rat $a, Rat $b):(Rat $a, Int $b):(Int $a, Rat $b):(Complex $a, Complex $b):(Date $d, Int $x):(Int $x, Date $d):(Real $a, | ||
..Real $b)… | |||
moritz_ | that gives you the candidate list | ||
in the error message | 12:08 | ||
colomon | (what I started to say is that I thought it just hadn't been implemented, so I added a test for it to the spectests -- and that test works.) | ||
moritz_ | jnthn++ for it | ||
colomon | jnthn++ moritz_++ | ||
moritz_ | last I looked, the test suite only had tests for importing new operators, not importing additional multis | ||
and multis weren't exported last I looked, either | |||
colomon | moritz_: yes, as I said, I just added a test for that, and the test works. | 12:09 | |
moritz_ | "huh" | ||
colomon | see Exportops.pm and imported-subs.t | ||
moritz_ | colomon: did you try it with and without precompilation? | ||
colomon | yeah, exactly. | ||
yes (with and without) | |||
I've been running without for the last bit here, just because it's easier on my "think up something crazy and try it" debugging cycle | 12:10 | ||
szabgab | huh, what is this Parrot rewrite thing and how does it affect Rakudo? | ||
blog-en.jochen.hayek.name/2010/07/p...o-far.html | |||
moritz_ | szabgab: the idea is to make JIT compilation easier by introducing a micro code ("Lorito") | 12:11 | |
colomon | moritz_: Vector + is definitely not in the applicable candidates | ||
moritz_ | colomon: thought so | ||
colomon | oh, that's interesting | 12:12 | |
moritz_ | colomon: you haz no 'is export' on infix:<+> in Vector.pm | ||
colomon | I just tried the Mu+Mu trick in imported-subs.t, and it doesn't see any + OTHER than the one I just defined. | ||
moritz_ | then add a (probably failing) test for the ordinary + | 12:13 | |
colomon | already on it. | ||
as for Vector, here's my current signature: | 12:14 | ||
multi sub infix:<+> (Vector $a, Vector $b where { $a.Dim == $b.Dim }) is export(:DEFAULT) | |||
agh, so in test suite version, we can only see special infix:<+> | 12:15 | ||
in Vector version, we see everything but the special infix:<+> | |||
seems like there's a strong clue there somewhere. | |||
12:15
JimmyZ joined
|
|||
moritz_ | looks like rt.perl.org/rt3/Ticket/Display.html?id=74104 | 12:15 | |
colomon | could it have something to do with "module Exportops;" ? | 12:16 | |
moritz_ | maybe | ||
colomon | weird | ||
JimmyZ | hello | 12:17 | |
moritz_ | maybe try to put the operators into the class (weird, I know), and add an 'is export' to them | ||
12:17
envi_home2 joined
12:19
envi^home left
|
|||
pugssvn | r31802 | colomon++ | [t/spec] Add additional test for importing infix:<+> which is very fudged. | 12:19 | |
colomon | moritz_++: if I put it inside the class, it is visible, and everything else is hidden. | 12:20 | |
moritz_ | so if you do a 'use Foo', it only imports from module or class Foo | 12:21 | |
which kinda makes sense | |||
JimmyZ | class Foo { }; class Bar{ method a() { } };, I want to call Foo.(), and I want Foo object can automatically call Bar.a() when there is no a() method in Foo. How can I do it? | ||
err, I want to call Foo.a() | |||
moritz_ | rakudo: class Foo { has $.x handles <a> = ::Bar }; class Bar { method a() { say "in Bar.a" } }; Foo.new.a | 12:22 | |
p6eval | rakudo b0e743: OUTPUT«in Bar.a» | ||
moritz_ | JimmyZ: like that? | ||
12:23
patrickas joined
|
|||
szabgab | is the a 3rd part for < and lt operators similar to cmp to <=> and leg ? | 12:23 | |
moritz_ | szabgab: yes, it's called 'before' | ||
rakudo: say 'a' before 'b' | |||
p6eval | rakudo b0e743: OUTPUT«1» | ||
JimmyZ | moritz_: I am not sure, just like magic method __call in PHP, | 12:24 | |
szabgab | rakudo: 1 before '1' | ||
moritz_ | rakudo: say 2 before 10 | ||
p6eval | rakudo b0e743: ( no output ) | ||
rakudo b0e743: OUTPUT«1» | |||
szabgab | rakudo: 1 before 'a' | ||
12:24
felliott joined
|
|||
p6eval | rakudo b0e743: ( no output ) | 12:24 | |
szabgab | rakudo: say 1 before 'a' | ||
p6eval | rakudo b0e743: OUTPUT«1» | ||
moritz_ | rakudo: class Foo { method postcircumfix:<( )>() { Bar.a() } }; class Bar { method a() { say "in Bar.a" } }; Foo.new.a | ||
p6eval | rakudo b0e743: OUTPUT«Method 'a' not found for invocant of class 'Foo' in main program body at line 22:/tmp/VrkCNNqix8» | ||
moritz_ | rakudo: class Foo { method postcircumfix:<( )>() { Bar.a() } }; class Bar { method a() { say "in Bar.a" } }; Foo.() | ||
p6eval | rakudo b0e743: OUTPUT«Too many positional parameters passed; got 2 but expected 1 in 'Foo::postcircumfix:<( )>' at line 22:/tmp/jYcjBiGHqc in main program body at line 22:/tmp/jYcjBiGHqc» | 12:25 | |
szabgab | rakudo: say 1 after 'a' | ||
moritz_ | rakudo: class Foo { method postcircumfix:<( )>() { Bar.a() } }; class Bar { method a() { say "in Bar.a" } }; Foo.new().() | ||
p6eval | rakudo b0e743: OUTPUT«0» | ||
rakudo b0e743: OUTPUT«Too many positional parameters passed; got 2 but expected 1 in 'Foo::postcircumfix:<( )>' at line 22:/tmp/0qCobPTLHB in main program body at line 22:/tmp/0qCobPTLHB» | |||
12:25
envi^home joined
|
|||
moritz_ | rakudo: class Foo { method postcircumfix:<( )>(*@) { Bar.a() } }; class Bar { method a() { say "in Bar.a" } }; Foo.new().() | 12:25 | |
p6eval | rakudo b0e743: OUTPUT«Could not find sub &Bar in 'Foo::postcircumfix:<( )>' at line 22:/tmp/OBd8YzYCRk in main program body at line 22:/tmp/OBd8YzYCRk» | ||
moritz_ | rakudo: class Foo { method postcircumfix:<( )>(*@) { ::Bar.a() } }; class Bar { method a() { say "in Bar.a" } }; Foo.new().() | ||
p6eval | rakudo b0e743: OUTPUT«in Bar.a» | ||
moritz_ | JimmyZ: there you go | 12:26 | |
12:26
envi_home3 joined
|
|||
JimmyZ | now Bar has many methods, 100 now, and I want Foo can call they when there is not a such method in Foo. | 12:27 | |
err, them | |||
12:28
envi_home2 left
|
|||
moritz_ | JimmyZ: sounds like you want delegation with wild cards | 12:28 | |
oha | JimmyZ, why you do not: Foo is Bar? | ||
JimmyZ | and for some resean, I can't extends bar | ||
moritz_ | JimmyZ: look into t/spec/S12-attributes/delegation.t - Rakudo passes all the tests cases in there | 12:29 | |
JimmyZ | oha, so I can't is Bar | ||
moritz_: thanks, looking now | |||
12:30
envi^home left
|
|||
colomon | phenny: tell jnthn please look at the skipped test in S06-operator-overloading/imported-subs.t | 12:33 | |
phenny | colomon: I'll pass that on when jnthn is around. | ||
colomon | phenny: tell jnthn If you can fix that, I think we can get the core of Vector.pm back on-line pretty easily | ||
phenny | colomon: I'll pass that on when jnthn is around. | ||
12:35
envi_home3 is now known as envi_home
|
|||
JimmyZ | moritz_: thanks, that's what I want :) | 12:36 | |
moritz_ | JimmyZ: glad it helped | ||
12:36
rv2733 joined
12:37
rv2733 left
|
|||
JimmyZ | hehe | 12:37 | |
12:38
rv2733 joined,
JimmyZ left,
rv2733 left
12:39
patrickas left
|
|||
colomon | moritz_: thanks for your help | 12:40 | |
moritz_ | colomon: you're very welcome | ||
12:40
gbacon joined
|
|||
moritz_ | colomon++ # for adding the tests | 12:43 | |
rotty.yi.org/irclogs/freenode/%23sc...07-23/#e93 | 12:44 | ||
12:44
envi_home left
|
|||
moritz_ amused | 12:44 | ||
12:45
envi^home joined
|
|||
moritz_ | my $x = 'abcdefg'; $x ~~ s:p(2)/<.alpha>/X/; say $x | 12:45 | |
abXdefg | |||
(locally here) | 12:47 | ||
12:47
envi_home2 joined
|
|||
colomon | what is :p? | 12:47 | |
moritz_ | :pos | ||
isBEKaml | position, would be my guess. :) | ||
moritz_ | right | ||
colomon | oh, right. starting position for match. | 12:48 | |
moritz_++ | |||
moritz_ | also coming up: c/continue, p/pos, x, nth, and with a bit of luck 1st, 2nd, 3rd, 4th | ||
12:49
macroron joined
|
|||
isBEKaml | moritz_: I have seen TimToady++ occasionally use 2nd, 3rd and so on. Initially, I thought of them as IRC usage. Then I read them in the specs and was truly amazed :) | 12:50 | |
moritz_ | $ cat test.pl | ||
my $x = 'abcdefg'; $x ~~ s:2nd/<.alpha>/X/; say $x | |||
12:50
envi^home left
|
|||
moritz_ | $ ./perl6 test.pl | 12:50 | |
aXcdefg | |||
isBEKaml | moritz_++ !! | ||
moritz_ | "soon available in the compiler of your trust" or so :-) | 12:51 | |
isBEKaml | does s:nth work? | ||
moritz_ | yes | ||
isBEKaml | passing nth around like a param? | ||
moritz_ | s:nth(2) is the same as 2:2nd | ||
in fact you can also write s:4nd if you want to confuse people :-) | |||
waiting for a spectest | 12:52 | ||
isBEKaml | so you don't exactly look for adverbs. :) | ||
th, rd, st don't matter at all. :) | |||
moritz_ | well, they do, but they are aliases | ||
in general (\d+) <identifier> translates to :identifer($0) | 12:53 | ||
12:53
nimiezko joined
|
|||
moritz_ | :4foo copmplains about 'foo' not being a valid adverb on a substitution | 12:53 | |
isBEKaml | what would happen if i just enter s:1rd/foo/bar/ ? | ||
colomon | isBEKaml: it should work, I think | ||
moritz_ | same as s:nth(1)/foo7bar/ | ||
colomon | we're not going to grammar check your numeric postfix to make sure you got it right. | 12:54 | |
moritz_ | right | ||
isBEKaml | yes, that was my thinking. but it should be one of rd, st, th so as not to throw people off. ;) | ||
12:55
masonkramer joined
|
|||
moritz_ | right | 12:55 | |
isBEKaml | or to throw off readers of code. (pranky) | ||
moritz_ | st, nd, rd, th and nth are aliases | ||
isBEKaml | I see. | ||
moritz_ | now that jnthn++ has fixed argument passing adverbs, this patch was almost trivial | 12:56 | |
let's hope that it doesn't throw up any weird errors | |||
isBEKaml | right, jnthn++ | ||
moritz_ | his patch wasn't terribly complicated either, I just didn't have the idea to do it that way | 12:57 | |
isBEKaml | even as I can't frequent IRC very much these days. I was pleasantly surprised to see audrey back (reading from IRC logs) | 12:58 | |
s/./,/ | |||
and with great timing, just as we were going into tenth anniversary! Another great blog post by masak++! | 12:59 | ||
13:03
xabbu42 left
|
|||
isBEKaml | moritz_: is joyofsix up? | 13:04 | |
moritz_ | isBEKaml: doesn't have any content yet | ||
and I don't know what to put up, to be honest | |||
and currently I'm entangled with too many projects | 13:05 | ||
isBEKaml | moritz_: oh... I vaguely remember discussing about it. | ||
wait, why not title p6book that way? ;) | 13:06 | ||
moritz_ | we don't have adequate imagery for that :-) | 13:07 | |
isBEKaml | :) | 13:09 | |
rakudo: ("fertile minds", "great idiots", "brilliant losers").pick(2).say # ;) | 13:10 | ||
p6eval | rakudo 9c4a3c: OUTPUT«fertile mindsbrilliant losers» | ||
isBEKaml | szabgab: I saw the first of your screencasts. keep 'em coming! | 13:13 | |
szabgab: btw, I can haz transcripts? :) | |||
szabgab | isBEKaml: I'll write up some text later | ||
I think for th 4th I already have on my blog | 13:14 | ||
isBEKaml | szabgab: great! :) | ||
szabgab: I too have issues with flash content. Glad you sorted them out with ogv. | 13:17 | ||
szabgab | that's the original | ||
pugssvn | r31803 | moritz++ | [t/spec] refudge some s:g/// tests | 13:18 | |
r31804 | moritz++ | [t/spec] :1st, :2nd etc. adverbs on substitutions | |||
dalek | kudo: 96a0ffe | moritz++ | (5 files): allow all the adverbs on s/// that Cool.subst understands |
||
colomon | rakudo: say 1, 2, 4 ... 3 | ||
p6eval | rakudo 9c4a3c: | 13:19 | |
..OUTPUT«124816326412825651210242048409681921638432768655361310722621445242881048576209715241943048388608167772163355443267108864134217728268435456536870912107374182421474836484294967296858993459217179869184343597383686871947673613743895347227487790694454975581388810995116277762199023255552… | |||
colomon | patrickas++ | ||
13:19
gbacon left
13:22
azert0x joined
|
|||
moritz_ thinks that s:g[w+] .= uc; # should be implementable now with reasonable effort | 13:22 | ||
colomon | \o/ | 13:23 | |
moritz_ | but I guess I should focus on preparing my yapc talk instead | ||
oha | i was looking at the issue where sub f($a,$b?,$c?) { say "$a|$b|$c"; } f(1,,2); => 1|2|Any | 13:27 | |
and i found something | |||
but i'm not able to isolate | 13:28 | ||
i see that in NQP Grammar.pm are defined 2 list with different precedence. the tigher allow the nulltermish so i suppose that f(1,,2) is parsed like [1,],2 | 13:29 | ||
moritz_ | you can check with --target=parse | 13:30 | |
oha | moritz_, perl6 --target=parse file.pl6 | ||
right? | |||
moritz_ | oha: right | ||
maybe nqp-rx supports that too | 13:31 | ||
yes, it does | |||
./parrot_install/bin/parrot-nqp --target=parse comma.pl6 | |||
$large_parse_tree | |||
oha | but why there are 2 list layers? | 13:32 | |
moritz_ has no idea | |||
oha: maybe the nullterm is to allow trailing commas | 13:33 | ||
std: 1, 2, ; | |||
p6eval | std 31802: OUTPUT«ok 00:01 116m» | ||
moritz_ | std: 1, 2,, | ||
p6eval | std 31802: OUTPUT«===SORRY!===Preceding context expects a term, but found infix , instead at /tmp/ZYVmBdFaLo line 1:------> 1, 2,⏏,Parse failedFAILED 00:01 116m» | ||
oha | moritz_, yes, the matter is that it should be in the looser op | 13:35 | |
i'll keep checking. ty for the tip. this is going to make my life easier :) | |||
moritz_ | oha: btw you should only ever need to change the hand-written sources in nqp-rx, and then run 'make bootstrap-files' | 13:36 | |
oha | i probably have misplaced things | ||
cauz what nqp-rx make install is in 2.5.0 but the rakudo parrot is 2.6.0 | 13:37 | ||
moritz_ | ah, your nqp-rx and rakudo are using different parrot versions | ||
normally you don't run 'make install' in nqp-rx at all | 13:38 | ||
the usual flow is: | |||
1) you change something in nqp-rx | |||
2) make test | |||
2) make bootstrap-files | |||
snarkyboojum | where is the appropriate place to send nqp-rx patches? | ||
moritz_ | cp src/stage0/*.pir $rakudo_dir/parrot/ext/nqp-rx/src/stage0/ | 13:39 | |
4) 'make install' in parrot | |||
5) recompile rakudo | |||
the hilarity of bootstrapping compilers spread over various projects | |||
oha | good, i was just fixing stage0 files by hand | ||
moritz_ | snarkyboojum: most people have commit access, so that doesn't happen very often. Maybe github pull request, and pester people on IRC if it's not pulled :-) | 13:40 | |
snarkyboojum | [email@hidden.address] and [email@hidden.address] | 13:41 | |
moritz_ | only the first | ||
snarkyboojum | moritz_: oh ok - not sure it's appropriate but have two very minor ones here gist.github.com/488688 and gist.github.com/488693 | 13:42 | |
moritz_ | rakuo: my $x = 'abcdefg'; $x ~~ s:2x:nth(2,4)/./X/; say $x | ||
isBEKaml | rakudo: my $x = 'abcdefg'; $x ~~ s:2x:nth(2,4)/./X/; say $x # moritz_++ :) | 13:43 | |
p6eval | rakudo 96a0ff: OUTPUT«aXcXefg» | ||
moritz_ | hugme: add snarkyboojum to nqp-rx | ||
hugme hugs snarkyboojum. Welcome to nqp-rx! | |||
moritz_ | snarkyboojum: I'm too lazy to apply those - please push yourself :-) | ||
snarkyboojum | moritz_: oooh :) so you're ok with them then? :D | 13:44 | |
13:44
zulon joined
|
|||
snarkyboojum | how does nqp-rx updates get pulled into parrot? | 13:44 | |
moritz_ | yes | ||
snarkyboojum | s/does/do/ | ||
moritz_ | snarkyboojum: 'make bootstrap-files', and then copying the result | ||
snarkyboojum: see my enumeration from 6 minutes ag | |||
snarkyboojum | moritz_: ah ok - so I just push from a checked out nqp-rx git repo then - will backlog :) | 13:45 | |
moritz_ | snarkyboojum: there's also docs/bootstrapping.pod | ||
yes | |||
isBEKaml | rakudo: my $x = 'abcdefg'; $x ~~ s:nth(2,4)/./X/; say $x | ||
p6eval | rakudo 96a0ff: OUTPUT«aXcXefg» | ||
isBEKaml | moritz_: the s:2x isn't needed there? superfluous, it seems. | ||
moritz_ | right | ||
my $x = 'abcdefg'; $x ~~ s:nth(* %% 2)/./X/; say $ | 13:46 | ||
13:46
envi_home2 is now known as envi_home
|
|||
moritz_ | rakudo: my $x = 'abcdefgehij'; $x ~~ s:nth(* %% 2)/./X/; say $x | 13:46 | |
isBEKaml | rakudo: my $x = 'abcdefg'; $x ~~ s:2x/./X/; say $x | ||
p6eval | rakudo 96a0ff: OUTPUT«Method 'Num' not found for invocant of class 'WhateverCode' in 'Cool::Numeric' at line 1744:CORE.setting in 'Cool::Numeric' at line 1745:CORE.setting in 'Cool::match' at line 6399:CORE.setting in 'Cool::subst' at line 2092:CORE.setting in 'Substitution::ACCEPTS' at | ||
..line 5… | |||
rakudo 96a0ff: OUTPUT«XXcdefg» | |||
moritz_ | seems we have eliminated the closure form | ||
too bad :-) | 13:47 | ||
isBEKaml | rakudo: my $x = 'abcdefg'; $x ~~ s:g(* %% 2)/./X/; say $x | ||
p6eval | rakudo 96a0ff: OUTPUT«XXXXXXX» | ||
isBEKaml | :D | ||
moritz_ | :g is just checked for truth | ||
isBEKaml | rakudo: my $x = 'abcdefg'; $x ~~ s:nth(* % 2)/./X/; say $x | ||
p6eval | rakudo 96a0ff: OUTPUT«Method 'Num' not found for invocant of class 'WhateverCode' in 'Cool::Numeric' at line 1744:CORE.setting in 'Cool::Numeric' at line 1745:CORE.setting in 'Cool::match' at line 6399:CORE.setting in 'Cool::subst' at line 2092:CORE.setting in 'Substitution::ACCEPTS' at | ||
..line 5… | |||
isBEKaml | ah, yes. | 13:48 | |
moritz_ | rakudo: my $x = 'abcdefg'; $x ~~ s:g(2, 4 ... *)/./X/; say $x | ||
p6eval | rakudo 96a0ff: OUTPUT«XXXXXXX» | ||
moritz_ | rakudo: my $x = 'abcdefg'; $x ~~ s:st(2, 4 ... *)/./X/; say $x | ||
p6eval | rakudo 96a0ff: OUTPUT«aXcXeXg» | ||
moritz_ | rakudo: my $x = 'abcdefg'; $x ~~ s:st(2, 4 ... *):2x/./X/; say $x | ||
p6eval | rakudo 96a0ff: OUTPUT«aXcXefg» | ||
isBEKaml | rakudo: my $x = 'abcdefg'; $x ~~ s:p(2,4 ... *)/./X/; say $x | ||
p6eval | rakudo 96a0ff: ( no output ) | ||
moritz_ | :p wants a single Int, I think | 13:49 | |
anyway, :nth(list) and :x mix | |||
snarkyboojum | moritz_: thanks for your help :) | ||
moritz_ | snarkyboojum: thanks for your patches :-) | ||
isBEKaml | snarkyboojum! :) | ||
snarkyboojum | isBEKaml: o/ | 13:50 | |
dalek | p-rx: 43942d0 | snarkyboojum++ | src/Regex/P6Regex/Grammar.pm: Update "obsolete error" message Perl 6 usage. |
||
p-rx: 964a1b0 | snarkyboojum++ | src/Regex/P6Regex/Grammar.pm: Change message for incorrect character range usage |
|||
13:57
nimiezko left
|
|||
isBEKaml | snarkyboojum: 2 patches and how's things? :) | 13:57 | |
snarkyboojum | isBEKaml: well - looking forward to rakudo star :) and you? | 13:59 | |
isBEKaml | snarkyboojum: me too. starry eyed. :) | ||
5 days to go. | |||
oha | is still miss something, while i can perl6 --target=parse src.pl6 i can't parrot-nqp --target=parse src.pl6 | 14:02 | |
14:03
tylercurtis joined
|
|||
oha | it seems like it was the say statement | 14:04 | |
moritz_ | huh, works here | ||
(note that --target and -e don't mix) | |||
oha | no idea, but sub foo($a,$b?,$c?) { say "Ok"; } fails, while ... { "Ok"; } works | 14:05 | |
14:22
jferrero joined
|
|||
pmichaud | say "Ok"; isn't valid in NQP. | 14:31 | |
moritz_ | ah right, need parens | ||
rakudo: 5 ~~ .say | 14:33 | ||
p6eval | rakudo 96a0ff: OUTPUT«Any()» | ||
14:33
zulon left
14:34
am0c joined
|
|||
cognominal | rakudo: my $a = [ "this", "is", "so", "gross" ]; my $b = [ "that", "is", "so", "funny" ]; my $c = $b[2..3]; $a[3] = $c ; say $a.perl | 14:34 | |
p6eval | rakudo 96a0ff: OUTPUT«["this", "is", "so", ("so", "funny")]» | ||
cognominal | pmichaud, how can I get an subarray instead of a sequence? | 14:35 | |
rakudo: say (1,2) eqv [1,2] | |||
oha | pmichaud, ok! | ||
p6eval | rakudo 96a0ff: OUTPUT«0» | ||
cognominal | rakudo: my $a = [ "this", "is", "so", "gross" ]; my $b = [ "that", "is", "so", "funny" ]; my $c = $b[2..3]; $a[3] = @( $c ) ; say $a.perl | 14:36 | |
p6eval | rakudo 96a0ff: OUTPUT«["this", "is", "so", ("so", "funny")]» | ||
cognominal | rakudo: my $a = [ "this", "is", "so", "gross" ]; my $b = [ "that", "is", "so", "funny" ]; my $c = $b[2..3]; $a[3] = $c.flat ; say $a.perl | 14:37 | |
p6eval | rakudo 96a0ff: OUTPUT«["this", "is", "so", ("so", "funny")]» | ||
cognominal | I am a desperate Perl 6 hacker... | ||
moritz_ | try it with splice | 14:38 | |
14:38
zulon joined
|
|||
cognominal | as? | 14:39 | |
moritz_ | or maybe I misunderstood what you want | ||
what do you want $a to contain? | |||
cognominal | $a[3] should be [ "so", "funny" ] | 14:40 | |
moritz_ | then don't use .flat | ||
or [ ... ] if necessary | |||
cognominal | it seems $a[3] = ... gives a scalar context so that the sequence is not converted to an array | 14:41 | |
moritz_ | rakudo: my $x = (1..3); say $x.perl; | ||
cognominal | wrapping the left side in @( ) does not help | ||
p6eval | rakudo 96a0ff: OUTPUT«1..3» | ||
moritz_ | rakudo: my $x = [(1..3).flat]; say $x.perl; | ||
p6eval | rakudo 96a0ff: OUTPUT«[1, 2, 3]» | ||
cognominal | tried with [ (...) ] and ended up with [(...)] | 14:42 | |
14:44
wamba joined
|
|||
dalek | p-rx: 88f0d0d | snarkyboojum++ | t/p6regex/rx_ (2 files): Update tests for obsolete/unsupported messages |
14:47 | |
moritz_ | pmichaud: any idea where $_ topicalization of the RHS of ~~ should be handled in the actions? | 14:49 | |
pmichaud | moritz_: I'd guess method EXPR | 14:52 | |
moritz_ | pmichaud: I guess that's over my head, then | ||
pmichaud | cognominal: did you figure out the array-ness above? | 14:53 | |
cognominal | I filed the problem as #76698 | 14:54 | |
pmichaud | it's not a problem, afaict | ||
pmichaud looks at the ticket | |||
cognominal | thx | 14:55 | |
pmichaud | the code is behaving correctly according to the spec, afaict | ||
if you want to create an array, use [ ... ] | 14:56 | ||
cognominal | but I will end up with [ ( ... ) ] | ||
pmichaud | rakudo: my $a = [<this is so gross>]; my $b = [<that is so funny>]; my $c = [ $b[2..3] ]; $a[3] = $c; say $a.perl; | 14:57 | |
p6eval | rakudo 96a0ff: OUTPUT«["this", "is", "so", ["so", "funny"]]» | ||
pmichaud | like that. | ||
you can also do | |||
rakudo: my $a = [<this is so gross>]; my $b = [<that is so funny>]; $a[3] = [ $b[2..3] ]; say $a.perl; | 14:58 | ||
p6eval | rakudo 96a0ff: OUTPUT«["this", "is", "so", ["so", "funny"]]» | ||
14:58
zulon left
|
|||
tylercurtis | Should Rakudo's README still refer to the "languages/rakudo/" directory? | 14:58 | |
pmichaud | tylercurtis: it should not | ||
cognominal | now suppose I get an intermediary variable | ||
14:59
ashleydev joined
|
|||
cognominal | rakudo: my $a = [<this is so gross>]; my $b = [<that is so funny>]; my $c = $b[2..3]; $a[3] = [ $c ]; say $a.perl; | 14:59 | |
p6eval | rakudo 96a0ff: OUTPUT«["this", "is", "so", [("so", "funny")]]» | ||
14:59
whiteknight left
|
|||
pmichaud | right, because $c is a Seq | 14:59 | |
in this case, $a[3] is an Array with one element | 15:00 | ||
(that one element is a 2-element Seq) | |||
15:00
tedv joined
|
|||
tylercurtis | pmichaud: "In general this means that in the C<languages/rakudo/> directory you make your changes, and then type" in the section on submitting patches. | 15:00 | |
pmichaud | tylercurtis: I'll fix it later today, or if you want to send in a patch that would be awesome :) | 15:01 | |
tylercurtis++ | |||
tylercurtis | pmichaud: Will do. What should I change it to? | ||
cognominal | so how do I get a mere subarray given an scalar intermdiary variable when it contains a Seq? | ||
tylercurtis | rakudo: my $a = [<this is so gross>]; my $b = [<that is so funny>]; my $c = $b[2..3]; $a[3] = [ |$c ]; say $a.perl; | 15:02 | |
p6eval | rakudo 96a0ff: OUTPUT«["this", "is", "so", [\("so", "funny")]]» | ||
pmichaud | rakudo: my $a = [<this is so gross>]; my $b = [<that is so funny>]; my $c = $b[2..3]; $a[3] = [ @($c) ]; say $a.perl; | ||
p6eval | rakudo 96a0ff: OUTPUT«["this", "is", "so", ["so", "funny"]]» | ||
cognominal | pmichaud++ | ||
moritz_ | tylercurtis, pmichaud: I've pushed a simple improvement to the README - feel free to improve further | ||
pmichaud | @($c) converts the scalar Seq into a flattening Seq | ||
tylercurtis++ moritz_++ | 15:03 | ||
could also do $c.list | |||
isBEKaml | rakudo: my $a = [<this is so gross>]; my $b = [<that is so funny>]; my $c = $b[2..3]; $a[3] = @($c); $a.perl.say | ||
pmichaud | or $c.flat | ||
p6eval | rakudo 96a0ff: OUTPUT«["this", "is", "so", ("so", "funny")]» | ||
cognominal | that deserves to be in the Perl 6 book | ||
pmichaud | isBEKaml: that one looks wrong to me now | 15:04 | |
dalek | kudo: c3d62c0 | moritz++ | README: [README] a few updates regarding patch creation, tylercurtis++ |
||
isBEKaml | pmichaud: yes, seems so. RHS in list context, if I'm not wrong. | ||
pmichaud | well, and so is the lhs :-) | 15:05 | |
15:05
whiteknight joined
|
|||
pmichaud | I think that perhaps should've ended up with ["this", "is", "so", "so"] | 15:05 | |
isBEKaml | $a[3] doesn't seem to be in list context since we just pull up the index of an array. | 15:06 | |
I was expecting it to flatten, i.e., without parens. | |||
rakudo: my $a = [<this is so gross>]; my $b = [<that is so funny>]; my $c = $b[2..3]; $a[3] = $c.list; $a.perl.say | |||
p6eval | rakudo 96a0ff: OUTPUT«["this", "is", "so", ("so", "funny")]» | ||
pmichaud | but $a[3] is in list context, because it's a list assignment | 15:08 | |
it's not a scalar assignment | |||
er, "item assignment" | 15:09 | ||
dalek | kudo: b20bcae | moritz++ | README: [README] various small udpates: link to CREDITS, mention perl6 --version, and |
||
TimToady | rakudo: my $a = [<this is so gross>]; my $b = [<that is so funny>]; my $c = $b[2..3]; $a[3,4] = $c.list; $a.perl.say | 15:10 | |
p6eval | rakudo 96a0ff: OUTPUT«["this", "is", "so", "so", "funny"]» | ||
pmichaud | yeah, rakudo gets that right | ||
TimToady | yeah, the other looks funny to me | ||
pmichaud | right now .[ ] tends to remove the parcel when the subscript ends up with a single element | 15:11 | |
so that my $b = $a[3] + 1; works | |||
jnthn | o/ | 15:12 | |
phenny | jnthn: 12:33Z <colomon> tell jnthn please look at the skipped test in S06-operator-overloading/imported-subs.t | ||
jnthn: 12:33Z <colomon> tell jnthn If you can fix that, I think we can get the core of Vector.pm back on-line pretty easily | |||
moritz_ | I thought onw-element parcels should behave like their contents anyway? | ||
isBEKaml | maybe I'm missing something. the fourth element in [$a] is an array. so, it's still an element. :) | ||
tylercurtis | moritz_++, I was just about to suggest mentioning --version. | 15:13 | |
pmichaud | isBEKaml: I don't what you mean by "the fourth element in [$a] is an array" | ||
*don't know | |||
that confuses me. | |||
isBEKaml | pmichaud: "this" - 1 element. ("so", "funny") - an element. fourth item in the $a list. | 15:14 | |
pmichaud | isBEKaml: you mean after the assignment? | ||
isBEKaml: my point is that $a[3] = $c.list is a list assignment | 15:15 | ||
so it's the same as | |||
isBEKaml | pmichaud: what confuses me is, when we have a list of strings, one of the items in the list is another list. why doesn't rakudo complain when we assign a list as one of the elements by way of manipulation? | ||
dalek | kudo: 6caf77f | moritz++ | README: [README] link to download section directly; remove senetence about no longer |
||
pmichaud | "one of the items in the list is another list"? | 15:16 | |
isBEKaml | pmichaud: nested lists. | ||
pmichaud | there's no nested list there before the assignment. | ||
isBEKaml | pmichaud: after the assignment. | ||
pmichaud | ...and there shouldn't be one after the assignment (more) | ||
tylercurtis | rakudo: my $a = [<this is so gross>]; my $b = [<that is so funny>]; my $c = $b[2..3]; $a[3] = $c.list; $a.perl.say; $a[3].WHAT.say | ||
p6eval | rakudo 96a0ff: OUTPUT«["this", "is", "so", ("so", "funny")]Seq()» | ||
pmichaud | my $c = $b[2..3]; $a[3] = $c.list | 15:17 | |
should be the same as | |||
$a[3] = ('so', 'funny') | |||
jnthn | colomon: I'll try and look at that today. | ||
pmichaud | which since it's a list assignment, only the word 'so' should go into $a[3] | ||
(and thus rakudo is currently getting it wrong) | 15:18 | ||
(it's a list assignment because $a[3] is not a simple scalar) | 15:19 | ||
isBEKaml | pmichaud: "why doesn't rakudo complain when we assign a list as one of the elements by way of manipulation?" So we are in agreement? | ||
15:19
Raynes left
|
|||
isBEKaml | or it shouldn't complain but only eat the first element from the result list into $a ? | 15:20 | |
pmichaud | oh, one *can* assign a list to a scalar -- that's perfectly legal | ||
and one can assign a list to an array element | |||
but it would need to be | |||
$a[3] = $c.item; | |||
or even $a[3] = $($c) | 15:21 | ||
or even $a[3] = $c since $c is already an item | |||
15:21
xinming_ joined
|
|||
pmichaud | so, rakudo shouldn't complain about the fact that the scalar ends up holding a list | 15:22 | |
(and it doesn't) | |||
(it doesn't complain, that is) | 15:23 | ||
ENOTAWAKEYET | |||
15:24
xinming left,
patspam joined
15:25
isBEKaml left
|
|||
pmichaud | ~ | 15:26 | |
15:20 <isBEKaml> or it shouldn't complain but only eat the first element from the result list into $a ? | |||
15:26
isBEKaml joined
|
|||
pmichaud | that part is absolutely correct, except only the first element from the result list should go into $a[3]. | 15:26 | |
it shouldn't complain, and only one element of the list on the rhs ends up in the array | 15:27 | ||
(because we only had one element on the lhs) | |||
time to wake up, finish packing, and make my way to the airport | 15:28 | ||
bbiab | |||
TimToady is going to the airport right now to pick up a rental car so we can drive to Bremerton | |||
pmichaud | TimToady: have fun in Bremerton :) | 15:29 | |
pugssvn | r31805 | moritz++ | [t/spec] test for RT #58488, multiple redefinition of same class in eval | ||
TimToady | then Seattle, then Barcelona | ||
I'll be offline for most of next week | |||
pmichaud | TimToady: I'm surprised the rental car company will let you drive to Barcelona :) | ||
TimToady | :P | ||
pmichaud | have a great time next week. We'll try not to screw up the language/launch too much while you're away. :-) | 15:30 | |
TimToady | try to keep everyone in line :) | ||
isBEKaml | pmichaud: thanks to irc logging. I could even follow when networks go into a tizzy. :) | ||
pmichaud | TimToady: did you see the PC World article about the SOTO? | ||
TimToady | nod | 15:31 | |
pmichaud | TimToady: it was massively retweeted | ||
TimToady | "stable" :) | ||
moritz_ | TimToady: have the appropriate amount of fun | ||
pmichaud | yes, I saw that too :) | ||
oh well. | |||
cognominal | pmichaud? URL? | ||
pmichaud | I think that people assume that whenever a release is announced that the word "stable" must be implied. | ||
cognominal | for the PC World article? | ||
pmichaud | www.pcworld.com/businesscenter/article/201743/ | 15:32 | |
TimToady | afk & | 15:33 | |
pmichaud | I think I'll leave a comment about "stable" in the article :) | ||
isBEKaml | pmichaud: from what you said, am I right in thinking that a scalar element and a list element are two different things? <a b c d> <a b c <d e f>> are different and should behave differently. or are they legal? | 15:34 | |
pmichaud: please disregard the nested "<". I was just sayin'. :) | |||
rakudo: my $a = [<this is so gross>]; my $b = [<that is so funny>]; my $c = $b[2..3]; $a[2] = $c.list; $a.perl.say; | 15:35 | ||
p6eval | rakudo 96a0ff: OUTPUT«["this", "is", ("so", "funny"), "gross"]» | ||
jnthn | pmichaud: Wow, you switched for to map?! :-) | 15:36 | |
isBEKaml | pmichaud: the ("so", "funny") is treated as an item in the $a list. | ||
jnthn | pmichaud: Nice! | ||
cognominal | nice article. | ||
pmichaud | isBEKaml: my point is that it shouldn't be. | ||
I don't understand the notion of "list element" | 15:37 | ||
isBEKaml | pmichaud: so I'm thinking by the type bounds of $a which is essentially a list of strings, we shouldn't be nesting lists here. | ||
pmichaud | jnthn: yes, I switched for to map. Only statement 'for' at the moment, still need to do the statement modifier. | ||
isBEKaml: $a doesn't have a type on it | 15:38 | ||
isBEKaml: there's no constraint there saying that $a can only contain Str | |||
15:38
[mark] joined
|
|||
pmichaud | $a is just an array. | 15:38 | |
15:39
[mark] left
|
|||
isBEKaml | rakudo: my $a = [ 1..3 ]; $a[4] = "String"; $a.perl.say; | 15:39 | |
p6eval | rakudo 96a0ff: OUTPUT«[1, 2, 3, Any, "String"]» | ||
isBEKaml | pmichaud: right. the "of strings" is redundant there. I meant that we shouldn't nest lists there. | 15:41 | |
pugssvn | r31806 | moritz++ | [t/spec] RT #76644, "statement" autoquoted hash key does not collide with "state" declarator | ||
isBEKaml | pmichaud++ # patience! :) | ||
pmichaud | isBEKaml: if you're saying that the array shouldn't contain a nested list, that's not accurate. | 15:42 | |
isBEKaml: if you're saying that the assignment shouldn't be resulting in a nested list, that's accurate. Rakudo is treating the assignment as an item assignment when it should be acting like a list assignment. | 15:43 | ||
isBEKaml | pmichaud: nested lists are useful. but assignments should just not take a list when it's just an element on the left. | ||
pmichaud | isBEKaml: ...except that in list assignment, $a[3] is a list. | 15:44 | |
moritz_ is sure the nigh infinite assign.t has failing tests for that | |||
pmichaud | it's not "just an element". | ||
and list assignment doesn't complain when there are extra values left over. | |||
isBEKaml | pmichaud: exactly. | ||
pmichaud | and by "$a[3] is a list", I mean that $a[3] is a list containing a single scalar container | 15:45 | |
which can then have a value from the lhs assigned to it | |||
anyway, I guess we're ultimately agreeing. | |||
comment added to pc world article | |||
isBEKaml | right. :) | 15:46 | |
tylercurtis | pmichaud: "list assignment doesn't complain when there are extra values left over." S03 disagrees: "If there are any elements left over, a warning is issued unless the list on the left ends with * or the final iterator on the right is defined in terms of *." | ||
pmichaud | tylercurtis: I've asked since then and was told that it doesn't complain. | 15:47 | |
(or perhaps I'm misremembering what I actually asked, but I'm pretty sure I remember correctly here.) | |||
moritz_ | I gues the last sentence is too vague | ||
"or the final iterator on the right is defined in terms of *." | 15:48 | ||
dalek | kudo: 928f9da | moritz++ | t/spectest.data: run two more test files |
15:50 | |
15:51
ashleydev_ joined
|
|||
moritz_ | rakudo: my $x = 3; subset X of Int where { $_ > $x }; | 15:51 | |
p6eval | rakudo 96a0ff: ( no output ) | ||
tylercurtis | pmichaud: alright, then. IWBNI someone changed S03 to reflect that, if so. | ||
pmichaud | I'm searching the #perl6 logs to verify it first | ||
(and that's a particularly difficult search) | |||
moritz_ | rakudo: my Int $multiple_of; subset Num::Multiple of Int where { $^num % $multiple_of == 0 } | 15:52 | |
p6eval | rakudo 96a0ff: ( no output ) | ||
moritz_ | in t/spec/S12-subset/subtypes.t that dies | ||
with Symbol '$multiple_of' not predeclared in <anonymous> | |||
pmichaud | I bet the where clause is incorrectly lexically scoped in the PAST tree | 15:53 | |
jnthn | moritz_: Yeah, I ran into that one recetly too. | ||
pmichaud: It is, I tracked it down, but was too tired at that point to fix it. | |||
pmichaud | i.e., it's being attached to a begin block instead of its correct lexical outer block | ||
jnthn | Right. | ||
15:54
ashleydev left,
ashleydev_ is now known as ashleydev
|
|||
oha | i think i've found a way to not allow calls like f(1, ,3); | 15:54 | |
jnthn | std: f(1, ,3); | ||
p6eval | std 31805: OUTPUT«===SORRY!===Preceding context expects a term, but found infix , instead at /tmp/uaLKZEsfZw line 1:------> f(1, ⏏,3);Parse failedFAILED 00:01 117m» | ||
15:55
Raynes joined
|
|||
oha | but the error message isn't that nice | 15:55 | |
tylercurtis | rakudo: sub f {...}; f(1, ,3); | 15:56 | |
p6eval | rakudo 96a0ff: OUTPUT«Too many positional parameters passed; got 2 but expected 0 in 'f' at line 22:/tmp/oz8eZQejCe in main program body at line 22:/tmp/oz8eZQejCe» | ||
tylercurtis | rakudo: say(1, ,3); | ||
p6eval | rakudo 96a0ff: OUTPUT«13» | 15:57 | |
oha | the problem was that in NQP/Grammar.pm the arglist use nextterm<nullterm>, which means that it is allowed empty terms after the first | 16:00 | |
i've changed the cheat/hll-grammar.pir to correctly allow only lastterm to be null | |||
using :lastterm<nullterm> | 16:01 | ||
but the grammar is going panic now | |||
Confused at line 2, near "foo(1,,3,)" | |||
current instr.: 'parrot;HLL;Grammar;panic' pc 552 (ext/nqp-rx/src/stage0/HLL-s0.pir:357) | |||
does anyone have hints? | 16:02 | ||
moritz_ | rakudo: use Test; my subset Num::Even of Num where { $^num % 2 == 0 } | ||
p6eval | rakudo 96a0ff: ( no output ) | ||
moritz_ | rakudo: use Test; my subset Num::Even of Num where { $^num % 2 == 0 }; ok my Num::Even $c = 6; | ||
p6eval | rakudo 96a0ff: OUTPUT«Type check failed for assignment in '&infix:<=>' at line 1 in main program body at line 22:/tmp/dmh1tdkhQR» | ||
moritz_ | "huh". | ||
pmichaud | oha: nqp's grammar should generally follow whatever pattern STD.pm6 uses for the same thing. | ||
oha | pmichaud, what do you mean? | 16:03 | |
pmichaud | since STD.pm6 doesn't have a notion of :lastterm (afaict), NQP's grammar shouldn't have one either. | ||
(does it currently, ooc?) | 16:04 | ||
(it does not) | |||
oha | pmichaud, ok but actually std do not allow f(1,,3); while rakudo do | ||
rt.perl.org/rt3/Ticket/Display.html?id=54804 | 16:05 | ||
pmichaud | oha: right. so we should figure out how std disallows f(1,,3) and use that pattern. | ||
we shouldn't come up with a different mechanism for checking. | |||
pugssvn | r31807 | moritz++ | [t/spec] mostly rewrite subtypes.t. Previously it assumed types leaking out of eval and similar niceties | ||
pmichaud | (and :lastterm sounds like a "different mechanism" to me) | ||
oha | pmichaud, dunno really | ||
moritz_ | pmichaud: it checks the presence of an infix in term position (if no term matches), and then dies | 16:06 | |
pmichaud | moritz_: yes, looks that way | ||
method badinfix | |||
called from term:sym<miscbad> | 16:07 | ||
oha | anyway, here the diff: pastebin.com/ge4MBV3E | ||
colomon | are people getting intermediate fails on S10-packages/basic.t | 16:08 | |
? | |||
pmichaud | colomon: yes, I am. | ||
moritz_ | colomon: I do, yes | ||
pmichaud | oha: yes, I would likely end up rejecting that patch, because it moves us farther away from STD | ||
moritz_ | colomon: maybe related to rt.perl.org/rt3/Ticket/Display.html?id=76692 | ||
colomon | moritz_: so that was what you and jnthn were looking at the other day? | 16:09 | |
(or was that masak?) | |||
moritz_ | colomon: no; but it might be related | 16:10 | |
oha | where can i see how STD handle the extra ending infix for list? | 16:12 | |
jnthn | moritz_: I spent a couple of hours on 76692 so far with little more grasp of what's up. :-( | 16:14 | |
moritz_ | jnthn: :( | ||
jnthn | colomon: (package/basic.t) yes | 16:15 | |
colomon | jnthn: :( (re 76692) | ||
moritz_ | std: 1, , | 16:17 | |
p6eval | std 31806: OUTPUT«===SORRY!===Preceding context expects a term, but found infix , instead at /tmp/4zhnxtr7hg line 1:------> 1, ⏏,Parse failedFAILED 00:01 116m» | ||
oha | std: 1,3, | ||
p6eval | std 31806: OUTPUT«ok 00:01 116m» | ||
16:19
MichaelRWolf joined
|
|||
oha | sorry but i'm still confused. std does not allow empty elems BUT the last. nqp allow all elems to be empty but first. | 16:19 | |
pmichaud | oha: right. that's a bug in nqp. | 16:20 | |
oha | so if i can't change add :lastterm to let it work, i need to know what other approach i should use | ||
pmichaud | oha: I'm saying that the approach you're taking to fix it (by changing :nextterm to :lastterm and checking things in EXPR) is the wrong fix | 16:21 | |
oha | s/add/adding | ||
pmichaud, i got it really | |||
pmichaud | the approach to use is the one that STD.pm uses | ||
oha | the problem is that i didn't get what is the right fix | ||
pmichaud | STD.pm has a special term called term:sym<miscbad> | ||
it looks to see if an infix operator is being found in a term position, and if so, it then complains. | 16:22 | ||
NQP and Rakudo should do the same. | |||
moritz_ | pmichaud: I'm trying that in Rakudo right now | ||
pmichaud | moritz_: I don't know that it will work out super cleanly, but it's worth a try :) | ||
ltm might get in the way. | |||
oha | so what should do is to not change :nextterm to :lastterm but to remove it completely, and allow an extra infix? | 16:23 | |
pmichaud | oha: no, :nextterm is a part of STD.pm (or at least it was when NQP was written... checking) | ||
16:23
zulon joined
|
|||
pmichaud | right | 16:23 | |
oha | moritz_, oh, in that case is better if i search for other tasks | ||
pmichaud | :nextterm *is* the way that STD.pm handles the trailing comma | ||
so we don't want to remove it. | |||
(because that would move us farther away from STD.pm :-) | |||
moritz_ | pmichaud: I have my doubts too, but I'm trying anyway :-) | 16:24 | |
huh | 16:25 | ||
now I get "Confused" for 1, , | |||
16:26
patspam left
|
|||
moritz_ | should <infixish> also match what <infix> matches? | 16:27 | |
pmichaud | yes, at least according to HLL::Grammar | ||
moritz_ | hm, rakudo has its own infixish | 16:28 | |
oha | moritz_, seems so to me | ||
moritz_ | | <OPER=infix> <![=]> | ||
right | |||
hum, causes a parse failure in return.t, causes 1, , to die with "Confused", and I can't seem to find a way to trigger it. Weird. | 16:33 | ||
aka "not good" | 16:35 | ||
16:35
Trashlord joined
16:37
zulon left
|
|||
pmichaud | moritz_: what line of return.t ? | 16:37 | |
oha | return use a looser level on the EXPR() then arguments | 16:38 | |
pmichaud | oh, in nqp? | 16:39 | |
pmichaud cant find the failing test. | |||
moritz_ | pmichaud: with my local patch, that is | ||
pmichaud | I'm looking for the test line that fails | 16:40 | |
not the actual failure :) | |||
jnthn | colomon: Think I have a fix for that failing imported-subs.t text. sspectesting now. | ||
s/text/test/ | |||
moritz_ | 28 | ||
is(foobar2(), Nil, ' | |||
tylercurtis | jnthn++ | ||
pmichaud | is(foobar2(), Nil, '... bare return worked with a statement modifier'); | 16:41 | |
that one? | |||
moritz_ | right | ||
pmichaud | I don't see a "1, ," there | ||
pmichaud is confused. | |||
moritz_ | I think I didn't provide enough context | 16:42 | |
I just wanted to say that the patch doesn't work. | |||
colomon | jnthn: \o/ | ||
moritz_ | the symptoms are 1) a failure in return.t | ||
16:42
masonkramer left
|
|||
moritz_ | 2) ./perl6 -e '1, ,' says "Confused", not the error message I want | 16:42 | |
pmichaud | note that the current master also gives that error message for #2 | 16:43 | |
moritz_ | rakudo: 1, , | ||
pmichaud | so the problem might be something else other than the miscbad term | ||
p6eval | rakudo 96a0ff: OUTPUT«===SORRY!===Confused at line 22, near "1, ,"» | ||
moritz_ | print(1,,2) | ||
rakudo: print(1,,2) | 16:44 | ||
p6eval | rakudo 96a0ff: OUTPUT«12» | ||
moritz_ | huh. Now I can't build rakudo anymore | ||
pmichaud | I'm just saying that '1, ,' might not be a good test case for your patch :) | ||
moritz_ Confused | |||
yes | |||
pmichaud | std: 1, , | ||
p6eval | std 31807: OUTPUT«===SORRY!===Preceding context expects a term, but found infix , instead at /tmp/qGCLratHTg line 1:------> 1, ⏏,Parse failedFAILED 00:01 116m» | ||
pmichaud | not sure *why* it's not a good test case | ||
moritz_ uses the magic 'git checkout .' incantation to get back to his regularly scheduled program | 16:45 | ||
pmichaud | maybe it's unable to parse comma as the last thing in the source as an infixish | ||
yes, that's it | |||
rakudo: 1, , | |||
p6eval | rakudo 96a0ff: OUTPUT«===SORRY!===Confused at line 22, near "1, ,"» | ||
pmichaud | rakudo: 1, ,0 | ||
p6eval | rakudo 96a0ff: ( no output ) | ||
pmichaud | (and it looks like p6eval chops my trailing spaces) | 16:46 | |
pmichaud@plum:~/rakudo$ ./perl6 -e '1, , ' | |||
pmichaud@plum:~/rakudo$ | |||
cognominal | it would would be nice to have splices expressed like $a[[2..3]] | 16:49 | |
moritz_ | this is Perl 6, not Mathematica | ||
cognominal | hum, I played mathematica... 20 years ago. Sun had a license then. | 16:50 | |
Forgot the syntax. | |||
ho, := works boy, I will soon lack pretext for whining. | 16:52 | ||
pmichaud | cognominal: you can always say $a[(2..3)] if you prefer :) | ||
cognominal | can be lhs? | ||
pmichaud | sure | 16:54 | |
and you can do $a[2..3,] if you want to emphasize slice-ness :) | |||
cognominal | hum, why the parenthesis are needed. | 16:55 | |
?? | |||
pmichaud | they aren't needed | ||
I said you *could* do it, not that you have to :) | |||
cognominal | :) | ||
pmichaud | $a[2..3] is also a slice | ||
(as long as $a has at leas 4 elements) | |||
*least | |||
moritz_ | are parameter traits NYI? | 16:56 | |
jnthn | colomon: gah...I set it off spectesting without setting TEST_JOBS to something other than 1. This'll take forever. | ||
moritz_ is somewhat concerned by the fact that we don't run any tests for custom traits | |||
jnthn | moritz_: No, but probably easy. | ||
moritz_: Routine traits work. | |||
And package ones in theory also do. | 16:57 | ||
Attribute ones not yet. I may have those fixed for R* or maybe not. | |||
*sigh* So much I want to do. | |||
moritz_ | rakudo: rule f { has $.x }; (4 but f(3).x | 16:58 | |
p6eval | rakudo 928f9d: OUTPUT«Useless declaration of has-scoped rule in a module; add our or my to install it in the lexpad or namespace===SORRY!===Confused at line 22, near "(4 but f(3"» | ||
moritz_ | rakudo: role f { has $.x }; say (4 but f(3).x | ||
p6eval | rakudo 928f9d: OUTPUT«===SORRY!===Unable to parse postcircumfix:sym<( )>, couldn't find final ')' at line 22» | ||
cognominal | jnthn, we need a Rakudo HyperWhatever soon :) | ||
jnthn | missing ) | ||
moritz_ | rakudo: role f { has $.x }; say (4 but f(3)).x | ||
p6eval | rakudo 928f9d: OUTPUT«Could not find sub &f in main program body at line 22:/tmp/O85srtluoK» | ||
jnthn | cognominal: :P | ||
moritz_ | rakudo ** | ||
jnthn | :-) | ||
moritz_ | jnthn: ah, that's why the traits tests don't pass | 16:59 | |
rakudo: ** | |||
p6eval | rakudo 928f9d: OUTPUT«===SORRY!===Confused at line 22, near "**"» | ||
jnthn | moritz_: Yeah, that magical RoleName(arg) syntax is why we can't run some of the others yet | ||
moritz_: Dunno whether we should tweak the tests. | 17:00 | ||
moritz_: Or implement that syntax. | |||
moritz_: Maybe it won't be too hard. | |||
moritz_ | jnthn: we need to do the coercion syntax at some point anyway | ||
cognominal | Rakudo Star, Rakudo SuperStar, Rakudo HyperStar could be significant releases before Rakudo 1.0 :) | 17:01 | |
moritz_ | there'll never be a 1.0 | 17:02 | |
jnthn | moritz_: It's not a co-ercion, though... | ||
moritz_ | rakudo: say 1.0 cmp 2010.06 | 17:03 | |
jnthn: yeah, but same syntax | |||
p6eval | rakudo 928f9d: OUTPUT«-1» | ||
jnthn | moritz_: troo | ||
17:03
justatheory joined
|
|||
tylercurtis | moritz_: how about a 6.0.0? | 17:05 | |
moritz_ | tylercurtis: I guess that at some point we will declare that Rakudo now implements Perl 6.0.0 | 17:06 | |
pmichaud | there will be a Perl 6.0.0, but that's a language specification, not a Rakudo version :) | ||
and I wonder if there will be a point at which we declare that Perl 6.0.0 is whatever Rakudo implements at that time :) | |||
(as far as feature coverage, not bugs) | 17:07 | ||
17:07
zulon joined
|
|||
moritz_ finds it far more interesting how much Perl 6 he can use today | 17:07 | ||
pmichaud | okay, I'm heading off to airport now. be back when (if?) I get wifi there | ||
jnthn | pmichaud: Safe travels. | 17:08 | |
isBEKaml | pmichaud: haffun! :) | 17:09 | |
17:15
xinming_ is now known as xinming
|
|||
oha | oha@oha-laptop:~/work/perl6$ ./parrot_install/bin/parrot-nqp -e 'foo(1,,3)' | 17:16 | |
expecting element, found infix at line 1, near ",3)" | |||
moritz_ | \o/ | 17:17 | |
oha | pastebin.com/Q3G9tazL | ||
but that's not finished | 17:18 | ||
i hardcoded a comma | |||
moritz_, is it the aproach you were looking for? | |||
moritz_ | oha: I don't know, it's not code I'm familiar with... you ahve to ask pmichaud when he comes back online | 17:19 | |
oha | i'll do | 17:20 | |
probably it could work as a starting point | |||
dalek | kudo: 667781a | (Solomon Foster)++ | src/core/operators.pm: Port patrickas++'s series operator patch to master. This enables testing for geometric series absolute value test as well. |
17:23 | |
cognominal | rakudo: say Capture.does(Positional) | 17:24 | |
p6eval | rakudo 928f9d: OUTPUT«0» | 17:25 | |
moritz_ | cognominal: that's wrong (and known) | ||
pugssvn | r31808 | jnthn++ | [t/spec] Unfudge test for imported multis not clobbering all outer-scoped candidates. | ||
jnthn | colomon: fix pushed | ||
moritz_ | jnthn+++ | ||
jnthn++ even :-) | |||
jnthn | rakudo: class A { method foo { True } }; if A ~~ .foo { say "yay" } | 17:26 | |
p6eval | rakudo 928f9d: OUTPUT«Method 'foo' not found for invocant of class '' in main program body at line 22:/tmp/uqrc7cHCSp» | ||
17:27
MichaelRWolf left
|
|||
moritz_ | why not "class 'Any'" ? | 17:29 | |
dalek | kudo: 2f7b8bc | jonathan++ | src/Perl6/Module/Loader.pm: Fix imports of multis, such that they incorproate lexically outer-scoped without it hiding all the infix:<+> from the setting. |
||
kudo: a37a5e4 | (Jan Ingvoldstad)++ | README: Info about "git pull" and quick-and-dirty build problem resolution |
|||
kudo: 926a08e | moritz++ | src/Perl6/Grammar.pm: give NYI message for HyperWhatever |
|||
17:32
masonkramer joined
|
|||
colomon | jnthn++ !!!! | 17:34 | |
moritz_ | rakudo: my ($foo, $bar = "baz") = <a>; say "$foo $bar" | 17:36 | |
p6eval | rakudo 928f9d: OUTPUT«a Any()» | ||
moritz_ | is that correct? | ||
or should that return 'a baz'? | 17:37 | ||
jnthn | moritz_: It should complain at you that the signature is too complex to turn into a list. | 17:39 | |
moritz_ | right, just read the ticket. | ||
jnthn | rakudo: my ($foo, $bar = "baz") := <a>; say "$foo $bar" | ||
p6eval | rakudo 928f9d: OUTPUT«a baz» | ||
jnthn | That's probably what you want if you're after signature binding semantics. :-) | ||
moritz_ is after closing tickets | 17:41 | ||
lue | ohai o/ | ||
jnthn | moritz_: I'm trying to patch the smart-match thingy at the moment. | ||
17:41
TiMBuS left
|
|||
jnthn | moritz_: It's a PITA. | 17:41 | |
moritz_ | jnthn: quite understandable. And low priority | 17:43 | |
17:44
kraai joined
|
|||
jnthn | > class A { method foo { True } }; if A ~~ .foo { say "yay" } | 17:44 | |
yay | |||
moritz_ | \o/ | ||
jnthn | Well, didn't spectest yet ;-) | 17:45 | |
pugssvn | r31809 | moritz++ | [t/spec] RT #74348, error messages from subset type checks | ||
jnthn | moritz_: Will spectest it now. | 17:46 | |
moritz_: I guess some will be unfudge-able from this. | 17:48 | ||
pugssvn | r31810 | moritz++ | [t/spec] test that .[] is defined oin Any, and .[0] returns self for scalars. Tests RT #58372 | 17:50 | |
kraai | How, if at all, can I help with the Debian packaging of parrot and/or rakudo? | 17:51 | |
phenny | kraai: 28 May 18:20Z <moritz_> tell kraai that I've merged his 'book' branch with lots of typo corrections. Thank you very much! | ||
kraai | Ah, great! | ||
moritz_ | kraai: Rakudo needs parrot, so the first step would be to make sure parrot-2.6.0 is packaged for Debian | ||
jnthn | arggh...LOADS of test fail :-/ | ||
moritz_ | jnthn: legitimate? or wrong tests? | 17:52 | |
kraai: it would be really cool to have Rakudo packages in Debian | |||
rakudo: my $x; $x<b>; say "alive"; | |||
p6eval | rakudo 928f9d: OUTPUT«alive» | ||
17:52
zulon left
|
|||
jnthn | moritz_: Nah, my changes have broken things badly, somehow. | 17:53 | |
moritz_ | :( | ||
kraai | moritz_: I filed a bug report and patch required to build parrot 2.6.0 packages that could be used to build rakudo 2010.07: bugs.debian.org/584500. | ||
moritz_ | kraai++ | 17:54 | |
kraai | Is it OK to do an NMU? | ||
moritz_ is not familiar enough with Debian development process to answer that | 17:55 | ||
kraai | OK, I'll try the Debian Parrot packages mailing list, then. Thanks. | 17:56 | |
moritz_ | kraai++ | ||
kraai: might also be worth talking to allison on irc.perl.org#parrot, she's done quite a bit of work for the .deb packages from the parrot side | |||
17:57
envi_home left
|
|||
kraai | moritz_: Thanks for the suggestion, will do! | 17:57 | |
pugssvn | r31811 | moritz++ | [t/spec] .{ }-indexing scalars. RT #58372 | 17:58 | |
kraai | moritz_: Is "allison" her nick? | 17:59 | |
moritz_ | kraai: yes... though not online currently :( | ||
kraai | OK, I'll send the email and wait, then. | 18:00 | |
18:01
envi^home joined
|
|||
kraai | Is parrot 2.6.0 going to be the parrot version required by Rakudo Star? | 18:02 | |
moritz_ | yes | ||
kraai | moritz_: OK, thanks. | ||
pugssvn | r31812 | moritz++ | [t/spec] line numbers when accessors fails, RT #76112 | 18:07 | |
moritz_ | rakudo: warn() | 18:08 | |
p6eval | rakudo 928f9d: OUTPUT«Warning at line 22:/tmp/LmfNhe_WUQ» | ||
18:09
s1n left
|
|||
moritz_ | rakudo: try { warn } | 18:12 | |
p6eval | rakudo 928f9d: ( no output ) | ||
18:16
Sanitoeter left
|
|||
tylercurtis | moritz_: the API I'm designing for the LLVM PassManager equivalent for my GSoC might alleviate your uneasiness about having to add methods to Perl6::Compiler to add optimizations to some extent. | 18:18 | |
moritz_: With the Tree::Optimizer class I'm in the process of implementing in the pass-manager branch of my GSoC repo, you would only need to add a single method to the compiler. Right now, all it supports is simple subs for passes, but I'll post a blog post later today on parrot.org describing how it will work. | |||
moritz_: The single method would be something like "method optimizepast ($past) { my $opt := Tree::Optimizer.new; $opt.register(some-optimization-sub); $opt.run($past); }". | |||
moritz_ | tylercurtis: sounds good | ||
tylercurtis: I'm currently entangled in way too many projects, and don't poor much tuits into the optimiation branch. Should change after R* and YAPC::EU (I just fear your gsoc project will be over then) | 18:19 | ||
18:21
Sanitoeter joined
|
|||
pugssvn | r31813 | colomon++ | [t/spec] Add two new tests that don't work (fudged out). | 18:22 | |
18:23
TSa joined,
s1n joined
|
|||
pugssvn | r31814 | moritz++ | [t/spec] test file for warnings | 18:24 | |
18:25
M_o_C joined
|
|||
moritz_ | down to 3 tickets that need testing, but are otherwise resolved | 18:27 | |
dalek | kudo: a22f027 | moritz++ | t/spectest.data: run warn.t |
||
jnthn | moritz_: Great! | 18:28 | |
moritz_ | kraai: you forgot to add the patch to RT #76704 | 18:29 | |
kraai: it's something I've been wanting for some time, but forgot to do it :-) | 18:30 | ||
kraai | Argh. | ||
It makes the Debian package fail to build a second time. :( | |||
18:31
kjeldahl joined
|
|||
kraai | I've attached the patch. Thanks for letting me know it was missing. | 18:33 | |
tylercurtis | moritz_: My GSoC will be almost over after YAPC::EU, but I certainly intend to keep working on the library afterwards. (although I won't feel as guilty when I spend a day hacking on Rakudo and other things I'm not getting paid for instead ;) | ||
pugssvn | r31815 | colomon++ | [t/spec] Add a simpler case of op= failing for imported operators. | 18:34 | |
dalek | kudo: a9db7c0 | (Matt Kraai)++ | build/Makefile.in: Make the clean target remove perl6_group.* and src/binder/bind.o. |
18:39 | |
18:41
isBEKaml left
|
|||
pugssvn | r31816 | colomon++ | [t/spec] Properly fudge that last test. | 18:46 | |
frettled | mmmm, fudge | ||
moritz_ segfaults | 18:51 | ||
18:54
hanekomu_9 joined
|
|||
frettled segways. | 18:55 | ||
moritz_ | jnthn: btw 'perl6 proof-of-concept install zavolaj' in pls also segfaults here (binder in the backtrace) | 18:57 | |
jnthn | moritz_: Does it always segfault for installing anything, or just that? | 19:01 | |
jnthn wonders what the last changes to the binder were | |||
pmichaud | hello | ||
colomon | jnthn: so, now Vector + works, but (automatically generated) Vector += doesn't. | 19:02 | |
moritz_ | jnthn: ran 4 times, 4 segfaults | ||
jnthn | colomon: That won't be getting fixed anytime soon. | 19:03 | |
colomon | jnthn: I kind of thought that might be trouble. | 19:04 | |
19:04
cono left
|
|||
jnthn | colomon: It's the same difficult underlying issue as why things need to be declared our if you want to get them to work as meta-operators. | 19:04 | |
19:04
azert0x left
|
|||
jnthn | colomon: It's a pretty deep issue though - one that I hope to discuss with pmichaud++ at YAPC::EU. | 19:04 | |
19:05
cono joined
|
|||
colomon | jnthn++ | 19:05 | |
jnthn | My "make $_ be the LHS of smart-match while we evaluate teh RHS" patch seems to be looking OK in the spectests. | 19:06 | |
19:07
azert0x joined,
macroron left
|
|||
tylercurtis | colomon, jnthn: does overloading existing operators in modules now work? | 19:07 | |
moritz_ | jnthn: \o/ | ||
colomon | tylercurtis: yes | ||
jnthn++ | |||
tylercurtis | jnthn++ I can start making some progress on my unit-correct math library now. :) | 19:09 | |
colomon | I should have Vector.pm up and running again in a few minutes, if I don't get sidetracked. | ||
jnthn | \o/ | 19:10 | |
moritz_: I wonder if it's worth trying to bisect to find when proof-of-foncept started to segfault. | 19:11 | ||
moritz_: Or SVG. | |||
colomon | (may take a few days for the other stuff provided in the Vector package.) | ||
moritz_ | jnthn: maybe... I'll go a-hunting for a good revision | ||
jnthn | moritz_++ | ||
19:14
audreyt joined,
ChanServ sets mode: +o audreyt
|
|||
Tene | audreyt! | 19:15 | |
moritz_ | doesn't look genuine | ||
pmichaud | although ChanServ accepted the nick | ||
moritz_ | pmichaud: yes, it only checks nicks, not host mask | ||
19:16
ChanServ sets mode: +l 1,
renormalist was kicked by ChanServ (CLEAR USERS used by audreyt (): u really shouldnt use nick!*@* masks in access listings ;))),
astinus was kicked by ChanServ (CLEAR USERS used by audreyt (): u really shouldnt use nick!*@* masks in access listings ;))),
kolibrie was kicked by ChanServ (CLEAR USERS used by audreyt (): u really shouldnt use nick!*@* masks in access listings ;))),
diakopter was kicked by ChanServ (CLEAR USERS used by audreyt (): u really shouldnt use nick!*@* masks in access listings ;))),
jjore_ was kicked by ChanServ (CLEAR USERS used by audreyt (): u really shouldnt use nick!*@* masks in access listings ;))),
sorear was kicked by ChanServ (CLEAR USERS used by audreyt (): u really shouldnt use nick!*@* masks in access listings ;))),
betterworld was kicked by ChanServ (CLEAR USERS used by audreyt (): u really shouldnt use nick!*@* masks in access listings ;))),
mathw was kicked by ChanServ (CLEAR USERS used by audreyt (): u really shouldnt use nick!*@* masks in access listings ;))),
estrabd_afk was kicked by ChanServ (CLEAR USERS used by audreyt (): u really shouldnt use nick!*@* masks in access listings ;))),
_ilbot2 was kicked by ChanServ (CLEAR USERS used by audreyt (): u really shouldnt use nick!*@* masks in access listings ;))),
Helios was kicked by ChanServ (CLEAR USERS used by audreyt (): u really shouldnt use nick!*@* masks in access listings ;))),
moritz_ was kicked by ChanServ (CLEAR USERS used by audreyt (): u really shouldnt use nick!*@* masks in access listings ;))),
opx^away was kicked by ChanServ (CLEAR USERS used by audreyt (): u really shouldnt use nick!*@* masks in access listings ;))),
Gothmog_ was kicked by ChanServ (CLEAR USERS used by audreyt (): u really shouldnt use nick!*@* masks in access listings ;))),
felipe was kicked by ChanServ (CLEAR USERS used by audreyt (): u really shouldnt use nick!*@* masks in access listings ;))),
revdiablo was kicked by ChanServ (CLEAR USERS used by audreyt (): u really shouldnt use nick!*@* masks in access listings ;))),
frettled was kicked by ChanServ (CLEAR USERS used by audreyt (): u really shouldnt use nick!*@* masks in access listings ;))),
patch was kicked by ChanServ (CLEAR USERS used by audreyt (): u really shouldnt use nick!*@* masks in access listings ;))),
pnu was kicked by ChanServ (CLEAR USERS used by audreyt (): u really shouldnt use nick!*@* masks in access listings ;))),
john__ was kicked by ChanServ (CLEAR USERS used by audreyt (): u really shouldnt use nick!*@* masks in access listings ;))),
ascent_ was kicked by ChanServ (CLEAR USERS used by audreyt (): u really shouldnt use nick!*@* masks in access listings ;))),
mdxi was kicked by ChanServ (CLEAR USERS used by audreyt (): u really shouldnt use nick!*@* masks in access listings ;))),
szbalint was kicked by ChanServ (CLEAR USERS used by audreyt (): u really shouldnt use nick!*@* masks in access listings ;))),
saaki was kicked by ChanServ (CLEAR USERS used by audreyt (): u really shouldnt use nick!*@* masks in access listings ;))),
athomason was kicked by ChanServ (CLEAR USERS used by audreyt (): u really shouldnt use nick!*@* masks in access listings ;))),
perigrin was kicked by ChanServ (CLEAR USERS used by audreyt (): u really shouldnt use nick!*@* masks in access listings ;))),
solarion was kicked by ChanServ (CLEAR USERS used by audreyt (): u really shouldnt use nick!*@* masks in access listings ;))),
rhr was kicked by ChanServ (CLEAR USERS used by audreyt (): u really shouldnt use nick!*@* masks in access listings ;))),
mtve was kicked by ChanServ (CLEAR USERS used by audreyt (): u really shouldnt use nick!*@* masks in access listings ;))),
gfldex was kicked by ChanServ (CLEAR USERS used by audreyt (): u really shouldnt use nick!*@* masks in access listings ;))),
breinbaas was kicked by ChanServ (CLEAR USERS used by audreyt (): u really shouldnt use nick!*@* masks in access listings ;))),
frooh was kicked by ChanServ (CLEAR USERS used by audreyt (): u really shouldnt use nick!*@* masks in access listings ;))),
nsh_ was kicked by ChanServ (CLEAR USERS used by audreyt (): u really shouldnt use nick!*@* masks in access listings ;))),
sunnavy_ was kicked by ChanServ (CLEAR USERS used by audreyt (): u really shouldnt use nick!*@* masks in access listings ;))),
fda314925 was kicked by ChanServ (CLEAR USERS used by audreyt (): u really shouldnt use nick!*@* masks in access listings ;)))
20:50
tomaw left
|