|
»ö« | perl6.org/ | evalbot usage: 'perl6: say 3;' or rakudo:, alpha:, pugs:, std:, or /msg p6eval perl6: ... | irclog: irc.pugscode.org/ | UTF-8 is our friend! Set by moderator on 24 July 2010. |
|||
|
00:04
snarkyboojum joined
00:05
sunnavy_ joined,
kst joined
|
|||
| Eddward | rakudo: %x = a=>1, b=>2 | 00:05 | |
| p6eval | rakudo f7fdd5: OUTPUT«===SORRY!===Symbol '%x' not predeclared in <anonymous> (/tmp/z4vxbrCTGX:22)» | ||
| Tene | sorear: yes? | ||
| Eddward | rakudo: my %x = a=>1, b=>2 | ||
| colomon | Eddward: here's an improvment: | ||
| p6eval | rakudo f7fdd5: ( no output ) | ||
| Eddward | rakudo my %y = c=> 3, d=> 4 | 00:06 | |
| snarkyboojum | cool - first kick out of #perl6 :P | ||
| colomon | maybe... | ||
| sorear | Tene: you're the only one right now who has one | ||
| Tene | sorear: who has what? | ||
| colomon | gist.github.com/489111 # same gist, now with a $seen junction instead of a @seen array | ||
| sorear | +o | ||
| Eddward | rakudo: say %x, %y | ||
| Tene | sorear: is there some context here? | 00:07 | |
| p6eval | rakudo f7fdd5: OUTPUT«===SORRY!===Symbol '%x' not predeclared in <anonymous> (/tmp/ZWWmhaZHFD:22)» | ||
| colomon | Eddward: p6eval doesn't have memory from one invocation of it to the next | ||
| Tene | Are you asking for a +o? Is someone else? | ||
| Is there a problem that needs to be addressed? | |||
| Eddward | Should %x ,= %y add %y entries to %x's? | ||
| sorear | I'm asking for +os for: [Coke], au|irc, colomon, jnthn, mberends, moritz_, pmichaud, sorear | 00:08 | |
| colomon | Eddward: huh, I've not seen that one before. | ||
| Eddward | colomon, Cool use of junction. | ||
| sorear | The problem is that you're the only one with one now | ||
| Eddward | It looked like I could do %x = %x, %y | ||
| colomon | rakudo: my %x = "red" => 2; my %y = "green" => 411; say :%x.perl; %x ,= %y; say :%x.perl | ||
| Tene++ | 00:09 | ||
| p6eval | rakudo f7fdd5: OUTPUT«"x" => {"red" => 2}"x" => {"green" => 411}» | ||
| Eddward | I was wondering if %x ,= %y would work or if that was too evil. | ||
| The junction would be better for want I'm trying anyhow. | |||
| colomon | Eddward: I like the idea of %x ,= %y, but that test there suggests it doesn't work. | 00:10 | |
| sorear | 19:09 -ChanServ(ChanServ@services.)- 5 pmichaud +voOtsriRfAF [modified 4 hours, 15 minutes, 44 seconds ago] | ||
| +25 karma to whoever made this happen. | |||
| Tene | sorear: most of those used to be on the channel access list, and could have opped themselves, but looks like the access list has been cut down to just pmichaud and audreyt. | 00:11 | |
| snarkyboojum | was there an audreyt imposter kicking people from the channel? | ||
| Tene | ... and hasn't actually fixed the issue that allowed the problem in the first place, afaict | ||
| Eddward | It didn't work for me. It just assigned %y to %x. | ||
| Tene | I'm gonna check. | 00:13 | |
|
00:13
audreyt joined
|
|||
| Tene | Ah, good. | 00:13 | |
| I guess I misunderstand. | |||
| sorear | "audreyt" means you need to be identified to nickserv under that name | 00:23 | |
| "audreyt!*@*" means you need to be IRCing under that name | |||
| anyways, before today *nobody* had the power to change the access list | 00:24 | ||
| pmichaud has +f now, which means he can | |||
| lue | hooray \\o/ | 00:25 | |
| Tene | I must have misremembered what I saw in the access list right after the incident. | ||
| Eddward | Is any(any(1, 2, 3, 4), any(5, 6, 7, 8)) the same as any(1, 2, 3, 4, 5, 6, 7, 8)? | ||
| colomon | rakudo: say any(any(1, 2, 3, 4), any(5, 6, 7, 8)).perl | ||
| p6eval | rakudo f7fdd5: OUTPUT«any(any(1, 2, 3, 4), any(5, 6, 7, 8))» | 00:26 | |
| colomon | rakudo: say (any(1, 2, 3, 4) | any(5, 6, 7, 8)).perl | ||
| p6eval | rakudo f7fdd5: OUTPUT«any(any(1, 2, 3, 4), any(5, 6, 7, 8))» | ||
| colomon | rakudo: say (any(1, 2, 3, 4) | 5).perl | 00:27 | |
| p6eval | rakudo f7fdd5: OUTPUT«any(any(1, 2, 3, 4), 5)» | ||
| Eddward | rakudo: my $x = 1|2|3|4; my $y=5|6|7|8; my $z = $x; $z |= $y; $z.say | ||
| p6eval | rakudo f7fdd5: OUTPUT«any(any(1, 2, 3, 4), any(5, 6, 7, 8))» | 00:28 | |
|
00:28
jferrero joined
|
|||
| colomon | rakudo: say 3 ~~ any(any(1, 2, 3, 4), any(5, 6, 7, 8)) | 00:31 | |
| p6eval | rakudo f7fdd5: OUTPUT«1» | ||
|
00:31
mscha joined
|
|||
| Eddward | I wonder if any(any(), any()) performs as well as a single any(). | 00:33 | |
| I was going to build a big junction piecewise. | 00:34 | ||
| A hash might be better. | |||
| colomon, I was able to speed up mine by adding a global $happy and $unhappy junction. I check $seen|$unhappy and 1|$happy. | 00:39 | ||
| I then add $seen to either $happy or $unhappy. | |||
|
00:40
s1n joined
|
|||
| Eddward | I went from 10ish seconds to 4ish. | 00:40 | |
| colomon | Eddward: yeah, I thought something like that might be nice. | 00:41 | |
| but what you've got now is very elegant. | |||
| lue | loliblog: rdstar.wordpress.com/2010/07/25/onl...-op-abuse/ | 00:47 | |
|
00:48
kjeldahl_ joined
|
|||
| snarkyboojum | has anyone managed to track down TimToady's state of the onion oscon speech online - slides or vid? (apologies for asking the same question again) :) | 00:49 | |
| or it is top secret? :) | 00:52 | ||
| sorear | Eddward: What comparison operator are you using with the junction? | 00:54 | |
| snarkyboojum mutters into his beard | |||
| Eddward | sorear, given $n { when $junction { ... } } | 00:55 | |
| ~~ I would assume. | |||
| lue | .oO[ snarky: if I knew, I would tell you :) ] | ||
| sorear | Eddward: what kind of thing is $n? | 00:56 | |
| Eddward | snarkyboojum, I didn't even know there had been another SotO. I'm watching for the answer too. | ||
| number. Int. | |||
| sorear | junctions are designed to work for any comparison op | 00:57 | |
| so they can't be optimized any further than just "linear search" | |||
| lue | Hrm. I would ask to get my blog added to the aggregator, but not until my posting habits stablize :) | ||
| sorear | you may have much better success with a hash | ||
| Eddward | ok. I was thinking a tree of any(any,any()) probably isn't as good as a single any(). | 00:58 | |
| Maybe a possible optimization to unnest them? | |||
| lue | afk --drwho="SeasonFinale!" | 00:59 | |
| sorear | the nesting isn't what's hurting you | ||
| snarkyboojum | Eddward: I'm starting to think there wasn't either ;) but there was | ||
| sorear | comparing an int against a single junction with 10k ints requires 10k comparisons | 01:00 | |
| snarkyboojum | Eddward: or perhaps there wasn't, and I'm acting the fool :) | ||
| sorear | you ought to put your ints in %happy, not $happy | ||
| Eddward | sorear, It's a lot faster to use hashes instead of junctions. | 01:01 | |
| I need to look up a better way to append one has onto another. %x = $x, %y | |||
| snarkyboojum, I haven't been paying attention. There have probably been several since the last one I watched. | 01:02 | ||
| snarkyboojum | Eddward: yeah - scant details online about the last few, so I'm starting to think they're not published any longer after the event *shrug* | 01:03 | |
| Eddward: sirhc.us/journal/2010/07/22/oscon-2...the-onion/ is the most info I've found so far ;) | |||
|
01:24
aubreyja joined
01:28
mtk joined
01:52
diakopter joined
01:57
kjeldahl joined,
diakopter___ joined
|
|||
| diakopter___ | test1 | 01:57 | |
| diakopter | k | ||
|
01:57
diakopter___ left
|
|||
| sorear | whatcha testing? | 02:01 | |
| diakopter | whether unregistered users could speak | 02:03 | |
| what did that do | 02:10 | ||
| nm | 02:11 | ||
| lue | why o hai o/ | 02:12 | |
|
02:17
hsb joined
02:21
dalek joined
02:40
cibs joined
02:42
cibs left
|
|||
| sorear | Are Parcels Cool? | 02:48 | |
|
03:00
kjeldahl_ joined,
PerlJam left
03:04
dalek joined
03:05
kjeldahl joined
03:24
masonkramer left
|
|||
| sorear | I would like to campaign for $*FOO with no $*FOO in scope being an error. | 03:27 | |
| Right now, it returns a Failure, which happens to be a perfectly acceptable False in boolean contexts. | 03:28 | ||
| Allowing $*FOO to see all the way up to the initial frame makes it very easy to create non-recursive programs by accident | |||
| suppose your parser occasionally uses $*IN_DECL without localizing it | 03:29 | ||
| you won't notice until you try to add module loads | |||
| and then one day load a module inside a decl | |||
| diakopter 's brains swim before my eyes | 03:31 | ||
| sorear | wha? | 03:35 | |
|
03:40
alester joined
|
|||
| alester | ping particle | 03:41 | |
| perl6: say 'where is particle?' | 03:42 | ||
| p6eval | pugs, rakudo f7fdd5: OUTPUT«where is particle?» | ||
| sorear | Is it legal to pass an infinite number of arguments to a function? | 03:44 | |
| [Coke] | sorear: ... it would certainly be impractical | 03:55 | |
| why does it take a day for messages from RT to hit the mailing list? | 03:56 | ||
| sorear | greylisting | ||
| tylercurtis | Is *@ eager? | 03:57 | |
| [Coke] | seems silly, if everything's on the perl.org domain. | ||
| sorear | [Coke]: other side | ||
|
03:58
snarkyboojum joined
|
|||
| sorear | or something | 03:58 | |
| you'd best ask the RT admins for more details | |||
|
03:58
ashleydev joined
|
|||
| dalek | ecza: 872f958 | sorear++ | (4 files): Remove !HOW fossil |
04:02 | |
| ecza: 989e088 | sorear++ | CORE.setting: Add &unfold for easily defining lazy lists without delimited continuations |
|||
| ecza: 8e38cd1 | sorear++ | Niecza/Actions.pm: Implement ?? !! |
|||
| ecza: a6f61b0 | sorear++ | CORE.setting: Implement Cool.grep, Cool.map, Cool.for |
|||
| ecza: e9aee8f | sorear++ | (4 files): Require explicit marking of calls which need CPS conversion |
|||
| ecza: 444e9d0 | sorear++ | (2 files): Simplify handling of parenthesized context-sensitive operators |
|||
| ecza: 0530951 | sorear++ | (2 files): Implement non-statement-level bare blocks |
|||
|
04:04
PerlJam joined
04:05
PerlJam joined
04:12
cotto joined
04:13
[particle] joined
|
|||
| [particle] | now why was i kicked? | 04:14 | |
| sorear | some jerk did a channel takeover and kicked everybody | 04:16 | |
| on the plus side, pmichaud has metaops now | 04:17 | ||
| so it'll actually be possible for us to get +o ACLs | |||
|
04:19
benji-man joined,
isBEKaml joined
|
|||
| benji-man | i'm getting this err with the Rakudo Atlanta when used w/ $*INITTIME: | 04:20 | |
| sorear | rakudo: 2.note | ||
| rakudo: 2.warn | |||
| p6eval | rakudo f7fdd5: OUTPUT«Method 'note' not found for invocant of class 'Int' in main program body at line 22:/tmp/vXegajYLJf» | ||
| rakudo f7fdd5: OUTPUT«Method 'warn' not found for invocant of class 'Int' in main program body at line 22:/tmp/XjKg41OMqi» | |||
| benji-man | Method 'Bridge' not found for invocant of class 'Failure' | ||
| in 'infix:<->' at line 3407:CORE.setting | |||
| in 'Msg::write' at line 134:Msg.pm | |||
| in main program body at line 6:./Msg.p6 | |||
| is inittime broken right now? | 04:21 | ||
| sorear | I don't think I've seen $*INITTIME defined | ||
| benji-man | i had to look it up.. it's in S28: perlcabal.org/syn/S28.html | 04:22 | |
| snarkyboojum | A Temporal::Instant object? | ||
| benji-man | i'm trying to port something from perl5 that used $^T, process-startup-time | ||
| not sure if it's my misuse of the object.. i'm attempting to do $foo = time() - $*INITTIME; | 04:24 | ||
| sorear | most of S[23]. is extremely conjectural | 04:25 | |
| snarkyboojum | benji-man: I don't think $*INITTIME is implemented anywhere in Rakudo (though I don't really understand what it'd be used for) | 04:26 | |
| tylercurtis | rakudo: $*INITTIME.WHAY.say | ||
| p6eval | rakudo f7fdd5: OUTPUT«Method 'WHAY' not found for invocant of class 'Failure' in main program body at line 22:/tmp/af11Eb2BlY» | ||
| tylercurtis | rakudo: $*INITTIME.WHAT.say | ||
| sorear | rakudo: say 1.elems | ||
| rakudo: say "foo".elems | |||
| p6eval | rakudo f7fdd5: OUTPUT«Failure()» | ||
| rakudo f7fdd5: OUTPUT«1» | |||
| tylercurtis | rakudo: $*LFSLDFAGKSKNGA.WHAT.say; | ||
| p6eval | rakudo f7fdd5: OUTPUT«Failure()» | ||
| snarkyboojum | 'Contextual $*INITTIME not found' here | 04:27 | |
| tylercurtis | benji-man: looks as though $*INITTIME isn't implemented in Rakudo, so it's producing a Failure, which causes infix:<-> to die because it can't turn it into a number. | 04:28 | |
| sorear | is List.Str supposed to flatten? | 04:30 | |
| rakudo: say (1,(2,3)).Str # like so | 04:32 | ||
| p6eval | rakudo f7fdd5: OUTPUT«1 2 3» | ||
| sorear | erm. | ||
| I have my answer | |||
| tylercurtis | sorear: are you sure? Don't lists stringify as their elements stringified separated by ' '? And thus wouldn't a list of lists stringify as the same as that list flattened regardless of whether the stringification actually flattened the list? | 04:35 | |
| sorear | tylercurtis: "I have my answer" | 04:38 | |
| I was about to implemement list String in a non-associative way | |||
|
04:57
cbk joined
05:05
envi^home joined
05:19
szabgab joined
05:21
tylercurtis joined
05:23
kjeldahl_ joined
05:46
Raynes joined
05:47
Lasse_ joined
|
|||
| szabgab | rakudo: "dear evalbot, were you also kicked by audreyt?".say | 05:58 | |
| p6eval | rakudo f7fdd5: OUTPUT«dear evalbot, were you also kicked by audreyt?» | ||
|
06:02
CSJewell joined
|
|||
| CSJewell | Just curious if anybody has tried building Rakudo on 64-bit Strawberry Perl? | 06:03 | |
| dalek | ecza: 93f8f17 | sorear++ | CORE.setting: Implement Cool.{say,chars,substr,at-pos,elems,iterator} |
06:06 | |
| ecza: e9c9a9f | sorear++ | (2 files): Implement pointy blocks |
|||
| ecza: 37a27ee | sorear++ | (3 files): Implement for loops |
|||
| ecza: 0bdcb00 | sorear++ | CORE.setting: Implement List.join, Cool.join, List.Str, fix several stupid bugs |
|||
|
06:27
mafs joined
06:37
TimToady joined,
stepnem left
|
|||
| sorear | TimToady! | 06:38 | |
| Type objects dilemma again. If X is a role which cannot be punned, what is X and what operations does it support? | |||
| TimToady | well, I have to get up in 4ish hours to catch a plane to barcelona... | ||
| sorear | Presumably X.HOW is valid, so X has to be a symbol | ||
| Yeesh. What for, YAPC? | 06:39 | ||
| TimToady | eventually | ||
| you should probably work that sort of thing out with jnthn++ | 06:41 | ||
| I think jnthn++ primarily sees roles as multisubs, typewise | 06:42 | ||
| but it's possible that bare X itself cannot be usefully used for most things | 06:43 | ||
| szabgab | rakudo: 2 ~~ regex { <[0..9] - [3]> } | 06:51 | |
| rakudo: 3 ~~ regex { <[0..9] - [3]> } | |||
| p6eval | rakudo f7fdd5: ( no output ) | 06:52 | |
| szabgab | rakudo: say 2 ~~ regex { <[0..9] - [3]> } | ||
| p6eval | rakudo f7fdd5: OUTPUT«2» | ||
| szabgab | rakudo: say 3 ~~ regex { <[0..9] - [3]> } | ||
| p6eval | rakudo f7fdd5: OUTPUT«» | ||
| szabgab | rakudo: say 3 ~~ regex { <\\d - [3]> } | ||
| p6eval | rakudo f7fdd5: OUTPUT«===SORRY!===Malformed regex at line 22, near "{ <\\\\d - [3"» | ||
| szabgab | rakudo: say 3 ~~ regex { <[\\d] - [3]> } | ||
| p6eval | rakudo f7fdd5: OUTPUT«» | ||
| szabgab | rakudo: say 2 ~~ regex { <[\\d] - [3]> } | ||
| p6eval | rakudo f7fdd5: OUTPUT«» | ||
| TimToady | rakudo: say 2 ~~ regex { <+digit - [3]> } | 06:53 | |
| p6eval | rakudo f7fdd5: OUTPUT«2» | ||
| TimToady | though [\\d] ought to have worked too | ||
| szabgab | the \\d stuff won't work in character classes? | ||
| ah | |||
| so that's a bug only | |||
| ty | 06:54 | ||
| sorear | std: / :r * / #I wonder what this means | 06:57 | |
| p6eval | std 31820: OUTPUT«ok 00:01 116m» | ||
|
06:58
sawyer_ joined
07:02
drbean joined
07:03
kjeldahl joined
07:07
cosimo joined
07:17
meppl joined
|
|||
| cosimo | any idea why rakudo can't find modules in .perl6/lib ? | 07:18 | |
| nopaste.snit.ch/22289 | |||
| and good $morning, all | |||
| Tene | cosimo: check your PERL6LIB env var | ||
| sorear | good morning cosimo | 07:19 | |
| rakudo: "foo\\nbar".comb(/^./).say | 07:21 | ||
| p6eval | rakudo f7fdd5: OUTPUT«f» | ||
| sorear | rakudo: "foo\\nbar".comb(/^^./).say | ||
| p6eval | rakudo f7fdd5: OUTPUT«fb» | ||
| sorear | hmm | 07:22 | |
| rakudo: ("a","b").say | |||
| p6eval | rakudo f7fdd5: OUTPUT«ab» | ||
| sorear | niecza: ("a","b").say | ||
| p6eval | niecza 64fc764: OUTPUT«Unhandled Exception: System.Exception: Unable to resolve method say in class Parcel at Niecza.Kernel.Die (Niecza.Frame caller, System.String msg) [0x00000] in <filename unknown>:0  at Niecza.DynObject.Fail (Niecza.Frame caller, System.String msg) [0x00000] in <filename | ||
| ..unknown… | |||
| sorear | which is... oh bother | ||
| niecza: ("a","b").flat.say | |||
| p6eval | niecza 64fc764: OUTPUT«Unhandled Exception: System.Exception: Unable to resolve method say in class List at Niecza.Kernel.Die (Niecza.Frame caller, System.String msg) [0x00000] in <filename unknown>:0  at Niecza.DynObject.Fail (Niecza.Frame caller, System.String msg) [0x00000] in <filename | 07:23 | |
| ..unknown>:… | |||
| cosimo | Tene: doesn't the paste show that @*INC contains my '/home/cosimo/.perl6/lib' already? | ||
| it used to work... | |||
| szabgab | cosimo: have you ran make install? | 07:24 | |
| or probably I just misunderstand the whole thing | |||
| cosimo | szabgab: yes, App/Pls.pir is there, as `ls' shows | ||
| sorear | rakudo: ("a","b").flat.say | 07:25 | |
| p6eval | rakudo f7fdd5: OUTPUT«ab» | ||
| cosimo | szabgab: i mean, in ~cosimo/.perl6/lib/App/Pls.pir | ||
| sorear | stefan@stefans:~/niecza$ ./niecza_eval -e '("a","b").flat.say' | ||
| a b | |||
| which is right | |||
| snarkyboojum | cosimo: are you just use'ing it in 'proof-of-concept'? | 07:26 | |
| sorear | ? | 07:27 | |
| TimToady | rakudo is right | ||
| neither .flat nor .say are in the business of inserting spaces | 07:28 | ||
| cosimo | snarkyboojum: i think so | 07:29 | |
| snarkyboojum | cosimo: will see if can reproduce | ||
| cosimo | just cleaned, pulled and built both rakudo and parrot | ||
|
07:30
wamba joined
|
|||
| cosimo | snarkyboojum: maybe it's because of the .pir extension | 07:32 | |
| snarkyboojum | cosimo: yeah, that's what I'm testing atm | ||
| cosimo | snarkyboojum: i'm sure it worked a few rakudos ago... | 07:33 | |
| snarkyboojum | cosimo: I have a feeling that it'll use the pir in ~/.perl6/lib if there is a .pm there, but not sure if there is just a .pir (just a gut feeling) | ||
| cosimo: i.e. if there is a .pm and a .pir | 07:34 | ||
| TimToady | zzz & | ||
| snarkyboojum | cosimo: kinda seems that way on a superficial reading of Perl6::Module::Loader | 07:35 | |
| sorear | <.SUPER::ws> ? Is that even legal? | 07:36 | |
| snarkyboojum | cosimo: Perl6::Module::Locator only seems to look for .pm and .pm6, so if that fails, it never checks for .pir in Perl6::Module::Loader | ||
| mberends | cosimo, snarkyboojum: yes, that's the intent by design. The .pm or .pm6 file is officially the module you need to have installed, and the .pir file is just a performance enhancement. | 07:38 | |
| snarkyboojum | mberends: ok - so you can't just dump a compiled .pir file in your lib dirs | 07:39 | |
| mberends | snarkyboojum: you can't. | ||
| snarkyboojum | mberends: you have to have a pm or pm6 there to use it - ok | ||
| mberends: thanks for clearing that up :) | |||
| mberends | well you can, but they won't work as modules ;) | ||
| snarkyboojum | mberends: I see :) | 07:40 | |
|
07:40
kjeldahl_ joined
|
|||
| snarkyboojum | mberends++ :) | 07:40 | |
| mberends | this points to a need for documentation, but where would people go looking? | ||
| sorear | Is it the intention that any implementation can claim bits of extension space in ~/.perl6/lib? | 07:41 | |
| i.e. I can claim App/Pls.dll | |||
| mberends | sorear: only Rakudo uses ~/.perl6 so far, it's an implementation specific policy. S11 is deliberately unclear about implementation. You're certainly welcome to claim other file extensions right now. That might become a friction point in future though. | 07:43 | |
| snarkyboojum | mberends: if it's implementation specific then I guess it belongs in rakudo doco somewhere? | 07:44 | |
| cosimo | mberends: i have been using 'ufo' to build and install modules. Am i wrong? | ||
| mberends | cosimo++: you're right to do so :) | 07:45 | |
| snarkyboojum | does rakudo have implementation specific doco on those types of implementation points yet? | 07:47 | |
| cosimo | mberends: it looks like I needed to update ufo as well | 07:48 | |
|
07:48
cognominal joined
|
|||
| mberends | snarkyboojum: there is rakudo/docs/S11-Modules-proposal.pod which is only partly implemented. Some of us meeting in Pisa may well re-visit that design and take it further. | 07:50 | |
| snarkyboojum | cosimo: yeah, ufo generated makefiles install both a .pm and a .pir into ~/.perl6/lib for me - so looks consistent | 07:51 | |
| mberends: groovy | |||
| mberends | sorear: to avoid file collisions, would this set make sense to you: ~/.perl6/lib/App/Pls.pm6, ~/.perl6/rakudo/lib/App/Pls.pir, ~/.perl6/niecza/lib/App/Pls.dll ? It would involve only a small Rakudo update. | 07:54 | |
| cosimo | masak: snarkyboojum: I needed to patch ufo to correctly deal with .pm6 installation | 07:56 | |
| github.com/cosimo/ufo/commit/c3a30c...9ad534956f | 07:57 | ||
| snarkyboojum | cosimo: cool - just found that bug too - I thought someone had patched ufo for pm6 extensions | ||
| mberends | cosimo++ | ||
|
07:58
chitragupt left
|
|||
| cosimo | so that means that rakudo now will load only .pm files and ignore .pir files? | 08:00 | |
|
08:00
chitragupt joined
|
|||
| cosimo | I just run the test suite for LWP::Simple and its noticeably slower | 08:01 | |
| mberends | cosimo: Rakodo should find the .pm or .pm6 file, and then load the .pir file if it exists, otherwise load the .pm or .pm6 file | 08:02 | |
|
08:02
cogno joined
|
|||
| sorear | mberends: shrug, niecza isn't nearly that mature yet and probably never will be | 08:02 | |
| mberends: do what's convenient for rakudo (and doesn't completely ruin extensibility) | 08:03 | ||
| szabgab | rakudo: say 'monday' ~~ m/ mon | monday / | ||
| p6eval | rakudo f7fdd5: OUTPUT«mon» | ||
| szabgab | I thought it would match monday | ||
| sorear | it *should* | 08:04 | |
| mberends | sorear: ok thanks | ||
| sorear | however, longest term matching is not implemented in any existing implementation of Perl 6 | ||
| snarkyboojum | cosimo: FYI - your patch fixes the .pm6 problem for me :) | ||
| szabgab | ok, so I better not try that in live show... | 08:05 | |
| mberends | hugme: add mberends to ufo | ||
| ENOHUGME :-( # due to the Great Kick | 08:06 | ||
| snarkyboojum | I can't commit to ufo either - I'm sure masak will apply it | ||
| mberends | yep | 08:07 | |
| sorear | 22:00 -!- hugme [~moritz@feather2.perl6.nl] has quit [Ping timeout: 240 seconds] | ||
| this was well after the kick | |||
| dalek | ecza: 90bb87e | sorear++ | Niecza/Actions.pm: Implement parsing for metachar:* except qw, var |
08:08 | |
| ecza: efc2334 | sorear++ | (2 files): Fix --ast mode |
|||
| ecza: 78b17bb | sorear++ | (2 files): Implement :!s-like modifiers and fix null subregexes |
|||
|
08:08
Mowah joined
|
|||
| cosimo | snarkyboojum: cool | 08:09 | |
| sorear: OMG, perl6 on .net runtime? awesome | 08:11 | ||
| snarkyboojum | .OMG :) | ||
| cosimo wonders how long to perl6-on-jvm :) | 08:12 | ||
|
08:12
hugme joined
|
|||
| sorear | hey | 08:12 | |
| who did that | |||
| and would they please tell me how | 08:13 | ||
| I spent the last ten minutes logged in to feather2 as root fighting screen's command interface | |||
| moritz_ | |||
| screen -Urd | 08:14 | ||
| moritz_ finds a better solution | |||
| sorear | screen refuses to operate as root | ||
|
08:14
hugme joined
|
|||
| sorear | as su moritz, it fails (can't open terminal) | 08:14 | |
|
08:14
hugme joined
|
|||
| snarkyboojum | hugme needs some hugs | 08:15 | |
| moritz_ | sorear: I've now put it in a while true; do perl hugme.pl; sleep 1; done loop | ||
| sorear: so the next time, you can just kill the perl process, and it will reconnect | |||
| sorear | oh, awesome. | 08:16 | |
| mberends | sorear: pulled your last commit, passes all 99 tests on Ubuntu/x86 :) | 08:17 | |
| hugme: add mberends to ufo | 08:18 | ||
| hugme hugs mberends. Welcome to ufo! | |||
| sorear | mberends: it had better, that's almost the development platform | 08:19 | |
| mberends | cosimo: merged your fix and pushed | 08:23 | |
| moritz_ | mberends++ | ||
| cosimo++ | |||
|
08:24
Leonidas joined
08:46
zulon joined
08:47
TiMBuS joined,
cono joined
|
|||
| moritz_ | rakudo: say &infix:<+>.assuming(3).(5) | 09:02 | |
| p6eval | rakudo f7fdd5: OUTPUT«8» | ||
| moritz_ | rakudo: say &infix:<x>.assuming(2).('foo') | 09:03 | |
| p6eval | rakudo f7fdd5: OUTPUT«» | ||
| moritz_ | rakudo: my $x = *; say $x + 2 | 09:06 | |
| p6eval | rakudo f7fdd5: OUTPUT«Can't take numeric value for object of type Whatever in 'Any::Numeric' at line 1348:CORE.setting in 'infix:<+>' at line 6394:CORE.setting in main program body at line 22:/tmp/bkbNmtXHwg» | ||
| moritz_ | rakudo: say ~(1, 2, 3).map: 'foobar'.substr(*) | 09:12 | |
| p6eval | rakudo f7fdd5: OUTPUT«Can't take numeric value for object of type Whatever in 'Any::Numeric' at line 1348:CORE.setting in 'infix:<>>' at line 6394:CORE.setting in 'Cool::substr' at line 2189:CORE.setting in main program body at line 22:/tmp/2gnyKxnwLh» | ||
|
09:13
trek1s joined
09:14
zulon joined
09:15
oha joined
|
|||
| szabgab | rakudo: my regex qqrq { \\d }; say '42' ~~ m/ <qqrq> / | 09:16 | |
| p6eval | rakudo f7fdd5: OUTPUT«Method 'qqrq' not found for invocant of class 'Cursor' in <anon> at line 22:/tmp/mAzoo_po6f in 'Cool::match' at line 2377:CORE.setting in 'Regex::ACCEPTS' at line 5470:CORE.setting in main program body at line 22:/tmp/mAzoo_po6f» | ||
| szabgab | no named regexes now? | ||
|
09:17
dju_ joined
|
|||
| szabgab | or am I doing sg wrong? | 09:17 | |
| moritz_ | rakudo: my regex qqrq { \\d }; say '42' ~~ m/ <&qqrq> / | ||
| Tene | rakudo: my regex qqrq { \\d }; say '42' ~~ m/ <&qqrq> / | ||
| p6eval | rakudo f7fdd5: OUTPUT«4» | ||
| szabgab | rakudo: my regex qqrq { \\d }; say '42' ~~ m/ <&qqrq> / | ||
| p6eval | rakudo f7fdd5: OUTPUT«4» | ||
| szabgab | hmm | 09:18 | |
| will that & stay there ? | |||
| moritz_ | sorear: if you want it to capture, you need the ugly <qqrq=&qqrq> syntax for now | ||
| szabgab | or just for now? | ||
| moritz_ | erm, meant szabgab | ||
| Tene | szabgab: just for now | ||
| moritz_ | I think it's meant to go again, in the long run | ||
| szabgab | oh ppl, and I wanted to show it working .. | ||
| moritz_ | szabgab: then write a grammar :/ | 09:19 | |
| moritz_ not happy with it either | |||
| szabgab | what do you mean by write a grammar? | ||
| in grammars this works? | |||
| moritz_ | yes | ||
| szabgab | oh | ||
| moritz_ | because it does method lookup, not lexical lookup | ||
|
09:20
xabbu42 joined
|
|||
| szabgab | I am reaching the grammars a bit later | 09:20 | |
| moritz_ | rakudo: grammar A { token TOP { \\d+ } }; say A.parse('42') | ||
| p6eval | rakudo f7fdd5: OUTPUT«42» | ||
| szabgab | let me continue now with the caveat | ||
|
09:24
Axius_ joined
|
|||
| oha | rakudo: my $r = regex { \\w\\w }; say "123" ~~ /$r/; | 09:24 | |
| p6eval | rakudo f7fdd5: OUTPUT«12» | ||
| moritz_ | github.com/moritz/perlgeek.de/blob/...rrying.pod # feedback appreciated before I blog it | 09:25 | |
| and after that too :-) | |||
| Axius_ | hi, I'm new to perl 6.How can I try perl 6 wihout installing it on my mashine? | ||
| moritz_ | rakudo: say "like this, Axius_" | 09:26 | |
| p6eval | rakudo f7fdd5: OUTPUT«like this, Axius_» | ||
| moritz_ | you can also /msg p6eval rakudo: your code here | ||
| Axius_: we're also working on a web interface, but it's not running yet | |||
| Axius_ | rakudo:say 23 * 5 | 09:27 | |
| moritz_ | it might need the space after the colon | 09:28 | |
| Axius_ | rakudo: say 23 * 5 | ||
| p6eval | rakudo f7fdd5: OUTPUT«115» | ||
| Axius_ | thanks | ||
| moritz_ | you're welcome | ||
| have fun with Perl 6! :-) | 09:29 | ||
|
09:31
pugssvn joined
|
|||
| moritz_ resurrects pugssvn | 09:31 | ||
| jnthn | moritz_: currying article looks good - maybe mention the * + * like forms where it creates a closure that takes two args? | ||
| moritz_ | jnthn: it's in the text body, C<* * 5 + *> | ||
| jnthn: do you think it belongs in the synopsis too? | 09:32 | ||
| jnthn | moritz_: oh, I missed it | 09:33 | |
| moritz_: :-) | |||
| I was looking for a full-on code example with it in | |||
| moritz_ | rakudo: (* * 5 + *).(10, 2) | 09:34 | |
| p6eval | rakudo f7fdd5: ( no output ) | ||
| moritz_ | rakudo: say (* * 5 + *).(10, 2) | ||
| p6eval | rakudo f7fdd5: OUTPUT«52» | ||
| mberends | moritz_: very nice article. In the Description, s/extracts/extract/ | ||
| jnthn | Time to go meet a friend in another city. bb sometime | ||
| moritz_ | jnthn, mberends: thanks | 09:35 | |
| jnthn: have fun :-) | |||
| oha | "* * 5+*" i read it as "* * -> 5+*". how come "* * -> *+5+*"? | 09:37 | |
| moritz_ confused | 09:38 | ||
| you just substitute each term * with a parameter | 09:39 | ||
| oha | yep | ||
| moritz_ | so * * 5 + * becomes $a * 5 + $b | 09:40 | |
| oha | ohhhhhh | ||
| not al the stars are params, one is a infix ok | |||
| ty moritz_ | 09:41 | ||
| maybe "* / 5+ *" would generate less confusion? | 09:42 | ||
| moritz_ | oha: I've pushed a version with more verbose explanation | ||
| oha | spaces become important that way | ||
| cauz | |||
| ** could be power | 09:43 | ||
| moritz_ | right | ||
| huf | spaces are always important ;) | ||
| moritz_ | rakudo: (* ** *).(3) | ||
| p6eval | rakudo f7fdd5: OUTPUT«Not enough positional parameters passed; got 1 but expected 2 in <anon> at line 2:/tmp/QBFXOZy1R6 in main program body at line 22:/tmp/QBFXOZy1R6» | ||
| huf | pick() isnt the same as p ick() | ||
| moritz_ | rakudo: say (* ** *).(3, 2) | ||
| p6eval | rakudo f7fdd5: OUTPUT«9» | ||
| oha | i wonder ***-1 | 09:44 | |
| moritz_ | oha: back in the day the spec was slightly different, and * * * would mean -> $a { $a * $a }. Then perlgeek.de/blog-en/perl-6/starry-obfu.html worked :-) | ||
| rakudo: ***-1 | 09:45 | ||
| p6eval | rakudo f7fdd5: OUTPUT«===SORRY!===HyperWhatever (**) not yet implemented at line 22, near "*-1"» | ||
| oha | will be $a ** -1 or $a * $b - 1 | ||
| moritz_ | ***-1 is ** * -1 # there's also a term **, which is a mullti-dimensional Whatever | ||
|
09:46
jedai joined,
abrasive joined
|
|||
| oha | huf, i just tough about perl5 print issues | 09:47 | |
| huf | hm? | ||
| moritz_ | print (1+2) * 3; # confuses the heck out of beginners in Perl 5 | 09:49 | |
| did you mean this one? | |||
| oha | i do not remember exactly the case but i remember that print( and print ( will be parsed differently in some cases | 09:51 | |
| moritz_ | in p5 they are always parsed the same | 09:52 | |
| in p6 never | |||
| oha | i'm still searching... | ||
| moritz_ | $ perl -E 'say (1+2)*3' | ||
| 3 | |||
| $ perl6 -e 'say (1+2)*3' | 09:53 | ||
| 9 | |||
| $ perl6 -e 'say(1+2)*3' | |||
| 3 | |||
| cognominal | std: say $_ for 1..2 if 1 | ||
| p6eval | std 31821: OUTPUT«[31m===[0mSORRY![31m===[0mConfused at /tmp/bz651RH3ep line 1:------> [32msay $_ for 1..2 [33m⏏[31mif 1[0mParse failedFAILED 00:01 117m» | ||
| moritz_ | rakudo: say $_ for 1..2 if 1 | ||
| p6eval | rakudo f7fdd5: OUTPUT«===SORRY!===Missing block at line 22, near ""» | ||
| cognominal | I thought stacking a conditional modifier whith a loop modifier was allowed. | 09:54 | |
| Larry has flipfloped many times on that one. | |||
| moritz_ | rakudo: say $_ if $_ % 2 for 1..5 | 09:55 | |
| p6eval | rakudo f7fdd5: OUTPUT«135» | ||
| cognominal | too bad I don't need them in that order. | 09:56 | |
| I can do an or anyway | 09:57 | ||
| huf | which s describes Whatever? | ||
| cognominal | ...to avoid a block | ||
| moritz_ | S02 iirc | ||
| oh right, I forgot the SEE ALSO section | 09:58 | ||
| huf | thanks | ||
| Axius_ | Where can I find a tutorial about perl6? | 09:59 | |
| moritz_ | Axius_: do you know perl 5? | 10:01 | |
| cognominal | Axius: github.com/perl6/book/downloads | ||
| moritz_ | see also: perl6.org/documentation/ | 10:02 | |
| Axius_ | ok, thank. | 10:03 | |
| sorear out | 10:07 | ||
| szabgab | moritz_: why do you use := and not simple = assignment in the currying example? | 10:58 | |
| moritz_ | szabgab: because I happened to know that it works that way | 11:02 | |
| rakudo: my &f = sub () { say "moep" }; f() | 11:03 | ||
| p6eval | rakudo f7fdd5: OUTPUT«moep» | ||
| moritz_ | could have used assignment instead, no difference, it seems | ||
| szabgab | moritz_: thanks, I am still trying to figure out when is := useful :") | 11:08 | |
| rakudo: $sos = * * * + + + * * *; say $sos(2, 11, 4, 5) | 11:13 | ||
| p6eval | rakudo f7fdd5: OUTPUT«===SORRY!===Symbol '$sos' not predeclared in <anonymous> (/tmp/cy4fEZ_CIi:22)» | ||
| szabgab | rakudo: my $sos = * * * + + + * * *; say $sos(2, 11, 4, 5) | ||
| p6eval | rakudo f7fdd5: OUTPUT«42» | ||
|
11:14
kjeldahl joined
|
|||
| moritz_ | szabgab++ | 11:15 | |
| szabgab | I wonder what kind of art will come out of this | ||
| moritz_ | perlgeek.de/blog-en/perl-6/starry-obfu.html | ||
| but it only works with the old spec | |||
| rakudo: my $sos = * * * - - - * * *; say $sos(13, 4, 2, 5) | 11:16 | ||
| p6eval | rakudo f7fdd5: OUTPUT«42» | ||
| szabgab | that obfu thing is scary | 11:18 | |
| moritz_ | I know :-) | 11:19 | |
| szabgab | I wonder if I should use that as my opening slide at the Python meeting presenting perl 6 | ||
| moritz_ | I don't know if they appreciate that kind of humor | 11:20 | |
|
11:21
chitragupt joined
|
|||
| szabgab | I think they are serious people | 11:22 | |
| I need to find a serious joke fr hem | |||
| or series | |||
| anyway, nice article | 11:23 | ||
| TiMBuS | is the use of := encouraged for saving memory usage? or is it more just intended for referencing things (like nested data) | 11:26 | |
| if so, I could see := being used in place of = for a lot of things szabgab | 11:28 | ||
| moritz_ | I don't think so | 11:29 | |
| := can lead to strange action-at-a-distance if used without care | |||
| TiMBuS | that's very true. use ::= instead? | 11:31 | |
| szabgab | it is basically what is called aliasing in perl 5 , right? | ||
| oha | i see that for @a -> $x { ... } $x is readonly, but for @a { ... } $_ is rw | 11:32 | |
| isn't risky to default to rw? | |||
| or maybe counter-intuitive? | |||
| moritz_ | it's what people are used to from p5 | 11:33 | |
| moritz_ wouldn't mind defaulting to ro | |||
| oha | i remember more cases in p5 where this was a bug instead of a wanted feature :) | 11:34 | |
| moritz_ | the famous my @a = map { s/a/b/ }, @thing | 11:35 | |
| "why is @thing broken? and @a is just 1s and 0s?" | 11:36 | ||
| oha | the map should not do aliasing, or am i wrong? | ||
| moritz_ | map and for are the same thing | 11:37 | |
| oha | i mean, @thing shouldn't be changed there | ||
| moritz_ | it should | ||
| oha | rakudo: my @a=1..4; map { $_*2 }, @a; say @a.perl; | ||
| p6eval | rakudo f7fdd5: OUTPUT«[1, 2, 3, 4]» | ||
| oha | ehm | 11:38 | |
| moritz_ | rakudo: my @a=1..4; map {$_= $_*2 }, @a; say @a.perl; | ||
| oha | rakudo: my @a=1..4; map { $_*=2 }, @a; say @a.perl; | ||
| p6eval | rakudo f7fdd5: OUTPUT«[1, 2, 3, 4]» | ||
| oha | rakudo: my @a=1..4; for @a { $_*=2 }; say @a.perl; | ||
| moritz_ | ah, it's lazy | ||
| p6eval | rakudo f7fdd5: OUTPUT«[2, 4, 6, 8]» | ||
| moritz_ | rakudo: my @a=1..4; eager map {$_= $_*2 }, @a; say @a.perl; | ||
| p6eval | rakudo f7fdd5: OUTPUT«[2, 4, 6, 8]» | ||
| oha | moritz_++ | 11:39 | |
| a reason more that should default to ro then :) | |||
| moritz_ | it's not me who needs to be convinced | 11:40 | |
| oha | mh | 11:41 | |
| rakudo: my @a=1..4; map { $_*=2; }, @a; say @a[1]; | |||
| p6eval | rakudo f7fdd5: OUTPUT«2» | ||
| oha | rakudo: my @a=1..4; eager map { $_*=2; }, @a; say @a[1]; | ||
| p6eval | rakudo f7fdd5: OUTPUT«4» | ||
| oha | the lazy is on the result, and not on the aliased? | 11:42 | |
| rakudo: my @a=1..4; my @x := map { $_*=2; }, @a; say @a[1]; say @x[1]; say @a[1]; | 11:43 | ||
| p6eval | rakudo f7fdd5: OUTPUT«244» | ||
| sorear | Two terms in a row (previous line missing its semicolon?) at CORE.setting line 441: | 11:45 | |
| I love STD | |||
|
11:48
squeeky joined
|
|||
| TiMBuS | oha, that last one is a pretty good argument for a readonly $_ right there | 11:50 | |
| oha | TiMBuS, mh. or the lazy is applied to the invocant too | 11:51 | |
| so @a[1]; will computer *=2; | |||
| TiMBuS | i dont want to think about how that would be implemented D: | 11:52 | |
|
11:53
funneydude joined
|
|||
| oha | eheheh :) | 11:53 | |
|
11:53
xinming joined
|
|||
| TiMBuS | on the other hand its kind of cool to see laziness in action like that | 11:54 | |
| rakudo: my @a=1..4; my @x := map { $_*=2; }, @a; say @a[1]; say @x[1]; say @a[2]; | |||
| p6eval | rakudo f7fdd5: OUTPUT«243» | ||
| TiMBuS | :o magic | ||
| oha | rakudo: my @a=1..4; my @x := map { $_*=2; }, @a; say @a[1]; say @x[2]; say @a[1]; | 11:55 | |
| p6eval | rakudo f7fdd5: OUTPUT«264» | ||
| oha | it evaluat "up to"? | ||
| TiMBuS | yep | ||
| oha | but probably "depends on the implementation" | 11:56 | |
| so you can't assert what happen to @a[x] when any other element is accessed | |||
|
11:57
p6eval joined
|
|||
| TiMBuS | true | 11:58 | |
| I think it'd be extremely hard to implement any other kind of laziness though | |||
|
11:59
Gothmog_ joined
|
|||
| oha | it seems to me that the "lazy code" is attached to the container and not the value, isn't it? | 11:59 | |
|
11:59
nigell joined
|
|||
| TiMBuS | yes | 11:59 | |
| oha | but lazyness change the value to aliases too, so | 12:00 | |
|
12:00
rindolf joined
|
|||
| dalek | ecza: e569c75 | sorear++ | (3 files): Implement has declarations |
12:00 | |
| ecza: 0357b1d | sorear++ | (4 files): Implement add-attribute metacall so has declarations can work |
|||
| oha | aliasing w/ lazyness is scary | ||
| dalek | ecza: 607036c | sorear++ | Op.pm: Unbreak has $.a |
||
| ecza: 67aa90a | sorear++ | (3 files): Implement Mu.new, which sets up attributes automatically |
|||
| ecza: 3063691 | sorear++ | CORE.setting: Use attributes in setting |
|||
| ecza: f3424dd | sorear++ | test.pl: Add a few tests for pseudo-packages and objects with attributes |
|||
|
12:02
snarkyboojum left
12:08
isBEKaml joined
|
|||
| isBEKaml | hi, #perl6! | 12:09 | |
| moritz_ | \\o | 12:10 | |
| isBEKaml | moritz_: perlgeek.de/blog-en/perl-5-to-6/07-...writeback. I think the path rule is somewhat wrong. Shouldn't the hypen be escaped? | ||
| moritz_: "-" -> "\\-" | 12:11 | ||
| moritz_ checks | |||
| isBEKaml | moritz_: the period too. | 12:12 | |
| moritz_ | std: /<[ a - b ]>/ | ||
| p6eval | std 31821: OUTPUT«[31m===[0mSORRY![31m===[0mUnsupported use of - as character range; in Perl 6 please use .. at /tmp/Te7OAodwDp line 1:------> [32m/<[ a - b[33m⏏[31m ]>/[0mParse failedFAILED 00:01 116m» | ||
| moritz_ | isBEKaml: I don't think the period has special meaning in a char class | ||
| std: /<[ a \\- b ]>/ | |||
| p6eval | std 31821: OUTPUT«ok 00:01 116m» | ||
| moritz_ | isBEKaml: i've fixed the source now, will update the generated files later | 12:13 | |
| thanks | |||
|
12:13
Guest23195 joined
|
|||
| isBEKaml | moritz_: I thought the period is just about any character. if we want the period to be shown, we should be escaping it? | 12:13 | |
|
12:14
mscha joined
|
|||
| moritz_ | isBEKaml: in a character class it makes no sense vor a period to be everythinig | 12:15 | |
| s/vor/for/ | 12:16 | ||
| because then the whole character class would be the same as a period in normal regexes, ie match any character | |||
| oha | maybe <[.]-[x]> have? | ||
| isBEKaml | moritz_: Ah, I see. Thanks. | 12:17 | |
| moritz_ | .oO (one eye cross out? ) | 12:18 | |
| oha: that's the same as <-[x]> | |||
| isBEKaml | moritz_: what does this mean then? <byte> [\\. <byte> ] ** 3 | 12:21 | |
| moritz_ | byte, than a dot, than a byte, repeat 3 times | ||
| isBEKaml: in character classes the rules for escaping are different | |||
| isBEKaml | moritz_: yes, I understood that. escaping the . ? | ||
| moritz_ | yes | 12:22 | |
| isBEKaml goes looking at S05 | 12:23 | ||
| moritz_: one more thing in your TOP rule. the <hostname> token is such defined that it never looks at the alternation <ip> token. Have you checked that? Try typing in some ip num and say $match<ip>. I just get a blank here. | 12:28 | ||
| moritz_: I think the \\w would match everything. So nothing goes into <ip> | 12:29 | ||
|
12:29
aigoo joined
|
|||
| isBEKaml | s/everything/\\1 alnum/ | 12:29 | |
| moritz_ | right | ||
| this grammar was written before rakudo supported them properly, so it's not tested at all :( | 12:30 | ||
| aigoo | hi, I'm new to perl6 and I need some help. | ||
| moritz_ | hi aigoo | 12:31 | |
| what kind of help do you need? | 12:32 | ||
| aigoo | How try perl6 without installing it? | 12:33 | |
| How can I try perl6 without installing it? | |||
| moritz_ | funny, we've had that question today already | ||
| aigoo: see irclog.perlgeek.de/perl6/2010-07-25#i_2606150 | 12:34 | ||
| aigoo | moritz_: | 12:35 | |
|
12:36
JimmyZ joined
|
|||
| aigoo | almost the some question | 12:37 | |
| moritz_ | or do you mean, without running 'make install'? | ||
| you can run rakudo without 'make install', but only from the build directory | |||
| but really nothiing stops you from 'make install' - you don't need root privs, and it's only intalling locally | 12:38 | ||
| aigoo | What do you mean by "build directory"? | 12:39 | |
| szabgab | rakudo: say time | 12:40 | |
| p6eval | rakudo f7fdd5: OUTPUT«1280060416» | ||
| szabgab | rakudo: say time + 0 | ||
| p6eval | rakudo f7fdd5: OUTPUT«Too many positional parameters passed; got 1 but expected 0 in 'time' at line 5578:CORE.setting in main program body at line 22:/tmp/A3iESm2YtP» | ||
| szabgab | rakudo: say 0 + time | ||
| p6eval | rakudo f7fdd5: OUTPUT«1280060451» | ||
| aigoo | rakudo: say 12 ** 2 | ||
| p6eval | rakudo f7fdd5: OUTPUT«144» | 12:41 | |
| szabgab | rakudo(time + 0) | ||
| moritz_ | aigoo: the rakudo dir, in which you can find the README, for example | ||
| szabgab | rakudo: say(time + 0) | ||
| p6eval | rakudo f7fdd5: OUTPUT«Too many positional parameters passed; got 1 but expected 0 in 'time' at line 5578:CORE.setting in main program body at line 22:/tmp/pgH6Fark78» | ||
| moritz_ | rakudo: say time() + 0 | ||
| szabgab | rakudo: say(time() + 0) | ||
| p6eval | rakudo f7fdd5: OUTPUT«1280060493» | ||
| rakudo f7fdd5: OUTPUT«1280060497» | |||
| aigoo | rakudo: say (23 **3) + 23 - 3 | 12:42 | |
| p6eval | rakudo f7fdd5: OUTPUT«12187» | ||
| aigoo | rakudo: print 364 ** 2 | 12:43 | |
| p6eval | rakudo f7fdd5: OUTPUT«132496» | ||
| isBEKaml | moritz_: :( | 12:44 | |
| moritz_: doesn't swapping <hostname> and <ip> tokens in TOP help? | |||
| isBEKaml checks. | |||
| moritz_ | isBEKaml: it should | 12:45 | |
| at least in rakudo | |||
| isBEKaml | moritz_: Seems to work! :) | ||
| moritz_: [<hostname> | <ip> ] -> [ <ip> | <hostname> ] | 12:46 | ||
| cognominal | rakudo: %( { :a } ) | 12:48 | |
| p6eval | rakudo f7fdd5: OUTPUT«Method 'hash' not found for invocant of class '' in main program body at line 22:/tmp/yaWywQx8Wt» | ||
| cognominal | std : %( { :a } ) | 12:49 | |
| std: %( { :a } ).perl | |||
| p6eval | std 31821: OUTPUT«ok 00:01 115m» | ||
| aigoo | How can one use the std in perl6? | ||
| moritz_ | std is a syntax checker | 12:50 | |
| currently you can't use it from within rakudo, for example | |||
| szabgab | rakudo: my $x = "1" x 20000; my $t0 = time; say $x ~~ m/:s \\d+ \\+ /; my $t1 = time; say $x ~~ m/:s:ratchet \\d+ \\+ /; my $t2 = time; say $t1-$t0, " ", $t2-$t1; | 12:51 | |
| my $x = "1" x 20000; my $t0 = time; say $x ~~ m/:s \\d+ \\+ /; my $t1 = time; say $x ~~ m/:s:ratchet \\d+ \\+ /; my $t2 = time; say $t1-$t0, " ", $t2-$t1; | |||
| p6eval | rakudo f7fdd5: OUTPUT«2 2» | ||
| szabgab | hmm, I tried to check how :ratchet improves speed | 12:52 | |
| oha | szabgab, in this case the engine should optimize alot | 12:53 | |
| aigoo | say = print in per? | 12:54 | |
| say = print in perl6? | |||
|
12:55
masonkramer joined
|
|||
| moritz_ | say = print + newline | 12:55 | |
| cono | aigoo: say "text" = print "text\\n" | ||
| szabgab | I get about 50% speed improvement only | 12:56 | |
| cono | moritz_: btw, print+(2+1)*3, + - context change operator? Or just prefix + ? | ||
| dalek | ok: d9997e5 | moritz++ | src/regexes.pod: [rx] uglify the regex chapter, but make the code run at least. Probably also <foo> |
12:57 | |
| ok: 54850cf | moritz++ | src/grammars.pod: [grammars] explain <foo> calling syntax |
|||
| ok: 93ee5f2 | (Nikolai Prokoschenko)++ | (14 files): merge layout-basic branch |
|||
| ok: f6de689 | (Nikolai Prokoschenko)++ | Makefile: note to self: test before push. Fixed the makefile |
|||
| moritz_ | cono: in perl 5, prefix + is a no-op | 12:58 | |
| just for parsing disambiguation | |||
| cono | thanks | 12:59 | |
| colomon | am I correct in thinking we don't have "lift" yet? | 13:00 | |
| moritz_ | colomon: correct | 13:01 | |
| colomon | that's really ugly for Vector. :( | 13:02 | |
| moritz_ | I know | ||
|
13:03
sundar joined
|
|||
| isBEKaml | aigoo: just one thing. Please donot login to IRC networks as root user. login as any user but root. Security issue. :) | 13:04 | |
| TimToady | at seatac | 13:07 | |
| sorear | Did alpha have lift? | ||
| TimToady | freewifi++ | ||
| szabgab | how can I use the result of a computation as par of a regex ? | 13:08 | |
| rakudo: say '2 + 3 = 5' ~~ rule { (\\d+) \\+ (\\d+) \\= { $0+$1 } } | |||
| moritz_ | sorear: no | ||
| p6eval | rakudo f7fdd5: OUTPUT«2 + 3 = » | ||
| moritz_ | rakudo: say '2 + 3 = 5' ~~ rule { (\\d+) \\+ (\\d+) \\= <?{ $0 + $1 }> } | ||
| p6eval | rakudo f7fdd5: OUTPUT«2 + 3 = » | ||
| sorear | szabgab: \\= "{ $0 + $1 }" should work | ||
| szabgab | rakudo: say '2 + 3 = 5' ~~ rule { (\\d+) \\+ (\\d+) \\= <?{ $0+$1 }> } | ||
| p6eval | rakudo f7fdd5: OUTPUT«2 + 3 = » | 13:09 | |
| moritz_ | rakudo: say '2 + 3 = 5' ~~ rule { (\\d+) \\+ (\\d+) \\= <?{ say $0 + $1; $0 + $1 }> } | ||
| p6eval | rakudo f7fdd5: OUTPUT«52 + 3 = » | ||
| moritz_ | sorear: don't think so. { } just executes, but does not use the return value | ||
| sorear | {} runs stuff in void context | ||
| moritz_: "{}" is an interpolating string | |||
| moritz_ | hm | ||
| sorear | rakudo: say "{ 2 + 3 }" | ||
| moritz_ | rakudo: say '2 + 3 = 5' ~~ rule { (\\d+) \\+ (\\d+) \\= "{ say $0 + $1; $0 + $1 }" } | ||
| p6eval | rakudo f7fdd5: OUTPUT«5» | ||
| rakudo f7fdd5: OUTPUT«» | |||
| moritz_ | sorear: you're right - but I don't know if that's implmented in Rakudo | 13:10 | |
|
13:11
azert0x joined
|
|||
| colomon | moritz_: arrrgh. Given Vector +, += doesn't work, [+] doesn't work, >>+<< doesn't work.... :( | 13:12 | |
| szabgab | so when is the ratchet useful besides speed issues? | 13:13 | |
| moritz_ | szabgab: for avoiding reparses, for example | 13:14 | |
| szabgab | that's speed, right? | ||
| moritz_ | szabgab: if you parse a programming language, and you match a number with \\d+, and the next rules fails, you don't want it to backtrack | ||
| szabgab | unless I am looking for a snippet in the code | 13:16 | |
| but this can be true in any case where I do "input validation" | 13:17 | ||
| thyat is when I use ^ anchor | |||
| so for this purpose any well defined syntax / file format is a "programming language" | 13:18 | ||
|
13:18
meteorjay joined
|
|||
| TimToady | boarding & | 13:31 | |
| oha | rakudo: my $x = "11"~(1..10).map({$_*$_*$_}).join('0'); say ($x ~~ rx/ ( (\\d) (\\d*?) (\\d) <?{ $0 eq $2 }> )* /).caps.map({.values}).join(','); | ||
| p6eval | rakudo f7fdd5: OUTPUT«11,10802706401,2502,160343051,2072» | ||
| oha | rakudo: my $x = "11"~(1..10).map({$_*$_*$_}).join('0'); say ($x ~~ rx/:ratchet ( (\\d) (\\d*?) (\\d) <?{ $0 eq $2 }> )* /).caps.map({.values}).join(','); | 13:32 | |
| p6eval | rakudo f7fdd5: OUTPUT«11» | ||
|
13:36
masonkramer joined
13:43
tylercurtis joined
13:44
zulon joined
|
|||
| sorear | jnthn: ping | 13:50 | |
|
13:55
Daenyth joined
|
|||
| Daenyth | Hi all | 13:55 | |
| sorear | Hello | ||
| Daenyth | I'm building the july rakudo and it's been left for several minutes on /usr/bin/parrot src/gen/perl6.pbc --target=pir \\ src/gen/core.pm > src/gen/core.pir | ||
| Is that normal? | |||
| sorear | Yes | ||
| Daenyth | ok | ||
| 4 more days :) | |||
| sorear | It's a lot faster now than it used to be | ||
| March rakudo needed 8 hours for that step | 13:56 | ||
| Daenyth | 0.0 | ||
| sorear | now it usually finishes in 5-10 minutes | ||
| Daenyth | wth? | ||
| that's insane! | |||
| sorear is on a very underspec computer | |||
| Yes. Yes, it is. | 13:57 | ||
| Daenyth | you know, I probably could work something out with some of the other people I know and get you shell access on the arch build box | ||
| sorear | The parser is... slow. | ||
|
13:57
Raynes joined
13:59
tadzik joined
|
|||
| tadzik | hello #perl6 | 13:59 | |
|
14:00
macroron joined
|
|||
| sorear | Hello tadzik | 14:00 | |
|
14:06
masonkramer_ joined
|
|||
| rindolf | Hi tadzik | 14:07 | |
| frettled | o/ | 14:08 | |
| tadzik | seen this mysterious commit on GH -- github.com/rakudo/star/commit/b3012ed -- so we're not shipping 2010.07 with Star? | ||
| Daenyth | huh? | 14:09 | |
| .07 is broken? | |||
| hm just compiled | 14:10 | ||
| is it supposed to be this slow? | |||
| master!Daenyth/builds/aur/rakudo> time perl6 -e 'say "hi"' | 14:11 | ||
| hi | |||
| real 0m2.725s | |||
| :/ | |||
| tadzik | yep | 14:12 | |
| moritz_ | Daenyth: about 1s here | ||
| Daenyth | that's pretty pathetic :/ | ||
| sorear | Agreed | ||
| But R* is not focusing on speed | |||
| tadzik | YMMV, but generally it's not too fast right now. The effort is put into completeness, not into optimizations | ||
| Daenyth | well... I guess I'll wait on doing euler | ||
| sorear | You can't wait 2.7 seconds? | ||
| moritz_ | yeah, R* is not meant for project euler | 14:13 | |
| Daenyth | for one 'say' | ||
| tadzik | oh come on | ||
| moritz_ | no bigints, and too slow | ||
| Daenyth | well, taking the example from the other day you gave me re problem 1 | ||
| sorear | Daenyth: the say took .01s, the rest was taken loading rakudo | ||
| Daenyth | sorear: moment | ||
| tadzik | it's like running Hello world in Java and complaining that it's slow. It's not fast, I agree, but here the most time is the init time, and compilation | ||
| Daenyth | moritz_: master!Daenyth/builds/aur/rakudo> time perl6 -e 'say [+](1..999).grep: * %% (3|5)' | 14:14 | |
| tadzik | Daenyth: try perl6 --stagestats to see what takes the most amount of time | ||
| Daenyth | 233168 | ||
| real 0m33.436s | |||
| tadzik: will do | |||
| sorear | stefan@stefans:~/niecza$ time ./niecza_eval -e 'say "hi"' | ||
| real 0m8.812s | |||
| Daenyth | master!euler> time ./python/euler1.py | 14:15 | |
| real 0m0.051s | |||
| oha | on my notebook it takes about the same time of javac T.java; java T for just a print | 14:16 | |
| Daenyth | let me try with the --stagestats | ||
| tadzik | Daenyth: no sense in comparing to python | ||
| Daenyth | Yeah, I mean.. I get that's the 1.0 release | 14:17 | |
|
14:17
slavik joined
|
|||
| tadzik | no it's not :) | 14:17 | |
| Daenyth | I'm just disappointed because all the hype has been saying that this is the "production ready" release | ||
| moritz_ | it's not an 1.0 release | ||
| Daenyth | well, r* is | ||
| moritz_ | no. | ||
| tadzik | …this is not | ||
| moritz_ | NO! | ||
| tadzik | who said that? | ||
| sorear | R* is 0.01 | ||
| not 1.0 | |||
| Daenyth | oh | ||
| tadzik | exactly | ||
| moritz_ | it's a preview release, to get more people interested | ||
| it's not "stable" or "production" | |||
| we hope it's useful | 14:18 | ||
| tadzik | Daenyth: come on, where did you find this info? Serious question, no offence | ||
| sorear | also, Perl5 runs euler1 in 0.013 seconds | ||
| Daenyth | use.perl.org/~pmichaud/journal/39411?from=rss | ||
| So, here's what the Rakudo Perl project is going to do: | |||
| We will make an "official", intermediate, useful and usable release of Perl 6 (an appropriate subset) by Spring 2010. | |||
| eh | |||
| I guess it's just semantics | |||
| tadzik | looks that you misunderstood it a bit | ||
| Daenyth | guess so | 14:19 | |
| We've also had discussions about what to call the intermediate release. We've considered tagging it as "Rakudo 1.0" | |||
| outdated info I guess | |||
| tadzik | it is useful and stable, but not complete and not production ready | ||
| moritz_ | it also seems the pcworld authors have misunderstood larry a bit :-) | ||
| Daenyth | yeah | 14:20 | |
| sorear | Daenyth: taking 2.7s to start does not make something "not useful" | ||
| Daenyth | I've definitely seen a few places around the net calling it 1.0 | ||
| sorear: I didn't say it was useless | |||
| moritz_ | well, we try hard not to spread that myth, but the myth spreads itself | ||
| sorear | 09:18 < Daenyth> We will make an "official", intermediate, useful and usable release of Perl 6 (an appropriate subset) by Spring 2010. | ||
| Which adjective do you disagree with | 14:21 | ||
| Daenyth | I'm not | ||
| It's just easy to misunderstand | |||
| tadzik | right | ||
| don't blame him, it's not that easy to filter all these bullshit on the internets | |||
| Daenyth | A lot of the hype is that this is going to be the first production ready release | 14:22 | |
| even if you're not claiming it | |||
| tadzik | I hope you alredy know it's wrong :) | ||
| sorear | It's not any different from previous releases | ||
| moritz_ | sorear: it is | 14:23 | |
| sorear | Except that this is the one we *want* people to use in production | ||
| moritz_ | sorear: it's a distribution, not only a compiler | ||
| tadzik | it's rather a psychological difference | ||
| sorear | moritz_: I meant other than that | ||
| moritz_ | it comes with modules, a module installer | ||
| ah well; the same holds true for all projects that do regular releases | |||
| none of them improves from "imature" to "stable" in one month | 14:24 | ||
| it's always a question of declaration | |||
| Daenyth | tadzik: I know now, it's just disappointing | ||
| tadzik | Daenyth: probably, if you were filled with hope. But the facts are it's not the Final, Production Ready Perl Six | ||
| Daenyth | indeed | 14:25 | |
| tadzik | But wait, there's hope! | ||
| You can alredy write Perl 6 disregarding all the difficulties, and hopefully with your support Rakudo 1.0 will come earlier | 14:26 | ||
| and _that_'s what R* is for | |||
| Daenyth | true | 14:27 | |
| oha | a part the speed, rakudo is very usable | 14:29 | |
| pefect to start understanding perl6 | |||
| Daenyth | yes, true | ||
| but I was hoping to learn it by doing project euler with it | |||
| tadzik | you can | ||
| …but that will require patience :) | |||
| Daenyth | and that seems like an exercize in masochism now | ||
| oha | at least, it was for me. i was (and currently am) very impressed how good it is | ||
| tadzik | also you will be able to see how important is the algorithm itself | ||
|
14:30
JimmyZ_ joined
|
|||
| oha | Daenyth, it can be used for, in my opinion. | 14:30 | |
| Daenyth | tadzik: well euler is mostly designed along the lines of "correct algorithm should be under a minute to run", and any other approach runs in unworkable time | ||
|
14:31
dual joined
|
|||
| tadzik | yep, that's what I remember about it | 14:31 | |
| Daenyth | anyway, seems the bulk of the time is Stage 'past': 7.60555267333984e-05 sec | ||
| moritz_ | if 76ms is the bulk of time, you're lucky :-) | ||
| Daenyth | oh wait no | 14:32 | |
| didn't notice the e at first | |||
| moritz_ | erm, microsecends | ||
| runtime isn't shown as a stage | |||
| Daenyth | moritz_: yeah just realized that | ||
| all the stages complete very quickly | |||
| then runtime takes forever | |||
| colomon | moritz_: do we have a way to say "give me the end of this array starting at $n" that actually works at the moment? | 14:33 | |
| tylercurtis | rakudo: my $a = [1,2,3,4,5,6,7,8,9,10]; $a[5..*].perl.say; | 14:34 | |
| p6eval | rakudo f7fdd5: ( no output ) | ||
| tylercurtis | rakudo: my $a = [1,2,3,4,5,6,7,8,9,10]; $a[5..$a.elems].perl.say; | ||
| p6eval | rakudo f7fdd5: OUTPUT«(6, 7, 8, 9, 10, Any)» | ||
| tylercurtis | rakudo: my $a = [1,2,3,4,5,6,7,8,9,10]; $a[5 .. $a.elems - 1].perl.say; | 14:35 | |
| p6eval | rakudo f7fdd5: OUTPUT«(6, 7, 8, 9, 10)» | ||
| tadzik | rakudo: my $a = [1,2,3,4,5,6,7,8,9,10]; $a[5, 6 ... *].perl.say;#curious | ||
| p6eval | rakudo f7fdd5: ( no output ) | 14:36 | |
| oha | rakudo: my @a = 1..10; say @a[*]; # should print the last elements, isn't it? | ||
| tadzik | ah no, it's infinite | ||
| p6eval | rakudo f7fdd5: OUTPUT«Can't take numeric value for object of type Whatever in 'Any::Numeric' at line 1348:CORE.setting in 'infix:<<>' at line 6394:CORE.setting in 'Any::postcircumfix:<[ ]>' at line 1655:CORE.setting in main program body at line 1» | ||
| moritz_ | oha: should return all array elements | 14:37 | |
| colomon | moritz_: so, how mad do you think pmichaud would get if I added postcircumfix:<[ ]>(Range $range) to Any-list.pm? It's not the right long term solution, but it would be easy to get the most common case working quickly. | 14:48 | |
| moritz_ | colomon: no idea | 14:49 | |
| rakudo: 'abc' ~~ /./; my %h = a => 1, b => 2; say %h{$/} | 14:51 | ||
| p6eval | rakudo f7fdd5: OUTPUT«maximum recursion depth exceeded in 'Block::count' at line 5420:CORE.setting in 'Block::count' at line 5424:CORE.setting in 'Any::postcircumfix:<{ }>' at line 1 in <anon> at line 1 in 'Any::postcircumfix:<{ }>' at line 1 in <anon> at line 1 in | ||
| ..'Any::postcircumfix:<{ }… | |||
|
14:52
Juerd joined
|
|||
| Juerd | Er, wow. Some kickfest :) | 14:52 | |
| moritz_ | rakudo: 'ab' ~~ /./; say $/ ~~ Positional | ||
| p6eval | rakudo f7fdd5: OUTPUT«1» | ||
| moritz_ | rakudo: 'ab' ~~ /(.)(.)/; my @a := $/; .say for @a | 14:53 | |
| p6eval | rakudo f7fdd5: OUTPUT«ab» | ||
| moritz_ | rakudo: 'ab' ~~ /(.)(.)/; my @a := $/.flat; .say for @a | ||
| p6eval | rakudo f7fdd5: OUTPUT«ab» | ||
| moritz_ spectests a fix for the infinite recursion | 14:54 | ||
| hm, not so easy | 14:59 | ||
| the problem is that $/ ~~ Positional | 15:07 | ||
| so the Positional variant postcircumfix:<{ }> is called | |||
| which iterates over the argument, and recurses into self | |||
| but since it's just one item, which is again Positional, it loops infinitely | 15:08 | ||
|
15:22
amkrankruleuen joined
15:27
szbalint joined
15:34
amkrankr1leuen joined
|
|||
| moritz_ | my "fix" results in a "Null PMC in copy" in rx.t | 15:35 | |
|
15:38
m6locks joined
15:39
Axius joined
|
|||
| Axius | hello | 15:39 | |
| moritz_ | hi | ||
| sorear | Hello. | 15:40 | |
|
15:40
mac_|afk joined
|
|||
| mac_|afk | hi | 15:40 | |
| moritz_ is glad to see that we're approaching 100 nicks again | 15:41 | ||
| mac_|afk is angry, cuz some1 has stolen his nickname :( | |||
| pugssvn | r31822 | moritz++ | [t/spec] fix syntax error in fudge directive, moritz-- | ||
| moritz_ | mac_|afk: next time it's available, register it | 15:42 | |
| mac_|afk | Yup, I know... I should, but I haven't though some1 can take "mac_", "mac" was registered, but "mac_". Yes, I'm popular, but I've not minded it's so much | 15:43 | |
|
15:49
timbunce joined
15:56
markshaw joined
|
|||
| pmichaud | good morning, #perl6 | 15:57 | |
| moritz_ | good morning pmichaud | 15:58 | |
|
15:58
MarkS joined
|
|||
| sorear | good morning pmichaud | 15:58 | |
| moritz_ | I've got 'star' far enough to download rakudo and modules, and then build rakudo into a custom prefix and run a sanity check | 16:00 | |
| dalek | ok: 550965b | moritz++ | src/subs-n-sigs.pod: [subs] remove forbidden mandatory parameter after an optional one |
||
| moritz_ | I'm also injecting the modules into proto's cache dir | ||
| but somehow the build step always fails | |||
| pmichaud | okay, my plan is to work on the star build system today | 16:01 | |
| moritz_ | great | ||
| pmichaud | is it currently downloading rakudo? I've been thinking that we should include a copy of rakudo in the tarball, rather than rely on downloading | ||
| moritz_ | pmichaud: the idea is to have a script that downloads all the stuff that goes into the release tar ball | 16:02 | |
| pmichaud: and then a second script is copied there (dist/ directory) | |||
| which the user then calls to build the stuff | |||
| pmichaud | okay, that works for me | ||
| moritz_ | so you run | ||
| pmichaud | that sounds even better :-) | ||
| moritz_ | $ perl build/download-stuff.pl | ||
| this creates dist/, which will eventually be tar'ed | 16:03 | ||
| when you cd dist/, you can run perl buildall.pl | |||
| the download-stuff.pl is also responsible for checking out the correct branch or tag from rakudo and proto/pls | 16:04 | ||
|
16:06
mantovani joined,
tadzik joined
16:15
MarkS left
16:16
wolverian joined
|
|||
| wolverian | oh boy. | 16:16 | |
| moritz_ | wolverian: hm? | 16:17 | |
| sorear | it's ok | 16:18 | |
| pmichaud has metaops now | |||
| wolverian | it's good to be back. :) | ||
| sorear | we're better off than before | ||
| pmichaud | moritz_, sorear: do you have registered nicks? | 16:19 | |
| moritz_ | pmichaud: yes, account moritz_ | ||
| sorear | yes, account sorear | ||
| pmichaud | you're both now registered with chanserv for #perl6 | 16:20 | |
| sorear | (wow, I watn | 16:21 | |
| pmichaud | anyone else we should register? | ||
| sorear | (wow, I wasn't expecting *meta*ops) | ||
| pmichaud | I don't want to be the only person with metaops, because sometimes I'm not around. | ||
| sorear | TimToady maybe | ||
| pmichaud | is his nick registered? | ||
| sorear | doesn't look like it | ||
| timbunce | how can I contribute to the perl6 book? (I have some suggestions after trying to use it for learning perl6) | ||
| pmichaud | timbunce: what kind of contributions are you looking to offer? ;-) | 16:22 | |
| small patches, entire chapters, major rewrites, ... ? | |||
| sorear | the 'TimToady' account exists and was last used under the username ~larry | ||
| so it looks like he does have the account, just doesn't habitually identify | |||
| timbunce | small patches and some suggested TODOs | ||
| I've an annotated PDF I could send to someone | 16:23 | ||
| pmichaud | git pull requests and patch submissions are very welcome | ||
| or that works | |||
| if you get it to us, someone will incorporate it :) | |||
| moritz_ | hugme: add timbunce to book | ||
| hugme hugs timbunce. Welcome to book! | |||
| pmichaud | email to me should work fine -- I plan to be doing book edits over the next few days | ||
| moritz_ | feel free to push diretly | ||
| pmichaud | ah, yes, and you now have a commitbit :) | ||
| moritz_ | cc me please (moritz@faui2k3.org) | ||
| jnthn is back o/ | 16:24 | ||
| pmichaud | jnthn: o/ | ||
| jnthn | o/ pmichaud | ||
| pmichaud: Safe journey back? | 16:25 | ||
| pmichaud | yes | ||
| very nice journey, as it turns out | |||
| jnthn | Good good. :-) | ||
| pmichaud | weather was beautiful and I had a window seat | ||
| jnthn | \\o/ | ||
| I like flights like that. | |||
| pmichaud | and the flight path meant that I got great views of Mt. Hood, Mt. Rainier, Great Salt Lake, and Canyonlands. | ||
| as in, we flew right over each of those. (I think the pilot did so deliberately) | |||
| jnthn | Ooh, very nice! | 16:27 | |
| moritz_ will visit a Clasic Open Air tonight | |||
| jnthn | I remember one where I had clear weather, a window seat and we flew over Greenland. That was quite impressive. :-) | ||
| pmichaud | I'm guessing the other side of the plane had equally good views (especially of Canyonlands), because I heard a lot of camera shutters :-) | 16:29 | |
| jnthn | :-) | 16:30 | |
| pmichaud | anyway, definitely the nicest (and shortest) PDX->DAL journey I've had. | ||
| (southwest airlines)++ | 16:31 | ||
| jnthn | pmichaud: What're you planning to work on next in Rakudo land? | 16:32 | |
| pmichaud | I realized last night on the plane that I have several commits I forgot to make | ||
| er, forgot to push | |||
| so, right now I'm re-spectesting and preparing to push those. (I think they may be the for->map commits.) | |||
| then I'm going to work a bit on the book and the star repo | 16:33 | ||
| jnthn | OK. | ||
| pmichaud | my notebook has been acting crazy the last couple of days, too, so I'm thinking I'll reinstall (easy automated process, only takes about 30 mins) | ||
| any urgent things I should look at? | 16:34 | ||
| I'll probably see if I can figure out mainline lexical chains as well | |||
| moritz_ | pmichaud: if you happen to have a fix for the %h{$/} infinite recursion, that would be nice | ||
| pmichaud: apart from that, we should really start to focus more on the distribution aspect | |||
| pmichaud | right | 16:35 | |
| distribution is my focus for the next couple of days, likely | |||
| what's the %h{$/} recursion? is there a ticket? | |||
| moritz_ | rakudo: my %h = a => 1; 'a' ~~ /./; say %h{%/} | ||
| p6eval | rakudo f7fdd5: OUTPUT«===SORRY!===Non-declarative sigil is missing its name at line 22, near "%/}"» | ||
| moritz_ | rakudo: my %h = a => 1; 'a' ~~ /./; say %h{$/} | 16:36 | |
| p6eval | rakudo f7fdd5: OUTPUT«maximum recursion depth exceeded in 'Block::count' at line 5420:CORE.setting in 'Block::count' at line 5424:CORE.setting in 'Any::postcircumfix:<{ }>' at line 1 in <anon> at line 1 in 'Any::postcircumfix:<{ }>' at line 1 in <anon> at line 1 in | ||
| ..'Any::postcircumfix:<{ }… | |||
| pmichaud | ...what should happen there? | ||
| moritz_ | stringify, in the end | ||
| pmichaud | why would it stringify? | ||
| moritz_ | because our hash keys are strings | 16:37 | |
| rt.perl.org/rt3/Ticket/Display.html?id=75868 | |||
| pmichaud | I thought Perl 6 hashes didn't have string keys | ||
| moritz_ | they have, unless you declare them has %hash{Any} | ||
| jnthn | pmichaud: They coerce to string by default. | ||
| moritz_ | I know why it recurses | 16:38 | |
| pmichaud | is that in the synopses somewhere? | ||
| moritz_ | $/ ~~ Positional | ||
| S09 likely | |||
| so it choses the @-sigiled postcircumfix | |||
| iterates over it | |||
| gets one item back | |||
| recurses into self | |||
| pmichaud | perhaps add postcircumfix:<{ }>(Match $x) { self{~$x} } ? | 16:39 | |
| moritz_ | To declare a hash that can take any object as a key rather than just a string or integer, say something like: | ||
| my %hash{Any}; my %hash{*}; | |||
| from S09 | |||
| any, afk | 16:40 | ||
| s/any/anyway/ | |||
| jnthn | pmichaud: I'll take a crack at the role outer issue tomorrow and at least try and get a workaround in place. | 16:48 | |
| pmichaud: I kinda failed to sleep last night so don't have the concentration to do it this evening. :-( | 16:49 | ||
| pmichaud | jnthn: np | ||
| sorear | jnthn: are you awake enough for me to pick your brain on a tiny role semantics issue? | 16:52 | |
| jnthn | sorear: how tiny? ;-) | 16:53 | |
| sorear: Try me :-) | |||
| sorear | role X { }; # What, exactly, is X? It's not necessarily a type object, especially if X can't be punned, but it has to be something that trait_mod:<does> can inspect | 16:54 | |
|
16:55
jferrero joined
|
|||
| jnthn | sorear: It's a Role object, which encapsulates the multi-sub | 16:56 | |
| sorear: An actual role is really called ConcreteRole | |||
| sorear | So... there's a class Role { ... } somewhere, and X.^isa(Role)? | ||
| jnthn | sorear: So your trait_mod:<does> has a candidate for Role and a candidate for ConcreteRole | ||
| And if it gets Role then it goes it needs to Role[] it to select the parameterless variant | 16:57 | ||
| Role stands for "any concrete role I've ever made" normally, e.g. in the context of smart-matching. | 16:58 | ||
| It's just when it's forced to commit that it then []'s itself to get a concrete role, and acts like a parameterless variant. | |||
| er, sorry | |||
| ...and so to the user it just works for them to declare non-parametric roles and be able to name them parameterless, without precluding the ability to add other variants later. | 16:59 | ||
| Yes, Rakudo has a class Role | |||
| And a class ConcreteRole | |||
| sorear | but the X "type object" is an ordinary instance of class Role, not a funky undefined type object thingie? | ||
| (except insofar as it overrides .new to pun) | |||
| jnthn | Yeah, it's not quite a type object in the class-y sense. | 17:00 | |
| It's an instance of Role but it always responds False to defined. | |||
| So it's type-object-y in that sense. | |||
| I ran into a situation where if it didn't claim to be undefined, it caused issues. I forget exactly where. | 17:01 | ||
| Punning isn't really overloading .new, it's more overloading .dispatch, or .find_method | |||
| er, .^dispatch that is | 17:02 | ||
| .^find_method is maybe .^can too | |||
| I'm still speculating a bit on exactly how that should fall out. | |||
| sorear | Doesn't Role have methods? | ||
| Shouldn't I be able to call them? | |||
| jnthn | There are some methods that don't pun, yes. | 17:03 | |
| .perl and .postcircumfix:<[ ]> come to mind | |||
| Rakudo today is the closet approximation we have to correct, anyway. But I'm not convinced it's 100% spot on yet either, fwiw. | 17:04 | ||
| But we do handle punning as "any method not on this list of exceptions". | |||
| It may well be that we can do away with that completely though. (more) | 17:05 | ||
| If .perl returns something indistinguishable for the punned class as it would the role, and we say that actually it's not .postcircumfix:<[ ]> that Pint[Beer] calls but actually something on the meta-object, or some other macro-y thing, we maybe can say "all method calls pun" | 17:06 | ||
| I'd prefer that. | |||
| But it still leaves some awkwardness. | |||
| Like contextualizers. | 17:07 | ||
| But I really don't like lists of hardcoded exceptions, so if you find a workable approach that escapes that I'll probably be willing to copy it. :-) | |||
.oO( did any of that make any sense... :-) ) |
17:08 | ||
| I just didn't manage to beat it into submission in Rakudo yet. | |||
| Maybe I can in the forthcoming meta-model re-working. | |||
| timbunce | I've forked the book on github, made some minor tweaks and TODOs and sent a pull request. | 17:09 | |
| wolverian | jnthn: is there a .hash-code method or so, then? (re: object keys) | 17:11 | |
| jnthn | wolverian: I guess that's .WHICH | 17:12 | |
|
17:13
eternaleye joined
17:14
s1n joined
|
|||
| dalek | ok: 939ca34 | (Nikolai Prokoschenko)++ | lib/Makefile: merge upstream patch for direct svg->pdf conversion, doesn't work though, still 48c8de7 | timbo++ | src/ (4 files): some minor fixes and assorted suggestions |
17:14 | |
| pmichaud | jnthn: ping | 17:15 | |
|
17:15
dalek joined
|
|||
| jnthn | pmichaud: pong | 17:15 | |
| pmichaud | I think there's a problem with the topicalization in ~~ | ||
| (looking) | 17:16 | ||
| jnthn | pmichaud: I could believe that...I had a small fight with PAST::Compiler in the proccess... | ||
| pmichaud | creating a new intermediate block loses the correct OUTER chain | ||
| in particular, for anything that needs to set $! or $/ | 17:17 | ||
| jnthn | pmichaud: Seems it gets really upset if a PAST::Op node of type if and unless has a PAST::Stmt as the condition. | ||
| pmichaud: That is, it doesn't run the stuff and take the last thing returned as the condition. | |||
| Oh, ouch :-( | |||
| Yes, I can see that :-( | |||
| I didn't *want* the block at all. | |||
| szabgab | can someone please let me know what is the \\ called in the [\\+] 0..6 code ? | 17:18 | |
| besisdes "escape" | |||
| pmichaud | szabgab: "triangle reduction" | ||
| szabgab: search S03 for "triangle" | |||
| szabgab | and if I am not mistake in does the reductiopn right-wards | ||
| pmichaud | szabgab: it might depend on the op associativity | ||
| jnthn | szabgab: Through the list, yes. | ||
| oh, what pmichaud said... | 17:19 | ||
| szabgab: The implementation of it is in Perl 6 if you want to check :-) | |||
| szabgab | :) | ||
|
17:19
axigo joined
|
|||
| szabgab | I was just reading the 'series' thread | 17:19 | |
| and was trying to understand a bit more | |||
| axigo | hi | ||
| jnthn | szabgab: See reducewith in github.com/rakudo/rakudo/blob/maste...metaops.pm | 17:20 | |
| axigo: hi | |||
| pmichaud | jnthn: I'll see if I can figure out why PAST::Stmt isn't working in an 'if'. It really should work. | ||
| jnthn | pmichaud: If you know of a way to not have it as a PAST::Block that doesn't hit code-gen problems, feel free to change it. | ||
| pmichaud | the problem is that S05-mass/rx.t fails currently | 17:21 | |
| jnthn | pmichaud: Well yes, it should, but I figured it was not too much point hunting that down immediately. | ||
| pmichaud | (because of this bug) | ||
| jnthn | pmichaud: Given we can't actually fix PAST::Compiler bugs until post-R* | ||
| So I went for "workaround it and comment why" :-) | |||
| Evidently the workaround is fail though. | |||
| Huh, how'd I miss that one failing... | |||
| pmichaud | well, it's failing in my local copy--don't know if that's related to other changes I've made | 17:22 | |
| jnthn | pmichaud: I coulda missed it. I get a load of exit code 1 thingies that pass in my failed tests list. :( | 17:23 | |
| pmichaud | yeah, that's _really_ annoying. | ||
| jnthn | It really really is. | ||
| Anyway, sorry if I caused breakage. | 17:24 | ||
| pmichaud | for some reason I've found that if I rm -rf t/spec and re-check it out, the exit code 1's sometimes go away | ||
| jnthn | And it sounds feasible. | ||
| I'm just not immediately sure what the best solution is. | |||
| pmichaud | well, PAST::Stmts really should work. I can't think of any reason it would not. | ||
| jnthn | pmichaud: IIUC, I should be able to change the PAST::Block to a PAST::Stmts in the make_smartmatch sub and it'd work the same? | 17:25 | |
| (as in, is that what you'd epxect) | |||
| pmichaud | oh, there's another possibility :-) | ||
| (looking) | |||
| jnthn | (and where the same means, same minus this bug :-)) | 17:26 | |
| pmichaud | you could also try PAST::Op.new( :pasttype<stmts>, ... ) | ||
| jnthn | ...oh? | ||
| pmichaud | yes. :) | ||
| jnthn | I didn't know that existed! | ||
| pmichaud | yes | ||
| jnthn | How does it differ from PAST::Stmts? | ||
| (Other than by node type :-)) | |||
| pmichaud | because sometimes we want to quickly convert a PAST::Op node to simply evaluate its children but do something else :) | ||
| s/something/nothing/ | |||
| jnthn | lemme try it | 17:27 | |
| pmichaud | jnthn: it's really no different, iirc | ||
| jnthn | pmichaud: aye, but it may not have the same code-gen bug | ||
| pmichaud | right... just in case the bug has something to do with the node type. | 17:28 | |
| lue | o hai o/ | ||
| pmichaud | anyway, I'm pushing my commits | ||
| jnthn | (if you want to see it, change to PAST::Stmts, and then compare before and after the PIR output of "if 1 && 1 ~~ 1 { }") | ||
| pmichaud | done | ||
| rindolf | Hi all. | ||
| Hi jnthn , pmichaud | |||
| pmichaud | I wonder if I can see it in nqp | ||
| rindolf | So? A release in two days? | 17:29 | |
| jnthn pulls them and rebuilds with those | |||
| pmichaud | rindolf: four, I think. | ||
| (today is Sun, release is Thu.) | 17:30 | ||
| depending on what you mean by "release" | |||
| rindolf | pmichaud: ah. | ||
| I mean the Star Release. | |||
| jnthn | o/ rindolf | ||
| * is 29th. :) | |||
| lue must prepare promotional banner | |||
| rindolf | jnthn: ah. | 17:31 | |
| pmichaud | rakudo: if 1 && (1; 1) { say 'yes'; } | ||
| p6eval | rakudo f7fdd5: OUTPUT«yes» | ||
| pmichaud | jnthn: that seems to work just fine. | ||
|
17:31
justatheory joined
|
|||
| pmichaud | (the "(1; 1)" produces a PAST::Stmts node) | 17:32 | |
| dalek | kudo: 1ccf35d | pmichaud++ | src/ (7 files): Convert Nil to be a constant (finally!) instead of treating it like a |
17:33 | |
| kudo: 83e0bdd | pmichaud++ | (6 files): Merge branch 'master' of github.com:rakudo/rakudo |
|||
| kudo: d1f2e59 | pmichaud++ | (6 files): Merge branch 'master' of github.com:rakudo/rakudo |
|||
| kudo: e991c43 | pmichaud++ | src/ (2 files): Merge branch 'master' of github.com:rakudo/rakudo |
|||
| pmichaud | huh, that was weird. | 17:34 | |
| jnthn | merge-tastic | ||
|
17:34
Axius joined
|
|||
| pmichaud | anyway, I need to grab lunch. | 17:34 | |
| jnthn | > if 1 && 1 ~~ 1 { say 42 } | 17:35 | |
| Null PMC access in get_bool() | |||
| grrr | |||
| Nope, PAST::Op with pasttype of stmts exhibted same problem. :-( | |||
| pmichaud | just a sec, let me look. | ||
| sorear | niecza: if 1 && 1 ~~ 1 { say 42 } | ||
| pmichaud | the problem doesn't appear to be with PAST::Stmts | ||
| p6eval | niecza 64fc764: OUTPUT«42» | ||
| sorear | # I've copied enough design that intersection could help localize the bug | 17:36 | |
| pmichaud | sorear: the bug is appearing now because our smartmatch is temporizing $_ | 17:37 | |
| sorear | aha. | ||
| pmichaud | at least, it's trying to. | ||
| sorear | I'm ... not doing that just yet. | ||
| pmichaud | jnthn: what does the PIR look like from your example above? | 17:38 | |
| that would be a huge help | |||
| jnthn | pmichaud: gist.github.com/489711 | 17:39 | |
| pmichaud: Notice how sm_result25 never gets used | |||
|
17:39
pmurias joined
|
|||
| jnthn | pmichaud: And it uses $P77 instead which was never initialized | 17:40 | |
| AFAICT | |||
| pmichaud | what is that .return?! | 17:41 | |
| there can't be a .return there | |||
| oh, wait, yes there can | |||
| $P77 doesn't need to be initialized -- it's the result of the outer 'if' | 17:42 | ||
| ...which, you're right, isn't set. | |||
| wait. | |||
|
17:42
plobsing joined
|
|||
| pmichaud | I'm guessing PAST::Stmts is having trouble with a PAST::Var(:scope<register>) as its last child, for some reason. | 17:43 | |
| jnthn | Oh. :S | 17:44 | |
| pmichaud | either that or the PAST::Stmts node being returned is ..... oh. | ||
| I think I see the problem. | |||
| looking | |||
| jnthn | .oO( this is where we discover I did some really silly mistake :-) ) |
||
| pmichaud | in method EXPR | 17:45 | |
| we have | |||
| oh, nm, that's not it. | |||
| hmmm | |||
| I'm wondering if whatever is handling the results of the smartmatch is somehow using only the first three children. | 17:46 | ||
| i.e., if it's unpacking the PAST::Stmts node | |||
| jnthn | Hmm | ||
| pmichaud | just for fun, what if you create a PAST::Stmts node that contains a single child of another PAST::Stmts node? | 17:47 | |
| (which then has all of the children) | |||
| jnthn | pmichaud: heh heh...I'm compiling that at the moment ;-) | ||
| (Actually I did a PAST::Op with stmts as pasttype inside another one, but maybe same effect.) | 17:48 | ||
| pmichaud | should be same effect | ||
| fwiw, if done using a PAST::Block, there's no need to save/restore the original $_ :-P | 17:49 | ||
| jnthn | True, but PAST::Block is wrong for other reasons. | 17:51 | |
| pmichaud | agreed. | ||
| jnthn | pmichaud: No, that doesn't help :-( | 17:52 | |
| pmichaud | okay | ||
| jnthn | Let's see if it's the register var node | ||
| pmichaud | it has to be something about the construction of the PAST::Stmts node that is causing the problem. | ||
| maybe try it as inline PIR, just for fun | |||
| oh, that might be a pain, never mind. | 17:53 | ||
| jnthn | eww! | ||
| pmichaud | (unique registers needed) | ||
| jnthn | We already have too much inline PIR. :-) | ||
| pmichaud | working inline pir > buggy non-inline past | ||
| :) | 17:54 | ||
| anyway, I need lunch. if you're unable to come up with anything, just leave me a note and I'll pick it up later. | |||
| jnthn | kk | ||
| pmichaud | I'm pretty sure it's something trivialish, just needs a bit of debugging | ||
| jnthn | I seem to be doing better at conciousness than I'd anticipated. :-) | ||
| pmichaud: Promoting it to a lexical rather than a register var works | 17:57 | ||
| pmichaud: I'll spectest and go with that for now. But seems it is the register var. | |||
| pmichaud | okay, I can buy that. | ||
| jnthn | .oO( Bugs for sale! Best prices! ) |
17:58 | |
|
17:59
Ross joined
|
|||
| pmichaud | ah, yes. | 17:59 | |
| PAST::Var(:name<foo>, :scope<register>) doesn't actually generate any code | |||
| so there's never any statement generated that sets the result of the PAST::Stmts node to be <foo> | 18:00 | ||
| I bet something like that is the problem. | |||
| jferrero | p6eval: say [+] (1..6).pick(4, :replace); | 18:01 | |
| pmichaud | anyway, at some point I'll likely want to factor out the temporization of $_ into its own helper sub | ||
| jferrero: try "rakudo: " | |||
| jferrero | rakudo: say [+] (1..6).pick(4, :replace); | 18:02 | |
| p6eval | rakudo f7fdd5: OUTPUT«9» | ||
| jferrero | Thanks, pmichaud :) | ||
| jnthn | Could not find sub &Nil in 'Test::plan' at line 47:Test.pm | ||
| ...huh? | |||
| jnthn thought he had re-configured | |||
| jferrero | rakudo: say [~] (1..6).pick(4, :replace); | ||
| p6eval | rakudo f7fdd5: OUTPUT«4522» | ||
| pmichaud | jnthn: maybe need to make sure Test.pir rebuilds? | ||
| jnthn | pmichaud: well, realcleaned...trying again | 18:03 | |
| I thought Test.pir had | |||
| Deleted it for good measure. | |||
| pmichaud | :-) | ||
|
18:03
jedai joined
|
|||
| pmichaud | okay, definitely lunchtime here. | 18:04 | |
| bbiaw | |||
| jnthn | see you in a bit :-) | ||
|
18:07
alester joined
|
|||
| lue | [ in case you missed it, iblogged: rdstar.wordpress.com/2010/07/25/onl...-op-abuse/ ] | 18:09 | |
| pmurias hates gcc bugs | 18:24 | ||
| jferrero | rakudo: say <Patrick Jonathan Larry Moritz Audrey>.classify( *.Str ) | 18:35 | |
| p6eval | rakudo f7fdd5: OUTPUT«Audrey AudreyLarry LarryJonathan JonathanMoritz MoritzPatrick Patrick» | ||
| jferrero | rakudo: say <Larry Larry Moritz Audrey>.classify( *.Str ) | 18:36 | |
| p6eval | rakudo f7fdd5: OUTPUT«Moritz MoritzAudrey AudreyLarry Larry Larry» | 18:37 | |
| dalek | ecza: 40e8e9d | sorear++ | C (2 files): Rework code generator to expose th.resultSlot to ANF, saves 7k lines from |
18:38 | |
| ecza: 0ec7b78 | sorear++ | CodeGen.pm: Disable _saveall handling |
|||
| ecza: 7227acd | sorear++ | C (2 files): The great codegen refactor cutting an additional 10,000 lines off CORE.cs. CORE.cs is down to 1/3 the size it was at the beginning of this spree and compiles 5(!) times faster. |
|||
| jferrero | rakudo: say <Larry Larry Moritz Audrey>.classify( *.Str ).perl | ||
| p6eval | rakudo f7fdd5: OUTPUT«("Moritz" => ["Moritz"], "Audrey" => ["Audrey"], "Larry" => ["Larry", "Larry"])» | ||
|
18:40
tadzik joined
|
|||
| lue | afk | 18:54 | |
|
19:00
benji-man joined,
mac joined
|
|||
| mac | re | 19:01 | |
| tadzik | o/ | 19:03 | |
| mac | ;) | ||
|
19:05
pragma_ joined
|
|||
| pragma_ | Well, #perl6 has shrunk considerably. | 19:05 | |
| tadzik | idlers are gone? | ||
|
19:06
cono joined
|
|||
| tadzik | and nothing of the value was lost, imho | 19:06 | |
| pragma_ | you have only one value? | ||
| tadzik | what do you mean? | 19:07 | |
| pragma_ | The hunters shot deer. The hunters shot the deer. | ||
| tadzik | I miss your point, I'm afraid. My thoughts are: nothing polite happened, yet the people who still feel a need to be here, will go back | 19:08 | |
| pragma_ | Hm, it happened 23 hours, 50 minutes ago. That's practically yesterday. | 19:10 | |
| Yes, it is old news. | |||
| cosimo | pragma_: what exactly? | 19:21 | |
| pragma_ | cosimo: someone gained privileged access to the channel and kicked everyone. | 19:22 | |
| tadzik | using nick 'audreyt' | 19:23 | |
| cosimo | oh, interesting. now I see why I wasn't there :) | 19:24 | |
| i just stopped by to say that I'm proud to be a (even tiny) part of Perl 6 | 19:25 | ||
| jnthn | pmichaud: Fix worked; pushed. | 19:26 | |
| cosimo | I have that sense of "I was there when that happened" | ||
| i wish I could do more to help out | |||
| that's it. good $night | 19:27 | ||
| :) | |||
|
19:27
sundar joined
|
|||
| tadzik | cosimo: gnight :) | 19:29 | |
| dalek | kudo: b46a3b3 | jonathan++ | src/Perl6/Actions.pm: Avoid using a PAST::Var register node as the result of a smart-match, since it avoids issues that the block trick introduced. |
19:30 | |
|
19:31
rgrau` joined
|
|||
| tadzik | so, any other PM groups celebrating R* this week? | 19:41 | |
|
19:48
ggoebel joined
19:57
plol joined
|
|||
| pmichaud | back | 20:08 | |
| cxreg | sorear: any plans for either niecza or rakudo to target jvm? | ||
| rindolf | tadzik: sounds like a release of GNU R. | ||
| tadzik: although I know it's Rakudo Star. | |||
| tadzik | rindolf: why GNU? | ||
| rindolf | tadzik: GNU R. | ||
| tadzik: their S clone. | 20:09 | ||
| tadzik | will ask duckduckgo | ||
| rindolf | tadzik: which should be pretty good. | ||
|
20:09
Sexus joined
|
|||
| tadzik | rindolf: the programming language? | 20:10 | |
| rindolf | tadzik: yes. | ||
| tadzik | ee, I don't see how it could be more awesome than Perl6 anyway :) | ||
| so, any mongers celebrating somewhere/ | 20:11 | ||
| rindolf | tadzik: well, GNU R is very different from Perl. | ||
| Either Perl 5 or Perl 6. | |||
| avar | cxreg: There's an experimental .net thing | 20:15 | |
| cxreg: But it's pretty tied to the Parrot VM right now, all the interesting stuff calls out to PIR libs | 20:17 | ||
| jnthn | cxreg: Rakudo may have a JVM backend at some point. | 20:20 | |
|
20:20
hercynium joined
|
|||
| jnthn | cxreg: One of my explicit goals in the Rakudo meta-model re-working I'm looking at is to have something that can be comfortably implemented on Parrot/JVM/CLR and more. | 20:21 | |
| avar | Is there a todo / something written down for what needs to be done to get to that point? | 20:23 | |
| jnthn | And while I've not made implementing it on anything besides Parrot a grant deliverable, it's almost certain I'll end up with an implementation on things other than Parrot, if only because I'd rather write the first implementation in C# or Java rather than C. | ||
| avar | jnthn: sweet | ||
| jnthn | (easier to refactor, more primitives to hand, don't have to worry about memory management, etc) | ||
| tadzik: YAPC::Europe will be soon after R* - I'll celebrate there. :-) | 20:25 | ||
| tadzik | :) | 20:26 | |
|
20:26
patspam joined
|
|||
| tadzik | hmm, some of the tests in spectests are e.g. fmt.rakudo. So are they official Perl 6 spectests, or rakudo-only? | 20:26 | |
| jnthn | tadzik: They're generated from the .t files | 20:27 | |
| tadzik: But they have parts of them "fudged" out | |||
| tadzik | ah, like TODO? | ||
| jnthn | tadzik: The .t files have markers like "this implementation can't run this test, comment it out and emit a skip directive" | ||
| tadzik: And then at the start of make spectest, a .implementation version of the time (.rakudo in Rakudo's case) is generated based on the #?rakudo markers in the file. | 20:28 | ||
| tadzik: Yeah, but an implementation-specific todo. | |||
| tadzik | I see | ||
| [Coke] | tadzik: more like SKIP. | ||
| jnthn | Well, there's todo and skip. | ||
| skip actually comments the code out though - becase it may well not even parse. | |||
| tadzik: svn.pugscode.org/pugs/t/spec/README has all the gory details. :-) | 20:29 | ||
|
20:36
tadzik joined
|
|||
| pmichaud | .oO( does it also have the non-gory details? ) |
20:38 | |
.oO( are all of the details gory? ) |
|||
.oO( where are all of these bubbles coming from? ) |
|||
| tadzik | ah, those are bubbles! | 20:39 | |
| nice | |||
|
20:42
trek1s joined
20:44
rindolf joined
20:48
whiteknight joined
20:50
integral joined,
integral left
20:51
constant joined
20:56
wknight8111 joined
21:03
xabbu42 joined
21:06
alexm joined
21:08
molaf joined
|
|||
| pugssvn | r31823 | Kodi++ | [t/spec] More tests for Instants and Durations. | 21:16 | |
| lue | hello o/ | 21:17 | |
| frettled | I see it's time to go to bed, I read «More tests for insomniacs» | ||
| lue: \\o/ | 21:18 | ||
| frettled goes back to idling. If frettled is not idle for the next eith or nine hours, frettled is sleep-ircing. | |||
| jnthn | frettled: you passed them ;-) | ||
| colomon | jnthn: Sitting here trying to figure out how to start the grant report, looking at an old report of yours where you mention that in the course of your work, Rakudo went from passing 4,000 tests to passing 10,000 tests. :) | 21:20 | |
| jnthn | colomon: :) | 21:21 | |
| colomon | Funny thing is, were I to use the same sort of comment, we pass many fewer tests now than when I started. ;) | 21:22 | |
| jnthn | ;) | ||
| Yes, but IIUC the tests we pass cover more :-) | |||
| colomon | that is true. :) | 21:23 | |
| lue | .oO[ I pass hundreds of tests everyday on my way to a certain .t file I need to edit :) ] | 21:24 | |
| colomon | while I'm taking a quick pause: I think we should extract three of the modules from the Vector package to make independent Math::Vector, Math::Polynomial, and BinarySearch. | 21:25 | |
| (other names might be better) | |||
| jnthn | colomon: In general, I'd say start with a short introduction indicating the grant work has been successfully completed, then explain a little bit for each deliverable to make clear what was done, with some references to blog posts/tests, and then some kind of conclusion about how all of this means Rakudo is a step closer to covering the Perl 6 spec, and that the spec has been straightened out and is better tested now which is an all around win too. | ||
| colomon | jnthn: I've already explained the deliverables, it's just the intro and outro which I still have to write. | 21:26 | |
| jnthn | oh, maybe references to some code too if you feel it's appropriate. | ||
| colomon: Ah, OK. :-) | |||
| colomon | hmmm, I hadn't considered code references. | ||
| jnthn | colomon: I don't think I've tended to use them extensively. | 21:27 | |
| colomon | back on the Vector stuff for a second -- I have all three of those areas fully passing their tests again. The remaining tricky bit seems to be the combination (using a vector-valued polynomial versus a NURBS curve) which is making me throw up my hands in frustration. | 21:28 | |
| jnthn | colomon: In terms of trying to work out the right factoring? | 21:29 | |
| colomon: For "BinarySearch" maybe Algorithm::BinarySearch (to avoid top-level name) | 21:30 | ||
| colomon | jnthn: the problem seems to be that you cannot currently use (say) Vector coefficients in your polynomial without doing "use Vector" in Polynomial.pm. But if you have to also do that in Nubs.pm, and then you use both Polynomial and Nubs, bad things happen. | 21:31 | |
| I'll try to come up with a more coherent bug report at some point, but that may be a couple of weeks off yet. | 21:32 | ||
| jnthn | *nod* | ||
| I can certainly believe there are bugs in that area. | |||
| But I can't think of any known issue that would give you that kind of trouble either. | |||
| colomon | at any rate, it's silly to try to include that all as one single package anyway. Vector and Polynomial can be completely independent, and BinarySearch even more so. | ||
| jnthn | Yes, sounds sensible. | 21:33 | |
| colomon | and of course, the easier we make it for people to use them / work on them, the more people are likely to do so. :) | 21:35 | |
| jnthn | Yes, somebody looking for a binary search impl wouldn't be likely to look in a single Vector package for it. :-) | ||
| colomon | exactly. | ||
| jnthn: I keep on being tempted to stick an "areas for future development" section in my grant report. Smart or dumb? | 21:36 | ||
| jnthn | Doesn't that belong in your next grant application? ;-) | 21:37 | |
| colomon | jnthn: maybe. :) | ||
| jnthn | Things phrased as "this opens the door to being able to work on X, Y and Z that we were not in a positoin to before this work" is probably good. | 21:38 | |
| colomon | though done that way it would be kind of scattery: BigInts! FatRats! Numeric methods we should have had but left out of the spec! | ||
| jnthn | *position | ||
| colomon | oooo, clever way of thinking about it. | ||
| okay, that's everything but the conclusion done in first draft, and I should really go cook noms. | 21:40 | ||
| jnthn | :-) | ||
| Enjoy noms. | |||
|
21:44
ingy joined
|
|||
| ingy | someone set up us the bomb! | 21:45 | |
| pragma_ | what you say! | 21:46 | |
|
21:47
pwd joined
|
|||
| dalek | p-rx: 96bc191 | tene++ | src/NQP/Actions.pm: Set :nsentry on our methods |
21:47 | |
| lue | .oO(Ooh, there's a discussion on radices (radixes? radii?) on p6l! /me interested) |
||
|
21:49
dolmen joined
21:56
Patterner joined
22:05
Ross joined
22:06
whee joined
22:12
masonkramer joined
22:17
alanT joined
22:18
alanT left
|
|||
| ingy | morning | 22:25 | |
| squeeky | evening! | ||
| ingy | so audreyt cleared the chan eh? | ||
| what else is happening | |||
| squeeky | everyone appears to be having happy hour, somewhere. | 22:26 | |
| ingy | yeah! | ||
| ingy is waking up at 3:30pm | |||
| making coffee | |||
| squeeky | "SIR! BEEN AWAKE SINCE THE CRACK OF NOON, SIR!" | ||
| ingy | but a cocktail sounds like a fine idea | 22:27 | |
| is rakudo* busted? | |||
| github.com/rakudo/star | |||
| that msg seems onerous | |||
| jnthn | ingy: No, the release that went out on Thursday kinda was though :-( | 22:29 | |
| But that's OK, Star can use from master. I'd expected that anyway. :-) | |||
|
22:34
justatheory joined
|
|||
| lue | what time will R* be released? | 22:36 | |
| ingy | jnthn: there was a release on thurs? | 22:44 | |
| was the 29th a fake date | |||
| jnthn | ingy: Just the Rakudo compiler monthly release | ||
| Not R* | |||
| ingy | ah | ||
| lue | .oO(O darn, where is confetti? I only have a few days until R*!) |
22:45 | |
| whee | would it be safe to use rakudo star as an excuse to learn perl 6 or should I expect disappointment? :D | 22:47 | |
| ingy | whee: expect excitement! | 22:48 | |
|
22:48
alanT joined
|
|||
| lue | whee: feel free to use anything as an excuse :) | 22:48 | |
| ingy | whee: blogs.perl.org/users/ingy_dot_net/2...ready.html | 22:49 | |
| ingy goes off to write a yaml parser for the rakudo star release | 22:50 | ||
| :) | |||
| jnthn -> rest | |||
|
22:51
lichtkind joined
|
|||
| lichtkind | mberends: greets | 22:51 | |
| whee | ingy: awesome | 22:52 | |
| ingy | moritz_: ping | 23:00 | |
| moritz_: what's this: token value:sym<true> { <sym> }; | |||
| Tene | ingy: what about it? | 23:03 | |
| ingy: it's a protoregex | 23:06 | ||
| It's like multiple dispatch for regexes. | |||
| lue | afk | ||
|
23:08
alexm left
|
|||
| ingy | Tene: can you break it down a little bit for me (or point me at the doc)? | 23:09 | |
| Tene: I think I found something... | 23:10 | ||
| Tene | ingy: I'm glad to break it down. | 23:11 | |
| Should be documented in S05 | |||
| ingy: look for :sym in github.com/rakudo/rakudo/blob/maste...Grammar.pm for examples | 23:12 | ||
| github.com/rakudo/rakudo/blob/maste...ar.pm#L476 | 23:13 | ||
| is good | |||
| when another rule uses <statement_prefix>, it checks to see which of those rules it oculd match | 23:14 | ||
| <sym> inside of those those tokens matches the argument given to :sym in the definition | |||
| so statement_prefix:sym<BEGIN> { <sym> <blorst> }; matches 'BEGIN' and then a <blorst> | |||
| the advantage there is that you don't have to do like: | 23:16 | ||
| token foo { <foo_a> | <foo_b> | <foo_v> | <foo_d> <lol> | ... } | |||
| And then have an action method to check each of them and return the ast for whichever it matched | |||
| just define token foo:sym<a>, foo:sym<b>, etc. | 23:17 | ||
| and then just use <foo> | |||
| That was kind of scattered. Did that end up covering what you needed? | |||
| ingy | Tene: thanks! | 23:32 | |
| Tene: that kinda makes 'sym' a keyword, no? | 23:36 | ||
| rakudo: token sym { 'foo' } | 23:37 | ||
| p6eval | rakudo b46a3b: OUTPUT«Useless declaration of has-scoped token in a module; add our or my to install it in the lexpad or namespace» | ||
| Tene | ingy: Kinda. | ||
| ingy | rakudo: grammar X { token sym { 'foo' } } | ||
| p6eval | rakudo b46a3b: ( no output ) | ||
| ingy | std: grammar X { token sym { 'foo' } } | ||
| p6eval | std 31823: OUTPUT«ok 00:01 116m» | ||
| ingy | or is 'sym' just a convention for some:such? | 23:39 | |
| Tene | I'm not entirely sure how that works, grammatically. | 23:40 | |
| ingy | Tene: what's {} | ||
| as in: '#' {} \\N* | |||
| Tene | ingy: where do you see that? | ||
| ingy | token comment:sym<#> { '#' {} \\N* | 23:41 | |
| Tene | Ah. | ||
| ingy | }that looks cool | ||
| Tene | No idea, actually. | ||
| ingy | hmm | 23:42 | |
| Tene | certainly not necessary or related to protoregexes. | ||
| ingy | yeah, but I've moved on! | 23:43 | |
| ;) | |||
|
23:50
Eddward joined
|
|||
| Tene | ingy: {} in general just call a closure of Perl 6 code. | 23:55 | |
| As far as I can tell, in Rakudo right now that really does just call an empty closure that returns Nil | |||
| I have no idea what that's good for. | |||
| But that's what it actually compiles to. | |||
| ingy | Tene: awesome. thanks! | 23:56 | |
| Tene | pmichaud: what is {} used for in Rakudo's Grammar.pm? | 23:57 | |
|
23:57
Psyche^ joined
|
|||