»ö« | perl6.org/ | nopaste: paste.lisp.org/new/perl6 | 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 lichtkind on 5 March 2010. |
|||
00:02
BrowserUk joined
00:24
whiteknight joined,
gbacon joined
|
|||
snarkyboojum | 32911 passing tests o/ | 00:45 | |
00:49
hercynium joined
|
|||
snarkyboojum | over 83% pass rate | 00:54 | |
jnthn | :-) | 00:55 | |
00:56
jrtayloriv left
|
|||
snarkyboojum | that's amazing progress.. almost 600 additional passing tests since may 21 | 00:57 | |
(core-devs)++ :) | |||
jnthn | FINALLY! | ||
Backtraces that might actually be useful. | |||
snarkyboojum | :O | 00:59 | |
jnthn | With actual line numbers that relate to your Perl 6 program. :-) | 01:00 | |
01:01
BrowserUk left
01:08
pausenclown left
01:12
pausenclown joined
|
|||
snarkyboojum | jnthn: wowsers :) | 01:12 | |
01:17
molaf_ joined
01:19
f00li5h is now known as coin-robot
01:20
coin-robot is now known as f00li5h
01:21
molaf left
|
|||
jnthn | snarkyboojum: gist.github.com/418686 for example | 01:27 | |
lue | ohai! | 01:29 | |
Did I just hear that backtraces are ..... useful? | |||
sorear | snarkyboojum: don't forget certain non-core devs who make tests pass. | 01:30 | |
lue | jnthn: if a part of Rakudo's insides were to fail, would it still look as nice as this? | 01:37 | |
jnthn | lue: Well, not if the part of the internals is the backtrace printer. ;-) | ||
lue: For subs in the setting, it should be able to do something sensible in theory. | |||
lue: In practice we may have one more Parrot bug to fix yet. | 01:38 | ||
lue | .rnd(must .... get.... phone..... with MeeGo) | 01:40 | |
jnthn | OK, dare I commit the backtrace code... :-) | 01:41 | |
sorear | YES | ||
jnthn | :-) | ||
We can debug and hack on it together to make it awesome. :-) | |||
sorear | It doesn't matter if you break all the spectests - it will still be worth pulling | ||
jnthn | sorear: Oh, it doesn't do that | ||
All pass | 01:42 | ||
Just didn't want to commit something that's even less helpful that the status quo. | |||
But I think what I have now actually reporting real line numbers is more helpful. | |||
lue | .oO(the next step in error message technology: STD-like suggestions as to what zarked up) |
01:43 | |
sorear | I never payed attention to Parrot backtraces | ||
jnthn | sorear: Heh. Maybe nobody other than a few core devs did either. I dunno. :-) | ||
sorear: They probably look a tad offputting though. | |||
sorear | No, they were better than your version | 01:44 | |
However, not containing any correct information compensated for the superior formatting | |||
jnthn | sorear: Heh, superior? :-) | 01:45 | |
What do you like better about the Parrot ones? | |||
Also, patches welcome. ;-) | |||
sorear | I thought we had the various fields lining up, but I just checked and I misremembered | 01:46 | |
jnthn | sorear: ah | ||
sorear: But nice thought. | |||
sorear | also, I'd like to see more information in backtraces | ||
01:46
whiteknight left
|
|||
sorear | like the PC value | 01:46 | |
(I really did use that) | |||
jnthn | Erm | ||
Wow. :-) | |||
sorear: In that case I'm going to suggest, let's provide a flag --pir-backtrace or something, that disables this. | 01:47 | ||
sorear | does your version know how to format long names when it's not being compiled into GLOBAL? | ||
jnthn | sorear: And then people can see the real Parrot backtrace and get the PC. | ||
sorear: Not yet, that's one of the next things to add. | |||
sorear | What about code in other HLL universes? | ||
jnthn | sorear: It should be able to show that too. | ||
sorear: It assumes it has a Parrot sub and anything more it can find out beyond that is a bonus. | 01:48 | ||
01:52
Intensity joined
|
|||
dalek | kudo: b066578 | jonathan++ | (3 files): First cut of a backtrace printer. With recent Parrot improvements, it actually come, but commit early, commit often and all that. :-) |
01:53 | |
kudo: 339d0b9 | jonathan++ | build/PARROT_REVISION: Bump PARROT_REVISION to get latest Parrot with various backtrace production |
|||
sorear wonders whether enhancing the "make generated code pretty" functions would help or hurt debugging | 02:03 | ||
jnthn | sorear: Depends what chance they stand of breaking the code they're beautifying. ;_) | 02:05 | |
02:05
alester joined
|
|||
jnthn | Wow...it's getting light outside already. :-) | 02:07 | |
lue | Well then, good morning jnthn o/ | 02:09 | |
jnthn | ;-) | 02:11 | |
Saturday late-night hacking has been *so* easier since I moved to Sweden. :-) | |||
(Having church at 5pm rather than 9:30am means I can stay up just as long as I want and not worry about missing it. :-)) | 02:12 | ||
sorear: Adding namespace to the backtrace too | 02:13 | ||
lue | I thought now it was Sunday early-morning hacking :) | 02:14 | |
jnthn | It's all relative. :-) | 02:19 | |
dalek | kudo: 8b3bb0b | jonathan++ | src/Perl6/BacktracePrinter.pm: Include fully qualified names of routines in the backtrace, plus better handling |
02:22 | |
02:30
eternaleye joined,
patspam left
|
|||
jnthn | lue: Thanks for the inspiration - I tried to do something nice to make it clear what comes from the core setting: gist.github.com/418727 | 02:37 | |
lue | Ooh, nice. Now it helps both coders & P6 developers in one shot! | 02:41 | |
jnthn | :-) | ||
I hope this will make using Rakudo more -Ofun. :-) | 02:42 | ||
lue | I'm assuming <anon> is short for anonymous ? | ||
jnthn | lue: yeah | ||
lue | ERROR: maybe you should try calling something that exists | ||
jnthn | And the angles to indicate it's something special-ish. | ||
;-) | |||
rakudo: 0/0 | 02:43 | ||
p6eval | rakudo 9581e6: OUTPUT«Divide by zerocurrent instr.: 'infix:<div>' pc 365157 (src/gen/core.pir:22103)» | ||
lue | please email this error code to Rakudo developers, so they can help diagnose the problem: ID-10T | ||
jnthn | Awww, it's not updated yet. | ||
oh argh, I seem to have broken something | 02:44 | ||
lue | RD* is just a space station full of broken vases :P | 02:45 | |
jnthn | Heh, found it. | 02:50 | |
Only broke -e and repl. ;-) | |||
lue | "only" :) | 02:51 | |
jnthn | I "only" have a small glass of Nemiroff! | ||
lue | It "only" accounts for ~50% of all examples in P6 RT tickets :) | ||
jnthn | What, Nemiroff? :-) | 02:52 | |
yay, all fixed. | |||
lue | .oO(Quaternions — A healthy part of this balanced 3D modeling library) |
02:53 | |
rakudo: my @a=((1,2,3),(4,5,6)); my @b=((7,8),(9,1),(2,3)) my @c = (@a * @b); say @c | 02:57 | ||
p6eval | rakudo 8b3bb0: OUTPUT«===SORRY!===Confused at line 11, near "my @b=((7,"» | ||
lue | Awesome, jnthn! | ||
jnthn++ | |||
But that looks suspiciously like STD... | 02:58 | ||
std: my @a=((1,2,3),(4,5,6)); my @b=((7,8),(9,1),(2,3)) my @c = (@a * @b); say @c | |||
p6eval | std 30972: OUTPUT«===SORRY!===Two terms in a row at /tmp/zK7i83RhI9 line 1:------> ,3),(4,5,6)); my @b=((7,8),(9,1),(2,3)) ⏏my @c = (@a * @b); say @c expecting any of: bracketed infix infix or meta-infix statement modifier loopParse | ||
..failedFAILED 00:01 … | |||
jnthn | STD is still a bit better | ||
Colors. :-) | |||
lue | Not for me [at least in Konversation] | ||
jnthn | But yes, we are trying to converge with STD, so we now are SORRY about parse errors. | ||
Ah, irssi shows them. | |||
lue | What caused a perfectly good matrix multiplication to go wrong? | 02:59 | |
jnthn | A missing ; before the my | ||
(the my @c) | |||
lue | durh :) | ||
rakudo: my @a=((1,2,3),(4,5,6)); my @b=((7,8),(9,1),(2,3)); my @c = (@a * @b); say @c | |||
p6eval | rakudo 8b3bb0: OUTPUT«36» | ||
lue | hyper operators go like «*», right? | 03:00 | |
rakudo: my @a=((1,2,3),(4,5,6)); my @b=((7,8),(9,1),(2,3)); my @c = (@a «*» @b); say @c | |||
p6eval | rakudo 8b3bb0: OUTPUT«7162741018» | ||
lue | rakudo: my @a=((1,2,3),(4,5,6)); my @b=((7,8),(9,1),(2,3)); my @c = (@a «*» @b); say @c.perl | ||
jnthn | Yup, if you want both sides to dwim. | ||
p6eval | rakudo 8b3bb0: OUTPUT«[7, 16, 27, 4, 10, 18]» | ||
lue | I don't think it's dwimming | 03:01 | |
[for matrices anyway] | |||
jnthn | Oh, it won't do matrix mult. :-) | ||
lue | rakudo: my @a=((1,2,3),(4,5,6)); my @b=((7,8),(9,1),(2,3)); my @c = (@a »*« @b); say @c.perl | ||
p6eval | rakudo 8b3bb0: OUTPUT«[7, 16, 27, 4, 10, 18]» | ||
lue strangles air | 03:02 | ||
jnthn watches the air wither and die | |||
lue thinks of a machine that converts CO2 into diamonds (carbon) and oxygen | |||
how would you make matrix multiplication work? | 03:03 | ||
What happens above shouldn't happen, mathematically. It's errorful :) | 03:04 | ||
[or can I not have 2d arrays?] | |||
jnthn | Well, thing is that parcels flatten | ||
03:04
gbacon left
|
|||
lue | I thought that happened. | 03:05 | |
jnthn | So for a 2D array you want [1,2,3] not (1,2,3). | ||
lue | ah, dankon | ||
03:06
gbacon joined
|
|||
lue | rakudo: my @a=en.wikipedia.org/wiki/Special:Searc...3],[4,5,6; my @b=en.wikipedia.org/wiki/Special:Searc...9,1],[2,3; my @c = @a »*« @b; say @c.perl | 03:06 | |
p6eval | rakudo 8b3bb0: OUTPUT«===SORRY!===Confused at line 11, near "my @a=http"» | ||
lue | AH!? | ||
rakudo: my @a=en.wikipedia.org/wiki/Special:Searc...3],[4,5,6; my @b=en.wikipedia.org/wiki/Special:Searc...9,1],[2,3; my @c = @a »*« @b; say @c.perl | |||
p6eval | rakudo 8b3bb0: OUTPUT«===SORRY!===Confused at line 11, near "my @a=http"» | ||
lue | > my @a=en.wikipedia.org/wiki/Special:Searc...3],[4,5,6; my @b=en.wikipedia.org/wiki/Special:Searc...9,1],[2,3; my @c = @a »*« @b; say @c.perl | ||
what the... | |||
Could this have happened because of something server-side? | 03:07 | ||
rakudo: say [[1,2,3], [4,5,6]] | 03:08 | ||
p6eval | rakudo 8b3bb0: OUTPUT«1 2 3 4 5 6» | ||
03:09
eternaleye left
|
|||
lue | rakudo: my @a=[[1,2,3], [4,5,6]]; my @b=[[7,8], [9,1], [2,3]]; my @c = @a »*« @b; say @c.perl | 03:09 | |
p6eval | rakudo 8b3bb0: OUTPUT«[6]» | ||
TimToady | should fail | ||
lue strangles ozone, going for an extra oxygen this time | |||
TimToady | hyper is only for strict parallelism | 03:10 | |
lue | apparently, typing en.wikipedia.org/wiki/Special:Searc...,3],[4,5,6 causes some weird parsing thru IRC... | ||
TimToady | it's not do-what-a-mathematician-means | ||
lue | what if I am a mathematician? Then it has to dwim. :) | 03:11 | |
lue ponders a Matrix type... | |||
TimToady | »op« does not mean that | ||
jnthn | TimToady: I suspect Rakudo doesn't yet know about nested arrays in hypers. There was a patch to support it, but don't think it was yet applied. | ||
TimToady: (thus why it didn't fail as expected) | |||
lue | rakudo: my @a=[[1,2,3], [4,5,6]]; my @b=[[7,8], [9,1], [2,3]]; my @c = @a «*» @b; say @c.perl # just in case it differs | ||
p6eval | rakudo 8b3bb0: OUTPUT«[6]» | 03:12 | |
03:12
meppl left
|
|||
TimToady | that also should not do what you mean :) | 03:12 | |
lue | How does that happen? | ||
just the [6], i mean | |||
TimToady | I imagine it's multiplying 2 by 3 | ||
jnthn | I fear so. :-) | 03:13 | |
lue: It's numifying the arrays (and getting the number of elements) rather than descending into them. | |||
TimToady | rakudo: my @a = [1,2,3], [4,5,6]; say (@a »*» 3).perl | 03:14 | |
lue | yeah. Seems rakudo is too scared to go farther than the first dimension :) | ||
p6eval | rakudo 8b3bb0: OUTPUT«[9, 9]» | ||
TimToady | alpha: my @a = [1,2,3], [4,5,6]; say (@a »*» 3).perl | ||
jnthn | phenny: help | ||
phenny | jnthn: Hi, I'm a bot. Say ".commands" to me in private for a list of my commands, or see inamidst.com/phenny/ for more general details. My owner is sbp. | ||
p6eval | alpha 30e0ed: OUTPUT«Non-dwimmy hyperoperator cannot be used on arrays of different sizes or dimensions.in Main (file <unknown>, line <unknown>)» | ||
jnthn | hugme: help | ||
hugme | jnthn: (add $who to $project | list projects | show $project | hug $nickname | tweet $twittername $message ) | ||
jnthn | hugme: tweet rakudoperl Rakudo now has proper backtraces with line numbers from your Perl 6 code. | 03:15 | |
hugme | jnthn: You need to register with freenode first | ||
jnthn | hugme: tweet rakudoperl Rakudo now has proper backtraces with line numbers from your Perl 6 code. | ||
hugme hugs jnthn; tweet delivered | |||
jnthn | \o/ | ||
Well, maybe I should take some sleep. | 03:16 | ||
lue | yeah, before noon happens. :) Good night jnthn o/ | ||
OOPS morning | |||
03:17
Wolfman2000 joined
|
|||
lue | I love jnthn's new backtrace :) | 03:19 | |
Wolfman2000 | seems like rakudo is being updated more recently. (I've been following twitter) | ||
dalek | kudo: 6e39fe1 | jonathan++ | src/Perl6/Compiler.pir: Little tweak so things in the core setting get shown in the backtrace with a |
03:21 | |
kudo: 34542f7 | jonathan++ | src/Perl6/Actions.pm: Emit file annotation so backtraces have file names. |
|||
jnthn | night o/ | 03:23 | |
TimToady | o/ | ||
Wolfman2000 | Still, Twitter doesn't say everything. How goes the Perl 6 development? | 03:25 | |
TimToady | it's rapidly catching up with the future | 03:26 | |
lue | .oO(And the future keeps coming to the present. It's very annoying. :) ) |
||
Wolfman2000 | *chuckles* | ||
I'm hoping to get a new Macbook Pro in a few months. Should have plenty of ram and hard drive space. When that happens, I can try compiling Perl 6 again......unless you guys managed to make Perl 6 compile with a gig of ram with no problems. | 03:27 | ||
TimToady | that is much improved, I think | 03:28 | |
03:28
BrowserUk joined
|
|||
Wolfman2000 | ...my current laptop has 2 GB ram, roughly 20 GB hard drive space left. Think I can compile Rakudo at this point with few issues? | 03:29 | |
03:30
alester left
|
|||
TimToady | looks like you only need 275MB of disk | 03:30 | |
Wolfman2000 | hard drive space I assume for that | 03:31 | |
TimToady | and 2GB ram should be plenty adequate | ||
I certainly have no trouble with 3GB | 03:32 | ||
Wolfman2000 | Fair enough | ||
lue | is src/Perl6/BacktracePrinter.pm written in NQP ? | ||
Darn. Looks like it is. I looked at it and thought := was implemented :) | 03:33 | ||
Wolfman2000 | well, may as well try to build it now | 03:35 | |
Wolfman2000 gets the git source | |||
lue has been struck by what to call %_ | 03:39 | ||
lue is slowly going mad again | |||
Is there any language with a pronoun for a hash-like structure? | 03:40 | ||
Wolfman2000 | ...huh. It compiled...relatively quickly. Seemed too quick. | 03:42 | |
Wolfman2000 goes to run the tests | 03:43 | ||
sorear | rakudo compilation has gotten a LOT faster in the last two months | 03:44 | |
it was around 10 hours when I joined the project for me | |||
now it's down to 7 ... minutes | |||
Wolfman2000 | Compiler.pir took awhile to compile, but it...did its job | ||
lue | Maybe when R* comes along, I should try to compile on this old computer again. | ||
Wolfman2000 | It was about 7 minutes on my end as well, and I'm also pushing my ram usage to full. | ||
Wolfman2000 is watching an iTunes U movie | 03:45 | ||
sorear | should take about 300 now | ||
2 months ago, it was running 2500 | |||
which hurt a lot with 384 physical :/ | |||
(all numbers in megabytes) | |||
lue | I'd say. that's my number of physical ram (in MiB) | 03:47 | |
Wolfman2000 | failed part of the spectest | 03:49 | |
t/spec/S05-capture/caps.rakudo ................................. Failed 2/21 subtests | |||
03:50
gbacon left
|
|||
sorear | you ... ran... the... spectest....? | 03:51 | |
lue | I think I heard something about that a while ago. | ||
Wolfman2000 | still running | ||
sorear | oh okay | ||
Wolfman2000 | it's just the first failing line | 03:52 | |
sorear | the spectest takes like 4 hours, i's very exhaustive and not really intended to be run online | ||
Wolfman2000 | ...no summer classes on Memorial day. I can wait if need be | ||
sorear | (we'll call it Perl 6 once it passes the entire spectest with no TODOs) | ||
Wolfman2000 | I haven't seen any TODOs yet. Still on S-06 | 03:53 | |
err...just skipped to S-09 somehow | |||
sorear | the TODOs are applied by a special script that runs before the test harness | ||
when you see a file .rakudo, it's been modified | |||
Wolfman2000 | t/spec/S12-attributes/instance.rakudo .......................... ok random line that has .rakudo. Clarify what you mean by modification here. Should they be .t instead? | 03:54 | |
03:54
envi^home joined
|
|||
lue | the .rakudo means it's been fudged. | 03:54 | |
aka some parts of that test file don't pass yet, and break the spectest. They are "fudged" so things don't break. | |||
sorear | Wolfman2000: look in the t/spec/S12-attributes/instance.t file | 03:55 | |
lue | [How I understand it at least] | ||
sorear | you'll see some special comments like #?rakudo skip 1 "This is not yet implemented" | ||
Wolfman2000 | ...I'll check later | ||
t/spec/S29-context/die.rakudo .................................. Failed 2/15 subtests | 03:56 | ||
03:56
patspam joined
03:57
patspam left
03:58
isBEKaml joined
04:00
Eevee left
|
|||
Wolfman2000 | computer slowing up... | 04:00 | |
hopefully not getting kernel paniced here | |||
04:01
hercynium left
04:05
alester joined
|
|||
isBEKaml | TimToady: S02:629, missing variable? | 04:07 | |
04:11
xinming_ is now known as xinming
|
|||
Wolfman2000 | ...huh. The Perl 6 code we made for Advent 2009 is part of the test spec now? | 04:12 | |
Also: the spec test has finished. | |||
sorear: 30-40 minutes | |||
...huh. TimToady: paste.lisp.org doesn't seem to want me to paste to #perl6. Perhaps you can check? | 04:14 | ||
lue | That happens sometimes. Try gist.github.org | ||
Wolfman2000 | no server | ||
or rather, can't find server | 04:15 | ||
04:15
Eevee joined
|
|||
lue | on paste.lisp.org ? | 04:16 | |
Wolfman2000 | gist.github.org couldnt' find server | ||
saaki | maybe your dns is flubbered, been working for me | 04:17 | |
lue | .com | ||
saaki | gist.github.com | ||
lue | sorry :) | ||
Wolfman2000 | paste.lisp.org/display/110959 | ||
pugssvn | r30973 | lwall++ | [S02] missing var noticed by isBEKaml++ | 04:27 | |
Wolfman2000 | ...do I have to --gen-parrot AGAIN for that one change? | 04:28 | |
04:29
TimToady sets mode: +vvv buubot dalek hugme,
TimToady sets mode: +vv ilogger2 IRSeekBot,
TimToady sets mode: +vv p6eval phenny,
TimToady sets mode: +v pugssvn
|
|||
lue | :O I search for 'dr math quaternion' and on the first page I get a CPAN module for quaternions (P5 of course, but still) | 04:30 | |
Wolfman2000 | ...oh, that's pugs. Not rakudo. | ||
sorear | Wolfman2000: --gen-parrot is for Parrot changes, which aren't even announced here | 04:31 | |
also, Rakudo doesn't generally track the latest parrot | 04:32 | ||
there is a file in your Rakudo tree, build/PARROT_REVISION | |||
Wolfman2000 | ...I forgot there are many bots in this room. | ||
sorear | TimToady: hi! any comments on the LTM-in-rules question? | ||
Wolfman2000 | rakudo: ([+] (1..999).grep( { $_ % 3 == 0 || $_ % 5 == 0 } )) | 04:33 | |
p6eval | rakudo 8b3bb0: ( no output ) | ||
Wolfman2000 | ...didn't do it right | ||
sorear | Wolfman2000: and yes, advent stuff is in the spectests. It makes great regression fodder | ||
TimToady | sorear: I usually set BEGIN { $ENV{STD5DEBUG} = -1; } | ||
and figure it out from the logs | |||
sorear | Wolfman2000: you need to add a .say there | 04:34 | |
Wolfman2000 | rakudo: ([+] (1..999).grep( { $_ % 3 == 0 || $_ % 5 == 0 } )).say | ||
sorear | Wolfman2000: p6eval just reads and evaluates, it doesn't print | ||
p6eval | rakudo 8b3bb0: OUTPUT«233168» | ||
Wolfman2000 | sorear: if I recall right...doesn't rakudo ahve a time limit? | ||
...guess not | |||
TimToady | alias mc='less -R' will display the log in colors on Linux | ||
sorear | TimToady: I've actually been setting that on the command line | ||
ye | |||
but the question which I refer to is a semantic one, not a debugging one | 04:35 | ||
take a look at STD.pm6:1430 | |||
notice that both sides of the alternation start with <.ws> | 04:36 | ||
there should be no LTM going on, right? | |||
TimToady | ah, that is factored out | ||
Wolfman2000 | rakudo: "5065726C36".comb(/<xdigit>**2/)».fmt("0x%s")».chr.join.say | ||
p6eval | rakudo 8b3bb0: OUTPUT« | 04:37 | |
Wolfman2000 | ...yeah, that still fails | ||
rakudo: "5065726C36".comb(/<xdigit>**2/).map: { chr "0x" ~ $_ }).join.say | |||
p6eval | rakudo 8b3bb0: OUTPUT«===SORRY!===Confused at line 11, near ").join.say"» | ||
TimToady | if there's whitespace before [ a | b | c ] it ignores the first whitespace on each alternative | ||
Wolfman2000 | ...and that should have worked | ||
sorear | TimToady: gimme5 factors it out, but I rather suspect it's doing so in error, since it changes the semantics - <.ws> ends a LTM pattern | ||
TimToady | a new LTM starts at the [] alternation | 04:38 | |
Wolfman2000 | rakudo: ("5065726C36".comb(/<xdigit>**2/).map: { chr "0x" ~ $_ }).join.say | ||
p6eval | rakudo 8b3bb0: OUTPUT«Perl6» | ||
Wolfman2000 | there | ||
TimToady | each alternation is its own LTM | ||
unless the first thing in a token | |||
sorear | I don't follow | ||
TimToady | but certaint that particular one stands on its own | ||
sorear | each alternation starts with sigspace | 04:39 | |
so LTM shouldn't be able to affect which one is called? | |||
04:39
finanalyst joined
|
|||
TimToady | sorear: I said it factors that whitespace out | 04:40 | |
since there is whitespace before the [], there is no need to match first inside the [] | |||
so it ignores that | |||
sorear | gimme5 does, viv doesn't | ||
I think S05 supports viv | |||
but I'm not sure | 04:41 | ||
TimToady | well, then S05 is wrong :) | ||
or at least incomplete | 04:42 | ||
finanalyst | good morning all | 04:46 | |
TimToady | biab & | ||
finanalyst | run across a bug, just checking to see if its known already | ||
04:47
Lorn left
|
|||
finanalyst | rakudo: sub s ( $a ) { return $a }; class A { has $.b = s(2) }; my A $x .= new(); say $x.b | 04:48 | |
p6eval | rakudo 8b3bb0: OUTPUT«Could not find sub &sin <anon> at line 11in main program body at line 11» | ||
sorear | TimToady: pastie.org/983940 ? | ||
lue | rakudo: our sub s ( $a ) { return $a }; class A { has $.b = s(2) }; my A $x .= new(); say $x.b | 04:50 | |
p6eval | rakudo 34542f: OUTPUT«2» | ||
finanalyst | lue: thanx | ||
lue | you are welcome. | 04:51 | |
sorear | TimToady: As a different but related issue, STD parses x ** y as x <.ws> ** y. Wrong? | 04:53 | |
lue | afk | 04:56 | |
05:03
envi^home left
|
|||
TimToady | sorear: that looks fine | 05:05 | |
S05:945 talks about the other | 05:06 | ||
pugssvn | r30974 | sorear++ | [S05] Describe alternation left-factoring in rules, long implemented by gimme5 | 05:07 | |
sorear | what about sigspace with ~ ? | ||
TimToady | I think ~ currently screws up under sigspace | 05:08 | |
at the moment it's just a "Doctor, it hurts when I do this." | 05:09 | ||
"So, don't do that." | |||
sorear | the viv component which reparses ~ currently just strips <.ws> from both sides | ||
it runs a bit too low level though and even strips /explicit/ <.ws> ... | |||
I wonder what the ideal behavior is | 05:10 | ||
TimToady | well, if we think of '(' ~ ')' <atom> as subbing in the <atom> for the ~, it kinda makes sense to transfer the ws to around <atom> | 05:11 | |
but generally, in practice, <atom> will be something that already handles whitespace | |||
<statementlist> for instance | |||
or EXPR | |||
so the situation doesn't arise often in practice, and we could just say it treats it as '('~')' | 05:12 | ||
sorear | *lightbulb* the parsing behavior we want for ~ is exactly the same as for ** | ||
TimToady | praps | ||
sorear | let's parse it as a psuedo quantifier | ||
TimToady | whatever works, and isn't *too* disgusting :) | 05:13 | |
sorear | It'd be less disgusting than the current approach. | ||
heh. I used $self->{dba} in the translation code for ~, but ~ is parsed with dba:additive... | 05:19 | ||
TimToady | you can always override the default dba | ||
sorear | no, $self is the match object for the ~ regex_infix__S_Tilde | 05:20 | |
that code would have been correct if I had written it as a method on a RE_node | |||
pugssvn | r30975 | sorear++ | [viv] Fix a stupid phaso which caused all parsing failures to be reported as "additive" | 05:21 | |
05:24
alester left
|
|||
TimToady | biab & | 05:28 | |
05:31
kaare joined,
kaare is now known as Guest67735
|
|||
pugssvn | r30976 | sorear++ | [viv] More aggressive filtering of sigspace in ~ | 05:32 | |
05:39
JimmyZ joined
|
|||
JimmyZ | std: { } () | 05:40 | |
p6eval | std 30975: OUTPUT«===SORRY!===Strange text after block (missing comma, semicolon, comment marker?) at /tmp/GZr1AW0sff line 1:------> { }⏏ () expecting any of: bracketed infix infix or meta-infix statement modifier loopParse failedFAILED | ||
..00:01 115m» | |||
JimmyZ | std: {}() | ||
p6eval | std 30975: OUTPUT«ok 00:01 111m» | ||
JimmyZ | rakudo: {}() # oh hi, is it a bug? | 05:41 | |
p6eval | rakudo 34542f: OUTPUT«invoke() not implemented in class ''in main program body at line 11:/tmp/fV4VLyeY9P» | ||
JimmyZ | rakudo: { say 'hi'; }() | ||
p6eval | rakudo 34542f: OUTPUT«hi» | ||
JimmyZ | rakudo: { say 'hi'; } () | ||
p6eval | rakudo 34542f: OUTPUT«===SORRY!===Confused at line 11, near "{ say 'hi'"» | ||
JimmyZ | rakudo: { } () | 05:42 | |
p6eval | rakudo 34542f: OUTPUT«===SORRY!===Confused at line 11, near "{ } ()"» | ||
JimmyZ | std: { } () | 05:43 | |
p6eval | std 30975: OUTPUT«===SORRY!===Strange text after block (missing comma, semicolon, comment marker?) at /tmp/lH4PkUNOFT line 1:------> { }⏏ () expecting any of: bracketed infix infix or meta-infix statement modifier loopParse failedFAILED | ||
..00:01 112m» | |||
JimmyZ | TimToady, hello | 05:44 | |
TimToady | a postfix may not have space in front of it | ||
JimmyZ | rakudo: { say 'hi' }() | 05:48 | |
p6eval | rakudo 34542f: OUTPUT«hi» | ||
JimmyZ | rakudo: { }() | ||
p6eval | rakudo 34542f: OUTPUT«invoke() not implemented in class ''in main program body at line 11:/tmp/uhsZpZL0Wn» | ||
TimToady | rakudo: {;}() | ||
p6eval | rakudo 34542f: OUTPUT«invoke() not implemented in class ''in main program body at line 11:/tmp/cKD0G2h84Y» | ||
TimToady | rakudo: Hash.new() | 05:49 | |
p6eval | rakudo 34542f: ( no output ) | ||
JimmyZ | rakudo: {1;}() | ||
TimToady | rakudo: Hash.new()() | ||
p6eval | rakudo 34542f: ( no output ) | ||
rakudo 34542f: OUTPUT«invoke() not implemented in class ''in main program body at line 11:/tmp/zLkd13L4Fp» | |||
JimmyZ | rakudo: {say;}() | ||
p6eval | rakudo 34542f: OUTPUT«» | ||
JimmyZ | rakudo: {True;}() | 05:50 | |
p6eval | rakudo 34542f: ( no output ) | ||
JimmyZ | rakudo: {return True;}() | ||
p6eval | rakudo 34542f: ( no output ) | ||
JimmyZ | rakudo: {return 1;}() | ||
p6eval | rakudo 34542f: ( no output ) | ||
TimToady | rakudo: say {;}.WHAT | ||
p6eval | rakudo 34542f: OUTPUT«Hash()» | ||
JimmyZ | rakudo: {1;}() | ||
p6eval | rakudo 34542f: ( no output ) | ||
JimmyZ | rakudo: {return 1;}.WHAT | ||
TimToady | {;} shouldn't be a hash | ||
p6eval | rakudo 34542f: ( no output ) | ||
JimmyZ | rakudo: {return 1;}.WHAT.say | 05:51 | |
p6eval | rakudo 34542f: OUTPUT«Block()» | ||
JimmyZ | {} is a Hash or Block: | 05:53 | |
{} is a Hash or Block? | |||
rakudo: {}.WHAT.say | |||
p6eval | rakudo 34542f: OUTPUT«Hash()» | ||
JimmyZ | rakudo: {}() | ||
p6eval | rakudo 34542f: OUTPUT«invoke() not implemented in class ''in main program body at line 11:/tmp/zeA1me5H0K» | ||
sorear | JimmyZ: stop | ||
hold on | 05:54 | ||
JimmyZ | already stop | ||
I got two different results with same code | 05:56 | ||
mberends | jnthn++ did an awesome nightshift on Rakudo backtraces! | 05:58 | |
sorear | JimmyZ: S04:1463 | 06:02 | |
06:12
isBEKaml left
|
|||
pugssvn | r30977 | sorear++ | [viv] Bring whitespace in alternations in line with S05 changes | 06:17 | |
06:17
JimmyZ left
|
|||
sorear | TimToady: Since it's semantically important, what would you say about doing this analysis at the STD level? | 06:20 | |
TimToady | makes sense | 06:21 | |
sorear notes | |||
sorear is not going to actually change STD until viv is working | |||
06:26
Eevee left
06:27
Eevee joined
06:28
jhuni left
|
|||
sorear | oh, wonderful | 06:40 | |
TimToady | good w or bad w? | ||
sorear | JSPON looks like *exactly* what I want for a new viv output form | ||
it's got all the useful features of YAML but without the 200-page spec | 06:41 | ||
mberends | :) | ||
sorear: can you get by without YAML anchors? | 06:43 | ||
sorear | mberends: no | 06:44 | |
every VAST node lists its children twice | |||
once positionally and once by name | 06:45 | ||
mberends | JSON does not do anchors afair | 06:46 | |
sorear | correct | 06:48 | |
which is why I said JSPON | 06:49 | ||
JSPON is an extension of JSON which adds anchors and object types | |||
mberends | .oO( and I thought it was a little tyPpo ;-) |
06:52 | |
pugssvn | r30978 | snarkyboojum++ | [t/spec] Added Caesar Cipher tests for Perl 6 Advent Calendar Day 8 | 06:53 | |
r30979 | sorear++ | [viv] Work around STD's misparsing of whitespace in quantifiers for now | 07:13 | ||
07:15
[mark] joined
07:19
gfx joined
|
|||
sorear | something is amiss... despite the superior optimization technology in viv, viv-compiled STD.pmc appears to be *slower* | 07:22 | |
much. much. much. slower | 07:23 | ||
takes over 8 minutes to parsefail on line 277 | |||
instead of 4 minutes to parse all 6000 lines | |||
07:42
Su-Shee joined
|
|||
snarkyboojum | is it a bug that you need to prepend a module sub with our to use Module::Name::mysub() ? | 07:43 | |
moritz_ | nope, that's spec | 07:44 | |
you can also export them (doesn't need "our") | |||
"our" means "put into the symbol table", and Module::Name::mysub() is an access to the symbol table | 07:45 | ||
snarkyboojum | oh, so the first example of day 12 is wrong | ||
in the advent calendar | |||
moritz_ | might very well be the case | ||
snarkyboojum | cool.. I've always used our, so good to know :) | ||
thanks moritz_++ | 07:46 | ||
07:46
Jmax left
|
|||
snarkyboojum | moritz_: would this be an appropriate way to test 'use' etc in day 12? gist.github.com/418867 | 07:47 | |
07:47
eternaleye joined
|
|||
Su-Shee | good morning. | 07:48 | |
mberends: can I bore you with some basic questions today? I played with some more mysql C api functions. (after I had coffee :) | 07:50 | ||
moritz_ | snarkyboojum: yes; though tradtionally the package go into t/spec/packages/ | ||
snarkyboojum | k | ||
will move it to there then | 07:51 | ||
moritz_ starts crying | 07:53 | ||
t/spec/S05-capture/caps.rakudo ................................. Failed 2/21 subtests | |||
that was working yesterday | |||
sorear | crying? | ||
moritz_ | then I broke it | ||
then I fixed it again | |||
now it's broken | |||
sigh | |||
Su-Shee offers a tissue. | |||
moritz_ | thanks *sniff* | ||
Su-Shee | also remember Brazil! "it fixed itself..?!" and then robert de niro comes to the rescue. ;) | 07:54 | |
moritz_ | huh, it's non-deterministic | 07:56 | |
Su-Shee | it's awakening! have you named it yet? | ||
moritz_ | oh, the backtrace is printed to STDOUT | 07:59 | |
finanalyst | rakudo: for 1,2 X <a b> { say "$^x $^y" } | 08:01 | |
p6eval | rakudo 34542f: OUTPUT«1 a 1 b2 a 2 b» | ||
finanalyst | rakudo: for 1,2 X (<a b> X 'x') { say "$^x $^y" } | 08:02 | |
p6eval | rakudo 34542f: ( no output ) | ||
finanalyst | moritz_: am i missing something in the second range? | ||
moritz_ | something's wrong | 08:03 | |
I guess it has to do with list flattening | |||
finanalyst | ok i will file a bug | ||
rakudo: for 1,2 X | (<a b> X 'x') { say "$^x $^y" } | |||
p6eval | rakudo 34542f: ( no output ) | ||
finanalyst | rakudo: for 1,2 X (| <a b> X 'x') { say "$^x $^y" } | 08:04 | |
p6eval | rakudo 34542f: ( no output ) | ||
08:10
Ross joined
|
|||
mberends | Su-Shee: yes, I'm also working on SQL stuff | 08:19 | |
snarkyboojum | moritz_: multi subs aren't exported by default in current Rakudo? | 08:20 | |
Su-Shee | mberends: I didn't commit yesterday because I didn't ran make test without errors. in that regard I probably have a question too. | ||
moritz_ | snarkyboojum: no idea | ||
snarkyboojum | moritz_: ok :) | ||
sorear | snarkyboojum: afaik nothing is exported by default | ||
snarkyboojum | moritz_: doesn't seem to work :) | ||
sorear: ok - I should look up the spec - the advent post indicates that they are, but perhaps they don't work for a good reason :) | 08:21 | ||
otherwise why would people be writing out multi sub :) | |||
sorear has just discovered that Q works in double quoted strings in Perl 5 | 08:23 | ||
snarkyboojum | not quite sure what this means "When there is no proto for a multi, the autogenerated proto is assumed to be exportable." perlcabal.org/syn/S11.html#line_114 | 08:28 | |
mberends | Su-Shee: let's have a look at the test error. I've been studying mysql_fetch_field() etc and am afraid zavolaj may be unable to handle that because it returns a struct, not an array. | 08:32 | |
Su-Shee | mberends: ha, that's where I poked around the entire evening yesterday. :) | 08:33 | |
the test error occurs at "disconnect" ;) I'm just running without it to see wether or not this is my only fail | 08:34 | ||
mberends: I've also added mysql_fetch_fields and tried it. | |||
moritz_ | rakudo: say Seq.new(1, 2, 3) | 08:38 | |
p6eval | rakudo 34542f: OUTPUT«123» | ||
moritz_ | rakudo: say Seq.new(1, 2, 3).perl | ||
p6eval | rakudo 34542f: OUTPUT«(1, 2, 3)» | ||
moritz_ | rakudo: say %(Seq.new(1, 2, 3)).perl | ||
p6eval | rakudo 34542f: OUTPUT«Method 'hash' not found for invocant of class 'Seq'in main program body at line 11:/tmp/KMQY0vuGzD» | ||
moritz_ | rakudo: say (my %h = Seq.new(1, 2, 3)).perl | 08:39 | |
p6eval | rakudo 34542f: OUTPUT«Odd number of elements found where hash expectedin '!STORE' at line 4224:CORE.settingin main program body at line 11:/tmp/8ndTQS7Mqb» | ||
moritz_ | rakudo: say (my %h = Seq.new(1, 2, 3, 5)).perl | ||
p6eval | rakudo 34542f: OUTPUT«{"1" => 2, "3" => 5}» | ||
mberends | Su-Shee: if you're willing to overlook the remaining attributes of a field, the name is at the beginning of the mysql_field struct (a pointer to a null terminated string). It's a bit of a cheat, but I think we can fish the field name out of that. | ||
moritz_ | rakudo: say (my % = Seq.new(1, 2, 3, 5)).perl | 08:40 | |
Su-Shee | mberends: I was always stuck with the first field name and couldn't get to anything else. | ||
p6eval | rakudo 34542f: OUTPUT«===SORRY!===Malformed my at line 11, near "% = Seq.ne"» | ||
moritz_ | rakudo: say (my (%) = Seq.new(1, 2, 3, 5)).perl | 08:41 | |
p6eval | rakudo 34542f: OUTPUT«(!whatever_dispatch_helper, )» | ||
Su-Shee | mberends: I ended up with magically suddenly having the dbname in some fields and things like that. | ||
moritz_ | .oO( ... ) |
||
mberends | Su-Shee: ah I see, well that is progress anyway | ||
Su-Shee | mberends: well I learned a lot. ;) | 08:42 | |
08:42
mantovani joined
|
|||
pugssvn | r30980 | snarkyboojum++ | [t/spec] Added Fancy::Utilities and initial tests for Perl 6 Advent Calendar Day 12: Modules and Exporting | 08:42 | |
moritz_ | \o/ these shiny backtraces make programming with rakudo a lot more fun | ||
mberends | +1 :-) :-) | ||
moritz_ | time to update my poniewishlist blog entry :-) | 08:43 | |
Su-Shee | mberends: I also learned that for some reason if OpaquePointer gets returned I can't do an if on it. | ||
mberends | it really is worth upgrading to today's ble[ea]ding Rakudo for the better error messages | ||
08:43
sorear left
|
|||
Su-Shee | ok, first I fix make test here. :) | 08:44 | |
"open source is when you already worked an hour while not even being out of bed yet." | |||
mberends | haha | 08:45 | |
moritz_ | lol | ||
snarkyboojum | Su-Shee: that applies to my paid work often as well :) | ||
Su-Shee | in comparison to "work" where you at least were allowed to get up and shower and dress :) | ||
snarkyboojum: I work fully dressed and showered in an office. yay for civilization! ;) | 08:46 | ||
snarkyboojum | Su-Shee: on a good day I try to work fully dressed and showered in a park with water views :) | 08:47 | |
mberends feels an envious twitch | |||
Su-Shee | snarkyboojum: this doesn't impress me at all, because this is my view from work: en.wikipedia.org/wiki/File:Berlin_night.jpg | 08:48 | |
moritz_ | rakudo: say (my %h = Seq.new('a' => 0)).perl | 08:55 | |
p6eval | rakudo 34542f: OUTPUT«{"a" => 0}» | ||
snarkyboojum | beautiful :) | ||
moritz_ | Su-Shee: you work late at night? :-) | ||
snarkyboojum | I see more trees and water though ;) (hard to beat sydney harbour) | 08:56 | |
Su-Shee | usally not, my wo-worker took the picture in winter :) | ||
08:57
sorear joined
|
|||
moritz_ | ah well, in winter it's easier to be at work while it's dark | 08:57 | |
rakudo: say Hash.new(|('abc' => 3)).perl | 08:59 | ||
p6eval | rakudo 34542f: OUTPUT«Too many positional parameters passed; got 2 but expected 1in 'EnumMap::new' at line 4035:CORE.settingin main program body at line 11:/tmp/UxTycbvg6n» | ||
09:01
gfx left
|
|||
dalek | kudo: dd8b9f0 | moritz++ | docs/ChangeLog: update ChangeLog |
09:07 | |
kudo: 5aba135 | moritz++ | build/PARROT_REVISION: bump PARROT_REVISION yet again to get backtraces printed to STDERR |
|||
kudo: 6eec67c | moritz++ | src/core/Seq.pm: Seq hash coercion |
|||
Su-Shee | aaah finally... | 09:08 | |
09:09
M_o_C joined
|
|||
moritz_ | jnthn: it seems the reported filename is always that of the main script, never that of a module | 09:09 | |
Su-Shee | mberends: my make test fail was my fault. no further questions. ;) | ||
mberends | Su-Shee: :) the 10-mysql.t has far too many tests using fetchrow_arrayref and almost none using fetchrow_array. Could you change for example lines 406 and 409 to test your new fetchrow_array() ? | 09:13 | |
Su-Shee | I saw, I was just looking for an example to copy. | 09:14 | |
406 and 409 it is. | 09:15 | ||
mberends | :) | ||
Su-Shee | ok, first getting up. | 09:18 | |
mberends | there is a new, much more concise and effective FakeDBI test script under construction locally. | 09:19 | |
pugssvn | r30981 | sorear++ | [viv] Quash a bunch of escaping bugs in regexes | 09:20 | |
Su-Shee | mberends: oh, nice :) | 09:24 | |
pugssvn | r30982 | sorear++ | [viv] Handle backslash forms in adverbs correctly | 09:28 | |
r30983 | sorear++ | [viv] Implement 'does' trait | 09:31 | ||
r30984 | sorear++ | [viv] Implement does and is with our scoped bases | 09:33 | ||
dalek | p-rx: d1d1d31 | moritz++ | src/stage0/ (4 files): update stage0 |
09:36 | |
sorear | viv-on-STD-on-viv just passed a torture test of quoted strings; I'll let it run overnight *off* | 09:38 | |
mberends | sorear++ | ||
pugssvn | r30985 | snarkyboojum++ | [t/spec] Added initial tests for Perl 6 Advent Calendar Day 13: Junctions | 09:48 | |
snarkyboojum | wow, that was cool, I was getting a 'Divide by zero current instr.: '' pc -1 ((unknown file):-1)' error when I ran rakudo outside the rakudo root directory, until I did make install; nice error :) | 09:52 | |
now I get a 'Confused at line 31....' error message | |||
:) | |||
Su-Shee | \o/ t/10-mysql.t .. ok | 09:54 | |
All tests successful. | |||
mberends | ship it! | 09:55 | |
Su-Shee | how does that actually work with p6 tests right now? it can "ok" and a little more? | ||
mberends | "is" gives nicer diagnostics when something fails | 09:56 | |
Su-Shee | but it really is perl6 already with no help of perl5? | 09:57 | |
sorear | agh. It failed, ONE LINE LATER | ||
mberends | rakudo/Test.pm is a little subset of the typical P5 frameworks | ||
snarkyboojum | Su-Shee: you have ok, nok, is, isnt, is_approx, isa_ok, dies_ok, lives_ok, eval_dies_ok, eval_lives_ok, is_deeply, and anything else from Test.pm | ||
sorear | after 8+ minutes | ||
snarkyboojum | Su-Shee: and Test.pm is written in Perl 6 | 09:58 | |
Su-Shee looks at it. | |||
mberends: pastebin.org/292310 | 10:01 | ||
mberends | that should pass | 10:02 | |
sorear | At my current rate of progress debugging viv, I will finish on Tuesday, July 29, 2042 | ||
snarkyboojum | moritz_: none of day 21 passes on current rakudo unfortunately | 10:03 | |
mberends | heh, window fail from my editor: "my $\o/" | ||
10:07
Ross left
10:09
Ross joined
|
|||
snarkyboojum | I love the for @list Z ^@list.elems -> $item, $i { } idiom for looping over a list and still getting an index $i into it | 10:12 | |
well, I think it's neat anyway | 10:13 | ||
10:14
masak joined
|
|||
masak | oh hai, #perl6! | 10:14 | |
Su-Shee | do I have to do more then git push if I'm not pushing onto my repositories? | ||
mberends | masak: hai! | ||
masak does the "it's weekend!" dance | 10:15 | ||
mberends | Su-Shee: git add the changed files, git commit, then git push | ||
Su-Shee | done. | ||
mberends joins the dancing masak | |||
masak | :) | 10:16 | |
m6locks | it's sunday, tomorrow the weekend will be over ;____; | 10:17 | |
yet, a couple of minutes left to dance | |||
Su-Shee | "minutes"? :) | ||
m6locks | sure thing, time flies | 10:18 | |
snarkyboojum has less than 4 hours of weekend left :( | |||
masak | time flies like a Haskell arrow. | ||
m6locks | :P | ||
masak | snarkyboojum! \o/ | ||
snarkyboojum | masak \o/ ! | ||
:) | |||
masak | snarkyboojum: I haven't had any chance to play with if statements in Yapsi yet. thought I'd do that today. | ||
10:19
envi^home joined
|
|||
snarkyboojum | masak: in all truth, I haven't played with that stuff I was going to look at either :| | 10:19 | |
10:19
pmurias joined
|
|||
masak | 's ok :) | 10:19 | |
snarkyboojum | masak: I've been writing tests for advent calendar posts instead :O but I will! | ||
masak | snarkyboojum++ # doing stuff | 10:20 | |
snarkyboojum | o/ | ||
Su-Shee | how much better social control works compared to office control amazes me every day :) | ||
mberends | Su-Shee: fetchrow_array() tests out fine here too :-) | 10:23 | |
Su-Shee | *pew* :) | ||
Su-Shee broke a billion euro thing last week, I'm a little on edge with tests. ;) | 10:24 | ||
snarkyboojum | rakudo: my grammar A {} | 10:28 | |
p6eval | rakudo 34542f: ( no output ) | ||
snarkyboojum | alpha: my grammar A {} | ||
p6eval | alpha 30e0ed: OUTPUT«Malformed declaration at line 10, near "grammar A "in Main (file <unknown>, line <unknown>)» | ||
snarkyboojum | lexically scoped grammars are supported right? | ||
Su-Shee | mberends: is there anything else relatively simple to do? | 10:31 | |
mberends | Su-Shee: I'm wondering about column names | 10:32 | |
the way these things develop starts with a proof of concept in zavolaj/examples | 10:33 | ||
colomon | we are passing 32,920 tests!!!!! | ||
moritz_++ | 10:34 | ||
10:34
pmurias left
|
|||
snarkyboojum | colomon: so close to the magic 33k :P | 10:34 | |
Su-Shee | mberends: I've added yesterday mysql_fetch_fields and made it a Positional of Str to look what's actually in there. But I didn't go any further. | 10:36 | |
10:36
whiteknight joined
|
|||
colomon | btw, snarkyboojum (backlogging): for @list.kv -> $i, $item | 10:36 | |
snarkyboojum | colomon: ah .. nicer! :) | 10:37 | |
colomon++ | |||
colomon | not that Z isn't awesome, mind you... | ||
snarkyboojum | it seems like it'd be less efficient though :) | ||
using kv should be faster? | |||
10:38
TiMBuS joined
|
|||
colomon | rakudo: my @list = 'a' ... 'f'; for @list.kv -> $i, $item { say "$i ==> $item" } | 10:38 | |
p6eval | rakudo 34542f: OUTPUT«0 ==> a1 ==> b2 ==> c3 ==> d4 ==> e5 ==> f» | ||
snarkyboojum | heh | ||
rakudo: my @list = 1,2,3; for @list.kv -> $i, $item { say $item, " at ", $i } # just did that | |||
p6eval | rakudo 34542f: OUTPUT«1 at 02 at 13 at 2» | ||
mberends | Su-Shee: ok, I'll try columns from there. Another idea, there is a $sth.rows that says how many rows the last insert/update/delete affected (not select). Could you look into that? | ||
colomon | snarkyboojum: using Z for that is probably a bit less efficient, yes. | 10:39 | |
Su-Shee | lemme look. | ||
snarkyboojum | colomon: cool - that was my only niggle using it :) | 10:40 | |
colomon just realized there was another entire round of patches since his test run that had 32,920 passes. | 10:41 | ||
Su-Shee | mberends: that would be a method on the sth object returning null or a number? or should this be an attribute? | 10:43 | |
mberends | Su-Shee: there is a mysql_affected_rows() in the API to call after executing a query. Stash the result in a new attribute. A rows() method should retrieve the value of the attribute. | 10:44 | |
Su-Shee | ok. | 10:45 | |
10:46
Ross left,
meppl joined
10:47
Ross joined
10:54
JimmyZ joined
|
|||
masak | rakudo: / a+ +/ | 10:59 | |
p6eval | rakudo 6eec67: OUTPUT«===SORRY!===Can't quantify zero-width atom at line 11, near "/"» | ||
masak | \o/ | ||
fwiw, I like STD's error message better, though. | |||
std: / a+ +/ | |||
p6eval | std 30985: OUTPUT«===SORRY!===quantifier quantifies nothing at /tmp/zM4ggqAbPb line 1:------> / a+ +⏏/Check failedFAILED 00:01 114m» | ||
masak | less technical. | ||
mind if I change it? it's probably in nqp-rx, right? | 11:00 | ||
colomon | +1 | 11:01 | |
arnsholt | Agreed | 11:04 | |
Su-Shee | rows: 1 | 11:06 | |
mberends | \o/ | 11:07 | |
11:07
molaf_ left
|
|||
Su-Shee | oh and non-ascii chars work as well. just to mention it. | 11:09 | |
masak | ok, so the message is here: github.com/perl6/nqp-rx/blob/master...ons.pm#L79 | ||
I don't know about any of that stage0/stage1/stage2 stuff, but I'm assuming that if I make the change on that line, it will eventually find its way into Rakudo. | 11:10 | ||
jnthn | morning, #perl6 | ||
masak | jnthn! \o/ | ||
jnthn | masak! \o/ | ||
colomon | o/ | ||
jnthn | masak: Yes, change it in that file. | ||
masak: make bootstrap-files if you want ot update the bootstrap | 11:11 | ||
masak: But otherwise you can wait for the next time we have something bigger to roll in. | |||
masak | I'll give it a shot. I want to learn it anyway. | ||
jnthn | masak++ | ||
Bumping PARROT_REVISION is what all the cool kids are doing this weekend anyway. ;-) | 11:12 | ||
masak | hm, it didn't work so well. I think I have a stale independent Parrot install connected with my nqp-rx. | ||
I'll just take the easy way out for now and push this. | |||
jnthn | Yeah, you need an up to date Parrot. | 11:13 | |
dalek | p-rx: 45a6612 | masak++ | src/Regex/P6Regex/Actions.pm: aligned error message with STD's |
||
11:18
Ross^ joined
11:20
Ross left
|
|||
mberends | Su-Shee: (non-ascii:) oh! Also uncomment FakeDBI.pm6:77,86 with your next commit to update what works. Git pull before you edit/commit. | 11:20 | |
jnthn | moritz_: Ooh, yay, you beat me to fixing the STDERR thingy. :-) | 11:22 | |
moritz_: Noted bug with module file names, thanks. | 11:23 | ||
finanalyst | jnthn: much nicer working with nicer backtracing. ++++ | 11:25 | |
masak | ooh! ¬e is implemented! \o/ | ||
someone++ | |||
Su-Shee | mberends: ah. ok. I see. will do. | 11:26 | |
jnthn | finanalyst: :-) | ||
masak | it was moritz_++, it seems. | ||
11:27
azert0x joined
|
|||
Su-Shee | food now. | 11:27 | |
mberends | rakudo: my $x=42;say x # deliberate error | ||
p6eval | rakudo 6eec67: OUTPUT«Could not find sub &xin main program body at line 11:/tmp/MWzaw3MYDr» | ||
mberends | rakudo: my $x=42;say eval("x") # deliberate error vanishes | 11:28 | |
p6eval | rakudo 6eec67: OUTPUT«» | ||
11:28
azert0x left
|
|||
jnthn | rakudo: my $x=42; eval("x"); sy | 11:29 | |
p6eval | rakudo 6eec67: OUTPUT«Could not find sub &syin main program body at line 11:/tmp/14ZcyqkyRD» | ||
jnthn | ffff | ||
rakudo: my $x=42; eval("x"); say $! | |||
p6eval | rakudo 6eec67: OUTPUT«Could not find sub &x» | ||
jnthn | mberends: There she is. :-) | ||
mberends | ah, thanks jnthn | ||
11:29
azert0x joined,
azert0x left
11:32
azert0x joined
11:33
azert0x left
|
|||
dalek | kudo: 5a8bd03 | masak++ | src/core/IO.pm: [IO.pm] better params name in ¬e |
11:33 | |
pugssvn | r30986 | colomon++ | [t/spec] Improve fudge message. | ||
11:33
JimmyZ left
|
|||
jnthn | masak: WHAT'S A GOOD REASON? | 11:36 | |
masak | :) | ||
indicating that something unusual is happening, like BEGIN or $*ERR. | |||
pugssvn | r30987 | moritz++ | [t/spec] test for $/.chars (RT #74694) | 11:37 | |
jnthn | 'tis a busy busy weekend in Perl 6 land. :-) | ||
dalek | kudo: 3d540b8 | moritz++ | build/PARROT_REVISION: bump PARROT_REVISION to get fix for RT #74694 |
11:39 | |
11:39
BrowserUk left,
jaldhar left,
jaldhar joined
11:40
kel_ left,
breinbaas left,
breinbaas joined,
frooh joined
11:41
kel_ joined
11:42
s1n joined,
PacoLinux joined
11:44
azert0x joined
|
|||
jnthn | colomon: rt.perl.org/rt3/Ticket/Display.html?id=75246 may be one for you to glance at, if/when you have chance. | 11:45 | |
masak | I think rt.perl.org/rt3/Ticket/Display.html?id=75440 is a manifestation of another bug whose ticket I can't find right now. the one about several gather blocks not interacting well. | 11:46 | |
rakudo: enum A::B <a b c>; say b | |||
p6eval | rakudo 6eec67: ( no output ) | ||
masak | odd. it gives no output. | 11:47 | |
moritz_ | rakudo: say ('a' ~~ /a/).orig.PARROT | 11:48 | |
p6eval | rakudo 6eec67: OUTPUT«CodeString» | ||
colomon | jnthn: noted | ||
moritz_ | rakudo: say ('bcatt' ~~ /a/).orig.rindex('a', 1) | ||
p6eval | rakudo 6eec67: OUTPUT«Method 'rindex' not found for invocant of class 'CodeString'in main program body at line 11:/tmp/HSPoJeYb1q» | ||
moritz_ | .orig needs fixing | 11:49 | |
or maybe nqp-rx :-) | |||
rakudo: class MyMatch does Associative { method postcircumfix:<[ 9> { "foo" } }; $/ = MyMatch.new; say $0 | |||
p6eval | rakudo 6eec67: OUTPUT«Method 'postcircumfix:<[ ]>' not found for invocant of class 'MyMatch'in main program body at line 1» | ||
moritz_ | rakudo: class MyMatch does Associative { method postcircumfix:<[ ]> { "foo" } }; $/ = MyMatch.new; say $0 | 11:50 | |
p6eval | rakudo 6eec67: OUTPUT«Too many positional parameters passed; got 2 but expected 1in 'MyMatch::postcircumfix:<[ ]>' at line 11:/tmp/EkQvy1dQkHin main program body at line 11:/tmp/EkQvy1dQkH» | ||
moritz_ | rakudo: class MyMatch does Associative { method postcircumfix:<[ ]>($) { "foo" } }; $/ = MyMatch.new; say $0 | ||
p6eval | rakudo 6eec67: OUTPUT«foo» | ||
jnthn | Typing fail :-) | 11:54 | |
oops | |||
jnthn should comment on the current line, not one a screenful up:-) | |||
in 'A::foo' at line 3:Foo.pm | 11:55 | ||
in 'bar' at line 4:test.p6 | |||
woo | |||
moritz_ | rakudo: class A { has $foo; method b { say $.foo } }; A.b | ||
p6eval | rakudo 6eec67: OUTPUT«Method 'foo' not found for invocant of class ''in 'A::b' at line 11:/tmp/8h7m4KGiDfin main program body at line 11:/tmp/8h7m4KGiDf» | ||
moritz_ | rakudo: class A { has $foo; method b { say $foo } }; A.b | ||
p6eval | rakudo 6eec67: OUTPUT«Type objects are abstract and have no attributes, but you tried to access in 'A::b' at line 11:/tmp/budHlgChUdin main program body at line 11:/tmp/budHlgChUd» | ||
moritz_ | that's missing the attribute name in the error message | ||
rakudo: class A { has $!foo; method b { say $!foo } }; A.b | |||
p6eval | rakudo 6eec67: OUTPUT«Type objects are abstract and have no attributes, but you tried to access in 'A::b' at line 11:/tmp/sPdey7Lkmtin main program body at line 11:/tmp/sPdey7Lkmt» | ||
jnthn | That's LTA. | 11:56 | |
Ah, think I see why. | |||
moritz_ | rakudo: '1 3' ~~ /(\d+) \s (\d+)/; say $0..$1 | 11:58 | |
p6eval | rakudo 6eec67: OUTPUT«Method 'succ' not found for invocant of class 'Match'in 'RangeIter::get' at line 4030:CORE.settingin 'say' at line 1in 'say' at line 4464:CORE.settingin main program body at line 11:/tmp/pjxGJoU7PA» | ||
colomon | jnthn: well, started to look at the hyper patch, but I'm nearly out of battery here and my power cord is in a room with my sleeping wife and child. | ||
moritz_ | Cool should have .succ | ||
colomon | the patch does look straightforward enough. | 11:59 | |
don't understand why $i ~~ Iterable wouldn't work.... | |||
moritz_ | it uses statement-modifying loops because the normal form breaks rw-aliasing of $_ | 12:00 | |
(if we're talking about the same patch) | |||
or was it 'if' instead of loops? | |||
12:01
gbacon joined
|
|||
colomon | I'm talking about 75246.... | 12:01 | |
I don't see $_ involved. | |||
12:02
colomon left
|
|||
jnthn | > class A { has $!foo; method b { say $!foo } }; A.b | 12:05 | |
Type objects are abstract and have no attributes, but you tried to access $!foo | |||
\o/ | |||
masak | \o/ | 12:06 | |
jnthn | masak: When you get to play with Rakudo master, let me know how you get on with the new backtraces. | 12:07 | |
masak: I want to try and get them awesome. :-) | |||
masak | jnthn: compiling right now. will get back to you. :) | 12:08 | |
jnthn expects masak++ will be a reliable source of breakage and bugs. | |||
masak becomes happy over this exchange: twitter.com/rentzsch/status/15005085024 twitter.com/cbarrett/status/15008109927 | |||
dalek | kudo: ff31b59 | jonathan++ | src/Perl6/Module/Loader.pm: Set $?FILES in module loader, so we end up with the correct filename annotation |
||
kudo: 478ba48 | jonathan++ | src/pmc/p6opaque.pmc: Correct busted format string to fix bad error message noticed by moritz++. |
|||
jnthn | nice :-) | 12:09 | |
masak | will we get backtraces in the REPL? | ||
jnthn | No | 12:10 | |
masak | pity. they could have been useful there. | ||
12:10
JimmyZ joined
|
|||
jnthn | I thought they'd be annoying there. :-) | 12:10 | |
masak | the parts that pertains to Perl 6, I mean. | ||
imagine that someone does 'use MyModule' and then calls something. | 12:11 | ||
12:11
smash_ joined
|
|||
masak | backtraces would definitely help in finding where errors come from. | 12:11 | |
smash_ | hello everyone | ||
jnthn | masak: The problem certainly isn't a technical one. | ||
masak: I can make it that way if folks want it that wya. | |||
*way | |||
masak | smash_: hi! | ||
jnthn | o/ smash_ | ||
12:11
colomon joined
|
|||
jnthn | masak: My gut just told me they wouldn't. | 12:11 | |
masak: fwiw, -e does have 'em. | 12:12 | ||
masak almost typed 'sudo make way instain mother' instead of 'sudo make install' :P | |||
jnthn | :D | ||
12:13
azert0x left
|
|||
jnthn | Everyone: thoughts on backtraces in repl welcome. Or I JFDI and we see how it feels. :-) | 12:13 | |
12:14
rv2733 joined
|
|||
masak | I'm testing them now. | 12:14 | |
snarkyboojum | my thoughts are they're already brilliantly better than they were :) | ||
masak | jnthn: fist impression: VERY NICE! | 12:15 | |
jnthn | .oO( a fist impression sounds painful ) |
||
masak | jnthn++ | ||
:D | |||
*frist :P | |||
snarkyboojum | line numbers have been spot on for me this evening - very helpful indeed | ||
masak | jnthn: maybe indent the lines starting with 'in' with 2 or 4 spaces? would help to pick out the error message easier, I think. | 12:16 | |
jnthn | masak: ooh, that could just work | ||
masak: If you want to try it yourself, btw, see src/Perl6/BacktracePrinter.pm | |||
(yes, *.pm* ;-)) | |||
masak | \o/ | 12:17 | |
jnthn | And just search for "in" | ||
masak | I can do it. | ||
but I'm not done testing it yet, so in a bit. | |||
jnthn | Sure | ||
But in general, feel free to tweak it a bit. | |||
12:18
whiteknight left
|
|||
masak | I've found a case where a line number is one-off. shoudl I nopaste it? | 12:19 | |
masak can't spell today | |||
I'm a bit worn out after yesterdays wedding party :) | |||
jnthn | masak: please | 12:20 | |
masak | I don't think it's the fault of the new backtraces thing, to be honest. | ||
jnthn | I knew you'd find something :-) | ||
masak | more like a result of parsing or something. | 12:21 | |
jnthn | Well, the other thing is that we don't have a lot of :node($/)s in Actions.pm as we maybe should. | ||
*as many | |||
masak | gist.github.com/418990 | ||
jnthn | So could very well be some wins to be had by some careful extra scattering of those. | ||
masak: curious | 12:23 | ||
masak: Does it get it right if you do pfft() ? | |||
as in, add parens? | |||
masak tries | |||
jnthn had a test very much like that which got it right | |||
masak | no. | ||
jnthn | ok | ||
12:24
M_o_C left
|
|||
masak | maybe it sees the statement as starting on line 1, or something? | 12:24 | |
jnthn | That's very possible. | ||
I just thought that it'd been getting it right. | |||
(I had a very similar test case...) | |||
jnthn plays spot the difference | 12:25 | ||
masak | & | 12:26 | |
jnthn | masak: hmm, I agree it seems to be one off there. | ||
12:28
pmurias joined
|
|||
pugssvn | r30988 | pmurias++ | [mildew] ported over the -Cgtk backends | 12:28 | |
r30988 | which displays the AST using a gtk viewer | |||
r30989 | pmurias++ | [mildew] add INFERRED-TYPE-TEST to MildewCORE.pad | 12:29 | ||
r30990 | pmurias++ | [mildew] added support for goto's and labels to mildew's m0ld frontend | |||
moritz_ | rakudo: regex foo { foo }; "foofoofoo" ~~ /<foo>+/; | 12:31 | |
bar($<foo>); sub bar(@foos) {} | |||
p6eval | rakudo 6eec67: OUTPUT«Useless declaration of has-scoped regex in a module; add our or my to install it in the lexpad or namespaceMethod 'foo' not found for invocant of class 'Cursor'in <anon> at line 11:/tmp/roxnZaSl4jin 'Cool::match' at line 2056:CORE.settingin 'Regex::ACCEPTS' at line | ||
..4807:CORE.se… | |||
moritz_ | rakudo: my regex foo { foo }; "foofoofoo" ~~ /<foo=&foo>+/; bar($<foo>); sub bar(@foos) {} | ||
p6eval | rakudo 6eec67: ( no output ) | ||
masak submits rakudobug | 12:35 | ||
moritz_ | huh? why now? | 12:36 | |
masak | for the one-off line number. | ||
moritz_ | waitwaitwait | ||
masak | sorry, wasn't too clear on that. | ||
masak waits | 12:37 | ||
moritz_ | something p6evalish? | ||
masak | no. | ||
moritz_ | don't trust its line numbers | ||
ok, good | |||
masak | right. | ||
moritz_ | then go ahead :-) | ||
masak | p6eval is 11 off :P | ||
or maybe 10, more like. | |||
dalek | kudo: 1727ca5 | moritz++ | (2 files): implement Cool.succ and .pred |
||
moritz_ | depends on whether you're used to 0-zero base line nubmers :-) | ||
masak | yuck, no! :P | 12:38 | |
moritz_ | hey, our arrays are 0-based already :-) | ||
masak | as they should. | 12:39 | |
jnthn | masak: Submitting that one you just gave me? | ||
masak | jnthn: aye. | ||
jnthn | masak: Think it may be a Parrot fix. | ||
masak: Thing is, the annotations in the PIR look correct. | |||
Trying my first guess at a patch now. | 12:40 | ||
masak | I'll include that in the Rakudobug. :) | ||
smash_ | what is the best practice for reporting errors to users ? | ||
jnthn | lol...if you make a syntax error in the ops...and then make bootstrap-ops...then it fails of course. So then you go and correct the error...apart from you broke the bootstrap and now can't build the ops builder to create the new ops to fix the problem. :-) | ||
masak | bootstrapping is fun that way. :) | 12:41 | |
jnthn | I guess I'm just not allowed to make any mistakes. :) | ||
masak | smash_: can you be more specific? | ||
smash_ | masak: sure, give me a sec | 12:42 | |
pugssvn | r30991 | moritz++ | [t/spec] unfudge tests for RT #67882, and add a few more (because I did not see the existing tests early enough) | 12:45 | |
smash_ | gist.github.com/418999 | ||
masak looks | 12:46 | ||
jnthn | use fatal; probably would catch that. | ||
moritz_ | uhm | ||
masak | currently, &open in Rakudo dies as if 'use fatal' were on. | 12:47 | |
moritz_ | shouldn't soft failures in sink context catch it too? | ||
masak | eventaully, yes. | ||
jnthn | moritz_: ah, possibly, yes | ||
We don't sink yet though | |||
moritz_ | aye, but pmichaud++ has a plan :-) | ||
masak | smash_: I definitely think it should issue an error message. | ||
jnthn | Aye. :-) | ||
masak | smash_: as to what it should be, is it possible to find out *why* the socket couldn't be created? that feels like the interesting part. | 12:48 | |
12:48
azert0x joined,
azert0x left,
azert0x joined
|
|||
jnthn | Well, I guess .open would return the failure that we'd get unhappy about, and it has the best chance of knowing that. | 12:49 | |
12:49
azert0x left
12:50
azert0x joined
|
|||
moritz_ | rakudo: say (1|2|3) ~~ Junction | 12:50 | |
p6eval | rakudo 478ba4: OUTPUT«1» | ||
jnthn | masak: OK, I got an improvement. | 12:54 | |
masak: There's two things at work here though. | |||
12:54
gbacon left
|
|||
masak | only two? :) | 12:54 | |
jnthn | 1) A place in Parrot there we probably should persist the PC in the context and didn't. I've fixed this. | 12:55 | |
2) Now I get the correct annotation reported, however putting a semicolon on the end of the line makes all the difference. | |||
pugssvn | r30992 | moritz++ | [t/spec] tests for RT #75368 and new spec wrt autothreading over negated operators | ||
jnthn | masak: That is, we now report the annotation that is emitted. | ||
masak: But if the semi is missing, we omit the line afterwards, not the line before. | |||
smash_ | gist.github.com/418999 well, it's not very elegant, any suggestion ? | 12:56 | |
jnthn | er, s/omit/emit/ | ||
moritz_ | smash_: fail(message) would be better | ||
smash_: which will automagically do the right thing (ie respect "use fatal", throw a soft exception) once it's implemented | 12:57 | ||
masak | smash_: what moritz_ said. but ¬e would have been more apt than &say, since it's an error condition. :) | 12:58 | |
moritz_ | masak: you might get some mails for closed RT tickets without tests. Those actually have tests, but the commit message mailer takes a while to add that info to RT (just FYI) | ||
12:58
Ross^ left
|
|||
masak | moritz_: thanks for the heads-up. | 12:58 | |
jnthn | masak: Anyway, half fixed. :-) | ||
I won't bump Parrot just for this - we'll get it next time somebody does. | 12:59 | ||
masak | nodnod | ||
moritz_ | rakudo: say [][].perl | 13:00 | |
p6eval | rakudo 478ba4: OUTPUT«[]» | ||
moritz_ | more or less what I espected :-) | ||
masak | rakudo: say [][][][][][][][][][].perl | ||
p6eval | rakudo 478ba4: OUTPUT«[]» | ||
masak | :) | ||
jnthn | rakudo: say 1 [[[[[[[[[+]]]]]]]]] 41 | 13:01 | |
p6eval | rakudo 478ba4: OUTPUT«42» | ||
13:01
azert0x left
13:02
azert0x joined
|
|||
masak | rakudo: say 1 [[[+] 41 | 13:02 | |
p6eval | rakudo 478ba4: OUTPUT«===SORRY!===Unable to parse infixish, couldn't find final ']' at line 11» | ||
jnthn | :-) | ||
masak feels a bit infixish today | |||
jnthn | std: say 1 [[[+] 41 | ||
p6eval | std 30992: OUTPUT«===SORRY!===Unable to parse bracketed infix at /tmp/CpzY4M1iRN line 1:------> say 1 [[⏏[+] 41Couldn't find final ']'; gave up at /tmp/CpzY4M1iRN line 1:------> say 1 [[[+]⏏ 41Parse failedFAILED 00:01 115m» | ||
jnthn | "gave up" :) | 13:03 | |
13:04
azert0x left,
azert0x joined
13:05
dalek left
|
|||
masak | walk & | 13:05 | |
13:06
dalek joined
|
|||
pugssvn | r30993 | pmurias++ | [mildew] the m0ld frontend parses conditional branches | 13:06 | |
13:08
azert0x left,
azert0x joined
13:13
snarkyboojum left,
snarkyboojum joined
13:15
azert0x left,
azert0x joined,
azert0x left,
azert0x joined
13:23
mtnviewmark joined
|
|||
cognominal | rakudo: say "hi"; ... | 13:26 | |
p6eval | rakudo 478ba4: OUTPUT«hi» | ||
cognominal | should not that blow up on me? | 13:27 | |
13:27
[mark] left
|
|||
cognominal | rakudo: ... | 13:27 | |
p6eval | rakudo 478ba4: ( no output ) | ||
13:28
JimmyZ left
|
|||
mberends hears a muffled 'plop' | 13:28 | ||
cognominal | At least the mere ... blows up on the p6 shell | ||
snarkyboojum | cognominal: but not with -e | 13:29 | |
cognominal | For once, I wanted a stack trace to see the work of jnthn++ and I fail to produce once. Ho, the irony. | 13:31 | |
13:31
JimmyZ joined
13:32
mtnviewmark left
|
|||
snarkyboojum | rakudo: foo() | 13:33 | |
p6eval | rakudo 478ba4: OUTPUT«Could not find sub &fooin main program body at line 1:/tmp/O0MQkzePjj» | ||
snarkyboojum | rakudo: die | 13:35 | |
p6eval | rakudo 478ba4: OUTPUT«Diedin main program body at line 11:/tmp/pRv7XBf45l» | ||
snarkyboojum | rakudo: last | 13:36 | |
13:36
colomon left
|
|||
p6eval | rakudo 478ba4: OUTPUT«in main program body at line 1» | 13:36 | |
snarkyboojum | rakudo: next | ||
p6eval | rakudo 478ba4: OUTPUT«in main program body at line 1» | ||
snarkyboojum | rakudo: warn | 13:38 | |
p6eval | rakudo 478ba4: OUTPUT«Warningin main program body at line 1» | ||
cognominal | anyway I can say of Perl 6 and | ||
rakudo: so Cool | 13:39 | ||
p6eval | rakudo 478ba4: ( no output ) | ||
snarkyboojum | rakudo: does Cool | 13:40 | |
p6eval | rakudo 478ba4: ( no output ) | ||
snarkyboojum | std: Mu | 13:41 | |
p6eval | std 30993: OUTPUT«ok 00:01 114m» | ||
13:42
M_o_C joined
13:44
elmex left,
elmex joined
13:47
azert0x left,
azert0x joined
|
|||
pugssvn | r30994 | moritz++ | [t/spec] test for RT #73308, [][] | 13:50 | |
moritz_ | std: / a+ +/ | 13:51 | |
p6eval | std 30993: OUTPUT«===SORRY!===quantifier quantifies nothing at /tmp/OTa6oLVTTx line 1:------> / a+ +⏏/Check failedFAILED 00:01 111m» | ||
pugssvn | r30995 | moritz++ | [t/spec] tests for RT #74832 | 13:54 | |
masak | \o/ | ||
moritz_ | \\o | ||
masak | oh, it was std, not rakudo. :) | ||
moritz_ | rakudo: /a+ +/ | 13:55 | |
p6eval | rakudo 478ba4: OUTPUT«===SORRY!===Can't quantify zero-width atom at line 11, near "/"» | ||
moritz_ | down to 7 tickets that needs tests before closing | 13:56 | |
masak: you might find rt.perl.org/rt3/Ticket/Display.html?id=75434 curious :-) | 13:57 | ||
btw it seems that JSON::Tiny is now unblocked | |||
only requires a small measure of debugging to get running again | |||
masak | I did find it curious. moritz_++ on the nice bug report. | ||
moritz_ | well, with the small exception of escape sequences in char classes | ||
masak | master is getting into shape refreshingly quickly. I've spent the last couple of days in GGE actually *removing* RAKUDO comments. | 13:58 | |
that has never happened on this scale. | |||
moritz_ | yes, the last few days were exceedingly productive | 13:59 | |
masak | right now, I'm making adjustments for the fact that Match is Cool. | ||
smash_ | any documentation on how to use Q:PIR{ ... } on perl 6 modules ? | 14:00 | |
14:00
oyse joined
|
|||
snarkyboojum | I wonder what is causing rakudo to blow up on the grammar stuff in day 21 of the advent calendar - as soon as Question::Grammar.parse($text) is called it's game over | 14:00 | |
masak | smash_: there are plenty of examples in src/core | 14:01 | |
snarkyboojum: is there an error message? | |||
smash_ | masak: i'm looking for it there | ||
snarkyboojum | masak: 'Confused at line 31, near "my $match "' | ||
jnthn | moritz_++ # down to 630 tickets again! | 14:02 | |
snarkyboojum | masak: the line in question being "my $match = Question::Grammar.parse($text);" | ||
jnthn | snarkyboojum: What comes on the line prior to that? | 14:03 | |
snarkyboojum | jnthn: a multi-line quote Q { }; | ||
masak | snarkyboojum: no idea what it might be. maybe try to golf the error? | ||
jnthn | OK, there's even a semi on it, so it couldn't be the block closer = end of statement bug, which I feared it may be. | 14:04 | |
cognominal | masak++ # nice expression | ||
snarkyboojum | masak: what does "golf the error" mean? | 14:05 | |
oyse | Has the Path role (perlcabal.org/syn/S32/IO.html) been implemented Rakudo yet? I tried to use it as specified in the Synopsis, but Rakudo complains about "Unsupported use of C++ constructor syntax; in Perl 6 please use method call syntax" | ||
masak | snarkyboojum: make it as small as possible, but no smaller. | ||
snarkyboojum | masak: ah | 14:06 | |
masak | snarkyboojum: 'golf' is a time-honoured technique in the Perl world, usually applied to interesting algorithms, not errors. | ||
snarkyboojum | masak: know about golfing, but didn't get it for some reason :) | 14:07 | |
masak | oyse: the error message seems unrelated to what you're asking for. | ||
snarkyboojum | masak: so cheers :) | ||
masak | oyse: you're doing something akin to 'my $a = new A' when it's really "my $a = A.new' in Perl 6. | ||
oyse | masak: ah ok. I just copied what it said in the synopsis. I will change it and try again | 14:08 | |
masak | oyse: I doubt the synopses tell you to use that syntax. which line of IO.pod? | ||
snarkyboojum | masak: gist.github.com/419050 # golfed - I think :) | 14:09 | |
masak | oyse: sorry, you're right! fixing. | ||
14:09
colomon joined
|
|||
masak | snarkyboojum: the bug doesn't show if you rename to something shorter? :) | 14:09 | |
snarkyboojum | masak: :P | ||
masak | snarkyboojum: is the 'use v6;' required? :) | 14:10 | |
snarkyboojum | I'm golfing with "good style" :P | ||
masak | snarkyboojum: clearly you don't quite appreciate the meaning of 'golf' yet :P | ||
'good style' in golfing is all about brevity. | |||
are the variable assignments necessary. | 14:11 | ||
s/\./?/ | |||
colomon | dang, hyper.t is all messed up. | ||
oyse | masak; Changing the calling syntax took care of the error. Thanks. | ||
masak | oyse: thanks for unwittingly discovering the spec bug :) | ||
fwiw, I think Path is overdesigned and shouldn't be in the spec. | 14:12 | ||
pmichaud | good morning, #perl6 | 14:14 | |
pugssvn | r30996 | masak++ | [S32/IO] changed a number of instances of C++-style constructor syntax | ||
JimmyZ | morning, pmichaud | 14:15 | |
masak | morning, pmichaud | ||
colomon | o/ | ||
rakudo: my @a = 1..3; @a>>++; say @a; | |||
p6eval | rakudo 478ba4: OUTPUT«234» | ||
smash_ | masak: what is the difference between my $s = Q:PIR {...} and my $s = ~Q:PIR {...} ? | ||
pmichaud: mornin' | |||
masak | smash_: prefix:<~> makes a thing into a Stringy. | ||
usually a Str. | 14:16 | ||
snarkyboojum | masak: how's this gist.github.com/419058 :P | ||
smash_ | masak: got it, thks | ||
masak | hugme: hug jnthn # the new backtraces are wonderful! | ||
hugme hugs jnthn | |||
snarkyboojum | interestinly I get a different error when I try and do grammar Q::G{} :) | ||
*interestingly | 14:17 | ||
masak | snarkyboojum: then you've entered the 'but no smaller' part and should backtrack. | ||
snarkyboojum: there are issues with things named 'Q' right now. | |||
try two letters instead :) | |||
snarkyboojum | did - in the snippet below it | 14:18 | |
:) | |||
masak | snarkyboojum++ # getting golfier | ||
snarkyboojum: just a hunch -- what happens if you rename the grammar into 'Yi'? | |||
jnthn | morning, pmichaud | 14:19 | |
masak: Happy you like these ones. :-) | |||
masak | jnthn: I'm *really* happy we got those before Rakudo Star. | 14:20 | |
snarkyboojum | masak: something completely different :) "Method 'TOP' not found for invocant of class ''" | ||
masak | snarkyboojum: then you're a victim of rt.perl.org/rt3/Ticket/Display.html?id=74276 | ||
snarkyboojum: I haven't seen this variant before, but it's the same root cause. | |||
snarkyboojum | masak: which I already knew about ;) thank you! | ||
14:20
dual left
|
|||
jnthn | masak: Yeah, I knew it needed to happen before then, but wasn't in a hurry to go digging in Parrot guts. :-) | 14:20 | |
snarkyboojum | I think :P | ||
masak: and renaming the grammar to grammar Yuestion::Grammar :P in the original (longer) example, gets rid of the parsing error, but still doesn't give me the right answer :) | 14:23 | ||
masak++ # for clever hunches | |||
masak | hunches are the fun part of debugging :) | 14:24 | |
snarkyboojum | aye :) | ||
Su-Shee | mberends: I think I'm done with rows; pastebinning. | 14:26 | |
oyse | Has directory operations and similar been implemented for Rakudo yet? Can I do stuff similar to "mkdir $path" or is this still missing? | 14:28 | |
jnthn | rakudo: mkdir lol | ||
p6eval | rakudo 478ba4: OUTPUT«Could not find sub &lolin main program body at line 1:/tmp/I6npOp0W5d» | ||
jnthn | rakudo: mkdir "lol" | ||
p6eval | rakudo 478ba4: OUTPUT«Could not find sub &mkdirin main program body at line 1:/tmp/jwBd2HuRMZ» | ||
jnthn | ...wish I knew Perl 6 syntax... :-) | ||
oyse: Looks like not. | |||
snarkyboojum | masak: seeing how you're on a roll gist.github.com/419066 :P | ||
masak | huh. p6eval reports the line numbers right? :) | 14:29 | |
jnthn | masak: Well, if the code is all on one line, it's not hard to get right. :- | ||
snarkyboojum | rakudo: die | ||
p6eval | rakudo 478ba4: OUTPUT«Diedin main program body at line 11:/tmp/DXQZRmHgVo» | ||
masak | oh, ok. | 14:30 | |
snarkyboojum: what am I looking at in the paste? | |||
oyse | jnthn: Ok. Will have to fall back to Perl 5 then :) | ||
snarkyboojum | masak: the incorrect result - didn't parse properly | ||
masak | ah, right. | 14:31 | |
snarkyboojum | should be a proper ast | ||
Su-Shee | mberends: pastebin.org/293404 | ||
masak | to => -3 | ||
means it failed to match. | |||
snarkyboojum | masak: so perhaps regex problems in the grammar? | ||
masak | yes. | ||
time to bring out the regex debugger! | |||
snarkyboojum | thought as much | 14:32 | |
:) | |||
matches on alpha tho :| | |||
masak | interesting. | ||
good luck. | 14:33 | ||
snarkyboojum | masak: ;) | ||
masak | remember that you can use say statements in the middle of rules too. | ||
Su-Shee | so, Mu is essentially the type for "somewhat empty and not really defined but here I am.." ? ;) | 14:34 | |
Wolfman2000 | 無 basically. Mu is mu. | 14:36 | |
snarkyboojum | Su-Shee: "Or just think of it as a sound a cow makes, which simultaneously means everything and nothing." | ||
14:36
oyse left
|
|||
Su-Shee | I know only japanese Mu in context of art and stuff. | 14:37 | |
mberends | Su-Shee: that is part of the reason the name was chosen | 14:39 | |
Su-Shee | "does the method return something?" "no, it's just your mind returning to the method." | ||
snarkyboojum | Su-Shee: yeah, literally named after en.wikipedia.org/wiki/Mu_(negative) | 14:40 | |
jnthn afk for a couple of hours | 14:41 | ||
masak | it's everything because it's at the root of the class hierarchy. it's nothing because it's the least specified object, and because it is undefined (just like other type objects). | ||
Su-Shee | masak: I'm just doing zen puns. ;) | ||
snarkyboojum | masak: nicely explanation | 14:42 | |
err.. *nice | |||
Su-Shee | also, I have a new slogan for perl 6: | ||
"perl 6 - puns intended." | |||
masak | :) | 14:43 | |
let's hope we didn't miss any unintended ones, then. | |||
Su-Shee | let's call some edition "koan" ;) | ||
cognominal | I discovered recently that I was ignostic, may be I am indeed Mu-gnostic. en.wikipedia.org/wiki/Ignosticism | 14:45 | |
masak | ignosticism. lovely concept. :) | 14:47 | |
cognominal | At the same time, I discovered that many rabbi did not believe in god. | ||
Wolfman2000 | cognominal: I find that hard to believe | 14:52 | |
snarkyboojum | masak: was pretty straightforward in the end.. rakudo wasn't matching the leading newline at the beginning of the quoted $text string | 14:56 | |
masak | snarkyboojum: ah :) | 14:57 | |
snarkyboojum: but why does alpha match it? | |||
rakudo: class A { our enum B <c d> }; say A::B::c | |||
p6eval | rakudo 1727ca: OUTPUT«Can not find sub A::B::cin main program body at line 1» | ||
snarkyboojum | masak: good question | ||
JimmyZ | I sent a email to RT half an hour ago, I can't find it :( | ||
masak | jnthn: should the above work? I think it should. | ||
JimmyZ: I can't see it either. | 14:58 | ||
maybe it didn't get through the GFW. | 14:59 | ||
JimmyZ | GFW only blocks some of websites. | ||
something like doc.spython.org | 15:00 | ||
*python | |||
masak | yeah, block that one :P | ||
JimmyZ | It doesn't block email | ||
masak | JimmyZ: I know. just kidding; sorry. :) | 15:01 | |
JimmyZ | :) | ||
Nothing | |||
masak: I sent a the bug: { ; } shouldn't be a hash. | 15:02 | ||
s/a// | 15:03 | ||
masak | 没有RT ticket | ||
JimmyZ | 是的 | ||
;) | |||
15:03
tedv| joined
|
|||
masak | 我不只道它是在哪里 | 15:04 | |
that was probably wrong, it was so long. :) | |||
JimmyZ | masak: s/是// | ||
masak | oh, ok. | ||
of course. | 15:05 | ||
been a while. | |||
Wolfman2000 | Right...I still need to try to learn Japanese. I really need a Skype partner to even attempt that though. | ||
No one local is around. | |||
masak | 在 can verb on its own. | ||
JimmyZ | learning context is difficult in perl, and more difficult in naturl languages | 15:06 | |
masak | rakudo: class A { package B { our sub c { say "OH HAI" } } }; A::B::c # jnthn: what about this one? | 15:07 | |
Wolfman2000 | I meant learn Japanese in general. | ||
p6eval | rakudo 1727ca: OUTPUT«Can not find sub A::B::cin main program body at line 1» | ||
JimmyZ | *nature | ||
masak | JimmyZ: 'natural', in fact. it's the adjective form. | ||
JimmyZ | ops, wrong twice | 15:08 | |
my poor english | |||
colomon | my @r = (1, 2, 3); @r»++; say @r.perl | ||
moritz_ | rakudo: my @r = (1, 2, 3); @r»++; say @r.perl | ||
p6eval | rakudo 1727ca: OUTPUT«[2, 3, 4]» | ||
colomon | rakudo: my @r = (1, 2, 3); @r»++; say @r.perl | ||
masak | JimmyZ: your English is far above the average level of people's Chinese in here :) | ||
p6eval | rakudo 1727ca: OUTPUT«[2, 3, 4]» | ||
aesop | class and package do the same thing? | 15:09 | |
colomon | rakudo: my @r = (1, 2, 3); @r»++; say ~@r | ||
p6eval | rakudo 1727ca: OUTPUT«2 3 4» | ||
Wolfman2000 | Huh...so ~@ prints out each element, huh? | 15:10 | |
rakudo: my @s = (2, 4, 6); say ~@s | |||
moritz_ | ~ stringifies | ||
p6eval | rakudo 1727ca: OUTPUT«2 4 6» | ||
Wolfman2000 | I forgot that | ||
colomon | Wolfman2000: ~@r turns @r into a string. | ||
like moritz_++ said | 15:11 | ||
masak | aesop: a class can be seen as a package with 'a few' extra tricks up its sleeve. :) | ||
aesop: including a metaclass that knows what to do with attributes and methods and the like. | |||
colomon | jnthn: hyper patch seems sensible, but seems to break my rakudo build. | ||
> my @r = (1, 2, 3); @r>>++; say ~@r | |||
1 2 3 | |||
smash_ | moritz_: refresh gist.github.com/418999 | ||
colomon | will try to investigate further when I get the chance, things are a bit crazy here at the moment. | ||
moritz_ | smash_: much better | 15:12 | |
aesop | masak: will class do things similar to what moose does for perl 5? like creating accessors and such | ||
masak | rakudo: class A { has $.foo }; say A.new(:foo(42)).foo | 15:13 | |
p6eval | rakudo 1727ca: OUTPUT«42» | ||
masak | aesop: that's an accessor being called right there. | ||
aesop: no need for 'will'; it's implemented already :) | |||
aesop | ahhh | ||
nice | |||
masak | aesop: the accessors are lvalue methods, so you can assign to them as well. in that sense, they're both getters and setters in one. | 15:14 | |
smash_ | moritz_: but unless you 'use fatal;' it still dies silently if it can't create the socket | ||
pugssvn | r30997 | moritz++ | [t/spec] tests for RT #69596, aliasing $0 into custom match objects | ||
aesop | yea | ||
i thought so | |||
moritz_ | smash_: but once we implement void context detection, it will fail loundly in void context | ||
smash_ | moritz_: excelent.. anything else to improve or can commit it ? | 15:15 | |
moritz_ | smash_: go ahead | ||
pmurias | diakopter: hi | 15:16 | |
masak | I still don't grok the exact difference between 'module' and 'package', besides differentiating Perl 5 code from Perl 6 code. | 15:17 | |
15:17
am0c joined
|
|||
moritz_ | masak: I kinda think the exporting magic is in modules, not packages | 15:17 | |
masak | ooh! | ||
moritz_ | masak: but I don't know what you might need packages for | ||
rakudo: subset A of Mu; my A $x = 23; | 15:19 | ||
p6eval | rakudo 1727ca: ( no output ) | ||
moritz_ | huh. My eval_lives_ok fails | 15:20 | |
masak | rakudo: subset A of Mu; my A $x = 23; say 'alive' | ||
15:20
JimmyZ left
|
|||
p6eval | rakudo 1727ca: OUTPUT«alive» | 15:20 | |
moritz_ | rakudo: use Test; plan 1; eval_lives_ok 'subset A of Mu; my A $x = 23;', 'subset A of Mu + type check and assignment works'; | ||
p6eval | rakudo 1727ca: OUTPUT«1..1not ok 1 - subset A of Mu + type check and assignment works# Looks like you failed 1 tests of 1» | ||
moritz_ | rakudo: eval 'subset A of Mu; my A $x = 23;'; say $! | 15:21 | |
p6eval | rakudo 1727ca: ( no output ) | ||
dalek | kudo: 5fc925c | smashz++ | src/core/IO/Socket/INET.pm: Fail if can't create socket. |
||
snarkyboojum | another issue I'm having with day21 gist.github.com/419101 | ||
works in alpha, but gives that error in rakudo | |||
15:21
TiMBuS left
|
|||
moritz_ | snarkyboojum: please submit rakudobug | 15:21 | |
snarkyboojum | moritz_: oh ok | 15:22 | |
moritz_ | masak: am I missing something here? am I insane? or just rakudo? | ||
15:22
tedv| left
|
|||
masak | rakudo: class A { class B { has A::B $.foo } } # golfed :) | 15:22 | |
p6eval | rakudo 1727ca: OUTPUT«===SORRY!===In "has" declaration, typename A::B must be predeclared (or marked as declarative with :: prefix) at line 11, near " $.foo } }"» | ||
masak | moritz_: don't think you're missing something. I can't explain it either. | 15:23 | |
15:23
masonkramer joined
|
|||
snarkyboojum | masak++ # for golfing prowess :) | 15:23 | |
I've never logged a bug - send email to [email@hidden.address] as per README on github? | 15:24 | ||
masak | aye. | ||
snarkyboojum | okydoke | ||
pugssvn | r30998 | moritz++ | [t/spec] test for RT #74234 | 15:25 | |
cognominal | rakudo: class A { class B { has B $.foo } } | 15:26 | |
p6eval | rakudo 1727ca: ( no output ) | ||
masak | rakudo: package A { package A::B { our sub c { say "OH HAI" } } }; A::B::c # a-ha! | 15:27 | |
15:27
Limbic_Region joined
|
|||
p6eval | rakudo 1727ca: OUTPUT«OH HAI» | 15:27 | |
masak | cognominal and I had two sides of the same insight :) | ||
masak submits rakudobug | 15:28 | ||
smash_ | moritz_: also updated RT#69232 and i would vote for closing that one | 15:29 | |
masak | as I understand it, package/module/class/role/subtype/enum names are relative in their declaration, but absolute in their use. | ||
right now it seems that Rakudo thinks that the names in the declaration are absolute, too. | |||
moritz_ | smash_: do we have tests for it? | ||
pmichaud | masak: actually, the above looks correct to me | ||
unless I'm not seeing something | 15:30 | ||
masak | pmichaud: I might have gotten used to something that alpha got wrong, then. | ||
pmichaud | what were you expecting? | ||
masak | pmichaud: you're saying that block nesting doesn't affect the name of a declared entity at all? | ||
pmichaud | no | ||
masak | oh, ok. | 15:31 | |
very well, then. | |||
pmichaud | I'm saying that in the above, package A::B would be the same as package B | ||
masak | no rakudobug. :) | ||
15:31
dual joined
|
|||
pmichaud | it's the B package within the A package | 15:31 | |
masak | oh. | ||
cognominal | pmichaud++ # for the clarification | 15:32 | |
pmichaud | (I could be wrong about this... package names haven't been crystal clear to me either) | ||
masak | let's slow down a bit. I'm not sure which piece of code you're talking about. | ||
pmichaud | 15:27 <masak> rakudo: package A { package A::B { our sub c { say "OH HAI" } } }; A::B::c # a-ha! | ||
masak | probably cognominal's. | ||
oh, ok. | |||
pmichaud | that one looks right. | ||
masak | which means names in declarations are absolute. | ||
pmichaud | no | ||
it's because you (re-)used the A | |||
not because the name is absolute | |||
masak | if they were relative, I'd expect to have a package A::A::B. | 15:33 | |
pmichaud | 15:27 <masak> rakudo: package A { package C::B { our sub c { say "OH HAI" } } }; C::B::c | ||
sorry | |||
just a sec | |||
smash_ | moritz_: do you mean in the spec or in rakudo ? | ||
cognominal | masak, I am a better golfer than you for package naming :) | ||
masak | pmichaud: I never said that :) | ||
pmichaud | rakudo: package A { package C::B { our sub c { say "OH HAI" } } }; A::C::B::c | ||
p6eval | rakudo 1727ca: OUTPUT«Can not find sub A::C::B::cin main program body at line 1» | ||
pmichaud | that one is wrong (afaik) | 15:34 | |
masak | cognominal: :) | ||
pmichaud | that should've printed "OH HAI" | ||
masak submits rakudobug | |||
pmichaud | rakudo: package A { package C::B { our sub c { say "OH HAI" } } }; C::B::c | ||
p6eval | rakudo 1727ca: OUTPUT«OH HAI» | ||
pmichaud | afaik, that one is wrong. | ||
masak | pmichaud: I don't yet see why we don't agree on all points here, but glad we agree on those two. | 15:35 | |
pmichaud | rakudo: package A { package A::B { our sub c { say "OH HAI" } } }; A::B::c | ||
p6eval | rakudo 1727ca: OUTPUT«OH HAI» | ||
pmichaud | as far as I know, that one is right. | ||
masak | o.O | ||
that's, like, so inconsistent! | |||
pmichaud | the difference is that in the name A::B, we're re-using the A from the outer scope | ||
masak | :( | ||
pmichaud | look at it this way | ||
rakudo: package A { package B { our sub c { say "OH HAI }}; A::B::c } | 15:36 | ||
p6eval | rakudo 1727ca: OUTPUT«===SORRY!===Unable to parse blockoid, couldn't find final '}' at line 11» | ||
pmichaud | rakudo: package A { package B { our sub c { say "OH HAI } }; A::B::c; } | ||
p6eval | rakudo 1727ca: OUTPUT«===SORRY!===Unable to parse blockoid, couldn't find final '}' at line 11» | ||
pmichaud | rakudo: package A { package B { our sub c { say "OH HAI" } }; A::B::c; } | ||
p6eval | rakudo 1727ca: OUTPUT«Can not find sub A::B::cin main program body at line 1» | ||
pmichaud | that's *wrong* | 15:37 | |
masak | yes! | ||
pmichaud | we should be able to find A::B | ||
masak | which was what all this was about. | ||
names in declarations are absolute. | |||
pmichaud | no. | ||
masak | and not only those which you claim should be. :) | ||
in Rakudo, they are. | |||
pmichaud | I agree that Rakudo gets it wrong (at least according to my reading of the spec) | 15:38 | |
let's consider this one: | |||
rakudo: module Foo { module Foo { ... } } | |||
cognominal | so, it worked for member variable declaration but not for a sub definition | ||
p6eval | rakudo 1727ca: OUTPUT«===SORRY!===Illegal redeclaration of symbol 'Foo'» | ||
pmichaud | Rakudo is right there. | ||
masak | ok. | ||
pmichaud | because "Foo" always refers to the outer Foo that is in scope | 15:39 | |
it's not supposed to create Foo::Foo | |||
rakudo: module Foo { module Bar { ... } } | |||
p6eval | rakudo 1727ca: ( no output ) | ||
pmichaud | creates Foo and Foo::Bar | ||
rakudo: module Foo { module Foo::Bar { ... } } | |||
p6eval | rakudo 1727ca: ( no output ) | ||
pmichaud | also creates Foo and Foo::Bar | 15:40 | |
masak | if you say so. :) | ||
I haven't seen the spec say that, but I'm willing to find it in there. | |||
cognominal | rakudo: module Foo { my module Foo::Bar { ... } } # can it be private? | ||
pmichaud | it's the part that says there aren't any absolute module paths | ||
p6eval | rakudo 1727ca: ( no output ) | ||
masak | :) | 15:41 | |
pmichaud | they're always relative | ||
and a X::Y name is always based on any X that is already defined | |||
cognominal | rakudo: module Foo { my module Foo::Bar { ... } } | ||
p6eval | rakudo 1727ca: ( no output ) | ||
cognominal | ouch, xchat-- # tripped me again | ||
masak | I temporarily take back my accusations of inconsistency. I have to get used to this new way of thinking. | 15:42 | |
pmichaud | masak: S10, "Package nesting" | ||
masak | oh, ok. | ||
pmichaud | first paragraph | ||
masak | I'm not sure I've ever read S10 :) that explains it. | ||
cognominal | module Foo { my module Foo::Bar { sub hi { say "hi" } } ; Foo::V | 15:43 | |
rakudo: module Foo { my module Foo::Bar { sub hi { say "hi" } } ; Foo::Bar::hi | |||
p6eval | rakudo 1727ca: OUTPUT«===SORRY!===Can't handle scope declarator my on modules yet» | ||
cognominal | ok | ||
pmurias | diakopter: hi | ||
pmichaud | more interesting is something like | ||
masonkramer | our sub / my package = mind blown | 15:44 | |
pmichaud | module C { module A { module C::B { ... } } } | ||
creates C, C::A, and C::B | |||
masak | aye. | ||
pmichaud | not C::A::B | ||
cognominal | makes sens to me | ||
pmichaud | or C::A::C::B | ||
masonkramer | why not C::A::C::B | ||
pmichaud | masak: because "C" refers to the outer C module | ||
masak | right. | 15:45 | |
pmichaud | sorry, masonkramer | ||
masak | :) | ||
pmichaud | (tab completion fail) | ||
moritz_ | rakudo: say <A B C C>.pick(*).join('::') | ||
p6eval | rakudo 1727ca: OUTPUT«C::C::A::B» | ||
masak | masonkramer: our nicks have too long a common prefix :) | ||
pmichaud | another example | ||
module C { module A { module UNIT::B { ... } } } | 15:46 | ||
masonkramer | masak: 3 letters, what are the odds? | ||
pmichaud | creates C, C::A, and B | ||
colomon | rakudo: my @a = (1, 2, 3); @a>>++; say @a | ||
p6eval | rakudo 1727ca: OUTPUT«234» | ||
pmichaud | (which are really UNIT::C, UNIT::C::A, and UNIT::B | ||
it does not create C::A::UNIT::B | 15:47 | ||
cognominal | module C { module A { module UNIT::A { ... } } } # even more interesting | ||
pmichaud | creates UNIT::C, UNIT::C::A, and UNIT::A | 15:48 | |
cognominal | indeed | ||
faster typer than me | |||
15:48
Ross^ joined
|
|||
cognominal | in every meaning of the term. | 15:48 | |
masak | module A { module UNIT::A {} } # clash? | 15:49 | |
pmichaud | likely, yes. | ||
masonkramer | >> is what? The new map? | ||
pmichaud | masonkramer: hyper operator | 15:50 | |
performs an operation on all elements (in parallel) | |||
dalek | kudo: 749fe91 | moritz++ | Test.pm: [Test.pm] simplify eval_exception need for nesting try { eval() } anymore. |
||
cognominal | pmichaud: so the real interest of embedding is here privacy when used with my (not implemented yet)? | ||
pmichaud | cognominal: iiuc, "my" simply means that the symbol is entered in a lexical table but not in the package symbol table | 15:51 | |
cognominal | otherwise it makes things more complicated to understand. | ||
pmichaud | module A { my module B { ... } }; # no A::B defined | 15:52 | |
cognominal | I understand it is the Perl way to implement privacy | ||
masak reads S10 | |||
cognominal | ho, so with my, the logic is different to derive the absolute name. | 15:53 | |
pmichaud | with my, there is no absolute name | ||
cognominal | And who cares because no why will use it | ||
pmichaud | it's effectively anonymous outside of the scope in which it was declared | 15:54 | |
cognominal | agreed. | ||
pmichaud | even inside of the scope, I suspect it may have to be only "B" and never "A::B" | ||
(because package A won't have an entry for B) | |||
in comments above, likely s/UNIT/GLOBAL/g (after reading more of S11) | 15:55 | ||
15:59
am0c left
|
|||
cognominal | pmichaud, on a totally different subject, should a match object contain a member with the name of the rule that was used for the match? I could see the use to create a link on a beautifier/debugger web based. | 16:00 | |
or does this member already exist? | |||
pmichaud | cognominal: that idea has come up several times. It's always been rejected. | ||
cognominal | ok, why? | 16:01 | |
pmichaud | I don't remember exactly (more) | ||
cognominal | nevermind | ||
pmichaud | one question is whether we used the name of the rule used for the match or the name of the alias under which the match was stored | ||
*use | |||
e.g. <xyz=.abc> | |||
16:01
tedv| joined
|
|||
pmichaud | (does the match object get "abc" or "xyz"? | 16:01 | |
cognominal | tricky indeed | 16:02 | |
16:02
rv2733 left
|
|||
masak | abc, in my view. | 16:03 | |
the 'xyz' is probably a key somewhere. | |||
fwiw, I have written code which could have been simpler if such an attribute existed. | 16:04 | ||
pmichaud | masak: yes, that's why the question comes up frequently | ||
masak | so why is it always rejected? :) | ||
pmichaud | as I said, I don't recall exactly. | ||
masak | ok. | ||
pmichaud | (and I'm not the one doing accepting/rejecting) | 16:05 | |
masak | it was the biggest discrepancy I noticed when translating a piece of code from Parse::RecDescent to Perl 6 grammars. | ||
moritz_ | mberends: do you have and data if commit 749fe91 sped up the spectest run? | 16:07 | |
s/and/any/ | |||
16:09
masonkramer left
|
|||
moritz_ | (I don't have high expectations) | 16:10 | |
rakudo: say today() + 426 # expected date of ipv4 address exhaustion | 16:11 | ||
p6eval | rakudo 1727ca: OUTPUT«Could not find sub &todayin main program body at line 1:/tmp/UEhusMlxcw» | ||
moritz_ | rakudo: say Date.today() + 426 # expected date of ipv4 address exhaustion | 16:12 | |
p6eval | rakudo 1727ca: OUTPUT«2011-07-30» | ||
colomon | can anyone out there explain to me how/why the our multi sub hyper(&op, @arg) version works, as currently implemented in Rakudo? | 16:13 | |
moritz_ | colomon: anything specifically you want to know? | ||
colomon | in particular, how can you use it as @a>>++ and have @a be modifed. | ||
*modified | |||
moritz_ | colomon: signature biding binds @arg to the caller's array | 16:14 | |
colomon: and the for-loop binds $_ to the array items in turn | |||
colomon | moritz_: isn't "@arg is rw" needed to modify it? | 16:15 | |
or is that only to modify the length? | |||
moritz_ | colomon: only for @arg = thing style modifications (that go through infix:<=>) | ||
colomon: otoh @arg[0] = something is just a method call | |||
colomon is bothered by this because any attempt he makes to modify this code seems to break the magic. | |||
moritz_ | that's why that patch by sahadev++ (hope I remember the name correctly) looks a bit weird | 16:16 | |
mberends | moritz_: all the times for commit 34542f7 (early this morning) seem about 50% longer than 2 days ago | 16:17 | |
moritz_ | :( | ||
16:20
masonkramer joined
|
|||
pmichaud | I can run the spectest-update script -- it may let us know where things have slowed down | 16:20 | |
(and by how much) | |||
moritz_ | anybody got a working example of how to export a multi in current rakudo? | 16:21 | |
a multi sub from a module, that is | |||
I've tried a proto with 'is export' that dispatches to the other multis | 16:22 | ||
mberends | moritz_: that was *before* 749fe91. Starting to re-build and re-measure.. | ||
moritz_ | but nextsame gives an Null PMC access in clone() | ||
rakudo: say ~3.2 | 16:29 | ||
p6eval | rakudo 1727ca: OUTPUT«3.2» | ||
16:30
kda joined,
snarkyboojum left
|
|||
moritz_ | rakudo: '12' ~~ /../; say +$/ | 16:32 | |
p6eval | rakudo 1727ca: OUTPUT«12» | ||
moritz_ | rakudo: '12' ~~ /(.)./; say +$/ | 16:33 | |
p6eval | rakudo 1727ca: OUTPUT«12» | ||
moritz_ | somehow I have a case where ~$/ is '1' and +$/ is 0 | ||
pmichaud | ? | ||
seems odd. | |||
moritz_ | while debugging JSON::Tiny | ||
will try to reduce | 16:34 | ||
method value:sym<number>($/) { say "Number: $/"; say +$/; make +$/} | |||
produces | |||
Number: 1 | 16:35 | ||
0 | |||
16:35
M_o_C left
|
|||
masak | moritz_: it's hard to reproduce that, though, not having the surrounding context, and the actual Match object sent in. | 16:37 | |
pmichaud | what do you get with say $/.Str ? | ||
moritz_ | 1 | ||
pmichaud | and how about say +$/.Str ? | 16:38 | |
moritz_ | oh | ||
it has a trailing space | |||
pmichaud | aha | ||
moritz_ | rakudo: '1 ' ~~ /.*/; say +$/ | ||
p6eval | rakudo 1727ca: OUTPUT«0» | ||
pmichaud | rakudo++ | ||
moritz_ | is that actually correct? | ||
masak | waitwait. | ||
I'd expect '1' from that. | |||
moritz_ | I don't believe it is | ||
rakudo: say +'1 ' | 16:39 | ||
p6eval | rakudo 1727ca: OUTPUT«1» | ||
masak submits rakudobug | |||
pmichaud | wait wait | ||
masak | moritz_++ | ||
pmichaud | wait wait | ||
masak | :) | ||
pmichaud | seriously, wait | ||
masak wiats | |||
pmichaud | your intuition doesn't match what TimToady++ told me once during a concall | ||
masak | grr, spelling today is hpoeless! | ||
cognominal | rakudo: say +"1 " | ||
p6eval | rakudo 1727ca: OUTPUT«1» | ||
16:39
smash_ left
|
|||
pmichaud | we were going to change numification so that it had to match exactly (although trailing spaces might've been allowed) | 16:40 | |
rakudo: say +"1 abc" | |||
p6eval | rakudo 1727ca: OUTPUT«1» | ||
pmichaud | rakudo is wrong there | ||
moritz_ | pmichaud: and how would one numify while ignore trailing garbage? | ||
masak | I don't know that that update has even made it into the spec. | ||
pmichaud | moritz_: I don't know -- that was just what we discussed | ||
moritz_ | anyway, the current situation is incoherent in rakudo | ||
masak | yep. deserves a rakudobug. | 16:41 | |
moritz_ | +1 | ||
masak resumes submitting procedure | |||
pmichaud | no, the update never made it into the spec, afaik | ||
moritz_ | rakudo: '1 ' ~~ /.+/; say +$/.Str | ||
p6eval | rakudo 1727ca: OUTPUT«0» | ||
moritz_ | so, how do I get that 1 out of $/ ? | ||
pmichaud | rakudo: '1 ' ~~ /.+/; say $/.Str.chars | ||
p6eval | rakudo 1727ca: OUTPUT«2» | ||
moritz_ | rakudo: '1 ' ~~ /.+/; say +"$/" | 16:42 | |
p6eval | rakudo 1727ca: OUTPUT«0» | ||
pmichaud | I'm wanting to know what's different about that str | ||
masak | moritz_: match it against /^\d+/ :P | ||
pmichaud | rakudo: '1 ' ~~ /.+/; say PARROT($/.Str) | ||
moritz_ | rakudo: '1 ' ~~ /.+/; say $/.Str.PARROT | ||
p6eval | rakudo 1727ca: OUTPUT«String» | ||
pmichaud | okay, so it has Parrot string semantics | ||
moritz_ | rakudo: '1 ' ~~ /.+/; say "$/".Str.PARROT | ||
p6eval | rakudo 1727ca: OUTPUT«String» | ||
moritz_ | why doesn't interpolation into "" makes it a proper Perl 6 string? | 16:43 | |
pmichaud | rakudo is smart enough to optimize "$a" to be just ~$a | ||
moritz_ | how do I constructr a proper Perl 6 string from a parrot string? | ||
pmichaud | it should be happening automagically, really | ||
but even that doesn't entirely explain it. why is Parrot string numification not working? | 16:44 | ||
rakudo: '1 ' ~~ /.+/; say PARROT(~$/.Str) | |||
p6eval | rakudo 1727ca: OUTPUT«Str» | ||
pmichaud | rakudo: '1 ' ~~ /.+/; say +~$/.Str | 16:45 | |
p6eval | rakudo 1727ca: OUTPUT«1» | ||
pmichaud | rakudo: '1 ' ~~ /.+/; say +"$/ " | ||
p6eval | rakudo 1727ca: OUTPUT«1» | ||
pmichaud | moritz_: anyway, the simple answer is to make sure that Match.Str returns a rakudo string | ||
moritz_ | pmichaud: how? concatenate a '' ? | 16:46 | |
pmichaud | or use prefix:~ | ||
or use substr directly | |||
method Str () { substr($.orig, $.from, $.from-$.to) } | 16:47 | ||
should do it. | |||
moritz_ tests a fix | |||
~self.Regex::Match::Str | |||
masak | rakudo: sub foo(%hash? is copy) {}; foo | 16:49 | |
p6eval | rakudo 749fe9: OUTPUT«Null PMC access in invoke()in '!STORE' at line 4186:CORE.settingin '!STORE' at line 4203:CORE.settingin 'foo' at line 1:/tmp/pynp4mE69tin 'foo' at line 11:/tmp/pynp4mE69tin main program body at line 11:/tmp/pynp4mE69t» | ||
dalek | kudo: 8081285 | moritz++ | src/core/Match.pm: make Match.Str return a Perl 6 Str |
16:54 | |
kudo: c227238 | moritz++ | Test.pm: [Test.pm] return comparsion result from is_deeply |
|||
moritz_ | I'm slowly recovering parts of JSON::Tiny | 16:55 | |
pmichaud | I'll try not to break them again too much :) | 16:57 | |
(but possibly will in the next 24h :) | |||
moritz_ | you'd get a shower of tickets :-) | ||
pmichaud | fine with me | ||
16:58
azert0x left
16:59
azert0x joined
|
|||
moritz_ | yu mean, tickets are easy to ignore? :-) | 17:00 | |
oh, another SPELING fail | 17:01 | ||
rakudo: say Q<<[foo]>> | |||
p6eval | rakudo 749fe9: OUTPUT«[foo]» | ||
moritz_ | rakudo++ | ||
Wolfman2000 | ...note to self. Don't run movies while compiling Perl 6. It LAGS | 17:02 | |
moritz_ | oh, I'm doing that right now | ||
I've just two different computers for that :-) | |||
arnsholt | Wolfman2000: That just means you need more cores =) | ||
17:02
azert0x left
|
|||
lue | ohai! | 17:02 | |
Wolfman2000 | arnsholt: Care to get me a new MBP? | ||
17:02
azert0x joined
|
|||
masak | lue! \o/ | 17:02 | |
arnsholt | Wolfman2000: No, it's mine and you can't have it =p | 17:03 | |
masak | lue: I've finally ironed out all of the test failures in GGE, so GGE runs fine with Rakudo master now. \o/ | ||
lue | .oO(What I wouldn't do for a shiny multi-core notebook. Give up P6, for one.) |
||
\o/ | |||
Wolfman2000 | spoilsport | ||
arnsholt | Hehe. I spent a sizeable fraction of last summer's income on it, so I'm rather attached to it =) | 17:04 | |
moritz_ | oh dammit, my JSON parser doesn't like negative numbers anymore | ||
lue | If it is better will it become the new grammar engine for rakudo? | ||
masak | lue: no :) | ||
lue: it's definitely not better, and it's last year's technology. | 17:05 | ||
a kind of "first generation" Perl 6 grammar engine, actually. | |||
nqp-rx is "second-generation". | |||
and I guess STD.pm6 is, too. | 17:06 | ||
lue | TGGE (Third Generation Grammar Engine) | ||
moritz_ | TGGE = Terribly Glacial Grammar Engine | ||
masak | lue: anyway, I'm at the point now where I'm actually rolling back RAKUDO-comment workarounds, and re-running the tests. that puts me in a heppy mood. :> | 17:07 | |
lue | SEGFAULT = Speedy Engine of Grammar For All Underlying Language Tasks :) | ||
If only rakudo could be pass all test :) | |||
masak | in all honesty, I have a few TODO tests. | 17:08 | |
but they are a strict subset of the ones for PGE. :) | |||
moritz_ | all but two parsing tests pass in JSON::Tiny | 17:09 | |
masak | moritz_++ | ||
moritz_ | turned out I changed a token to 'rule', which was quite fatal | 17:10 | |
masak | 'package Foo;', with the semicolon instead of a block, is disallowed in Perl 6, according to S10. | 17:11 | |
that's another one of those "Perl 5 gotchas" things that will be turned off with a "Perl 6 without the Perl 5 gotchas" pragrma, once someone writes such a module :) | 17:12 | ||
lue | rakudo: package Foo; | 17:13 | |
p6eval | rakudo 749fe9: ( no output ) | ||
masak | lue: care to submit that one? | ||
lue submits rakudobug | 17:14 | ||
parsefail, it should be ? | |||
masak | rakudo: package Foo;say "alive" | ||
p6eval | rakudo 749fe9: OUTPUT«alive» | ||
pmichaud | why would that be a fail? | ||
masak | lue: yes, I suspect so. | ||
std: package Foo;say "alive" | |||
p6eval | std 30998: OUTPUT«ok 00:01 114m» | ||
masak | pmichaud: because S10 says so. | ||
pmichaud | std: package Foo; | ||
p6eval | std 30998: OUTPUT«ok 00:01 111m» | ||
moritz_ | oooh I *hate* those: | ||
masak | STD.pm6 doesn't enforce it, though. probably should. | ||
moritz_ | not ok 1 - Correct data structure for «{ "a" : 1 }» | ||
# got: {"a" => 1} | |||
# expected: {"a" => 1} | |||
that's is_deeply output | 17:15 | ||
masak | moritz_: type differences? | ||
moritz_ | masak: probably | ||
masak | moritz_: I'd count that as an is_deeply bug. | ||
moritz_ | masak: it's probably a .perl bug | ||
masak | could be. | ||
moritz_ | rakudo: say { a=> 1} eqv { a=>2 } | 17:16 | |
p6eval | rakudo 749fe9: OUTPUT«0» | ||
moritz_ | rakudo: say { a=> 1} eqv { a=>1 } | ||
p6eval | rakudo 749fe9: OUTPUT«1» | ||
masak | maybe is_deeply should just use eqv nowadays. | ||
moritz_ | it does | ||
masak | oh! | 17:17 | |
someone++ | |||
pmichaud++, apparently. :) | |||
moritz_ | indeed pmichaud++ | 17:18 | |
now I've added $got.WHAT.perl() and $expected.WHAT.perl() output locally to Test.pm is_deeply | 17:19 | ||
and it says | |||
not ok 1 - Correct data structure for «{ "a" : 1 }» | |||
# got: {"a" => 1} (type: Hash) | |||
# expected: {"a" => 1} (type: Hash) | |||
Wolfman2000 | ... | ||
moritz_ | not ok 5 - Correct data structure for «[3]» | ||
# got: [3] (type: Array) | |||
# expected: [3] (type: Array) | |||
Wolfman2000 | Are there subtypes? | ||
masak | moritz_: maybe some number types output the same with .perl? | ||
we have so many number types nowadays... :) | |||
Wolfman2000 | ...how many DO we have? | 17:20 | |
masak | Int, Num, Rat, Complex... | ||
moritz_ | masak: interesting idea... | ||
Wolfman2000 | 4 at least | 17:21 | |
lue | masak: did you catch wind of the new backtrace? | ||
masak | lue: I love it! also, thanks for reminding me. | ||
I promised jnthn++ to make a small adjustment. | |||
that'll be the last thing I do today before going home to make $nom. | 17:22 | ||
moritz_ | masak++ # it's indeed Num() vs. Int() | ||
masak | \o/ | ||
17:22
M_o_C joined
|
|||
Wolfman2000 | rakudo: 3.perl() | 17:22 | |
p6eval | rakudo 749fe9: ( no output ) | ||
Wolfman2000 | err | ||
rakudo: say 3.perl | |||
moritz_ | rakudo: say 3e0.perl | ||
p6eval | rakudo 749fe9: OUTPUT«3» | ||
masak | moritz_: it would all be solved if 1 was always an Int(). | ||
17:23
kda left
|
|||
masak | I'd very much prefer that. | 17:23 | |
moritz_ | masak: that would be the first half of the solution | ||
lue | I'm also making [not core of course] Quaternions :) | ||
masak | lue++ | 17:24 | |
lue: put them on github! | |||
17:25
araujo joined
|
|||
lue | when it's done. Should I put it in the pugs examples? | 17:25 | |
Su-Shee | why does noone ever write "I'm also making Net::SSL.."? ;) | ||
moritz_ | Su-Shee: because encryption is hard, especially without bigints | ||
masak | lue: you'd get better visibility if you put them on github. | 17:26 | |
lue | then in my own personal spot on github? | ||
plobsing | Su-Shee: they would. but you haven't handshaked with them yet. | ||
lue | rakudo: my $a = 0xFFFFFFFF; say $a.WHAT | ||
p6eval | rakudo 749fe9: OUTPUT«Int()» | ||
Su-Shee | moritz_: I'm being ironic in the face of having to look up what quaternions are. ;) | ||
moritz_ | lue: you can also put them in perl6-examples on github | ||
masak | lue: yes. and proto will point to the project so that people can install it. | 17:27 | |
lue ponders CPAN6 | |||
moritz_ | have fun pondering :-) | ||
lue | rakudo: my $a = 3+4i; say $a.Complex | 17:28 | |
p6eval | rakudo 749fe9: OUTPUT«3 + 4i» | ||
masak | it's too early for CPAN6. and too late for proto. :P | ||
Su-Shee | too early? why? | 17:29 | |
Wolfman2000 | Then what time is it? | ||
lue | Now why is the Complex class Cool? | ||
masak | Wolfman2000: zeppelin time. | ||
dalek | kudo: fe19e82 | masak++ | src/Perl6/BacktracePrinter.pm: [BacktracePrinter.pm] indented backtrace a bit error message will be easier to spot. |
||
lue | [no puns] | ||
masak | lue: because most value classes in Perl 6 are. | ||
lue will go look up what Cool is [no puns! :)] | 17:30 | ||
Su-Shee | mberends: the idea of 10-mysql.t is that I search for the p5 version of a test I should then add in 6-ish? | ||
masak | Su-Shee: I think it's too early because I've only seen blue-sky speculations for it, and no real need. | ||
considering that we have ~40 projects, it's still on a manageable level without a CPAN-alike. | |||
Su-Shee | masak: on the other hand we suffer scattered-ness badly. it's really difficult to keep an eye on everything going on. | 17:31 | |
masak | also, the best proposal for a CPAN6 that I've hear so far, is CPAN. | ||
*heard | |||
lue | .oO(cpan6.cpan.org) |
||
If that happened, then CPAN and CPAN6 should try to _not_ mix with each other, for the sake of organization. | 17:32 | ||
masak | Su-Shee: it is scattered. it sort of reflects the scatteredness of Perl 6 culture. some sub-efforts fizzle out and stop moving, others evolve and mutate. the result is a lot of bones and fossils littering the whole place. | ||
lue | .oO(Perl 6 is constantly evolving DNA) |
17:33 | |
masak | lue: last i heard, the PAUSE people were discussing creating a separate sub-directory for Perl 6 modules. | ||
Su-Shee | masak: "oh really?" I've never realized in 10 years.. :) it's annoying and makes us difficult to find. | ||
masak | Su-Shee: yes. | 17:34 | |
Su-Shee: perl6.org and proto.perl6.org probably help some. | |||
other ideas for *.perl6.org could probably help even more. | |||
also, more people need to do like moritz_++, and disseminate the perl6.org link in footers on perlmonks and similar sites :) | 17:35 | ||
Su-Shee | I personally prefer one site for "that's the site", one for "the source and download", one for "community" and one for "cpan". | ||
masak heads home to create nom | 17:36 | ||
Su-Shee | cpan/gems/modules/foobars.. we could call perl 6 modules "puns" from now on. ;) | ||
17:36
masak left
|
|||
lue | there's an idea. perl6.org is the center of all Perl6! cpan.perl6.org! (or, for minimal confusion, cpan6.perl6.org) | 17:36 | |
moritz_ | rakudo: say (^5).perl | 17:39 | |
p6eval | rakudo 749fe9: OUTPUT«0..^5» | ||
mberends | Su-Shee: yes. All the P5 tests are already in 10-mysql.t and translation is complete to about line 530 out of 3100. The tests below that should be in test script name order but you can see how the contents are inaccurate. | ||
17:39
tedv| left
|
|||
moritz_ | rakudo: say (^5).max.WHAT | 17:40 | |
p6eval | rakudo 749fe9: OUTPUT«Num()» | ||
moritz_ | why? | ||
why not Int? | |||
rakudo: say (+5).perl | |||
p6eval | rakudo 749fe9: OUTPUT«5» | ||
moritz_ | rakudo: say (+5).WHAT | ||
p6eval | rakudo 749fe9: OUTPUT«Num()» | ||
Su-Shee | mberends: I'll look for my rows. ;) | 17:41 | |
moritz_ | rakudo: say (5.Numeric).WHAT | ||
p6eval | rakudo 749fe9: OUTPUT«Int()» | ||
mberends | Su-Shee: it's ok if we leave testing of .rows() until translation arrives at that part in the normal sequence. | ||
moritz_ | rakudo: 5 ~~ Mu | 17:42 | |
p6eval | rakudo 749fe9: ( no output ) | ||
moritz_ | rakudo: say 5 ~~ Mu | ||
p6eval | rakudo 749fe9: OUTPUT«1» | ||
moritz_ | colomon: do you understand why (+5).WHAT gives Num, not Int? | ||
mberends | Su-Shee: test translation stopped at line 466 (P5) to 529 (P6) because SQL_INTEGER() was NYI. | 17:43 | |
Su-Shee: actually that may be easy to implement as "our sub SQL_INTEGER { 4 }" in FakeDBI.pm6 about line 38 | 17:44 | ||
17:45
BrowserUk joined
|
|||
Su-Shee | mberends: that's all?! :) | 17:45 | |
moritz_ | why does that remind me of sub rand { 4; # determined by fair dice roll } ? :-) | ||
mberends | dunno, maybe ; | ||
that's how P5 did it | 17:46 | ||
Su-Shee | ok, I leave it without test for now. | 17:47 | |
lue | moritz_: I loved that comic | ||
17:55
envi^home left
|
|||
Su-Shee | mberends: pushed. | 17:56 | |
mberends | :-) pulled | 17:59 | |
Su-Shee | .oO(I can't really write /me pushed as a women somehow.. ;) |
18:00 | |
moritz_ | women can push too. That much is sure :-) | 18:01 | |
mberends | sounds like giving birth | ||
Su-Shee | exactly. just feels.. wrong. :) | ||
lue | as a parameter, was does it mean when you see $x: ? | 18:03 | |
moritz_ | invocant marker | 18:04 | |
18:05
Trashlord left
18:07
Trashlord joined
|
|||
lue | rakudo: say roots(27, 3) | 18:08 | |
p6eval | rakudo 749fe9: OUTPUT«3 + 0i-1.5 + 2.59807621135332i-1.5 + -2.59807621135332i» | ||
lue | not what I thought would happen.... | ||
18:09
ejs joined
18:14
ejs left
18:15
ejs joined
|
|||
pmurias | moritz_: have you seen todays xkcd? | 18:18 | |
18:19
Ross^ left
|
|||
pugssvn | r30999 | pmurias++ | [mildew] fix some bitrot cause by STD changes | 18:21 | |
lue | what's it about? | ||
pmurias | lue: it? | 18:22 | |
18:22
saaki joined
|
|||
lue | XKCD. I think it's still Friday's, but I forgot it :) | 18:24 | |
rakudo: my $a = 2+4i; my $b = $a ** 2; say $b | |||
p6eval | rakudo 749fe9: OUTPUT«-12 + 16i» | ||
pmurias | ° | ||
lue | how did that happen? ō.o | 18:25 | |
moritz_ | pmurias: yes :-) | 18:29 | |
18:31
BrowserUk left
|
|||
moritz_ | github.com/moritz/json/commit/508ff...297630e78b what an ugly workaround :/ | 18:32 | |
sorear | jnthn: backtrackes in the REPL would be awesome. Doubly so if you made them stop at (the bottommost occurrence of) HLL::Compiler::eval. | 18:34 | |
18:38
am0c joined
|
|||
lue | can someone tell me why this is defined how it is in Complex? : | 18:40 | |
sub exp() {Complex.new($.re.Num.exp * $.im.Num.cos, $.re.Num.exp * $.im.Num.sin);} | |||
s/sub/multi method/ | |||
mainly, why does trigonometry get into this? | 18:41 | ||
moritz_ | exp( i x) = cos(x) + i sin(x) | ||
18:41
am0c__ joined
|
|||
mberends | jnthn: while you're adding backtraces to the REPL, could you please add time travel as well? KTHXBAI | 18:43 | |
lue | Why'd you want it to time travel? That's a debugger's job :) | ||
mberends | moritz_: 749fe91 exactly reverses the 50% slowdown reported earlier | 18:46 | |
lue | I'm assuming that exp() method uses e as the default base? | 18:52 | |
18:55
Patterner left
|
|||
sorear | pmichaud: The match trees generated by STD.pm6 contain a _reduced field with the name of the rule used to generate each match | 18:58 | |
19:01
plobsing left
19:02
ejs1 joined,
Trashlord left
19:03
M_o_C left,
ejs left
|
|||
sorear | phenny: tell masak : there is no 'package' statement in Perl 6. "package Foo;" is interpreted as meaning "use v5; package Foo;" to allow pure-Perl-5 modules to be used unaltered. STD implements this (partially) | 19:03 | |
phenny | sorear: I'll pass that on when masak is around. | ||
19:05
ingy left
19:06
ingy joined
19:08
Trashlord joined
19:13
Ross joined,
Ross left,
Ross joined
19:21
ejs1 left
19:30
kensanata joined
|
|||
moritz_ would prefer less suprising magic | 19:33 | ||
19:36
am0c__ left,
am0c left
|
|||
pugssvn | r31000 | moritz++ | [t/spec] test that both parse time and run time error message contain line numbers | 19:37 | |
pmichaud | sorear: (_reduced field) Oh, I didn't know that was there. I'd be glad to see it make it into a spec -- perhaps something like $/.reduced | 19:38 | |
lue | rakudo: say 3(4) | 19:39 | |
p6eval | rakudo fe19e8: OUTPUT«invoke() not implemented in class 'Integer' in main program body at line 11:/tmp/lQmqsWONW7» | ||
lue | rakudo: say 3*(1,2,3,4) | 19:40 | |
p6eval | rakudo fe19e8: OUTPUT«12» | ||
lue | rakudo: say 3«*»(1,2,3,4) | ||
p6eval | rakudo fe19e8: OUTPUT«36912» | ||
moritz_ | down to 4 tickets that need tests (and could otherwise be closed) | 19:41 | |
lue | \o/ | 19:43 | |
dalek | kudo: dd0e5dd | moritz++ | t/spectest.data: run test file for line numbers in error messages |
19:44 | |
19:47
masonkramer left
|
|||
lue | afk | 19:56 | |
20:06
molaf joined
20:10
finanalyst left,
aindilis left
|
|||
pugssvn | r31001 | moritz++ | [t/spec] test for RT #72840 and RT #69170 | 20:16 | |
20:16
colomon left
|
|||
moritz_ | en.wikipedia.org/wiki/Swampland_(physics) very nice article :-) | 20:16 | |
20:19
Psyche^ joined,
Psyche^ is now known as Patterner
|
|||
jnthn back from church&pub | 20:25 | ||
moritz_ | rakudo: my Rat $a; $a += 0.1 for ^10 | ||
p6eval | rakudo fe19e8: ( no output ) | ||
moritz_ | rakudo: my Rat $a; $a += 0.1 for ^10; say $a | ||
p6eval | rakudo fe19e8: OUTPUT«1» | ||
20:26
molaf left
20:27
synth joined
|
|||
pugssvn | r31002 | moritz++ | [t/spec] test for RT #74626 | 20:27 | |
r31003 | moritz++ | [t/spec] test for RT #74344, call slurpy params by name | 20:31 | ||
moritz_ | rakudo: my @a = 1,2,3; my (@c) = @a; say @c.perl | 20:32 | |
p6eval | rakudo fe19e8: OUTPUT«[[1, 2, 3]]» | ||
moritz_ | rakudo: my @a = 1,2,3; my (@c) = @a; .say for @c | 20:36 | |
p6eval | rakudo fe19e8: OUTPUT«123» | ||
moritz_ | rakudo: my @a = 1,2,3; my (@c) = @a; my $i = 0; $i++ for @c | 20:37 | |
p6eval | rakudo fe19e8: ( no output ) | ||
moritz_ | rakudo: my @a = 1,2,3; my (@c) = @a; my $i = 0; $i++ for @c; say $i | ||
p6eval | rakudo fe19e8: OUTPUT«1» | ||
20:37
kda joined
|
|||
TimToady | looks like the right side isn't flattening | 20:38 | |
moritz_ | I'm just wondering why the test (with is $i, 3) passes locally here | ||
ah, because I iterate over @a :-) | 20:39 | ||
TimToady | that would do it :) | ||
20:39
atomicstack left
|
|||
pugssvn | r31004 | moritz++ | [t/spec] test for RT #74336 | 20:40 | |
20:42
plobsing joined
|
|||
moritz_ | rakudo: my Hash $x; $x[1] | 20:43 | |
p6eval | rakudo fe19e8: OUTPUT«No applicable candidates found to dispatch to for '_block23422'. Available candidates are::() in main program body at line 1» | ||
moritz_ | bkeeler: if you're looking for something to do, rt.perl.org/rt3/Ticket/Display.html?id=73172 might be an interesting task :) | 20:44 | |
rakudo: (return *)() | 20:45 | ||
p6eval | rakudo dd0e5d: ( no output ) | ||
20:46
Su-Shee left
|
|||
moritz_ | rakudo: say my ::say (say $z) | 20:46 | |
p6eval | rakudo dd0e5d: OUTPUT«Null PMC access in type() in main program body at line 11:/tmp/AdiMqFq9dp» | ||
moritz_ going through RT | 20:47 | ||
rakudo: my @a=1,2,3; say ( ^@a ).perl | 20:49 | ||
p6eval | rakudo dd0e5d: OUTPUT«0..^3» | ||
moritz_ | perl6: my @v=2,5; say ( map {; $^b => $^a }, @v ).perl | 20:52 | |
p6eval | elf 31004: OUTPUT«Undefined subroutine &GLOBAL::map called at (eval 124) line 4. at ./elf_h line 5881» | ||
..rakudo dd0e5d: OUTPUT«Lexical '$b' not found in main program body at line 11:/tmp/S2oRKEAoTj» | |||
..pugs: OUTPUT«((\5 => \2),)» | |||
moritz_ | perl6: my @v=2,5; say ( map {1; $^b => $^a }, @v ).perl | ||
p6eval | rakudo dd0e5d: OUTPUT«(5 => 2)» | ||
..elf 31004: OUTPUT«Undefined subroutine &GLOBAL::map called at (eval 124) line 4. at ./elf_h line 5881» | |||
..pugs: OUTPUT«((\5 => \2),)» | |||
20:56
colomon joined
|
|||
moritz_ | rakudo: enum X <a b c>; say a ~~ Int; say True ~~ Int # buglet | 20:58 | |
p6eval | rakudo dd0e5d: OUTPUT«10» | ||
pugssvn | r31005 | lwall++ | [STD] fix minor inconsistencies | ||
arnsholt | Does any of the nqp-rx wizard in here know of a good way to handle something that can be interpreted as both an operator and a term? | ||
sorear | Just declare it as both | 20:59 | |
moritz_ | arnsholt: like, predictive parsing? | ||
sorear | see e.g. term:sym<...> and infix:sym<...> in rakudo src/Perl6/Grammar.pm | ||
TimToady | for example, term:sym<*> vs infix:sym<*> | 21:00 | |
arnsholt | Mmm. Good points | ||
sorear | or better yet, yeah * | ||
rakudo: say (* * *)(2,2) | 21:01 | ||
p6eval | rakudo dd0e5d: OUTPUT«4» | ||
moritz_ | or / | 21:02 | |
saaki | gonna try to grab it and see if you can see them | 21:03 | |
mt =o | |||
arnsholt | Hmm. Looks like it's just a matter declaring both | 21:04 | |
That's encouraging at least | 21:05 | ||
Then I just have to figure out the best way to implement the other restrictions on such weirdness in Prolog =D | 21:06 | ||
sorear | great. someone changed STD.pm6 | ||
TimToady | ~. | 21:08 | |
sorear | ~. ? | ||
someone window-errored /usr/bin/mail and irc? | 21:09 | ||
moritz_ | rakudo: say :(3).perl | 21:12 | |
p6eval | rakudo dd0e5d: OUTPUT«:(Int where (3))» | ||
sorear | What exactly happens wen a qr// value is interpolated into a regex? | 21:13 | |
moritz_ | in Perl 6? | 21:14 | |
TimToady | std: qr// | ||
p6eval | std 31004: OUTPUT«===SORRY!===Bogus term at /tmp/Sqgperl5OZ line 1 (EOF):------> qr//⏏<EOL>Undeclared routine: 'qr' used at line 1Parse failedFAILED 00:01 115m» | ||
moritz_ | it's basically inlined, but doesn't capture anything | 21:15 | |
TimToady | hmm, I thougt that had a better message | ||
pmichaud | Perl 6 doesn't have a qr. It's rx. | ||
TimToady | but hey, if I change STD.pm6 again, I'll be in trouble :) | ||
pmichaud | yeah, don't do that! | ||
arnsholt | We're done? =D | 21:18 | |
sorear | TimToady: better error messages are fine, I'd just appreciate better summaries | 21:22 | |
hmm. | |||
I wonder if there's a good way to ask svn "give me the last 10 changesets, with diffs" | |||
wolverian | git log -p | 21:23 | |
moritz_ | right; use a git-svn clone | ||
why do we have both Code and Callable? | 21:25 | ||
are regexes !~~ Code? | 21:26 | ||
sorear | moritz_: the qr question was relative to Perl 5 | ||
21:27
Patterner left
|
|||
sorear | in the context of Cursor.pmc | 21:27 | |
jnthn | moritz_: I'd figure regexes are ~~ Routine | ||
sorear | regexes are actually methods according to S05 | 21:29 | |
21:29
Guest67735 left,
Limbic_Region left
|
|||
pugssvn | r31006 | moritz++ | [t/spec] fudge whatever.t for Rakudo | 21:30 | |
moritz_ | so, why both Callable and Code? | ||
TimToady | why both Associative and Hash? | 21:31 | |
jnthn | moritz_: Code, from where I am, serves little purpose. | ||
moritz_ | TimToady: because 'my %h' needs a default type. That's Hash. | 21:32 | |
jnthn | TimToady: Yes, but we actualy never create anything of type Code | ||
21:32
Psyche^ joined,
Psyche^ is now known as Patterner
|
|||
moritz_ | TimToady: my &c; doesn't have such a default | 21:32 | |
jnthn | TimToady: Block inherits from Code, Routine inherits from Block and a bunch of stuff inherits from Routine. | ||
TimToady: So all the stuff we currently have in Code could go in Block. | |||
And Callable is left for "could I invoke this" | 21:33 | ||
I guess the question is if we expect people create create callable things that should have some implementation commonalities with blocks but not be blocks. | |||
*to create | 21:34 | ||
TimToady | are Thunks callable | ||
jnthn | I'd hope so. :-) | ||
TimToady | thunks are not blocks | ||
not in the lexical sense | |||
they are parasites on someone else's lexical scope | |||
jnthn | What would a Thunk and a Block share? | 21:35 | |
cognominal | paste.lisp.org/display/110983 # how come the perl6 channel is no more supported? | ||
jnthn | That is, what would you expect to be in Code? | ||
moritz_ | are thunks user-exposed? | ||
cognominal | the pasted patch removes need_ext fossils in pmcs | ||
TimToady | they share the fact that they're callable, but that's a role | 21:36 | |
but a thunk is presumably an object | |||
21:36
PacoLinux left
|
|||
cognominal | could a kind soul apply the patch? | 21:37 | |
21:43
Ross left
|
|||
mathw | rakudo: say ("[[]]" ~~ /'['+ ']'+/) | 21:46 | |
p6eval | rakudo dd0e5d: OUTPUT«[[]]» | ||
21:49
mariano left
|
|||
mathw | argh | 21:50 | |
I accidentally added a file with git add | |||
how do I take it back out before I commit? | |||
cognominal | git rm? | 21:51 | |
mathw | and why do no simple git guides tell you useful things like how to fix mistakes | ||
arnsholt | mathw: It is my thesis that git is not intended for humans to use =) | 21:52 | |
Exactly how this fits in with git being quite nice on the whole, I don't know | 21:53 | ||
mathw | it's just... not quite done | ||
arnsholt | It's also documented and implemented from the inside out | ||
mathw | the only thing the user manual lists is git rm | ||
which removes it from the filesystem! | 21:54 | ||
I just don't want it in my commit | |||
Eevee | git reset HEAD file | ||
plobsing | IIRC, git status tells you how to remove it from staging | ||
mathw | oh yes | 21:55 | |
aaaaaaaaaaaaargh | |||
must be time for bed | |||
21:57
dju_ left
|
|||
mathw | phenny: tell masak I pushed some changes to Form which make it build on my system, but the tests fail. The first failure is in the parsing tests with some fields not parsing, so maybe Form::Grammar is now out of date. | 21:58 | |
phenny | mathw: I'll pass that on when masak is around. | ||
mathw | & | ||
cognominal | good night | 22:01 | |
22:21
mariano joined
22:28
mariano left
22:29
mariano joined
22:31
bluescreen joined,
mariano left,
bluescreen left,
bluescreen joined
22:32
bluescreen is now known as Guest86832
22:38
pmurias left
22:43
kel_ left
22:47
kensanata left
22:48
hercynium joined
|
|||
pugssvn | r31007 | sorear++ | [viv] Improve tracking of cut status, especially through quantifiers | 22:52 | |
23:01
Spreadsheet_ joined
|
|||
Spreadsheet_ | Has anyone been working on an interactive Perl 6 REPL? | 23:01 | |
wolverian | rakudo has one. | 23:02 | |
it's actually what is run when you run just "perl6" | |||
what would a non-interactive REPL be like, by the way? | 23:03 | ||
m6locks | i sure hope it allows redefining stuff | ||
it was a pain in the ass a while ago | |||
when not allowing redefinitions | |||
wolverian | it doesn't seem to save state across lines... I guess that's a bit WIP then :) | 23:04 | |
m6locks | i does | ||
well, at least it did a while ago | |||
wolverian | it doesn't see my sub definition, but does see a class definition. | ||
m6locks | not sure if they have disabled it | ||
well then it might be a bug and worth submitting | |||
masak usually handles this type of stuff.... | 23:05 | ||
sorear | TimToady: What's going on at STD.pm6 line 1107? :r inside a token | 23:15 | |
23:29
snarkyboojum joined
23:37
tedv| joined
|
|||
sorear | TimToady: How do I read cursor_xact log lines? | 23:38 | |
23:46
hercynium left
23:48
cognominal left
|