pugscode.org/ planetsix.perl.org/ feather.perl6.nl/syn/ perlcabal.org/svn/pugs/log github.com/rakudo/rakudo | nopaste: sial.org/pbot/perl6 | evalbot: "perl6: say 3;" | irclog: irc.pugscode.org/ | Rakudo.org www.perlfoundation.org/perl6/index.cgi?smop perl.net.au/wiki/Elf |~300 days 'til Xmas
Set by mncharity1 on 25 February 2009.
00:01 ispy_ joined 00:41 ispy_ left 00:45 pmurias left 00:54 c9s left, c9s joined
wayland76 Btw, a note to those discussing French Quotes earlier. The new versions of Xorg, while they have their problems, can (I'm told) support multiple keyboards with different mappings 00:55
00:55 DemoFreak left
wayland76 I personally plan to make a "Perl" mapping that will contain French Quotes, and all the other Unicode I'll be wanting to use 00:55
00:56 f00li5h[hireme] is now known as f00li5h[HireMe]
literal has anyone been discussing possible Rakudo / Parrot participation (under TPF) in Google's Summer of Code ? 01:01
wayland76 Incidentally, I've seen comments (mostly from pmichaud) about putting various S29 methods on Any 01:05
Is this discussed somewhere? Link? :)
01:09 Whiteknight joined
skids slow here today, eh? 01:10
wayland76 Well, it's the time of day 01:11
If I want live Perl6 chat, I have to get up early, or wait for the evening :) 01:12
literal: I haven't seen any discussions, but I only follow Rakudo, not Parrot
skids can't even really "follow" rakudo 01:15
If I read all the mls and tracked down all the obscure but important blogs, I wouldn't have time to contribute left. 01:16
wayland76 Well, it helps if you write half the mls messages yourself :) 01:17
skids hehe.
wayland76 And admittedly, I'm only following the stuff that interests me 01:18
For example, I'm ignoring the range discussions; there are enough people involved to do a good job without me :)
And I only follow rakudo.org, the parrot website, IRC, and Moritz's blog (because of his monthly summaries :) ) 01:19
But I agree about not having enough time to really follow things
skids Me I'd be happy if I could figure out something that ISN'T being actively discussed and just needed implementation.
wayland76 skids: PIR, or pure Perl6? 01:25
skids I can handle a little PIR but I don't know most of the library. 01:26
wayland76 ok.
Have you looked at the Rakudo ROADMAP, or are those things beyond you? (They're beyond me :) )
skids not in a little while. I'll take another look. 01:27
wayland76 Well, it hasn't changed :)
(unless I'm wrong again)
However, until the A section is done (M1, M2, M3, M4, etc) some of the others may be difficult 01:28
skids Yeah I'll be needing to cut my teeth on something a little less meaty first -- most of that stuff involves multiple components. Gotta focus on learning one at a time. 01:30
And having very little CS/parser experience you don;t want me anywhere near the grammar. :-) 01:31
wayland76 oh, ok :)
I was originally thinking of operator overloading as possibly being something achievable
skids The most interesting to me was the IO. Both because I need it and because it is more at the level of code I'm used to -- interface gluing. 01:32
wayland76 But that seems to require the A section
What about spec writing -- is that something that interests you?
skids needs socket, concurrency, and types buf int8 etc.
What's the need there?
wayland76 Well, everything that says "DRAFT" needs work 01:33
if you understand concurrency, I have a special task for you :)
skids Well, I understand it somewhat, have used threads, and it is something I want to learn to be very comfortable with eventually. 01:34
wayland76 Great
I wanted to do something about the concurrency spec, but was lacking most of the relevant knowledge
You'll need the specs checked out of the pugs repository 01:35
skids I read the Parrot spec, but the Parrot specs tend to be pretty terse.
wayland76 The current plan for S17 is for it to cover the Event Loop, POSIX signals, IPC, and concurrency
Well, I haven't read the Parrot spec :)
skids I have pugs co'd 01:36
wayland76 The current S17 is broken into the sections I just mentioned
skids (On concurrency not the whole Parrot spec yet)
wayland76 I've been doing some work on the signals, but am fairly unqualified for most of that stuff
Moritz tells me that the general idea is that we'll follow the stuff here: www.seas.upenn.edu/~lipeng/homepage/unify.html 01:37
This unifies the Event Loop and Threads into a single model, instead of multiple conflicting models
skids OK I'll read up on that. Parrot also has a loop. 01:38
wayland76 I haven't gotten very far into this, but the third page of the linked PDF shows the threads implementation layered on top of the event loop 01:39
S17 currently has a heading for the event loop with nothing under it.
(likewise for IPC)
If you could do something that will fill these in, that would be great
meppl good night 01:40
skids n8
wayland76 Also, I'm under the impression that the threads stuff in S17 is fairly out of date, and not necessarily in line with current plans
'night meppl
meppl ;)
wayland76 ...so don't feel you have to align with the current S17 stuff in writing the event loop stuff 01:41
skids I'll grep ml archives creatively and see if I can dredge up material.
01:41 meppl left
wayland76 ok, cool 01:41
There was an IRC discussion a few days ago. I'll find it for you.
01:43 kanru left
wayland76 No I won't. Use the IRC search, and look for "seas.upenn" 01:43
01:44 kanru joined
wayland76 irclog.perlgeek.de/search.pl?channel=perl6 01:44
That will turn up a number of hits. It seems more useful that you look through these yourself. 01:49
Oh, yeah, you may also be interested in skimming over this: search.cpan.org/dist/AnyEvent/lib/AnyEvent.pm 01:53
I think ruoso was keen for us to have a role that could have any kind of event model on the backend 01:54
I'm not sure whether the goals of the two documents I sent you are compatible, though :)
01:55 Whiteknight left 01:59 alester joined
skids The "unity" stuff seems right up my alley. Very interesting paper. 02:09
02:11 bacek__ joined 02:12 alc joined, bacek left 02:13 lisppaste3 left, slango left, xinming_ left, Grrrr left, Helios left, oskie left, buu left, PerlJam left, IRSeekBot left, PerlJam joined, lisppaste3 joined, slango joined, xinming_ joined, oskie joined, Grrrr joined, Helios joined, IRSeekBot joined, buu joined, irc.freenode.net sets mode: +o PerlJam
dalek kudo: 0d369db | pmichaud++ | perl6.pir:
Initial version of importing setting exports into global namespace.
02:44
02:45 bacek__ left, bacek joined 02:52 justatheory left 02:53 aindilis` joined 02:56 alester left 03:02 brunoV left 03:09 aindilis left 03:11 agentzh left
frooh are "is export" methods supported in the Setting now? 03:16
TimToady last I heard, no 03:22
03:23 agentzh joined
TimToady but you can always write a wrapper 03:23
frooh it's not a big deal
I was just hoping to help
and I couldn't see anything that was not exported that I could pull off 03:24
03:31 Eevee_ joined
pmichaud I just added the code for 'is export' but haven't tested it yet. 03:33
There are some issues with multimethods.
frooh hm
pmichaud my suggestion would be to try some and see what works (and what doesn't) 03:34
frooh so it's committed then/
pmichaud 0d369db, yes.
frooh gnarly
will try now
03:34 ispy_ joined
frooh tries the really easy stuff 03:35
03:36 justatheory joined 03:46 justatheory left
frooh what does multi mean exactly? 03:47
03:47 Eevee left, jan_ left 03:52 jan joined, jan is now known as Guest92665
frooh rakudo: my @a; @a.pop 03:52
p6eval rakudo 0d369d: RESULTĀ«undefĀ»
frooh rakudo: my @a = <1 2 3>; @a.pop 03:53
p6eval rakudo 0d369d: RESULTĀ«"3"Ā» 03:54
frooh rakudo: my @a = <1 2 3>; @a.pop(2)
p6eval rakudo 0d369d: OUTPUTĀ«too many arguments passed (3) - 1 params expectedā¤current instr.: 'parrot;Perl6Array;pop' pc 6599 (src/classes/Array.pir:114)ā¤Ā»
04:03 Kimtaro left 04:04 Limbic_Region left
frooh ok, so I got my thing to work, but it only works as a method 04:05
although splice is the same way
(my thing being pop)
04:05 hercynium left 04:14 ispy_ left 04:17 japhb left, Eevee joined
frooh which I presume has to do with is export stuff 04:22
04:30 ml` joined 04:31 Eevee_ left 04:32 Kimtaro joined, aindilis` left 04:35 Tene_ joined 04:47 ml` left 04:48 alexn_org joined 04:49 Tene left 05:01 Kimtaro left
wayland76 My understanding of multi is that it means that more than one routine can have the same name (as long as they have different signatures) 05:20
rakudo: multi sub foo(int $int) {} multi sub foo(Str $str) {} 05:21
p6eval rakudo 0d369d: OUTPUTĀ«Malformed routine definition at line 1, near "foo(int $i"ā¤ā¤current instr.: 'parrot;PGE;Util;die' pc 129 (runtime/parrot/library/PGE/Util.pir:83)ā¤Ā»
wayland76 rakudo: multi sub foo(Int $int) {} multi sub foo(Str $str) {}
p6eval rakudo 0d369d: OUTPUTĀ«Statement not terminated properly at line 1, near "multi sub "ā¤ā¤current instr.: 'parrot;PGE;Util;die' pc 129 (runtime/parrot/library/PGE/Util.pir:83)ā¤Ā» 05:22
wayland76 rakudo: multi sub foo(Int $int) { print "hi $int"; } multi sub foo(Str $str) {} foo(1);
p6eval rakudo 0d369d: OUTPUTĀ«Statement not terminated properly at line 1, near "multi sub "ā¤ā¤current instr.: 'parrot;PGE;Util;die' pc 129 (runtime/parrot/library/PGE/Util.pir:83)ā¤Ā»
wayland76 rakudo: multi sub foo(Int $int) { say "hi $int"; } multi sub foo(Str $str) {} foo(1);
p6eval rakudo 0d369d: OUTPUTĀ«Statement not terminated properly at line 1, near "multi sub "ā¤ā¤current instr.: 'parrot;PGE;Util;die' pc 129 (runtime/parrot/library/PGE/Util.pir:83)ā¤Ā»
wayland76 rakudo: multi sub foo(Int $thisint) { say "hi $thisint"; } multi sub foo(Str $str) {} foo(1);
p6eval rakudo 0d369d: OUTPUTĀ«Statement not terminated properly at line 1, near "multi sub "ā¤ā¤current instr.: 'parrot;PGE;Util;die' pc 129 (runtime/parrot/library/PGE/Util.pir:83)ā¤Ā»
wayland76 rakudo: sub multi foo(Int $thisint) { say "hi $thisint"; } multi sub foo(Str $str) {} foo(1); 05:23
p6eval rakudo 0d369d: OUTPUTĀ«Malformed routine definition at line 1, near "multi foo("ā¤ā¤current instr.: 'parrot;PGE;Util;die' pc 129 (runtime/parrot/library/PGE/Util.pir:83)ā¤Ā»
wayland76 rakudo: multi sub foo(Int $thisint) { say "hi $thisint"; }; multi sub foo(Str $str) {}; foo(1);
p6eval rakudo 0d369d: OUTPUTĀ«hi 1ā¤Ā»
wayland76 rakudo: multi sub foo(Int $thisint) { say "hi $thisint"; }; multi sub foo(Str $str) { say "yo $str"}; foo(1); foo "there";
p6eval rakudo 0d369d: OUTPUTĀ«hi 1ā¤yo thereā¤Ā»
wayland76 rakudo: sub foo(Int $thisint) { say "hi $thisint"; }; sub foo(Str $str) { say "yo $str"}; foo(1); foo "there"; 05:24
p6eval rakudo 0d369d: OUTPUTĀ«hi 1ā¤Parameter type check failed for $thisint in call to fooā¤current instr.: 'die' pc 16347 (src/builtins/control.pir:204)ā¤Ā»
wayland76 frooh: Note the difference between these last two lines. The first one works, the second doesn't.
pugs_svn r25650 | wayland++ | Wrote this a few days ago, but forgot to svn add. 05:29
frooh wayland76: gotcha 05:37
05:38 Kimtaro joined, Sepheebear joined 05:39 bacek_ left 05:41 justatheory joined
pugs_svn r25651 | wayland++ | S28: 05:51
r25651 | wayland++ | - Did more heading changes to make it "Special Names" instead of "Special Variables"
r25651 | wayland++ | - Added lots of spec cross-references
r25651 | wayland++ | - Added a $*DISTRO variable (hopefully this was just an omission)
r25651 | wayland++ | - Added a SoftwarePackage class that represents the name and version of the software
r25651 | wayland++ | mentioned, whether this be Perl, and OS, or a Distro.
05:52 justatheory left
pugs_svn r25652 | wayland++ | Should've looked first -- $*DISTRO is documented in S02 :) 06:01
06:20 szabgab left 06:30 ispy_ joined 06:32 ispy_ left 06:34 ashizawa_ joined 06:38 alexn_org left 06:47 nihiliad left 07:02 alexn_org joined 07:25 alc left, alc joined 07:40 alexn_org left 07:42 FurnaceBoy left, lambdabot left 07:45 lambdabot joined 07:50 masak joined 07:52 tony_ left 08:03 _jedai_ joined 08:04 |jedai| left 08:05 AzureStone left, AzureStone joined 08:06 M_o_C joined 08:07 DemoFreak joined
moritz_ good morning 08:16
masak good morning.
wow, Sunday scool class with TimToady. sounds cozy. 08:20
wayland76 ...and his laptop :) 08:21
masak #perl6 is a tough habit to shake, I can attest to that. :) 08:22
wayland76 Although it reminds me of this: xkcd.com/224/
masak aye, a little.
Perl 6 is even more ostensibly like Lisp. 08:23
wayland76 I guess my problem is that, for 50% of my day, #perl6 is dead :)
masak wayland76: that's when you write awesome Perl 6 code. (duh!)
:) 08:24
wayland76 Anyway, I have a question that I've been saving for this evening; is it possible to call C functions from Rakudo?
And is there documentation on this?
masak wayland76: sounds like a #parrot question.
wayland76 I can't write perl6 at the moment; it doesn't RPM 08:25
parrot says "do it via NCI"
masak RPM?
yes, I guessed they would.
wayland76 But I want to know if perl6 can call NCI stuff :)
parrot comes with a spec file that turns it into an RPM
Matt-W Morning 08:26
wayland76 perl6 doesn't. I was talking about someone making one, and pmichaud recommended I wait until they get some more of their install stuff worked out
good evening Matt-W :)
masak Matt-W: morning.
wayland76: that's your answer then, I'd say. 08:27
wayland76 masak: For RPM, yes. But for doing NCI from perl6, none of what I said answered that
masak wayland76: ah, ok. 08:28
wayland76 ( pmichaud was talking about RPMs )
masak wayland76: if you find a constructive answer, please tell me. :)
moritz_ the perl6-examples repo is maintained by eric256, rightƟ 08:29
wayland76 TimToady gave us a syntax, though: svn.pugscode.org/pugs/docs/Perl6/Sp...n-code.pod
masak moritz_: aye.
wayland76 The RPM .spec file and the perl6 C calls are what I need to move forward with the things I want :) 08:30
masak which are...? 08:31
wayland76 Well, writing some code that will hopefully eventually be part of 6pan (the client-side thing)
masak interesting.
wayland76 Except I want to write an object that represents a package (as in .rpm, .deb, etc)
moritz_ @tell eric256 I have a lot of patches for perl6-examples sitting in my local git repo - should I send them somewhere? or could you give me commit access? 08:32
lambdabot Consider it noted.
wayland76 And then have input and output things for that object, so you can eg. read in a 6pan package, and emit an RPM
:)
masak moritz_: why not just commit them to your own clone on github and do a couple of pull requests?
wayland76 But use the same set of interfaces to read an RPM and emit a .deb
or whatever :) 08:33
moritz_ masak: because I have no clone on github, and I don't want to issue ~15 pull requests :)
masak moritz_: you could squash the commits if they're related.
moritz_: and clones on github are cheap. 08:34
08:36 rkendall joined
moritz_ (rakudo) I've pushed a branch called match_perl to github 08:48
it contains an implementation of Match.perl
but it's not runnable code, since Match.new() doesn't do what I think it should do
so it's primarily for debugging 08:49
masak moritz_++ 08:51
I'd really like a Match.perl
dalek kudo: 50279cf | (Moritz Lenz)++ | (11 files):
Merge branch 'master' of [email@hidden.address]
08:59 alc left
pugs_svn r25653 | moritz++ | [t/spec] more and better tests for BUILD 09:02
moritz_ masak: the question is only if pmichaud wants to see that in master for now
masak moritz_: aye.
09:03 NoirSoldats left
masak moritz_: I updated 'Rakudo: good, cool, awesome, bad, ugly, weird' in the weekend. Rakudo has really seen great progress! 09:03
in the last half year.
moritz_ it has iindeed 09:04
09:04 NoirSoldats joined
moritz_ submits five new bug reports 09:05
masak moritz_: wow! whence this? 09:06
did you write actual Perl 6 code this weekend?
moritz_ I wanted to blog about perl6-examples 09:07
and so I looked at some of the code
masak ah, nice.
moritz_ and fixed some of it
and wrote some other stuff
masak :)
moritz_ and in the end I didn't get around to blogging at all ;_)
masak that happens sometimes.
09:07 rkendall left
masak I'll soon celebrate a one-month blog block. 09:08
moritz_ oh, and I also continued writing an article about the object system, and discovered that BUILD gets the wrong arguments
masak hm, s/blog/blogger's/
moritz_++
09:10 rkendall joined 09:16 kane_ joined 09:19 NoirSoldats left 09:21 NoirSoldats joined 09:24 NoirSoldats left
masak moritz_: did you see the p6u email about tutorials? 09:27
moritz_ masak: I did
09:28 NoirSoldats joined
masak I'd post a link to your perl5-to-perl6 blog, but I just wanted to make sure you hadn't already. 09:28
09:29 DemoFreak left
masak ...to avoid double posting, I mean. the perl6 lists are really laggingly slow. 09:31
moritz_ I didn't, because it requires perl 5 knowledge 09:32
which is explictily what the poster does not have
masak oh. 09:33
I'll reply, about the parts I know about. 09:34
09:36 NoirSoldats left
Matt-W we need to remember that in u4x 09:39
don't assume Perl 5 knowledge
masak Matt-W: indeed.
Matt-W there was no form development over the weekend I'm afraid
my brain decided to hide in the corner, gibbering
09:40 NoirSoldats joined
masak that happens sometimes. 09:42
I was planning to do the 'update' subcommand in proto, but never got that far. 09:43
did a lot of other stuff, though.
09:45 ejs joined 09:56 ejs1 joined 10:04 ejs left
pugs_svn r25654 | leto++ | Fix typo in Numeric 10:09
11:01 _jedai_ left
wayland76 @tell Matt-W Did I mention there's some form-specific stuff in S28? 11:13
lambdabot Consider it noted.
wayland76 @tell Matt-W (ie. things that will need to go in the Perl5 to Perl6 section) 11:14
lambdabot Consider it noted.
Matt-W No you didn't mention 11:15
lambdabot Matt-W: You have 2 new messages. '/msg lambdabot @messages' to read them.
Matt-W yes lambdabot I know
wayland76 I figured you were the appropriate person to deal with that section of things, so I just left them in a "not defined" section until you get Form.pm more done 11:21
:)
Matt-W lol
that sounds like a good idea 11:22
wayland76 There are two or three other things there, waiting on the Unicode spec, and infectious traits (for tainting) 11:24
masak mberends: ping 11:41
wayland76 rakudo: my Int $y; $y = "I CAN HAZ CHEEZBURGERZ?"; 11:55
p6eval rakudo 50279c: OUTPUTĀ«Type mismatch in assignment.ā¤current instr.: 'die' pc 16347 (src/builtins/control.pir:204)ā¤Ā»
Matt-W yay
masak wonders whether that'll ever be caught statically in Rakudo 11:57
Matt-W I'm sure there are some type checks which could be done statically
it'd be nice
I would rather have that explode at compile time if at all possible 11:58
masak exactly.
12:00 meppl joined, charsbar left 12:03 charsbar joined
wayland76 I was hoping to be able to do something like these: www.thingy-ma-jig.co.uk/blog/16-01-...rror-jokes 12:11
(you may need to scroll down a bit)
12:25 DemoFreak joined, mib_h4hlk7pu joined, mib_h4hlk7pu left 12:26 ashizawa_ left 12:31 kanru left, DemoFreak left 12:33 Ariens_Hyperion joined 12:41 kanru joined
wayland76 'night all :) & 13:07
masak wayland76: 'night. 13:08
13:33 rindolf joined 13:37 c9s left 13:38 kanru left 13:39 c9s joined 13:42 c9s left 13:45 c9s joined 13:48 kanru joined 13:50 Whiteknight joined 13:54 alester joined 13:59 mberends joined 14:02 alester left 14:05 ruoso joined
ruoso Hello! 14:07
lambdabot ruoso: You have 1 new message. '/msg lambdabot @messages' to read it.
14:07 mberends left
Matt-W hi ruoso 14:10
ruoso long weekend... I realised I now really need the weekends off... I think that's what happens after you have a child...
Matt-W My brain switched itself off at the weekend 14:11
I didn't get any coding of any kind done at all
masak ruoso: happens to the rest of us as well.
14:19 Ariens_Hyperion left 14:24 Eevee_ joined 14:25 sahadev joined 14:30 Ariens_Hyperion joined, ashizawa left 14:33 ashizawa joined 14:37 Eevee left 14:38 jordilin joined 14:46 mberends joined 14:53 ashizawa_ joined
wayland76 ruoso: I agree about ARCH and XARCH 14:55
masak yes, that sounds reasonable. 14:56
mberends masak: pong (delay > 3*3600s)
14:56 rafl joined
masak mberends: oh hai. just felt like talking about proto. 14:57
I've been knocked out over the weekend and thus haven't implemented the 'update' subcommand.
I'm still thinking about doing it, though.
viklund sent me a pull request the other day which I mostly rejected. 14:58
mberends Sorry about knocked out, hope you're your usual self now. I haven't come up with a YAML replacement either yet, but am determined to do so. 14:59
masak (he wants additional flags to proto, and I want to keep the flag count down and push complexity into config.proto)
mberends: nothing serious, just needed rest.
wayland76 oh, I figured it was the martial arts again :)
masak wayland76: you must be confusing me with some other M person. :) 15:00
mberends: looking forward to the YAML replacement.
15:00 ashizawa left
wayland76 Actually, probably a T person, but I thought it was an appropriate line whether you actually do martial arts or not :) 15:00
masak mberends: specifically, being able to create a config.proto with the keys in insertion order, and with usage comments above each.
wayland76: I see. :) 15:01
mberends it's easy to do the easy yaml that we need, but harder to do all yaml. typical Perl situation.
masak mberends: let's take the easy way out then. 15:02
mberends :)
masak and simply fail on YAML that we don't think we'll ever need to handle.
15:02 alester joined
masak that is, recognize it, but refuse to continue. 15:02
if it's there, it's probably because the user is experimenting with config.proto
mberends agreed. Does a Rakudo hash preserve order?
masak better to have known but tight limitations than none at all. 15:03
mberends: it explicitly doesn't.
mberends: which means that we will not want to use a hash there.
(but still serialize it in the same way in config.proto)
mberends ouch. then you'd be better off with an array.
masak aye.
an array of pairs.
mberends thought the same 15:04
alester Morning all.
masak mberends: but it still makes sense to serialize it as a hash, because the array doesn't add anything useful.
alester: marnin'
15:04 kanru left
mberends is confused by 'serialize an array as a hash' 15:05
15:06 PacoLinux joined
mberends serialize a duck as a duck, surely? 15:06
masak mberends: we have two conflicting goals when we serialize: we want to retain the order,
and we don't want to add cruft.
mberends yes
cruft--
masak an array would be cruft.
it's really a hash that we want to store.
it's just that we have an opinion about its insertion order. 15:07
mberends an array of pairs is less crufty
masak yes, that solves the ordering problem.
oh, wait.
Perl 5. :) 15:08
mberends but I agree that an order-preserving hash would be ideal
masak it's proto that generates the config.proto file, not installer
we'll need to make do without the array of pairs...
masak hacks up a solution to show what he means 15:09
Ariens_Hyperion you want to keep insertion order with efficient insertion? 15:11
15:11 kanru joined
masak Ariens_Hyperion: no, I want to keep insertion order without concern for efficiency. 15:12
the thing that matters here is to serve the user as well as possible by ordering the settings right.
mberends: gist.github.com/72798 15:13
mberends sorry, ongoing distraction for a few minutes... 15:14
masak that one probably doesn't handle escaping correctly, but it gets the point across, I hope.
mberends: no problem. take your time.
mberends: oh, and the last comment in github.com/masak/proto/commit/3805e...2d0899c2f8 is pretty important -- I'm thinking about fixing that one before anything else. until that is fixed, dependencies essentially don't work. 15:19
15:19 Ariens_Hyperion left
pmichaud good morning, #perl6 15:24
masak good morning, pmichaud.
Matt-W is an M person who does martial arts (from backlog)
alester Hey Patrick 15:25
Matt-W hello pmichaud
masak Matt-W: but were you knocked out this weekend due to the martial arts?
15:25 diakopter sets mode: +v pmichaud
Matt-W masak: no 15:25
masak: I was a bit giddy, but not knocked out 15:26
15:26 diakopter sets mode: -v pmichaud
masak Matt-W: ok :) 15:26
diakopter hm
15:26 diakopter sets mode: -o diakopter
masak I wasn't knocked out either, just low on programming mojo. 15:26
Matt-W that seems to have been a fairly general affliction
masak aye.
Matt-W mine was all gone and still hasn't come back
masak Matt-W: start by writing a really small test. :) 15:27
(git rebase)++ # good magic 15:28
alester I'm going to be glad when we do things w/fewer commits to master. The last 4 commits from moritz I had to apply one at a time bin sequence. :-(
s/bin/in/
15:30 nihiliad joined
wayland76 pmichaud: Is there a way to do NCI stuff from perl6? 15:31
pmichaud wayland76: you mean from Rakudo, or from Perl 6?
wayland76 oop,s rakudo :)
pmichaud either way, the answer is that it can be done from Rakudo, but I don't know how to do it.
wayland76 who does? jnthn?
pmichaud lathos
just a sec, I might be able to point the way 15:32
wayland76 docs helpful :)
or other help helpful :)
pmichaud I know that the SQLite3 stuff does NCI from Rakudo -- svn.parrot.org/parrot/trunk/ext/SQLite3/ 15:34
as far as there being a set of helpful docs, I'm not aware of any. And istr that the NCI interfaces might be changing soon anyway.
15:35 araujo left
wayland76 Hmm. Ok, that's worth knowing. I guess I'll sit back and wait for progress, and work on the Specs instead :) 15:36
(and do let me know when you need some RPM-building foo for Rakudo :) ) 15:37
15:39 justatheory joined
masak ah, so the trick to mixing Perl 6 and PIR code is just to use 'use' at the right moment! why didn't I think of that? :) 15:40
pmichaud can also do Q:PIR { ... } :-) 15:41
masak aye, that's true.
I have approximately zero experience with that, though.
someone (possibly me) should make a simple example of Q:PIR { ... } work, and then blog about it. 15:42
Matt-W snap to it!
mberends hmm, approximately zero is as likely to be negative as positive 15:43
pmichaud oh, I can give you a simple example.
let's see if I can come up with something we'd do in PIR instead of Perl 6....
mberends socket!
pmichaud I'm not sure how to do sockets in PIR, though :-|
mberends :( 15:44
pmichaud example?
jnthn waves
pmichaud hiya, jnthn!
Matt-W puts on jnthn's fanfare
15:44 estrabd left
pmichaud hey! how do I get a fanfare? ;-) 15:44
masak jnthn: oh hai
jnthn My laptop and the hotel wifi didn't get on...hopefully I'll have better luck in Odessa tomorrow.
masak fanfares pmichaud, too 15:45
pmichaud jnthn: time for a new laptop? :-) :-)
Matt-W pmichaud: you enter at just the right moment so that it looks like you're going to produce an example and save the day, of course
jnthn pmichaud: :-P
pmichaud: Maybe once I finish my current Rakudo grant. ;-)
pmichaud oh, I'll just write up an example to go in setting... just a sec 15:46
jnthn Any news? I see the new rakudo.org - very happy that it has a Get Rakudo link. :-)
My Belgium talk seemed to go well. 15:47
pmichaud I have a rudimentary form of importing 'is export' from setting
jnthn Great
pmichaud however, I ran into a snag.
!TOPERL6MULTISUB mucks around with the namespaces to get its work done.
masak the new rakudo.org is indeed nice.
wayland76 alester++ 15:48
alester for what?
Oh, thanks.
jnthn !TOPERL6MULTISUB is evil.
alester I need to let people actually coment. :-)
Matt-W oh yes it's lovely
pmichaud so, I'm not yet able to do:
class Num is also {
jnthn It was meant to be a temporary workaround until we had .HLL and type mapping. :-|
pmichaud multi method foo() { ... } 15:49
15:49 ejs2 joined
pmichaud sub foo() is export { ... } 15:49
}
masak alester: somehow the dashed lines (under "Rakudo.org" and under all the top links) don't agree with me, however. neither do the thick pale underlines under the post titles.
alester: but that's just a minor kvetch. overall, kudos.
alester I don't know what you mean " don't agree with me" means. 15:50
pmichaud it kinda bugs me that the attribution for each article stays with whoever originally posted it, not who last updated it.
masak alester: it means I don't think it adds to the esthetic value of the page. :)
wayland76 That would normally mean "makes me feel sick", but I don't think he means it that strongly in this case :)
alester masak: OK, so you're jsut expressing an opinion, not that it doesn't work in your browser or something.
masak wayland76: correct.
alester: right.
15:51 Tene joined
masak alester: it doesn't please my eyes, is what I wanted to express. 15:51
wayland76 It's a bit too wide for my 800x600 screen :)
pmichaud actually, I'd prefer that the non-blog articles don't have any attribution at all.
s/articles/pages/
alester OK. That's really about on the bottom of my list, below, say "Let people make comments on blog entries" and "convert the old blog entries." :-)
pmichaud at least, not any attribution enforced by drupal.
jnthn pmichaud: The reason it looks in the NS, if it wasn't clear, is that it's the only way I'm aware of to go from a Sub to its containing MutiSub
pmichaud: IIUC you're wanting to declare a multi method and an only sub in the same namespace. 15:52
pmichaud jnthn: we can't do a copy?
oh, I guess not.
jnthn: I'm trying to handle the case where we have a functional interface that is different from the method interface
for example: multi method join($separator) { ... } 15:53
sub join($separator, *@array) is export { ... }
in this case the sub gets exported instead of the method.
same goes for things like grep, map, etc. 15:54
jnthn Is it Perl 6 spec that you are allowed to have an only sub and a multi method in the same NS?
I guess as a side quetion, are methods considered "look-upable" through the NS?
pmichaud I haven't found an answer to that yet.
jnthn I think if the second of those is true, then the first can not me. 15:55
*not be
pmichaud and don't get caught up in the 'only' part -- I'd have the same problemf or a muluti
multi
multi sub join($separator, *@array) is export { ... }
at least, I think it'd be the same issue.
jnthn Oh, that surprises me.
I'd have expected that case to not be a problem. 15:56
Does the presence of "is export" automatically imply multi-ness on something?
pmichaud I don't want the method join and the sub join to both be exported.
jnthn That is, it becomes a multi candidate in the namespace scope you it into?
pmichaud no, I don't think 'is export' implies multi. At least I haven't seen anything like that.
jnthn Right, I thought not too. 15:57
In which case I don't understand how you can export a multi method and an only sub
oh wait, you aren't
Hmm.
pmichaud anyway, I agree, if methods can be looked up in the namespace, that makes it more difficult to have an only sub and a multi method in the NS. (more)
but my problem here is that I want to export a sub and _not_ a method. 15:58
jnthn Yes, I see what you want to do.
thinking 15:59
pmichaud oh, S12 has:
15:59 ejs1 left
pmichaud However, you may use C<is export> on a method 15:59
definition to make it available also as a multi sub.
Matt-W -> home & 16:00
16:01 hercynium joined
wayland76 Back to bed for me. Enough late-night sysadminning for now :) & 16:04
16:05 eternaleye left 16:06 ejs2 left 16:07 Tene_ left
pmichaud anyway, it's not super-critical at the moment, I think we can make a fair bit of progress on setting with what we have. 16:08
TimToady you can't have a multi in any namespace governed by an only 16:10
pmichaud TimToady: okay, that helps.
TimToady I'll have to backlog to see what else is being wanted to be known :) 16:11
pmichaud a couple of quick questions would help: do methods appear in the namespace?
masak TimToady: so subs and methods are in some sense in the same namespace?
TimToady the namespace is shared, so &foo can name a method, but foo() won't see any methods 16:13
masak makes sense.
pmichaud okay, that looks like we'll need some rakudo dispatcher work to avoid foo() as exported method. 16:14
s/exported//
TimToady yes, when exported, looks like a multi. not sure how the dispatcher tells the difference though... 16:15
pmichaud well, we can look at the type of the component (Method vs Sub)
TimToady well, worst case, it's a wrapper
if it's just a reference, the CORE::multi will look like a method 16:16
which is a problem
assuming untyped references, which we always have
pmichaud masak/moritz: when merging tickets in rt, I think it would be better to merge the newer ticket into the older one instead of vice-versa 16:17
TimToady we might have to clone a method when we export it
in order to do the type transformation on it
16:18 hercynium left
moritz_ pmichaud: I try that, but the merge interface is rather unintuitive in that respect 16:18
TimToady or clone its descriptor, anyway
merge interface?
pmichaud moritz_: okay. always modify the newer ticket.
masak pmichaud: understood. in this particular case, however, the newer ticket was slightly different and more correct.
TimToady oh, that was moritz_
moritz_ pmichaud: I'll do that in future.
TimToady: from RT
pmichaud masak: I'd still prefer to keep the older ticket number -- it's okay to merge and then use the new title.
TimToady yes, thread interaction :/ 16:19
masak pmichaud: I'll do that from now on.
16:19 hercynium joined
moritz_ pmichaud/mask: regarding GSOC, jonathan leto wrote that mentoring projects should contact him directly. I plan to contact him both as potential mentor for the test suite and for user documentation 16:20
pmichaud moritz_++ # excellent
I really thought you did a fantastic job as a mentor in 2008
so I'm all in favor of that.
moritz_ pmichaud: and if you know of any good idea for a Rakudo project, I'd support that as well (although I don't think I'd qualify as a mentor there)
literal is interested in being a gsoc student 16:21
16:22 frioux joined
moritz_ that's a good start (as discussed on ... what? p6c? I always confuse the various lists) 16:22
masak moritz_: I'm ok with you mentoring the user documentation. I'll want to be involved in the documentation effort somehow, not necessarily as a mentor.
literal p6l
moritz_ masak: it would be great to have two mentors anyway, one "primary" and one for backup
16:22 nihiliad left
jnthn I'm happy to mentor a Rakudo guts project on the areas I am familiar with. 16:22
Or certainly help anyone else mentor. 16:23
masak moritz_: I'll gladly be your backup mentor.
pmichaud I'm glad to help mentor as all; I'm not sure it's a good idea for me to be primary.
but I'm up for being a primary mentor this year if there's a project that makes sense for me to do that.
moritz_ anyway, I'll put you all CC'ed
pmichaud moritz_++ 16:25
jnthn pmichaud: I'd be happy to work with you on mentoring something - in fact, I'd be happier to have both of our eyes on it.
pmichaud jnthn: agreed.
16:26 nihiliad joined
moritz_ literal: any special topic you're intersted in? 16:28
pmichaud moritz_: I'm fine with having a Match.perl in the master branch, even if it's incomplete/incorrect.
moritz_ pmichaud: ok, then I'll merge it
pmichaud moritz_: I especially like how you have the notice about it being "not completely correct" -- keep that.
16:28 jordilin left
moritz_ rakudo: rule w { . }; 'a' ~~ m/<w>/; say $/<w>.WHAT 16:28
p6eval rakudo 50279c: OUTPUTĀ«Matchā¤Ā»
moritz_ rakudo: rule w { . }; 'a' ~~ m/<w>/; for %($/<w>).kv -> $k, $v { say $v.WHAT } 16:29
p6eval rakudo 50279c: RESULTĀ«Method 'HOW' not found for invocant of class 'Iterator'ā¤current instr.: '_block14' pc 77 (EVAL_21:44)ā¤Ā»
masak installs druid with proto and is pleasantly surprised it still works
moritz_ found a bug
although I tried to reproduce a different bug :/ 16:30
masak moritz_: shall I send it in?
moritz_ masak: please do
masak does
jnthn pmichaud: So if I understand TimToady correct, we can't have the sub foo and method foo in the namespace without both being multi.
pmichaud jnthn: correct. but the multiness wasn't what I was driving at.
literal moritz_: writing Perl 6 code, pretty much. For the test suite, or the setting/library, or some project like November
pmichaud I'm interested in dealing with the case where (multi) sub foo is exported and (multi) method foo isn't. 16:31
jnthn pmichaud: OK. Backing up a little, I don't see why you've run into an issue with !TOPERL6MULTISUB
moritz_ literal: ok. I think that projects closer to the compiler (test suite/setting) have better chances of being accepted, but YMMV
jnthn OK, but the export trait you'd handle in the loadinit for something that might or might not be a multi candidate, no?
And it knows its name, and having the name and the sub PMC is enough to do an export? 16:32
masak rakudo: rule w { . }; 'a' ~~ m/<w>/; for %($/<w>).kv {}
literal moritz_: yeah, whatever would benefit Perl 6 most is fine with me
p6eval rakudo 50279c: RESULTĀ«Method 'HOW' not found for invocant of class 'Iterator'ā¤current instr.: '_block14' pc 77 (EVAL_20:44)ā¤Ā»
pmichaud right. which means our exporter and importers need to be smart enough to handle multis
which I suspect they currently aren't.
jnthn As in, other languages?
pmichaud no, just within Rakudo for now. But I have something more to go on. 16:33
I agree that since methods appear in the namespace TOPERL6MULTISUB may be okay as-is.
I'll play with it a bit more.
do we have an easy way to determine if a Sub PMC has been compiled with the :multi flag? 16:34
(in PIR)
16:36 mikehh left
pmichaud ahhh, get_multisig 16:37
okay, I can fix things from there.
jnthn IIRC there is a...yes, that 16:38
jnthn is being sociable too ;-)
dalek kudo: 831c21f | pmichaud++ | docs/spectest-progress.csv:
spectest-progress.csv update: 315 files, 7087 passing, 0 failing
16:40
jnthn TOPERL6MULTISUB is making the (safe) assumption that multis can never be anonymous.
moritz_ literal: well, there are two ways: either you wait until some project proposals show up, and apply to one, or you write your own proposal for what you want. I'll be happy to mentor anything Perl 6 related that I feel comfortable with (ie anything not touching rakudo/parrot guts)
jnthn So the namespace stuff is OK as far as I can understand.
literal ok 16:41
pmichaud jnthn: yes, it was bothering me that TOPERL6MULTISUB was always forcing things into the namespace, but that appears to be okay. 16:42
i.e., I didn't know if methods belonged there. Parrot is moving so that methods _don't_ appear in the namespace by default, so we'll have to adjust a bit there. 16:43
TimToady maybe methods should be stored slightly differently in the symbol table, say with a twigil
moritz_ &.method?
masak mberends: another fairly critical omission right now is that 'installer' still hard-codes the projects/ directory (and that in general it doesn't care about config.proto at all)
TimToady that means something else
more likely &!method
moritz_ right
TimToady but that's wrong too, maybe
moritz_ but '&.foo' doesn't exist yet in the symbol table, right? 16:44
ruoso er
TimToady hmm
ruoso I'd guess one can use has &.foo
I mean
there's not really a reason to forbid it
I think
16:44 szbalint joined
moritz_ but that's the &!foo entry in the symbol table, isn't it? 16:44
ruoso not in the symbol table 16:45
moritz_ right
ruoso I mean
TimToady the only problem is confusion if someone says "has &.foo;'
moritz_ confused
ruoso &!foo is resolved as "the private attribute of the invocant of the current method"
which means that it is expanded like that by the compiler
(I think there is a line or two in the spec that says something like that) 16:46
16:46 lucs joined
TimToady if someone says &.foo, are they trying to name the foo method, or call the foo virtual method to return a Code? 16:46
so it's not gonna fly
ruoso it's calling the accessof foo that returns a method 16:47
ops
a Code
TimToady yes, so we can't use that for naming a method in the symbol table
ruoso ah... you mean in the package
pugs_svn r25655 | moritz++ | [u4x] add 'invocant' to TODO
TimToady yes
ruoso hmm
is there really a twigil needed to that? 16:48
what's wrong with Package::<&method>?
TimToady the problem is how to not pay attention to methods when you're doing multi dispatch
without having to examine the type
ruoso by the fact that methods are not in the lexical scope
subs are
TimToady which is a problem if a method is alias-exported into a multi
ruoso if a method "is export" it becomes a sub 16:49
so it becomes part of the multi sub
if it isn't exported,
TimToady it's still a method too
ruoso but it isn't part of the lexical scope
it's just in that class' package 16:50
TimToady how does the dispatch tell whether &foo is a multi or a method?
ruoso it doesn't
it's &foo itself that knows that
TimToady &foo can name a method currently
ruoso really?
TimToady if it's in the package
ruoso how?
hmm
TimToady always been that way in my head
ruoso actually
pmichaud wasn't that way in mine :-)
TimToady I know 16:51
ruoso I was thinking that "our method" was only registered in "the package" and in "the object public interface"
no local alias
er
no lexical scope alias
which means
pmichaud (actually, my head had a weird superposition of thinking it could be either and waiting for TimToady to collapse the wave function :-)
moritz_ well, TimToady's wave function only collapses if somebody tries to measure it
pmichaud which is what happened for me last night -- I tried measuring it, and got little Perl 6 and Parrot particles all over the place. Now I have to catalogue them :-) 16:52
ruoso TimToady, in summary, I wouldn't expect for you to access a variable to get a method... a method only makes sense in relation to a class or object 16:53
moritz_ sounds kinda like an accellerator
ruoso so there's no reason to install it in the lexical scope
TimToady perhaps twigils are a kind of neutrino
moritz_ not quite massless?
weird?
fast?
uncharged? 16:54
TimToady that all sounds more like the sigils
pmichaud given that we already have a periodic table of operators, this discussion sounds a bit bizarre. :-)
ruoso TimToady, I could even argue that they don't need to be installed in the Package as well, just in the class
TimToady given the oscillation of $foo = @foo and such
moritz_ well, now we need the periodic table of terms ;-)
alester So, rkendall: Drupal help about now would be fantastic.
ruoso brb & 16:55
jnthn heading off again for a bit - maybe be about again tomorrow once I arrive in Odessa...
pmichaud thanks for the help, jnthn!
alester We've got rakudo.org up under Drupal right now, but lots of MT blog posts that I need to convert.
jnthn pmichaud: np, happy hacking :-)
rkendall I can help with Drupal configuration, theming, tweaks, etc. Could probably help port data over too. 16:56
16:56 masak left
alester That would be a HUGE help. 16:56
I'm just now getting into drupal
moritz_ speaking of the website... It would be nice to have a permanent link that always points to the latest release tarball
alester moritz_: Sure.
moritz_ like rakudo.org/latest-release.tar.gz 16:57
alester Do you have an account on the site?
rkendall I can work with a copy if you don't want to give full access to a newbie
I did have a go at signing up, but didn't let me just yet
alester yeah, that's the first thing I have to turn on.
I can't look at all this now, I'm at work on a fire.
but maybe later today I'll go down that road. 16:58
pmichaud moritz: pmichaud.com/perl6/rakudo-latest.tar.gz
at least until we figure out where we want to more permanently house the release tarballs.
moritz_ pmichaud: ah, good
that will do for putting it into an article 16:59
rkendall alester: no probs, just let me know what you would like me to do. I'd also be happy to help with any Drupal questions (I've been using it for years)
alester That would be huge. 17:00
moritz_ ok, I'm off now, see you all tomorrow
alester The big thing is to be able to move the Movable Type entries over.
jnthn pmichaud: Ah, one important thing I probably should tell you to save you some distraction...
alester I haven't found a decent solution.
ruoso back &
jnthn erm
alester or any solution, really
jnthn distraction wasn't the word...hair-tearing maybe ;-)
ruoso TimToady, in fact, I was always hoping the "installing methods in Package" to be dropped at some point ;)
jnthn I *think* that the invocant is not being typed properly in multi methods. 17:01
That likely needs fixing before you can is export a lot of stuff 17:02
dalek kudo: 67770c3 | (Moritz Lenz)++ | docs/spectest-progress.csv:
Merge branch 'master' of [email@hidden.address]
jnthn It gets easier if $?CLASS can be set.
rkendall alester: did you try the Node import modue? drupal.org/project/node_import
jnthn Then it's a lookup of that lexical when constructing the signature object.
OK, really afk now
alester no sir.
I can give you a dump of the MT data if you wanna try playing with it. 17:03
rkendall yea sure
you can email me at ross [at] rosskendall.com 17:04
alester do me a favor please.
Mail me at [email@hidden.address] and remind me.
I have to do it later.
rkendall will do
alester I really gotta get back to this segfualt.
thanks.
rkendall cheers
17:07 araujo joined 17:11 cas joined
mberends masak: Nice gist. Your perl5 mojo is fine ;) Agreed installer must read config.proto. Do you want a PROJECT_DIR variable to pass a value to proto, or a --project-dir option? 17:15
oh, he went. nevermind. 17:17
pmichaud jnthn: yes, I remembered that invocants aren't typed by default in methods, but thanks for the reminder. :-) 17:18
17:21 c9s left 17:22 c9s joined 17:37 NoirSoldats left 17:41 ZuLuuuuuu joined
pugs_svn r25656 | putter++ | [elfparse] Ratchet optimization runs. RMARE bugfixes, and a bit of noisy refactoring. 17:46
r25656 | putter++ | There's currently a "3;3;3;..." size of statementlist vs time nonlinearity. Seemingly preexisting but recent.
17:51 aindilis joined 17:58 szabgab joined 18:06 pmurias joined 18:12 Psyche^ joined 18:15 nigel joined 18:16 nigel is now known as trexy
trexy hi 18:16
I'm interested in foreign language eval in Perl6
18:16 aindilis` joined
trexy I'm pretty sure I saw such a thing flying by ... is this in the spec still? 18:17
TimToady eval string, :lang<APL> was a proposed form, however it really depends on the target language implementing an eval 18:21
so more like "use APLcore:from<APL>; APLcore::eval($string)" 18:23
ruoso TimToady, in the end, do we have any change in the way "our method" works?
18:24 szabgab left
ruoso or better put... do "our method" define a lexical symbol or not? 18:25
TimToady if it does, it needs to be distinct from &foo
18:25 awarefish joined
ruoso TimToady, I was thinking that "our" and "my" already mean something different depending on what they are declaring 18:26
TimToady what is the easiest way to fetch the Code for a method via .^ currently?
ruoso Foo.^can('method')
or, if you want to do it in a non-OO way 18:27
pmurias ruoso: hi
ruoso Foo.^methods(:local).grep: { /name/ }
hi pmurias
TimToady I would like some syntactic relief for that, somehow 18:28
ruoso TimToady, but why would anyone try to get a method for a class without doing it in an OO way
er... while still getting a syntatic relief, I mean
but one can always extend the use of :local
Foo.^can('method', :local)
pmurias [wybierz semestr zimowy]
sorry
18:29 Patterner left, Psyche^ is now known as Patterner
TimToady Foo.^<method> is what I'm thinking about 18:29
ruoso pmurias, I was thinking you could apply to GSoC
TimToady, metapostcircumfix?
18:30 kane__ joined
TimToady also $obj.^{$somemethod} 18:30
ruoso but this having the regular OO
18:30 aindilis left, kane_ left
ruoso not only 'local' lookup 18:30
TimToady, but I'm not sure it's really worth the trouble... $obj.^can($somemethod) is not that bigger 18:31
even because you don't even need the &
s/&/^/
TimToady "is export" doesn't want .can
ruoso hm?
"is export" autogenerates a sub for that method, afaiu 18:32
TimToady want to avoid the indirection if the method implementation knows how to be called as a sub, treating the invocant as a normal positional 18:33
ruoso TimToady, I didn't mean any indirection at all
in SMOP, it's all Code
that have .signature
the point is "where is this Code installed"? 18:34
TimToady ::?CLASS::DEFAULT ::= <what?>
ruoso ::?CLASS::DEFAULT ::= ::?CLASS.^can('something')
TimToady no, that pulls in an ancestor's .something 18:35
ruoso ::?CLASS::DEFAULT ::= ::?CLASS.^can('something', :local)
considering that we already use :local when listing the methods and attributes of a class via .^methods 18:36
and .^attributes
TimToady, but... what is ::?CLASS::DEFAULT anyway? 18:37
TimToady where "is export" puts the multi alias for export
ruoso well... 18:38
TimToady that's how exports work in general
ruoso since I consider "is export" generates a sub
it'd be installing it in
TimToady export tags are just sub-packages
ruoso ::?PACKAGE::EXPORT::DEFAULT
TimToady I don't want it to generate a sub. I want the method to *be* the sub :)
ruoso anyway
it doesn't change that
and "is export" probably can't use ::?CLASS directly anyway 18:39
since it's a trait
TimToady yes, forgot the ::EXPORT, but same idea
well $?CLASS then, which should work for a package name too 18:40
ruoso if you think in method as "a code installed in a class" and a sub as "a code installed in a package or the lexical scope"
it doesn't really matter if they are the same object or not
TimToady it does if you don't want to duplicate code for method is export 18:41
it doesn't matter semantically, true
other than the semantics of chewing up more memory :)
I just want to make sure that if I alias a method's Code into a lexical/package scope, I can call it as a sub 18:42
ruoso TimToady, in SMOP, you would have a "mold" and an "outer" scope. Then you'd get two different indirections, one for the method, with the original signature, and other for the sub, with the modified signature...
TimToady and not just have it a special case of "is export"
ruoso it doesn't need to be an overhead
it can be made as an alternative indirection 18:43
TimToady but then there's indirection...
ruoso but there's always some level of indirection
TimToady I'd be much happier if were simply the case that a method's Code simply required an invocant as the first positional parameter 18:44
ruoso (the "mold" means the "bytecode" ready to be processed in SMOP)
TimToady, that would require an additional indirection for calling methods
you need two different objects, because they answer different things for .signature
TimToady no, we just say that it's okay for a sub to say that it will treat its first arg as the invocant 18:45
ruoso uh?
TimToady &foo.signature is allowed to return ($foo: $bar, $baz) 18:46
18:46 kane__ left
ruoso then you're making the invocation more complex 18:46
TimToady as far as the caller is concerned, it can still call it as &foo.($f,1,2)
not at all
it's simpler
18:47 szabgab joined
ruoso and TimToady are in different axes of this argument 18:47
TimToady have a meeting in 12 minutes 18:48
and have to commute to work
PerlJam As long as you aren't grinding an axe on anyone :)
TimToady to be continued... &
ruoso TimToady, if &foo.signature is allowed to return ($foo: $bar, $baz) it will need to decide if the invocation has the &foo.($f,2,3) or the &foo.($f: 2,3) format... I don't see how that can be simpler... 18:50
pmurias ruoso: what would be a SMOP task appropriate for GSoC? 18:51
ruoso on the other hand, if the installed sub and the installed method are different objects that share data (the code to be run after the signature binding), they have no exceptions, they are plain methods and subs that behave in an uniform way...
pmurias, the one I had in mind was to hunt down the memory leaks
pmichaud PerlJam: rakudo announcement now available at rakudo.org/node/12, if you're still wanting to forward it somewhere else. 18:53
ruoso TimToady, I agree that makes the compiling/init a bit more complex, but makes everything straightforward after that 18:55
pmurias ruoso: to apply for GSoC i have to register at GSoC's site once the student application period starts? 18:56
ruoso pmurias, yes
but I guess you can start making a draft proposal
and I can help you out with it
one interesting thing about that idea for GSoC is that you have very clear deliverables, since we already have a way to measure how many leaks SMOP has 18:58
pmurias i think fixing the leaks would require using a real GC as the spec requires circular references like $?BLOCK and $?ROUTINE
ruoso pmurias, by real GC you mean trace GC? 18:59
pmurias yes
ruoso I'm not sure that's an interesting idea...
using refcounting GC is a very important aspect of the SMOP-P5 integration
pmurias, maybe it would require weak-refs 19:00
19:01 aindilis` left 19:06 FurnaceBoy joined
pmurias ruoso: wouldn't ref counting create a portability problems as Perl 6 code which would run fine on a trace-GC'ed implementation will leak memory on a ref-counting one 19:06
19:09 araujo left
ruoso pmurias, hmm... maybe... but there might be other solutions to that... 19:10
I'm not that all against trace gc
but the idea of being compatible with p5 is something that is now very important to me
19:11 lucs left
alester pmichaud: YOu know you can assign better URLs for nodes, yes? 19:11
ruoso I do think my greatest milestone for SMOP is having it merged inside p5 19:12
alester Not suggesting we do all the time (in fact, I think we shouldn't) but for stories/pages that are a big deadl, I think rakudo.org/notable-release-whatever is better than rakudo.org/node/48
PerlJam alester: rakudo.org/releases/vienna maybe?
alester prob'ly 19:13
19:13 schmalbe joined 19:18 Ariens_Hyperion joined
PerlJam someone mentioned www.programmersheaven.com/2/Perl6-FAQ on perlmonks in response to someone's query regarding perl6. That looks very pugs-centric from where I sit (and a tad dated). I wonder if we can get it updated. 19:19
alester Something came loose @ pmichaud's mail account.
ruoso pmurias, I think the support for weak references in SMOP needs to be a bit different then other implementations... 19:20
19:20 DemoFreak joined
ruoso pmurias, I was thinking we can make something like lowlevel_refcnt_weaken(&pointer) 19:22
pmichaud yes, apparently the mail daemon on my server was stuck -- I unstuck it.
ruoso pmurias, then it would add the address to the pointer in a list related to the object that is pointed to, in a way that the address of the pointer is overwritten as pointing to false when the object is destroyed... 19:23
pmurias, we would just need to hold a pointer to a list of some sort in the same struct where we hold the lock and the refcnt 19:25
and overwrite all weak references before calling DESTROYALL
pmurias, what do you think? 19:27
of course lowlevel_refcnt_weaken could only be called in objects that are refcounted,,, 19:29
pmurias that would work... 19:31
ruoso so that means this should be promoted to the same level as SMOP_REFERENCE and SMOP_RELEASE
SMOP_WEAKEN(&address)
pmurias ruoso: what are all the reasons for staying with ref-counting instead of a trace gc? 19:33
ruoso only one actually
stay compatible with p5
pmurias that is to make incrementing the refcount on a smop object from p5 faster? 19:34
ruoso no, my idea is that SV and SMOP__Object structures merge together 19:36
i.e.: add a SMOP__ResponderInterface* as the first member of SV
pmurias that would mean that all smop object will be forced to use refcounting
ruoso if they are subject to GC 19:37
if they aren't they can just implement REFERENCE,RELEASE and WEAKEN as noops
(or if they are managed some place else, for that matter)
pmurias a trace-gc'ed object can fake REFERENCE and RELEASE
ruoso yes
but trace gc requires different infraestructure 19:38
pmurias my telling the trace gc that that object is used somewhere else e.g. $refcout{$object}++
ruoso you need to be able to "trace" 19:39
and you can't do that simply with REFERENCE and RELEASE
you need the methods to FLAG as well
the biggest problem is that in order to "trace" to work, all objects need to implement it 19:40
you can't have no-ops
I'm not really sure it is possible to mix them together 19:41
(except by make a refcounting reference to the trace gc)
(which is what you've suggested)
19:41 pmurias left 19:42 milton131 left 19:44 pmurias joined 19:46 szabgab left
pmurias ruoso: i'm aware that in order to mix ref-counting and trace gc, the trace-gc has to keep a ref-count for it's objects which were ref-counted 19:46
but i don't see a big problem with it
ruoso except that you don't win much
since the refcounting bugs will persist 19:47
the performance penalty for changing the refcount will still happen
and you will still have the other GC running together 19:48
pmurias only perl5 will be able to generate refcouting bugs as all smop stuff should be changed to a trace gc once it's working 19:49
ruoso I don't know... I still feel that is not going to get us much benefit 19:50
how would you switch between trace and refcount?
I mean
today all objects should receive the proper REFERENCE and RELEASE calls
how would that policy translate in the mixed environment? 19:51
pmurias i see the problem now... ref-counted stuff doesn't have the seen during tracing flag 19:57
19:58 estrabd joined 20:00 mikehh joined
ruoso but I think SMOP_WEAKEN should probably be the key to solve 99% of the problems we have now 20:00
trexy thanks for the reply regarding foreign language eval --- I'm still trying to get my head around how it would work 20:12
take a java eval section - won't it need a JVM or does it need a Parrot JVM?
actually Java is not a good example - I'm thinking of Ruby or Python 20:14
ruoso trexy, in Parrot, there's probably going to be a Java compiler targetting parrot bytecoe
in that case a java eval could use that compiler and don't require a JVM at all 20:15
trexy ok - so when you have a Java eval section - the Perl6 runtime passes through to
the underlying Parrot java -Ā» bytecode translator 20:16
ruoso but in SMOP, otoh, that would probably require a JVM and a JDK, just as Inline::* requires in p5
trexy ok
ruoso Parrot tries to integrate languages 20:17
SMOP tries to glue runtimes
trexy you could imagine a web server that had a parrot engine and could dispatch to multiploe languages
ruoso indeed.
trexy will SMOP do the same? - CGI without the shell ?
ruoso what do you mean by "CGI without the shell"? 20:18
trexy traditional webservers used to dispatch actions via CGI and the #!/ shebang line
ruoso trexy, there's an experimental mod_parrot already, iirc
trexy nominated the interpreter to use
ruoso trexy, ah.. I see... well.. it's not the webserver that takes notice of #!, it's the operating system (unless you're in windows I think) 20:19
20:19 nihiliad left
ruoso but yes, you could think on a mod_smop to the same extent you can think of mod_perl 20:19
trexy yes - so Perl/Parrot could replace the operaing system as the magic glue here
ruoso well... that is already possible with perl5 20:20
i.e. mod_perl
but...
parrot will be able to provide security features that p5 doesn't have
and SMOP won't have as well
dalek kudo: 66595b0 | pmichaud++ | build/gen_metaop_pir.pl:
Add R metaops for standard infix operators.
20:21
trexy I'm still trying to get my head around SMOP
ruoso trexy, SMOP is a runtime implementation for Perl 6 that tries to stay in the same level as p5 20:22
(in terms of infra-estructure)
and hopefully will be integrated in p5 at some point
trexy ok cool 20:23
and it would call out to other runtime environments
?
ruoso yes
it already does it
SMOP can eval p5 code by using an embedded interpreter 20:24
20:24 Casan joined
trexy like apache embeds a perl interpreter for mod_perl = kind of / not really 20:25
ruoso mildew: my $p5 = ::P5Interpreter.new(); say $p5.eval("Is the mildew evalbot working again?");
p6eval mildew: OUTPUTĀ«Can't locate object method "scope_declarator__S_097my" via package "STD" at ../../src/perl6/STD.pm line 2279.ā¤Ā»
ruoso no, it isn't
20:26 Khisanth left
ruoso trexy, yes, just like mod_perl 20:27
frioux is that what mildew is? p5 in parrot?
ruoso frioux, no.. mildew is a Perl 6 compiler that uses STD as its parser and SMOP as its target
frioux ah, k
ruoso the compiler itself is written in perl 5, but it compiles code down to the C code for loading the bytecode 20:28
it even can generate a shared object to be loaded later
which is how the mildew CORE is being implemented in Perl 6
frioux interesting 20:29
20:30 rindolf left
ruoso so after the code is compiled, it doesn't require p5 20:32
frioux interesting
so that's a bootstrapping help then
20:33 Khisanth joined 20:35 nihiliad joined
ruoso frioux, not only "help"... SMOP is intended to be a real Perl 6 implementation... 20:35
frioux right 20:36
ok
so it doesn't really depend on p5 though
ruoso the runtime doesn't
frioux because it compiles down to c
ruoso the compiler doe
frioux right
that's pretty cool
ruoso at some point, smop will have a regex engine
then we can start trying to compile STD using mildew 20:37
frioux yeah
ruoso and when that is succeeded,
frioux rakudo isn't even using STD yet is it?
ruoso no, but it tries to stay as close as possible
frioux right 20:38
when you say regex engine you mean full on perl 6 regexes right?
20:38 FurnaceBoy left
ruoso yes, one that can run STD 20:38
frioux I haven't actually looked at STD; I just saw it on the screen at a talk larry did 20:39
it looked a little gnarly to me
ruoso it's on pugs repo
frioux yeah, I just haven't looked is all
ruoso src/perl6/STD.pm
trexy so once you compile will it run on top of SMOP?
ruoso once SMOP has a regex engine that is able of running STD 20:40
we'll compile STD to SMOP
20:40 ab5tract left
ruoso then we can reimplement mildew in Perl 6 20:40
and we have it bootstrapped
trexy cool ;-)
good luck with the regex engine 20:41
I imagine that would be useful for other projects as a standalone
ruoso we're still pretty far from writing it
there's still much of other runtime features that need to be implemented first
diakopter what other runtime features? 20:44
ruoso well, a lot, actually... 20:49
we now pass the first sanity test
and when I mean the first, it's really the first file 20:50
t/01-sanity/01-tap.t
20:54 Southen joined
ruoso but I'd really like to have some clarifications on S11 20:57
20:57 xinming joined
bacek good morning 20:59
ruoso I still don't understand much how "use" works
21:03 xinming_ left 21:07 pmurias left 21:08 [particle]1 joined 21:11 Southen_ left 21:12 mikehh left 21:16 Kimtaro left
skids number 572 on list of distracting thoughts for the day: 21:21
In a lazy list environment, what would the best sort() be... some kinda qsort/bubble hybrid that finds the next value to feed quickly? 21:22
skids shoves his list of things not to get distracted about back under the living room rug.
21:24 Kimtaro joined 21:28 mikehh joined 21:35 REPLeffect joined 21:39 Southen_ joined
Ariens_Hyperion skids: it doen't matter you would have to evaluate each element anyway 21:42
skids on the first few passes, no, data locality would be a lost cause. 21:43
but for example in a bubble sort after a few passes you might cache how far back to start to quckly produce a next value. 21:44
Ariens_Hyperion I don't understand 21:45
you cache the beggining of the next iteration? 21:46
skids in a lazy list environment you try to keep a low memory profile because you have a lot of chained operations.
Ariens_Hyperion but in both cases the list is kept in memory anyway 21:47
skids right but you do not have to look at the entire list to produce the greatest value after a few passes.
so you could get away without looking at the back of the list for a few iterations. 21:48
Ariens_Hyperion in that case 21:49
a linear search wold be as good as a bubble sort
PerlJam skids: sounds like mergesort is still the best performer to me :) 21:50
skids not quite it's the bubble dragging that lets you get away with it.
Ariens_Hyperion skid? why? 21:51
21:51 sahadev left
skids PerlJam: it would be interesting to see some CS on the matter. Anyway I shouldn't let it take up my time :) 21:51
Ariens_Hyperion with manipulation over nodes you can get the same performance 21:52
Knuth needs to update the Art of Computer Programming to include lazy environs 21:53
PerlJam Ariens_Hyperion: He's only 4 books into a 7 book set. He'll be dead before he gets to 7 at this rate, *especially* if he keeps updating the existing books. 21:54
skids Ariens_Hyperion: because you know how far you dragged the possibly-2nd-largest value before dropping it, and everything under it on the list is definitely smaller.
Ariens_Hyperion skids but insertion sort does fewer node manipulations 21:55
21:56 Southen left
skids Ariens_Hyperion: knock yourself out, I'm gonna bow out before I start obsessing over it. 21:57
Though it did make me ponder just how evil reverse() could become. 21:58
Ariens_Hyperion moral of story 21:59
use a stable merge
or radix
:p
skids (The question is not the total number of node manipulations but when, and in what data access order.)
22:05 pmurias joined
pmurias ruoso: mildew runs 01-sanity/02-counter.t too 22:07
ruoso cool 22:08
now we're only 100k-2 tests away ;)
pmurias not really ;)
re cool
22:10 ZuLuuuuuu left, schmalbe left, hercynium left, M_o_C left
pugs_svn r25657 | pmurias++ | [mildew] add TESTS which contains the (3 for now) tests from the main test suit we can run 22:11
22:18 pmurias left 22:19 donaldh joined 22:26 frioux left
ruoso @tell pmurias I think you missed adding VAST/Autoincrement.pm 22:27
lambdabot Consider it noted.
22:37 ruoso left 22:39 donaldh left 22:48 xinming left 22:50 xinming joined 22:55 Khisanth left, PacoLinux left, AzureStone left, Helios left, Grrrr left, buu left, oskie left, PerlJam left, IRSeekBot left, slango left, lisppaste3 left, mikehh left, [particle]1 left, szbalint left, cas left, ashizawa_ left, Eevee_ left, scrottie left, cxreg left, bsb left, Nom- left, gbacon left, yves left, allbery_b left, ilbot2 left, f00li5h[HireMe] left, elmex left, mj41 left, Kimtaro left, awarefish left, Whiteknight left, justatheory left, rkendall left, simcop2387 left, cibs left, skids left, smtms left, ewilhelm left, pugs_svn left, moritz_ left, literal left, tcliou|Away left, LCamel left, viklund left, idemal left, dalek left, gravity left, wage left, Tene left, awwaiid left, nikn left, [particle] left, wolverian left, cotto left, avar left, spinclad left, kcwu left, frobnitz left, pmichaud left, diakopter left, cj left, REPLeffect left, preflex left, mtve left 22:56 jrockway left, Maddingue left, Casan left, c9s left, Guest92665 left, baest_ left, Aisling left, zostay left, zev left, dmpk2k left, jjore left, silug left, nipotan left, DemoFreak left, trexy left, agentzh left, broquaint left, p6eval left, Southen_ left, Ariens_Hyperion left, dukeleto left, SamB left, Exodist left, Porsbo_ left, s1n left, samlh left, rafl left, alester left, lambdabot left, nbrown left, meteorjay left, pjcj left, Matt-W left, clkao left, integral left, kanru left, rhr left, TimToady left, cls_bsd left, estrabd left, mberends left, nihiliad left, xinming left, Patterner left, Sepheebear left, yahooooo left, Caelum left, r0bby left, tarbo2 left, carpftb_ left, xuser left, meppl left, bacek left, wayland76 left, cognominal left, Maghnus left, Ehtyar left, frooh left, namenlos left, felipe left, drbean left, Gothmog_ left, jnthn left, hcchien left, c1sung left, bigpresh left, gfldex left, sunnavy left 22:59 PerlJam joined, xinming joined, Southen_ joined, REPLeffect joined, mikehh joined, Kimtaro joined, [particle]1 joined, nihiliad joined, Khisanth joined, Casan joined, estrabd joined, DemoFreak joined, awarefish joined, trexy joined, Patterner joined, c9s joined, cas joined, szbalint joined, Tene joined, justatheory joined, kanru joined, PacoLinux joined, alester joined, rafl joined, ashizawa_ joined, mberends joined, Eevee_ joined, Whiteknight joined, meppl joined, rkendall joined, AzureStone joined, lambdabot joined, Sepheebear joined, Guest92665 joined, agentzh joined, bacek joined, buu joined, IRSeekBot joined, Helios joined, Grrrr joined, oskie joined, slango joined, lisppaste3 joined, nbrown joined, wayland76 joined, dukeleto joined, irc.freenode.net sets mode: +o PerlJam, simcop2387 joined, yahooooo joined, viklund joined, cognominal joined, awwaiid joined, Maghnus joined, Ehtyar joined, SamB joined, cibs joined, idemal joined, broquaint joined, meteorjay joined, skids joined, ewilhelm joined, rhr joined, nikn joined, Exodist joined, p6eval joined, gbacon joined, allbery_b joined, scrottie joined, ilbot2 joined, yves joined, cxreg joined, f00li5h[HireMe] joined, bsb joined, elmex joined, Nom- joined, mj41 joined, frooh joined, Caelum joined, smtms joined, [particle] joined, namenlos joined, dalek joined, r0bby joined, baest_ joined, tarbo2 joined, felipe joined, wolverian joined, preflex joined, Porsbo_ joined, s1n joined, samlh joined, carpftb_ joined, cotto joined, drbean joined, avar joined, Matt-W joined, integral joined, clkao joined, pjcj joined, gravity joined, Aisling joined, xuser joined, zostay joined, TimToady joined, wage joined, pugs_svn joined, cls_bsd joined, literal joined, tcliou|Away joined, LCamel joined, moritz_ joined, spinclad joined, diakopter joined, cj joined, kcwu joined, frobnitz joined, pmichaud joined, Maddingue joined, mtve joined, jrockway joined, jjore joined, zev joined, nipotan joined, dmpk2k joined, silug joined, c1sung joined, hcchien joined, gfldex joined, bigpresh joined, sunnavy joined, jnthn joined, irc.freenode.net sets mode: +oooo TimToady moritz_ pmichaud jnthn, Gothmog_ joined 23:02 jrockway_ joined 23:03 charsbar left, REPLeffect left, Maddingue left, Maddingue joined, jrockway left, awwaiid left, awwaiid_ joined, pmichaud2 joined, pmichaud left, charsbar joined 23:04 rkendall left 23:05 charsbar left, pmichaud2 left, awwaiid_ left, Khisanth left, Maddingue left, oskie left, Grrrr left, PacoLinux left, Helios left, buu left, slango left, PerlJam left, lisppaste3 left, IRSeekBot left, AzureStone left, Nom- left, bsb left, cxreg left, scrottie left, Eevee_ left, szbalint left, [particle]1 left, mikehh left, yves left, ashizawa_ left, gbacon left, ilbot2 left, allbery_b left, cas left, mj41 left, elmex left, f00li5h[HireMe] left, awarefish left, Whiteknight left, Kimtaro left, pugs_svn left, smtms left, skids left, literal left, cibs left, moritz_ left, LCamel left, tcliou|Away left, ewilhelm left, justatheory left, simcop2387 left, wage left, idemal left, viklund left, gravity left, dalek left, cotto left, wolverian left, [particle] left, kcwu left, avar left, spinclad left, frobnitz left, diakopter left, Tene left, nikn left, cj left, mtve left, preflex left, zev left, baest_ left, Casan left, jjore left, Aisling left, dmpk2k left, nipotan left, Guest92665 left, silug left, zostay left, c9s left, charsbar joined, PerlJam joined, pmichaud2 joined, awwaiid_ joined, Maddingue joined, mikehh joined, Kimtaro joined, [particle]1 joined, Khisanth joined, Casan joined, awarefish joined, c9s joined, cas joined, szbalint joined, Tene joined, justatheory joined, PacoLinux joined, ashizawa_ joined, Eevee_ joined, Whiteknight joined, AzureStone joined, Guest92665 joined, buu joined, IRSeekBot joined, Helios joined, Grrrr joined, oskie joined, slango joined, lisppaste3 joined, simcop2387 joined, viklund joined, cibs joined, idemal joined, skids joined, ewilhelm joined, nikn joined, gbacon joined, allbery_b joined, scrottie joined, ilbot2 joined, yves joined, cxreg joined, f00li5h[HireMe] joined, bsb joined, elmex joined, Nom- joined, mj41 joined, smtms joined, [particle] joined, irc.freenode.net sets mode: +o PerlJam, dalek joined, baest_ joined, wolverian joined, preflex joined, cotto joined, avar joined, gravity joined, Aisling joined, zostay joined, wage joined, pugs_svn joined, literal joined, tcliou|Away joined, LCamel joined, moritz_ joined, spinclad joined, diakopter joined, cj joined, kcwu joined, frobnitz joined, mtve joined, jjore joined, zev joined, nipotan joined, dmpk2k joined, silug joined, irc.freenode.net sets mode: +o moritz_ 23:06 Casan left, Tene_ joined 23:14 REPLeffect joined 23:18 pmurias joined
pugs_svn r25658 | pmurias++ | [mildew] added missing file 23:19
23:22 bacek_ joined 23:28 Tene left 23:34 Casan joined 23:35 cas left 23:40 pmichaud2 is now known as pmichaud 23:44 awwaiid_ left