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 declarator␤FAILED 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" declaration␤Malformed "multi" definition␤Malformed 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 expected␤current 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 expected␤current 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 i␤current 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 multi␤Malformed routine␤Malformed routine␤Unable 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«34␤1␤» 23:01
std 25900: OUTPUT«##### PARSE FAILED #####␤Malformed multi␤Malformed routine␤Malformed routine␤Unable 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«FAIL␤alive␤»
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