Perl 6 - the future is here, just unevenly distributed

IRC log for #perl6, 2009-01-19

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 froele is there a perl channel for MUD discussions
00:06 |jedai| joined #perl6
00:18 Whiteknight joined #perl6
00:22 mtnviewmark joined #perl6
00:23 mtnviewmark std: [X>>*<<X]<< @a
00:23 p6eval std 24953: OUTPUT«############# PARSE FAILED #############␤Obsolete use of >> to do right shift; in Perl 6 please use +> or ~> instead at /tmp/l8wjqyMqiF line 1:␤------> [32m[X>>[31m*<<X]<< @a[0m␤00:05 82m␤»
00:23 mtnviewmark std: [X>>*<<X] @a
00:23 p6eval std 24953: OUTPUT«############# PARSE FAILED #############␤Obsolete use of >> to do right shift; in Perl 6 please use +> or ~> instead at /tmp/zLzWsTdPq9 line 1:␤------> [32m[X>>[31m*<<X] @a[0m␤00:05 82m␤»
00:23 mtnviewmark std: [X*X] $a
00:24 p6eval std 24953: OUTPUT«00:07 124m␤»
00:24 mtnviewmark std: [X«*»X] $a
00:24 p6eval std 24953: OUTPUT«Can't locate object method "infix_curcumfix_meta_operator" via package "STD" at STD.pm line 12085.␤00:05 82m␤»
00:24 mtnviewmark erk - misspelling!
00:27 diakopter mtnviewmark: do you have an svn account?
00:27 mtnviewmark nope
00:27 diakopter want one?
00:27 mtnviewmark would you trust checkins from the likes of me? :-)
00:27 diakopter commit bits are available for the asking
00:28 mtnviewmark hmmm... we'll I'd probably feel better about submitting patches
00:28 mtnviewmark actually - I'd feel better if I got it to build on my machine first!
00:28 diakopter you'll get over that hesitation/reluctance quickly :D
00:28 diakopter STD.pm is in svn.pugscode.org
00:29 diakopter (different from where parrot is, and soon also from where rakudo will be)
00:30 mtnviewmark right - i've got that giant checkout
00:30 mtnviewmark if one is working on STD.pm - what is the preferred way to 'check' it?  via pugs?
00:30 * mtnviewmark (supposes this is all in the wiki and he should look there...)
00:30 diakopter eh..
00:31 * diakopter looks around for TimToady or pmurias or mncharity or ruoso
00:31 mtnviewmark heh
00:34 diakopter mtnviewmark: what userid do you want for svn.pugscode.org; privmsg me your email address
00:43 froele Anyone know of performance gains i/o wise perl vs c
00:43 kisu joined #perl6
00:48 shinobi-cl joined #perl6
00:53 DemoFreak joined #perl6
01:01 shinobi-cl hi all
01:01 shinobi-cl does anyone knows a resource where i can learn about reading binary files (i.e. a file object reference guide)?
01:11 DemoFreak joined #perl6
01:15 |jedai| joined #perl6
01:20 Eulalia joined #perl6
01:21 Eulalia left #perl6
01:22 [particle] joined #perl6
01:39 kst```` joined #perl6
01:42 |jedai| joined #perl6
01:54 hercynium joined #perl6
02:00 |jedai| joined #perl6
02:07 alc joined #perl6
02:08 shinobi-cl does anyone knows a resource where i can learn about reading binary files (i.e. a file object reference guide)?
02:12 mtnviewmark joined #perl6
02:17 |jedai| joined #perl6
02:19 mtnviewmark ping moritz and/or rhr
02:20 mtnviewmark or really, anyone who knows what the right method for testing changes to STD.pm is
02:21 shinobi-cl left #perl6
02:24 km2 joined #perl6
02:28 mtnviewmark ping pmichaud?
02:37 Infinoid joined #perl6
02:52 |jedai| joined #perl6
03:00 |jedai| joined #perl6
03:21 athenot left #perl6
03:22 shinobi-cl joined #perl6
03:33 meppl joined #perl6
03:33 kisu joined #perl6
03:43 [particle]1 joined #perl6
03:46 kst joined #perl6
03:47 |jedai| joined #perl6
04:03 mtnviewmark joined #perl6
04:05 aindilis joined #perl6
04:13 mtnviewmark anyone here have experience getting the perl5 impl. of perl6 running on Mac OS X?
04:21 shinobi-cl just a friendly reminder... New perl6 wiki, at http://perl6.wikia.com   ... BTW, ...dont worry, today is my last day of spamming, i'm just spreading the news :)
04:22 shinobi-cl left #perl6
04:24 shinobi-cl joined #perl6
04:25 _jedai_ joined #perl6
04:39 sepheebear joined #perl6
04:51 |jedai| joined #perl6
04:56 mtnviewmark oy vey
04:56 mtnviewmark I suppose there isn't going to be any perl5 implementation of perl6 running on my Mac tonight...
04:57 alester joined #perl6
05:10 |jedai| joined #perl6
05:16 shinobi-cl left #perl6
05:28 diakopter mtnviewmark: I bet tomorrow more will be around
05:28 mtnviewmark ah well... actually  - I just figured out how to get the evil module that perl6 needs installed
05:29 mtnviewmark re::engine::TRE -- got it to compile on my mac -- that module has a busted link line!
05:29 mtnviewmark and have it installed in AcitvePerl's 5.10 installation
05:29 mtnviewmark COOOL and tryfile just passed STD.pm!
05:37 _jedai_ joined #perl6
05:38 mtnviewmark tada - my first patch: [X»*«X] is now the legal operator it should be
06:03 [particle] joined #perl6
06:14 moritz_ mtnviewmark: test changes with 'make test'
06:15 mtnviewmark oh - hey!
06:15 mtnviewmark excellent - diakopter was pushing me to fix the stuff I find, not just report it!  :-)
06:15 moritz_ good morning btw ;-)
06:16 moritz_ 'make test' just checks if it parses all of the files in t/spec/, not *how* it parses them
06:17 mtnviewmark well - *if* I were to be so bold as to create fixes to STD.pm - is that a sufficient test?
06:18 moritz_ not quite, I think
06:18 moritz_ btw I saw your mail about .:x and stuff
06:19 mtnviewmark excellent... another one is in the works about metaoperators
06:19 moritz_ there used to be methods whose names started with :
06:19 mtnviewmark hope you don't mind my muck raking
06:19 moritz_ like %hash.:exists and .:delete
06:19 moritz_ but I think theses things are now gone
06:19 moritz_ and :exists and :delete are now adverbs on the subscript operator
06:20 moritz_ and file tests like $filename ~~ :e are just ordinary methods like Str.e
06:20 mtnviewmark hmmm... okay, as is the odd .:~^ meaning the dotted version of the prefix operator
06:27 |jedai| joined #perl6
06:30 mtnviewmark wow, make test is kinda slow....
06:30 mtnviewmark and yes, I was warned!
06:31 mtnviewmark std: ~^<<<< $a
06:32 p6eval std 24953: OUTPUT«00:08 126m␤»
06:32 mtnviewmark woot!
06:37 kisu joined #perl6
06:40 tmaesaka joined #perl6
06:44 ashizawa joined #perl6
06:52 |jedai| joined #perl6
06:54 namenlos joined #perl6
06:57 jhuni joined #perl6
06:58 mtnviewmark ridiculous missive on spelunking metaops mailed to the list
07:04 justatheory joined #perl6
07:10 namenlos joined #perl6
08:09 pbuetow joined #perl6
08:13 tux300181 joined #perl6
08:17 moritz_ literal: http://blog.nix.is/tag/perl is a 500 internal server error (found via http://www.perlfoundation.​org/perl5/index.cgi?blogs)
08:21 iblechbot joined #perl6
08:24 [particle]1 joined #perl6
08:25 DemoFreak joined #perl6
09:17 ejs joined #perl6
09:49 |jedai| joined #perl6
10:34 cai joined #perl6
10:36 schmalbe joined #perl6
10:44 [particle] joined #perl6
10:46 Matt-W Good morning, #perl6
10:46 jnthn morning Matt-W
10:46 moritz_ Mahlzeit!
10:48 * jnthn is trying to get auto-threading working
10:49 Matt-W I tried to find out what was going on with the x86_64 miniparrot segfault, but it looked like something you need a pretty intimate knowledge of the code to figure out
10:49 moritz_ aye
10:50 jnthn Someone posted a bizzare workaround on the list this morning.
10:50 jnthn Oh no, on the ticket, which got cc'd to the list
10:50 * Matt-W looks
10:51 jnthn Oh, but he doesn't say which PMC he did that to... :-)
10:51 jnthn Ugh.
10:52 jnthn moritz_: ping
10:52 moritz_ jnthn: pong
10:52 jnthn hi
10:52 jnthn I've just (locally) made sub foo($x) { ... } really enforce that $x is an Any
10:52 jnthn And get some failures in spectest in calls to e.g. proclaim now
10:53 moritz_ jnthn: that means test errors
10:53 jnthn Should we update the test harness and sprinkle Object in a few places, or what was the test strategy for junctions?
10:55 jnthn (By that I mean, should junctions ever make it through to Test.pm?)
10:55 masak joined #perl6
10:55 masak lambdabot: don't tell me about those messages again.
10:55 Matt-W Is it still doing that?
10:55 jnthn morning masak :-)
10:55 masak Matt-W: seems not :)
10:56 masak jnthn: ahoj!
10:56 Matt-W masak: not yet, anyway...
10:56 moritz_ jnthn: I'd do the following: in Test.pm use Object, coerce to Bool, and warn if a junction is passed
10:56 jnthn masak: O! Ucil si slovencinu! ;-)
10:56 masak jnthn: well, not enough to answer you, it seems :P
10:57 jnthn It's OK, I feel that way much of the time on #slovakia.pm still. ;-)
10:57 masak :)
10:57 jnthn moritz_: OK, will give that a go.
10:57 Matt-W jnthn: so there are things that aren't derived from Any?
10:58 jnthn Matt-W: Namely, Junction.
10:58 jnthn Object is a the top.
10:58 jnthn Any and Junction derive from that.
10:58 jnthn Any is the default paramter type, and the default thing any class you write inherits from.
10:58 jnthn You can of course inherit from Object...if you want to be awkward. :-)
10:58 jnthn Which is exactly what Junctions are.
10:59 masak class Gumption is Object { ... }
11:00 Matt-W Is that because if you pass a Junction to something that's not explicitly expecting one, the autothreading magic is supposed to kick in?
11:00 jnthn Right.
11:00 masak aye,
11:01 Matt-W Cool
11:02 Matt-W Oh and while I think of it, if I say method foo(Bar|Baz $param) { ... }, does that mean "$param must be either a Bar or a Baz"?
11:02 moritz_ yes
11:02 jnthn Yeah. I'm not sure that we're parsing that in Rakudo yet.
11:02 Matt-W Excellent
11:02 Matt-W it seems to work
11:02 Matt-W I was just checking I was using it right
11:02 Matt-W doesn't work on attributes
11:03 Matt-W not sure if it's supposed to
11:03 jnthn rakudo: sub foo(Int|Str $x) { say 'ok' }; foo(1); foo("HI"); foo(4.2)
11:03 p6eval rakudo 35740: OUTPUT«Unable to parse multisig; couldn't find final ')' at line 1, near "|Str $x) {"␤␤current instr.: 'parrot;PGE;Util;die' pc 129 (runtime/parrot/library/PGE/Util.pir:83)␤»
11:03 moritz_ rakudo: sub f(Int|Str $x) { say $x }; f(1); f("a"); f({ .say})
11:03 Matt-W hmm
11:03 p6eval rakudo 35740: OUTPUT«Unable to parse multisig; couldn't find final ')' at line 1, near "|Str $x) {"␤␤current instr.: 'parrot;PGE;Util;die' pc 129 (runtime/parrot/library/PGE/Util.pir:83)␤»
11:03 Matt-W maybe it doesn't then :)
11:03 jnthn Yeah, I didn't remember it doing so.
11:03 jnthn But it should work.
11:03 Matt-W I'm sure I had it working in a method once
11:04 Matt-W I'll check on that when I have a working Parrot again though
11:04 jnthn It's a bit awkward though if you're writing multi-methods.
11:04 Matt-W &
11:04 jnthn Because if you write something like that it's too complex to supply a type for the candidate sorter...
11:06 jnthn Still gotta work out what to do with the sigil-implied roles in the candidate sorter, mind... Pondering it may all just fall neatly out of parametric roles, or if not can just be an admissibility criteria to consider a candidate or something...
11:09 masak how can it no longer work, if the test suite still passes?
11:10 ejs left #perl6
11:10 ejs joined #perl6
11:10 jnthn masak: I wasn't aware of it ever working.
11:11 masak ah
11:11 moritz_ rakudo: multi f($x) { say "Any"}; multi f(&x) { say "code" }; f(-> $y { $y } );
11:11 p6eval rakudo 35740: OUTPUT«Ambiguous dispatch to multi 'f'. Ambiguous candidates had signatures:␤:(Any $x)␤:(Any x)␤␤current instr.: '_block14' pc 80 (EVAL_16:46)␤»
11:11 moritz_ jnthn: that's what you mean, right?
11:11 jnthn moritz_: Indeed.
11:11 jnthn spectests welcome.
11:12 jnthn But I'm still working out how to handle it.
11:12 moritz_ the case with & isn't different from other type constraints, no?
11:13 jnthn You'll get the same with $x vs @x
11:13 masak I'd guess it means Callable or something.
11:13 jnthn masak: Yeah, we should be checking for the Callable role.
11:13 moritz_ and if you have sub f(Sub &code), you can make it a junction Sub & Callable
11:13 jnthn No, it's not that easy.
11:13 masak ...which means the same as Sub, no?
11:14 moritz_ masak: in this case yes. In the general ccase no
11:14 jnthn Sub &code means &code does Callable and when you call it then it returns a Sub.
11:14 masak moritz_: right.
11:14 jnthn &code is Sub would do what you just suggested.
11:14 jnthn It's just like Int @array doesn't mean we have something that does Positional and isa Int.
11:15 jnthn It means it does Positional[Int]
11:15 * masak 's head spins slightly
11:15 jnthn So I suspect Callable may want to be parametric
11:15 jnthn masak: Yeah, and it's not on your plate to implement this fun. :-P
11:16 jnthn Thing is, we *really* need to switch to a Perl 6 prelude.
11:16 moritz_ jnthn: but a sigil without an additional type constraint should be easy, right?
11:16 masak jnthn: that just means I can allow my head to spin while reading this. :)
11:16 jnthn moritz_: it's just a does Positional or does Callable, yes.
11:17 jnthn Which is why I want all of these to just be parametric.
11:17 jnthn Because then we just still have one type slot.
11:18 jnthn As pmichaud pointed out though, Rakudo has to deal somewhat with language inter-op.
11:18 jnthn Which means that the 'does Callable' check needs to be a bit more special.
11:18 jnthn The other thing that I'm really running into now, is that we haven't got a Perl 6 prelude yet.
11:19 jnthn I really, really do not want to write, say, role Array[::T] { ... } in PIR
11:20 jnthn And, worse, the junction dispatch I'm doing now isn't going to fly for non-built-ins.
11:21 jnthn erm
11:21 jnthn I mean, isn't going to work for built-ins that don't have a Perl 6 signature.
11:21 jnthn Which is something else the Perl 6 prelude would fix.
11:21 * jnthn stops waffling and gets back to writing code.
11:22 ruoso joined #perl6
11:27 pugs_svn r24954 | moritz++ | [t/spec] simple multi dispatch tests for sigil-implied type constraints
11:29 shinobi-cl joined #perl6
11:29 shinobi-cl hi, just a friendly reminder...
11:29 shinobi-cl new perl6 wiki.. http://perl6.wikia.com
11:29 shinobi-cl left #perl6
11:30 jnthn OH HAI UNFRIENDLY REMINDER THAT WE ALL ALREADY KNOW
11:31 moritz_ @tell shinobi-cl we appreciate your effort, but please don't spam #perl6. If you want to gain contributors, send a mail to perl6-users@perl.org describing your vision
11:31 lambdabot Consider it noted.
11:31 jnthn moritz_++ # dimplomatic skills
11:32 Matt-W moritz_: smooth
11:33 ruoso Hello!
11:33 schmalbe http://mauke.ath.cx/stuff/poly.html     with Perl 6
11:35 Matt-W Hello ruoso
11:37 ruoso jnthn, it sure looks like a bot, I would try to ban him instead of shouting ;)
11:38 moritz_ and I lost my op this night :/
11:40 jnthn ruoso: I've not had enough coffee to think that clearly yet. ;-)
11:47 * Matt-W calls the emergency coffee service's helicopter unit
12:13 literal joined #perl6
12:15 |jedai| joined #perl6
12:20 literal joined #perl6
12:26 alc joined #perl6
12:30 pmurias joined #perl6
12:31 pmurias diakopter: ping
12:36 ruoso hi pmurias
12:37 pmurias ruoso: hi
12:38 maerzhase joined #perl6
12:40 pmurias ruoso: re loading the already compilable prelude i think it's a good idea
12:44 ruoso pmurias, have you seen that we support named arguments now?
12:44 ruoso :)
12:45 ruoso we already can load Multi.pm
12:46 ruoso then we can add a trait_auxiliary:<is> multi in the prelude and install the "is export" variant
12:46 ruoso then we can compile Return.pm
12:48 pmurias ruoso: does Multi work or only compiles?
12:49 ruoso If it doesn't work, it misses only a few things
12:50 |jedai| joined #perl6
12:58 pmurias ruoso: do you think just loading Prelude.pm which would in turn load everything else would work
12:59 ruoso I'm not sure that will work for everything... but it is certainly an easy way of doing it
13:05 [particle]1 joined #perl6
13:14 araujo joined #perl6
13:15 |jedai| joined #perl6
13:17 jnthn moritz_: proclaim warning when it's passed a junction is going to be rather...noisy. :-)
13:22 moritz_ jnthn: rough estimate, how many tests or test files?
13:22 orafu joined #perl6
13:23 jnthn 3-4 test files, maybe 25-30 tests spit it out.
13:23 jnthn so not so bad I guess.
13:23 jnthn But a bit noisy.
13:23 moritz_ I can take care of it later today or tomorrow
13:23 moritz_ but only if I know which tests complain, which is why I need the warnings
13:24 jnthn OK, cool.
13:24 jnthn I'll leave them warning then. :-)
13:26 jnthn heh
13:26 jnthn ok( $answer == "1 + 9 = 10", "found right answer");
13:26 jnthn methinks that should be eq :-)
13:26 moritz_ aye
13:27 jnthn And then autothreading.t passes.
13:27 moritz_ jnthn++
13:28 jnthn Though I rather thing it needs more than two tests. ;-)
13:28 * jnthn wonders if we have more anywhere else.
13:29 moritz_ jnthn: you can look into the pugs repo, in t/junctions/ or similar, but I doubt that we have many more
13:31 jnthn IIRC, it was decided that .pick doesn't exist on Junctions, right?
13:32 moritz_ I think os
13:32 moritz_ s/os/so/
13:34 pugs_svn r24955 | jnthn++ | [t/spec] .pick method on Junctions doesn't exist, so get rid of tests for it.
13:35 bahaa2008 joined #perl6
13:35 bahaa2008 hi guys
13:35 pugs_svn r24956 | jnthn++ | [t/spec] Correct autho-threading test (did wrong kind of comparrison).
13:35 jnthn oops, typo
13:35 jnthn hi bahaa2008
13:35 bahaa2008 i need the ircbot which use perlpugs
13:36 bahaa2008 #perl6
13:36 bahaa2008 http://moritz.faui2k3.org/en/ilbot
13:36 bahaa2008 i can't get it from snv
13:36 bahaa2008 svn **
13:36 moritz_ why not?
13:37 bahaa2008 jnthn,
13:40 jnthn bahaa2008: Why can't you get it from svn?
13:41 bahaa2008 [root@server irclog]# svn co http://svn.pugscode.org/pugs/misc/irclog/
13:41 bahaa2008 svn: Unrecognized URL scheme for 'http://svn.pugscode.org/pugs/misc/irclog'
13:41 moritz_ that's weird
13:41 moritz_ bahaa2008: can you checkout other svn repositories?
13:42 bahaa2008 wait a sec
13:43 jnthn rakudo: sub foo(::T $x, T $y) { say "ok" }; foo(42, 4.2)
13:43 p6eval rakudo 35749: OUTPUT«Parameter type check failed for $y in call to foo␤current instr.: 'die' pc 16088 (src/builtins/control.pir:204)␤»
13:43 bahaa2008 moritz_, no
13:44 bahaa2008 moritz_, can you checkout this http://svn.pugscode.org/pugs/misc/irclog/
13:44 moritz_ bahaa2008: yes
13:45 bahaa2008 ok i'll check my problem
13:45 bahaa2008 thanks
13:47 bahaa2008 works now :)
13:47 bahaa2008 thanks
13:48 moritz_ what did you do to fix it?
13:51 jnthn ah, geck, why've I managed to break generic routines...
13:52 Matt-W jnthn: did it decide that T should be Int?
13:53 jnthn Matt-W: Yes
13:53 jnthn I've broken it in local :-(
13:53 Matt-W Ah
13:53 jnthn Just wanted to make sure current in svn wasn't broken.
13:53 Matt-W So that's correct? Good. I like that.
13:56 |jedai| joined #perl6
13:56 jnthn Yeah
13:56 jnthn Oh, hmm.
14:03 pjcj joined #perl6
14:06 |jedai| joined #perl6
14:09 ZuLuuuuuu joined #perl6
14:19 meppl joined #perl6
14:29 pugs_svn r24957 | jnthn++ | [t/spec] Few more tests for auto-threading, these ones covering auto-threading of methods.
14:30 rakudo_svn r35753 | jonathan++ | [rakudo] Make proclaim accept a junction rather than thread over it, but give a warning; moritz++ for input on how to handle this.
14:33 masak joined #perl6
14:40 rakudo_svn r35754 | jonathan++ | [rakudo] Handling of junction auto-threading for the single dispatch case with positional arguments. Note that it won't work for built-ins written in PIR; those will start working when we switch to a PIR prelude.
14:40 rakudo_svn r35755 | jonathan++ | [rakudo] Add S03-junctions/autothreading.t to the spectests list.
14:42 Matt-W jnthn: did you mean switch to a Perl 6 prelude?
14:43 masak maybe a PIR prelude is a precursor to a Perl 6 prelude.
14:44 moritz_ 15:32 <@jonathan> gah!
14:44 moritz_ 15:32 <@jonathan> a Perl 6 prelude!!
14:44 moritz_ from #parrot
14:45 masak :)
14:46 jnthn Matt-W: Yes ;-)
14:46 jnthn Fingers moving faster than brain.
14:48 ZuLuuuuuu left #perl6
14:53 ruoso masak, jnthn, I'm about to find out that the "prelude in Perl 6" starts with Multi.pm ;)
14:53 jnthn ruoso: Doubt we'll have a Multi.pm.
14:53 moritz_ ruoso: Rakudo implements multi dispatch in C
14:54 * jnthn is making the multi-dispatcher clueful about junctions at the moment
14:54 ruoso cool..
14:54 Matt-W jnthn: that's okay, I just wanted to check since I thought we already had a PIR prelude :)
14:54 jnthn Matt-W: Yeah, we do. That's the problem.
14:54 masak in what way is it a problem?
14:54 Matt-W Where are we with the ability to start writing a Perl 6 prelude?
14:54 Matt-W Presumably some ops always have to be PIR or C
14:54 Matt-W else you have nothing to build on
14:54 ruoso jnthn, but does the multi support lexically scoped variants already?
14:55 jnthn ruoso: Not yet.
14:55 ruoso that was the reason I wrote it in Perl instead of C
14:55 jnthn Still deciding exactly how to handle that.
14:55 masak Matt-W: tell that to the Scheme programmers.
14:55 ruoso jnthn, you might want to take a look at smop/src-s1p/Multi.pm
14:55 riffraff joined #perl6
14:56 jnthn ruoso: I could have not written it in C too, but I'm working within the Parrot way of doing stuff, with a view to language inter-op.
14:58 jnthn ruoso: Multi.pm - neat, but doesn't do the candidate sorting etc yet. :-)
14:58 jnthn But certainly should get you enough to do Test.pm etc.
14:58 riffraff hi
14:59 jnthn hi riffraff
15:00 masak hello riffraff
15:03 |jedai| joined #perl6
15:03 alester joined #perl6
15:03 ruoso I see...
15:03 ruoso although I don't see much how multi can interop with other languages
15:04 ruoso jnthn, one thing I'm doing that I'm not sure is reasonable is to provide a "perfect match" control exception when calling ACCEPTS on the signatures...
15:04 ruoso once a signature say "this is a perfect match" it stops looking for candidates and use it
15:04 moritz_ ruoso: does that work with tie-breaking subset types?
15:05 ruoso jnthn, yeah... I'm thinking about callign a &+MultiDisambiguate
15:05 jnthn ruoso: It's reasonable as a first cut, if you don't want to implement the type narrowness analysis and so topological sort.
15:06 jnthn ruoso: You need to sort the candidates first, then go through them in that order checking for matches.
15:06 ruoso couldn't I just sort the ones that matched?
15:06 jnthn Maybe, but "does it match" is the wrong thing to consider first.
15:07 ruoso any particular reason?
15:07 moritz_ rakudo: subset Small of Int where { 0 <= $_ <= 10 }; multi f(Small $x) { "small" }; multi f(Int $x) { "Int"}; say f(34), f(4)
15:07 p6eval rakudo 35755: OUTPUT«Intsmall␤»
15:07 jnthn Hmm...maybe you could do it that way...
15:07 moritz_ ruoso: when is a match "perfect"?
15:07 ruoso I'm guessing sorting is harder then matching
15:07 jnthn Yes.
15:07 ruoso (int,int)
15:08 jnthn But the nice thing aobut the Perl 6 algorithm, is that you can sort the candidates once.
15:08 moritz_ ruoso: that's a case where perfect isn't good enough
15:08 jnthn And then use that ordering for every match.
15:08 jnthn *every invocation
15:08 ruoso jnthn, that is certainly a good optimization
15:08 jnthn Which is a good thing since to do the topological sort, you need to do c^2 comparssions.
15:08 jnthn e.g. compare every sig with every other
15:09 jnthn To build a DAG.
15:09 ruoso but it requires cache invalidation and stuff
15:09 jnthn And then you topological-sort the DAG.
15:09 ruoso moritz_, why?
15:09 jnthn Yes.
15:09 jnthn We do invalidate it in Parrot if new candidates come into existence.
15:09 Matt-W A disadvantage of being able to add new candidates at runtime
15:10 ruoso jnthn, considering I'm doing no optimizations at this point...
15:10 ruoso it looks easier to sort later ;)
15:10 moritz_ ruoso: because a matching subset of int is a better match than int itself
15:10 ruoso moritz_, indeed... haven't thought about that...
15:10 jnthn ruoso: I'm not saying the way I've done it in Rakudo is the _only_ way, far from it.
15:11 ruoso and (int,int) vs (Int,Int)?
15:11 ruoso jnthn, sure sure...
15:11 jnthn It's just a way that I am pretty sure will get the right answers (apart from in the one case I know it doesn't...)
15:12 jnthn But for sure the sorting and the order you consider candidates, and that you only take those of equal narrowness forward to consider against any subtypes, would seem to be important.
15:12 jnthn I would imagine that in smop your signatures are introspectable though.
15:12 jnthn So I doubt it'll be too hard.
15:12 jnthn You only need arity-based dispatch to run Test.pm.
15:13 jnthn And from what I understand of what you have now, it'll handle that fine.
15:15 pmurias ruoso: we need sorting in order for multis to work properly so (Foo) will be used instead of (Object)
15:15 pmurias but i wouldn't care about adding new candidates at runtime
15:18 donaldh joined #perl6
15:18 ejs left #perl6
15:19 * ruoso lunch &
15:19 jnthn Whee. Auto-threading on multis.
15:21 jnthn Oooh, and we can stick it in the dispatch cache...
15:21 icwiener joined #perl6
15:25 [particle] joined #perl6
15:29 masak joined #perl6
15:31 simcop2387 joined #perl6
15:34 runnerup joined #perl6
15:34 runnerup left #perl6
15:36 |jedai| joined #perl6
15:50 rakudo_svn r35759 | jonathan++ | [rakudo] Make auto-threading work in the multi-dispatch case.
15:50 moritz_ rakudo: multi f(Int $x) { say "Int $x" }; muti f(Str $s) { say "Str $x" }; f(1|"a")
15:50 p6eval rakudo 35758: OUTPUT«Statement not terminated properly at line 1, near "(Str $s) {"␤␤current instr.: 'parrot;PGE;Util;die' pc 129 (runtime/parrot/library/PGE/Util.pir:83)␤»
15:50 moritz_ rakudo: multi f(Int $x) { say "Int $x" }; multi f(Str $x) { say "Str $x" }; f(1|"a")
15:50 p6eval rakudo 35758: OUTPUT«No applicable candidates found to dispatch to for 'f'␤current instr.: '_block14' pc 94 (EVAL_17:47)␤»
15:51 jnthn moritz_: Think bot is not updated yet.
15:51 jnthn Locally that lives
15:51 jnthn Int 1
15:51 jnthn Str a
15:51 bahaa2008 joined #perl6
15:52 moritz_ I CAN HAZ UPDATE?
15:52 moritz_ rakudo: multi f(Int $x) { say "Int $x" }; multi f(Str $x) { say "Str $x" }; f(1|"a")
15:52 p6eval rakudo 35759: OUTPUT«Int 1␤Str a␤»
15:52 moritz_ jnthn++
15:52 bahaa2008 moritz_, where i can get  ibot dependencies ?
15:52 jhorwitz joined #perl6
15:53 moritz_ bahaa2008: from search.cpan.org
15:53 moritz_ there are a few ones that are not yet listed
15:54 moritz_ Bot::BasicBot, Text::Table for example
15:57 |jedai| joined #perl6
15:57 ruoso joined #perl6
15:59 pugs_svn r24958 | jnthn++ | [t/spec] A bunch of tests for junctional dispatch with multi-subs (with the end result that it's now way more tested than single dispatch...)
16:00 rakudo_svn r35760 | pmichaud++ | [rakudo]: spectest-progress.csv update: 290 files, 6352 passing, 0 failing
16:02 km2 joined #perl6
16:02 jnthn pmichaud: ping
16:10 vixey joined #Perl6
16:16 stephenlb joined #perl6
16:17 bahaa2008_ joined #perl6
16:22 |jedai| joined #perl6
16:26 rindolf joined #perl6
16:31 |jedai| joined #perl6
16:36 Casan joined #perl6
16:38 pugs_svn r24959 | jnthn++ | [t/spec] Tests for junction auto-threading and named parameters - fudged those in the multi dispatch case since we're failing them at the moment.
16:38 moritz_ perlbot: karma jnthn
16:38 perlbot Karma for jnthn: 120
16:38 moritz_ perlbot: karma jonathan
16:38 perlbot Karma for jonathan: 300
16:40 rakudo_svn r35762 | jonathan++ | [rakudo] When we had a multi foo() rather than a multi sub foo() we didn't call !SIGNATURE_BIND nor did we set the block type to Sub. Fix that.
16:50 shinobi-cl joined #perl6
16:51 shinobi-cl hi
16:51 lambdabot shinobi-cl: You have 1 new message. '/msg lambdabot @messages' to read it.
16:53 jnthn moritz_++
16:53 moritz_ :)
16:53 moritz_ lambdabot++
16:55 mtnviewmark joined #perl6
17:01 bahaa2008_ moritz_, what is this error http://irclog.bahaa.biz/cgi/ ??
17:02 bahaa2008_ Can't locate IrcLog.pm in @INC (@INC contains: lib /usr/lib/perl5/5.8.8/i686-linux /usr/lib/perl5/5.8.8 /usr/lib/perl5/site_perl/5.8.8/i686-linux /usr/lib/perl5/site_perl/5.8.8 /usr/lib/perl5/site_perl/5.8.7 /usr/lib/perl5/site_perl/5.8.6 /usr/lib/perl5/site_perl/5.8.5 /usr/lib/perl5/site_perl .) at index.pl line 8.
17:02 bahaa2008_ BEGIN failed--compilation aborted at index.pl line 8.
17:02 moritz_ bahaa2008_: it means that you haven't copied IrcLog.pm to somewhere where Perl can find it
17:02 moritz_ afk &
17:03 Infinoid left #perl6
17:03 bahaa2008_ this line contains
17:03 bahaa2008_ use IrcLog qw(get_dbh);
17:04 mtnviewmark morning, moritz_
17:05 masak mtnviewmark: good evening, mtnviewmark.
17:05 mtnviewmark I was wondering - does raduko or pugs make use of STD.pm?
17:05 masak no.
17:05 masak Rakudo chases it, though.
17:06 mtnviewmark okay - so really, if propose changes to STD.pm then there isn't much more to do besides run the parse tests
17:06 mtnviewmark so -- I should prepare a patch, run those tests, then perhaps e-mail them to?
17:07 mtnviewmark the mailing list?
17:07 masak sounds good to me.
17:07 mtnviewmark (sorry, I just want to be sure of the protocol)
17:07 masak of course.
17:07 mtnviewmark thanks - later
17:07 masak no-one has ever proposed patches to STD.pm before, AFAIK.
17:07 mtnviewmark oh?  there are other committers
17:08 bahaa2008_ moritz_, it this also debendicy Can't locate Cache/FileCache.pm ?
17:08 mtnviewmark does that just mean I'm mentally warped beyond all hope?
17:09 masak mtnviewmark: no, just that you have something you can contribute. :)
17:09 mtnviewmark thanks!
17:09 mtnviewmark okay - must run to a haircut!  laters for real this time
17:10 masak :)
17:14 ZuLuuuuuu joined #perl6
17:15 pbuetow joined #perl6
17:16 moritz_ bahaa2008_: yes
17:18 bahaa2008_ fixed first one
17:18 bahaa2008_ comes to second :)
17:19 moritz_ well, you need to install all those dependencies about which it complains
17:20 bahaa2008_ moritz_, where it sould be perl5/site_perl or per5/5.8.8 ??
17:22 bahaa2008_ should make test come with no errors ?
17:22 moritz_ bahaa2008_: I just create a dir lib/ on the same level as where the scripts are, and put it there
17:22 bahaa2008_ ok
17:22 moritz_ oh wait, what are you talking about?
17:23 bahaa2008_ u mean in cgi ?
17:23 bahaa2008_ or level above
17:23 bahaa2008_ sorry for all this questions
17:23 bahaa2008_ i'm a newbi :(
17:24 moritz_ maybe my irclogs aren't the best for you, then
17:24 moritz_ since I have only one installation, I never really cared about installation routines or so
17:24 bahaa2008_ ok
17:24 bahaa2008_ no problems
17:24 moritz_ rakudo: my @numbers = [9, 23, 88]; say @numbers.elems
17:24 p6eval rakudo 35762: OUTPUT«1␤»
17:24 bahaa2008_ i'll solve my problems
17:25 moritz_ rakudo: my @numbers = [9, 23, 88]; say @numbers.last
17:25 p6eval rakudo 35762: OUTPUT«Method 'last' not found for invocant of class 'Perl6Array'␤current instr.: 'parrot;P6metaclass;dispatch' pc 119 (src/classes/ClassHOW.pir:95)␤»
17:25 bahaa2008_ and back with results :)
17:25 pugs_svn r24960 | jnthn++ | [t/spec] Unfudge now-passing tests for module export.
17:27 PZt joined #perl6
17:28 pugs_svn r24961 | jnthn++ | [t/spec] Unfudge result of collateral fixage of the A::b() calling problem.
17:30 rakudo_svn r35763 | jonathan++ | [rakudo] Fix say A::b() to actually call A::b.
17:37 |jedai| joined #perl6
17:41 ruoso_ joined #perl6
17:43 ZuLuuuuuu left #perl6
17:45 [particle]1 joined #perl6
17:53 bahaa2008_ moritz_, i almost get it work
17:53 bahaa2008_ small error
17:53 rindolf joined #perl6
17:54 bahaa2008_ Can't read configuration in database.conf: No such file or directory
17:54 bahaa2008_ where it should be
17:54 bahaa2008_ put
17:55 ruoso jnthn, at which point do you autothread? is it in the signature binding? or in the capture creation?
17:55 jnthn ruoso: In the signature binding.
17:56 jnthn I don't see how you could do it in the capture creation, since the signature you're binding against may have a parameter of type Junction or Object.
17:56 jnthn Unless we mean different things by "in the capture creation" :-)
17:57 bahaa2008_ moritz_, done :)
17:57 bahaa2008_ installed :)
17:57 ruoso so, inside Signature.ACCEPTS
17:57 ruoso sorry
17:57 ruoso Signature.BIND
17:57 ruoso or isn't that delegated to the signature yet?
17:57 ruoso I'm trying to figure out a sane way of implementing that in SMOP, but still haven't found much
17:59 jnthn We have a signature binding routine.
17:59 jnthn I do it in there.
17:59 jnthn It's pretty much equivalent to calling a Signature.BIND though.
18:00 |jedai| joined #perl6
18:00 donaldh joined #perl6
18:00 ruoso jnthn, so the binding is not done by the signature object...
18:01 jnthn jnthn: Yes.
18:01 jnthn ish :-)
18:02 jnthn (Partly, in co-operation with Parrot's calling conventions.)
18:02 ruoso (sorry, I'm having huge lag around here)
18:02 jnthn All of the type-related data is contained in the Signature object.
18:02 jnthn And we use that to do all of the checks etc.
18:02 ruoso ok... that gives you a bit more control about it
18:03 jnthn Yes.
18:03 moritz_ perl6: my @a = [1, 2, 3]; say @a.elems
18:03 p6eval pugs, rakudo 35764: OUTPUT«1␤»
18:03 p6eval ..elf 24961: OUTPUT«3␤»
18:03 ruoso in SMOP, in order to help bootstrapping, the binding is made inside the Signature object
18:03 ruoso I was planning for it to autothread... but I'm still unsure on how to make them join
18:03 ruoso later
18:04 ryanc joined #perl6
18:05 jnthn We run a junction dispatcher, which in takes care of building up the return junction.
18:05 jnthn And it hands back the value, and the signature binder does a return, to hand that back.
18:05 jnthn (Since the binder is written in PIR, we then just fall back out of the original sub that was called.)
18:06 jnthn (As in, Perl 6 level sub.)
18:09 ruoso jnthn, right, so the binding calls the actual sub...
18:09 bahaa2008_ is cgi module for perl make cache
18:09 bahaa2008_ if so how to clear this
18:09 jnthn ruoso: Right.
18:09 jnthn Since we need its lexical scope.
18:10 ruoso ok...
18:10 jnthn (At least, it's easier that way.)
18:10 ruoso in SMOP the BIND call receives the scope where it populates the data
18:10 ruoso then BIND returns
18:10 jnthn A scope exists before it's entered in SMOP?
18:11 ruoso and the sub is called
18:11 ruoso yes... it's a regular object
18:11 jnthn OK
18:13 jnthn Thing is, the BIND call is going to fail to bind.
18:13 jnthn So you can catch that and try auto-threading there?
18:13 ruoso you can create as many as you like ;)
18:15 ruoso jnthn, hmmm... a control exception...
18:15 ruoso that might help
18:15 ruoso ControlExeptionJunctionBind
18:16 ruoso that indeed solves the problem...
18:16 ruoso jnthn++
18:16 ruoso because it then can extract the members of the Junction, and call BIND again for each possible value...
18:17 jnthn Aye.
18:17 jnthn So long as these various non-spec control exceptions don't leak out, should be fine.
18:17 jnthn (Because Rakudo does it differently, so one wouldn't exist.)
18:18 ruoso the question is: Which is the API for the Signature object/
18:18 ruoso ?
18:18 ryanc left #perl6
18:19 jnthn So far ours just has a .perl and a .params.
18:19 jnthn Where .params hands back and array of hashes
18:19 jnthn Each hash describing the parameter.
18:19 jnthn But that's non-spec yet.
18:19 jnthn And maybe isn't really what we'd want to spec.
18:19 jnthn e.g. a Parameter object may be cleaner...
18:20 jnthn I expect we'll have a .of/.returns/.as too.
18:20 ruoso SMOP currently works with BIND(\$capture,$scope)
18:20 |jedai| joined #perl6
18:20 jnthn $sig.BIND(...)
18:20 jnthn I suspect that doesn't want to be spec.
18:20 jnthn Maybe make it a private.
18:21 jnthn (That's the path we've followed in Rakudo.)
18:21 ruoso and the Signature knows how to bind itself...
18:21 ruoso we have a S1P AdHocSignature type
18:21 ruoso where we compile the signature to the equivalent perl code that would populate that lexical scope
18:21 jnthn We should probably extra the commonalities betwen that and the Rakudo one and get something into the spec.
18:22 jnthn *extract
18:23 ruoso there's a fundamental question here, which is:
18:23 ruoso is the binding code internal to the signature object or external to it?
18:24 ruoso SMOP makes it internal, Rakudo seems to make it external
18:24 jnthn I think we can leave that as something for implementations to choose.
18:24 ruoso but you realize that is mostly incompatible
18:25 jnthn We only have a compability problem with the stuff that goes in the spec.
18:25 jnthn And that is visible.
18:25 jnthn We can quite easily declare that signature objects don't have a public BIND method.
18:27 moritz_ $lhs := $rhs # works for me independently on how it's implemented
18:27 jnthn Right.
18:29 ruoso that means that implementing custom Signature objects will always be implementation-specific
18:30 ruoso considering "Signature" is just a role, as every other built-in type
18:30 ruoso custom Signature objects looks like something tempting to be done...
18:30 jnthn I think - certainly for Perl 6.0.0 - that's quite managable.
18:30 jnthn The easy things should be easy. The hard things should be possible.
18:31 ruoso I'm fine with that, as long as we make it clear ;)
18:31 jnthn Works for me.
18:32 ruoso and maybe we can even detail that a bit more...
18:32 ruoso like...
18:32 ruoso the implementation is free to choose this path or this path... this path should look like this
18:32 ruoso and that path should look like that
18:33 jnthn Perhaps.
18:34 jnthn But since Rakudo's path is at least somewhat innevitably going to be tied up with Parrot's calling conventions, I fear that path may end up impractical for anything that's not a Perl 6 implementation on a very Parrot-ish VM. :-)
18:35 ruoso and maybe having a $scope object available independently of the scope being entered yet is too much SMOP specific
18:35 jnthn I think so.
18:36 jnthn I'm not quite sure, how we'd (easily) handle that on Parrot.
18:38 kisu_ joined #perl6
18:45 Psyche^ joined #perl6
18:45 _jedai_ joined #perl6
19:03 diakopter ruoso: around?
19:03 ruoso diakopter, hi
19:04 diakopter I got tools/ri to work on windows by commenting out the use IO::* and switching it to use IPC::Run3 instead of IPC::Open3
19:04 diakopter so, past that step
19:05 ruoso cool
19:05 diakopter also, setting it to use filenames from the command line instead of using shell redirection
19:05 diakopter though I don't know if that was a necessary part of the solution
19:07 diakopter so, now, on to diagnosing why scons thinks I have cl
19:10 bahaa2008 left #perl6
19:11 |jedai| joined #perl6
19:12 diakopter chromium uses scons? okay.
19:16 ruoso diakopter, I'm not sure I'll be able to help you much... I don't even know what "cl" is ;)
19:17 moritz_ "common lisp"?
19:18 bahaa2008 joined #perl6
19:18 ruoso moritz_, I doubt, considering he's trying to compile a c file
19:20 jrockway joined #perl6
19:27 meppl good night
19:28 diakopter yeah, it's odd... considering 'cl' is in none of the c_compilers arrays in Scons/Tool/__init__.py
19:30 |jedai| joined #perl6
19:31 VieQ joined #perl6
19:31 VieQ hello moritz_
19:31 VieQ I just wanted to ask you , are you running your bot through irssi
19:31 VieQ or what?
19:32 moritz_ VieQ: no
19:32 moritz_ just plain 'perl ilbot2.pl bot.conf'
19:32 VieQ checking
19:34 bahaa2008 left #perl6
19:36 VieQ left #perl6
19:42 diakopter ruoso: got further with: env = Environment(tools = [ 'gcc' ], ENV = os.environ)
19:42 ruoso cool
19:43 ruoso can you compile it?
19:43 diakopter now it can't find pthread.h
19:43 diakopter hmm, where did I put that
19:44 ruoso inside "program files"? ;)
19:44 * ruoso hides...
19:45 diakopter :)
19:48 jhuni joined #perl6
19:57 diakopter ruoso: okay, now it can't find dlfcn.h
19:57 ruoso hmm...
19:57 ruoso who is including that?
19:58 moritz_ on Debian that's in pacakge libc6-dev
19:59 diakopter build\loader.c:8:19: dlfcn.h: No such file or directory
20:00 ruoso ohkay
20:00 ruoso that's dlopen
20:00 ruoso what's the equivalent for dlopen in windows?
20:01 ruoso I think you're going to need ifdefs there
20:02 diakopter found one
20:02 diakopter http://www.texmacs.org/cgi-bin/cvsweb.cgi/w​indows/src/Winport/Include/dlfcn.h?rev=1.1.​1.1&amp;content-type=text/x-cvsweb-markup
20:03 ruoso ouch
20:06 |jedai| joined #perl6
20:06 [particle] joined #perl6
20:07 diakopter ruoso: ouch?
20:08 ruoso having to put all those pieces together sounds painfull
20:12 diakopter #include <windows.h>
20:12 diakopter #define DLOPEN_MODE LOAD_WITH_ALTERED_SEARCH_PATH
20:12 diakopter #define dlopen (path, mode)   (void *)LoadLibraryExA (path, NULL, DLOPEN_MODE)
20:12 diakopter #define dlsym (handle, name)   (void *)GetProcAddressA ((HINSTANCE)handle, name)
20:12 diakopter #define dlclose (handle)       FreeLibraryA (handle)
20:14 * diakopter downloads the 1335MB Vista/2008 Platform SDK
20:14 ruoso wow
20:14 jnthn Welcome to the wonderful world on Win32 development.
20:15 pugs_svn r24962 | jnthn++ | [t/spec] Unfudge auto-threading of named arguments in multiple dispatch tests, which now pass.
20:17 jnthn OK, that's 50+ passing spectests won today, and junction auto-threading working for both single and multiple dispatch, with positional and named arguments.
20:17 * jnthn goes to deal with $REALLIFE tasks for a bit.
20:18 moritz_ jnthn++
20:20 rakudo_svn r35771 | jonathan++ | [rakudo] Handle auto-threading of named arguments correctly. (The named ones that passed in the single dispatch case seem to have done so as a result of a Parrot bug; this gets them passing for real and also handles the multi-dispatch case.)
20:21 nihiliad joined #perl6
20:39 ruoso diakopter, I should warn you that you need libpcl also
20:39 ruoso and libperl
20:39 pugs_svn r24963 | moritz++ | [t/spec] avoid autohreading through ok()
20:42 |jedai| joined #perl6
20:42 moritz_ jnthn: you're my hero. Yesterday I talked with a journalist about writing a Perl 6 tutorial, focusing on subs and Junctions - it would have been a pity not to demonstrate autothreading ;-)
20:42 bahaa2008 joined #perl6
20:50 pugs_svn r24964 | moritz++ | [t/spec] avoid autothreading through ok() in three test files
20:50 jnthn moritz_: Welcome. :-)
20:50 jnthn moritz_: Just remember that built-ins won't auto-thread yet.
20:50 jnthn (built in subs and methods, that is)
20:50 moritz_ jnthn: I know
20:51 jnthn But hopefully that's not far off.
21:01 |jedai| joined #perl6
21:09 bahaa2008 left #perl6
21:18 justatheory joined #perl6
21:24 Juerd joined #perl6
21:25 Juerd Hi. I'm looking for a sysadmin for feather. Someone who knows their stuff and wants to work with users. (No BOFH.)
21:26 Juerd I estimate that doing a good job would involve at least two days to fix the current mess, and then half a day every fortnight.
21:27 diakopter current mess?
21:27 Juerd Yes
21:27 * diakopter doesn't dare ask for more details
21:27 moritz_ things like incredible_ugly_hack_to_restart_apache?
21:27 Juerd There's no documentation of what runs on feather, who maintains that part, etc.
21:28 Juerd At least no complete info.
21:28 Juerd Updates and upgrades are done highly irregularly
21:28 Juerd Mail has been broken for ages.
21:28 diakopter or all the user-compiled apaches and such listening on tons of ports
21:28 Juerd diakopter: Every user-specific thing is okay :)
21:28 diakopter oh
21:28 Juerd There's things on feather1 that should run on feather2 because they're important.
21:29 diakopter I send a SIGHUP to commitbit every so often; that seems to make it responsive again
21:29 diakopter while we're naming things
21:29 Juerd My list of things to name isn't even complete.
21:30 Juerd I've neglected feather for so long.
21:30 Juerd I've only done incident recovery
21:30 diakopter well, don't blow it away yet... there are some local code customizations that Infinoid and I need to retrieve
21:30 Juerd And the occasional dist-upgrade
21:30 Juerd Oh, no, feather needs to continue to exist
21:31 Juerd It's used and it runs several useful services
21:31 Chillance joined #perl6
21:31 * diakopter wonders when runpugs was utilized last
21:31 Juerd 10 irssis run on feather right now.
21:32 diakopter dalek and SVN::Web are good to have, but I'd be glad to host them elsewhere (if even temporarily)
21:32 Juerd feather is making IRC easier for at least 10 people. Don't underestimate the importance of good irc access.
21:32 moritz_ svn info misc/runpugs/
21:32 moritz_ Last Changed Date: 2007-10-21
21:32 Juerd diakopter: You don't have to worry that feather goes away. It won't.
21:33 diakopter Juerd: I just mean in case you need to migrate stuff, or have downtime
21:33 Juerd I intend to keep feather for at least another year, and probably longer.
21:33 Juerd diakopter: There's no immediate problem
21:33 Juerd diakopter: I'm just looking for someone to take over my job because I can't do it properly.
21:34 Juerd I love Perl 6 and want my company to keep supporting it. But I myself just lack tuits of every shape.
21:34 Juerd So if anyone has a bag of round tuits, please let me know if you want to do sysadminning :)
21:38 diakopter the problem with my round tuits is that they're arranged on Hanoi posts, and the small ones seem to get a lot more attention than the big ones.
21:38 Matt-W my tuits are all triangular
21:40 masak my tuits are very small and too short. :/
21:41 moritz_ masak: glad that I see you... S29 has the nice List.classify method... which says it returns a lazy list
21:41 moritz_ do you see any sense in that?
21:41 masak moritz_: in the laziness?
21:41 moritz_ right
21:41 masak infinite lists?
21:42 masak maybe not...
21:42 * masak goes to read S29
21:43 Matt-W wooo
21:43 |jedai| joined #perl6
21:43 Matt-W miniparrot didn't segfault!!
21:43 moritz_ well, it *could* have a lazy gatherer for each classification result
21:44 masak moritz_: I don't see any other way to interpret it.
21:44 masak that .classify method (and the examples that come with it) has always seemed highly magical to me.
21:45 masak it's one of those cases where you ask for a banana and Perl 6 gives you a high-powered laser gun.
21:45 moritz_ if not for the lazyness, it'd be very easy actually
21:45 masak aye.
21:46 jnthn I didn't ever ponder how it handled laziness.
21:46 jnthn It did seem rather cool though.
21:46 masak I've never had the need for it yet.
21:46 masak (at least not that I know of)
21:46 jnthn I once implemented something similar in C# 3 as a demonstration of various new features. It wasn't as clean as the Perl 6 one though. ;-)
21:47 pasteling "moritz_" at 91.10.148.145 pasted "non-lazy List.classify" (10 lines, 176B) at http://sial.org/pbot/34583
21:48 masak moritz_++ # actual code!
21:48 * masak scratches head
21:48 * Matt-W tries to get his head around what .classify actually does
21:48 moritz_ that doesn't work right now, because it relies on autovivification of arrays
21:48 masak moritz_: a smartmatch inside a hash key?
21:49 moritz_ masak: why not?
21:49 masak moritz_: sure, why not... but what does it do? :)
21:49 masak sets the key to a Match object?
21:49 moritz_ masak: in the common case, $matcher is just a sub
21:49 moritz_ masak: so it will just use the return value as hash key
21:49 masak $matcher?
21:50 masak oh, in S29.
21:50 moritz_ erm, $test
21:50 masak aye.
21:50 masak nice.
21:50 moritz_ but it also works for Regexes, and boolean operators (where it classifies by True/False)
21:50 masak do gather and hashes work together?
21:51 moritz_ don't think so
21:51 masak why not?
21:51 moritz_ hashes are essentially eager data structures
21:51 masak if the hash is seen as a list of pairs...
21:51 masak moritz_: ah, true...
21:51 Matt-W oooh that's wha tit does
21:51 masak a hash is 'flat' in a very real sense.
21:51 Matt-W cunning
21:51 Matt-W yes much harder with laziness
21:52 masak I still can't quite picture how to do it with the laziness. :)
21:52 moritz_ neither can I
21:52 masak you need some kind of special list type that re-initiates the classifying whenever an item beyond the known length of a list is requested.
21:53 moritz_ because when the bind operator looks for named params, it has to travers the whole list (I think)
21:53 Matt-W everything I can think of results in the entire result list being evaluated pretty quickly
21:53 masak moritz_: that sounds like a problem...
21:53 Matt-W the moment you look for something that isn't the key of one of the pairs, you've had to completely classify the list...
21:54 moritz_ well, you could for-loop over it
21:54 * masak wonders if known parts of the list can be used in the classification...
21:54 moritz_ masak: NOOOO, don't!
21:54 masak moritz_: too late! o_O
21:54 * masak gets sucked into an Escher image
21:56 pasteling "moritz_" at 91.10.148.145 pasted "non-lazy List.classify - actually working" (15 lines, 308B) at http://sial.org/pbot/34585
21:56 masak moritz_: '//' ?
21:56 moritz_ \\
21:56 masak um, maybe not...
21:56 masak there's a push in the else.
21:57 jnthn %r{$t} //= []; %r{$t}.push: $i;
21:57 masak ooh!
21:57 Matt-W that's neater
21:57 moritz_ jnthn: //= doesn't work in rakudo, iirc
21:57 jnthn Oh, yes.
21:57 jnthn I saw that ticket.
21:57 masak there's a ticket for that :)
21:57 moritz_ rakudo: my $x //= 5; say $x;
21:57 Matt-W moritz_: implement it!
21:57 p6eval rakudo 35772: OUTPUT«get_iter() not implemented in class 'Integer'␤current instr.: 'prefix:=' pc 20130 (src/builtins/misc.pir:17)␤»
21:57 moritz_ Matt-W: I'll put it as item 237 on my ever-growing TODO list
21:57 masak that's almost the most common use of // :)
21:58 masak only 237? did it get priority over something else? :)
21:58 moritz_ anyway, I'm trying to write some prelude subs/methods to create more incentive to actually implement that thing
22:00 pmurias joined #perl6
22:00 Matt-W bed &
22:00 moritz_ masak: sure. Like, over bringing that damn letter to the post (which I've been wanting to do for 5 days now)
22:00 masak moritz_: you too? :/
22:01 masak I always find it a sure sign of bad stress when daily things start to weigh in on me.
22:05 moritz_ oh, and did I tell you that I know have to write three articles instead of just one for that German it magazine?
22:05 masak moritz_: no. why suddenly three?
22:05 jnthn Patch for //= written.
22:06 jnthn ci after spectest
22:06 masak jnthn++!
22:08 jferrero joined #perl6
22:10 jnthn I went through RT today.
22:10 jnthn A *lot* of tickets.
22:11 masak that's what I keep saying.
22:11 masak you guys have put up no resistance lately. :P
22:16 jhuni joined #perl6
22:16 |jedai| joined #perl6
22:18 pmurias 23:00 [ charsbar  ] [ hcchien   ] [ kolibrie   ] [ nothingmuch] [ simcop2387]
22:18 pmurias [A[A[A[A[A23:00 [ charsbar  ] [ hcchien   ] [ kolibrie   ] [ nothingmuch] [ simcop2387]
22:18 pmurias [A[A[A[A[A23:00 [ charsbar  ] [ hcchien   ] [ kolibrie   ] [ nothingmuch] [ simcop2387] 23:00 [ charsbar  ] [ hcchien   ] [ kolibrie   ] [ nothingmuch] [ simcop2387]
22:18 pmurias sorry
22:18 pmurias 23:00 [ charsbar  ] [ hcchien   ] [ kolibrie   ] [ nothingmuch] [ simcop2387]
22:19 diakopter pmurias: howdy
22:19 * jnthn gives //= ticket to moritz to get tests
22:20 jnthn patch ci'd
22:20 jnthn Have fun.
22:20 moritz_ ack -Q '//=' t/spec/|wc -l
22:20 moritz_ 15
22:20 rakudo_svn r35774 | jonathan++ | [rakudo] Make //= work (but see RT#61880 for discussion on this patch).
22:20 jnthn Cool
22:20 moritz_ I hope autounfuge finds one that now passes
22:23 moritz_ rakudo: my $x //= 3; say $x
22:23 p6eval rakudo 35773: OUTPUT«get_iter() not implemented in class 'Integer'␤current instr.: 'prefix:=' pc 20130 (src/builtins/misc.pir:17)␤»
22:23 masak p6eval: you're old hat.
22:24 moritz_ rakudo: my $x //= 3; say $x
22:24 p6eval rakudo 35774: OUTPUT«3␤»
22:24 masak "useless use of //=" :P
22:26 moritz_ rakudo: my %h; %h<foo> //= []; say %h<foo>.WHAT
22:26 p6eval rakudo 35774: OUTPUT«Array␤»
22:27 masak rakudo: my %h; %h<foo>.push(1); say %h<foo>.WHAT
22:27 p6eval rakudo 35774: OUTPUT«Method 'push' not found for invocant of class 'Failure'␤current instr.: 'parrot;P6metaclass;dispatch' pc 119 (src/classes/ClassHOW.pir:95)␤»
22:27 masak ah -- I cannot will an Array into existence. makes sense.
22:28 [particle]1 joined #perl6
22:28 Juerd http://p3rl.org/8440CXVI  # draft call for sysadmin announcement; comments please!
22:28 pugs_svn r24965 | jnthn++ | [t/spec] Unfudge //= tests, correct descriptions and correct a test.
22:28 jnthn moritz_: A quick look at what was found showed some tests needed review anyway (one was wrong), so fixed and unfudged.
22:29 * jnthn scores 8 more tests
22:29 masak [particle]1: I've read S19. thanks for pleasant reading.
22:29 masak [particle]1: I have a few comments for when you have time.
22:29 moritz_ jnthn: I was doing the same right now, but too tired and distracted :/
22:30 jnthn moritz_: Ah, sorry.
22:30 moritz_ no problem
22:31 moritz_ I can close the RT
22:32 jnthn moritz_++
22:34 moritz_ going to bed now, hoping for more productivity tomorrow...
22:35 masak moritz_: guten nacht.
22:35 gravity joined #perl6
22:36 jnthn schlaft gut
22:36 masak dream of lazy junctive closures.
22:36 jnthn Anyone who was having issues on 64-bit platforms with miniparrot segfaulting - Infinoid++ has commited a likely fix. :-)
22:37 masak what's miniparrot? :)
22:37 jnthn Something that's part of the Parrot build process.
22:37 masak ah.
22:38 jnthn It was exploding on some platforms.
22:39 masak is the definition of an identifier the same in Pod as it is in modern Perl 6, or is it still what S26 says it is?
22:39 * masak guesses the former
22:40 jnthn Not sure.
22:40 masak S26 itself indicates that such matters are likely answered in STD.pm -- so I guess I should check there.
22:43 nihiliad Hi! I'm a total n00b and want to get my feet wet contributing to Rakudo, but am unsure where to start, especially given the recent talk of svn/git changes. Help? Suggestions?
22:43 masak nihiliad: first off, welcome.
22:44 nihiliad masak: Thanks!
22:44 masak nihiliad: there are a number of obvious first stops for volunteers. the test suite. the RT system.
22:45 masak um, the synopses _and_ the test suite. :)
22:46 masak nihiliad: if it's Rakudo itself you'd like to hack on, the road to that goes via patches. there's a document I could dig out for you about getting started on doing Rakudo work.
22:47 nihiliad masak: That would be great. I'm interested in hacking on Parrot, too, but thought I'd start with Rakudo and see how that goes.
22:47 alester ping pmichaud
22:47 avar Juerd: p3rl.org /S(\d+) needs to be fixed, it points to obsolete dev.perl.org links now
22:47 masak nihiliad: hm, http://www.parrotcode.org/docs/gettingstarted.html
22:47 masak nihiliad: hold on, I'll get more.
22:48 masak http://svn.perl.org/parrot/t​runk/languages/perl6/README
22:48 masak http://svn.perl.org/parrot/​trunk/languages/perl6/docs/
22:48 Juerd avar: What are the correct new links?
22:48 Juerd And why doesn't dev.perl.org get updated? Think of the PR nightmare :(
22:49 masak nihiliad: I can also recommend the #parrot channel at irc.perl.org. people are very helpful there.
22:49 nihiliad Dog needs me. brb
22:50 masak Juerd: http://perlcabal.org/syn/
22:50 masak Juerd: and aye, un-updated stuff sucks. :/
22:52 Juerd masak: Updated. Thanks.
22:54 nihiliad So it appears Rakudo is still in the Parrot repo and hasn't left the nest yet.
22:54 masak nihiliad: correct.
22:54 masak nihiliad: people wanted to wait until after the next Parrot release.
22:55 masak because the move might be arbitrarily chaotic.
22:57 melkonem joined #perl6
22:58 Juerd Where's it moving to?
22:59 masak I think that's still not settled. though I'm not sure.
22:59 masak the most recent discussion of it I know of is at the p6c list.
23:02 Juerd I see
23:02 Juerd feather2 is available, it just needs an admin :D
23:03 sepheebear joined #perl6
23:03 nihiliad masak: You said "synopses _and_ the test suite"... I'm guessing this means the synopses need editing? What does the test suite need?
23:03 masak Juerd: btw, viklund and I are very grateful for the ability to run November on feather. we're about to do an upgrade soon, to showcase all the changes in the past four months.
23:04 masak nihiliad: I meant that the test suite needs to cover the synopses. thus tests need to be written.
23:04 masak writing tests may sound boring, but it's actually a great way to learn Perl 6, it turns out.
23:04 Juerd masak: If you happen to know a good sysadmin with spare time to fill... :)
23:05 masak Juerd: unfortunately, all the sysadmins I know seem to be very busy people.
23:05 Juerd In any case, I keep intending to have a look at November but the tuit problem is everywhere.
23:05 nihiliad masak: Ah, now I get it. I was thinking of start with writing tests anyway. I'll co Parrot and start poking around. Thanks again!
23:06 masak Juerd: tell me about it.
23:06 masak nihiliad: np. do co Pugs while you're at it.
23:06 Juerd masak: I would but I should be doing other things :D
23:06 masak haha
23:06 nihiliad masak: Will do.
23:06 masak nihiliad: that's where the test suite's at.
23:08 * masak is reading S26
23:08 masak there is much in here that could be profitably applied to u4x.
23:09 masak I also hope to be able to read and review mberends++' Pod parser.
23:12 masak (which could also be profitably applied in the service of u4x)
23:16 masak ok, time to sleep.
23:30 iblechbot joined #perl6
23:43 wknight8111 joined #perl6
23:45 pugs_svn r24966 | putter++ | [elfparse] Fleshed out category implementation.
23:45 pugs_svn r24966 | putter++ | Longest tokens are kludged, as that was sufficient for STD_red.
23:57 jao joined #perl6

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

Perl 6 | Reference Documentation | Rakudo