perl6-projects.org/ | nopaste: sial.org/pbot/perl6 | evalbot: 'perl6: say 3;' | irclog: irc.pugscode.org/ | ~290 days 'til Xmas Set by mncharity on 6 March 2009. |
|||
TimToady | std: constant π = atan2(1,1)*4; say π; | 00:00 | |
p6eval | std 25878: OUTPUT«ok 00:05 42m» | ||
TimToady | std: say π | ||
p6eval | std 25878: OUTPUT«Undeclared routine: π used at 1 ok 00:02 34m» | ||
TimToady | rakudo: constant π = atan2(1,1)*4; say π; | 00:01 | |
p6eval | rakudo 521a5f: OUTPUT«Malformed declaration at line 1, near "\u03c0 = atan2("current instr.: 'parrot;PGE;Util;die' pc 129 (runtime/parrot/library/PGE/Util.pir:83)» | ||
jnthn | TimToady: I didn't implement it yet - I wanted to follow STD.pm's lead. ;-) | 00:02 | |
skids learns cats do not cover their mouths when sneezing. The hard way. | |||
jnthn | skids: Yeah, but they're cute... :-) | 00:03 | |
00:04
jferrero joined
|
|||
TimToady | actually, right out of S04: | 00:07 | |
std: constant Num π = atan(2,2) * 4; | |||
p6eval | std 25878: OUTPUT«ok 00:02 35m» | ||
00:07
FurnaceBoy joined
|
|||
TimToady | jnthn: it probably takes LTM with backoff to work right though | 00:08 | |
since the lexer can't determine whether an identifier is a type or not | 00:09 | ||
and whichever you guess first, it might be wrong | |||
rakudo: constant π = atan2(1,1)*4; say π / 4; # s/b term, not listop | 00:11 | ||
p6eval | rakudo 521a5f: OUTPUT«Malformed declaration at line 1, near "\u03c0 = atan2("current instr.: 'parrot;PGE;Util;die' pc 129 (runtime/parrot/library/PGE/Util.pir:83)» | ||
TimToady | std: constant π = atan2(1,1)*4; say π / 4; # s/b term, not listop | ||
p6eval | std 25878: OUTPUT«ok 00:02 35m» | ||
jnthn | s/b? | ||
TimToady | should be | ||
jnthn | oh | ||
TimToady | e() is an error | 00:12 | |
jnthn | Does that need LTM or just knowing what is a typename? | ||
We already do the later. | |||
TimToady | a name, if not a typename | ||
jnthn | OK. | ||
TimToady | in any case, a value that doesn't expect an arg | ||
jnthn | *nod* | 00:13 | |
TimToady | though in a sense, what you say is not inaccurate, since any value may behave as a type | ||
which is why sub foo (1) {...} works | |||
jnthn | Aye, I need to look at how STD.pm parses that. | ||
And replicate it best I can in Rakudo. | |||
After that it's pretty easy to get the rest of the way since it's just like $ where 1 | 00:14 | ||
TimToady | type_constraint includes <value> as an alternative | ||
jnthn | Aha. | ||
OK, that's probably not going to be hard at all then. | 00:15 | ||
TimToady | that's what distinguishes noun from value | ||
moritz_ | that's.. unintuitive | ||
jnthn | Wait, does what mean "my 1 $x" works? | ||
std: my 1 $x | |||
p6eval | std 25878: OUTPUT«##### PARSE FAILED #####Malformed "my" declaration at /tmp/38iwWDqMFO line 1:------> my 1 $x expecting scoped declaratorFAILED 00:02 34m» | ||
TimToady | that's not a type_constraint as used by parameter | ||
jnthn | oh, type_constraint, not...right. :-) | 00:16 | |
std: our Int multi foo() | |||
p6eval | std 25878: OUTPUT«##### PARSE FAILED #####Malformed "our" declarationMalformed "multi" definitionMalformed routine definition at /tmp/mrSwOc5LCl line 1:------> our Int multi foo()FAILED 00:02 34m» | ||
TimToady | type_constraint is only used by parameter | ||
hmm | 00:17 | ||
jnthn | TimToady: With regard to the above, I thought this is what: | ||
| <fulltypename>+ <multi_declarator> | |||
Inside rule scoped | |||
Is handling? | |||
I'm fine with it not being valid syntax, but that line in STD.pm makes me think it should be accepted? | |||
TimToady | it's probably a regression from the constant fix | 00:18 | |
jnthn | OK, so the thing you were saying a couple of days back was wrong was things like "Int multi foo()" | ||
00:18
alc joined
|
|||
jnthn | Without a scope declarator before it? | 00:18 | |
TimToady | huh, it parses here... | 00:19 | |
oh, you need {...} | |||
jnthn | oh duh | ||
Sorry | |||
japhb | jnthn: where are you posting rakudo day updates these days? I seem to have lost the link .... | ||
jnthn | Missed them by accident... | ||
japhb: use.perl.org/~JonathanWorthington/journal/ and on rakudo.org | 00:20 | ||
japhb | jnthn: thanks! | ||
jnthn | Erm. But rakudo.org is a bit...sub-optimal...for finding them at the moment. | ||
(alester++ already said he'd deal with that when I asked though) | 00:21 | ||
00:21
[particle]2 joined
|
|||
japhb | Yeah, I think that before the design change, that's what I had been using. | 00:21 | |
jnthn | Best for now is www.rakudo.org/tracker | ||
But really needs something with just stories on it. | |||
And linked to as Blog or News from the top. | |||
Anyway, I keep posting at both. | 00:22 | ||
japhb | excellent. | ||
jnthn | This issue aside, rakudo.org is a bit improvement over before for people coming to it wanting to know how to get and play with Rakudo etc. | ||
*big | |||
japhb | nodnod | 00:23 | |
skids | rakudo: my $a; my $b; my $c; :(Str $a, Num $b, Int $c) = "OH HAI", 5.4, 3; | ||
p6eval | rakudo 521a5f: OUTPUT«too few arguments passed (0) - 3 params expectedcurrent instr.: '_block14' pc 40 (EVAL_17:28)» | ||
skids | not implemented yet? | 00:24 | |
jnthn tries to remember if that's meant to work... | |||
I think it is meant to... | |||
So yes, unimpl. | 00:25 | ||
skids | It's sorta implied in I think S03 and was kinda left not firmly decided on p6l. | ||
00:25
Maddingu1 joined
|
|||
jnthn | std: my $a; my $b; my $c; :(Str $a, Num $b, Int $c) = "OH HAI", 5.4, 3; | 00:25 | |
p6eval | std 25878: OUTPUT«ok 00:04 39m» | ||
jnthn | Well, it parses. | 00:26 | |
00:26
Maddingue left,
[particle]2 left
|
|||
skids | It'll make the S&M folks happy in coroutines, so I hope it stays in the spec. | 00:26 | |
jnthn | Sadomasichism? | 00:27 | |
skids | Yeah the typecheck fiends. | ||
(Not that types aren't very useful mind you :-) | |||
00:28
DemoFreak left
|
|||
jnthn | Oh, I'd rather have typed $a, $b and $c in that case... | 00:28 | |
At the point of declaration. | |||
I mainly see the signature syntax like that really useful for unpacking. | |||
Mmmm...unpacking. Want to implement. :-) | 00:29 | ||
skids | Yeah there's no declaration of yield points, really, unless we define a special syntax. | ||
www.abrij.org/~bri/S17.tempurl.pod | 00:30 | ||
What I'm leaning towards so far on S17, the notes on coroutines in specific. | |||
00:31
Maddingu1 is now known as Maddingue
|
|||
jnthn | skids: Ah, you're hacking on S17? | 00:31 | |
skids | wayland asked me to, yes. | ||
jnthn | Cool. | ||
I'm too tired now to give reviewing that the attention it needs. I'll try and do it soon. Poke me if I forget. | 00:32 | ||
skids | will do. Really I'm not comitting it yet because I want it "quietly" glossed over by each implementation more as a question than an assertion. | 00:33 | |
And I don't have a pugs svn bit anyway :-) | 00:34 | ||
jnthn | Sure. | 00:35 | |
I'll try and give some decent feedback. | |||
I'm interested in working on concurrency stuff. | |||
skids | I'm interested in working concurrency stuff :-) | ||
where has wayland been at BTW? | 00:39 | ||
jnthn | Don't remember seeing wayland today... | 00:40 | |
Well, people have lives. :-) | |||
skids | Some people at least :-) | ||
jnthn | I even managed to have some offline time recently. ;-) | 00:41 | |
skids | I suppose the day job counts, sorta. I mean, I'd be more pathetic without one. :-) | ||
jnthn | I work from home, so don't get that excuse to head out each day. | 00:42 | |
When I take vacation I tend to spend a lot of it outdoors as a result. | 00:43 | ||
00:43
[particle]1 left
|
|||
skids | I don't think I'd even bother to get dressed :-) | 00:44 | |
jnthn | I do take the liberty of sleeping until 10am or 11am and staying up until 2am-3am. :-) | ||
I actually work better that day. | 00:45 | ||
*way | |||
Dunno why. | |||
skids | Yeah me too actually, but office hours are what they are. Dunno why either. | ||
jnthn | I guess equally there's something nice about having a job you can leave at 5pm or whatever and know the day's work is done (if you have a job that doesn't cause you a bunch of overtime, that is...) | 00:46 | |
skids | Or tethered to a pager :-/ | 00:47 | |
Tene | Let's see if my mail to perl6-users goes through. | ||
jnthn should probably subscribe to p6u | |||
Tene | I remember having trouble posting last time I tried. | ||
Hmm. I don't see it showing up... Maybe it's going to take a while... | 00:48 | ||
jnthn | Tene: Is p6u quite low traffic? | ||
00:48
ujwalic left
|
|||
Tene | jnthn: i see seven messages in the last five days. | 00:48 | |
jnthn | Ah, that's fine. | ||
Tene | I have no idea how typical that is. | ||
00:55
s1n joined
|
|||
pugs_svn | r25879 | lwall++ | [STD] improve error message when {...} is required | 01:03 | |
jnthn -> sleep | 01:08 | ||
01:15
Whiteknight left
|
|||
pugs_svn | r25880 | lwall++ | create more semantic distance between terms and 0-ary functions | 01:28 | |
r25881 | lwall++ | [STD] treat COMPILING:: as deferred scope | 01:32 | ||
r25881 | lwall++ | [constant.t] uneval tests, use fudge now when necessary | |||
TimToady | someone will need to fudge that ^ test for rakudo | 01:33 | |
01:35
[particle]1 joined
01:36
Kimtaro joined
01:44
jferrero left
02:00
Chillance left
|
|||
Tene | My mail still hasn't gone through to perl6-users | 02:28 | |
anyone know who maintains it that I could harass? | |||
02:32
ced-2 joined
02:34
Kisu left
02:35
Kisu joined
02:44
ced-2_ left
03:15
bacek left
03:32
sahadev joined
|
|||
sahadev | rakudo: my %hash; my @array = 1..3; %hash{'a1'} = @array; say "hash => ", %hash.perl; @array = 'a'..'c'; say "array modified => ", @array.perl; say "hash => ", %hash.perl | 03:37 | |
p6eval | rakudo 521a5f: OUTPUT«hash => {"a1" => [1, 2, 3]}array modified => ["a", "b", "c"]hash => {"a1" => ["a", "b", "c"]}» | ||
meppl | good night | 03:44 | |
03:47
meppl left
|
|||
s1n | anyone seen "could not locate method 'map' to invoke..."? | 03:47 | |
Tene | s1n: what code? | 03:54 | |
s1n | Tene: trying to get my fork back up to date | 03:55 | |
Range in particular | |||
i'm wondering if there was a change elsewhere that i missed | |||
Tene | does Range have a map method? | ||
s1n | supposed to, see t/spec/S03-operators/range.t | 03:56 | |
pugs_svn | r25882 | putter++ | [elfparse] <![foo]> are now zero width. ./elfdev -r1 -e 'say 3' works. | ||
Tene | s1n: right, but there's no .map() method defined on Range. | 03:57 | |
This would be a good choice to implement in the Setting | 03:58 | ||
s1n | Tene: currently, that test will pass and is not fudged | ||
that indicates to me there _is_ a map method | |||
Tene | s1n: what test? | 03:59 | |
s1n | maybe on something it inherited | ||
S03-operators/range.t | |||
#77, near the bottom | |||
pugs_svn | r25883 | lwall++ | [STD,viv] viv -6 now produces a perfect copy of STD.pm | 04:00 | |
r25883 | lwall++ | (now to rewrite gimme5 as viv -5...) | |||
Tene | s1n: okay, but that *doesn't* work for you? | 04:01 | |
s1n | Tene: let me know if anything pops out at you | ||
Tene | It passes for me. | ||
s1n | oh no it passes | ||
for the upstream | |||
i'm trying to get my fork back in shape and it's failing there | |||
Tene | What fork? | 04:02 | |
s1n | github fork | ||
Tene | Okay. What have you been patching there? | ||
s1n | small Range related things | ||
but i'm going to get it back to it (it's a little dated), and i was just wanting to know what added the map function to range | 04:03 | ||
Tene | Okay, it's probably related to your changes, I'd suspect. | ||
s1n | maybe but i suspect it's related to poor fork management, i'm missing something that is in the upstream | 04:04 | |
Tene | s1n: look at src/setting/Any-list.pm | 04:05 | |
s1n | hmm, no diffs | ||
Tene | that's where map() is defined. | ||
s1n | i really don't want to have to refork | 04:08 | |
Tene | Sorry I can't help. | 04:09 | |
s1n | if anyone has any ideas, github.com/s1n/rakudo, i need to know what gave Range support for map/grep | ||
Tene | s1n: it comes through Any-list.pm | ||
I told you | 04:10 | ||
s1n | Tene: i'm still inheriting that, so there must be something else | ||
pugs_svn | r25884 | lwall++ | [viv] clean out deadwood from older implementation | ||
s1n | Tene: see github.com/s1n/rakudo/blob/master/.../Range.pir | 04:11 | |
'parent'=>'Any' | 04:12 | ||
i'll have to come back to this tomorrow | 04:13 | ||
bed& | |||
04:24
Kimtaro_ joined
04:35
awarefish joined
04:36
Kimtaro_ left
04:38
justatheory left
04:40
alester joined
04:41
Kimtaro left
04:43
frooh joined
|
|||
frooh | s1n: you here? | 04:44 | |
04:44
awarefish left
04:55
kidd left
04:57
PacoLinux left,
PacoLinux_ joined,
PacoLinux_ is now known as PacoLinux
05:05
NoirSoldats joined
05:11
Kimtaro joined
05:13
Kimtaro left
05:15
Administ2ator joined
05:16
sahadev left,
Administ2ator left
05:20
[particle]1 left
05:28
Kimtaro joined
05:40
FurnaceBoy left
05:52
mberends left
05:59
WootKit joined
|
|||
TimToady | n | 06:11 | |
06:12
Kimtaro_ joined
|
|||
dalek | kudo: 1ca2109 | (Stephen Weeks)++ | build/Makefile.in: Fix a bug with rakudo trying to rebuild pbc_to_exe |
06:20 | |
06:21
DemoFreak joined
06:30
Kimtaro left
06:31
ewilhelm_ joined
06:42
maerzhase joined
06:46
alester left
07:04
maerzhase left
|
|||
moritz_ | rakudo: (1..5).map: { $_ * 2 } | 07:35 | |
p6eval | rakudo 1ca210: RESULT«[2, 4, 6, 8, 10]» | ||
07:36
mberends joined
|
|||
amoc | rakudo: map { $_ * 2} 1..5 | 07:38 | |
p6eval | rakudo 1ca210: OUTPUT«Statement not terminated properly at line 1, near "1..5"current instr.: 'parrot;PGE;Util;die' pc 129 (runtime/parrot/library/PGE/Util.pir:83)» | ||
amoc | rakudo: map { $_ * 2}, 1..5 | ||
p6eval | rakudo 1ca210: RESULT«[2, 4, 6, 8, 10]» | ||
07:39
maerzhase joined
07:41
clkao_ joined,
bacek joined
07:43
kcwu_ joined,
clkao left
|
|||
Matt-W | Morning | 07:47 | |
mberends | Matt-W, morning! how is Form coming along? | 07:48 | |
Matt-W | Just filed perl #63958 which is kind of a blocker at the moment | ||
well, it is for some things | 07:49 | ||
problems with modules including other modules or something of that sort | |||
very strane | |||
moritz_ | Matt-W: can you work around it by using the short name? ie B instead of A::B::B? | 07:51 | |
Matt-W | no, because that triggers another bug for wihch the workaround is to use the fully-qualified name | ||
mberends | maybe A::A is a container around the module A::B declaration. Then the true path would be A::A::A::B::B for the role | 07:53 | |
Matt-W | ow | 07:54 | |
ow ow ow | |||
that has to be a bug! | |||
although it must be said, there are some hints in the backtrace that this might be what Rakudo's doing | |||
moritz_ | Matt-W: it might be easiest do define the roles and classes directly with their long name, and not to put them into a separate module | 07:55 | |
07:55
quappa joined
|
|||
Matt-W | that would just be a workaround though | 07:55 | |
moritz_ | it would | 07:57 | |
better than being blocked | |||
mberends | moritz_, did you get to $*PROGRAM_NAME yesterday? I think it should be $?PROGRAM_NAME, but the former is how it currently works | ||
moritz_ | it's good that you submitted the ticket, but don't let it block you if there's a workaround | ||
mberends: I didn't, but I didn't tried really hard either | 07:58 | ||
08:04
quappa left
|
|||
Matt-W | moritz_: turns out saying A::A::A::B::B does indeed work. Ewww. | 08:04 | |
oh | 08:05 | ||
maybe it doesn't | |||
just shows up later instead | |||
08:06
mj41 joined
08:10
zamolxes joined
|
|||
Matt-W | oooh I think I found another bug | 08:11 | |
08:13
birefringent joined
|
|||
Matt-W | aww crap | 08:13 | |
not a simple test case | |||
08:13
riffraff joined
|
|||
moritz_ | www.perlmonks.org/?node_id=751341 | 08:14 | |
Matt-W | Somehow I've managed to trigger an infinite loop by calling a subroutine | 08:15 | |
and no, it's not one that has an infinite loop in it | 08:16 | ||
this is too mysterious for my cold-fuddled brain | 08:19 | ||
I'll probably go back to bed once I've called work to say I'm not coming | 08:20 | ||
08:27
fuzzbox left,
bacek left
08:34
masak joined
08:42
maerzhase1 joined
08:53
zamolxes left
08:54
viklund joined
08:57
maerzhase left
|
|||
viklund | masak: are you planning on commiting prakashk's patch to proto now? | 08:57 | |
masak | viklund: haven't gotten that far yet. | ||
viklund | masak: ok, I'll do it then, if that's ok | ||
masak | it is. | ||
I trust your judgment. :) | |||
viklund | I feel honoured | 08:59 | |
masak | viklund: and I still feel a bit deflated after last night. but that's ok. :) | 09:00 | |
as long as good software is the end result... | 09:01 | ||
09:02
jferrero joined
|
|||
moritz_ | why are there so many open branches? do they still all server a purpose? | 09:03 | |
masak | moritz_: not most of them, no. | ||
I know there is a way to remove them, but it's not obvious to me. | |||
moritz_ | masak: github.com/guides/remove-a-remote-branch | 09:04 | |
masak | moritz_: gracias. | ||
viklund | dang, moritz_ got there first | ||
masak | he often does. | 09:05 | |
viklund | ;) | 09:06 | |
moritz_ | well, I have to have some kind of qualification :-) | ||
masak | moritz_: remind me never to duel you in the sunset. | 09:07 | |
moritz_ reminds masak never to duel him in the sunset | 09:08 | ||
09:10
amoc left
09:11
DemoFreak left
09:13
amoc joined
|
|||
masak | viklund: origin/tests, do we need that one open? | 09:18 | |
09:22
bacek joined
|
|||
viklund | masak: no | 09:27 | |
masak axes it | |||
viklund | masak: plugin is so out of date that it can be removed too | ||
masak | ok | ||
those left now are asterisk, dispatch, and mediawiki-lists. | 09:28 | ||
09:28
AzureStone left
|
|||
masak | I've @asked ihrd about the two first ones, and the last one is still kinda useful to me. | 09:28 | |
moritz_: do you have a suggestion for a plan of action with this UTF-8 bytes thingie? | 09:33 | ||
myself, I'm considering using the ord value and producing the bytes in Perl 6 for now. | 09:34 | ||
09:34
ced-2 left
|
|||
masak | doing it with Parrot's help would be ideal, but there seem to be several barriers related to that right now. | 09:35 | |
moritz_ | masak: I broke the PIR barrier yesterday night, but I don't see any light in breaking the byte string barrier | 09:36 | |
09:36
ced-2 joined
09:37
viklund left
|
|||
masak | moritz_: what do you think of my plan to do it all in Rakudo for now, then? | 09:39 | |
UTF-8 encoding/decoding, how hard can it be? | |||
Matt-W hides | 09:40 | ||
masak | en.wikipedia.org/wiki/UTF-8#Description | ||
moritz_ | afaict we have bit wise operations | ||
09:40
clkao_ left,
clkao joined
|
|||
moritz_ | on integers | 09:40 | |
that should be all you need | |||
masak | right. | ||
I think I'll do it TDD, with at least one character from each row in the Wikipedia article's table. | 09:41 | ||
oh, they even probide those for me :) | |||
bot not now. maybe tonight. need to &WORK() a little. | |||
moritz_ | in theory you also need a Buf type | 09:42 | |
but I think in practice you can get away without one for now | |||
masak | I'll leave a few RAKUDO comments. | 09:43 | |
masak is thinking of a little script that can manage RAKUDO comments. | |||
09:45
plu_ joined
10:02
kappa joined
|
|||
kappa | are there any estimates when www.parrot.org will be up again? | 10:04 | |
bacek | kappa: с добрым утром :) Wrong channel. #parrot at irc.perl.org little bit better | 10:06 | |
moritz_ | anyway, doesn't seem like they know it over there | 10:07 | |
10:07
PZt left,
amoc left
|
|||
kappa | bacek: thanks :) i tried #parrot here but it's empty | 10:07 | |
bacek personally thinks that using PHP for site was "good idea" | 10:08 | ||
moritz_ | kappa: #parrot on irc.perl.org, not on freenode | ||
bacek | kappa: EWRONGSERVER, not freenode, irc.perl.org | ||
kappa | yes, EWRONGSERVER | 10:09 | |
bacek | moritz_: is it possible to get purl on #perl6? | ||
moritz_ | bacek: it might, but I'd kick it out as soon as I have op | 10:10 | |
bacek | moritz_: why? | ||
moritz_ | it's sufficiently annoying in #parrot already, and we have lambdabot to annoy us here | ||
bacek | good point. | 10:11 | |
10:12
kappa left
10:13
ArtVandalae joined
|
|||
masak fully agrees with moritz_ | 10:14 | ||
10:14
kappa joined
|
|||
masak | purl is in obvious breach of many of the robot laws. | 10:14 | |
10:15
ArtVandalae left
|
|||
bacek | Apart from examples "how to" we need few "how not to" :) | 10:15 | |
masak | indeed. | 10:16 | |
10:19
ced-2_ joined
10:20
ced-2 left
10:24
ejs joined
|
|||
masak | Matt-W++ # [perl #63958] | 10:26 | |
bacek | rakudo: sub foo(Callable $c) { $c() }; foo(eval "die") | 10:27 | |
p6eval | rakudo 1ca210: OUTPUT«invoke() not implemented in class 'Undef'current instr.: 'foo' pc 134 (EVAL_17:64)» | ||
bacek | rakudo: sub foo(Callable $c) { $c() }; foo eval 'sub quux ($.x) { ... }'; | 10:28 | |
p6eval | rakudo 1ca210: OUTPUT«too few arguments passed (0) - 1 params expectedcurrent instr.: 'quux' pc 46 (EVAL_20:33)» | ||
Matt-W | masak: very irritating that. I just wish I could figure out why another bit of code seems to be going into an infinite loop | 10:29 | |
masak: it doesn't even get as far as any loops I wrote | |||
masak | Matt-W: time to insert a few debug print statements, then. | 10:30 | |
Matt-W | yes | ||
I did | |||
it calls a subroutine | |||
10:30
ced-2_ left
|
|||
Matt-W | then chews up one core of my processor | 10:30 | |
and never prints the 'say' which is on the first line of that sub | |||
I haven't been able to make it do it in a test case yet | |||
masak | sounds interesting. | 10:31 | |
jnthn | morning | ||
Matt-W | morning jnthn | 10:32 | |
masak: you could say that | |||
masak | jnthn: OH HAI | ||
jnthn is getting his sleep times more out of sync with daylight hours again... :-| | 10:33 | ||
10:34
ced-2 joined,
cizra joined
|
|||
cizra | Is it true that you can just slap a keyword onto a for-loop in Perl 6 and the loop will executed in parallel fashion, in multiple threads? | 10:34 | |
masak | jnthn: did I meantion that when I started observing my own sleep (writing it down, more or less), it became much, much more regular and 'effective'? | 10:35 | |
cizra: well, usually we use other constructs than for loops for parallelism. | 10:36 | ||
cizra: I'll see if I can find a Spec reference or two for you. | |||
jnthn | hyper map | ||
moritz_ | cizra: there's 'hyper' for that | ||
cizra | masak: don't bother | ||
masak | cizra: too late :) perlcabal.org/syn/S12.html#Parallel_dispatch | 10:37 | |
cizra | I'm just interested whether Perl 6 has thought about the ease of parallel programming. | ||
moritz_ | it has. | ||
masak | cizra: it has. | ||
moritz_ | and the compiler is allowed to parallelize lots of constructs | ||
like junction autothreading and hyper operators | |||
cizra | nice. Thanks. | 10:38 | |
10:38
cizra left
10:41
aindilis` joined
|
|||
moritz_ | could anybody please verify that rakudo passes t/spec/S12-class/declaration-order.t now without throwing a backtrace? | 10:41 | |
10:42
alc left
|
|||
masak | moritz_: sure. just have to rebuild first. | 10:45 | |
10:45
disismt joined
|
|||
pugs_svn | r25885 | moritz++ | [t/spec] fudged scoped-named-subs.t for Rakudo | 10:46 | |
10:46
kappa left
10:49
kappa joined
|
|||
s1n | frooh: i'm here for a few minutes while i get ready for work | 10:50 | |
frooh: what's up? | |||
10:50
kappa left,
kappa joined,
kappa left
|
|||
jnthn wonders if we hit 7,250 tests yet. | 10:50 | ||
moritz_ | jnthn: not quite. But I'm adding three test files now (just running spectest to be sure...) | 10:52 | |
10:54
aindilis left
11:18
ujwalic joined
11:19
ujwalic left
11:34
riffraff left
12:03
FurnaceBoy joined
12:04
FurnaceBoy left
12:05
Kimtaro_ left,
FurnaceBoy joined
12:12
rodi joined
12:17
FurnaceBoy left
12:20
skids left
12:29
Kimtaro joined
12:36
asura_king joined,
asura_king left
|
|||
dalek | kudo: a197d2a | (Moritz Lenz)++ | t/spectest.data: more passing test files for t/spectest.data |
12:40 | |
moritz_ | jnthn: now we have 7255 passing tests | 12:42 | |
jnthn | moritz_++ | 12:44 | |
Good number to reach for the release. :-) | |||
13:05
garme joined,
garme left
13:12
riffraff joined
13:21
skids joined
|
|||
Matt-W | moritz_++ | 13:40 | |
everyone++ | 13:41 | ||
13:58
maerzhase1 left
14:13
Exodist joined
14:17
Diederich-HireMe joined
14:29
ced-2_ joined,
nihiliad joined
14:38
ced-2__ joined
14:40
[particle]1 joined
14:41
estrabd joined
14:42
ced-2 left
14:49
xinming left
14:50
xinming joined
14:53
ced-2_ left
14:57
nihiliad left
14:58
frodwith left
|
|||
frioux | rakudo: sign -5 | 14:59 | |
p6eval | rakudo a197d2: RESULT«-1» | ||
14:59
frioux left
|
|||
jnthn | rakudo: sign "of the beast" | 15:00 | |
p6eval | rakudo a197d2: RESULT«0» | ||
15:00
frioux joined
|
|||
masak | rakudo: sign 1\i | 15:04 | |
p6eval | rakudo a197d2: OUTPUT«Statement not terminated properly at line 1, near "\\i"current instr.: 'parrot;PGE;Util;die' pc 129 (runtime/parrot/library/PGE/Util.pir:83)» | ||
masak | rakudo: sign 1.i | ||
p6eval | rakudo a197d2: OUTPUT«Method 'i' not found for invocant of class 'Int'current instr.: 'parrot;P6metaclass;dispatch' pc 637 (src/classes/ClassHOW.pir:161)» | ||
masak | rakudo: sign i | ||
p6eval | rakudo a197d2: OUTPUT«Could not find non-existent sub icurrent instr.: '_block14' pc 53 (EVAL_16:38)» | 15:05 | |
masak | g'ah! :) | ||
rakudo: sign 1i | |||
p6eval | rakudo a197d2: RESULT«1» | ||
masak | rakudo: sign -1i | ||
p6eval | rakudo a197d2: RESULT«1» | ||
jnthn | fail | ||
masak | I still think we ought to fix that one. | ||
jnthn | ....I think... | ||
masak | I submitted a rakudobug about it. | 15:06 | |
jnthn | masak: Yeah, it's a bit complex though. | ||
masak | :P | ||
jnthn: there are two approaches. either return nothing (i.e. fail), or return a normalized complex number. | |||
one can argue either way; there are use cases for both approaches IMHO. | |||
15:07
frodwith joined
|
|||
masak | and people have done so on p6l. | 15:09 | |
15:19
nihiliad joined
15:21
xinming left,
PacoLinux left,
PerlJam left,
oskie left,
jan_ left
15:22
PerlJam joined,
oskie joined
15:23
xinming joined
15:26
jan_ joined
15:37
PacoLinux_ joined,
PacoLinux_ is now known as PacoLinux
15:39
sri_kraih joined
|
|||
moritz_ | there is a different method for returning only the angular part (ie normalized complex number) | 15:43 | |
masak | also, and perhaps more importantly, sign is supposed to return the _sign_ of a number. | 15:44 | |
that only makes sense for reals. | |||
I tend to like generalising, but not in this case. | |||
jnthn | Making it only accept a Num or Int would probably do. | ||
In that case | 15:45 | ||
masak | complex numbers aren't Num? :) | ||
masak hides | |||
15:46
orafu joined
|
|||
mberends | masak: testing proto on a clean Debian Live, the new tarfile downloader exits with "Couldn't move Perl 6" because the projects directory has not yet been created :( | 15:46 | |
masak | mberends: I spent yesterday evening getting a good bashing by viklund for the Perl 5 bootstrapper. | 15:47 | |
a well-deserved one, I might add. | |||
mberends | bash, bash | 15:48 | |
and we moved from bash to perl5 | |||
masak | mberends: if you change anything in there, don't do any ambitious changes, because it's all being replaced. | ||
either by me or viklund. | |||
whoever pushes first. :) | |||
mberends | I have other stuff to work on anyway, and was just preparing to test some Pod stuff under proto. I'll see when you push. | 15:50 | |
15:53
hercynium joined
|
|||
masak | I'll give it a shot too. thanks for the heads-up. | 15:53 | |
15:53
sri_kraih_ left
|
|||
mberends | your Mock::Parser is finding application in a non-testing scenario as well :) | 15:58 | |
masak | waitwait, my what? | 16:08 | |
16:08
ruoso joined
|
|||
masak fears that the day has come when he has forgotten a Perl 6 module he wrote | 16:09 | ||
mberends | the role you added to the Pod::Parser test suite | ||
masak | oh! that one. :) | ||
good, good. | |||
mberends | the day has indeed come. | ||
masak | carry on. | ||
ruoso | Hello! | ||
lambdabot | ruoso: You have 1 new message. '/msg lambdabot @messages' to read it. | ||
masak | mberends: I _did_ thing it sounded familiar somehow. :) | 16:10 | |
mberends | heh | ||
16:10
ewilhelm_ is now known as ewilhelm
16:16
dalek left
16:17
dalek joined
16:19
ejs1 joined,
WootKit left
16:21
clintongormley joined
16:23
ejs1 left
16:29
ejs left
16:30
mberends left
16:35
nihiliad left,
M_o_C joined,
maerzhase joined
|
|||
moritz_ | @tell pmichaud if you want to do some rakudo publicity, you could answer www.perlmonks.org/?node_id=751341 | 16:37 | |
lambdabot | Consider it noted. | ||
16:48
clintongormley left
16:50
nihiliad joined
|
|||
mikehh | rakudo (a197d2a) builds on parrot r37546 - make test/make spectest PASS - Kubuntu Intrepid i386 | 16:51 | |
masak | neat. | 16:54 | |
Diederich-HireMe | quick question: where can I look for a comprehensive list of all Perl6 modules? | 16:55 | |
I'm thinking about implementing my Tie::DNS in Perl6 | |||
and maybe Proc::Swarm | |||
moritz_ | Diederich-HireMe: I don't there's such a list... | ||
Diederich-HireMe | nod..didn't think so | 16:56 | |
16:56
Psyche^ joined
|
|||
Diederich-HireMe | specifically, I need to know if any work's been done on Net::DNS | 16:56 | |
moritz_ | seems like not | ||
I've heard of none, at least | |||
Diederich-HireMe | nod | 16:57 | |
I'll send the author a note | |||
I've been watching Perl6 since 2000, | |||
and I finally think 'this is the one' | |||
16:57
Patterner left,
Psyche^ is now known as Patterner
|
|||
moritz_ | good ;-) | 16:59 | |
Diederich-HireMe | what do you think? :) | 17:00 | |
masak | Diederich-HireMe: yes, this is the one. | ||
[particle]1 | i think rakudo is the one, too. | ||
masak | these are the droids you're looking for. | ||
Matt-W | It is the most exciting programming language I've ever seen | ||
moritz_ | Diederich-HireMe: I spend half of my free time on the test suite, articles and on Rakudo development - is that answer enough? ;-) | ||
Diederich-HireMe | oh, it's a given that Perl6 is The Bomb as far as a programming language | 17:01 | |
what most people say is that it's too much | |||
and maybe that's true...it's certainly taken long enough to get here | |||
but I do believe in it | |||
Matt-W | Do they? | ||
Most people I've spoken to think it'll never exist | 17:02 | ||
Diederich-HireMe | for some definition of 'they', yes :-) | ||
that's what I mean, Matt-W | |||
17:02
ejs joined
|
|||
Diederich-HireMe | 'too much to get done' | 17:02 | |
Matt-W | Or that by the time we do have a 'complete' compiler, something else will have superceded it | ||
Diederich-HireMe | yeah | ||
Matt-W | But usually they're just not paying attention | ||
Diederich-HireMe | definitely | ||
some of the stuff in Pugs was really exciting | 17:03 | ||
moritz_ | it was | ||
sadly audreyt became sick | |||
Diederich-HireMe | (even excluding the the test suite..) | ||
the multi-backend stuff was awesome | |||
Matt-W | fortunately we still have rakudo, which is awesome | 17:04 | |
masak | it would be interesting to review the Pugs source. | ||
Diederich-HireMe | nod | ||
hm...is it not available? | 17:07 | ||
(pugs source) | |||
Matt-W | it should be! | ||
ruoso | it is | ||
Diederich-HireMe | ok...dang, that was an odd moment :) | ||
moritz_ | svn.pugscode.org/pugs | ||
masak | it's available, but it's large, so reviewing will be a big effort. | ||
Diederich-HireMe | nod | ||
yeah, I knew about the URL, | 17:08 | ||
ruoso | and requires haskell knowledge.. which seems like a bigger challenge then its size | ||
Diederich-HireMe | but I got the vague impression from you guys that it may not be available | ||
Matt-W | ruoso: not really, once you have the haskell knowledge it's still scary | ||
ruoso | heh | ||
moritz_ | maybe you need approximately the genius level as audreyt | ||
Diederich-HireMe | yeah, she seemed quite bright | 17:09 | |
Matt-W | as long as it's not the kind of code I kept having to read doing my PhD | ||
where you have to read somebody else's thesis to understand what's going on | |||
Diederich-HireMe | damn | ||
moritz_ | but I don't understand the perl5 source doe either | ||
Diederich-HireMe | that sounds ugly | ||
I've heard that Perl5 source has gotten a lot cleaner in 5.10 | 17:10 | ||
but I don't know for sure | |||
moritz_ | well, it's not dirty... it's just... no C code. 95% of all code is some macros which you'd have to look up | 17:11 | |
Matt-W | well it certainly didn't stop them implementing given and state and some other cool stuff in 5.10 | ||
moritz_ | aye | ||
Matt-W | I must admit I've never looked | 17:12 | |
ruoso | p5 code is not that bad... | ||
it's just that it retains backward compatibilty for a long time | |||
which is a good idea | |||
and one of the reasons why p5 is core in almost any *nux machine | |||
*nix, that is | 17:13 | ||
Diederich-HireMe | yeah | ||
agreed, ruoso | |||
it's a 'good' and 'bad' thing | |||
ruoso | but the fact that when you retain mistakes for 25 years, it becomes a burden | ||
Matt-W | hence Perl 6 | ||
Diederich-HireMe | aye | ||
ruoso | otoh, CPAN wouldn't be so great if the modules became non-functional every 2 years | 17:15 | |
but if my plan goes well, perl 5.12 will run Perl 6 code ;) | 17:16 | ||
Diederich-HireMe | where I can I see your plan, ruoso? | 17:17 | |
ruoso, do you have another name you can share I might know? | |||
ruoso | www.perlfoundation.org/perl6/index.cgi?smopp5 | ||
Diederich-HireMe | thanks | 17:18 | |
17:19
armagad joined
17:20
armagad left
|
|||
Matt-W | ruoso: wow, I didn't realise you were intending to do that. That could be extremely cool. | 17:20 | |
pugs_svn | r25886 | ruoso++ | [re-smop] give a better description of what s0native is | ||
masak | ruoso: what Matt-W said. | ||
Matt-W | masak: hey, stop sharing my thought patterns! | 17:21 | |
ruoso | masak, Matt-W, that plan was already seen by some p5p people... and it seems to be doable | ||
masak | Matt-W: I was going to say the same to you! | ||
Matt-W | masak: I guess I'm still faster :P | ||
masak | Matt-W: or at least that's what I allow you to think :P | 17:22 | |
Matt-W | yeah yeah because my irc link has negative lag, so I can say things before I've actually typed them | ||
masak | convenient. | 17:23 | |
17:24
pmurias joined,
pmurias left,
pmurias joined
|
|||
ruoso | hi pmurias | 17:25 | |
pmurias | ruoso: hi | ||
lambdabot | pmurias: You have 2 new messages. '/msg lambdabot @messages' to read them. | ||
moritz_ senses some problems with causality, but decides not to tell the universe, it might not notice ;-) | 17:26 | ||
masak debates with himself whether /msg-ing on #perl6 constitutes 'telling the universe' or not | 17:27 | ||
17:28
masak left
|
|||
ruoso | pmurias, I think we can already move to smop-gc, can't we? | 17:29 | |
pmurias | ruoso: yes | 17:30 | |
ruoso | I realized smop-gc also requires an special capture | ||
so it can call DESTROYALL | |||
invocant-only-capture | 17:31 | ||
but that is subject to gc | |||
(or maybe not) | |||
actually, it doesn't need to be | |||
the gc knows when it is created | |||
and when it ceases to exist | |||
it can be manually managed | 17:32 | ||
pmurias | gc could be aware of the native capture... | ||
ruoso | I'd like to avoid doing circular dependencies at that level | ||
the disadvantage would be requiring every object to be aware of this type | 17:36 | ||
besides native capture | |||
unless, of course, we define the binary structure of the native capture in s0native | 17:37 | ||
pmurias | so extracting of positionals will need to be polymorphic? | ||
ruoso | well... it already needs to be... | ||
we aren't doing it yet (even in the original smop code) | 17:38 | ||
but my point is about defining SMOP__NATIVE__capture at s0native | |||
pmurias | SMOP__NATIVE__capture is gc'ed | 17:39 | |
ruoso | the s0native capture wouldn't be... | ||
then it would be replaced by the one that is | |||
17:39
kidd__ joined
|
|||
ruoso | hmmm | 17:40 | |
actually | |||
s0native capture can have its own gc embedded into itself | |||
that doesn't call DESTROYALL | |||
that's actually a good idea | |||
because we avoid requiring a DESTROYALL call to every capture... | |||
when it reaches 0 refcnt, it simply calls RELEASE in all its members | 17:41 | ||
pmurias, what do you think? | |||
pmurias | seems resonable | 17:42 | |
ruoso | cool | ||
17:42
japhb left
|
|||
ruoso | pmurias, in fact | 17:43 | |
capture could have a module on its own | |||
since it doesn't fit into the "not subject to gc" category that defines s0native | |||
pugs_svn | r25887 | ruoso++ | [re-smop] capture now goes into its own module, before gc | 17:45 | |
17:45
meppl joined
|
|||
ruoso | pmurias, are you planning to implement capture? | 17:47 | |
TimToady | I've decided the term "result object" must die (probably in favor of "abstract object" or some such), and .rob changes to .ast | 17:52 | |
of all the uses of the term "result" in S05, very nearly none of them are talking about result objects | 17:53 | ||
so it's just a bad term | |||
or maybe "abstract result" | 17:54 | ||
[particle]1 | .ast++ | ||
17:54
disismt left
|
|||
[particle]1 | (result object)-- | 17:55 | |
17:55
disismt joined
18:01
rodi left,
kidd__ left
18:08
maerzhase1 joined,
maerzhase left
18:09
pmurias left
|
|||
pugs_svn | r25888 | ruoso++ | [re-smop] document the reference/release policy as part of 01_base.pod | 18:14 | |
literal . o O (hm, is there a problem domain in which a C<some> junction would be useful?) | 18:21 | ||
18:23
ujwalic joined
|
|||
ruoso | literal, how is that different from any? | 18:23 | |
diakopter | more than 1? | 18:24 | |
er, "not all" | |||
literal | some would give a random amount of the items composing the junction | ||
pugs_svn | r25889 | lwall++ | Destroy the term "result object" in favor of "abstract object" and AST-Think. | ||
literal | like "give me some of those" | ||
diakopter | like .pick, but more than once without replacement | 18:25 | |
[particle]1 | .any .some .many .most .all | ||
and don't forget .none and .few | 18:26 | ||
TimToady | PLEASE DO NOT USE JUNCTIONS AS SETS!!!!!!!!!!!! | ||
literal | :) | 18:27 | |
ruoso | TimToady, I think it'd be nice to have some examples of bad uses of junctions, explaining why, and what would be the correct way of expressing that | 18:28 | |
TimToady | might be easier just to make .eigenstates a private method :) | ||
18:28
Ariens_Hyperion_ joined
18:29
ujwalic left
|
|||
ruoso | TimToady, if junctions were treated as native types (in the sense that they are not regular objects)... it would probably make such uses less likely to happen | 18:30 | |
TimToady | but it's easy to define the bad uses of junctions; any final use that isn't a boolean context is almost certainly wrong | ||
[particle]1 | maybe Junction should be called UnSet | ||
literal | AntiSet | ||
Matt-W | or just Junction | 18:31 | |
TimToady | I'm serious about the private eigenstates method, btw | ||
[particle]1 | $x!eigenstates; | ||
TimToady | so to play with eigenstates you'd have to use MONKEY_PATCHING and augment Junction to trust you | ||
wolverian | use.perl.org/comments.pl?sid=42574&cid=67841 has a question about overriding role methods in classes. I'd like to know what the motivation is for allowing that to happen silently, too | 18:32 | |
ruoso wonder if it makes sense for Junction to be Object at all... | |||
TimToady | providing .eigenstates to the casual user is like handing a bazooka to a five-year-old | 18:33 | |
wolverian | explicitly marking the overriding seems preferable to me. | ||
[particle]1 | i just like it for the comics | ||
skids votes normalized complex, but demoted to Num or Int if it's on the real plane. | 18:35 | ||
Oh dear, my buffer was all the way up | |||
hehe | 18:36 | ||
ruoso | making the Junctions "native" types also makes it easier to detect the autothreading | ||
jnthn | ruoso: The auto-threading just falls nicely out of multiple dispatch. | ||
TimToady | and single, for that matter | ||
jnthn | And Object gives you then a way of saying "I don't care if it's a junction or not" | ||
Yes, and single too. :-) | 18:37 | ||
ruoso: In general, auto-threading just falls out of other things failing, rather than something to pro-actively detect, or so it's turned out in Rakudo anyway. | 18:38 | ||
18:38
alester joined
|
|||
ruoso | rakudo: class Bla is Junction { method bar { say 1 } }; Bla.bar; | 18:38 | |
p6eval | rakudo a197d2: OUTPUT«1» | ||
ruoso | is there a way to build a junction programatically? | 18:39 | |
instead of syntatically | 18:40 | ||
jnthn | all(), any() ... | ||
[particle]1 | tpf has been accepted into gsoc 2009! | ||
jnthn | Yay! | ||
ruoso | right... but how do I create a Bla from the example above? while still behaving like a junction... | ||
rakudo: class Bla is Junction { method bar { say 1 } }; my $a = Bla.new(:type<any>, :eigenstates(1,2,3)); $a.say | 18:41 | ||
p6eval | rakudo a197d2: OUTPUT«Bla<0xb66804c0>» | ||
[particle]1 | TimToady: phone in 80m, correct, not 20m? | ||
TimToady | correct | 18:42 | |
[particle]1 | ta | ||
jnthn | ruoso: Not sure...guess something like that may make sense. | ||
Don't think it's spec'd. | |||
ruoso | I mean... that's the only reason for it being Object | ||
otherwise it could be a native type | |||
18:43
Ariens_Hyperion_ left
|
|||
TimToady | there's much to be said for calling it "junction" instead of "Junction" | 18:43 | |
as in, you may not add to the representation of this | |||
jnthn | Would Object still accept it, though? | ||
ruoso | TimToady, that's precisely my point... | ||
jnthn, yes... because Object accepts everything | 18:44 | ||
jnthn | OK, then fine. | ||
Whether it's capitalized matters relatively little to me.. | |||
TimToady | and I'm still thinking about taking eigenstates private | ||
ruoso | rakudo: sub foo(Object $a) { say $a }; my int $a = 4; foo($a); | ||
p6eval | rakudo a197d2: OUTPUT«Malformed declaration at line 1, near "int $a = 4"current instr.: 'parrot;PGE;Util;die' pc 129 (runtime/parrot/library/PGE/Util.pir:83)» | ||
TimToady | well, we try to be consistent about the native types being in lower case | ||
ruoso | doesn't rakudo support typed variables yet? | 18:45 | |
jnthn | ruoso: Sure it does. | ||
ruoso | what's wrong with my code above? | ||
jnthn | We just don't have the native types in place yet. | ||
ruoso | ah | ||
right | |||
pugs: sub foo(Object $a) { say $a }; my int $a = 4; foo($a); | |||
p6eval | pugs: OUTPUT«4» | ||
jnthn | So it doesn't recognized int. Int woulda been fine. | ||
ruoso | jnthn, but it misses my point ;) | ||
TimToady | rakudo: say int ~~ Object | ||
p6eval | rakudo a197d2: OUTPUT«0» | ||
TimToady | there's the problem | 18:46 | |
ruoso | pugs: say int ~~ Object | ||
jnthn | ruoso: So does Pugs because IIRC it doesn't enforce type checks. ;-) | ||
p6eval | pugs: OUTPUT«***  Unexpected "~~" at /tmp/ZnUIFPUdL9 line 1, column 9» | ||
jnthn | rakudo: say int.WHAT | ||
p6eval | rakudo a197d2: OUTPUT«No applicable methods.current instr.: '_block14' pc 59 (EVAL_16:38)» | ||
ruoso | pugs: say int.does(Object) | ||
p6eval | pugs: OUTPUT«1» | ||
jnthn | rakudo: say int(42.5) | ||
TimToady | couldn't we just replace most of those long rakudo messages with "Huh?"... | ||
p6eval | rakudo a197d2: OUTPUT«42» | ||
ruoso | pugs: say int.does(Any) | 18:47 | |
p6eval | pugs: OUTPUT«1» | ||
ruoso | hmm... | ||
jnthn | Ah, some "int" built-in is getting in the way. | ||
ruoso: I'd expect int to do Any too. | |||
TimToady | hmm | ||
ruoso | right... | ||
it's junction that wouldn't do Any | |||
jnthn | Right. | ||
TimToady | we're going to have to outlaw "int $x" | 18:48 | |
ruoso | why? | ||
TimToady | if int is a type, it doesn't look for a following arg | ||
so it's 2 terms in a row | |||
int($x) would be okay | |||
ruoso | ah... | ||
TimToady | as would Int($x) | 18:49 | |
ruoso | for one second I thought you were talking about "int $x" in "my int $x" | ||
wolverian | TimToady: do you have time to convince me allowing composing classes to override role methods implicitly is a good idea? | ||
TimToady | er, because I said so? :P | ||
wolverian | well, have you convinced yourself? :) | 18:50 | |
ruoso | what does you mean by "composing classes"/ | ||
jnthn | wolverian: It's the way you resolve conflicts. | ||
ruoso | we usually use the term "composing roles" or "inheriting classes" | ||
wolverian | ruoso: the class composing the role(s) into itself | ||
jnthn: right, but you can then accidentally override a method you didn't mean to override. | |||
ruoso | er... | 18:51 | |
how do you accidentally write a method? | |||
TimToady | the methods you find in a role should only be considered canonical interfaces, but the implementations are only suggestions | ||
wolverian | ruoso: role Foo { method bar { ... } } class Quux does Foo { method bar { ... } } # but I didn't remember Foo has a method bar | ||
TimToady | anyway, gotto go eat lunch... | 18:52 | |
bbl & | |||
ruoso | wolverian, the point is that roles shouldn't include methods that are not crucial to its API | ||
wolverian | TimToady: okay, I'm fine with Perl 6 not requiring explicit overriding, it's just that many languages have moved to requiring the explicit marking, or at least finding it useful. | ||
ruoso | that's what private methods and lexical subs are for | ||
wolverian | yeah. | ||
I still prefer e.g. scala's "override def bar = ..." | 18:53 | ||
ruoso | wolverian, but roles are also supposed to be the way to implement interfaces | ||
so that would require too many "override" definitions | |||
wolverian | if there is no implementation you're not overriding anything | ||
ruoso | roles are interfaces with a default implementation | ||
wolverian | (no implementation in the role) | ||
ruoso | but the methods are there... | ||
wolverian | but they have no bodies... | 18:54 | |
ruoso | and it can be considered a compile-time warning if that is not overridend | ||
s/warning/error/ | 18:55 | ||
wolverian | I'm talking about the other situation | ||
where you have a default implementation and you accidentally override it | |||
ruoso | I see, but... | ||
wolverian | that's why scala requires you to mark the overriding method with "override", but _only_ if there is a default implementation in the trait | ||
ruoso | the cool thing about roles is that they don't need to be complete | ||
so you only have the methods that define the API | 18:56 | ||
if you don't know the API, that's another story | |||
wolverian | as in scala. so you think scala is uselessly verbose here? | ||
I can understand that. :) | |||
ruoso | does scala support roles? | ||
wolverian | yes, but it calls them traits. | ||
ruoso | or does it only support classes? | ||
wolverian | (as in the original paper.) | ||
trait Foo { def bar: Int = 3 / } class Quux extends Foo { def bar = 2 } | 18:57 | ||
er. | |||
trait Foo { def bar: Int = 3 /* notice the default impl */ } class Quux extends Foo { def bar = 2 } // This fails at compile time | |||
18:57
Diederich-HireMe left
|
|||
wolverian | because of the lack of 'override' on Quux.bar | 18:57 | |
trait Foo { def bar: Int /* no default */ } class Quux extends Foo { def bar = 2 } // This compiles and runs correctly | 18:58 | ||
trait Foo { def bar: Int = 3 /* notice the default impl */ } class Quux extends Foo { override def bar = 2 } // This also works, notice the 'override' | |||
I'm fine with not requiring the override in perl6, I'm just wondering if that decision should be explained, given that some languages do require it | 18:59 | ||
ruoso | is that required for overriding regular class methods ? | ||
wolverian | I also would personally like the override. | ||
ruoso: yes. | |||
ruoso | ok, in that case, the explanation is simply " TimToady said so... " | 19:00 | |
because it's really a design issue ;) | |||
wolverian | fine. :) | ||
I suppose it is. thanks. | |||
ruoso | you can't actually tell which one is better | ||
it's just a choice | |||
but... | |||
wolverian | well, the scala requirement gives some additional checks at the cost of more typing. | ||
wolverian shrugs | |||
ruoso | I must say that traits in scala are not really the same as roles | ||
as the class simply inherits from it | 19:01 | ||
"to compose" is a different process than "to inherit" | |||
19:01
PZt joined
|
|||
ruoso | the methods and attributes from the role are actually installed as if they were declared in that class | 19:02 | |
wolverian | what makes you think scala uses inheritance for them? | ||
from Programming in Scala: " Scala programmers “mix in” traits rather than | 19:03 | ||
inherit from them, because mixing in a trait has important differences from | |||
the multiple inheritance found in many other languages. | |||
ugh. sorry. | |||
szabgab | does anyone here know how to build a new version of Syntax::Highlight::Perl6 ? | ||
wolverian | composing two roles with the same methods will fail at compile time if both methods have default implementations | 19:04 | |
I think that matches the perl6 behaviour. | |||
ruoso | wolverian, sorry the term "extends" mislead me to think that | ||
wolverian | yeah, it is misleading. | ||
pugs_svn | r25890 | lwall++ | kill off int as a prefix operator to avoid confusion with the type name | ||
wolverian | to compose additional roles, you say "class Foo extends Bar with Baz with ...", which is kind of natural, but I have no idea why the syntax doesn't allow "class Foo with Bar ..." :) | 19:05 | |
the first trait *must* be given with 'extends'. scala is full of weird stuff like that, somewhat like non-modern perl5 ;) | |||
19:08
jferrero left
|
|||
ruoso | TimToady, "int is a type name now"... er... wasn't it always that way? | 19:11 | |
19:14
Ariens_Hyperion joined
|
|||
TimToady | ruoso: not in Perl 5... | 19:15 | |
ruoso | ah | 19:16 | |
o | |||
k | |||
19:19
FurnaceBoy joined
19:20
pmurias joined
|
|||
[particle]1 | socghop.appspot.com/program/accepte...e/gsoc2009 | 19:22 | |
ruoso | TimToady, is it ok for me to assume "junction" instead of "Junction" for SMOP? | 19:26 | |
or are you still pondering about it | |||
19:27
maerzhase1 left
|
|||
TimToady | go ahead, I guess--can't think of any reason not to | 19:31 | |
jnthn mumbles about another thing he has to now change | 19:32 | ||
Thankfully a small one. | |||
ruoso | TimToady, cool... that means SMOP will support junctions sooner, since it can be implemented in C | 19:34 | |
19:39
aindilis` left,
aindilis` joined
|
|||
ruoso | TimToady, in the same issue of deciding if some types are native or not... we once talked about capture becoming a native type as well but that never made into the spec... I'd argue that native capture will improve dispatching speed a lot, and will simplify a lot of things... | 19:44 | |
pugs_svn | r25891 | lwall++ | junctions are now considered a native type with private eigenstates | 19:46 | |
19:47
maerzhase joined
|
|||
szabgab | I have a speed questions | 19:47 | |
$line.split(/\|/) is very slow | |||
pugs_svn | r25892 | ruoso++ | [re-smop] solve the last circular dependencies by defining two new modules... nagc: native-types garbage collector (doesnt call DESTROYALL as a method) and lost: LOwlevel-STate machine, which implements a simple way of writing C code that doesnt recurse in the C stack. | 19:48 | |
szabgab | when the $line has 20 pipe separated parts it is much slower than the IO, reading the line from a file | ||
is that "normal" ? | |||
on a file with 1000 lines it is 4 sec compared to 40 sec (both including start-up time) | 19:51 | ||
19:51
DemoPhreak joined
19:53
DemoPhreak is now known as DemoFreak
|
|||
ruoso | pmurias, please take a look at r25892... | 19:54 | |
pmurias | ruoso: do we need junction to be written in C? | 19:55 | |
ruoso | pmurias, being written in C or not is not actually the most important... but they no longer need to be p6opaque | 19:56 | |
which means that the implementation in smop level already suffices for the high-level | |||
it doesn't need to be replaced by a full-blown Perl 6 type | 19:57 | ||
as Hash, Array and others | |||
pmurias | i'm not sure that having lost as an array of function pointers as opposed to a switch is a good idea | 19:58 | |
ruoso | I don't actually have a strong opinion about it | ||
I just want to mean that it is simplified to the C level | 19:59 | ||
disismt | Hi all. GSoC ideas page says "This year only Parrot internals will be sponsored (i.e. nothing in languages/*)." -- Nothing in languages, what does that mean? | ||
ruoso | disismt, that no other parrot languages will be sponsored... but notice that rakudo has a slot on its own | ||
pmurias, you can modify the text there to mean how you plan to implement ;) | 20:00 | ||
pmurias | i should be starting to write my own GSoC application... | 20:01 | |
disismt | ruoso: ok got it :) | ||
ruoso | that's a great idea | ||
pmurias | ruoso: i'm not sure what should i choose to work on during GSoC | 20:02 | |
ruoso | pmurias, btw... I was thinking that maybe we should change "#include <smop_base.h>" to "#include <smop/base.h>" | ||
pmurias, I think this refactoring should be over by GSoC time | 20:03 | ||
pmurias, so you could have a mildew-specific grant | |||
like getting some types bootstrapped... | |||
or solving the memory leaks (if the weak references doesn't solve it) | 20:04 | ||
pmurias, I'm planning to start nagc... unless you already started it... | 20:08 | ||
pugs_svn | r25893 | putter++ | [elfparse] rx updates to spec: alias op changed from ':=' to '='; word-based metachar-ness. Also: | 20:09 | |
r25893 | putter++ | t/rx_capture: fixed tests - some mob @ from positions were wrong. | |||
r25893 | putter++ | remains_of_Regexp_ModuleA.pm: fixed a quantifier-modifier parser bug, causing regressions (eg 'a*:'). Regressions accepted into baseline. | |||
r25893 | putter++ | README: dusting. emit5: dropped obsolete Regexp::Common dependency. | |||
r25893 | putter++ | IRx1_FromAST2_create.pl: additional p6 metachars, and a fix. | |||
pmurias | ruoso: feel free to start nagc | ||
ruoso | pmurias, btw... I think I found a name to the other gc | 20:10 | |
p6gc | |||
since it calls DESTROYALL | |||
which is defined by the Perl 6 spec | |||
pugs_svn | r25894 | pmurias++ | [re-smop] changed smop_*.h to smop/*.h | ||
r25895 | coke++ | Correct minor typo in metadata. | |||
r25895 | coke++ | (... unless that's Welsh, in which case my bad.) | |||
20:11
aindilis` left,
aindilis` joined
|
|||
pugs_svn | r25896 | ruoso++ | [re-smop] renames "gc" to "p6gc" | 20:11 | |
20:18
Diederich-HireMe joined
20:19
aindilis` left,
aindilis` joined
|
|||
pugs_svn | r25897 | putter++ | [elfparse] Parser3.pm: condition parse Match trees to look more like STD_blue's. Enables binops. 'say 3+2' now works. | 20:22 | |
20:30
mncharity joined
|
|||
mncharity | perl6-projects.org/ | nopaste: sial.org/pbot/perl6 | evalbot: 'perl6: say 3;' | irclog: irc.pugscode.org/ | ~280 days 'til Xmas | ||
TimToady | ruoso: at a guess, the capture native type does the Capture role, and so does Match, but Match is not derived from capture | 20:34 | |
20:34
wolverian joined
|
|||
ruoso | TimToady, hmmm... that means we have both a native and a non-native capture then | 20:34 | |
and the invocation should support both | |||
20:35
kidd joined
|
|||
mncharity | TimToady I note in passing that we don't have a 'sequence commit' rx op. We can commit a group, and individual (quantified) atoms, but not a sequence of atoms (one has to go through the sequence and add : to anything that can backtrack). The lack has always seemed to me odd, and encountering it again, I mention it. | 20:35 | |
mncharity reverts to not getting involved in p6 language design issues. | |||
20:38
aindilis` left
|
|||
jnthn | (perl6-projects)++ | 20:38 | |
mncharity | hmm, err, no. "one has to go through the sequence and add : to anything that can backtrack" is wrong. | 20:39 | |
TimToady | are you asking about :ratchet? | ||
mncharity | no... for example, | 20:40 | |
[ a+ b+ X c || a b ] where X is a sequence commit op. so, | 20:41 | ||
TimToady | [a+ b+]: | ||
what semantics do you want there | 20:42 | ||
mncharity | re [a+ b+]: , ah, ok. :) that will do it. | ||
TimToady | you want it to try the || a b after, right? | 20:43 | |
mncharity | indeed. | ||
20:43
pmurias left
|
|||
TimToady | []: then | 20:43 | |
mncharity | yes. thanks! | ||
TimToady | np | ||
20:45
mberends joined,
justatheory joined
20:53
M_o_C left
|
|||
moritz_ | so how do I get the eigenstates of a Junction now? | 20:59 | |
ruoso | you don't | 21:00 | |
;) | |||
21:00
alester left
|
|||
ruoso | a junctino is not a set | 21:00 | |
moritz_ | is there a good reason to forbid it? | ||
ruoso | so people don't use junctions as sets | ||
moritz_ | I thought we'd adhere to the "your foot" principle | 21:01 | |
anyway, in terms of testing this is a disaster | |||
because it means that junctions can only be tested in a meaningful way when monkey patching is also implemented | 21:02 | ||
mncharity | TimToady/anyone: looking at current STD.pm, I'm puzzled on how statementlist matches " 3". if role foo { a } doesn't mean regex foo { <.ws> a }, I'm missing where the <.ws> is coming from. Context: token block {... '{' ~ '}' <statementlist> } | ||
ruoso | moritz_, you can always test the individual values in bool operations | 21:03 | |
TimToady | mncharity: statementlist is a rule, not a token | ||
ruoso later & | |||
moritz_ | ruoso: that's *much* more verbose than .eigenstates.sort.join('|') | ||
21:03
ruoso left
|
|||
TimToady | maybe junction trusts Test :) | 21:04 | |
moritz_ | remind me, how many implementations do trust relations? | ||
mncharity | s/role/rule/. so rule foo { a } == regex foo { <.ws> a } I gather. ok, hmm... | ||
21:05
kst` is now known as kst
|
|||
TimToady | well, the point is that we're designing the language for the users, not the testers, and the users were fast in the process of turning it into a faq | 21:05 | |
moritz_ | ok, so now the FAQ will read "how do I get the eigenstates?" | ||
TimToady | I don't care if Test cheats all over the place | ||
and the answer will be, "use Sets" | |||
moritz_ | and sets autothread? | 21:06 | |
TimToady | they do if you put them inside an any() | ||
a set in list context just returns its elements | |||
and any provides a list context | 21:07 | ||
'sides, I've already offended just about everyone else around here--it was your turn :) | |||
moritz_ | ;-) | ||
frioux looks forward to being offended by Larry Wall | |||
moritz_ | (going meta)++ | ||
TimToady | yes, well, going meta can also be used to escalate--, I've noticed... :) | 21:08 | |
moritz_ shouldn't comment further on the topic before having had a good deal of sleep first | |||
TimToady | I'm sure we can work something out, if only by saying here's a method, but you don't see it | 21:09 | |
I just wanted to make a point about the relationship of junctions to people who lead unexamined lives | |||
moritz_ | maybe I just need to write the universal "are these junctions identical" sub | ||
TimToady | or just dig through the reflectoin api to turn the private method into a sub ref :) | 21:10 | |
s/oi/io/ | |||
moritz_ | anothing thing... can you query the type (any|all|none|one) of a junction somehow? | ||
*another | |||
21:11
sahadev joined
|
|||
TimToady | I don't mind providing low-level HERE_BE_DRAGONS primitives to access junction internals | 21:11 | |
we know we need low-level stringify for instance | |||
moritz_ | .eigen-HERE-BE-DRAGON-states ;-) | 21:12 | |
TimToady | or print will get into an infinite regress calling Str($j) | ||
21:12
ejs left
|
|||
TimToady | there have to be some fundamental 'only' subs down at the bottom somewhere, I expect | 21:13 | |
[particle]1 | what would any/all/none/one be named, direction? | ||
TimToady | something like quantitative assertions, only shorter | 21:14 | |
moritz_ | "collapse type" | ||
TimToady | entanglements | ||
moritz_ misses the smiley on TimToady's last suggestion ;-) | 21:15 | ||
TimToady | "I don't know what these particles' polarization is, but I do know they're out of phase..." | ||
[particle]1 | i like entanglements | ||
TimToady | I was thinking of you particularly | ||
moritz_ | but it's not good from the physical analogy | 21:16 | |
[particle]1 | it's properly huffmanized, too :) | ||
TimToady | observations, maybe | ||
21:16
grwi joined
|
|||
moritz_ | better | 21:16 | |
[particle]1 | then i'd expect the velocity to change | ||
...though i wouldn't know it. | 21:17 | ||
moritz_ | velocity? wrong abstraction layer, I think | ||
[particle]1 | well, if i observe position, i don't know velocity, or acceleration | ||
TimToady | measurements... | ||
[particle]1 | wavefunction? | 21:18 | |
moritz_ | speaking of testing... I slowly feel that I've lost overview over which spec changes need to be ported to the test suite | 21:19 | |
TimToady | some of that I check with STD | 21:20 | |
[particle]1 | eigenbasis doesn't quite fit, does it. sounds nice, though. | ||
TimToady | I think s/Junction/junction/ is the main outstanding issue at the moment, at least where we're not using Junction as a role name | 21:21 | |
but if it is a role, then there's no big rush, since Junction will stay syntactically legal at least | |||
[particle]1 | moritz: in the early days of pge, i put the version of S05 in the test file comments, so i knew how much needed to be reviewed. | ||
moritz_ | the ones that fit from a physics POV measurement, collapse and observation are the most accurate ones | ||
TimToady | there's probably some $() to .ast damage in there somewhere | ||
moritz_ can't type straight anymore | 21:22 | ||
TimToady | s/observation/view/ maybe | ||
21:22
sahadev left
|
|||
TimToady | "look" | 21:22 | |
[particle]1 | TimToady: i'm really looking forward to sequential access to match data | ||
moritz_ | TimToady: don't think so, $() and make() rarely occur in the test suite | ||
[particle]1 | that's a long-requested item for compiler-writers | ||
TimToady | [particle]: indeed, that's one of the reasons it's there | 21:23 | |
[particle]1 | $() occurs in parrot-based compilers much more than in p6spectests | ||
TimToady | some would argue that should be the default %() meaning, but I expect .tokens is good enough | ||
if .tokens returns only the captured bits, what is the name of the method that includes the noise in between | |||
[particle]1 | ah. i wondered what the syntax would be. .tokens or .submatches or .rules i could get used to | 21:24 | |
TimToady | .lexemes seems a bit harsh :) | ||
moritz_ | that sounds like a disease ;-) | ||
TimToady | actually, Match.comb almost works for the tokens-only | 21:25 | |
21:26
ejs joined
|
|||
TimToady | Match.split would be the whitespace, and Match.split Z Match.comb would give you both :) | 21:26 | |
pugs_svn | r25898 | putter++ | [elfparse] Add a leading RxASpace to rules. std.pm: unpod block. | ||
TimToady | Match.chunks maybe | 21:27 | |
actually, I could argue that Match.split returns everything, and match.comb just the good bits | 21:28 | ||
[particle]1 | Match.sticks | ||
TimToady | but I think .chunks and .tokens is probably better | ||
since Match can be used in string context, so they might just want a resplit or recomb | 21:29 | ||
not to be confused with a combover | |||
[particle]1 | or a weave | ||
TimToady | .bits and .goodbits :) | 21:30 | |
bad huffman though | |||
[particle]1 | .kibbles and .bits | ||
.form and .anti-form | 21:31 | ||
21:34
amoc joined
|
|||
pugs_svn | r25899 | moritz++ | [t/TASKS] lists of spec changes that need to be ported to the test suite | 21:35 | |
pasteling | "yrlnry" at 158.130.70.56 pasted "intersecting two arrays" (18 lines, 336B) at sial.org/pbot/35607 | 21:48 | |
21:49
ejs left,
dalek left,
dalek joined
|
|||
szabgab | rakudo: "anc;ed".split(";") | 21:50 | |
p6eval | rakudo a197d2: RESULT«["anc", "ed"]» | ||
szabgab | rakudo: split("anc;ed", ";") | ||
p6eval | rakudo a197d2: RESULT«[";"]» | ||
pasteling | "yrlnry" at 158.130.70.56 pasted "intersecting two arrays" (25 lines, 465B) at sial.org/pbot/35608 | 21:51 | |
szabgab | is that a rakudo bug or a sign that I should go to sleep ? | ||
jnthn | moritz_: For test - don't worry, I can make eigenstates not go away too soon. ;-) | ||
[particle]1 schools yrlnry | |||
jnthn | moritz_: At lesat, not until we have trusts...though I as of yet have no idea how to implement trusts. | 21:52 | |
(Also, having just put in yesterday .eigenstates on Object and it now looks like i need to rip that out again, I'm not really motivated to chase the spec too closely on this stuff...) | 21:53 | ||
(Of course, anyone who is more motivated than me can...) | |||
moritz_ | jnthn: yes, give it some slack... | ||
jnthn | I suspect at most I'll alias junction to Junction too. | 21:54 | |
To give people a migration path. | |||
If they indeed need one. | |||
(That is, if Junction will be wrong.) | |||
moritz_ | I don't know about "they", but I'd appreciate one | ||
[particle]1 | jnthn: yesterday i thought about adding .rob to nqp | 21:55 | |
now it's .ast | |||
jnthn | [particle]1: See, the good thing is that you just thought about it. ;-) | ||
moritz_ | I've .ast in src/settings/Match.pm | ||
jnthn | Hmm. I hope Junction (uppercase) can perhaps stay as a role done by (lowercase) junction | 21:56 | |
(first-upper) | |||
[particle]1 | moritz_++ # now do nqp ;) | ||
jnthn | Otherwise I have the fun of explaining to people why to write Object / Any (or show what Any is, anyway) but then to write junction when explaining auto-threading. | ||
moritz_: Bit troubled about the sub foo(0) { } syntax after your post...good catch. | 21:58 | ||
dalek | kudo: f8b6aee | (Moritz Lenz)++ | src/setting/Match.pm: implement Match.ast |
22:00 | |
pugs_svn | r25900 | moritz++ | [t/TASKS] more updates | ||
22:01
Exodist left
22:04
nihiliad left
|
|||
jnthn | moritz_: Ah, see follow-up I just sent to the list...we can improve it after all I think. | 22:04 | |
moritz_ | jnthn++ nice idea | 22:13 | |
22:21
hercynium left
|
|||
amoc | rakudo: [split("ab;c;", ";"), "ab;c;".split(";")] | 22:22 | |
p6eval | rakudo f8b6ae: RESULT«[";", "ab", "c", ""]» | ||
jnthn | Probably will have my catch-up Rakudo day (second this week, since I was away at start of month) on Friday. | 22:23 | |
amoc | rakudo: split(";", "ab;c;") | ||
p6eval | rakudo f8b6ae: RESULT«["ab", "c", ""]» | ||
22:29
skids left
22:46
mberends left
22:48
maerzhase left
|
|||
sri_kraih | is there a public repo for the Web.pm thingy? | 22:52 | |
22:52
ruoso joined
|
|||
moritz_ | sri_kraih: github.com/masak/web/tree/master | 22:52 | |
sri_kraih | moritz++ | 22:53 | |
ruoso back | 22:54 | ||
22:54
|jedai| left
22:55
|jedai| joined
|
|||
moritz_ | rakudo: my $c = { [+] @_ }; say $c(2, 3, 4) | 22:56 | |
p6eval | rakudo f8b6ae: OUTPUT«7» | ||
amoc | oh? | 22:58 | |
moritz_ | oh! ;-) | ||
22:58
DemoPhreak joined
|
|||
amoc | moritz_: could you please explain why $c(2,3,4) prints 7 ? | 22:59 | |
moritz_ | amoc: $c is closure that expects any number of arguments, and the arguments are stored in @_ | ||
amoc: and [+] @list is short for @list[0] + @list[1] + @list[2] + ... | 23:00 | ||
oh. | |||
mncharity | lol | ||
amoc | but 2+3+4 is 9 isn't it? | ||
moritz_ | and it should print 9, right? | ||
yes. | |||
oh! | |||
jnthn | std: multi sub fib (0|1) { return @_[0] | ||
} | |||
p6eval | std 25900: OUTPUT«##### PARSE FAILED #####Malformed multiMalformed routineMalformed routineUnable to parse multisig; couldn't find final ')' at /tmp/mCkPsMagbX line 1:------> multi sub fib (0|1) { return @_[0] expecting any of: param_sep parameter | ||
..post_constraint trait ... | |||
amoc | rakudo: my $c = { say @_ }; say $c(2,3,4) | ||
jnthn | std: multi sub fib (0|1) { return @_[0] } | ||
p6eval | rakudo f8b6ae: OUTPUT«341» | 23:01 | |
std 25900: OUTPUT«##### PARSE FAILED #####Malformed multiMalformed routineMalformed routineUnable to parse multisig; couldn't find final ')' at /tmp/Ewqdakx8jF line 1:------> multi sub fib (0|1) { return @_[0] } expecting any of: param_sep parameter | |||
..post_constraint trait... | |||
moritz_ | so it seems to get only the last two | ||
rakudo: my $c = { say @_.perl }; $c(2, 3, 4, 5) | |||
p6eval | rakudo f8b6ae: OUTPUT«[3, 4, 5]» | ||
amoc | '~'..?! | ||
moritz_ | rakudo: my $c = { say $_; say @_.perl }; $c(2, 3, 4, 5) | ||
p6eval | rakudo f8b6ae: OUTPUT«2[3, 4, 5]» | ||
amoc | is that by design? | 23:02 | |
moritz_ | so the first argument is used up for $_ even if it's not used in the block | ||
sri_kraih | anyone know if there's a Web.pm channel too? | ||
moritz_ | amoc: don't think so... jnthn? | ||
sri_kraih: it's discussed on #november-wiki | |||
jnthn | moritz_: I can't think of an applicable bit of the design that makes that right... | ||
pugs_svn | r25901 | putter++ | [elfparse] std.pm: more unpodding. | 23:03 | |
sri_kraih | moritz++ | ||
jnthn | moritz_: I suspect we may be right in letting $_ be 2, but I think @_ should probably still contain it also... | ||
moritz_ | jnthn: aye | ||
jnthn | Hmm...do we always have to build @_, even in signatured blocks? | 23:04 | |
moritz_ | no | ||
jnthn | OK, good. | ||
moritz_ | at least for subs it's only build if there's no signature | ||
moritz_ has *very* evil idea | |||
jnthn | uh-oh. | ||
moritz_ | let's see if rakudo can handle closures in .ast's | 23:05 | |
23:05
mncharity left
|
|||
moritz_ | anyway, I should open a ticket for that... | 23:05 | |
jnthn | yes | 23:06 | |
moritz_ | it seems I still haven't grokked the way match objects are structured | 23:08 | |
23:12
DemoFreak left
|
|||
moritz_ | nopaste.snit.ch/15913 | 23:13 | |
wtf does it even enter the for @() { ... } loop? | |||
rule expr { <value> ( <op> <value> )* {*} } | 23:14 | ||
matches '8' | |||
... through the first <value>, I hope | |||
but then the ( <op> <value> ) part should match zero times, no? | |||
jnthn | moritz_: Looking | 23:20 | |
moritz_: what if you say $_.text rather than $_.perl out of curiosity? | |||
moritz_ | jnthn: 8 | 23:21 | |
jnthn | moritz_: OK, I'm surprised. I think @() is maybe doing the Wrong Thing here. | 23:23 | |
s1n | frooh: what's up? | ||
jnthn | moritz_: What does for $/.list { ... } give you? | ||
moritz_ | jnthn: it still enters the loop, but then dies with "Null PMC access in get_bool()" | 23:24 | |
jnthn | fail | ||
moritz_: OK, I'll just share your surprise at the behavior, but not got much more insight to add, other than "ask pmichaud". | 23:25 | ||
moritz_ | jnthn: ok. I'll try to reduce it a bit more, and make it an RT ticket | ||
jnthn | Thanks. | ||
moritz_ | rakudo: token v { \d+ }; '123' ~~ /<v> (<v>)*/; say "FAIL" for @(); say "alive"; | 23:27 | |
p6eval | rakudo f8b6ae: OUTPUT«alive» | ||
moritz_ | ok, it's not *that* simple | ||
rakudo: grammar A { token TOP { ^ <a> $ }; rule a { \d ( A )* {*} }}; A.parse('2'); for @($<a>) { say "FAIL" }; say "alive"; | 23:35 | ||
p6eval | rakudo f8b6ae: OUTPUT«alive» | ||
23:35
skids joined
|
|||
moritz_ | rakudo: grammar A { token TOP { ^ <a> $ }; rule a { \d ( A )* {*} }}; A.parse('2'); my $m = $<a>; for @($m) { say "FAIL" }; say "alive"; | 23:37 | |
p6eval | rakudo f8b6ae: OUTPUT«FAILalive» | ||
moritz_ | that's where the bug appears | 23:38 | |
23:38
Diederich-HireMe left
23:45
hudnix joined
|
|||
jnthn | ah, nice concise example | 23:45 | |
moritz_ | I think I've got an idea what's going on | 23:46 | |
@($stuff) seems to call $stuff.list | |||
lambdabot | Unknown command, try @list | ||
moritz_ | and there seems to be an instance where $stuff is not a Match object, so it'll return itself | ||
something like one proxying step that should proxy the .list method, but doesn't | 23:47 | ||
rakudo: grammar A { token TOP { ^ <a> $ }; rule a { \d ( A )* {*} }}; A.parse('2'); my $m = $<a>; say $m.PARROT | |||
p6eval | rakudo f8b6ae: OUTPUT«Perl6Scalar->A» | 23:48 | |
moritz_ | rakudo: grammar A { token TOP { ^ <a> $ }; rule a { \d ( A )* {*} }}; A.parse('2'); say $/.PARROT | ||
p6eval | rakudo f8b6ae: OUTPUT«A» | ||
moritz_ | ah, that's the difference | ||
another hour destroyed by a rakudobug... *sigh* | 23:52 |