Perl 6 - the future is here, just unevenly distributed

IRC log for #perl6, 2009-05-18

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:00 JDlugosz re always flatten:  So while it traverses and copies elements, it notes if items themselves have the Positional role, and recurse into them?
00:00 ruoso JDlugosz, no... it sees if it is a Capture
00:01 ruoso otherwise 1,2,[1,2,3] would also unflatten
00:01 ruoso and that's not the case
00:01 JDlugosz So list assignment doesn't *always* flatten.  List assignment with a Capture on the RHS flattens.
00:01 ruoso skids, I don't quite see what you mean... would you mind writing an example?
00:01 orafu joined #perl6
00:02 ruoso JDlugosz, it *always* flatten, but the only things that are subject to be flattened are captures
00:02 skids lists flatten, arrays do not <-- ruoso simplified :-)
00:03 ruoso skids, the point is precisely that "list" is an abstract concept...
00:03 skids my lvalsub () { return $a, $b, $c }; # want to bind @a[0] := $a, @a[1] := $b, etc
00:03 JDlugosz skids:  I don't understand that.  Sounds like P5 nomenclature.  Array is a concrete container type that does Positional.  Lists are casual language for anything that does Positional.
00:03 Infinoid rakudo spectest summary report on NetBSD/i386 4.0 (from netbsd parrot pkgsrc maintainer): http://nopaste.snit.ch/16582
00:03 ruoso JDlugosz, exactly... so the Capture is the thing that might be flattened
00:04 ruoso JDlugosz, Array is *never* flattened
00:04 JDlugosz And that keys in to the ( ) syntax being the capture constructor.
00:04 ruoso exactly
00:05 skids except that it's also the list constructor :-)
00:05 ruoso skids, a capture is a list
00:05 JDlugosz so @a = ($a, @b, $c);  will flatten during the assignment.
00:05 ruoso yes
00:05 ruoso not before
00:05 ruoso so
00:05 JDlugosz and @a = [ $a, @b, $c];  will not.
00:05 ruoso @a = [] produces an array with 1 element
00:05 lambdabot Maybe you meant: activity activity-full admin all-dicts arr ask . ? @ v
00:06 ruoso but...
00:06 JDlugosz skids:  NO.  "the" list constructor is a non sequtor.
00:06 ruoso my @a := ($a, @b, $c) #doesn't flatten
00:06 ruoso my ¢a := ($a, @b, $c) #doesn't flatten
00:07 JDlugosz Are you saying that my last example was wrong?
00:07 ruoso it wouldn't flatten... but I think it wouldn't do what you meant
00:07 JDlugosz Doesn't [...] construct an Array ?
00:07 ruoso my @a = [$a, @b, $c]; say @a[1]; # no element
00:07 JDlugosz And an Array (not a "reference"!) will partipate in list assignment.
00:08 ruoso and as the array is not a capture,
00:08 ruoso it is the only element
00:08 ruoso otoh
00:08 JDlugosz But $x = [ $a, @b, $c];  is a single item.
00:08 ruoso yes
00:09 ruoso [$a, @b, $c] is always a single item
00:09 bacek_ joined #perl6
00:09 JDlugosz Why would @a = ... not work that way anymore?  Has list assignment changed to *only* take a capture on the RHS?
00:09 ruoso I think it always worked that way
00:09 ruoso I mean...
00:10 ruoso my @a = [1,2,3]; say @a.elems
00:10 ruoso would always say 1
00:10 ruoso pugs: my @a = [1,2,3]; say @a.elems;
00:10 p6eval pugs: OUTPUT«1␤»
00:10 ruoso and pugs hasn't changed in a long time
00:11 s1n how do i "convert" a Str to a Callable (or something else that can be executed like Callable, maybe Capture)?
00:12 ruoso s1n, er... what is supposed to happen when you invoke a Str?
00:12 s1n ruoso: i have it as a string and i want it as a callable
00:12 Infinoid like eval?
00:13 cspencer joined #perl6
00:13 ruoso rakudo: my $x = "Hello" but Callable; say $x();
00:13 p6eval rakudo 120364: OUTPUT«invoke() not implemented in class 'Perl6Str'␤»
00:14 ruoso rakudo: role StrCallable { method invoke { return eval ~self } }; my $x = "1 + 1" but StrCallable; say $x();
00:14 p6eval rakudo 120364: OUTPUT«invoke() not implemented in class 'Perl6Str'␤»
00:15 ruoso I think rakudo is still getting that from lowlevel yet...
00:15 ruoso so you can't really override
00:15 s1n hmm...
00:15 s1n am i supposed to?
00:15 FurnaceBoy joined #perl6
00:15 ruoso rakudo: role StrCallable { method postcircumfix:<( )> { return eval ~self } }; my $x = "1 + 1" but StrCallable; say $x();
00:15 p6eval rakudo 120364: OUTPUT«invoke() not implemented in class 'Perl6Str'␤»
00:15 ruoso pugs: role StrCallable { method postcircumfix:<( )> { return eval ~self } }; my $x = "1 + 1" but StrCallable; say $x();
00:15 p6eval pugs: OUTPUT«*** Must only use named arguments to new() constructor␤    Be sure to use bareword keys.␤    at Prelude.pm line 541, column 5-16␤»
00:16 ruoso pugs: role StrCallable { method postcircumfix:<( )> { return eval ~self } }; my $x = "1 + 1"; $x does StrCallable; say $x();
00:16 p6eval pugs: OUTPUT«*** Unknown syntactic construct: Syn "does" [Var "$x",Val (VType (mkType "StrCallable"))]␤    at /tmp/LnnQjvdxbd line 1, column 89-108␤»
00:16 ruoso rakudo: role StrCallable { method postcircumfix:<( )> { return eval ~self } }; my $x = "1 + 1"; $x does StrCallable; say $x();
00:16 JDlugosz I'll have to look for that when I get to it again in the Synopses.  Do you remember where it was?
00:16 p6eval rakudo 120364: OUTPUT«invoke() not implemented in class 'Perl6Str'␤»
00:17 s1n std: role StrCallable { method postcircumfix:<( )> { return eval ~self } }; my $x = "1 + 1" but StrCallable; say $x();
00:17 p6eval std 26867: OUTPUT«ok 00:04 39m␤»
00:17 ruoso JDlugosz, probably S09
00:17 ruoso but I don't really remember...
00:17 ruoso it's just part of my mindset now ;)
00:17 JDlugosz S03 covers list assignment, but doesn't really cover what it does.
00:18 ruoso because S07 is the one that will get to it
00:18 ruoso since it's really about how to iterate the input list
00:18 JDlugosz I do see that you don't need parens.  @x = 1,2,3;
00:19 ruoso yes... but that's because Perl 6 kinda "implies" the outermost parens
00:19 ruoso but the semantics are the same
00:19 s1n ruoso: does the 'but' keyword require roles?
00:19 ruoso s1n, yes
00:19 JDlugosz I guess the [...] thing is because of context.  although it is an object that does Positional, it is in item context.  Right?
00:20 ruoso JDlugosz, no [...] is intentionally non-flatenable
00:20 JDlugosz Looks like for assignment anyway, @x=1,2,3 works because it parses like a listop.  So its behavior is the same as binding parameters to a listop.
00:20 ruoso in terms of implementation
00:20 ruoso yes
00:20 ruoso it's kinda like...
00:21 ruoso my @x = infix:<,>(1,2,3)
00:21 JDlugosz sln: you can say but with a value, and the class (not role) is what is mixed in.
00:22 JDlugosz Thanks ruoso, I have a lot to re-read and swap in.
00:22 JDlugosz I wonder if I can do it effectively part time?
00:22 ruoso glad to help
00:22 JDlugosz less than part time... on the side, so to speak.
00:22 JDlugosz In between household chores and other projects.
00:23 ruoso well... the specs without #perl6 log get really harder to grok
00:23 ruoso a lot happens during the discussions here
00:25 JDlugosz When I was travelling and reading the specs, I did not have access.
00:26 skids would it be more accurate to say "captures are lists when they are in list context"?
00:26 JDlugosz Captures are always lists.  They support the Positional role.
00:26 orafu joined #perl6
00:27 skids lists mean more than that though
00:27 JDlugosz What more does it mean?
00:27 skids laziness
00:27 agentzh joined #perl6
00:28 JDlugosz So is it not lazy if you don't look at it in a list context?
00:28 ruoso std: sub foo { return 1,2,3,:a<b>,:c<d> }; my @a := foo(); say @a<a>;
00:28 p6eval std 26867: OUTPUT«ok 00:03 38m␤»
00:28 JDlugosz ruoso:  that reminds me.  The @% is going to play havoc with custom indexers.
00:29 ruoso "custom indexers"?
00:29 JDlugosz The two roles will be fighting over poscircumscript:<{}>
00:29 ruoso which roles?
00:29 JDlugosz indexer:  using {} on an @array to do cusom-defined indexing.
00:30 JDlugosz which roles: Positional and Associative.
00:30 ruoso ah... well... it's an API... there are always going to be corner cases
00:31 JDlugosz See "User-defined array indexing" in S09.
00:32 JDlugosz to DWIM, the user-defined index only works when going through the @-bound variable, eg. seen as a Positional.
00:32 skids JDlugosz: e.g. $a = \(1, 2); # <-- capture, not yet a list, because it doesn't know its context yet
00:33 ruoso skids, $a = \(1,2) is pretty pointless
00:33 JDlugosz To make it work under the hood, it implies that the operator resolution does use the static type information, which then imples that this operator has to be an ordinary method, not a MMD.
00:33 skids ruoso: not if you want to pass arguments around with a single handle
00:33 JDlugosz skids:  $a[1] will return 2.
00:34 skids yes, captures do Positional, so?
00:34 JDlugosz skids:  you are missing the new rules that (...) is a Capture constructor, no need for leading \.
00:34 ruoso std: sub foo {}; my $x = (1,2); foo(|$x);
00:34 p6eval std 26867: OUTPUT«ok 00:03 40m␤»
00:34 skids Those are not in the Synopsis yet?
00:35 ruoso partly
00:35 JDlugosz See backlog, yesterday 02:42 UTC.
00:35 JDlugosz That's when he explained it to me.
00:35 JDlugosz skids:  see <http://irclog.perlgeek.de/perl6/2009-05-17>
00:36 JDlugosz skids:  changes are in S02 that I've studied, but with some rough edits and things that need to be explained.
00:37 * ruoso night &
00:42 orafu joined #perl6
00:51 skids JDlugosz: S02 Literals has some verbiage that probably needs work in <foo bar> -- search for "autopromoted"
00:58 agentzh joined #perl6
01:03 cspencer_ joined #perl6
01:04 orafu joined #perl6
01:10 skids now that the line number anchors are gone from Synoposis, has anyone suggested a POD way to add named anchors.  Other than the ones that are auto-added to HTML <DT>'s ?
01:17 * ruoso was looking at the wolframs alpha thing in a hopefull way... but then I just found the following quote in the FAQ: "It only deals with facts, not opinions" -- geez... seriously... how can someone start such an ambitious project with XIX's century philosophical background...
01:19 skids Heh.  And their "Sample input" uses such hard "facts" as the US GDP.
01:20 ruoso not this time someone will get something at least as usefull as google...
01:23 wayland76 Just wanted to comment about the guy "Alexey Grebenschikov" who keeps sending whitelist requests to people on p6l
01:23 lambdabot wayland76: You have 3 new messages. '/msg lambdabot @messages' to read them.
01:23 skids These days I'd settle for an astroturf tracker.
01:24 wayland76 I don't think unsubscribing him is going to cut it.  I think the only way is to have one of our Russian-speaking members complain to him
01:25 orafu joined #perl6
01:25 skids A few of my friends think they might have got a guy arrested in i think singapore by calling the embassy and saying he was shaming the country.  (I thought that was a bit over the top)
01:26 skids Probably wouldn't work in Russia though.
01:43 JDlugosz skids:  re S02 noted.
01:46 orafu joined #perl6
01:49 s1n skids: wouldn't work in america either, we're use to shaming ourselves :/
01:54 skids Really? I thought we were just shameless. :-)
01:54 Infinoid ... is that illegal?
01:55 skids When your government is fascist, illegal is someone's whim.
01:56 Infinoid uck, sad but true
01:57 eternaleye joined #perl6
01:57 skids You know, sorta like all the great financial "innovations" we've made here in the US that are somehow less punishable for the "innovators" than smoking a joint is for joe six pack.
02:00 Infinoid Well, they own the place.  What can you do?
02:00 Infinoid Stage 1: make perl 6.  Stage 3: profit
02:01 justatheory joined #perl6
02:04 jonathanturner joined #perl6
02:04 eternaleye joined #perl6
02:08 eternaleye joined #perl6
02:09 orafu joined #perl6
02:12 agentzh joined #perl6
02:13 wayland76 Well, I'm always willing to give people the benefit of the doubt; if we explain things to him, he may feel sufficiently ashamed (and take appropriate action) without anything else being necessary
02:34 orafu joined #perl6
02:39 s1n who's handing out commitbit to github.com/perl6?
02:40 sri_kraih_ joined #perl6
02:46 skids s1n: pmichaud was the one who created that account IIRC
02:49 s1n pmichaud: hook me up?
02:50 Tene s1n: pmichaud doesn't seem to be around tonight.  Do you have a CLA with TPF?  iirc, they still require committer agreements for commit privs to rakudo.
02:50 Tene Not completely sure, though.
02:50 orafu joined #perl6
02:51 s1n Tene: pmichaud said at our p6m meeting on tuesday that CLA wasn't needed for the github account yet
02:51 s1n supposed to have liberal commit access
02:53 Tene s1n: I'm wrong, then. :)
02:54 s1n Tene: who should i talk to about the cla?
02:55 Tene s1n: If pmichaud says you don't need cla, then you don't need cla.
02:56 Tene You need to talk to pmichaud about commit access.
02:56 s1n Tene: right, but i want to ask a question or two about the cla
02:56 Tene i don't know if anyone else has the password to that github account, and github doesn't let you delegate admin privs :(
02:56 Tene s1n: several people in #parrot would know more... coke and particle at least.
03:04 agentzh joined #perl6
03:11 orafu joined #perl6
03:11 mib_msjzva joined #perl6
03:20 donaldh joined #perl6
03:21 Kisu joined #perl6
03:33 orafu joined #perl6
03:40 agentzh joined #perl6
03:42 orafu joined #perl6
03:54 orafu joined #perl6
03:55 cspencer joined #perl6
04:11 alester_ joined #perl6
04:16 orafu joined #perl6
04:24 agentzh joined #perl6
04:37 orafu joined #perl6
04:42 sparc joined #perl6
04:58 dukeleto joined #perl6
04:58 orafu joined #perl6
05:01 pugs_svn r26868 | jdlugosz++ | Fix one typo, s/know/known/.  Really just low-hanging fruit to test my Commit access and procedures therein.  I'm assuming that the VERSION block is updated manually before checking in, and all versions are numbered sequentially even if a typographic change.
05:06 JDlugosz_ joined #perl6
05:09 payload joined #perl6
05:19 JDlugosz_ Question:   regarding:  for lines($*ARGFILES) {...}
05:20 JDlugosz_ is that the same as $*ARGFILES.lines() ?
05:20 orafu joined #perl6
05:20 JDlugosz_ Or is there some reason for using the sub form there?
05:38 frew joined #perl6
05:39 ejs joined #perl6
05:40 JDlugosz joined #perl6
05:41 orafu joined #perl6
05:57 agentzh joined #perl6
05:59 sri_kraih joined #perl6
06:02 orafu joined #perl6
06:04 DemoFreak joined #perl6
06:23 orafu joined #perl6
06:28 agentzh joined #perl6
06:33 pugs_svn r26869 | moritz++ | [t/TASKS] links to p6l mails
06:41 _mg_ joined #perl6
06:42 harig joined #perl6
06:49 orafu joined #perl6
06:51 agentzh joined #perl6
07:00 ejs joined #perl6
07:05 orafu joined #perl6
07:07 masak joined #perl6
07:11 ejs1 joined #perl6
07:12 masak a good morrow, fellow seekers of Perl 6.
07:15 moritz_ oh hai masak
07:15 moritz_ masak: being up earlier than you is kind of a disturbing experience :-)
07:16 masak moritz_: I'm working on it. :)
07:16 finanalyst joined #perl6
07:16 masak haven't really had the discipline to rise early since Friday two weeks ago.
07:17 masak today I got unexpected help from a fellow with a loud drill.
07:17 finanalyst rakudo: my $f=open("README",:r);say $f.get;
07:17 p6eval rakudo 120364: OUTPUT«=head1 Rakudo Perl 6This is Rakudo Perl, a Perl 6 compiler for the Parrot virtual machine.Rakudo Perl is Copyright (C) 2008-2009, The Perl Foundation.Rakudo Perl is distributed under the terms of the Artistic License 2.0.For more details, see the full text of the license in
07:17 p6eval ..the f...
07:18 moritz_ finanalyst: that's clearly wrong, and there's a ticket for that in RT
07:18 finanalyst moritz_: ah ok
07:19 finanalyst i just figured out why my local perl6 didnt like 'get'
07:19 finanalyst then discovered get != lines(1)
07:19 masak .oO( fun to see p6eval say '...the f...' for once )
07:20 moritz_ hm, I could replace the ... by ellipsis
07:20 finanalyst ;) i thought it was part of the get output LOL
07:20 moritz_
07:21 donaldh joined #perl6
07:21 masak finanalyst: it was.
07:21 payload joined #perl6
07:22 _maja joined #perl6
07:22 pugs_svn r26870 | moritz++ | [evalbot] add ellipsis when truncating output (instead of three dots)
07:23 payload joined #perl6
07:23 p6eval joined #perl6
07:23 finanalyst shame it wasnt <... the f... > for everything
07:23 moritz_ rakudo: say $*IN.get
07:23 p6eval rakudo 120364: OUTPUT«Land der Berge, Land am Strome,Land der Äcker, Land der Dome,Land der Hämmer, zukunftsreich!Heimat bist du großer Söhne,Volk, begnadet für das Schöne,vielgerühmtes Österreich,vielgerühmtes Österreich!Heiß umfehdet, wild umstrittenliegst dem Erdteil du inmitten,einem starken
07:23 p6eval ..Herzen …
07:24 finanalyst does rakudo have a nice way of querying the current working directory?
07:24 * moritz_ doubts that
07:24 finanalyst or is this still unspecified?
07:27 orafu joined #perl6
07:27 masak finanalyst: do a run(...) call in which you write `pwd` to file, slurp the file into a string, remove the file.
07:27 masak finanalyst: that's what I usually do. :/
07:32 finanalyst masak: thanx. i got something working over the weekend for $work. Outputs to ploticus for nice graphs. but i want some gui widgets to control the input parameters.
07:32 masak finanalyst: sounds interesting.
07:33 finanalyst i will be using the png's for a presentation tomorrow.
07:34 finanalyst and if anyone wants to reproduce my results, they will have to look at my perl6 code :)
07:34 finanalyst lots of reduce, X, and Z operators!
07:35 Maghnus joined #perl6
07:36 masak nice.
07:39 Matt-W Morning
07:39 Matt-W I updated Rakudo, and Form seems to have broken :(
07:39 Matt-W I shall investigate when I'm not at work
07:40 Matt-W Going to hope that I was relying on a broken something in Rakudo
07:41 masak Matt-W: my sympathies, regardless of the cause.
07:41 masak Matt-W: now, aren't you glad you have tests? :)
07:48 _maja left #perl6
07:51 Matt-W masak: very glad
07:51 Matt-W I would've fixed it, but I had to go to work :(
07:51 Matt-W Where I get to do unfun programming
07:51 masak Matt-W: there's always the evening.
07:51 Matt-W It's Day Three of Track Down The Deadlock And Figure Out How To Fix It Without Causing Another Problem
07:52 masak Matt-W: been there, done that.
07:52 Matt-W I'm going out for dinner this evening!
07:52 masak Matt-W: well, there's always tomorrow.
07:52 moritz_ wow, my blog finally made it into the ironman feed
07:52 Matt-W Recorder lesson and viol group tomorrow :P
07:53 orafu joined #perl6
07:55 masak Matt-W: now you're just making stuff up. :P
07:56 masak moritz_: congrats.
07:57 masak is there a page with a list of how many consequtive weeks people in the ironman feed have kept it up?
07:57 moritz_ not that I know of
07:57 masak it's an app that just begs to be made.
07:58 moritz_ ...and that was promised to us anyway :-)
07:59 moritz_ anyway, May really feels like christmas
07:59 moritz_ custom operators
07:59 moritz_ and annotated backtraces
08:00 masak indeed.
08:00 masak pmichaud++ jnthn++ Tene++
08:00 Matt-W Yeah!
08:00 * Matt-W hangs up his stocking
08:00 Matt-W ...and waits for the antihistamines to kick in
08:01 moritz_ Matt-W: oh, you're one of that unfortunate kind?
08:01 moritz_ my girlfriend too
08:02 * masak cannot process stockings either
08:04 Matt-W moritz_: yeah me and my sister both. Not fun.
08:05 keepguessing do we have any good debuggers for multithreaded applications [I am asking for someGUI tool for debugging on linux...]
08:05 masak keepguessing: is this a Perl 6 question?
08:06 keepguessing Ah masak ... appologies wrong place :)
08:06 masak keepguessing: seems so. :) mind you, people might still give you a good answer. I'd sure like to know about such a debugger.
08:07 keepguessing Hopefully masak :)
08:08 moritz_ I learned about verifying such applications, but never debugged them :-)
08:09 masak moritz_: sounds like a paraphrase of Knuth. :)
08:09 Matt-W I've never encountered a debugger that was very good at multithreaded stuff
08:09 masak Eclipse's debugger is OK, I guess.
08:09 Matt-W Tolerable
08:10 Matt-W Visual Studio's is OK too
08:10 masak aye.
08:10 Matt-W (shame about the rest of it)
08:10 moritz_ masak: I know, but it's actually true :-)
08:10 masak moritz_: :)
08:12 moritz_ we used this tool: http://spinroot.com/spin/whatispin.html
08:13 masak what's the name of Perl 5's $0 in Perl 6?
08:13 masak $*PROGNAME ?
08:13 * moritz_ thinks so
08:14 masak ok, would it be possible to extract the directory of the script from that variable?
08:14 moritz_ rakudo: say $*PROGNAME
08:14 p6eval rakudo 120364: OUTPUT«Use of uninitialized value␤␤»
08:14 masak more to the point, is a method specced somewhere that gives the directory of a file?
08:15 moritz_ in Perl 5 you can use Cwd::rel2abs(__FILE__) or so
08:16 masak let me just dream aloud a little: my $template-dir = Path.join( Path.dirname( $*PROGNAME ), 'templates' );
08:16 masak something like that. modulo exact names of things.
08:16 moritz_ rakudo: print $*PROGRAM_NAME
08:16 p6eval rakudo 120364: OUTPUT«/tmp/vETupwS1cn»
08:16 masak ooh!
08:17 masak halfway there...
08:17 moritz_ notice that p6eval gives absolute pathes to rakudo
08:17 masak yes, good point.
08:17 moritz_ I don't know if it's absolute if the path on the command line is relative
08:17 masak no, it isn't.
08:18 masak and if it's an -e execution, the value is '-e'.
08:18 moritz_ just like in Perl 5 :-)
08:19 masak I can create a file called '-e'. when I execute that, I also get '-e' :)
08:19 masak probably not an issue to worry about...
08:20 moritz_ don't name your files '-rf *'
08:20 masak I won't.
08:20 moritz_ in case somebody does a run("rm $*PROGRAM_NAME") :-)
08:20 moritz_ of course somebody who does that would deserve the result
08:23 pugs_svn r26871 | pmurias++ | [re-mildew]
08:23 pugs_svn r26871 | pmurias++ | fixed --valgrind
08:23 pugs_svn r26871 | pmurias++ | added make test-no-valgrind
08:23 pmurias joined #perl6
08:30 orafu joined #perl6
08:32 finanalyst is there any way of getting some information about the last line of a program executed before a runtime error?
08:32 masak finanalyst: it's funny you ask...
08:32 masak finanalyst: this was added just a couple of days ago.
08:32 Matt-W It made us feel Christmassy
08:32 masak it's not perfect -- if you're in an anon block it won't tell you, for example.
08:33 moritz_ at least for Perl 6 level errors
08:33 moritz_ for the famous Null PMC access not
08:35 masak that's because the famous Null PMC access shouldn't be exposed, at all.
08:36 masak hence, there's no need to provide a stacktrace. :)
08:36 moritz_ I disagree.
08:36 moritz_ it would help finding the location nonetheless
08:37 moritz_ ideally it would print the Perl 6 stack trace, and on top of that the PIR thing up to where the Perl 6 stack trace starts
08:39 moritz_ I just don't know if that's doable, and worth the effort
08:39 Matt-W It would be nice to know what thing was null
08:39 Matt-W And what it was trying to do to it
08:40 moritz_ I guess that's a non-trivial parrot limitation
08:40 Matt-W Otherwise it's no better than 'Segmentation fault'
08:40 moritz_ it's better in that it's not a security risk.
08:40 moritz_ but it *is* parrot's equivalent of a segfault
08:40 Matt-W That is of very little comfort to the working programmer
08:42 moritz_ I know
08:42 finanalyst so if I do a git pull, the current rakudo will give more trace support ?
08:42 moritz_ aye
08:42 finanalyst thanx. trying
08:42 moritz_ rakudo: module A { sub b { die "foo" } }; A::b()
08:42 p6eval rakudo 120364: OUTPUT«foo␤in sub A::b (/tmp/qMhOlCvYNL:1)␤called from Main (/tmp/qMhOlCvYNL:1)␤»
08:43 moritz_ that's already much nicer than it used to be
08:52 orafu joined #perl6
09:07 ejs2 joined #perl6
09:07 jnthn morning, folks
09:08 moritz_ oh hai jnthn
09:09 bacek joined #perl6
09:10 masak ako sa maš, jnthn.
09:11 masak (took me a while to find 'š' in the slovak input mode in LEIM.)
09:12 moritz_ heh, I just wrote my best commit message so far: 'be nice()'
09:13 jnthn masak: Mam sa dobre, a ty?
09:13 orafu joined #perl6
09:13 masak jnthn: Mam sa výborný. :)
09:14 masak .oO( I might have gotten the ending wrong there... )
09:14 jnthn masak: No, it's correct.
09:14 masak oh, výborný. :)
09:15 masak what's this 'ý' thing, by the way? is it anything like the Russian 'ы'?
09:15 jnthn That probably wasn't though, since if you've not got something in the sentence to explicitly make you want the masculine form, you tend to to write the neuter form.
09:16 jnthn No, it's pronounced just like "i" but it doesn't cause auto-paletization of anything before it.
09:16 masak oh, ok.
09:17 jnthn If you write various letter combinations, e.g. ti, ni, etc then the t or n in those is implicitly soft.
09:17 jnthn Whereas with ty and ny it wouldn't be.
09:18 masak jnthn: oh, so if I were female, 'Mam sa výborný' would be incorrect too?
09:18 jnthn masak: Yes.
09:18 masak jnthn: I get the auto-paletization thing. that's typically slavic.
09:18 jnthn *nod* Happens in Russian too.
09:19 masak there's a macro in Russian, 'ъ', for preventing auto-paletization.
09:20 jnthn From what I understood, it's quite rarely used these days.
09:21 masak yes, it got de-promoted in the beginning of the 20th century, in some spelling reform.
09:21 masak ah, shortly after the 1917 revolution.
09:21 payload joined #perl6
09:30 jnthn masak: 65740 is closable now I think
09:30 * jnthn needs to do $other_jobs for a bit
09:30 * masak checks
09:33 masak rakudo: run('./perl6 -e "die q[OH NOES]" > /dev/null')
09:33 p6eval rakudo 120364: OUTPUT«OH NOES␤in Main (<unknown>:1)␤»
09:33 masak rakudo: run('./perl6 -e "die q[OH NOES]" 2>/dev/null')
09:33 p6eval rakudo 120364:  ( no output )
09:34 masak seems fine to me.
09:34 * masak closes
09:34 ejs1 joined #perl6
09:34 orafu joined #perl6
09:36 payload1 joined #perl6
09:39 pichina joined #perl6
09:40 bacek joined #perl6
09:45 jferrero joined #perl6
09:47 jferrero left #perl6
09:50 payload joined #perl6
09:51 pichina left #perl6
09:56 orafu joined #perl6
09:57 presh joined #perl6
09:58 iblechbot joined #perl6
10:01 payload joined #perl6
10:04 NoirSoldats joined #perl6
10:06 pmurias ruoso: hi
10:08 pmurias ruoso: i'm wondering if writing a valgrind plugin to show the leaky objects as a graph would be a good idea
10:08 ruoso pmurias, it would be cool... but I'm afraid it would take too long
10:08 ruoso maybe just enabling the old MEM_TRACE
10:09 * ruoso just woke up... need to go to work...
10:16 Gothmog_ joined #perl6
10:17 orafu joined #perl6
10:22 bacek joined #perl6
10:30 masak I sometimes feel the need to create a scope as an object, and run eval on that particular scope. has there been any discussion on that previously?
10:30 masak it would solve the REPL suckiness, and it would help in Hitomi, I think.
10:31 * jnthn doesn't quite get what masak wants
10:32 masak jnthn: my $scope = Scope.new(); $scope.eval('my $a = 5'); #[ $a doesn't exist in this scope ] $scope.eval('say $a') # prints 5
10:33 masak maybe 'environment' or something would be a more appropriate term.
10:33 masak 'context' :)
10:34 jnthn Persistent lexical store between evals?
10:35 masak that sounds like what I'd want, yes.
10:35 masak also known as 'working with your variables at arm's length'.
10:36 wayland76 I like the idea, I'm just not sure if "eval" is the word we want.
10:37 wayland76 Because eval usually, as you point out, implies a scope.
10:37 jnthn aye
10:37 masak oh, call it something else if that feels better. :)
10:37 masak my question is: can it be done?
10:38 wayland76 I just think that "eval" should replace the existing code, whereas what you want to do sort of appends more code , and execution continues from where it was
10:38 wayland76 sort of like "tail -f" with execution or something
10:39 masak my proposal is a generalisation of eval, since eval always works on the current lexical environment.
10:39 orafu joined #perl6
10:39 moritz_ something like eval($code, $pad($pad_object))
10:39 moritz_ something like eval($code, :pad($pad_object))
10:40 masak it's worth thinking about whether closures constitute such lexical environments, and this generalized eval should simply be a method on Code, or something like that.
10:40 masak rakudo: my $a = {;}; say $a.WHAT
10:40 p6eval rakudo 120364: OUTPUT«Block()␤»
10:40 jnthn "run this code as if it's outer block was this"
10:41 masak on Block, then.
10:41 jnthn my $block = { my $x = 42 }; $block.eval_inner('say $x'); # or something
10:42 ruoso jnthn, I think at some point you'll need to expose the lexic
10:42 ruoso *lexical scope as a high level object
10:43 jnthn ruoso: Perhaps; I expect anything doing that is going to be highly platform specific though.
10:43 ruoso my $scope = LexicalScope.new; $scope<$a> = 5; eval 'say $a' :outer($scope);
10:43 masak ruoso: so it wouldn't be enough to consider a Block as its own lexical scope?
10:43 jnthn Lexical scopes are (in Parrot) immutable, at least by default.
10:44 ruoso so...
10:44 jnthn And I'd rather that didn't chang.e
10:44 ruoso my $scope = LexicalScope.new('$a'); $scope<$a> = 5; eval 'say $a' :outer($scope);
10:44 jnthn Yes, somehting more like that could work.
10:44 ruoso I'd be fine with it...
10:44 ruoso anyway...
10:45 * ruoso commute &
10:48 Matt-W Whee! Found the deadlock
10:48 Matt-W As usual it's a classic
10:48 masak Matt-W++
10:48 Matt-W Thread A takes lock A then wants lock B, but thread B already has lock B and is blocking on lock A
10:48 Matt-W The trouble is now my colleague and I need to figure out how to make sure it can't happen
10:48 pmurias masak: having eval as method on LexicalScope instead of a multi is undesirable as the lexical scope don't know what your current language is
10:49 Matt-W Still, at least I managed to strip away the obscuring layers of several other threads which were wanting locks C and D, which those two threads had already taken
10:49 masak pmurias: agreed.
10:49 Matt-W This makes Form.pm look easy :)
10:49 moritz_ Matt-W: make thread B want lock A first too
10:49 szbalint joined #perl6
10:49 moritz_ Matt-W: even if it doesn't need it
10:49 Matt-W moritz_: it does need it, but it currently doesn't realise until too late
10:49 moritz_ Matt-W: but if all threads claim all locks in the same order, there can be no such deadlocks
10:50 Matt-W absolutely true
10:50 Matt-W there is actually some doubt over whether it needs to hold lock B while it takes lock A
10:50 pmurias it could give back lock B and then take lock A and B in the correct order
10:57 Matt-W hmm it's looking like it doesn't need lock A at all
10:57 Matt-W there's some really twisted stuff going on here. Can I get a job working on Rakudo instead please?
11:00 icwiener joined #perl6
11:00 jnthn Matt-W: 'cus that's *never* twisted.
11:01 jnthn Matt-W: btw, your first assignment is to hunt down a GC bug cuasing a test fail. ;-)
11:02 moritz_ speaking of which, are we going to regress on slice.t for the release?
11:04 jnthn moritz_: May be wise do so in order to avoid lots of reports about it.
11:04 jnthn Plus I don't see it getting fixed before the release.
11:05 orafu joined #perl6
11:13 Avada joined #perl6
11:15 payload joined #perl6
11:19 amoc joined #perl6
11:20 donaldh joined #perl6
11:43 orafu joined #perl6
11:57 [particle]1 joined #perl6
12:06 [particle] joined #perl6
12:17 ruoso joined #perl6
12:18 * ruoso bak!
12:20 pmurias ruoso: i'm working on making memcheck spit out a graph
12:21 ruoso cool
12:24 orafu joined #perl6
12:27 pmurias ruoso: how are we going to distribute the modified valgrind?
12:28 ruoso pmurias, I guess you should cooperate with upstream instead of distributing it as a custom valgrind
12:29 pmurias you mean make it a decent patch instead of a quick hack ;)
12:29 ruoso yeah... ;
12:29 ruoso :)
12:35 masak I had t/spec/S32-io/IO-Socket-INET.t fail on me during make spectest, but when I run it independently, it succeeds.
12:40 pmurias ruoso: graphviz is the think i should be using to display the graph?
12:41 ruoso yeah... it certainly is the easiest thing to do...
12:41 pmurias dot is choking on overly big graphs :(
12:42 moritz_ you usually just need enough memory :-)
12:46 payload1 joined #perl6
12:50 abra joined #perl6
13:28 orafu joined #perl6
13:28 pmurias ruoso: is just a simple graph showing the dependency of pointer addreses on each other usefull?
13:32 ruoso might be
13:34 ejs2 joined #perl6
13:40 skids joined #perl6
13:50 orafu joined #perl6
13:50 lambdabot joined #perl6
13:50 PacoLinux joined #perl6
14:00 masak rakudo: $a = my $a
14:00 p6eval rakudo 120364: OUTPUT«Null PMC access in getprop()␤»
14:00 ejs1 joined #perl6
14:01 masak rakudo: my $a = ($a // 0) + 1; say $a
14:01 p6eval rakudo 120364: OUTPUT«1␤»
14:02 masak when exactly does a variable come into existence in Perl 6?
14:02 jnthn after the my $a
14:02 masak jnthn: not sure I grok fully what that means within a statement.
14:03 jnthn my $a =
14:03 masak is the first example valid?
14:03 Matt-W no
14:03 jnthn ^ from here you can use it
14:03 masak std: $a = my $a
14:03 p6eval std 26871: OUTPUT«Potential difficulties:␤  Variable $a is not predeclared at /tmp/1YJmrnyyvm line 1:␤------> [32m$a[31m = my $a[0m␤ok 00:02 36m␤»
14:03 Matt-W because the $a is used before the my $a happens
14:03 masak fair enough.
14:03 jnthn Right, STD is right there.
14:03 masak so the second example is indeed valid?
14:03 jnthn afaik yes
14:03 masak good.
14:04 jnthn masak: BTW, that's how my Dog $fido .= new works.
14:04 masak oh, right.
14:04 Tene morning all
14:04 Matt-W my Dog $fido = $fido.new, I assume
14:04 jnthn Since it de-sugars to my Dog $fido = $fido.new
14:04 masak Tene: oh hai!
14:04 Tene O  HAI MASAK
14:04 jnthn Tene: lolz hai
14:05 masak Tene: today I've been to #python-genshi, talking with the nice Python people.
14:05 Tene I don't want to write blog post about inter-hll library loading until I get spec review from pmichaud.
14:05 Tene But I got it working!
14:05 masak wow, cool!
14:05 masak Tene++
14:05 jnthn Tene++
14:05 Matt-W jnthn: and, if I understand correctly, after my Dog $fido, $fido is a Dog proto-object, so calling .new on it makes it give you a real Dog object
14:05 Tene http://gist.github.com/113308
14:06 masak Matt-W: except we call'em "type objects" now.
14:06 Tene It works the other direction too.
14:06 ruoso std: $a = my $a;
14:06 FurnaceBoy joined #perl6
14:06 p6eval std 26871: OUTPUT«Potential difficulties:␤  Variable $a is not predeclared at /tmp/RIZ73liR4O line 1:␤------> [32m$a[31m = my $a;[0m␤ok 00:02 36m␤»
14:06 Tene But just in a branch, for rakudo.
14:07 masak Tene: wow, that's... wow.
14:07 Matt-W Tene: That is the best thing I've seen all day, by miles
14:07 Matt-W (since all I've seen all day is my own utter stupidity, I may have to upgrade that to all week)
14:07 jnthn Matt-W: Correct.
14:07 Matt-W So now all we need is a completely correct working Perl 5 for Parrot, and we've got a migration path :)
14:08 jnthn Tene: That is The Awesome. :-)
14:09 Tene :)
14:09 masak Matt-W: it's surely a large project to port Perl 5 to Parrot. but I still think it could be done.
14:09 masak Matt-W: I've been looking for clues why the previous attempts failed. haven't found much.
14:09 Matt-W I think part of the problem is that Perl 5 is so nebulous
14:09 Matt-W How do you know when you've got it right?
14:10 masak tests?
14:10 jnthn I suspect with Perl 5 the way it'll go is embedding.
14:11 jnthn I've already pondered having a crack at embedding Perl 5 and seeing what it'd take ot make it look like a HllCompiler.
14:11 jnthn *to
14:11 jnthn Which would at least get us able to eval in Perl 5.
14:11 jnthn Then build it out from there.
14:12 avar What is required to build a HLLCompiler? I'm familiar with Perl embedding but not with parrot
14:12 ruoso jnthn, I always thought you would implement it as a parrot language as well
14:13 masak let's leave it open as a possibility, shall we?
14:13 masak it's a darned big project, but we gotta have something to look forward to after 6.0.0... :P
14:13 avar masak: The previous attempt (that Nicholas did) failed because Parrot was unstable and didn't implement much of the required features for getting anything basic working, but that was years ago and things might be more mature now.
14:13 masak avar: that was a reason I was hoping for.
14:13 Matt-W well Parrot's good enough for Rakudo, so...
14:13 masak it's definitely not stable, but definitely more stable than a few years ago.
14:13 Matt-W (mostly)
14:14 Matt-W I didn't think Perl 5 was embeddable
14:14 avar Matt-W: *now* it is, but at the time I think you were lucky to be able to implement bc(1) on it:)
14:14 Matt-W avar: yeah it was a bit dodgy back then :)
14:15 avar Matt-W: Perl 5 is very embeddable, although the API isn't ideal, you can even inject your own ops, replace the runloop etc.
14:15 avar Which is what perl -d does (replace the runloop)
14:16 Matt-W interesting
14:16 Matt-W that would perhaps be a far saner course than reimplementing it
14:16 avar Yes:)
14:18 jnthn ruoso: I think embed but make it look as much as possible like you're dealing with a Parrot language has a much higher chance of success.
14:19 jnthn ruoso: I'm open to people trying other approaches too of course. But if I was going to help with one, I'm much more inclined to go for the quick win.
14:19 ruoso i see...
14:19 ruoso but I wonder if having the whole stack in Parrot wouldn't make the integration more powerfull
14:20 ruoso of course XS would be a problem
14:20 jnthn Right.
14:20 jnthn I just see far too many problems to solve with anything other than the embeding route.
14:20 ruoso but I wonder if a lot of what's in XS wouldn't be ported to parrot anyway
14:20 jnthn Which in itself will have enough difficulties anyway.
14:21 Matt-W I think embedding is definitely worth a try
14:21 Matt-W A serious try
14:21 ruoso the harder issue is the way p5 recurses in the C stack
14:21 Matt-W and if it can be wrapped up in something that looks like a Parrot HLL, that'd be fantastic
14:22 ruoso I already consider a custom p5 for SMOP integration...
14:24 pmurias ruoso: Coro takes care of everything
14:25 ruoso not everything... when you 'require', it will still recurse in the C stack
14:27 skids joined #perl6
14:30 masak rakudo: multi infix:<o_O>(Str $a, Str $b) { ($a.comb Z $b.comb).join("") }; say "HloWrd" o_O "el ol!"
14:30 p6eval rakudo 120364: OUTPUT«Hello World!␤»
14:30 masak :->
14:31 Matt-W that's twisted
14:31 Matt-W but rather entertaining
14:31 simcop2387 neat
14:31 masak Perl 6 is deeply neat.
14:31 jnthn omg.
14:32 * Matt-W feels his internal counter remove a day until Christmas
14:32 Tene jnthn: eh?
14:34 pmurias ruoso: Coro saves the C stack
14:36 jnthn Tene: Just being horrified/impressed by masak's infix. :-)
14:36 Tene ah
14:37 masak there's more where that came from! :P
14:38 masak not right now, though...
14:42 Matt-W rakudo: multi postfix:<:-)>(Str $a) { $a ~ " :-)"}; say $a :-)
14:42 Matt-W bah
14:43 p6eval rakudo 120364: OUTPUT«Scope not found for PAST::Var '$a' in ␤in Main (src/gen_setting.pm:3122)␤»
14:43 Matt-W think before you type
14:43 Matt-W rakudo: multi postfix:<:-)>(Str $a) { $a ~ " :-)"}; say "A" :-)
14:43 p6eval rakudo 120364: OUTPUT«A :-)␤»
14:43 Matt-W I can cause so much mess with this
14:43 Matt-W muahahaha
14:43 * Matt-W rewrites Form to use custom operators instead of subs
14:44 Matt-W Can we do circumfix operators yet?
14:44 masak Matt-W: try it!
14:47 Matt-W I can't think of one now
14:47 Tene yes, we can.
14:47 Matt-W woohoo!
14:47 Tene rakudo: sub circumfix:<` `> ($a) { say "omg dood: $a" }; `"matt-w"`
14:48 p6eval rakudo 120364: OUTPUT«omg dood: matt-w␤»
14:48 Tene I have a local library I haven't committed anywhere that uses ⦃ 1, 3, 5 ⦄ to define a set.
14:49 Tene That's what i implemented the circumfix ops for, actually.
14:49 Tene http://blogs.gurulabs.com/stephen/2009​/05/new-toys-in-perl-6-custom-ops.html
14:49 Matt-W nifty
14:51 masak mberends: DO YOU REALIZE WHAT THIS MEANS!?!?
14:51 * masak calms down a bit
14:53 masak mberends: ahem. it means that we can work around the lack of `...` in Rakudo using a syntax that looks exactly like that.
14:53 masak mberends: it should even be possible to make it forwards-compatible. :)
14:56 ruoso masak, it doesn't really look like... because of the extra " "
14:56 masak oh no... :/
14:56 * masak didn't think of that
14:58 masak oh well, it's back to oval seven, then.
15:04 lambdabot joined #perl6
15:04 wayland76 joined #perl6
15:20 donaldh joined #perl6
15:28 masak actually, I'm not sure where the `...` effort stalled this time. ISTR writing to the Parrot list, and people answered, "yes, we'll get to it".
15:29 pmichaud good morning, #perl6
15:30 masak mornin', pmichaud.
15:30 pmichaud (custom circumfix)  I should note that the current code for defining custom circumfixes may be particularly fragile
15:30 masak pmichaud: it seems there will indeed be a Perl 6 hackathon in Stockholm by the end of this month.
15:31 pmichaud masak: excellent.  So, "Stockholm" for this month's release?  Or should we wait?
15:31 jnthn hi pm
15:31 masak I think this month is fine.
15:32 pmichaud same possibly for postcircumfix.
15:32 jnthn pmichaud: custom postcircumfixes just don't work.
15:32 pmichaud that's what I would expect.
15:32 jnthn Tried that one already.
15:33 jnthn ;-)
15:33 masak pmichaud: all this talk about fragility... is that an invitation to stress-test some particular aspects of the circumfix operators? :)
15:33 jnthn I was surprised custom circumfixes work.
15:33 pmichaud jnthn: they "work" only through luck, I suspect.
15:33 pmichaud masak: you can stress test them if you want, but fixing them will require protoregexes.
15:33 masak aha.
15:34 * masak remembers discussions about protoregexes from August
15:34 moritz_ back then I wrote something about why they are so important
15:34 moritz_ along with LTM
15:36 cspencer joined #perl6
15:38 Psyche^ joined #perl6
15:41 meppl joined #perl6
15:42 pasteling "pmurias" at 78.8.5.128 pasted "how the leaks in an "1;" look like" (856 lines, 21.5K) at http://sial.org/pbot/36688
15:44 ruoso pmurias, I've isolated a less verbose leak case
15:44 pugs_svn r26872 | ruoso++ | [re-smop] add another test that shows a memory leak;
15:44 pmurias with --empty-setting we have 6 leaks
15:45 Tene pmichaud: did you see my mail?
15:46 pmichaud Tene: I'm catching up on email now.
15:46 Tene OK
15:46 pmichaud I'll jump directly to it if you can tell me the subject line :-)
15:46 pmichaud nm, I found it.
15:47 Tene inter-language library loading spec (and implementation)
15:47 pmichaud I think it was to be named 'load_library'
15:48 Tene That seems semantically odd to me, but allison felt the same way, so sure.
15:48 pmichaud it does actually load the library, doesn't it?
15:48 Tene rakudo, for example, will only *load* the library the first time it's asked for it.
15:48 Tene if I ask for the library again, it just returns the cached copy.
15:49 pmichaud that's consistent with 'load_bytecode', fwiw
15:49 Tene Yeah.
15:49 Tene I don't actually feel strongly about it.
15:49 pmichaud the return value is a hash?
15:49 * ruoso lunch &
15:49 Tene I didn't know exactly what should be returned, so I thought i'd stuff all potentially relevant information into a hash.
15:49 pmichaud part of me wants it to be a Capture
15:50 pmichaud so we can have positional and named return values.
15:51 pmichaud but a Hash is fine for now.
15:51 pmichaud (less complications to worry about)
15:51 pmichaud why is name: ['list', 'of', 'strings']   ?
15:51 pmichaud why not   name: 'list::of::strings'   ?
15:52 Tene use Foo::Bar; import Foo.Bar; require 'Foo/Bar'
15:52 Tene different languages represent libraries differently, but a list of strings seems fairly universal.
15:52 pmichaud I don't understand.  Each compiler already has its own "parse_name" method that would dtrt with a string.
15:53 Tene So it's up to the requesting language to split the name according to their own conventions.
15:53 pmichaud oh, from the requesting language's perspective... hmmm...
15:53 Tene Right.  From perl, I want to say: use Foo::Bar:lang<python>;
15:53 jnthn I don't think the language we're tyring to import the module from should have to know about how to parse modules names from the requesting language.
15:54 Tene not use "Foo.Bar":lang<python>; or whatever
15:54 pmichaud right
15:54 pmichaud okay, makes sense to me.
15:54 jnthn Plus parse_name would assume the import syntax matches the other names syntax, which holds in Perl but I ain't 100% sure about everywhere else...
15:55 pmichaud would it make more sense for the name argument to be a required positional, instead of a named argument?
15:55 pmichaud i.e.,   compiler.'fetch-library'($P0)   instead of having to build a 'request' hash for it?
15:56 Tene That certainly might make more sense.
15:56 Tene I'm not opinionated about that.
15:56 pmichaud I mean, parrot supports true named parameters, we might as well use them :-)
15:57 Tene The only question is whether it's an issue requiring all languages to have a slurpy named parameter in the function signature.  I suspect not.
15:58 pmichaud I would think "not" -- this is a HLLCompiler object, after all.
15:58 Tene Right.
15:58 pmichaud I suppose one might want to create the HLLCompiler object methods in $otherlang... but in that case they can easily shim the slurpy nameds to match the interface.
15:59 exodist joined #perl6
15:59 Tene That was my original hesitation, yes.
16:00 pmichaud since the rest of pct makes use of named arguments and parameters, I'm not sure this is the place to make a distinction.  :-)
16:00 justatheory joined #perl6
16:00 Tene Yes, agreed.
16:00 pmichaud Anyway, I'm very happy with this.
16:00 pmichaud "Make it so."  :-)
16:01 Tene It's not perfect, there are still a few edges that don't work quite right...
16:01 Tene for example, use Foo:lang<bar>; doesn't register Foo as a symbol for the compiler, doesn't create a Foo namespace, etc.
16:02 Tene pmichaud: it's already so.  look at the hll-load-library branch in rakudo.
16:02 Tene merge it to master and it will be implemented in rakudo and cardinal.  the only other big step is adding a similar method to the PIR compiler.
16:04 pmichaud iiuc, use Foo:lang<bar>  shouldn't create a Foo namespace as much as it binds a "Foo" lexical into the current scope.
16:04 Tene Yes, it doesn't do that either.  Yet.
16:04 pmichaud although that Foo lexical really probably ought to be a type-object
16:04 Tene It does work for importing the symbols from the remote namespace, though, as the paste demonstrates.
16:05 Tene So adding additional data to support that should be easy.
16:05 pmichaud correct.
16:05 Tene Anyway, can we get that branch merged into rakudo before the release?
16:05 pmichaud if you merge it, yes :-)
16:05 * pmichaud wields his +1 sword of delegation.
16:07 Tene Pushed.
16:07 masak that was fast.
16:08 Tene pmichaud: can you point out the right place for me to add this to the parrot compiler?  I might have time to do that today.  Or would oyu prefer to wait until after the parrot release?
16:08 pmichaud Tene: parrot compiler meaning HLLCompiler or something else I'm not thinking of at the moment?
16:08 Tene use Foo:lang<PIR>;
16:08 Tene or :lang<parrot>
16:09 Tene or whatever is appropriate there.
16:09 pmichaud do we have a 'parrot' compiler yet?
16:09 pmichaud or are you proposing to create it?
16:09 Tene There's a registered PIR compiler, at least.
16:09 pmichaud yes, but it's not a HLLCompiler, nor does it have methods.
16:09 Tene ah.
16:10 pmichaud my idea has been to create a 'parrot' HLLCompiler, that does support the method interface
16:10 Tene Yes, me too.
16:10 Tene Loading parrot libraries from rakudo has been a long-requested feature.
16:10 pmichaud well, those libraries will also need to support the exporting interface
16:11 Tene well, as long as they're in a namespace corresponding to their filename, it shouldn't be an issue.
16:11 Tene the parrot compiler's fetch-library or load-library will just need to locate the .pir or .pbc, load it, and fetch from the namespace.
16:11 dalek rakudo: f77ad8a | tene++ | perl6.pir:
16:11 dalek rakudo: Initial implementation of the fetch-library method on the compiler.
16:11 dalek rakudo: review: http://github.com/rakudo/rakudo/commit/f​77ad8a85030197e6279f25f2e2025964a2be479
16:11 dalek rakudo: 1639d85 | tene++ |  (6 files):
16:11 dalek rakudo: Switch rakudo to register itself as a compiler for 'perl6' (lowercase)
16:11 dalek rakudo: review: http://github.com/rakudo/rakudo/commit/1​639d85099676f770d7d5bc747b155c83615a439
16:11 dalek rakudo: 6b43f5d | tene++ | src/ (2 files):
16:11 dalek rakudo: Add support for loading foreign libraries.
16:11 dalek rakudo: It's not right yet.  Needs both spec and implementation fixes.
16:11 dalek rakudo: review: http://github.com/rakudo/rakudo/commit/6​b43f5deb6586aefc4a09c0093492c15f2538d54
16:11 dalek rakudo: 23faa00 | tene++ | perl6.pir:
16:11 dalek rakudo: Add the namespace to the hash returned by foreign library requests.
16:12 dalek rakudo: review: http://github.com/rakudo/rakudo/commit/2​3faa0029996240b1bb7af68d9e5544afeca131d
16:12 dalek rakudo: 26dfbab | tene++ | :
16:12 dalek rakudo: Merge branch 'hll-load-library'
16:12 dalek rakudo: review: http://github.com/rakudo/rakudo/commit/2​6dfbabe33a90acb7601a60338ab8b80f0b509c4
16:12 pmichaud so, it would assume that all symbols are exported?
16:13 Tene That seems reasonable enough for pir-level libraries.  If that's awkward for you, just ask that no symbols be exported and look them up individually, perhaps, or specify locally what symbols you want from the library.
16:13 Tene (Which rakudo doesn't support now, and I'm not sure if that's specced)
16:13 pmichaud I think that's a bit of a problem for pir-level libraries, personally.
16:14 pmichaud Especially since methods still place themselves in the namespace by default.
16:14 Tene Well, we'll delay that until after the Parrot release, then, to try to work something out.
16:15 pmichaud Yes, I think that might be better.
16:15 Tene I'll at least add this to pynie today, though.
16:15 pmichaud okay, that sounds good.
16:15 Tene :)
16:15 Tene (Cardinal doesn't quite count as a real language :) )
16:15 pmichaud we should probably have the 'parrot' HLLCompiler provide some helper methods to make it easier for PIR-based libraries to indicate what should be exported.
16:18 awarefish joined #perl6
16:21 rewt joined #perl6
16:25 TimToady @tell JDlugosz yes, S11:573 specs the separate compilation principle that implies each modules starts in its own SETTING
16:25 lambdabot Consider it noted.
16:29 ruoso TimToady, hi... it would be interesting if you review the conversation I had with JDlugosz in the weekend... I said a lot of things, and it would be nice if someone sees if they are correct or not ;)
16:31 ruoso TimToady, the most important being (1,2,3;4,5,6) is equivalent to ((1,2,3),(4,5,6)
16:31 ruoso )
16:34 cspencer joined #perl6
16:41 payload joined #perl6
16:41 ZuLuuuuuu joined #perl6
16:45 cdarroch joined #perl6
16:53 barney joined #perl6
16:55 cspencer_ joined #perl6
16:56 cspencer joined #perl6
17:06 cspencer_ joined #perl6
17:06 TimToady ruoso: yes, haven't finished backlogging, but both of those are CoC
17:07 TimToady we still use the term "list" in places we really mean capture
17:07 cspencer joined #perl6
17:15 ejs joined #perl6
17:29 cspencer perl6: class Foo { constant Num bar is export = 42 }; say "bar: " ~ bar
17:29 p6eval pugs: OUTPUT«*** ␤    Unexpected "bar"␤    expecting ":" or "("␤    at /tmp/LMrUPpES6k line 1, column 26␤»
17:29 p6eval ..rakudo 26dfba: OUTPUT«Null PMC access in get_string()␤»
17:29 p6eval ..elf 26872: OUTPUT«Permission denied at ./elf_h line 324.␤»
17:29 cspencer std: class Foo { constant Num bar is export = 42 }; say "bar: " ~ bar
17:29 p6eval std 26872: OUTPUT«Undeclared routine:␤   bar used at 1 ␤ok 00:04 36m␤»
17:30 M_o_C joined #perl6
17:38 TimToady constants are lexically scoped
17:39 ruoso TimToady, note the "is export"
17:39 TimToady and nothing defines what to do with "is export" yet
17:39 TimToady on inlined code
17:39 ruoso ah... right... sure
17:39 TimToady it's not clear whether they should be auto-inline-imported or not
17:39 ruoso I'd say it shouldn't
17:39 TimToady but then what's the syntax for doing so?
17:40 TimToady use class {...} is kinda bogus
17:40 ruoso import Foo;
17:40 TimToady class is used {...}
17:40 * ruoso runs
17:40 TimToady import my class Foo {...} could work
17:40 ruoso it doesn't even need to be in the same declaration...
17:41 ruoso "import Foo" would look for Foo as a package, and run Foo::.EXPORTALL;
17:41 TimToady except in this case, it is a declaration
17:41 TimToady unlike p5's runtime import
17:41 DemoFreak joined #perl6
17:41 TimToady or it doesn't happen soon enough
17:42 TimToady inline my class {...} or some such maybe
17:42 ruoso TimToady, but a keyword to import the symbols from an arbitrary package is missing
17:43 ruoso since require implies loading a module by the file
17:43 ruoso and it can even be compile-time
17:43 TimToady that's why I was proposing a keyword :)
17:44 ruoso ah... right... so you mean "import Foo;" would also be possible
17:44 moritz_ somehow the rss feed of rakudo.org doesn't match what's on the page
17:44 TimToady or "inline Foo", if the import is just the underlying method
17:45 TimToady inline basically being short for "inlineuse"
17:45 TimToady or "embed" maybe
17:45 ruoso hmm...
17:46 TimToady maybe not
17:46 TimToady the metaphor I'm looking for is that normally this is a separate file, but we're putting it here
17:46 ruoso I kinda think "import" does express the correct semantics
17:46 TimToady "immediate"
17:46 TimToady except not to P5ers
17:47 TimToady mabye can switch it
17:47 ruoso but Foo might have been declared somewhere else
17:47 TimToady point is you give it an argument indicating a module
17:47 TimToady inline my class Foo {...} is still just an arg to inline
17:48 ruoso suppose you just want to import using a different tag in some scope
17:48 TimToady much like in "use Module $foo", $foo is just an arg evaluate at compile time
17:49 ruoso module Foo { sub foo is export(:bla) {}; sub bar is export(:ble) }; { import Foo :bla; foo() } { import Foo :ble; bar() };
17:49 TimToady we can redefine "use" as "BEGIN{require};import"
17:49 TimToady then import could be compile-time
17:50 TimToady it will give pyfolk the heebeejeebies
17:52 TimToady and instead of calling an "import" in the module, it should implicitly call an "export" routine, probably
17:52 ruoso EXPORTALL actually
17:52 TimToady I could live with that
17:52 TimToady why ALL?
17:52 ruoso it's in S11
17:53 ruoso but I guess it accepts ALL the tags you ask
17:55 TimToady I didn't write that part of the spec. :)
17:56 TimToady and it's not exactly clear what it means
17:56 TimToady and in any case, the current example of nested modules is probably wrong, if we require explicit import from inlined modules
17:56 pugs_svn r26873 | moritz++ | [t] remove test for unspecced feature ("is value" trait)
18:11 fridim_ joined #perl6
18:14 ruoso TimToady, I always thougth that example to be weird
18:22 pugs_svn r26874 | moritz++ | [t/TASKS] remove task for delete file
18:22 pugs_svn r26875 | moritz++ | [t] remove obsolete object_id.t
18:37 angelixd joined #perl6
18:39 dduncan joined #perl6
18:47 cspencer_ joined #perl6
19:05 spx2_ joined #perl6
19:16 dalek rakudo: 798856d | pmichaud++ | docs/spectest-progress.csv:
19:16 dalek rakudo: spectest-progress.csv update: 390 files, 11294 passing, 0 failing
19:16 dalek rakudo: review: http://github.com/rakudo/rakudo/commit/7​98856db2b7446fbbd0f717a93ba455b9166635f
19:20 donaldh joined #perl6
19:20 hercynium joined #perl6
19:46 Jurek joined #perl6
19:50 rewt joined #perl6
19:59 kane_ joined #perl6
20:11 lichtkind joined #perl6
20:12 lichtkind @seen masak
20:12 lambdabot I saw masak leaving #perl6 3h 58m 24s ago, and .
20:14 Tene hi lichtkind.
20:14 Tene what's up?
20:15 lichtkind Tene: im just urging to become the first real november user :)
20:16 lichtkind Tene: and want to since up with the guy who makes the gsoc work on p6 doc
20:16 lichtkind since im maintainer of Perl6::Doc
20:16 jferrero joined #perl6
20:16 lichtkind Tene: yeah and im currently writing the article i had deliver 2 days ago :)
20:17 jnthn Tene: ping
20:17 jferrero left #perl6
20:17 Tene jnthn: pong
20:17 jnthn hi
20:17 jnthn Got a moment for some exception-y questions?
20:17 Tene I do.
20:17 jnthn OK, so I'm trying to find, from an exception, where we were when the exception was thrown.
20:18 Tene what specifically do you want?
20:18 jnthn I'd assumed that all exceptions had a resume cont. But, they don't...
20:18 Tene ah.
20:18 Tene c-level exceptions don't.
20:18 jnthn OK
20:18 Tene :(
20:18 jnthn I've just been trawling through the code to find any way to work this out though.
20:18 Tene i couldn't figure out how to make a resume cont from C, nor what it would mean to invoke it.
20:18 jnthn And haven't come up with much.
20:19 jnthn I don't need a resume cont really, I just need to know the place we were at (down to the nearest PIR location is fine) when it was thrown.
20:19 Tene now, exceptions do have a backtrace attribute.
20:19 jnthn Aye. It was null...
20:19 Tene I don't know what's in it... Ah.
20:19 jnthn And I didn't find what sets it.
20:19 Tene Yes, this matches what i found.
20:20 jnthn If we could find out the current exception handler we were running, then in theory we could look at it's from_ctx since it inherits from Continuation.
20:20 Tene but look at pdb_backtrace
20:20 jnthn (Though not totally sure how we'd do that either.)
20:20 Tene vim -t PBD_backtrace
20:21 jnthn But then after pondering that I noticed that exceptionhandler overrides invoke and doesn't set from_ctx...
20:21 jnthn Well, the thing about PDB_backtrace is that it just does
20:22 jnthn Parrot_Context   *ctx = CONTEXT(interp);
20:22 jnthn And starts looking from there.
20:22 Tene Right.
20:22 jnthn That works just fine before we invoked the exceptionhandler.
20:22 Tene When you're in an eh, the caller is the place the exception was thrown from.
20:22 Tene wait, yeah, you're right.
20:22 jnthn But ExceptionHandler is a continuation, so we end up without it as a caller.
20:23 jnthn Though I tried looking at the current caller_ctx first too... :-)
20:23 jnthn Then realized...no...that won't work. :-(
20:25 payload joined #perl6
20:25 payload joined #perl6
20:27 Tene jnthn: I suspect it's likely that eh *should* set from_ctx
20:27 jnthn Tene: OK, that's an easy enough change, but then how do I know what eh I am currently in?
20:27 jnthn As in, from the .backtrace() method of Exception?
20:27 Tene jnthn: ask the interpreter.
20:27 Tene walk the call chain up?
20:28 jnthn Ah, yes.
20:28 pmurias joined #perl6
20:28 jnthn OK, let me try that...
20:29 pmurias ruoso: the test you commited seems to show a use of a dead value not a leak
20:29 Tene jnthn: To be clear, my main message is "I couldn't get it working either" and "I'm very much convinced that exception handling in Parrot is incorrect in various ways, whis being one of them"
20:29 jnthn Tene: Oh, argh...wait.
20:29 ruoso pmurias, is it the test's fault? or is it really a bug?
20:30 ruoso pmurias, it does say it as a memory leak in the valgrind report
20:30 jnthn Tene: It appears that there is no from_ctx on a cont; I mis-read.
20:30 Tene ah
20:31 pmurias ruoso: checking...
20:31 jnthn Tene: oh, wait, there is...
20:31 jnthn I just can't see where we populate it.
20:33 pmurias ruoso: not in HEAD
20:33 ruoso hmm... weird...
20:33 jnthn Tene: OK, I'm thoroughly confused...
20:33 ruoso oh wait...
20:33 ruoso pmurias, you're right...
20:34 ruoso Invalid read of size 4
20:34 * ruoso eyes--
20:34 Tene jnthn: :)
20:34 jnthn struct Parrot_Context *from_ctx; /* sub, this cont is returning from */
20:36 jnthn Tene: It feels to me what we really want is just something on Exception that says "who threw me".
20:37 Tene That would not be out of place at all.
20:37 Tene That would be completely appropriate, iMO.
20:37 jnthn OK, how would you go about it though? I mean, we have a Parrot_Context...
20:38 jnthn But that's hard to attach.
20:38 jnthn (Since it's not a PMC, and we already use set_pointer for something else...at least, it's hard without poking into the exception's guts).
20:40 jnthn We could attach the current ret_cont which points to the correct context though.
20:40 jnthn And note to attach a context PMC when we have one.
20:40 Tene jnthn: add an attribute to Exception.pmc and add a method to get/set the location it was called from.
20:41 Tene don't futz with get/set pointer.
20:41 Tene or other overrides.
20:41 jnthn What would it return for getting it though?
20:42 jnthn Can't be a continuation, and can't easily be a context (since they're not a PMC)
20:42 jnthn (On that note, what to pass for setting too...)
20:42 pmurias ruoso: it's a more serious error
20:42 jnthn I'm happy enough to make it set-only for now.
20:42 ruoso pmurias, does that mean you found it? ;)
20:43 Tene jnthn: for a workaround for now, you could just add a method to exception.pmc that would build a backtrace report string and return it.
20:43 pmurias no :(
20:44 Tene it would be fairly special-use, but wouldn't be too out of place... maybe pending on whiteknight's work on context pmcs?
20:45 jnthn Tene: Yeah, when we have context PMCs this all gets a bunch easier.
20:45 Tene jnthn: so I wouldn't feel bad about stuffing a context pointer or some such in an attribute and having a method to return a string for now, and punt until later.
20:48 bacek joined #perl6
20:50 jnthn Tene: OK, sounds good, I'll do something along those lines with comments to that effect.
20:52 pmurias ruoso: a commented RELEASE of mold in Code
20:54 frew|work joined #perl6
20:55 ruoso pmurias, hmm... commented RELEASE sounds like trouble...
20:55 ruoso does uncommenting that solve the problem?
20:56 Tene jnthn: also add a reference to the appropriate ticket
20:56 pmurias_ joined #perl6
20:57 * ruoso decommute & # headache--
20:57 jnthn Tene: nodnod
21:08 pugs_svn r26876 | moritz++ | [S02] get rid of the each() comprehension
21:08 pugs_svn r26876 | moritz++ | [S09] document speculative each() junction with grep semantics
21:10 Chillance joined #perl6
21:11 Chillance joined #perl6
21:12 Chillance joined #perl6
21:16 jnthn woohoo
21:16 jnthn Null PMC access in getprop()
21:16 jnthn in method A::b (crash2.p6:3)
21:16 jnthn (followed by correct bt)
21:16 moritz_ jnthn++
21:16 jnthn Tene: Want to peek at my patch?
21:16 Tene jnthn: sure
21:17 pugs_svn r26877 | moritz++ | [t] remove now officially deprecated each.t
21:17 * moritz_ never thought that deleting other people's work could be so satisfying ;-)
21:17 jnthn Tene: http://gist.github.com/113752
21:25 jnthn Tene: Am running tests too.
21:27 Tene jnthn: that looks mostly okay to me... I'm not very awake right now, though.
21:39 NoirSoldats joined #perl6
21:40 ElectricHeavyLan joined #perl6
21:40 pugs_svn r26878 | pmurias++ | [re-smop] comment RELEASE
21:44 tulcod joined #perl6
21:44 tulcod final perl 6 specification: this year/next year/within three years/within five years/within ten years?
21:44 jnthn Tene: There was one problem with it, didn't handle context memroy management as it should have...
21:44 jnthn Tene: Fixed that, comitting now...
21:45 Tene tulcod: when we have everything tested and implemented.
21:45 tulcod will it take at least three years?
21:46 Tene tulcod: when we have everything tested and implemented.
21:46 Tene this is being done by a volunteer effort.
21:46 tulcod i got that
21:46 moritz_ if you help, it will be faster ;-)
21:46 tulcod but i mean.. how much work is still left?
21:46 Tene We have no paid employees.
21:46 Tene There is a certain undefined amount of work left to do.  We'll be done when we've finished that amount of work.
21:47 tulcod so it'll take at least three more years?
21:47 Tene http://rakudo.org/status shows our general rate.
21:47 moritz_ tulcod: there are major subsystems which are not done yet, and it's hard to estimate how much work they are
21:47 tulcod ah :)
21:47 moritz_ for example concurrency
21:47 moritz_ or Unicode levels for strings
21:47 jnthn tulcod: You may also find it interesting to ask, not just how much is left (which is very hard to answer) but how much has been done already.
21:47 Tene It's been estimated that a complete spec will include maybe about 20k tests, at a vague guess.
21:47 Tene I've heard different estimates from different people.
21:48 tulcod jnthn: well, hwat has been done already? :)
21:48 Tene So we're maybe around halfway done.
21:48 Tene For some definition of "halfway"
21:48 tulcod Tene: hm, i see
21:48 moritz_ object system, multi dispatch, regexes and builtins have mostly been done by now
21:48 jnthn tulcod: The status page Tene pointed you at gives a good overview of where Rakudo - Perl 6 on Parrot - is at.
21:48 Tene tulcod: It's not so much a matter of time as it is a matter of there's still a lot of work to do, and we're relying on volunteers to do it.
21:49 Tene We're making good progress for now... but as you can see, we've sometimes gone for a while without much progress.
21:49 tulcod Tene: yeah, i understand it's all a matter of people wanting to do it :)
21:49 Tene If Jonathan gave up, for example, it would take *much* longer.
21:49 Tene If we got a second Jonathan, it would be *much* faster.
21:49 tulcod jnthn: hm, i guess the regexes were most of the work?
21:50 Tene So even one person can make a huge change in the amount of time.
21:50 moritz_ Tene is right, jnthn's absence can be seen in the graph pretty easily
21:50 jnthn Tene: If you got a second Jonathan, they'd probably just go to the pub together and get nothing done. ;-)
21:50 tulcod Tene: auch - this project has a bus factor of 1.5?
21:50 moritz_ tulcod: that's hard to say... the regexes aren't done in Rakudo itself
21:50 tulcod hm, i guess that's true
21:51 moritz_ bus factor of 1.5 to 2, I'd say
21:51 jnthn tulcod: The regexes are a lot of effort, but far from the only bit thing. But yes, they are a bit part of what has been done so far and what remains.
21:51 Tene tulcod: pmichaud is the other big contributor.
21:51 jnthn erm, only *big* thing
21:51 tulcod Tene: okay, that's good to know :)
21:51 jnthn Tene also contributes awesome stuff. ;-)
21:51 moritz_ like cross-language library loading, today ;-)
21:52 Tene tulcod: I think we *could* still get something finished if they both left us, but it would take a lot longer.
21:52 moritz_ or was that yesterday? /me confused..
21:52 Whiteknight joined #perl6
21:52 tulcod so is it easy to get started on the rakudo source, or is there quite a learning curve (close to gcc's)?
21:52 * jnthn is still very happy to see that.
21:52 Tene moritz_: time zones. :)
21:52 Tene tulcod: it's very easy to get started, IMO.
21:52 Tene Depends on your existing knowledge and experience, though.
21:52 tulcod is there any documentation?
21:52 moritz_ sure
21:52 Tene but, developing tests is very easy
21:52 Tene and a great way to get started
21:52 tulcod Tene: well, i never really worked on a big project... i have read code of fairly big projects, though
21:52 Tene there are still many tests to be written.
21:53 moritz_ there's the docs/ sub directory in Rakudo
21:53 tulcod interesting
21:53 Tene I can give you a commit bit for the tests right now, if you'd like.
21:53 tulcod nah, i guess i should read up on stuff first
21:53 tulcod plus, i'm currently having my final exams, so i shouldn't really be having this chat atm
21:53 Tene tulcod: also, this irc channel is very helpful... we're all glad to help you however we can.
21:53 moritz_ and http://perlcabal.org/syn/ for the language specification (don't expect to understand it all on first read)
21:53 Tene :)
21:53 tulcod Tene: well yeah, most projects hide behind mailing lists
21:53 jnthn Perl 6 can turn into a...big...distraction. :-)
21:54 jnthn But a very interesting and fun one.
21:54 Tene tulcod: there's also a fairly good mailing list, I hear.  I don't do so well on mailing lists.  I prefer IRC.
21:54 tulcod Tene: see: you don't even use the mailing list, apparently
21:54 tulcod that would be impossible in 95% of all other serious projects
21:55 moritz_ that depends on how you want to contribute
21:56 moritz_ if you just ask in the IRC channel "anything I have to read before I implement $feature?", that's fine I think
21:57 tulcod hm
21:57 tulcod well, you might find me back in a week or two :)
21:57 moritz_ that would be nice
21:58 tulcod can't promise anything though, my interest moves every day
21:59 jnthn tulcod: There's lots of different interesting things in Perl 6. ;-)
21:59 jnthn tulcod: Good luck with the exams, BTW.
21:59 tulcod jnthn: thanks :)
21:59 jnthn Tene: Comitted patch with tweak to manage context memory right.
22:00 Tene :)
22:00 Tene jnthn++
22:00 jnthn Was very keen to get this patched up before the next release.
22:03 dalek rakudo: 9d2934e | jnthn++ | build/PARROT_REVISION:
22:03 dalek rakudo: Bump Rakudo up to Parrot r38916, to take advantage of the fixes to exception backtrace generation and hll_map of MultiSub.
22:03 dalek rakudo: review: http://github.com/rakudo/rakudo/commit/9​d2934e1340b092f51b96f44b8155296550282c7
22:04 jnthn I sneaked MultiSub HLL mapping in too. ;-)
22:04 jnthn (Actually wrote taht patch on Friday and never comitted it.)
22:17 jferrero joined #perl6
22:18 pugs_svn r26879 | pmurias++ | [re-smop] MildewSOLoader uses dlclose
22:34 s1n Tene++ for that LolDispatch :)
22:41 meppl joined #perl6
22:42 mikehh_ joined #perl6
22:46 Tene jnthn: does that mean we can get sub in class working now?
22:47 mikehh__ joined #perl6
22:52 jnthn Tene: It's on piece, others are in a (Rakudo) branch.
22:52 Tene jnthn: let me know if you want help there.
22:52 jnthn Tene: Basically, there's some work to do before we can let everything just be a Perl6MultiSub.
22:53 jnthn Tene: You're very welcome to help. :-)
22:53 jnthn Tene: First issue is that Perl 6 multi-dispatch only works if it can find/generate a Signature.
22:54 jnthn Tene: So before all the operators can become Perl 6, they need to respond properly to .signature
22:54 jnthn I'm pondering that in the absence of a candidate having a signature, we'll check it's arity and generate an (Any, Any) style one.
22:54 nsh joined #perl6
22:54 jnthn That'd get us all the non-override ops.
22:54 jnthn Then there'd be a little manual fix-up for others.
22:55 jnthn We will be able to rip out the code to generate the junction variants, since Perl6MultiSub handles junctions for us.
22:55 jnthn gen_whatever will need a fix but should be straightforward.
22:56 jnthn Then it'll be looking at what's left over.
22:56 jnthn But anyway, should ween us completely of Parrot's MultiSub.
23:13 Tene :)
23:18 dduncan left #perl6
23:20 donaldh joined #perl6
23:28 skids joined #perl6

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

Perl 6 | Reference Documentation | Rakudo