Perl 6 - the future is here, just unevenly distributed

IRC log for #perl6, 2010-03-14

Perl 6 | Reference Documentation | Rakudo

| Channels | #perl6 index | Today | | Search | Google Search | Plain-Text | summary

All times shown according to UTC.

Time Nick Message
00:06 pugssvn r30065 | Darren_Duncan++ | the '%','mod' are the 'modulo' op; 'modulus' is either what you call the result besides 'remainder', or it is another name for 'absolute value' op
00:14 sorear Tene: Here's my take - if your $LANGUAGE is insufficiently Parrot-like to handle arbitrary PMCs thrown at it, it should provide an overriden 'import' that can take outside PMCs and coerce them into the most appropriate local object, possibly creating a proxy for things with state
00:14 sorear Tene: note that get_exports needs to do the same thing, for contravariant types
00:15 sorear Tene: if possible, said language should provide pragmata for controlling how it munges Parrot data
00:16 sorear Tene: see http://github.com/jnthn/blizkost/raw/1dd01ce0d​e16c9451f5d7c338524dbfee4754762/docs/SEMANTICS
00:17 sorear Tene: that's what I'm going to do for Perl 5... you cannot take an arbitrary PMC and make it look like a SV, so I've had to make up a few rules.
00:19 sorear Unrelatedly, I wonder if there would be a market for a Perl5 on Parrot implementation that can't handle XS (but could use Parrot and Perl6 libs)
00:21 jnthn sorear: Thing is, CPAN is of epic importance, and a decent bit of it relies on XS.
00:22 jnthn Either directly or indirectly.
00:22 jnthn That's why I wanted to go the "embed Perl 5" route with Blizkost'.
00:22 sorear yes
00:22 sorear Blizkost is our only hope for *direct* XS users
00:23 jnthn uh, Blízkosť, I mean, of course. :-)
00:23 sorear but a lot of Perl 5 modules that use XS directly, are actually small little things that could be reimplemented in terms of Parrot
00:24 jnthn That's quite possible.
00:24 TimToady in any case, p6 needs a p5 parser built in so that it can find the extent of p5 code, even if it ends up feeding it off to the p5 interpreter
00:24 sorear then there's big stuff like DBI and POE that use XS for performance hacks, but I'm sure other people will port those
00:24 jnthn TimToady: If you're embedding 5 in 6 or interleaving, sure.
00:25 sorear \o/ I just got a license to write Parse::Perl5
00:25 jnthn TimToady: I'm mostly hoping for being able to do a "use" of Perl 5 modules for Rakudo *.
00:25 TimToady that's also a good thing
00:25 jnthn Well
00:26 jnthn It's the one I think we have some vague chance of actually being successful with in the timeframe too :-)
00:27 TimToady I wasn't suggesting anyone other than me work on STD_P5  :)
00:27 jnthn Granted Zavolaj has somewhat calmed our immediate "omg no way to access databases in Perl 6" issues, so being able to use Perl 5 DBI isn't as absolutely critical as I first expected, but it's still nice, and there's the rest of CPAN of course. :-)
00:28 jnthn .oO( One day I might start a project and give it an English name... )
00:30 sorear One day I might start a project and finish it.
00:33 TimToady mee2
00:34 TimToady viv was supposed to replace gimme5, but hasn't happened yet...
00:34 jnthn It's almost as if implementing Perl 6 is hard or something.
00:35 jnthn :-)
00:35 TimToady .oO(hard things should be possible)
00:47 jhuni joined #perl6
01:04 spinclad .oO(impossible things should be before breakfast)
01:07 pugssvn r30066 | lwall++ | [STD] allow for the fact that ambiguous use of . probably indicates p5-think, not missing method parens
01:36 jaldhar joined #perl6
02:07 brushie joined #perl6
02:48 TimToady std: my @%a = (1, (2, (3, 4)));
02:48 p6eval std 30066: OUTPUT«[31m===[0mSORRY![31m===[0m␤Invalid hard reference syntax at /tmp/pyJNqSN2CT line 1:␤------> [32mmy @[33m⏏[31m%a = (1, (2, (3, 4)));[0m␤    expecting any of:␤  desigilname␤      twigil␤FAILED 00:01 107m␤»
02:53 TimToady std: $_ .= 'string';
02:53 p6eval std 30066: OUTPUT«[31m===[0mSORRY![31m===[0m␤Unsupported use of . to concatenate strings or to call a quoted method; in Perl 6 please use ~ to concatenate, or if you meant to call a quoted method, please supply the required parentheses at /tmp/oPXbPZo4R5 line 1:␤------> [32m$_ .=
02:53 p6eval ..'string'[33m⏏…
02:56 colomon rakudo: $_ .= 'string';
02:56 p6eval rakudo 328227: OUTPUT«Quoted method name requires parenthesized arguments at line 11, near ";"␤current instr.: 'perl6;HLL;Grammar;panic' pc 500 (ext/nqp-rx/src/stage0/HLL-s0.pir:328)␤»
02:56 colomon LTA.
02:59 lue joined #perl6
03:00 lue ...not doing that again! :)
03:03 gfx joined #perl6
03:07 colomon TimToady: ping?
03:07 colomon rakudo: say 0 ?| Mu
03:07 p6eval rakudo 328227: OUTPUT«No applicable candidates found to dispatch to for 'infix:<?|>'. Available candidates are:␤:(Any $a, Any $b)␤␤current instr.: '_block14' pc 29 (EVAL_1:0)␤»
03:08 colomon rakudo: say 0 || Mu
03:08 p6eval rakudo 328227: OUTPUT«Mu()␤»
03:09 colomon rakudo: say Mu || 0
03:09 p6eval rakudo 328227: OUTPUT«0␤»
03:09 TimToady pang
03:09 lue Moo
03:10 colomon TimToady: should 0 ?| Mu work?  Right now it gripes because ?| is defined on Any, Any.
03:11 vamped joined #perl6
03:13 TimToady seems reasonable for it to fail
03:13 colomon rakudo: say ?Mu
03:13 p6eval rakudo 328227: OUTPUT«0␤»
03:14 colomon I will change the test to Any, then...
03:14 colomon rakudo: say 0 ?| Any
03:14 p6eval rakudo 328227: OUTPUT«0␤»
03:14 TimToady most failures should return a Failure, anyway
03:14 TimToady or Nil
03:14 TimToady Mu is more undef than undef :)
03:15 colomon :)
03:15 lue Aw, but I like cheese ( :D )
03:16 colomon rakudo: say 7 > any(4..12)
03:16 p6eval rakudo 328227: OUTPUT«maximum recursion depth exceeded␤current instr.: 'parrot;P6object;HOW' pc 54 (runtime/parrot/library/P6object.pir:98)␤»
03:17 TimToady rakudo: say 7 > any(4...12)
03:17 p6eval rakudo 328227: OUTPUT«maximum recursion depth exceeded␤current instr.: 'parrot;P6object;HOW' pc 54 (runtime/parrot/library/P6object.pir:98)␤»
03:17 TimToady rakudo: say 7 > any(4,5,6,7,8,9,10,11,12)
03:18 p6eval rakudo 328227: OUTPUT«maximum recursion depth exceeded␤current instr.: 'parrot;P6object;HOW' pc 54 (runtime/parrot/library/P6object.pir:98)␤»
03:18 * colomon is not going to learn how auto-threaded is implemented before going to bed tonight.
03:18 TimToady rakudo: say 7 > 4|5|6|7|8|9|10|11|12
03:19 p6eval rakudo 328227: OUTPUT«maximum recursion depth exceeded␤current instr.: 'parrot;P6object;HOW' pc 54 (runtime/parrot/library/P6object.pir:98)␤»
03:19 lue result: true (in my book)
03:19 TimToady rakudo: say "yes" if 7 > 4|5|6|7|8|9|10|11|12
03:19 p6eval rakudo 328227: OUTPUT«maximum recursion depth exceeded␤current instr.: 'parrot;P6object;HOW' pc 54 (runtime/parrot/library/P6object.pir:98)␤»
03:19 TimToady rakudo: say "yes" if 7 > 4
03:19 p6eval rakudo 328227: OUTPUT«yes␤»
03:19 TimToady rakudo: say "yes" if 7 > 4|5
03:19 p6eval rakudo 328227: OUTPUT«maximum recursion depth exceeded␤current instr.: 'parrot;P6object;HOW' pc 54 (runtime/parrot/library/P6object.pir:98)␤»
03:19 TimToady rakudo: say 4|5
03:19 p6eval rakudo 328227: OUTPUT«any(4, 5)␤»
03:20 lue That's is not what recursion is not that is not...!
03:20 TimToady rakudo: say "yes" if 7 == 4|5
03:20 p6eval rakudo 328227:  ( no output )
03:20 TimToady rakudo: say "yes" if 7 == 4|7
03:20 p6eval rakudo 328227: OUTPUT«yes␤»
03:20 TimToady rakudo: say "yes" if 7 == any(4..12)
03:20 p6eval rakudo 328227: OUTPUT«yes␤»
03:20 TimToady problem seems to be with >
03:21 lue rakudo: say "yes" if 7 > (4|5|6|7|8|9|10|11|12)
03:21 p6eval rakudo 328227: OUTPUT«maximum recursion depth exceeded␤current instr.: 'parrot;P6object;HOW' pc 54 (runtime/parrot/library/P6object.pir:98)␤»
03:21 TimToady rakudo: say "yes" if 7 >= any(4..12)
03:21 p6eval rakudo 328227: OUTPUT«maximum recursion depth exceeded␤current instr.: 'parrot;P6object;HOW' pc 54 (runtime/parrot/library/P6object.pir:98)␤»
03:21 TimToady rakudo: say "yes" if 7 <= any(4..12)
03:21 p6eval rakudo 328227: OUTPUT«maximum recursion depth exceeded␤current instr.: 'parrot;P6object;HOW' pc 54 (runtime/parrot/library/P6object.pir:98)␤»
03:22 TimToady rakudo: say "yes" if 7 <=> any(4..12)
03:22 p6eval rakudo 328227: OUTPUT«yes␤»
03:22 pugssvn r30067 | colomon++ | [t/spec] Refudge for Rakudo.
03:22 TimToady are the comparisons defined in Mu rather than Any?
03:23 lue what does <=> do? Does it mean less than, equal to, or greater than?
03:23 TimToady yes
03:23 TimToady so does leg
03:24 colomon TimToady: looking... they don't appear to be in operators.pm...
03:24 TimToady is > or < used in Junction?
03:24 hercynium joined #perl6
03:25 sorear does auto-threaded actually even exist yet?  seems like an odd priority for pre-R*
03:25 lue rakudo: say 3 <=> 4
03:25 TimToady it was in alpha
03:25 p6eval rakudo 328227: OUTPUT«-1␤»
03:25 lue rakudo: say 3 <=> Mu
03:25 p6eval rakudo 328227: OUTPUT«No applicable candidates found to dispatch to for 'infix:<<=>>'. Available candidates are:␤:(Any $a, Any $b)␤␤current instr.: '_block14' pc 29 (EVAL_1:0)␤»
03:25 lue rakudo: say 3 <=> Any
03:25 colomon sorear: it works for ==, as TimToady just showed...
03:25 p6eval rakudo 328227: OUTPUT«Use of type object as value␤current instr.: 'perl6;Perl6Exception;throw' pc 14489 (src/builtins/Seq.pir:77)␤»
03:25 TimToady alpha: say 7 > any(4..12)
03:25 p6eval alpha 30e0ed: OUTPUT«any(Bool::True, Bool::False)␤»
03:26 sorear colomon: Oh, so auto-threaded only means distribution over junctions
03:26 sorear I was taking it to imply actual parallel execution
03:26 colomon rakudo: say 7 == any(4..12)
03:26 p6eval rakudo 328227: OUTPUT«any(Bool::False, Bool::True)␤»
03:26 TimToady it can be parallel
03:27 colomon TimToady: I can't figure out where the comparisons are defined at all.
03:27 lue rakudo: my $boot=3; my $up=True; say $boot leg $up # Is there something I can fix? I'm bored :/
03:27 p6eval rakudo 328227: OUTPUT«1␤»
03:27 colomon (except for before and after, which I wrote.)
03:27 sorear What is alpha?
03:27 TimToady rakudo: say 7 after any(4..12)
03:27 colomon sorear: the first Rakudo
03:27 p6eval rakudo 328227: OUTPUT«any(Bool::True, Bool::False)␤»
03:28 TimToady you'll be please to know that your creation works righ
03:28 TimToady *pleased
03:28 colomon sorear: the current Rakudo is a major refactor of the original, and lots of bits still don't work.
03:28 sorear rakudo: if (7 == any(4 .. 12)) { say "Y" }  else { say "N" }
03:28 colomon on the other hand, lots of bits work better than before.
03:28 p6eval rakudo 328227: OUTPUT«Y␤»
03:28 sorear rakudo: if (7 != any(4 .. 12)) { say "Y" }  else { say "N" }
03:28 p6eval rakudo 328227: OUTPUT«Y␤»
03:29 colomon TimToady: before and after are declared Any, Any.
03:29 TimToady maybe > and < get turned into parrot codes
03:30 MAK_ joined #perl6
03:30 colomon TimToady: could be.  beyond my ken.
03:31 lisppaste3 MAK pasted "Num in context of reference" at http://paste.lisp.org/display/96351
03:32 MAK_ say didn't work as I expected
03:32 TimToady you don't say
03:32 TimToady sorry :)
03:32 colomon rakudo: my @a = 1..3; say "hello @a[1]"
03:32 p6eval rakudo 328227: OUTPUT«hello @a[1]␤»
03:32 dalek rakudo: fefb298 | (Solomon Foster)++ | t/spectest.data:
03:32 colomon that's NYI.
03:32 dalek rakudo: Turn on S03-operators/misc.t.
03:32 dalek rakudo: review: http://github.com/rakudo/rakudo/commit/f​efb298d86a4a98cade265ca6bec30411efb9c1a
03:33 colomon rakudo: my @a = 1..3; say "hello { @a[1] }"
03:33 p6eval rakudo 328227: OUTPUT«hello 2␤»
03:33 lue Is there anything critical that needs fixing? I hate lurking.
03:33 MAK_ ok
03:34 colomon afk # bed
03:36 lue bye o/
03:37 lue rakudo: my $a=1; say "hello there $a"
03:37 p6eval rakudo 328227: OUTPUT«hello there 1␤»
03:37 lue rakudo: my @a=[1,2,3]; say "hello there @a and to you too @a[1]"
03:37 p6eval rakudo 328227: OUTPUT«hello there @a and to you too @a[1]␤»
03:38 lue ah, so array don't interpolate AT ALL yet (what about hashes...)
03:38 lue rakudo: my %a={"hi",1,"oi",2}; say %a # making sure I typed this right...
03:38 p6eval rakudo 328227: OUTPUT«Odd number of elements found where hash expected␤current instr.: '&die' pc 16872 (src/builtins/Junction.pir:373)␤»
03:38 lue rakudo: my %a="hi",1,"oi",2; say %a # making sure I typed this right...
03:38 p6eval rakudo 328227: OUTPUT«hi 1␤oi      2␤␤»
03:39 lue rakudo: my %a="hi", 1, "oi", 2; say "Oh hello %a"
03:39 p6eval rakudo 328227: OUTPUT«Oh hello %a␤»
03:41 lue I guess everyone leaves with colomon. (Here TimToady, I has your cricket)
03:41 [particle] joined #perl6
03:42 TimToady tnx...tnx...tnx...tnx...
03:44 lue RED ALERT! Particle 1 has vanished. All units out to recover! </nonsense>
03:49 * lue considers fixing the interpolation issue...
04:07 lue http://xkcd.com/353/ this comic almost killed XKCD :) (read the title text)
04:12 * lue --not-here &
04:17 alester joined #perl6
04:29 silug joined #perl6
04:37 eternaleye joined #perl6
05:17 c1sung joined #perl6
06:18 molaf joined #perl6
06:28 wolf2k_ubuntu joined #perl6
07:17 colomon rakudo: say Mu // 42
07:17 p6eval rakudo fefb29: OUTPUT«42␤»
07:17 colomon rakudo: say 0 ^^ 42
07:17 p6eval rakudo fefb29: OUTPUT«42␤»
07:18 colomon rakudo: say 1 ^^ 42
07:18 p6eval rakudo fefb29: OUTPUT«␤»
07:22 k23z__ joined #perl6
07:22 k23z__ came to ask about set operations
07:22 k23z__ if we'll have them in p6
07:22 k23z__ I mean in the core
07:23 k23z__ now I have to use Set::Scalar in p5 to use them
07:23 k23z__ and they're written in pure Perl which makes them a bit slow ..
07:23 k23z__ so for example for size of intersection of 2 sets I do   (Set::Scalar->new(elements) * Set::Scalar->new(elements))->size
07:24 colomon There is a Set type specified for p6, but as I understand it, the details are still in doubt.
07:24 k23z__ this is .. ok , but we I've seen better things
07:24 k23z__ colomon: ah ok.. it would be very useful if it would be implemented ...
07:25 sorear How do I export a trait?
07:25 sorear use My::Module; class Foo { has $.moo is cool; }
07:27 colomon rakudo: say 0 ^^ 0
07:27 p6eval rakudo fefb29: OUTPUT«0␤»
07:29 pugssvn r30068 | colomon++ | [t/spec] Refudge, switch return 1 if to if { return 1 }.
07:33 dalek rakudo: 60f9b3b | (Solomon Foster)++ | t/spectest.data:
07:33 dalek rakudo: Move some S03-operators tests back into their proper location, delete duplicate, turn on S03-operators/short-circuit.t.
07:33 dalek rakudo: review: http://github.com/rakudo/rakudo/commit/6​0f9b3b6896cec21763620087c3db54a1fb21c5e
07:43 colomon rakudo: say 42 if 0
07:43 p6eval rakudo fefb29:  ( no output )
07:43 colomon rakudo: say (42 if 0)
07:43 p6eval rakudo fefb29: OUTPUT«␤»
07:44 colomon rakudo: say (42 if 0).WHAT
07:44 p6eval rakudo fefb29: OUTPUT«Parcel()␤»
07:44 pugssvn r30069 | colomon++ | [t/spec] Fudge out "return if" test.
07:50 dalek rakudo: 345f63d | (Solomon Foster)++ | t/spectest.data:
07:50 dalek rakudo: Turn on S04-statement-modifiers/if.t.
07:50 dalek rakudo: review: http://github.com/rakudo/rakudo/commit/3​45f63d9765fa5629276fc30f47463ad7a052e6a
07:56 jhuni rakudo: say [+] ^5;
07:56 p6eval rakudo fefb29: OUTPUT«Confused at line 11, near "say [+] ^5"␤current instr.: 'perl6;HLL;Grammar;panic' pc 500 (ext/nqp-rx/src/stage0/HLL-s0.pir:328)␤»
08:47 masak joined #perl6
08:47 masak good morning, #perl6
08:47 sorear hello
08:50 masak this Japanese twitterer who wants 'are' as a synonym of 'is'... is there some simple grammar-extending code snippet we could throw at him to give him that?
08:50 * masak tries to answer his own question by reading STD.pm
08:56 sorear While you're there, could you please tell me how to export a trait
08:56 masak not sure the answer to that is in STD.pm.
09:06 rgrau joined #perl6
09:07 iblechbot joined #perl6
09:18 k23z__ this STD.pm seems to be quite central , I should read it too
09:18 masak it's a good read.
09:20 masak in terms of the Perl 6 code out there, it's one of the most complex pieces of code, and it's virtually devoid of short-term workarounds due to implementation limitations.
09:22 eternaleye joined #perl6
09:31 mssm joined #perl6
09:35 k23z__ when I git pull on the rakudo
09:35 k23z__ how do I know if I have to recompile in order to get the new things added ?
09:35 k23z__ for example now I see this modifs
09:35 k23z__ build/PARROT_REVISION       |    2 +-
09:35 k23z__ src/Perl6/Actions.pm        |  121 +++++++++++++++++++++++++++++-------------
09:35 k23z__ src/Perl6/Grammar.pm        |   28 +++++++---
09:35 k23z__ src/Perl6/Module/Loader.pm  |   41 +++++++++++----
09:35 k23z__ src/Perl6/Module/Locator.pm |   15 ++++--
09:35 k23z__ src/core/Any-str.pm         |    6 ++-
09:35 k23z__ src/core/EnumMap.pm         |    7 ++-
09:35 k23z__ src/core/Num.pm             |   15 +++++
09:36 k23z__ src/core/Parcel.pm          |    2 +-
09:36 k23z__ src/core/Seq.pm             |   45 ++++++++++++++++
09:36 masak basically, if anything changed withing src/, you need to recompile.
09:36 k23z__ src/core/operators.pm       |   20 +++++++
09:36 k23z__ src/core/traits.pm          |    4 ++
09:36 k23z__ src/glue/dispatch.pir       |   27 ++++++++++
09:36 k23z__ src/pmc/p6opaque.pmc        |    3 +
09:36 k23z__ src/pmc/perl6multisub.pmc   |   63 ++++++++++++++++------
09:36 k23z__ t/spectest.data             |   47 +++++++++--------
09:36 masak k23z__: please don't paste large amounts of text on the channel.
09:36 k23z__ do the .pir or .pmc mean I need to recompile rakudo ?
09:36 k23z__ ah ok
09:36 k23z__ sorry
09:36 masak k23z__: use nopaste services for that, such as the ones in the topic.
09:37 masak k23z__: yes, any change within src/ means you very probably need to recompile Rakudo.
09:37 k23z__ can I open a socket currently in rakudo ?
09:37 jhuni joined #perl6
09:37 masak one used to be able to do that in alpha.
09:37 masak it doesn't work yet in master.
09:38 sorear no sockets?  I guess I'm going to be fixing that soon
09:39 sorear I have this wonderful knack for jumping in the deep end accidentally
09:39 masak yay
09:39 k23z__ sorear: if you do please let me know, I'd hack something with it
09:39 * sorear is trying to learn the perl 6 way by righting an IRC client
09:39 Trashlord joined #perl6
09:39 sorear writing
09:39 masak sorear: cool.
09:40 masak we need apps like that.
09:41 sorear well, it's also competing with bliznost for brain cycles
09:41 sorear do you still say cool? :)
09:41 k23z__ masak: if I hit    make now it says there's nothing to be done, although I have "git pull" before
09:42 masak sorear: I wouldn't dream of laying out your schedule for you :)
09:42 sorear when in doubt, git clean -dfx # read the documentation before running this
09:43 masak k23z__: what sorear said. also, it makes little sense, so one of us is missing something. :)
09:45 k23z__ hm
09:45 sorear masak: can you give me an example of perl 6 socket code?
09:46 k23z__ sorear: src/old/setting/IO/Socket/INET.pm ?
09:46 masak aye.
09:46 masak was just going to link to that: http://github.com/rakudo/raku​do/tree/alpha/src/setting/IO/
09:46 sorear k23z__: socket code, not socket implementation
09:47 masak oh.
09:47 k23z__ oh
09:47 masak well, there's Web.pm.
09:47 sorear I need to know exactly what's not working if I'm going to fix anything at all
09:47 k23z__ but I remember there was this wiki called november implemented in p6 , that surely needed to use some sockets sooner or later
09:47 masak sorear: http://github.com/masak/web/blob/ma​ster/lib/Web/Handler/HTTPDaemon.pm
09:48 masak I should probably link to the HTTP::Daemon code as well...
09:49 masak http://gitorious.org/http-daemon/main​line/blobs/master/lib/HTTP/Daemon.pm
09:49 sorear So why is there lots of setting stuff in old?
09:49 * sorear is really, really new here
09:49 z3ndrag0n joined #perl6
09:49 masak sorear: the old/ directory contains alpha code.
09:50 masak I'm actually not sure what prompted people to keep it around in the new branch.
09:50 masak then again, I can sometimes be a purist, and I don't always see the pragmatic reasons for things.
09:50 Su-Shee joined #perl6
09:50 sorear When did rakudo cease being alpha?
09:51 masak sorear: a week or so after the January release, I believe.
09:52 sorear oh
09:52 sorear right
09:52 sorear ng
09:52 sorear now I just need to figure out what's wrong
09:53 sorear I guess ng doesn't support a setting?
09:57 masak it does. but it calls it CORE instead.
10:04 sorear where is it kept?
10:04 masak http://github.com/rakudo/ra​kudo/tree/master/src/core/
10:05 araujo guys, pugs was abandoned?
10:05 masak araujo: no, but the air went out of its one single implementor.
10:05 sorear that's exactly the same thing
10:06 araujo :P
10:06 masak unless you count 'abandon' as a conscious, deliberate act.
10:07 masak I don't think anyone wanted Pugs to slow down to a halt, implementation-wise.
10:07 masak it just happened.
10:07 araujo I see I see, ok
10:11 sorear Is it possible for me to modify the setting without rebootstrapping Rakudo?
10:11 k23z__ sorear: what you suggested is equivalent to    make clean ; make
10:11 sorear no
10:11 k23z__ sorear: which is ok but it takes the time of a build from scratch ...
10:11 k23z__ sorear: it's not ?
10:11 k23z__ hm
10:11 sorear make clean is unreliable
10:11 sorear you should always expect it to not work
10:12 sorear because, quite simply, it never gets tested
10:12 k23z__ ah ok, I was just trying to say it's building from scratch now
10:12 masak sorear: if by 'rebootstrapping' you mean 'rebuilding', then no.
10:12 k23z__ sorear: I was hoping for incremental builds
10:12 k23z__ sorear: would that be possible ?
10:12 sorear k23z__: don't ask me
10:12 masak k23z__: usually, that's what make does.
10:13 sorear wait, nevermind, there's no way what I asked for is even possible
10:13 zoi joined #perl6
10:13 masak :)
10:13 sorear parrot perl6.pbc src/gen/core.pm > src/gen/core.pbc # this command takes 12 hours on my machine, I'd *love* it if it could be broken up somehow
10:14 k23z__ hey sorry
10:14 masak sorear: you don't have much RAM, do you?
10:15 k23z__ if parrot had something like distcc ...
10:15 k23z__ and you had a build farm
10:15 sorear core.pm build has a VMSIZ of ~400MB, I have 384MB of RAM
10:15 sorear if there were some magic parrot --use-10%-less-ram switch I'd be set
10:16 k23z__ sorear: use swap on disk ?
10:16 sorear or if I could somehow figure out why rakudo uses so much ram
10:16 sorear k23z__: I *do* use swap on disk.  If I were using swap on network I would know exactly what was wrong
10:17 masak sorear: it's taking so long because you have so little RAM. if you'd get more, it would go faster.
10:17 masak building Rakudo easily gobbles up 1024MB. probably a lot more.
10:18 masak the memory consumption definitely went up as we switched to the ng branch.
10:20 sorear what does it even use that much for
10:20 * sorear wonders if there's a memory leak somewhere; compiling a bunch of functions ought not to require that much more than compiling one
10:21 sorear also, I was watching top during the build, and total allocated memory never went above ~420
10:25 masak I am compiling Rakudo now. top tells me that the allocated memory is 620 MB.
10:25 sorear oh, probably word size differences
10:26 masak how would word size differences affect the number of bytes allocated?
10:26 sorear PMC* is 4 bytes on my system, 8 bytes in most of the rest of the world
10:26 sorear an awful lot of the data Parrot allocates is made of void*
10:26 masak I see.
10:29 k23z__ sorry my question went unanswered about incremental builds, my question was if I could recompile faster please ?
10:29 k23z__ recompile rakudo
10:29 sorear no, you can't
10:29 k23z__ because for example if I change 10 lines I need to wait ~30m to see the result
10:29 k23z__ sorear: ah ok then
10:29 sorear the bulk of the time spent compiling rakudo is compiling the prelude
10:30 sorear which is a single monolithic thing
10:30 k23z__ sorear: and could it be broken up ?
10:30 sorear then it wouldn't be a prelude
10:30 masak k23z__: I don't know if it answers your question -- but usually, unless one did 'make clean' or equivalent, the 'make' process only rebuilds the thing that change and those things that are dependencies of that.
10:30 masak the CORE/Setting/Prelude is quite late in the build chain, for example.
10:31 masak if you only change that, make won't rebuild the grammar and actions files.
10:31 sorear masak: src/core/* is 3ksloc of code.  Can I expect that, if my own programs grow to that size, they too will consume 400+ MiB to load?
10:32 k23z__ masak: yes the problem is I tried "make"  exactly after I "git pull" and it told me there was nothing else to do(which was weird since I saw that git pulled ~335 new lines) and so sorear told me to do "git clean -dxf" which erased all the built binaries and then I "perl ./Configure.PL --gen-parrot" again and "make" again ... and now I'm waiting for it to finish ...
10:32 k23z__ I'm pretty sure I missed something ... I don't know what
10:32 masak sorear: I'm not one to either give promises or dire predictions about Rakudo memory use. but I do know that competent people are working at optimizing Parrot and Rakudo.
10:33 masak k23z__: right. neither do I. I hope 'make' works for you next time.
10:33 masak it usually does for me.
10:34 k23z__ masak: I will try to change one line in some file under src/ and see if make behaves the same way(telling me there's nothing else to be done)
10:34 k23z__ but about the build times I wonder
10:34 k23z__ wouldn't it be possible to build a dependency tree
10:34 k23z__ of the whole rakudo project
10:35 k23z__ and then compile distributed on multiple machines
10:35 k23z__ looking at that tree to see if there are no inter-dependencies ?
10:35 k23z__ if they are on differen branches of the tree they can be compiled on differen machines I would think
10:35 k23z__ that is how I suppose distcc works
10:36 k23z__ I have 3-4 idle machines I could put them to work for me like that :)
10:36 perl7 joined #perl6
10:36 masak k23z__: those are interesting questions. I don't have the answer, unfortunately.
10:37 sorear masak: fair enough.
10:37 perl7 What does "Rakudo *" really mean?
10:37 masak [baclog] TimToady: what remains before viv can replace gimme5?
10:38 masak perl7: it's a point in the development of Rakudo where we say "Here. This is something that you can start building applications with."
10:38 perl7 masak: production ready?
10:38 masak perl7: depends on what you're producing :)
10:39 masak more like 'usable'.
10:39 k23z__ masak: :)
10:39 perl7 masak: applications in wich I have no time to fix language tricks
10:39 masak perl7: 'fix language tricks'? what do you mean?
10:40 perl7 mberends: There are more intelligent ways of calling me stupid
10:40 perl7 sorry
10:40 k23z__ wtf ?
10:40 masak very non sequitur, I must say.
10:41 perl7 masak: I don't like to work with language implementation issues,...
10:42 masak perl7: we're still finding a lot of them. that's just where we are right now.
10:42 masak perl7: it will get better, but we simply have to find the issues before that.
10:42 masak there's no magical way that I'm aware of.
10:42 perl7 masak: will be the Rakudo * clean of identified issues?
10:43 masak :)
10:43 masak is that the same as asking 'will the RT queue be empty?' ?
10:43 masak because I don't think it ever will. even if you're charitably only counting the real bugs in there.
10:44 masak and that's not because of Rakudo, that's because of software in general.
10:44 perl7 masak: you're rigth, but I ask for identified ones
10:44 masak RT contains the identified ones.
10:44 k23z__ if you have supplies of f00d and a place to crash and paid utilities ... I could take the bug count to zero
10:44 sorear perl7: please realize that you are not dealing with a contracted company here
10:44 masak k23z__: you're welcome to stay at my house.
10:44 perl7 sorear: I'm asking, nor requiring
10:45 k23z__ masak: that is very nice of you Carl , very hospitable :)
10:45 perl7 masak: do you have a link to see the RT status for Rakudo *
10:46 masak perl7: http://tinyurl.com/yak6y85
10:46 perl7 masak: thnaks
10:47 masak k23z__: it'll be fun. I'll provide the f00d, a mattress, and even a laptop if you need it. free wifi. stay as long as you fix things in the RT queue.
10:48 xinming_ joined #perl6
10:50 masak k23z__: we can even race and see if you can fix more tickets than I can submit :)
10:50 meppl joined #perl6
10:55 jaldhar joined #perl6
10:57 masak rakudo: subset OddInt of Int where { $_ % 2 }; class OhNoes is OddInt {}; my $i = OddInt.new; say $i
10:57 p6eval rakudo 345f63: OUTPUT«0␤»
10:57 masak should classes be allowed to inherit from subtypes?
10:58 masak um. I mean.
10:58 masak rakudo: subset OddInt of Int where { $_ % 2 }; class OhNoes is OddInt {}; my $i = OhNoes.new; say $i
10:58 p6eval rakudo 345f63: OUTPUT«0␤»
10:59 masak both of these cases are problematic, of course. but the first one is already known.
11:07 m6locks joined #perl6
11:08 zibri joined #perl6
11:22 payload joined #perl6
11:23 mssm joined #perl6
11:26 k23z__ masak: hehe :)
11:38 masak '"Talent" is the worst excuse cited by people who give up." -- Carl, the glassblower in ソ・ラ・ノ・ヲ・ト (Soranowoto)
11:41 masak that's heartening for those of us who just make it up as we go along. :)
11:46 pmurias joined #perl6
11:50 masak rakudo: subset A of Int where { $_ == 42 }; grammar G is A {}
11:50 p6eval rakudo 345f63:  ( no output )
11:50 masak rakudo: subset A of Int where { $_ == 42 }; grammar G does A {}
11:50 p6eval rakudo 345f63: OUTPUT«Method 'postcircumfix:<[ ]>' not found for invocant of class ''␤current instr.: 'perl6;ClassHOW;add_composable' pc 3996 (src/metamodel/ClassHOW.pir:186)␤»
11:51 masak those two make even less sense.
12:33 jnthn oh hai
12:33 k23z__ joined #perl6
12:33 masak lolitsjnthn
12:34 jnthn huh...inheriting from a subset type? :-/
12:34 jnthn Or does-ing one
12:34 masak k23z__: I saw you were asking about set operations in the backlog. jnthn and I were just discussing that on the train back from the Copenhagen++ hackathon.
12:34 jnthn Yes, I think we'll ban that. :-)
12:34 masak jnthn: I agree.
12:34 jnthn Good find.
12:34 k23z__ Queried user last spoke 14s ago.  masak is currently in this channel.
12:34 masak :)
12:35 * jnthn still needs to finish up a few other aspects of subset too
12:35 jnthn May do that today.
12:35 masak yay
12:35 k23z__ hmm my seen irssi script seems to work
12:36 * jnthn was happy to close a masakbug last night too :-)
12:36 masak yeah, saw that. jnthn++
12:36 jnthn I still need to make $x.SomeRole::methname() work
12:37 jnthn Though did put things back so there'll be an easy-ish way to do taht.
12:37 jnthn *that
12:38 masak in 'my $a := $b;', both $a and $b are treated as lvalues.
12:38 masak that's the same, I guess, as saying that the operation is on the level of the containers, not the values.
12:40 masak alpha: my $c = 42; my $a := my $b = $c; $b = 5; say ($a, $b, $c).perl
12:40 p6eval alpha 30e0ed: OUTPUT«[5, 5, 42]␤»
12:41 k23z__ masak: ban ?
12:41 masak k23z__: sorry, I don't have an op bit. you'll have to ask someone else.
12:41 k23z__ jnthn: ban ?
12:41 k23z__ masak: no no, I was talking about
12:41 k23z__ <@jnthn> Yes, I think we'll ban that. :-)
12:41 masak oh.
12:41 k23z__ I didn't understand what he meant
12:41 k23z__ jnthn: you will ban set operations ?
12:42 masak k23z__: no, jnthn was talking about a class inheriting from a subset.
12:42 k23z__ aah yes
12:42 k23z__ masak: yes and can you tell me your conclusion from your train conversation please ?
12:42 jnthn k23z__: What masak said. I don't want to ban sets! :-)
12:43 masak k23z__: only loose things. we want set operations. there are many ways to do them; the least adventurous should probably be in CORE.
12:43 masak k23z__: might support one Unicode op set and one Texas/ASCII op set.
12:44 k23z__ If I were to implement them should I write them in PIR, NPQ , Perl6 ?
12:44 masak k23z__: might be simplest to do it as a Perl 6 module for now.
12:44 jnthn Aye, Perl 6.
12:44 k23z__ I understand and maybe it can be ported to PIR/NPQ later
12:44 masak k23z__: watch out for serious bikeshedding around the topic.
12:44 jnthn Avoid porting stuff to PIR.
12:44 jnthn I'm trying to reduce the amount of PIR we have, not increase it.
12:44 masak k23z__: well, the nice thing about the CORE/Setting/Predule is that it doesn't need to be ported to PIR.
12:45 k23z__ is PIR/NPQ faster than Perl6 ? I mean if it's more close to Parrot I'd imagine it would be faster but I may be wrong
12:46 jnthn k23z__: Yes, for the moment that's certainly true.
12:46 jnthn Writing stuff in Perl 6 means that all of the metamodel bits and code types Just Work, though.
12:53 colomon it also means it will work for other implementations of Perl 6.
12:54 colomon and good morning.  :)
12:55 jnthn morning, colomon :-)
12:56 jnthn Yes, that too - and other backends that Rakudo gets in the future.
12:56 colomon jnthn: tried to get S03-smartmatch/any-num.t last night in the middle of the night by defining Rat.ACCEPTS.  But that just broke things even worse.
12:57 colomon > say 1 ~~ 1.0
12:57 colomon Ambiguous dispatch to multi 'ACCEPTS'. Ambiguous candidates had signatures:
12:57 colomon :(Mu : Any $other;; *%_)
12:57 colomon :(Mu : Any ::Complex $other;; *%_)
12:58 k23z__ you guys like morphisms ?
13:02 M_o_C joined #perl6
13:02 k23z__ ah then I'll write it in Perl6
13:02 k23z__ those haskell guys apparently have a permutation module since april 2009
13:03 k23z__ but I'm catching up on them :)
13:08 jnthn colomon: That's...weird.
13:08 colomon jnthn: agreed
13:08 jnthn oh wait
13:08 jnthn thsoe candidates are ambiguous
13:09 jnthn Wait, ::Complex is a type capture
13:09 jnthn Not a constraint.
13:09 jnthn Is Complex not defined at this point?
13:09 jnthn Or can you stub it?
13:09 colomon rakudo: ("That's" ... "weird").batch(10).perl.say
13:09 p6eval rakudo 345f63: OUTPUT«("That's", "That't", "That'u", "That'v", "That'w", "That'x", "That'y", "That'z", "That'aa", "That'ab")␤»
13:10 jnthn wow. :-)
13:10 colomon jnthn: that's actually your Num.ACCEPTS (::Complex $other) it's referring to there, I think.
13:11 jnthn Removing the :: should work.
13:11 colomon trying...
13:11 jnthn (if Complex has been stubbed)
13:13 colomon which it hadn't been, so it failed, but now I've added class Complex { ... }
13:13 k23z__ joined #perl6
13:22 colomon jnthn: I think that may have done it.
13:23 jnthn \o/
13:23 jnthn colomon: I think after that one, the rest of the smart-match tests are syntactic ones.
13:24 colomon unfortunately, while that makes test #2 in that testfile work, that doesn't get the test file working, because test #3 is a hard fail.
13:24 colomon rakudo: say Mu ~~ 0
13:24 p6eval rakudo 345f63: OUTPUT«Use of type object as value␤current instr.: 'perl6;Perl6Exception;throw' pc 14489 (src/builtins/Seq.pir:77)␤»
13:29 colomon jnthn: next problem:
13:29 colomon > say 3+1i  ~~ 3
13:29 colomon You can only coerce a Complex to Num if the imaginary part is zero
13:30 colomon (which means I'm going to make some more tests here....)
13:36 sECuRE joined #perl6
13:37 sECuRE my perl6 segfaults with a trivial hello world program. output, rakudo and parrot versions here: http://p.nnev.de/1210 - what could that be?
13:38 pugssvn r30070 | colomon++ | [t/spec] Fudge and add some more obvious tests.
13:45 dalek rakudo: 2751645 | (Solomon Foster)++ | src/core/ (2 files):
13:45 dalek rakudo: Fix Num.ACCEPTS(Complex), and implement Rat.ACCEPTS.
13:45 dalek rakudo: review: http://github.com/rakudo/rakudo/commit/2​7516456d4d57ef8f1db2d7912f613d7f72e0241
13:45 dalek rakudo: 8f0ca97 | (Solomon Foster)++ | t/spectest.data:
13:45 dalek rakudo: Turn on S03-smartmatch/any-num.t.
13:45 dalek rakudo: review: http://github.com/rakudo/rakudo/commit/8​f0ca97c6b106f4215c7bdc4e96171587774f8f6
13:47 jnthn sECuRE: How did you build? With --gen-parrot, or a seperate Parrot build?
13:47 sECuRE jnthn: using --gen-parrot
13:47 sECuRE i also deleted parrot* before calling that because it wouldn’t build otherwise
13:47 sECuRE before i used git pull ; git reset --hard to update my checkout of rakudo
13:49 jnthn That all sounds fine.
13:49 jnthn I'm sure I've seen something like this get posted a few days ago, I'm trying to remember what the outcome was.
13:50 * colomon just realized he pushed his last change without spectesting.  Drat.
13:50 jnthn colomon: Oh noes! ;-)
13:51 colomon Mind you, I don't know of any fails yet.
13:51 jnthn ah yes... http://irclog.perlgeek.de/​perl6/2010-03-13#i_2097693
13:52 jnthn sECuRE: Looking at the IRC log, last time somebody ran into this they were able to get around it with a "make install" of Rakudo.
13:52 sECuRE let’s see if it works
13:52 sECuRE indeed, it did. thanks!
13:53 jnthn What platform are you building on, out of curiosity?
13:53 sECuRE debian gnu/linux, x86_64
13:54 jnthn OK.
13:59 jnthn Ah, I just remembered...if you want to run Rakudo from outside of the build directory, make install is required. I think we used to have a nice check and helpful error message at startup about that...
13:59 jnthn ...should try to re-instate it.
13:59 mssm joined #perl6
14:03 sECuRE ok, just trying a simple grep command, but it says it’s confused by that. what am i doing wrong? http://p.nnev.de/1211
14:04 colomon rakudo: my @events = grep { 1 } @events;
14:04 p6eval rakudo 345f63: OUTPUT«Confused at line 11, near "my @events"␤current instr.: 'perl6;HLL;Grammar;panic' pc 500 (ext/nqp-rx/src/stage0/HLL-s0.pir:328)␤»
14:04 jnthn Missing comma.
14:05 jnthn (after the closure)
14:05 colomon rakudo: my @events; @events = grep { 1 }, @events;
14:05 p6eval rakudo 345f63:  ( no output )
14:05 sECuRE thanks
14:05 sECuRE but what about the following?
14:05 sECuRE rakudo: my @events; @events .= grep { 1 };
14:05 p6eval rakudo 345f63: OUTPUT«Confused at line 11, near "@events .="␤current instr.: 'perl6;HLL;Grammar;panic' pc 500 (ext/nqp-rx/src/stage0/HLL-s0.pir:328)␤»
14:05 sECuRE rakudo: my @events; @events .= grep { 1 },;
14:05 p6eval rakudo 345f63: OUTPUT«Confused at line 11, near "@events .="␤current instr.: 'perl6;HLL;Grammar;panic' pc 500 (ext/nqp-rx/src/stage0/HLL-s0.pir:328)␤»
14:06 colomon rakudo: my @events; @events .= grep {1};
14:06 p6eval rakudo 345f63: OUTPUT«Confused at line 11, near "@events .="␤current instr.: 'perl6;HLL;Grammar;panic' pc 500 (ext/nqp-rx/src/stage0/HLL-s0.pir:328)␤»
14:06 colomon rakudo: my @events; @events .= grep: {1}
14:06 p6eval rakudo 345f63:  ( no output )
14:06 colomon or
14:06 jnthn std: my @events; @events .= grep { 1 }; # better errors than Rakudo usually
14:06 p6eval std 30070: OUTPUT«[31m===[0mSORRY![31m===[0m␤Unexpected block in infix position (two terms in a row, or previous statement missing semicolon?) at /tmp/m3TAoiW43Y line 1:␤------> [32mmy @events; @events .= grep [33m⏏[31m{ 1 }; # better errors than Rakudo usual[0m␤    expecting any of:␤
14:06 p6eval ..bracke…
14:06 colomon rakudo: my @events; @events .= grep({1})
14:06 p6eval rakudo 345f63:  ( no output )
14:07 sECuRE colomon: what’s the : syntax about?
14:08 colomon jnthn can probably explain it better than me.  I just know it works.
14:12 sECuRE what is the "new XS" in perl6? so, is it already possible to create bindings for a C library, and if so, where can i read about it?
14:15 colomon Parrot has a facility for adding C bindings, which ought to work with Rakudo.  I don't know the details, and I don't know where there is documentation.  (But hopefully someone out there on the channel does...)
14:20 colomon jnthn: help?
14:20 iblechbot joined #perl6
14:21 colomon Looks like my Int.ACCEPTS patch broke is m2(1),   "a", 'literal Int in signature matches value correctly';
14:25 jnthn oops, sorry...was afk for a moment
14:26 jnthn sECuRE: When a method call is parsed, you have two ways of specifying the arguments for it: either a colon and then a list, or by putting them in parens.
14:26 jnthn You can choose which looks nicest. :-)
14:27 sECuRE ah, i see
14:27 jnthn sECuRE: There's some early implementation work on C bindings. The one I've hacked on with mberends++ is http://github.com/jnthn/zavolaj/
14:28 jnthn See for example http://github.com/jnthn/zavolaj/bl​ob/master/examples/mysqlclient.p6 - a mysql binding written in Perl 6.
14:28 colomon jnthn: woah, how'd I miss zavolaj?  cool!
14:28 sECuRE thanks, will have a look at it
14:28 jnthn colomon: Well, it was written while I was moving country. :-)
14:29 jnthn And shown off at the hackathon first.
14:29 jnthn I guess maybe the details didn't make it to the channel. :-)
14:29 jnthn (Int.ACCEPTS) way odd. :-/
14:30 jnthn colomon: How does it break?
14:31 colomon Null PMC access in get_bool()
14:31 colomon current instr.: 'm2' pc 1208 (EVAL_1:471)
14:31 colomon ... call repeated 1 times
14:31 colomon called from Sub '_block127' pc 840 (EVAL_1:353)
14:31 colomon afk... biab
14:32 jnthn Can't really guess from that...would need to glance the patch.
14:34 sECuRE jnthn: unfortunately, it does not seem to work atm: http://p.nnev.de/1212
14:36 jnthn sECuRE: It's early code and the errors suck.
14:36 jnthn sECuRE: If it gave good errors
14:37 jnthn Then it'd probably want to tell you that it couldn't find the mysqlclient library.
14:37 * jnthn makes mental note to improve the errors.
14:37 sECuRE ah, it needed the -dev-package. sorry ;)
14:37 jnthn :-)
14:38 jnthn bbiab, phone call, other bits
14:54 lisppaste3 colomon pasted "Int.ACCEPTS patch" at http://paste.lisp.org/display/96370
15:08 jferrero joined #perl6
15:08 Psyche^ joined #perl6
15:39 Chillance joined #perl6
15:55 Trashlord joined #perl6
16:11 envi^home joined #perl6
16:21 payload joined #perl6
16:26 justatheory joined #perl6
16:37 Exodist joined #perl6
16:43 rv2733 joined #perl6
16:46 pugssvn r30071 | lwall++ | [STD] read minds of people who forget that ".meth args" is a TTIAR error
16:49 Exodist joined #perl6
16:56 Exodist_ joined #perl6
16:57 Exodist joined #perl6
16:58 Lorn joined #perl6
16:58 payload TTIAR?
17:00 TimToady two terms in a row
17:01 TimToady the restriction that makes p6 code "self clocking"
17:02 TimToady and allows the parser to know whether you meant / as division or regex
17:07 pugssvn r30072 | lwall++ | [STD] no need to rescan whitespace, just check if line number changed
17:07 pugssvn r30072 | add "previous line missing its semicolon" to the unexpected block checker
17:07 pugssvn r30072 | s/acomp/arraycomp/ for more clarity
17:15 betterworld Could $x/$y be made a short form for Rat(:numerator($x), :denominator($y)) in a signature?
17:18 k23z__ joined #perl6
17:18 k23z__ joined #perl6
17:23 jnthn colomon: I wonder if we're hitting a .tailcall somewhere in the chain of things...
17:24 jnthn colomon: Will see if I can fathom it.
17:24 wolverian joined #perl6
17:24 jnthn betterworld: Not without making it a special case of some kind...I'm not sure it's a common enough need for that though?
17:24 jnthn betterworld: Note that rather than unpacking it in the signature - cool as that is - you may be better served by doing nude in the method body.
17:25 jnthn sub foo(Rat $r) { my ($x, $y) = $r.nude; ... }
17:28 TimToady signature unpacking can already do it, if there are methods
17:30 jnthn TimToady: The problem isn't the lack of methods, just that numerator and dominator are quite lon
17:30 jnthn *denominator, long
17:30 jnthn TimToady: If they were .nu and .de it'd be...like a bunch of European domains name TLDs. :-)
17:30 jnthn It does work today though afaik
17:31 jnthn Think the request was just for a shorter way, but I'm not sure it's worth huffmanizing.
17:32 betterworld well, I just thought that "sub foo($x/$y)" would be cool and nice to read and quite consistent with the unpacking semantics
17:46 lue hiya!
17:48 lue rakudo: my $a=1; say "hello $a"
17:48 p6eval rakudo 8f0ca9: OUTPUT«hello 1␤»
17:49 lue rakudo: my @a=1,2,3; say "hello @a"
17:49 p6eval rakudo 8f0ca9: OUTPUT«hello @a␤»
17:49 lue rakudo: my %a=1,2,3,4; say "hello %a"
17:49 p6eval rakudo 8f0ca9: OUTPUT«hello %a␤»
17:49 lue rakudo: my $a=1; say "hello $b"
17:49 p6eval rakudo 8f0ca9: OUTPUT«Symbol '$b' not predeclared in <anonymous>␤current instr.: 'perl6;PCT;HLLCompiler;panic' pc 137 (compilers/pct/src/PCT/HLLCompiler.pir:101)␤»
17:50 hejki my @a=1,2,3; say "hello" ~ @a.join(" ");
17:51 hejki rakudo: my @a=1,2,3; say "hello" ~ @a.join(" ");
17:51 p6eval rakudo 8f0ca9: OUTPUT«hello1 2 3␤»
17:51 lue heijki: of course you can do something like that. The problem itself is string interpolation, and I want to try and fix it.
17:51 lue Just making sure no else did in the meantime :D
17:52 hejki :P
17:52 TimToady std: my @events; @events .= grep { 1 };
17:52 p6eval std 30072: OUTPUT«[31m===[0mSORRY![31m===[0m␤Unexpected block in infix position (method call needs colon or parens to take arguments) at /tmp/atj443WWtI line 1:␤------> [32mmy @events; @events .= grep [33m⏏[31m{ 1 };[0m␤    expecting any of:␤       bracketed infix␤  infix or
17:52 p6eval ..meta-infix␤FAILED 00:01…
17:58 nihiliad joined #perl6
17:58 wknight8111 joined #perl6
18:03 * colomon is back from a failed trip to the pub.
18:04 szbalint failed?
18:05 lue were there people inside with paper bags over their heads?
18:05 jnthn How does a pub trip fail?
18:05 jnthn EOUTOFBEER?
18:07 * szbalint feels like in a pub. He has 5 different types of alcohol on his desk atm.
18:08 arnsholt Not bad, not bad. What kinds of booze?
18:08 jnthn Wow. My kitchen isn't even quite that awesome (yet). :-)
18:09 * jnthn only has 4 types to hand at the moment
18:09 colomon too many st pat's celebrators to have lunch with my family there.  it was a complete zoo.
18:09 szbalint Caol Ila, Zubrowka, homebrew pálinka, stiegl and some red wine
18:09 colomon pity, because my friends were playing music.
18:09 colomon oooo, Caol Ila!!!
18:10 jnthn Borovička, Slivovica, Lemon Cello, Beer.
18:10 jnthn I finished all my vodka and Korean stuff before moving.
18:12 jnthn Żubrówka sounds nice. :-)
18:12 lue colomon: were people wearing paper bags over their heads? It's very important! [ :) ]
18:13 colomon no, they were wearing giant green leprechaun hats.  (among other things, but no paper bags.)
18:13 jnthn Pálinka sounds like Hungarian version of what is called Slivovica in Slovakia.
18:13 lue good! The end of the world isn't in 10 minutes then.
18:13 colomon lue: I thought you might be worried about something like that.
18:13 jnthn colomon: Too bad about the fail. :-(
18:14 lue well, you went to a PUB. If there were people wearing paper bags, I'd advise you to run to the nearest bulldozer :D
18:14 colomon well. we still had a nice lunch out and then cupcakes from the super-tasty cupcake shop, so not a complete fail.
18:14 szbalint not too much left :( I'll keep the packaging though. http://dev.perl.hu/static/IMG_2923.JPG
18:14 mberends joined #perl6
18:14 szbalint jnthn: yeah, that's about right :)
18:15 colomon and I'll probably be back at the pub playing music myself in about three hours.  :)
18:15 lue get yourself some peanuts their. Just in case. :)
18:15 lue OOPS there
18:16 colomon jnthn: any luck with Ints and ACCEPTS?
18:16 jnthn szbalint: Wow, nice packacing indeed!
18:16 jnthn colomon: No, I have a hunch what it may be though.
18:17 colomon hunches are good...
18:17 jnthn If you end up doing a tailcall in a call from C (e.g. the one made by the binder), it can happen that an annoying Parrot bug bites, which results in getting a null PMC back rather than the desired result.
18:18 jnthn It may be that we're hitting something still written in PIR that tailcalls to prefix:<?>
18:19 jnthn I can dig more later today, but right now I have a Need For Nom.
18:20 colomon huh.  and by all means, nom!
18:22 colomon rakudo: say Any ~~ 0
18:22 p6eval rakudo 8f0ca9: OUTPUT«Use of type object as value␤current instr.: 'perl6;Perl6Exception;throw' pc 14489 (src/builtins/Seq.pir:77)␤»
18:23 hercynium joined #perl6
18:43 lue how would one ssh in emacs? TRAMP comes up a lot.
18:46 zibri joined #perl6
19:08 sorear it occurs to me that I don't *actually* have to mess around with the rakudo recompiler
19:08 sorear I can write the missing parts of the setting as external modules
19:09 sorear then, when they're completely working, let someone else worry about integration
19:09 sorear who invented Q:PIR?
19:12 jnthn Q:blah as a general quoting syntax is part of the Perl 6 spec
19:12 jnthn Q:PIR was done by pmichaud, iirc.
19:12 sorear pmichaud++
19:12 colomon pmichaud++
19:14 arnsholt lue: Open one of the Emacs terminal emulators and fire off the OpenSSH client? =)
19:21 brushie_ joined #perl6
19:25 spinclad pir::<opname> is nice too.  pmichaud++
19:26 spinclad oh and hi all
19:29 colomon o/
19:30 colomon rakudo: say 3 !> 5
19:30 p6eval rakudo 8f0ca9: OUTPUT«1␤»
19:31 eternaleye joined #perl6
19:31 pugssvn r30073 | unobe++ | [t/spec] Fudge S06-other/main-eval.t
19:31 pugssvn r30073 |
19:31 pugssvn r30073 | modified:   S06-other/main-eval.t
19:38 colomon rakudo: my $b = 0; say not($b) + 1); say (not $b) + 1
19:38 p6eval rakudo 8f0ca9: OUTPUT«Confused at line 11, near "); say (no"␤current instr.: 'perl6;HLL;Grammar;panic' pc 500 (ext/nqp-rx/src/stage0/HLL-s0.pir:328)␤»
19:38 colomon rakudo: my $b = 0; say not($b) + 1; say (not $b) + 1
19:38 p6eval rakudo 8f0ca9: OUTPUT«0␤2␤»
19:39 colomon is (not($b) + 1), ((not $b) + 1), 'not($b) is (not $b)';
19:39 colomon can anyone see a reason that test makes any sense?
19:40 arnsholt Makes sure that the operator not and the function not do the same, methinks
19:40 colomon actually, I think it's intended to make sure not is higher precedence than +, maybe?
19:41 arnsholt Doesn't look like it from the description
19:41 colomon If not, then why have the "+ 1"s in there?
19:41 arnsholt Not entirely sure =)
19:42 colomon raudo: my $b = 0; say not($b); say (not $b)
19:44 colomon rakudo: my $b = 0; say not($b); say (not $b)
19:44 p6eval rakudo 8f0ca9: OUTPUT«1␤1␤»
19:45 pugssvn r30074 | colomon++ | [t/spec] Add some more tests for not.
19:49 jnthn colomon: But that fail reproduced here now.
19:49 spinclad given that rakudo seems to get it wrong ( as not($b) should make not's arglist be just '$b' ), it seems like a good test to have...
19:50 spinclad rakudo: my $b = 0; say not($b)+1
19:50 p6eval rakudo 8f0ca9: OUTPUT«0␤»
19:51 colomon spinclad: are you sure that's not how it should work?
19:51 spinclad (why isn't this parsed 'say( (not($b)) + 1 )' ?)
19:52 colomon alpha: my $b = 0; say not($b)+1
19:52 p6eval alpha 30e0ed: OUTPUT«0␤»
19:52 spinclad perl6: my $b = 0; say not($b)+1
19:52 p6eval elf 30074, pugs: OUTPUT«2␤»
19:52 p6eval ..rakudo 8f0ca9: OUTPUT«0␤»
19:54 colomon not is loose_unary, which is much lower precedent than addition.
19:54 spinclad (how again do you ask p6eval for rakudo --output=parse ?)
19:55 colomon *precedence
19:56 spinclad but ident(args) is always taken as function call...
19:56 spinclad perl6: my $b = 0; say not $b + 1
19:56 p6eval rakudo 8f0ca9: OUTPUT«0␤»
19:56 p6eval ..elf 30074, pugs: OUTPUT«␤»
19:57 spinclad (without the ident(args), all are agreed on precedence, as you say)
19:58 spinclad perl6: my $b = 1; say not $b - 1
19:58 p6eval elf 30074, pugs, rakudo 8f0ca9: OUTPUT«1␤»
19:58 spinclad perl6: my $b = 1; say not($b)-1
19:58 p6eval rakudo 8f0ca9: OUTPUT«1␤»
19:58 p6eval ..elf 30074, pugs: OUTPUT«-1␤»
19:59 spinclad (another example)
20:02 spinclad perl6: my $b = 1; say (not $b)-1
20:02 p6eval elf 30074, pugs, rakudo 8f0ca9: OUTPUT«-1␤»
20:03 spinclad mildew: my $b = 0; say not($b)+1
20:03 p6eval mildew: OUTPUT«Can't open perl script "mildew": No such file or directory␤»
20:04 spinclad sprixel: my $b = 0; say not($b)+1
20:04 p6eval sprixel 30074: OUTPUT«Undeclared routine:␤       'not' used at line 1␤NYI: term__S_scope_declarator␤»
20:04 colomon spinclad: it's okay, I won't take the test out.
20:06 spinclad sorry, i wasn't trying to pile up witnesses, i was curious how many witnesses we actually have at this point
20:09 rgrau joined #perl6
20:09 colomon :)
20:10 colomon not that I give a fig for the number of witnesses.  ;)
20:10 colomon but it occurred to me I'd be really cheesed off if sin($b) + 1 was the same as sin($b + 1).
20:10 arnsholt Indeed =)
20:11 colomon (I mean, not that I give a fig for number of witnesses in terms of establishing what it should do.  It's way cool there are that many implementations out there!)
20:11 jnthn colomon: That would be...epicly confusing. :-)
20:12 colomon jnthn: yeah, it's not obvious to me how "not" should work, but it's very obvious to me how "sin" should.  :)
20:13 colomon sigh,.
20:13 colomon I had this great ambition to see how many meta ops I could get implemented before going back to the pub.
20:13 colomon but my conscience said, well, you should get !op working as well as possible first.
20:13 colomon and then my conscience said, and where are the !op tests, anyway?
20:14 colomon and then I looked in not.t and got completely sidetracked.  :)
20:14 spinclad sideyakked
20:15 colomon so, does anyone remember where the !op tests are?  I remember looking at a few of them when I implemented it, but I can't recall where now...
20:16 colomon rakudo: say so(1) + 1
20:16 p6eval rakudo 8f0ca9: OUTPUT«1␤»
20:16 colomon same deal there...
20:17 jnthn rakudo: say so(1)
20:17 p6eval rakudo 8f0ca9: OUTPUT«1␤»
20:18 jnthn rakudo: say (so(1) + 1)
20:18 p6eval rakudo 8f0ca9: OUTPUT«1␤»
20:18 jnthn ...huh?
20:18 spinclad rakudo: say so (1) + 1
20:18 p6eval rakudo 8f0ca9: OUTPUT«1␤»
20:18 colomon those are all so (1 + 1)
20:18 spinclad perl6: say so (1) + 1
20:18 p6eval rakudo 8f0ca9: OUTPUT«1␤»
20:18 p6eval ..pugs: OUTPUT«*** No such subroutine: "&so"␤    at /tmp/6RHmCn1n0m line 1, column 5 - line 2, column 1␤»
20:18 p6eval ..elf 30074: OUTPUT«Undefined subroutine &GLOBAL::so called at (eval 123) line 3.␤ at ./elf_h line 5881␤»
20:18 colomon rakudo: say (so 1) + 1
20:18 p6eval rakudo 8f0ca9: OUTPUT«2␤»
20:19 spinclad rakudo isn't seeing so(1) as func(args) as i think it ought
20:20 colomon right
20:20 colomon any idea how STD.pm sees it?
20:20 colomon afk # taking out the garbage while my spectest runs
20:20 spinclad std: say so(1) + 1
20:20 p6eval std 30074: OUTPUT«ok 00:01 106m␤»
20:21 spinclad doesn't say ;)
20:21 colomon right, but people with high magic can get the parse tree from STD...
20:22 spinclad but again i seem to remember p6eval would pastebin a parsetree given the right xx-yy: invocation
20:22 spinclad std-parse: say so(1) + 1
20:22 spinclad rakudo-parse: say so(1) + 1
20:23 spinclad which i can't lay recall on
20:24 * jnthn gets to the bottom of why colomon++'s Int.ACCEPTS patch doesn't work, and swears loudly at Parrot.
20:25 TimToady std parses so() as a function call
20:25 spinclad .oO( what, build my own copy? such a thought.   ... back in 12 hours o/ )
20:26 spinclad (easily verified at home...)
20:28 colomon oooo, jnthn++
20:30 dalek rakudo: d631c8f | (David Romano)++ |  (9 files):
20:30 dalek rakudo: Merge remote branch 'upstream'
20:30 dalek rakudo: review: http://github.com/rakudo/rakudo/commit/d​631c8fc80da2f9be5186a1f5a457284f96b4757
20:30 dalek rakudo: e013cab | (David Romano)++ | t/spectest.data:
20:30 dalek rakudo: Merge remote branch 'upstream'
20:30 dalek rakudo: review: http://github.com/rakudo/rakudo/commit/e​013cab39d5eebfd141641e311f9f5ba0e653996
20:30 dalek rakudo: 5d15313 | (David Romano)++ |  (3 files):
20:30 dalek rakudo: Merge remote branch 'upstream'
20:30 dalek rakudo: review: http://github.com/rakudo/rakudo/commit/5​d15313a77ebf9dc552f2c9820a126016863904d
20:30 dalek rakudo: 77ee50d | (David Romano)++ | t/spectest.data:
20:30 dalek rakudo: Turn on S06-other/main-eval.t remove unneeded comment lines in t/spectest.data
20:30 dalek rakudo: modified:   spectest.data
20:30 dalek rakudo: review: http://github.com/rakudo/rakudo/commit/7​7ee50d199e6fb4a5af1b3c9075f21f9ef63e208
20:31 jnthn Epic merge
20:33 pugssvn r30075 | colomon++ | [t/spec] Add needed done_testing.
20:34 colomon Hmmm..... wonder what was up with all those merge branches?  My bad somehow?
20:36 huf joined #perl6
20:37 rindolf joined #perl6
20:38 jnthn git happens.
20:38 rindolf jnthn: heh.
20:38 rindolf jnthn++
20:38 rindolf eat git!
20:44 jnthn colomon: Think I has a fix.
20:44 rindolf jnthn: I has?
20:45 jnthn *have :-)
20:45 rindolf jnthn: OK.
20:45 rindolf I can haz the fix?
20:46 IllvilJa joined #perl6
20:46 jnthn oh, so you DO know lolspeak!
20:47 jnthn :-P
20:47 rindolf jnthn: I doez.
20:47 jnthn colomon: spectesting.
20:47 jnthn colomon: Shall I put the Int part of your patch in too?
20:47 jnthn Or will that create bother/conflicts for you?
20:48 colomon jnthn: I actually completely backed out the Int part locally, so by all means please put it back in.  :)
20:49 jnthn colomon: OK, will do provided the test run is OK.
20:56 colomon \o/
20:57 tylerni7 joined #perl6
20:57 tylerni7 joined #perl6
21:01 * colomon is off to the pub again...
21:01 payload joined #perl6
21:02 jnthn colomon: enjoy!
21:10 rv2733 joined #perl6
21:10 dalek rakudo: 9ffe679 | jonathan++ | src/pmc/perl6multisub.pmc:
21:10 dalek rakudo: Tweak to make sure Perl6MultiSub matches a (somewhat dubious) Parrot heuristic.
21:10 dalek rakudo: review: http://github.com/rakudo/rakudo/commit/9​ffe679393b0cd3cf46633cdaf75a20c234802fa
21:10 dalek rakudo: 558c638 | jonathan++ | src/ (2 files):
21:10 dalek rakudo: Apply patch from colomon++ to move Int.ACCEPTS into the setting.
21:10 dalek rakudo: review: http://github.com/rakudo/rakudo/commit/5​58c63838e4925c7ed9b1a0b9b1304a4b184a94d
21:11 hercynium joined #perl6
21:13 jnthn std: my Nil $x
21:13 p6eval std 30075: OUTPUT«ok 00:01 107m␤»
21:20 rindolf A few TODO tests passed for me here on x86-64.
21:22 pugssvn r30076 | jnthn++ | [t/spec] Re-fudge S02-builtin-data-types/declare.t.
21:27 dalek rakudo: 8915a61 | jonathan++ | t/spectest.data:
21:27 dalek rakudo: Turn S02-builtin_data_types/declare.t back on.
21:27 dalek rakudo: review: http://github.com/rakudo/rakudo/commit/8​915a61594e484c925b2aaabc858ca9b62654e2b
21:32 pugssvn r30077 | jnthn++ | A couple of todos and skips; we can now run most of what alpha did of unspace.t.
21:33 m6locks hmm make spectest returned FAIL although all the tests were ok
21:33 dalek rakudo: a2ceb6f | jonathan++ | t/spectest.data:
21:33 dalek rakudo: Turn unspace.t back on.
21:33 dalek rakudo: review: http://github.com/rakudo/rakudo/commit/a​2ceb6f81113a4ec092c74b99bb98b7dd86ca324
21:37 jnthn std: sub baz ($.x) { ... }
21:37 p6eval std 30076: OUTPUT«ok 00:01 108m␤»
21:39 jnthn std: sub quuux ($?VERSION) { ... }
21:39 p6eval std 30076: OUTPUT«Potential difficulties:␤  Illegal to use ? twigil in signature at /tmp/PUhtqGp33c line 1:␤------> [32msub quuux ([33m⏏[31m$?VERSION) { ... }[0m␤ok 00:01 106m␤»
21:45 pugssvn r30078 | jnthn++ | [t/spec] Toss two wrong tests.
22:00 vamped joined #perl6
22:25 lue rakudo: my @a=1,2,3; say "@a" # just checking
22:25 p6eval rakudo a2ceb6: OUTPUT«@a␤»
22:28 diakopter rakudo: my @a=1,2,3; say "{@a}"
22:28 p6eval rakudo a2ceb6: OUTPUT«1 2 3␤»
22:40 alanm joined #perl6
22:42 lue where is string interpolation defined? (guessing String.pir/.pm)
22:46 mberends lue: http://perlcabal.org/syn/S02.html
22:48 lue oh noes I pressed that for firefox! What have I done! It's gonna die! :(
22:51 jnthn mberends: o/
22:52 mberends \o jnthn, are you down to only 4 kinds of alcohol?
22:52 jnthn YARLY!
22:52 mberends :-( sorry to hear that
22:52 jnthn Well, I depleted my Ukrainian vodka shortly before leaving Slovakia.
22:53 jnthn That obviously means I have to go to the Perl workshop there later this year. :-)
22:53 lue does S02 say it's okay for @ and % vars to interpolate in strings like $ can?
22:54 lue rakudo: my $a=3; say "hey $a"
22:54 p6eval rakudo a2ceb6: OUTPUT«hey 3␤»
22:54 jnthn lue: iirc, "@foo" will not interpolate but "@foo[]" or "@foo[1,2]" for example would.
22:54 jnthn Or in general, only if there's a postcircumfix.
22:54 dalek rakudo: 17766db | jonathan++ | src/Perl6/Actions.pm:
22:54 dalek rakudo: Add a missing twigil in signature check from STD.
22:54 dalek rakudo: review: http://github.com/rakudo/rakudo/commit/1​7766db8b02467581e11da078e51f9d7bac5869b
22:54 dalek rakudo: 1d5c09f | jonathan++ | t/spectest.data:
22:54 dalek rakudo: Turn S06-signature/errors.t back on.
22:54 dalek rakudo: review: http://github.com/rakudo/rakudo/commit/1​d5c09f4b7988001dfa756627ff6f315a8ed6b85
22:54 dalek rakudo: 7a56f35 | jonathan++ | src/ (3 files):
22:54 dalek rakudo: Get $x.$y() idirect method calls working again.
22:54 dalek rakudo: review: http://github.com/rakudo/rakudo/commit/7​a56f3516c13327c71b56e7fdcce4cb9bded44d9
22:54 dalek rakudo: e704ef9 | jonathan++ | src/Perl6/Actions.pm:
22:54 dalek rakudo: The illegal twigil detection was a little...over-eager...to complain. Fixed in this patch.
22:54 dalek rakudo: review: http://github.com/rakudo/rakudo/commit/e​704ef982b118bb2c5fe5560b168d84a8b2c57b5
22:54 mberends lue: inside "{ ... }"
22:55 jnthn Or that. :-)
22:56 lue so this should fail:
22:56 lue rakudo: my @a=1,2,3; say "@a"
22:56 p6eval rakudo a2ceb6: OUTPUT«@a␤»
22:56 * jnthn needs to focus on putting some more S12 bits back over the next day or two.
22:56 lue and this should win:
22:56 lue rakudo: my @a=1,2,3; say "@a[1]"
22:56 p6eval rakudo a2ceb6: OUTPUT«@a[1]␤»
22:56 jnthn lue: I think Rakudo is correct on the above one.
22:56 jnthn lue: And wrong on that second one.
22:57 jnthn (that is, we win at failing, but fail at winning)
22:57 mberends I think Rakudo is correct in both cases
22:57 jnthn orly?
22:57 mberends *I think*
22:57 lue and what if a nonexistant variable is encountered?
22:57 jnthn std: say "@a"
22:57 p6eval std 30078: OUTPUT«ok 00:01 108m␤»
22:57 jnthn std: say "@a[]"
22:57 lue rakudo: say "$b"
22:57 jnthn std: say "@a[1]"
22:57 p6eval std 30078: OUTPUT«ok 00:01 106m␤»
22:57 p6eval rakudo a2ceb6: OUTPUT«Symbol '$b' not predeclared in <anonymous>␤current instr.: 'perl6;PCT;HLLCompiler;panic' pc 137 (compilers/pct/src/PCT/HLLCompiler.pir:101)␤»
22:57 p6eval std 30078: OUTPUT«ok 00:01 106m␤»
22:58 jnthn std: say "{@a[1]}"
22:58 p6eval std 30078: OUTPUT«ok 00:01 106m␤»
22:58 jnthn ...oh.
22:58 jnthn std: say @a[1]
22:58 p6eval std 30078: OUTPUT«ok 00:01 105m␤»
22:58 jnthn Um.
22:58 jnthn That wasn't quite what I was expecting...
22:58 jnthn std: say $a
22:58 p6eval std 30078: OUTPUT«ok 00:01 105m␤»
22:59 * jnthn was sure STD complained about undeclared lexicals.
22:59 mberends std: say "hello @a[";
22:59 p6eval std 30078: OUTPUT«[31m===[0mSORRY![31m===[0m␤(Possible runaway string from line 1)␤Bogus statement at /tmp/TXaQfxALPJ line 1 (EOF):␤------> [32msay "hello @a[";[33m⏏[31m<EOL>[0m␤    expecting escape␤FAILED 00:01 107m␤»
22:59 mberends std: say "hello @a[0]";
22:59 p6eval std 30078: OUTPUT«ok 00:01 106m␤»
22:59 lue If the scalar doesn't exist, shouldn't NOT error out? What If you wrote a string "@result[1] is $x (add four for £)"
22:59 lue and $x doesn't exist?
22:59 jnthn lue: Yes, it should error out, imo.
22:59 jnthn rakudo: say "lol $x does not exist"
22:59 p6eval rakudo a2ceb6: OUTPUT«Symbol '$x' not predeclared in <anonymous>␤current instr.: 'perl6;PCT;HLLCompiler;panic' pc 137 (compilers/pct/src/PCT/HLLCompiler.pir:101)␤»
22:59 jnthn And it does.
23:00 lue rakudo: say "lol \$x does exist"
23:00 p6eval rakudo a2ceb6: OUTPUT«Symbol '$x' not predeclared in <anonymous>␤current instr.: 'perl6;PCT;HLLCompiler;panic' pc 137 (compilers/pct/src/PCT/HLLCompiler.pir:101)␤»
23:00 lue darn :/
23:02 jnthn From STD:
23:02 jnthn Bare scalar variables always interpolate in double-quotish
23:02 jnthn strings.  Bare array, hash, and subroutine variables may I<never> be
23:02 jnthn interpolated.  However, any scalar, array, hash or subroutine variable may
23:02 jnthn start an interpolation if it is followed by a sequence of one or more bracketed
23:02 jnthn dereferencers
23:02 jnthn lue: That above issue is a rakudobug.
23:02 jnthn er, *From S02
23:02 jnthn If it's bare, interpolation don't dare...
23:02 jnthn But an array subscript makes it interpolate
23:03 jnthn It's listed near the top of S02 as one of the very few places that the Perl 6 grammar does lookahead beyond one token.
23:03 lue so @a[3] should interpolate? If that's the case, just tell me where interpolation is defined (in the code) and I'll look at it (no promises on fixing it :D )
23:03 jnthn It should
23:03 jnthn I think that bit is defined in nqp-rx
23:04 mberends rakudo: my @a=1,2; say "total = { @a[0]+@a[1] }"
23:04 p6eval rakudo a2ceb6: OUTPUT«total = 3␤»
23:05 lue and let me guess nqp-rx is part of svn?
23:05 mberends part of Parrot, which you can get via svn
23:05 lue s/svn/pugs/
23:05 mberends nope
23:06 jnthn lue: http://github.com/perl6/nqp-rx/blob​/master/src/cheats/hll-grammar.pir
23:06 jnthn See quote_EXPR
23:06 lue and now I has to get parrot too!? :/
23:07 mberends lue: if you built Rakudo using --gen-parrot, it happened automagically
23:07 jnthn lue: You already have Parrot if you have Rakudo. What you do need is to check out the nqp-rx source from github
23:08 jnthn Unless there's a way to do it solely in Rakudo.
23:08 jnthn I don't understand that area of the codebase very well.
23:09 lue Well then. Here we go, as a plumber once said. :)
23:12 lue rakudo: my @a=1,2,3; my @a[3]=5; say @a
23:12 p6eval rakudo a2ceb6: OUTPUT«Redeclaration of symbol @a at line 11, near "=5; say @a"␤current instr.: 'perl6;HLL;Grammar;panic' pc 500 (ext/nqp-rx/src/stage0/HLL-s0.pir:328)␤»
23:12 lue rakudo: my @a=1,2,3; @a[3]=5; say @a
23:12 p6eval rakudo a2ceb6: OUTPUT«1235␤»
23:12 lue rakudo: my @a=1,2,3; @a[3] := @a[1]; say @a
23:12 p6eval rakudo a2ceb6: OUTPUT«:= binding of variables not yet implemented␤current instr.: '&die' pc 16859 (src/builtins/Junction.pir:373)␤»
23:13 lue alpha: my @a=1,2,3; @a[3] := @a[1]; say @a
23:13 p6eval alpha 30e0ed: OUTPUT«rtype not set␤in Main (file <unknown>, line <unknown>)␤»
23:15 * lue &
23:31 alester joined #perl6
23:32 payload joined #perl6
23:33 vamped building on that ...
23:33 vamped rakudo: my @a=0,1,2; @a[5]=5; @a.perl.say
23:33 p6eval rakudo e704ef: OUTPUT«[0, 1, 2, Proxy.new(), Proxy.new(), 5]␤»
23:34 vamped rakudo: my @a=0,1,2; @a[5]=5; @a[3]=3,4; say @a.perl
23:34 p6eval rakudo e704ef: OUTPUT«[0, 1, 2, Seq.new(), Proxy.new(), 5]␤»
23:34 vamped rakudo: my @a=0,1,2; @a[5]=5; @a[3]=3,4; say |@a
23:34 p6eval rakudo e704ef: OUTPUT«Null PMC access in type()␤current instr.: '_block14' pc 29 (EVAL_1:0)␤»
23:34 mssm joined #perl6
23:35 Lorn joined #perl6
23:37 vamped rakudo: my @a=0,1,2; @a[5]=5; @a[3]=3,4; @a[4]=4; say @a'
23:37 p6eval rakudo e704ef: OUTPUT«Confused at line 11, near "say @a'"␤current instr.: 'perl6;HLL;Grammar;panic' pc 500 (ext/nqp-rx/src/stage0/HLL-s0.pir:328)␤»
23:38 vamped rakudo: my @a=0,1,2; @a[5]=5; @a[3]=3,4; @a[4]=4; say @a
23:38 p6eval rakudo e704ef: OUTPUT«0123 445␤»
23:38 vamped rakudo: my @a=0,1,2; @a[5]=5; @a[3]=3,4; @a[4]=4; say @a.perl
23:38 p6eval rakudo e704ef: OUTPUT«[0, 1, 2, Seq.new(), 4, 5]␤»
23:43 snarkyboojum joined #perl6
23:51 sorear Is there a nice list anywhere of all the P6 setting bits that are missing in rakudo?
23:53 jnthn Don't think there's even a nasty list of that, let alone a nice one.
23:53 jnthn The spectests we don't yet attempt give some hints
23:53 jnthn But there's stuff in the spec that's neither implemented nor has tests.

| Channels | #perl6 index | Today | | Search | Google Search | Plain-Text | summary

Perl 6 | Reference Documentation | Rakudo