Perl 6 - the future is here, just unevenly distributed

IRC log for #perl6, 2005-06-01

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 gaal i want to change Pipe.open to return an IO in scalar context, and (IO, Process) in list context. any cries of horror?
00:02 gaal hmmm, actually, what does that make of the 'returns' clause in the signature? it doesn't quite return List in that case, does it?
00:02 gaal how do you specify context-aware return values to subs?
00:08 mrborisguy do you mean: given want { when List { ... }; when Scalar { ... } }?
00:08 gaal that's how you implement them. how do i write the signature?
00:08 gaal has left
00:09 gaal has joined #perl6
00:09 gaal beh, sorry.
00:09 gaal multi sub open (Str $command, ........) returns IO
00:09 mrborisguy gaal:  oh, i figured it was too advanced for me, but i thought i'd throw it out there anyway ;)
00:09 mrborisguy can't you junction?
00:09 mrborisguy i thought i saw that somewhere
00:09 mrborisguy returns IO|List
00:10 mrborisguy (i could easily be wrong)
00:10 gaal hmm, it doesn't return a junction, that looks weird to me
00:10 gaal could be someone overloaded the syntax, though.
00:11 gaal okay, checking in Pipe::open2 and open3; no change to open for now
00:11 mrborisguy that's where i saw it... look in the S29 draft and search for keys
00:14 gaal s06 and e06 don't seem to mention it.
00:17 mrborisguy gaal: yeah, i don't know what to tell you then
00:17 gaal thanks. i'm asking p6l
00:19 theorbtwo Oh, mrborisguy, don't forget to add yourself to AUTHORS when you check in.
00:19 theorbtwo seen Aankhen``
00:19 jabbot theorbtwo: Aankhen`` was seen 3 hours 47 minutes 16 seconds ago
00:19 poletti has left "Client exiting"
00:20 gaal he went to sleep
00:21 theorbtwo I'll catch him some other time.
00:21 theorbtwo Or perhaps he wanted AUTHORS to have no info expect his handle.
00:23 mrborisguy theorbtwo: alright
00:24 mrborisguy i'll do it next time if check anything in
00:25 broquaint has joined #perl6
00:35 gaal if i'm already in package Foo, is there a difference between saying "sub Foo::bar() {...}" and "sub bar() {...}" ?
00:40 theorbtwo Not that I'm aware of, gaal.
00:40 broquaint One is explicit and one is implicit but the behaviour is exactly the same.
00:40 gaal (was just asking because that's the way some funcs were specced in S29.)
00:48 IshaCocoa_ has joined #perl6
00:52 Chewie[] has joined #perl6
00:53 zuhn has joined #perl6
00:54 Chewie[] "Label number 2 out of bounds." - What in the world could that mean?
00:55 Chewie[] (Parrot error, putting source online.)
00:55 Chewie[] http://home.chewie.info:8080​/~chewie/base64/base64.pasm
00:56 gaal omg, it's 4:00am. i should sleep :)
00:56 theorbtwo G'night, gaal.
00:56 Chewie[] later. heh.
00:56 * gaal isn't very tired, but has $work in a few hours
00:57 gaal well, i'll do the prudent thing (or was the chance to do that four hours ago?)
00:57 gaal &
01:00 * theorbtwo can't figure out how to write the castV of instance Value Exp.
01:00 theorbtwo I've got castV exp = VObject (createObject (mkType "Code::Exp") [("theexp", exp)])
01:01 theorbtwo However, createObject wants to output a m VObject, and VObject wants to take a plain VObject.
01:01 theorbtwo Also, the output of the whole thing wants to be a plain Val, not an Eval Val.
01:05 * theorbtwo hopes autrijus' bit ends soon.
01:11 broquaint Anyone know what's with pugs on feather spew a load of perl5 code?
01:11 theorbtw1 has joined #perl6
01:13 theorbtwo has quit IRC (Nick collision from services.)
01:13 theorbtw1 is now known as theorbtwo
01:16 castaway_ has joined #perl6
01:18 mrborisguy broquaint: i get it too, but no.
01:18 mrborisguy i don't know what's up
01:18 broquaint I think pugs is having a quirky day.
01:20 sri_ is there a FindBin equivalent?
01:20 sproingie has joined #perl6
01:21 broquaint In what, sri_?
01:21 sri_ in perl6/pugs?
01:22 sri_ i just need the actual directory
01:28 meppl gute nacht
01:28 theorbtwo Gutte nacht, meppl.
01:28 castaway has quit IRC (Read error: 110 (Connection timed out))
01:29 meppl ;)
01:39 meppl has quit IRC (Remote closed the connection)
01:46 IshaCocoa_ has left
01:52 khisanth_ has joined #perl6
01:52 lumi has quit IRC (Read error: 104 (Connection reset by peer))
01:52 lumi has joined #perl6
01:52 theorbtwo G'night.
01:53 justatheory has quit IRC ()
02:07 Khisanth has quit IRC (Read error: 110 (Connection timed out))
02:07 mrborisguy has quit IRC (Read error: 104 (Connection reset by peer))
02:10 khisanth_ has quit IRC (Read error: 110 (Connection timed out))
02:11 kelan theorbtwo: to pull the VObject out of `m VObject` you need to do some binding
02:11 kelan castV exp = do
02:11 kelan  obj <- (createObject ...)
02:11 kelan  VObject obj
02:15 kelan but you'll need to return something
02:15 vcv- has quit IRC (Read error: 145 (Connection timed out))
02:16 broquaint ?eval sub f(*$a,*$b,$c,?$d=sub{ qq/got: {@_.perl}/}) { qq/$a,$b,$c,{$d.perl}/ } my@a=1..3; f *@a;
02:17 broquaint Lacking an evalbot the output is: 1,2,3,\undef
02:17 broquaint Why isn't $d defaulting properly? Bug or my inability to use perl6? You decide!
02:18 cdpruden has quit IRC ("Oops. This machine just fell asleep")
02:19 kelan maybe defaulting doesnt work for code refs yet?
02:20 kelan what do the splats do in front of the scalar args?
02:21 broquaint A hack so the args slurp properly.
02:21 broquaint I don't understand the need for them really, but if you don't have them the signature doesn't match properly.
02:22 broquaint Defaulting does seem to work on subs but not in this particular case.
02:22 kelan i thought you only needed to splat the calling arg. the `f *@a;` in this case
02:23 broquaint So did I :/
02:24 broquaint pugs -e 'sub f($a,?$b=sub{say qq/foo: $_[0]/}) { $b.($a) }; f q[bar]' # outputs - foo: bar
02:24 kelan hmm
02:25 kelan maybe its all the splatting? something weird happening with that
02:25 kelan i really have no idea, tho:)
02:25 broquaint I reckon so.
02:25 broquaint Ditto.
02:26 kelan what happens when you call it 3 explicit args instead of splatting an array?
02:26 broquaint Maybe I should update some of the subroutine tests ...
02:26 broquaint *** No compatible subroutine found: "&f"
02:27 broquaint Unless you take out the splats, in which case it works.
02:28 kelan heh
02:28 kelan i really think the splats are wrong. you shouldnt need them in the signature
02:29 broquaint Nor do I.
02:29 broquaint I think splattiness isn't working quite right in pugs.
02:30 kelan but saying splat in a way related to programming is fun
02:32 broquaint Absolutely.
02:36 zuhn has quit IRC ("Leaving")
02:37 Juerd Good localtime
02:37 * Juerd goes to bed now.
02:37 Juerd Bye
02:38 * broquaint goes for sleep before brain teh splode
02:38 broquaint has quit IRC ("Chatzilla 0.9.68a [Firefox 1.0.4/20050511]")
02:38 kelan the problem with saying good localtime is that you don't know if it's a greeting or a goodbye
02:49 sproingie just say aloha
02:51 khisanth_ has joined #perl6
02:52 khisanth_ is now known as Khisanth
02:53 ninereasons has quit IRC ("bye")
02:58 sproingie has quit IRC ("Chatzilla 0.9.68.5 [Firefox 1.0.4/20050524]")
03:03 rafl has joined #perl6
03:14 rafl_ has joined #perl6
03:14 rafl has quit IRC (Read error: 60 (Operation timed out))
03:16 jabbot has quit IRC (Read error: 113 (No route to host))
03:21 rafl_ has quit IRC (Read error: 104 (Connection reset by peer))
03:22 rafl has joined #perl6
03:30 rafl has quit IRC (Read error: 54 (Connection reset by peer))
03:31 rafl_ has joined #perl6
03:31 decay has quit IRC (Read error: 110 (Connection timed out))
03:36 Chewie has joined #perl6
03:36 robkinyon has quit IRC (Read error: 104 (Connection reset by peer))
03:37 robkinyon_ has joined #perl6
03:37 robkinyon_ is now known as robkinyon
03:37 robkinyon has quit IRC (Client Quit)
03:39 Chewie has left
03:45 vitaminmoo has joined #perl6
03:45 jamesstansell has joined #perl6
03:51 obscurite has joined #perl6
03:52 obscurite Hello. Can anyone suggest a good summer project for the google summer of code thingy? I wouldn't mind hacking some perl6. Had trouble parsing the todo list myself :)
03:52 obra obscurite: what skillset do you have?
03:53 sri_ please port modules! :)
03:53 obscurite obra - I've done c, c++, asm on an undergrad level, a touch of professional experience. I've had lots of on the job perl, java, and scripting.
03:53 rafl_ has quit IRC (Read error: 104 (Connection reset by peer))
03:53 vcv- has joined #perl6
03:53 rafl has joined #perl6
03:55 obscurite My proposal has to be for a project I can spend a couple of months on.
03:56 sri_ porting whole cpan sounds like a couple of months... ;P
03:56 obscurite you just need an autoporter... wait. maybe you need backwards compatibility
03:56 obscurite ;)
03:56 obra obscurite: nod.
03:56 obra hm. autrijus should reappear in a few hours.
03:56 mugwump well, we've got a perl5 <-> perl6 bridge, but it's pretty deep magic..
03:57 mugwump obscurite: here's a good one.  Write a YAML parser using Perl6 rules.
03:57 obscurite mugwump - what would it be used for?
03:58 mugwump lots and lots of things :)
04:00 sri_ i'd love to see mason ported
04:00 obscurite Both ideas noted
04:03 mugwump svn://tangram.utsl.gen.nz/trunk/Y​AML-Lite/lib/YAML/Lite/Grammar.pm is the grammar in Perl 5, well slightly.  The rules implementation wouldn't be much longer or look much different from that
04:04 mugwump except with rules it might stand some chance of working ;)
04:04 mugwump based on http://www.yaml.org/spec/
04:05 obscurite mugwump, do you currently do perl yaml?
04:05 coet has quit IRC (Read error: 113 (No route to host))
04:05 mugwump ingy's the yaml-meister
04:06 mugwump also WhyTheLuckyStiff has an implementation
04:07 obscurite yeah, Syck w/ perl binding
04:07 Khisanth <sri_> please port modules! :) <- been wondering about that, is there an actual list or is it more of "All of CPAN"?
04:08 rafl has quit IRC (Read error: 104 (Connection reset by peer))
04:08 mugwump well, depending on who you ask, you'll get a list of the modules they use the most ;)
04:09 rafl has joined #perl6
04:09 sri_ Khisanth: just ask me! :)
04:11 sri_ woah, Cwd.pm is such a mess...
04:11 Khisanth sri_: so ...
04:11 sri_ and i need it for File::Find::Rule :(
04:17 obscurite has quit IRC (SendQ exceeded)
04:17 obscurite has joined #perl6
04:23 Chewie has joined #perl6
04:23 sri_ oh cute, File::Spec already has cwd!
04:24 stevan sri_: we have a cwd implemented through Haskell
04:24 stevan File::Spec::cwd
04:24 stevan in Prim.hs
04:24 sri_ nice
04:24 stevan eventually we maybe need to port it, but it works in Haskell for now :)
04:25 sri_ Parrot should provide it ;)
04:25 stevan exactly :)
04:32 obscurite if parrot can host ruby, why does the mono project want to host ruby?
04:33 stevan why can't they both host it?
04:34 obscurite I guess it's apples and oranges.
04:34 stevan theoretically when we have a good enough code generator, we could port perl 6 to Mono too
04:34 stevan (although IIRC the CLR does not handle MI very well, or at least not easily)
04:34 obscurite Yeah, that was my _implied_ question :)
04:34 stevan it's just another VM when it comes down to it
04:35 mugwump hey, if Haskell can run on the JVM anything's possible
04:35 stevan hey mugwump
04:36 mugwump hi stevan
04:36 stevan obscurite: the CLR is not built/designed to handle dynamic languages as well as Parrot is/will-be
04:37 stevan it is optimized more for C#, etc.
04:37 stevan more static languages
04:38 Chewie2 has joined #perl6
04:40 obscurite Thanks for the clarification.
04:51 rafl has quit IRC (Remote closed the connection)
04:51 rafl has joined #perl6
04:55 Chewie has quit IRC (Read error: 110 (Connection timed out))
04:56 obscurite has quit IRC ("ttyl")
05:07 stevan sri_: ping
05:09 stevan sri_: just FYI, the ext/Tree module is a port of the perl5 module Tree::Simple (which I noticed is used by Catalyst
05:13 sri_ stevan: already noticed :)
05:22 saorge_ has joined #perl6
05:24 Shachaf has quit IRC ("[<>]")
05:28 * autrijus reappears
05:28 mugwump hey.  be warned I've changed perl5.c
05:29 obra hi autrijus
05:29 mugwump (cosmetically)
05:29 autrijus sure. thanks
05:29 autrijus hey obra
05:30 saorge has quit IRC (Read error: 145 (Connection timed out))
05:33 SM_ax has joined #perl6
05:33 Southen has joined #perl6
05:36 obscurite has joined #perl6
05:36 autrijus hey obscurite.
05:36 obscurite Hola :)
05:37 gaal i'm getting many, many of these on win32 during make smoke:
05:37 gaal pugs.exe: 1: runProcess: does not exist (No such file or directory)
05:37 obscurite So far, perl6-mason and perl6-rules-yaml have been suggested to me as perl foundation grant ideas. (for google summer of code)
05:37 gaal i suppose this is parrot not being found
05:38 autrijus obscurite: what is p6-rules-yaml?
05:38 autrijus gaal: yup, could be.
05:38 autrijus obscurite: a YAML implementation based on p6rules?
05:38 * obscurite nods
05:38 obscurite It seems like the Syck stuff will be in the core though?
05:38 ChanServ sets mode: +o autrijus
05:38 obscurite So i'm not sure how practical.
05:39 svnbot6 has joined #perl6
05:39 evalbot6 has joined #perl6
05:39 gaal obscurite: i suggest rich ASTs, so that you can do things like reliably produce normal ASCII source code from code that has unicode ops
05:39 gaal among other interesting applications
05:39 geoffb has quit IRC ("Leaving")
05:39 autrijus obscurite: what kinds of things are you interested in? :)
05:39 mugwump hmm, that seems a little ambitious gaal :)
05:40 autrijus ?eval $?PUGS_VERSION
05:40 evalbot6 No code to eval given.
05:40 autrijus ?eval 1
05:40 obscurite I need something an experienced perler or not so experienced c/c++/asm programmer could do in a couple of months of hacking while studying at the same time.
05:40 evalbot6 1
05:40 gaal and that would know to change » to >> in perl but to, uhhh, whatever the \N{unicode name} is in a quoted string.
05:41 obscurite something with lasting utility, that could become useful quickly
05:41 gaal mugwump, worth 45 hundred bucks fer sure.
05:41 gaal this has many useful applications, but the code canonicalization is really important:
05:42 autrijus obscurite: syck may be core pugs (and easily made core parrot), but an independent implementation based on Rules will likely exercise PGE a lot
05:42 gaal diff won't work without it.
05:42 mugwump diff already works well on unicode
05:42 gaal i mean, it *works*
05:42 autrijus obscurite: as gaal said, PPI6 is also a worthy goal that will make many people happy
05:43 SamB diff goes line-by-line!
05:43 * obscurite writes things down
05:43 gaal but it is limited
05:43 SamB it works fine with utf8
05:43 mugwump but I must recommend making sure that whatever it is you undertake is clearly defined :)
05:43 autrijus obscurite: although if you choose to do it with p6rules (i.e. write down Perl 6 grammar in Perl 6 rules)
05:43 autrijus obscurite: then it will definitely have a great impact on the bootstraping process
05:43 gaal another example: i want to grep for <<+>>
05:44 autrijus ...except I think it's part of TPF's grant description (the pmichaud part) already...
05:44 gaal but i don't remember if it spelled it «1»
05:44 gaal errr,  «+»
05:44 obscurite <gaal> obscurite: i suggest rich ASTs, so that you can do things like reliably
05:44 obscurite           produce normal ASCII source code from code that has unicode ops
05:44 obscurite <gaal> among other interesting applications
05:44 obscurite *<* Signoff: geoffb ("Leaving")
05:44 obscurite <autrijus> obscurite: what kinds of things are you interested in? :)
05:44 obscurite has quit IRC (Excess Flood)
05:44 autrijus ooh flood
05:45 autrijus gaal: what's wrong with a simple tr// based solution to that.
05:45 obscurite has joined #perl6
05:45 * obscurite curses at putty to those who have not yet ignored him
05:45 autrijus obscurite: that's fine, we only see 5 lines
05:45 gaal the weak answer is that it would have false positives
05:45 autrijus that's quite week and maybe you _want_ those false positives :)
05:45 autrijus s/week/weak/
05:46 autrijus I'd like a refactoring browser though.
05:46 autrijus port HaRe to Perl6.
05:46 autrijus that will rock.
05:46 gaal the strong answer includes "code browsing" and hand waving.
05:46 autrijus but that far exceeds the two-month span
05:46 autrijus it's easily a master thesis :)
05:46 jamesstansell has left
05:47 obscurite Thanks, I have a bunch of things to research now.
05:47 autrijus obscurite: I think mason6 will generate a lot of goodwill :)
05:48 autrijus and it gets you playing with modparrot and other wonderful things
05:48 gaal autrijus, what would it take to do the whitespace preservation thingie in the AST?
05:48 autrijus plus it's clearly doable in 2 months
05:48 autrijus gaal: we already do that
05:48 autrijus gaal: you can simply calculare intervals (missing tokens) between Pos
05:49 autrijus gaal: and do a rescan to find them out
05:49 gaal we do!? then my transformation can almost happen now.
05:49 autrijus that of course assume you have a copy of source code amount
05:49 autrijus s/amount/around/
05:49 gaal have a AST dumper that's guaranteed to show quoted sctrings with escaped unicode
05:50 gaal and an AST -> perl6 parser
05:51 autrijus er.
05:51 autrijus no
05:52 autrijus you write a Pugs.Compile.Perl6.
05:52 autrijus that's your ast->perl6 parser
05:53 gaal :D "hello"
05:53 gaal :D 'hello'
05:54 gaal they output the same thing
05:54 gaal for any sane application other than this, this is a good thing :)
05:55 SamB that sounds like an extra-ugly-printer...
05:56 gaal anyway, i should go to $work.
05:56 gaal the added info should go in the data structure, i'm not proposing the translation actually go through text
05:56 gaal later. &
05:57 autrijus gaal: "rescan" :)
05:58 * SamB starts to think his ToHsExp thing is not going to work beyond the simplest things...
05:58 * SamB knows he is too tired to figure that out now, though.
05:59 gaal what's "rescan"? (i'll backlog)
06:00 Khisanth how difficult would it be to implement 1..10:by(2)? :)
06:01 autrijus gaal: rescan means to look at the interval in Pos
06:01 autrijus and read back the source code
06:01 autrijus between coordinates
06:02 autrijus Khisanth: you want to take a stab?
06:03 autrijus I don't see an easy way to do that :)
06:03 simcop2387 has quit IRC ("Client exiting")
06:03 autrijus and I'm not sure if it applies to  1+2:by(3)
06:03 autrijus or
06:03 Khisanth heh not before I find out how you are suppose to do get 5,4,3,2,1 :)
06:03 autrijus 1==4:foo<bar>
06:03 Khisanth s/do//
06:03 autrijus reverse(1..5)
06:03 autrijus surely?
06:04 Khisanth I never liked that
06:04 autrijus 5..1:by(-1) then.
06:05 Khisanth so where is the general area is should start stabbing? I think I'll try tomorrow. I need an excuse to do something with Haskell :)
06:06 autrijus Khisanth: ok. you can start by implementing a generic "range" op
06:06 Khisanth that isn't already in?!
06:06 autrijus Khisanth: not afaik
06:06 autrijus the curr impl is all based on ++
06:06 autrijus so you can do
06:06 autrijus 'a'..'z'
06:07 autrijus I have _no_ idea if
06:07 autrijus 'a'..'z':by(-1)
06:07 autrijus will work.
06:07 autrijus or how else to make it work
06:07 autrijus 'z'..'a':by(-1) rather
06:07 autrijus so a generic range op that takes three Val (begin, end interval) is a good start
06:07 autrijus then you can introduce a special parse rule
06:08 autrijus that parses range and delegate to that 3ary op
06:08 autrijus finally we try to think a way to integrate it into the expression parser table in the correct precedence
06:08 autrijus that's all
06:10 saorge_ has quit IRC ("Leaving")
06:11 * obscurite is catching up on Pugs
06:11 autrijus :)
06:13 japhy I'll have a rudimentary perl 6 rules parser by friday
06:13 japhy with some cheating, of course.  variable and code-block parsing will be iffy.
06:16 autrijus that's fine
06:16 autrijus japhy++ # fan tas tic
06:16 japhy yay for me.
06:16 japhy g'night
06:16 autrijus nite!
06:17 sri_ there's no FindBin yet, right?
06:17 autrijus sri_: right. write one!
06:17 sri_ mkay
06:17 obscurite sri, was perl6-mason your idea?
06:17 * autrijus chuckles.
06:18 sri_ obscurite: mhm
06:18 sri_ it would rock
06:18 obscurite Okay, forgot who it was. :)
06:20 * autrijus ponders uploading Pugs 6.2.6 with cpan-upload.p6
06:20 autrijus that would be nice publicity
06:24 autrijus or at least fun ;)
06:25 Chewie has joined #perl6
06:30 Chewie has quit IRC (Client Quit)
06:33 iblechbot has joined #perl6
06:39 hlen__ has quit IRC (Read error: 110 (Connection timed out))
06:46 scook0 has joined #perl6
06:46 scook0 ahoy!
06:47 obscurite hi
06:50 obscurite has quit IRC ("night!")
06:50 Chewie2 has quit IRC (Read error: 110 (Connection timed out))
06:51 castaway_ is now known as castaway
06:59 autrijus mugwump: please use "return Int" etc for now
06:59 autrijus the "int" type is not in class tree
06:59 autrijus and so will trigger subtle weird bugs
06:59 autrijus ?eval $?PUGS_VERSION
06:59 evalbot6 No code to eval given.
06:59 autrijus ?eval eval '$?PUGS_VERSION'
06:59 evalbot6 No code to eval given.
06:59 luqui has joined #perl6
07:00 luqui has left "Leaving"
07:00 mugwump autrijus: noted, thanks
07:01 nothingmuch has joined #perl6
07:01 mugwump ?eval "$?PUGS_VERSION"
07:01 evalbot6 No code to eval given.
07:01 luqui has joined #perl6
07:01 mugwump ?eval [+] 1..5
07:01 evalbot6 No code to eval given.
07:01 luqui hmm?
07:01 luqui that looks broken
07:02 nothingmuch morning
07:02 luqui morning nothingmuch
07:02 scook0 autrijus: I'm looking at Haddocking Context.hs at the moment... I was wondering how much of the current behaviour is consciously designed, and how much is just hacked together
07:02 nothingmuch brb, reboot
07:02 nothingmuch has quit IRC (Client Quit)
07:03 autrijus scook0: 0% is consciously designed.
07:03 autrijus 100% is hacked together.
07:03 scook0 autrijus: thanks
07:03 autrijus scook0: only deltaType needs to remain. everything else want sto be rewritten using Data.Graph or something else.
07:03 scook0 ah
07:04 autrijus I think that part of code is ~day 13 or so
07:04 autrijus and had not been touched since
07:04 scook0 is deltaType supposed to be returning large positive numbers for types that are actually incompatible?
07:04 gaal|work has joined #perl6
07:04 autrijus that is a open design question.
07:04 autrijus it is that way because we want
07:04 autrijus '1'+'2'
07:04 autrijus to work
07:04 scook0 I see
07:05 autrijus without having to define <+> as Scalar Scalar
07:05 autrijus I think I did think of leaving a compatibleTypes as remedy
07:05 autrijus to specify things that are fundamentally uncastable
07:05 scook0 I think I'll just document the current behaviour for now
07:05 autrijus nod. it is a mess. it really wants a rewrite.
07:05 scook0 with a caveat saying "this may or may not be wise"
07:05 autrijus you can kill the "may or"
07:05 scook0 'junctivate' turned my brain inside-out too :)
07:05 autrijus I asked something about Str->Int casting on p6l
07:05 * luqui still thinks that the '1'+'2' thing is elegantly solved by making '1' both a Str and an Int at the same time
07:05 autrijus but no rulings came down
07:06 autrijus scook0: "junctivate" is actually sane
07:06 luqui whereas '1a' is just a Str, so gives an error
07:06 autrijus luqui: oh and 'Inf' is a Num
07:06 scook0 oh, it's sane, it's just that it's so abstract
07:06 luqui not sure about that one
07:06 autrijus and '1e-1' is a Complex
07:06 autrijus luqui: and other weird corner cases :)
07:06 autrijus er, never mind about the Complex thing. thinko
07:07 luqui well, it is a complex
07:07 luqui it's just a Num also
07:07 luqui :-p
07:08 * luqui thinks about it some, and decides that '1e-1' should still be a Num, even though it might be unsettling
07:08 scook0 autrijus: btw, is 'countTree' supposed to be ignoring leaf nodes?
07:08 mugwump 1i-1 perhaps you mean?  :)
07:09 mugwump or 1ie0+1e0
07:09 luqui probably 1e0i+1e0
07:09 * mugwump was trying to find the Complex literal equivalent of the /eieio operator
07:09 luqui oh
07:10 autrijus scook0: it doesn't really matter, but no.
07:10 autrijus scook0: if you can fix it so it counts the whole tree, that's fine
07:11 scook0 autrijus: it's a one-char fix, so I'll bundle it in when I ci my docs
07:11 scook0 doesn't really make any practical difference atm
07:12 nothingmuch has joined #perl6
07:12 autrijus k
07:14 Corion has joined #perl6
07:15 Corion "make test" now takes ages - I should do a clean checkout it seems ...
07:16 luqui what does a clean checkout have to do with it?
07:16 Corion luqui: "make clean" doesn't
07:16 * castaway looks at Corion.. (at home today, what?)
07:17 Corion castaway: Yep - working from home ;)
07:17 castaway ha, I'm so clever :)
07:17 Corion (resp. fighting our DNS as it doesn't work when trying from home :( )
07:21 castaway hmm, reminds me, must figure out why by home dialin is failing
07:22 luqui ?eval "working?"
07:22 evalbot6 No code to eval given.
07:23 castaway guess not ,)
07:27 sekimuraway is now known as sekimura
07:29 evileval has joined #perl6
07:29 luqui ?eval "evil working?"
07:29 evileval No code to eval given.
07:29 evalbot6 No code to eval given.
07:29 evileval has quit IRC (Remote closed the connection)
07:32 elmex has joined #perl6
07:33 autrijus ?eval '123'
07:33 evalbot6 No code to eval given.
07:33 autrijus ?eval 1
07:33 evalbot6 1
07:33 autrijus ?eval \'
07:33 evalbot6 No code to eval given.
07:33 autrijus hrm. guess it needs some debugging
07:33 Corion Yee Haw! I bested our DNS ! :)
07:34 * luqui is debugging it
07:34 svnbot6 has quit IRC (Remote closed the connection)
07:34 gaal|work Corion, are you getting a parrot-enabled pugs on your box?
07:34 Corion gaal|work: Nope, because I don't have Parrot installed
07:34 Corion ext\Set\t\overload.t is taking 2 minutes already - I think it runs in an infinite loop ... I'll keep it running up to 10 minutes I guess
07:35 gaal|work i do have it, but my pugs on w32 is rules-challenged. i haven't had tuits to check if it's just a makefile thing or a deeper issue
07:35 gaal|work "just a makefile thing" -- famous last words
07:36 mugwump Corion: that is far too long for that test!
07:36 Corion mugwump: 4 minutes now :)
07:36 Corion mugwump: I don't have the time to debug it though ...
07:36 mugwump that's cool, I'm on it
07:36 Corion (to see where it hangs ...)
07:36 mugwump It's not getting pass the parsing
07:37 * gaal|work still things the context-sensitive return declaration syntax is weird
07:38 mugwump wow, my pugs takes 12s to start up
07:38 gaal|work sub foo() returns Int | List of Sheep
07:38 mugwump on my 1.6GHz athlon
07:39 Corion mugwump: That might be Prelude.pm getting loaded ...
07:39 mugwump why did we have to put a Honda in?
07:40 luqui evalbot is fixed
07:40 luqui should bytes be a unary?
07:40 autrijus Corion: it's fixed.
07:40 autrijus luqui: why note?
07:40 autrijus Corion: the set test, that is
07:40 luqui well, it's not
07:40 luqui that was the problem
07:41 * Corion updates
07:41 luqui so if it should, then there is a pugs bug
07:41 Aankhen`` has joined #perl6
07:41 autrijus luqui: how is it not unary?
07:42 autrijus pugs> bytes 'asdx'
07:42 autrijus 4
07:42 luqui bytes 3 + 8
07:42 luqui 2
07:42 larsen has joined #perl6
07:42 luqui it looks like a listop
07:42 Khisanth mugwump: why DOES pugs take so much longer compared to perl anyway?
07:42 luqui hmm
07:42 luqui no, it's not
07:43 luqui hmmm....
07:43 luqui maybe unaries are parsed with the wrong precedence now
07:43 Corion Khisanth: Because Pugs is compiled using GHC and not using MSVC
07:43 mugwump in my case, because I'm linking in parrot, pugs, haskell and perl 5 :)
07:43 luqui wait, that's really weird
07:43 luqui it's working in pugs>, but not in evalbot
07:43 autrijus luqui: it may be a optionary
07:43 Khisanth this perl is compiled with gcc
07:43 Corion evalbot might be several versions behind :)
07:44 svnbot6 has joined #perl6
07:44 Corion Khisanth: Then I don't know - I expect gcc to be slow. But GHC does some magic before handing stuff off to gcc
07:44 autrijus sets mode: -o autrijus
07:44 luqui there was "if bytes $code == 0",  and it looked like that was being parsed "if bytes($code == 0)"
07:44 autrijus luqui: clearly that's broken
07:45 clkao morning autrijus
07:45 autrijus hi clkao.
07:45 clkao sick today :(
07:46 clkao have you done something for me?
07:46 autrijus no, I've been a bit sick too and slept a lot
07:47 clkao so what was missing last night?
07:47 autrijus clkao: hashrefs
07:47 clkao no
07:47 f0rth what would be required to have pugs working like perl5 in EPIC?
07:47 clkao lvalue doesn't work
07:47 autrijus luqui: in Parser.hs, bytes should be there in optionary
07:47 autrijus luqui: also int() doesn't work
07:47 clkao you need to make placeholder-ish block rw
07:47 autrijus clkao: right, that too, but I didn't have tuits to check
07:47 autrijus placeholder-ish?
07:48 clkao {$^x..}
07:48 luqui what is int() supposed to do
07:48 autrijus clkao: can't.
07:48 clkao usually you can do -> ($x is rw) { blah } right?
07:48 luqui (and it looks like bytes is optionary; I'm still trying to find the real problem)
07:48 autrijus eval_apply("sub ($x is rw, $y) {$x[0] = $y}")
07:48 autrijus right
07:48 autrijus luqui: hrm wait
07:48 autrijus int() does work as both unary and optionary
07:48 autrijus and parses correctly
07:49 autrijus oh, no, nvm
07:49 autrijus pugs> :d int 5 - 8
07:49 autrijus App &int (: App &infix:- (: 5, 8))
07:49 autrijus that's still wrong
07:49 autrijus so the entire unary thing is borked. weird
07:49 svnbot6 has quit IRC (Remote closed the connection)
07:49 luqui it's just that in evalbot:  "if bytes $code == 0" doesn't work, but "if bytes($code) == 0" does.  But that doesn't seem to be happening elsewhere.
07:50 autrijus I'm seeing that it fails consistently elsewhere too
07:51 autrijus compare
07:51 autrijus pugs> :d chdir 1,2
07:51 autrijus Syn "," {App &chdir (: 1);
07:51 autrijus         2}
07:51 autrijus with
07:51 Aankhen`` Anyone wanna port Time::Local?
07:52 autrijus pugs> :d mkdir 1 == 2
07:52 autrijus App &infix:== (: App &mkdir (: 1), 2)
07:52 luqui isn't that correct?
07:52 evileval has joined #perl6
07:52 autrijus right. but see
07:52 autrijus pugs> :d bytes 1 - 2
07:52 luqui ?say "hi"
07:52 autrijus App &bytes (: App &infix:- (: 1, 2))
07:52 autrijus pugs> :d bytes 1 + 2
07:53 autrijus App &bytes (: App &infix:+ (: 1, 2))
07:53 autrijus oh
07:53 autrijus it's because - and + are might tigher
07:53 autrijus sorry. got them confused with comparisons
07:53 luqui aren't + and - supposed to be tighter than unary?
07:53 luqui yeah they are
07:54 luqui (I meant to say "looser")
07:54 autrijus indeed. clearly I'm not in the correct mental shape :)
07:54 luqui me either
07:54 autrijus they are looser than symbolic unary
07:54 autrijus but tighther than named unary
07:54 luqui ?eval "hi"
07:54 evalbot6 No code to eval given.
07:54 evileval 'hi'
07:54 autrijus and optionary
07:54 mugwump hmm, {}.kv seems to hang on 4238
07:54 autrijus luqui: committed your fix to eval?
07:55 luqui yeah
07:55 autrijus mugwump: indeed. take a look at Keyed.hs and see if you cant fix?
07:55 autrijus (and {} is a code anyway)
07:55 luqui I'll kill evil if you restart evalbot6 (are you the one who runs that?)
07:56 evalbot6 has quit IRC (Remote closed the connection)
07:56 autrijus I am
07:56 ChanServ sets mode: +o autrijus
07:56 svnbot6 has joined #perl6
07:56 evileval has quit IRC (Remote closed the connection)
07:57 evalbot6 has joined #perl6
07:57 autrijus ?eval ('luqui++') xx 3
07:57 evalbot6 ('luqui++', 'luqui++', 'luqui++')
07:57 autrijus sets mode: -o autrijus
07:57 autrijus so, finally all is well.
07:57 luqui oh, the evalbot now supports ?join
07:58 autrijus cool!
07:58 luqui so you don't have to invite him
07:58 autrijus 'key
07:58 autrijus ?eval File::open('/etc/passwd')
07:58 evalbot6 Error: No compatible subroutine found: "&File::open"
07:58 autrijus cool. Prelude is really not loaded under safemode
07:59 autrijus f0rth: probably not much, just tweak epic a bit
08:01 autrijus epic as it currently stands already works with p6 to some degree
08:02 autrijus bbiab
08:02 Corion Hmmm - at r4246, the test ext\Set\t\overload.t still hangs
08:03 osfameron has joined #perl6
08:03 autrijus the fix was 4247.
08:04 autrijus sorry :)
08:04 autrijus Corion: can you help (after a successful smoke) unTODO and enTODO for the release?
08:05 Corion autrijus: I'm supposed to $work, but I'll look into it after this smoke has finished
08:05 luqui :q
08:05 autrijus cool. thx!
08:05 autrijus :)
08:05 autrijus &
08:05 jql damn work
08:08 jql given Work { say "I Quit!" when .does Suck }
08:09 * jql sees good things with p6 poetry
08:09 Corion "true" but false
08:09 Corion "maybe" but true|false
08:10 luqui jql, almost right
08:10 jql even better, "false" but false
08:10 luqui given Work { say "I Quit!" when .does(Suck) }
08:10 jql damn methods
08:11 Corion "0 but true" but false # Perl5 programmer, indecisive
08:11 jql $foo but $foo;   # head asplode
08:12 luqui I don't think that's a head asplode
08:12 luqui if $foo contained a Role, then that would be fine
08:12 luqui you're making the Role do itself
08:12 luqui oh
08:12 luqui okay, yeah, my head a splode
08:12 autrijus hey luqui. why isn't {} a Hash?
08:12 jql heh
08:12 luqui it's not?
08:12 autrijus I mean, what use is a empty Code?
08:12 Enveigler has joined #perl6
08:12 luqui what use is an empty hash ;-)
08:13 autrijus my $href = {};
08:13 luqui I can think of uses for both
08:13 Corion Hrmmm ... My system test seems broken ... Weird ...
08:13 luqui but the hash is undoubtedly more useful
08:13 autrijus really. what use is a empty code?
08:13 luqui To assign a callback that does nothing?
08:13 luqui still, sub {} is fine there
08:13 autrijus or {;}
08:13 luqui that too
08:14 jql as long as it's not (sub{} | hash())
08:14 autrijus ok. I'd like {} to be a hash
08:14 luqui I expect a lot of people would
08:14 jql I would
08:14 luqui { %hash } too
08:14 autrijus that too.
08:14 luqui (I don't remember if that is still a hash }
08:14 autrijus it's not.
08:14 jql we have {;} if we want an empty Code
08:14 luqui it was at one point
08:14 autrijus can you bring both to p6l? I'd like to implement both
08:14 luqui okay
08:14 autrijus danke
08:15 autrijus (the relevant code is Parser.hs line 775, extractHash)
08:15 f0rth autrijus: I am still trying to make syntax check working
08:15 jql or, perhaps in a fit of p5 dwimmery, an empty hash ref does Code. heh
08:16 * jql pretends he didn't say that
08:22 rafl has quit IRC (Read error: 113 (No route to host))
08:25 rafl has joined #perl6
08:27 pernod has joined #perl6
08:30 Enveigler1 has joined #perl6
08:31 mugwump ext/Set/t/overload.t is succeeding on r4248
08:33 Corion My r4246 smoke is still running ...
08:40 Corion Grrr. Array interpolation has changed again, that's what broke my test :(
08:43 Corion Ah hah. Aliasing seems to be broken: for *@cmd,*@args { # does not work
08:43 Corion for *@cmd,*@args -> $l { # works as expected
08:45 Corion Hmmm. Weird ... That doesn't seem to be the cause ... Oh well - it worksnowsoiskipit
08:48 pernod has quit IRC (Read error: 110 (Connection timed out))
08:49 Enveigler has quit IRC (Read error: 110 (Connection timed out))
09:02 hlen has joined #perl6
09:03 * luqui just submitted a Google summer of code proposal
09:04 mugwump I'm ineligible - it's going on Winter here!
09:04 luqui haha
09:06 fireartist has joined #perl6
09:11 dada has joined #perl6
09:11 vcv- has quit IRC (Read error: 145 (Connection timed out))
09:15 hlafarge has joined #perl6
09:18 kungfuftr mugwump: you still got the timewarp code anywhere?
09:19 mugwump kungfuftr: er, probably..
09:19 iblechbot has quit IRC (Read error: 131 (Connection reset by peer))
09:19 mugwump actually, no, I've got lots of little fragments of it :)
09:21 mugwump don't forget the mountain of dependancies... which part are you most interested in?
09:21 kungfuftr mugwump: bah... need for to have blocking...
09:21 kungfuftr mugwump: bonus points for converting timewarp style stuff into a plain old sleep() function
09:21 kungfuftr =0)
09:21 mugwump oh that's easy
09:22 mugwump just window.setTimeout(function(){ /* code to run after sleep */  }, 1000); or something
09:23 kungfuftr mugwump: nah... foo(); sleep(5); bar();
09:23 kungfuftr =0)
09:23 mugwump can't be done, I'm afraid :)
09:23 kungfuftr mugwump: supposedly there is a way... via throwing scope
09:24 mugwump hmm
09:24 kungfuftr bbiab
09:27 luqui what's timewarp?
09:28 mugwump it's just a jump to the left...
09:28 luqui ?
09:29 castaway Its a dance
09:29 mugwump o/~ ... and then a step to the riiieye-eye-eye-eye-iiiight ... o/~
09:29 luqui oh
09:30 mugwump it was a test script where we had developed XML-RPC on acid
09:30 mugwump via iframes etc
09:30 luqui huh
09:31 luqui okay
09:31 mugwump mmm.  should have been off-chan really :)
09:31 * luqui /XML|RPC/ and die
09:31 * sri_ steps on mugwump's foot
09:32 luqui that's the state of my knowledge
09:33 kungfuftr quick... jump him while he's not looking!
09:33 mugwump with a full windowing toolkit and a generic object bridge from JavaScript to Perl, auto-generating JS and Perl skeleton classes from a T2 metamodel, mapping them straight to the database and pretty much transparently bridging to the browser it was a case of overengineering gone mad :)
09:42 kungfuftr mugwump++ # too correct, it _was_ funky though
09:43 mugwump I think that was what kept us all going..
09:44 Corion I am considering doing a bridge from Class::DBI via XMLHttpRpc to JavaScript, to give some JS objects persistence ;-))))
09:44 kungfuftr Corion: cdbi--
09:44 Corion Feh - it worksforme
09:44 kungfuftr cdbi makes easy things simple, it makes hard things impossible
09:45 castaway just difficult..
09:45 mugwump it's a great SQL templating engine
09:46 castaway It is?
09:46 Corion kungfuftr: I don't need to adapt other peoples' databases, so cdbi works well for me
09:47 kungfuftr Corion: yar, it seems like that now, but eventually when you come further down the line, you'll need to change it to make it more complex... i can guarantee it
09:48 Corion kungfuftr: Well - I primarily use the DB as a persistence store, and for that it works quite well.
09:48 mugwump I need to dynamically build expressions that contain multiple joins using arbitrary search filters on any of the joined objects.  Tangram works :)
09:49 Corion Hmmm. Where does "rel2abs" live nowadays?
09:49 sri_ kungfuftr: same here, cdbi keeps the simple things simple
09:49 kungfuftr sri_: i've just found it to sprout legacy code
09:50 kungfuftr where you seriously have to hack it to get it to work for some change request
09:50 kungfuftr tangram's good, but it's not really a viable option for pre-existing systems
09:50 kungfuftr *sigh* life is hard
09:50 Corion Ah. Its Just Not exported
09:50 castaway It is ,)
09:51 castaway I'm not even sure the simple things are simple (at least from the POV of having to recreate your table structure in CBDI classes
09:52 Corion castaway: CDBI can look at the DB and learn from that ;)
09:52 mugwump well, CDBI::Loader is supposed to get around that
09:52 mugwump but yes, it sucks describing your program'
09:52 mugwump s model twice
09:52 castaway Corion, yeah, so Ive heard, but what if you add/change your DB structure?
09:52 nothingmuch castaway: my project is still not finished
09:52 nothingmuch but usable
09:53 castaway mugwump, right, that was my point
09:53 Corion castaway: Then your class changes as well :)
09:53 castaway rerunning loader "fixes" it?
09:53 castaway (without killing any additions I may have made?)
09:53 zeromode has joined #perl6
09:53 mugwump schema migration is a complex issue, with or without a snazzy abstraction..
09:53 castaway oh, and the "no multicol keys" sucks
09:54 mugwump hey what a cool error
09:54 mugwump pugs: cannot cast from VStr "bob" to Pugs.AST.Internals.VCode
09:55 luqui that's a common one
09:56 mugwump ah, "$foo()"
09:56 nothingmuch hopefully the defacto persistence/rdbms-oo mapping in perl6 will be nicer
09:56 nothingmuch stevan and I had a nice discussion about it
09:56 * kungfuftr hopes so
09:58 * luqui is so excited about serializable continuations
10:00 autark-jp hm, do you need a newer perl than 5.8.0 to build pugs?
10:00 nothingmuch how do serializable continuations get along with ickier state preserval, like handles?
10:00 luqui I doubt it
10:00 autark-jp when trying make, I get: Perl v6.0.0 required--this is only v5.8.0, stopped at /work/d/pugs/blib/lib/File/Spec.pm line 1.
10:00 * castaway giggles
10:00 autark-jp BEGIN failed--compilation aborted at /usr/lib/perl5/5.8.0/ExtUtils/Install.pm line 22.
10:00 luqui you probably need to register a "on entry" callback or something so that you can restore it
10:02 rafl_ has joined #perl6
10:03 luqui that's weird
10:03 rafl has quit IRC (Read error: 54 (Connection reset by peer))
10:03 luqui it seems to be trying to run a perl6 script using "perl"
10:03 autark-jp things just work on my other mchine with 5.8.6
10:04 luqui is that the only difference?
10:04 autark-jp probably not
10:04 Aankhen`` Question: what is a continuation, in the programming sense?
10:04 luqui as opposed to what kind of sense?
10:04 Aankhen`` Any other, I suppose.
10:05 Aankhen`` Just pre-empting someone picking up a dictionary and being a wiseguy. :-P
10:05 luqui uh.  it's like a closure, but it closes over the execution stack too
10:05 luqui I think Dan has a wthi about it
10:05 * luqui is looking that up
10:06 luqui http://www.sidhe.org/~dan/​blog/archives/000185.html
10:06 pernod has joined #perl6
10:06 luqui that's not exactly terse though
10:07 luqui basically it allows you to "save" a point in the execution of your program, and return to it at a later time (but variables that are changed stay changed)
10:07 luqui I don't know why I put quotes around "save"
10:08 Corion luqui: Not necessarily all variables that have changed stay changed. Only the globals, as the whole stack hangs onto the continuation
10:09 Corion (globals+heap better)
10:10 luqui considering new instances of lexicals to be distinct variables and whatnot
10:10 luqui basically just like a closure
10:11 luqui in our Perl world, everything is on the heap
10:11 luqui I don't know of a language with continuations where that isn't true
10:11 nothingmuch Corion: if two conts close over the same lexical scope, one changes a var, and continues to the other, the other will see the change
10:12 Corion nothingmuch: true
10:12 nothingmuch Aankhen``: continuations are a divergance from single point of entry / single point of exit
10:12 nothingmuch returning early is the most trivial example
10:12 Corion Likely, if you already know closures, then a continuation is a closure that also closes over the current line number executed :))
10:13 * luqui found it useful when trying to understand continuations to hear lots of different explanations
10:13 nothingmuch coroutines are even weirder, stopping at a point, returning a value, and then picking up
10:13 luqui so this is good
10:13 nothingmuch and a continuation is even more flexible
10:13 luqui Corion, and its call stack
10:13 nothingmuch it's a bit like taking a closure, and a reference to a line number
10:13 broquaint has joined #perl6
10:13 Corion (and the call stack)
10:13 nothingmuch true
10:14 integral they're like threads too, in that when you context switch you make a continuation
10:14 luqui hmm... come to think of it, a coroutine is very much like some sort of non-constant continuation
10:15 luqui that is, a continuation that updates what it points to as it executes
10:15 nothingmuch look at it this way: if you create a continuation in the current place in a file, and call another sub
10:15 nothingmuch and that sub continues to the continuation you gave it
10:15 nothingmuch it's like it returned
10:15 * integral prefers the: my $foo = coro { } form
10:15 mugwump It would be fun to port POE to coroutines :)
10:15 integral since then it's a bit more obvious that $foo isn't like a normal subroutine, in that it's a box with a continuation in it, and the box's contents can change
10:15 Aankhen`` Sorry, my computer was shouting at me to take a 10 minute rest break.
10:16 luqui mugwump, fun?
10:16 luqui very very useful
10:16 integral mugwump: POE::Session::YieldCC on CPAN is a crappy attempt at this
10:16 nothingmuch except that the jump replaces the stack, not only pops from it
10:16 Aankhen`` luqui >> It certainly has been useful to hear lots of explanations. :-)
10:16 Aankhen`` I think it might be somewhat clearer once I see it in action, though.
10:16 luqui you can with pugs
10:16 * nothingmuch gets to fix a bug with Qt now
10:16 nothingmuch oh joy
10:16 luqui play with $?CALLER_CONTINUATION
10:17 Aankhen`` luqui >> From which revision?
10:17 nothingmuch btw, does pugs/perl have a syntax for more than just caller continuation?
10:17 luqui any revision fairly recent
10:17 Aankhen`` I haven't compiled today's dosage of Pugs.
10:17 luqui it'll be there
10:17 Aankhen`` Mine is at r4154.
10:17 Corion The key idea (in my opinion) to continuations is, that they allow you to do this:
10:17 pernod has quit IRC (Read error: 60 (Operation timed out))
10:17 Corion prompt("What is your name?")
10:17 Corion read_name();
10:17 Corion print "<html><p>Your name is $name</p></html>";
10:17 Corion ... in a CGI/mod_pugs
10:17 integral ... without operating system support for threads
10:17 Aankhen`` Corion >> They allow you to leave semi-colons off statements? :-o
10:18 Corion Aankhen``: :)
10:18 Aankhen`` ^_^_^
10:18 nothingmuch another thing:
10:18 luqui Aankhen``,  that variable refers to the caller's continuation, because the real "current continuation" is somewhat undefined if you use it as a variable
10:18 nothingmuch lets say you are implementing exception handling code:
10:18 Aankhen`` luqui >> OK.
10:18 nothingmuch CATCH { } puts the continuation to it's block in some global var
10:18 luqui Corion, you need serializable continuations for that
10:18 Aankhen`` Darnit... just as I thought I might have begun to understand coroutines, I start trying to understand this. :-P
10:18 nothingmuch sub die { $! = ...; go to CATCH continuation };
10:18 Corion luqui: Or a persistent (single) interpreter
10:19 luqui hmm, I suppose you could do that with mod_parrot even without serializable continuations
10:19 luqui coolness
10:19 Aankhen`` Corion >> I didn't really understand the CGI/mod_pugs example -- do you think you could explain it?
10:19 nothingmuch for flow oriented web applications one still needs a way to serialize and recreate (not thaw) connections
10:20 nothingmuch Aankhen``: basically, when you prompt(); an html form is displayed
10:20 nothingmuch and your program shuts down
10:20 Corion Aankhen``: Well. You understand the code - it is code you would use for a console application, right?
10:20 Aankhen`` Yes.
10:20 nothingmuch on the next invocation, the prompt() returns with the new value
10:20 nothingmuch parsed from the QUERY_STRING, or whatever
10:20 Corion (nothingmuch explains much better than I do :) )
10:21 nothingmuch and serializing that
10:21 nothingmuch it does thiis by getting a continuation to the part farming the QUERY string, and returning to the code that called prompt
10:21 nothingmuch when the program restarts, the serialization is thawed, and invoked
10:21 Aankhen`` Hrm.
10:21 nothingmuch the code to get the QUERY_STRING stuff parsed is executed
10:21 nothingmuch and then the subroutine returns
10:21 nothingmuch since we know the callstack, it appears to the code calling prompt() that nothing changed
10:22 osfameron has quit IRC (Read error: 60 (Operation timed out))
10:22 Aankhen`` I need to shower; I will come back and try to grok it once again.
10:22 Aankhen`` BBIAB.
10:22 nothingmuch continuations have a nice property though - there doesn't need to be only one
10:22 nothingmuch that's the hard part, i think
10:23 fireartist has quit IRC ("Leaving")
10:23 hlafarge has quit IRC ("KVIrc 3.2.0 'Realia'")
10:23 * mugwump prays for accurate parsefail line numbers when he wakes
10:24 luqui keep praying
10:24 luqui we'd have to seriously think about all the try calls in Parser.hs
10:26 mugwump oh, is that why it takes so long to parse everything ;)
10:26 luqui perhaps
10:27 * integral thought try == back-tracking
10:27 luqui yep
10:27 integral hmm?  I thought perl6's grammar didn't need it?
10:27 luqui it doesn't really
10:27 luqui but it sure simplifies things
10:27 integral ah...
10:28 luqui LL(1) factoring a grammar is... nontrivial
10:28 nothingmuch Aankhen``: http://c2.com/cgi/wiki?ContinuationPassingStyle, there's a good description in the middle: "CPS also lets you to represent first class continuations..."
10:28 nothingmuch err, "Any "traditional" function or function call..."
10:28 integral oh, I thought the "doesn't need back-tracking" thing was designed into the grammar, rather than just being theoretically possible
10:29 luqui btw, &?CALLER_CONTINUATION.arity == 1.  what is that parameter?
10:29 integral the return value of the function?
10:29 nothingmuch also "Put another way:" - that's also a good desc for imperative heads
10:29 integral shouldn't: &?CALLER_CONTINUATION.(...) be the same as return(...) ?
10:29 luqui ahh yes
10:29 luqui duh
10:29 luqui thanks
10:30 integral would be nice if it behaved as a call rather than a jump though... 8-)
10:31 luqui ?
10:31 luqui how does it behave as a jump?
10:31 integral does execution ever reach the statement after it?
10:32 luqui if you pass it the current continuation
10:32 integral ah.   Can you do that though yet?
10:32 luqui I have yet to test it, but I think you can do:
10:32 luqui sub cc() { &?CALLER_CONTINUATION }
10:32 luqui then foo(cc) is like call/cc
10:32 luqui maybe
10:32 integral hmm!
10:33 * luqui tests that
10:33 iblechbot has joined #perl6
10:34 Enveigler has joined #perl6
10:34 pdcawley has quit IRC (Read error: 110 (Connection timed out))
10:35 luqui integral, yeah, it seems that works
10:35 integral ./pugs -e 'sub a { b(&?CALLER_CONTINUATION); say "hello" } sub b($c) { say "foo1"; $c(&?CALLER_CONTINUATION) } my $b = a(); $b()' # I have no idea what this does...
10:36 luqui ack
10:36 * luqui has to think about that
10:36 integral if you insert a "say 'foo2'" before the $b();  I was expecting, foo1, then foo2 and then hello
10:36 luqui I don't think you'll ever see hellp
10:36 luqui hello
10:37 integral hmm?   But $b should contain the ret continuation for calling b just before the "say 'hello'"
10:37 integral ./pugs -e 'sub a { b(&?CALLER_CONTINUATION); say "hello"; return { say "foo3" } } sub b($c) { say "foo1"; $c(&?CALLER_CONTINUATION) } my $b = a(); say "foo2"; $b()' # makes a bit more sense
10:37 luqui no, &?CALLER_CONTINUATION is the caller continuation
10:37 luqui not the current continuation
10:38 integral doh
10:38 integral err, hang on, hmm?
10:38 integral we call a(), then we call b() with the continuation that returns to where a was called, right?
10:38 luqui it represents the point just after the current sub *returns*
10:38 luqui yeah
10:38 autark-jp hm, installing perl5.8.6 did wonders.
10:39 integral so when I invoke $c in b() shouldn't it go to foo2 next?
10:39 luqui autark-jp, it worked?
10:39 autark-jp yes
10:39 luqui we should find where that dep is
10:39 luqui I think so
10:39 luqui oh
10:40 luqui right, you can see hello
10:40 * luqui 's brain gets tangled up very quickly thinking about such things
10:40 integral hm, so invoking $c in b should do what pugs is doing: jump to before the "hello" ?
10:41 luqui invoking $c I think should take you to foo2
10:41 luqui and then invoking $b should take you to hello
10:41 integral yeah, I agree.
10:43 luqui I get a "cannot cast from VBool True" error when I run this program
10:43 integral ./pugs -e 'sub a { b(&?CALLER_CONTINUATION); say "hello"; return { say "foo3" } } sub b($c) { say "foo1"; $c(&?CALLER_CONTINUATION); say "foo1b" } my $b = a(); say "foo2"; $b()' # revised version
10:44 integral It's because the second time you return from &a you need an appropiate return value again :-)
10:44 Enveigler1 has quit IRC (Read error: 110 (Connection timed out))
10:45 Aankhen`` nothingmuch, you still here?
10:45 luqui still, it doesn't look like it's working right
10:45 integral *nod*
10:46 * luqui annotates every line with a say
10:49 vcv- has joined #perl6
10:51 mugwump right, I'm out.  'night all!
10:52 luqui night
10:52 luqui it's almost like &?CALLER_CONTINUATION is thinking it's the current continuation
10:53 integral that sounds a plausible explanation
10:53 luqui I think that's what's happening
10:55 Arathorn wonder how long it'll take for someone to hack a flow-of-form-control-via-continuations module into Catalyst6 or Maypole6 (a la http://www-106.ibm.com/develop​erworks/library/j-contin.html)
10:56 luqui what is maypole again?
10:56 nothingmuch yes, i'm here
10:56 Corion Continuations have scalability problems and are interesting problems for load balancing
10:57 Corion (I still want them ;))
10:57 luqui how so?
10:57 Arathorn maypole's a MVC framework jobby which stitches Class::DBI and Template::Toolkit together for extensible DWIM CRUDdy stuff
10:57 Corion luqui: You can't pass them around in a server farm ;)
10:57 * nothingmuch considers a new hard language
10:57 luqui you can if you serialize them
10:57 Arathorn i.e. catalyst's progenitor.
10:58 nothingmuch sort of like apl, except that each operation on an element generates a continuation
10:58 nothingmuch and collecting continuations into an array again requires some weird op
10:58 nothingmuch preferrably in a remote section of the code
10:58 luqui so it would be like explicit lazy apl or something?
10:59 iblechbot has quit IRC (Read error: 54 (Connection reset by peer))
10:59 nothingmuch no, the point is to make life hard for the programmer by making all control flow jump arbitrarily through code
10:59 nothingmuch but the twist is that execution can fork
11:00 Aankhen`` nothingmuch >> In the CGI/mod_pugs example above, does prompt() call die()?
11:00 nothingmuch and has to be recollected
11:00 Aankhen`` s/die/exit/
11:00 nothingmuch Aankhen``: i have no idea
11:00 nothingmuch i don't think it does
11:00 Aankhen`` Ah.
11:00 Arathorn "to talk to the wizard, turn to page 216... to explore around the room some more, turn to page 65..."
11:00 Arathorn :)
11:00 nothingmuch but see http://search.cpan.org/perldoc?Contize
11:00 integral sub prompt($p) { print $p; print &?CALLER_CONTINUATION.perl; exit } # a possible implementation, I suppose
11:00 Aankhen`` A'right.
11:00 Aankhen`` BBL.
11:01 nothingmuch Arathorn: exactly, except you do both at the same time, and have to know by heart that page 22 is where they are explicitly collected
11:01 nothingmuch ofcourse, the catch will be that *every* operations is like this
11:01 * Arathorn grins
11:01 nothingmuch and  there are at least elements involved in each computation
11:02 nothingmuch like the grep operation will explode
11:02 Arathorn it's a bit like the Real Programer story about using the timings on the magnetic drum memory to determine flow of control
11:02 nothingmuch and each coroutine will continue to one of two collectors
11:02 integral at least they didn't design parrot like that ;-)
11:02 nothingmuch the first collector is much like /dev/null, except that you'd have to implement that manually
11:02 clkao *yawn*
11:02 nothingmuch and the second will be where your grepped data winds up
11:03 clkao is there a release coming up? so new failed test should be marked as todo right?
11:03 nothingmuch except it won't be boolean,  it need multithreaded switch statements
11:03 Arathorn http://www.cs.utah.edu/~elb/folklore/mel.html but with continuations rather than gotos :)
11:04 Arathorn or a bit like doing something in prolog with all the effects happening on the backtracking...
11:04 nothingmuch hmm, not loading
11:07 nothingmuch _asm add bp, difference
11:07 nothingmuch beautiful!
11:07 nothingmuch http://c2.com/cgi/wiki?ContinuationsInCee
11:07 nothingmuch fudging the base pointer of the stack was something I always wanted to do when I played with assembler
11:07 luqui integral, I put in a test for that bug
11:07 nothingmuch except I never found out what *really* lies at the top of the stack
11:08 integral thanks luqui++
11:09 * luqui &
11:21 broquaint Is there a way to get the same information as (caller)[3] (i.e the caller's subname) presently in pugs?
11:25 broquaint Ah, $?CALLER::SUBNAME
11:29 * castaway nudges broquaint
11:29 broquaint 'lo there, c.
11:30 vcv- has quit IRC (Read error: 145 (Connection timed out))
11:33 osfameron has joined #perl6
11:42 hugues23 has joined #perl6
11:50 hugues23 has quit IRC ("Leaving")
11:55 hugues23 has joined #perl6
11:56 Corion Hmmm. Seems like smoking now takes about 1 hour, compiling and testing ...
11:57 nothingmuch autrijus, gaal, theorbtwo: you are all co-maintainers on Test::TAP::*.. if there is something to be fixed just fix it, and try to do it with darcs so that the change can be propagated to the public repo
11:58 gaal|work nothingmuch, i'll fix the t:m dep. thanks.
11:58 nothingmuch i fixed it, read email =)
11:58 nothingmuch oh wait, i didn't mail you
11:58 nothingmuch so now you know anyway
11:59 gaal|work hah
11:59 gaal|work ok, i WON'T fix it then.
11:59 nothingmuch FINE! SUIT YOURSELF!
11:59 gaal|work FINE.
11:59 Arathorn y'all need a staggered smoke farm
11:59 nothingmuch OKAY THEN!
11:59 nothingmuch Arathorn: we do
12:00 gaal|work hey i know! i can use feather for the darcs thingamajoob.
12:00 nothingmuch want to write Test::TAP::Model::Consolidated? it takes several Test::TAP::Models and presents them as one
12:00 gaal|work me? nonono.
12:00 nothingmuch no, Arathorn
12:00 gaal|work didn't stevan have an idea of how that should work?
12:01 fordinal has joined #perl6
12:01 nothingmuch not that I recall
12:01 nothingmuch it shouldn't be too hard
12:01 gaal|work there's a visual design aspect to this
12:01 nothingmuch all you have to do is subclass the Subtest one to be able to represent a disagreement
12:01 nothingmuch and make HTMLMatrix know how to eat consolidated results too
12:05 osfameron has quit IRC ("Leaving")
12:06 broquaint has quit IRC ("lunch")
12:11 Limbic_Region has joined #perl6
12:11 Corion has quit IRC ("Chatzilla 0.9.68a [Firefox 1.0.4/20050511]")
12:20 kolibrie has joined #perl6
12:47 autark-jp hm, it seems to me that test #7 of t/operators/quoting.t should be a TODO. It seems to succeed because the eval fails.
12:47 vcv-- has quit IRC (Read error: 131 (Connection reset by peer))
13:06 Enveigler has quit IRC (Read error: 110 (Connection timed out))
13:08 luqui hmm, why does that eval fail?
13:09 vcv- has joined #perl6
13:10 luqui ahh, no support for balanced brackets
13:11 autark-jp that's how I found it, it started to fail when I implemented balanced brackets :)
13:11 luqui you did?
13:11 luqui autark-jp++
13:12 luqui have you committed?
13:12 autark-jp need to learn how to commit...
13:12 autark-jp also need someone to look at the code.
13:12 luqui are you a committer?
13:12 autark-jp no
13:12 luqui okay
13:12 luqui did you p6c it?
13:13 autark-jp p6c what?
13:13 luqui the patch
13:13 autark-jp oh, no.
13:30 Enveigler has joined #perl6
13:39 vcv- has quit IRC (Read error: 145 (Connection timed out))
13:40 theorbtwo seen autrijus
13:40 nothingmuch is there a repository of mini languages?
13:41 Limbic_Region theorbtwo - [09:13] <autark-jp> oh, no.
13:41 nothingmuch or are any of you guys a repository of mini languages?
13:41 nothingmuch i'd like a toy langauge to try and implement in haskell as an excercize
13:41 nothingmuch excercise
13:41 Limbic_Region about a half hour ago
13:41 nothingmuch Limbic_Region: autark-jp !~ autrijus
13:42 castaway try "/lastlog autrijus" love
13:43 theorbtwo Wow, that's long.
13:43 castaway umm, yeah, sorry :)
13:43 theorbtwo Anyway, the answer is 5-6 hours ago.
13:48 luqui nothingmuch, just make up your own
13:48 luqui I had an interesting idea for a language
13:48 luqui it was order-free like latin (but then, that was already done)
13:48 nothingmuch luqui: my problem is lack of need
13:48 luqui oh
13:48 nothingmuch i don't know what to do with a language
13:48 nothingmuch so i don't know what the language would want to do
13:49 luqui yeah, because perl is great for everything
13:49 luqui hmm...
13:49 luqui prolog could use an overhaul
13:49 luqui you could write a logic language with forward and backward inference
13:49 luqui and I'd use it
13:49 castaway nm, SQL has a not too large set of things it can do..
13:50 castaway (well, for a relatively simple SQL anyway.. try SQLites ?)
13:50 nothingmuch hmm
13:50 nothingmuch that's a cute idea
13:50 nothingmuch i think i'll look at examples
13:50 nothingmuch draw ideas for purpose from there
13:50 nothingmuch and see if i can do anything like that to it
13:50 iblechbot has joined #perl6
13:52 jhorwitz has joined #perl6
13:53 scook0 has quit IRC ("Leaving")
13:54 hugues23 has quit IRC ("KVIrc 3.2.0 'Realia'")
13:54 luqui has quit IRC ("Leaving")
13:55 Corion has joined #perl6
13:55 Corion ext\fp\t\functions.t exhibits a bug within Pugs - the parser has holes it seems
14:05 ninereasons has joined #perl6
14:08 hlen has quit IRC (Read error: 110 (Connection timed out))
14:11 SM_ax has quit IRC ("ChatZilla 0.9.61 [Mozilla rv:1.7.7/20050420]")
14:19 vcv-- has joined #perl6
14:24 Enveigler Is there a smoke test harness, or somewhere to send pugs make test results?
14:24 gaal|work there's no consolidation service yet, enveigler.
14:25 Limbic_Region nothingmuch - so in addition to all the other maladies - I am going blind too
14:25 Limbic_Region thanks btw
14:25 gaal|work for now, post your HTMLMatrix somwhere and put a link here
14:25 gaal|work and, if you want to work on this, a consolidation service would be very nice to have :)
14:26 kungfuftr my work colleauge is suddenly converting to the Perl6 way of thinking... and he's loving it!
14:27 Enveigler htmlmatrix?
14:27 PerlJam kungfuftr: Are you using pugs at work?  :-)
14:27 gaal|work kungfuftr++ # advocacy
14:28 gaal|work Enveigler, Test::TAP::HTMLMatrix is the module used to paint things like http://feather.perl6.nl/~gaal/smoke_xp.html
14:28 Enveigler has quit IRC (Read error: 104 (Connection reset by peer))
14:28 kungfuftr nope, just forcing him to read P6L and the synopses
14:29 kungfuftr =0)
14:30 Corion Hmmm. I get *** Pattern match failure in do expression at src/Pugs/Prim.hs:92:4-14, but don't see what could be causing that
14:30 Enveigler has joined #perl6
14:30 Corion Ah. Except maybe that there is no (VObject o) to be had. Oh well, somebody will fix that hopefully :)
14:31 Enveigler Gaal: I was kicked. Where will I find the HTMLMatrix?
14:31 PerlJam I'll be really shocked if perl6 ever starts to have converts from python
14:31 gaal|work got cpan?
14:31 Limbic_Region really kungfuftr - that's good news
14:31 Enveigler yes
14:31 Limbic_Region to be honest I abhored the p6 changes while I was reading p6.l
14:31 Limbic_Region it isn't until I started using it that I saw the light
14:32 gaal|work perl -MCPAN -e install\ Test::TAP::HTMLMatrix
14:32 gaal|work it has a few dependencies.
14:32 Limbic_Region blessed is he who has seen and believed, more blessed is he that has not seen and still believes
14:32 Enveigler Okay. Presumably the rest becomes obvious from there?
14:33 theorbtwo make smoke
14:33 gaal|work once you have that installed, you just 'make smoke'
14:34 Enveigler Okay. Thanks.
14:40 ninereasons PerlJam, shapr might count as a convert from python
14:41 PerlJam ninereasons: nah, shapr was already sane.  He has never been a "python person".  He's a "use what works" person.
14:44 gaal|roo has joined #perl6
14:45 Corion has left
14:47 pasteling "Enveigler" at 195.92.67.67 pasted "HTMLMatrix install failure." (62 lines, 3.2K) at http://sial.org/pbot/10653
14:48 Enveigler Gaal: Any clues?
14:48 gaal|roo can you try upgrading Test::More?
14:48 gaal|roo oh, i'm not sure actually that that's the problem
14:49 gaal|roo did Test::TAP::Model install correctly?
14:50 gaal|roo (it's a separate distro; should have been pulled in as a dep by CPAN.pm)
14:51 gaal|roo has left
14:51 hlen has joined #perl6
14:52 nothingmuch has quit IRC (Remote closed the connection)
14:52 pasteling "Enveigler" at 195.92.67.67 pasted "Test::TAP::Model install results." (45 lines, 2K) at http://sial.org/pbot/10654
14:52 nothingmuch has joined #perl6
14:52 gaal_ has joined #perl6
14:53 Enveigler Gaal: Seems not. (It had scrolled off the top of the screen.)
14:53 gaal_ sorry, having IRC troubles
14:53 nothingmuch Enveigler: you can try to install Module::Build
14:53 nothingmuch and use 'perl Build.PL; ./Build test'
14:54 Enveigler Will do. brb
14:57 nothingmuch i have a general hw question: someone asked me about a board for 2 cpus, and I quote "eight 184-pin .... DIMM sockets, each CPU controls 4"
14:57 nothingmuch anybody know what that means?
14:57 nothingmuch different MMUs?
14:57 nothingmuch this is a 64 bit board, btw
14:58 nothingmuch amd opetron
14:59 gaal|work has quit IRC (Read error: 110 (Connection timed out))
15:00 Arathorn nothingmuch: as i understand it it's basically NUMA
15:00 nothingmuch define: NUMA
15:00 Arathorn asking me or a bot? ;)
15:00 Arathorn non uniform memory architecture, iirc
15:01 Arathorn the SGI-pioneered multiprocessor technology
15:01 castaway National Unterwater Marine Agency
15:01 castaway :)
15:01 nothingmuch class Arathon does Google::Glossary { }
15:01 Arathorn hehe
15:01 Arathorn where each processor keeps a local cache of RAM, which is then kept coherent by a (single) funky MMU with banks of physical memory
15:01 castaway (Dirk Pitt)++
15:03 Arathorn which in the past would have allowed a SGI Origin 2000 with 16 R10000 processors, for instance, each with 4MB of ~L3 NUMA cache, to talk to a bunch of discrete memory bricks, each with their own MMU?
15:03 Arathorn gah, my SGI lore is rusty
15:03 Arathorn but I believe the AMD Hypertransport thing that duallie Opterons use is of the same ilk.
15:03 Arathorn x86-64.org is the canonical site, iirc.
15:03 nothingmuch does that mean that overall (memory/CPUS) is the maximum limit for VSIZE?
15:03 Arathorn shouldn't be
15:03 pasteling "Enveigler" at 195.92.67.67 pasted "Build test for Test-TAP-Model-0.03" (22 lines, 1.1K) at http://sial.org/pbot/10655
15:04 Enveigler Does that help?
15:04 gaal_ yes, upgrade Test::More
15:04 Arathorn but dunno for certain - our opterons are duallie capable but only have one proc
15:05 gaal_ or wait a few hours for your cpan mirror to get nothingmuch++ 's newer vesion of the module, which explicityl requires it
15:05 Enveigler I'll upgrade
15:05 nothingmuch Enveigler: sorry for that ;-)
15:07 Enveigler No sweat.
15:07 gaal_ someone with a wiki near them should write this all up :) pugs.kwiki.org
15:08 * nothingmuch plays on blead perl
15:08 nothingmuch i needed it once
15:08 nothingmuch and i keep being too lazy to downgrade to 5.8
15:08 nothingmuch what's worse, it's an old bleadperl
15:08 gaal_ congealedperl?
15:09 * castaway laughs
15:09 nothingmuch nothingmuch.vocabulary += gaal_.vocabulary
15:10 nothingmuch (don't worry, i found out what it means)
15:10 gaal_ ôøì÷åù
15:10 gaal_ only with another ø
15:11 gaal_ i built a perl recently.
15:11 madhouse has joined #perl6
15:11 gaal_ last time i did it with any attention was on a sparc4
15:11 gaal_ so i was immensely pleased that it now takes under four minutes :)
15:12 Arathorn last time I built a perl was on a SS2 (netbsd 1.4) :)
15:12 Arathorn i seem to remember that it took about 4 hours..
15:13 * Limbic_Region recently built perl and knows that it took far longer than 4 minutes
15:13 gaal_ well, Arathorn, it took me more than four hours to download the dev kit necessary for those four minutes ;-)
15:13 Arathorn hehe
15:13 gaal_ l~r, i was using a pretty fast box. and microsoft's compiler, which is fast.
15:14 vcv- has joined #perl6
15:16 Limbic_Region gaal_ - I have only built perl under Cygwin and mingw
15:17 * Limbic_Region hasn't tried gcc 4.0 but he hopes it is faster than the previous versions :-(
15:18 Shachaf has joined #perl6
15:18 castaway (hmm, I dont remember it taking that long last I did it, and mines a PII/350)
15:20 Enveigler Smoke running.
15:28 nothingmuch my builds of perl on moderate hw
15:28 nothingmuch when was a heavy CPAN toker
15:28 nothingmuch were about 10 minutes, i thinj
15:28 * nothingmuch wrote an industrial strengh bong in bourne shell
15:28 nothingmuch blead + stable perl
15:28 nothingmuch threaded, non threaded
15:28 nothingmuch 5.6, and 5.005_03
15:29 nothingmuch all smoked latest CPAN once an hour
15:29 nothingmuch CPANPLUS was not reliable enough though
15:29 nothingmuch false positive rate was about 2-3 per dayh
15:32 nothingmuch clkao: ping
15:34 Limbic_Region hmmm - perhaps I lumped configure make and make test all into the same time bucket - *shrug*
15:34 fordinal has quit IRC ("Konversation terminated!")
15:38 saorge has joined #perl6
15:41 Enveigler Gaal: Is a high failure rate expected?
15:42 gaal_ are you perhaps on windows? the failing tests in t/rules/ ?
15:42 gaal_ or any other platrform w/o parrot
15:43 pasteling "tag" at 208.152.32.185 pasted "dude." (53 lines, 1.3K) at http://sial.org/pbot/10658
15:44 pasteling "Enveigler" at 195.92.67.67 pasted "Smoke results so far" (90 lines, 4.2K) at http://sial.org/pbot/10660
15:45 Enveigler Yes to Windows. I have parrot, but I think I didn't set the right env vars before building it it. I'll fix that next time
15:45 gaal_ Enveigler, these mostly look like crashes. without interrupting your running smoke, you can start looking at where the crash happens in a new command window:
15:46 gaal_ set HARNESS_PERL=pugs.exe
15:46 gaal_ set PERL6LIB=blib6/lib
15:46 gaal_ prove -vl ext\Perl-MetaModel\t\12_Perl_Meta_Class_methods.t
15:47 Enveigler I don;t have "prove"... gotta link?
15:47 gaal_ oh, in this case you also want ext\Perl-MEtaModel\lib in your PERL6LIB
15:47 gaal_ you should have it if you installed Test::Harness....
15:47 Enveigler Oh. Okay.
15:48 gaal_ but note that these are all ext\ , not pugs itself
15:48 gaal_ by now i bet your smoke has entered t\
15:48 gaal_ where you'll see fewer failtures
15:48 Enveigler Nope. It seems to be stuck on ext\Set\t\overload.t
15:49 gaal_ hmm, someone mentioned that may be looping
15:49 gaal_ if you want to punt on a complete smoke, you can do a manual run of t/ only.
15:49 gaal_ 1. set the env manually as above
15:51 gaal_ 2. util/yaml_harness.pl --exclude=/^ext/
15:51 gaal_ 3. util/testgraph.pl  > smoke_no_ext.html
15:52 gaal_ look at what util/run-smoke.pl does, it's basically these three steps
15:52 gaal_ you may want to start looking actually at the ''make smoke' target.
15:52 gaal_ brb
15:54 Enveigler overload.t was looping I had to kill pugs.exe
15:56 gaal_ add a skip and commit it?
15:56 gaal_ i have to go now
15:56 gaal_ back in ~1.5h
15:56 gaal_ see ya &
15:57 Enveigler okay.
15:57 gaal_ before the skip put in a 'fail("loops")'
15:58 gaal_ has quit IRC ("Trillian (http://www.ceruleanstudios.com")
16:04 meppl has joined #perl6
16:14 nothingmuch has quit IRC ()
16:16 justatheory has joined #perl6
16:20 ]Anjo[ has joined #perl6
16:20 ]Anjo[ Hi everyone.
16:21 theorbtwo Hi, ]Anjo[.
16:21 * theorbtwo wonders if svnbot is missing.
16:21 theorbtwo s/missing/wedged/
16:21 ]Anjo[ How can I compare to dates to see what is earlier?
16:21 ]Anjo[ My actual date is in the format DD/MM/YYYY HH:MM:SS.
16:22 theorbtwo ]Anjo[: Are you using pugs?
16:23 ]Anjo[ theorbtwo: Sorry, but what is a pug?
16:23 theorbtwo ]Anjo[: I take that as a no.  You want #perl, not #perl6.
16:24 ]Anjo[ It's pretty hard to find help there.
16:24 ]Anjo[ :\
16:24 ]Anjo[ I'm using the version 5.8.6 of ActivePerl.
16:24 integral hhmm, doesn't look like you've been in #perl :-/
16:25 theorbtwo ]Anjo[: Then try perlmonks.org.
16:29 Enveigler1 has joined #perl6
16:44 Ovid has joined #perl6
16:50 Enveigler has quit IRC (Read error: 110 (Connection timed out))
16:50 wolverian hmm, uc() doesn't take $_ by default?
16:50 wolverian oh, .uc :)
16:51 ]Anjo[ has left
16:51 wolverian I can't type » on feather. the cursor jumps backwards one word instead.
16:52 vcv- has quit IRC (Read error: 145 (Connection timed out))
16:53 theorbtwo wolverian: Type it where?
16:54 theorbtwo If you mean in something that uses readline (including bash and pugs), in .inputrc, "set convert-meta off".
16:54 wolverian ah. thanks!
16:55 theorbtwo Add it to docs/quickref/unicode?
16:55 wolverian weird, though. it works fine locally with convert-meta on
16:55 theorbtwo Hm, that is odd.
16:55 theorbtwo Never worked for me with convert-meta on.
16:56 wolverian okay, works now. thanks!
16:56 wolverian hmm.
16:56 wolverian except now ^W deletes one character too many.
16:56 wolverian I can erase the bash prompt. :)
16:57 wolverian weird. in pugs, "»".ord is 187; in perl5 it's 194
16:59 integral it would appear that perl5 is wrong =)
17:00 wolverian vim agrees with you
17:00 wolverian okay, perl5 does as well, with -Mutf8
17:01 integral ah, so c2 must be » in latin-1
17:01 wolverian does » work in pugs?
17:01 theorbtwo Unicode and latin-1 agree in the first 255 codepoints.
17:02 wolverian unexpected "\187"
17:02 integral hmm!
17:02 theorbtwo What you are seeing is the first byte of the utf8 encoding.
17:02 theorbtwo ...I suspect.
17:02 integral ah, yeah, perl5, which quietly ignores LANG=en_GB.utf-8
17:02 wolverian integral: -Mlocale? :)
17:02 clkao no?
17:03 theorbtwo -Mopen=some stuff
17:03 integral bah, work out the box dammit.
17:04 theorbtwo It did for a while, then people started getting confused when their binary files were suddenly not like they expected them to be.
17:05 wolverian yes. legacy support :(
17:05 integral obviously more people should use windows =)
17:06 wolverian okay. so postfix » does not work
17:06 theorbtwo The correct answer is that if you want binary, you should have used binmode, silly.
17:06 wolverian should look at the tests before trying
17:08 theorbtwo has quit IRC ("moving drives")
17:12 gaal er, no.
17:13 gaal Prelude's open has ":layer<:raw>"
17:13 gaal rehi.
17:15 kolibrie has quit IRC ("leaving")
17:15 geoffb has joined #perl6
17:18 pasteling has quit IRC (Remote closed the connection)
17:20 mj has joined #perl6
17:21 zeromode has quit IRC (Read error: 60 (Operation timed out))
17:23 clkao ?eval { ((uc($^a) ~ " ") x (70/(1+$^a.chars))) ~ "COME TO ME"}.('autrijus')
17:23 evalbot6 Error:  unexpected ( expecting expression
17:24 gaal clkao, you should submit a SummoningPrelude. :-)
17:24 clkao ?eval my $x = { ((uc($^a) ~ " ") x (70/(1+$^a.chars))) ~ "COME TO ME"}; say $x.("autrijus")
17:24 evalbot6 Error:  unexpected ( expecting expression
17:24 clkao ya.. :)
17:25 SamB that is an odd thing to say...
17:25 gaal except that you need to hack it so that it does get loaded in unsafe mode, unlike the standard prelude.
17:25 clkao ?eval my $x = { ((uc($^a)~" ")x(70/(1+$^a.chars)))~"COME TO ME"};$x.("autrijus")
17:25 evalbot6 Error:  unexpected ( expecting expression
17:29 simcop2387 has joined #perl6
17:31 geoffb While I wait for pugs to build on this ancient machine, a question:
17:31 Enveigler has joined #perl6
17:32 geoffb I can't seem to get hs-plugins to compile on my Debian Sarge box.  Not being lambdafolk, I don't really know what's wrong, except that it seems to be looking for a Haskell package I don't have.
17:32 geoffb Checking for exact error message:
17:32 gaal there were a few broken versions, geoffb, though i can't say which ones are known good.
17:33 geoffb make[2]: Entering directory `/home/geoff/darcs/hs-plugins/src/plugins'
17:33 geoffb Rebuilding dependencies ... Could not find module `Language.Haskell.Hsx':
17:33 geoffb Hmmm.  I first tried the latest tarball, and that exploded fairly early in the build with a syntax error,
17:33 geoffb so then I pulled the darcs version, and it gets farther but dies with the above error.
17:36 geoffb gaal, did you get it working on your system?
17:37 lumi geoffb: Did you read the readme?
17:37 gaal no: i used to, with a very old version, but then when the required ver changed, it stopped working and i didn't have tuits to see why.
17:37 geoffb lumi, for hs-plugins?  Yes.
17:38 lumi So you have HSX installed?
17:38 lumi And registered, I think it needs to be
17:38 * geoffb smacks his forehead
17:38 geoffb Man, I looked right AT IT AND MISSED THAT LINE
17:38 geoffb sigh
17:39 geoffb I think I went "GHC > 6.2, check. GNU make, check.  *eyes cross*  *eyes uncross*  Readline, check . . . ."
17:40 lumi Hehe
17:41 ninereasons ?eval my $x = -> $a { ((uc($a) ~ " ") x (70/(1+$a.chars))) ~ "TEST"}; say $x.("autrijus")
17:41 evalbot6 Error: No compatible subroutine found: "&say"
17:42 geoffb You know, the nice thing about pugs is that its serving as an excuse to learn a lot of things unrelated to Perl . . . :-)
17:42 ninereasons ?eval my $x = -> $a { return ((uc($a) ~ " ") x (70/(1+$a.chars))) ~ "TEST"};  $x.("autrijus")
17:42 evalbot6 Error: cannot return() outside a subroutine
17:43 ninereasons ?eval my &x = -> $a {  ((uc($a) ~ " ") x (70/(1+$a.chars))) ~ "TEST"};  &x.("autrijus")
17:43 evalbot6 'AUTRIJUS AUTRIJUS AUTRIJUS AUTRIJUS AUTRIJUS AUTRIJUS AUTRIJUS TEST'
17:43 ninereasons ?eval my &x = -> $a {  ((uc($a) ~ " ") x (70/(1+$a.chars))) ~ "TEST"};  &x("autrijus")
17:43 evalbot6 'AUTRIJUS AUTRIJUS AUTRIJUS AUTRIJUS AUTRIJUS AUTRIJUS AUTRIJUS TEST'
17:44 ninereasons ?eval my &x = { ((uc($^a) ~ " ") x (70/(1+$^a.chars))) ~ "TEST"}; say &x("autrijus")
17:44 evalbot6 Error:  unexpected ( expecting expression
17:44 revdiablo it would be neat if we could define functions, and evalbot saved them for the next invocation
17:44 ninereasons yes, the closest thing is to teach perlbot to invoke something learned
17:45 ninereasons perlbot metacommit?
17:45 perlbot ?eval  my &summon = sub { return "#Summoning metacommitters:\n any("~uc( @^metacommitters )~ ").come_to_me";}; summon <autrijus bestian hcchien iblech jesse nothingmuch Stevan theorbtwo>
17:45 evalbot6 Error:  unexpected "\"" expecting block construct, term, ":", term postfix, operator, postfix conditional, postfix loop, postfix iteration, ";" or "}"
17:45 Enveigler1 has quit IRC (Read error: 110 (Connection timed out))
17:45 ninereasons mislearned :-)
17:48 Khisanth heh
17:48 ninereasons perlbot metacommit?
17:48 perlbot ?eval  my &summon = sub { return "#Summoning metacommitters: any(" ~ uc( @^metacommitters ) ~ ").come_to_me";) summon <autrijus bestian hcchien iblech jesse nothingmuch Stevan theorbtwo>
17:48 evalbot6 Error:  unexpected "\"" expecting block construct, term, ":", term postfix, operator, postfix conditional, postfix loop, postfix iteration, ";" or "}"
17:48 ninereasons :-(
17:49 Khisanth what is @^metacomitters? mainly the ^
17:49 geoffb It would be nice if it reported which quote it thought was bad . . .
17:49 PerlJam Khisanth: $^foo is an implicit parameter.
17:50 PerlJam Khisanth: @^foo too
17:50 ninereasons It doesn't seem to like implicit parameters
17:50 Khisanth PerlJam: I know but didn't know how to apply that to arrays, nothing obvious popped up
17:50 ninereasons I think it would work in pugs.  a sec
17:51 Khisanth ninereasons: aren't you missing the } for the sub {?
17:51 ninereasons perlbot metacommit?
17:51 perlbot ?eval  my &summon = sub { return "#Summoning metacommitters: any(" ~ uc( @^metacommitters ) ~ ").come_to_me";} summon <autrijus bestian hcchien iblech jesse nothingmuch Stevan theorbtwo>
17:51 evalbot6 Error:  unexpected "\"" expecting block construct, term, ":", term postfix, operator, postfix conditional, postfix loop, postfix iteration, ";" or "}"
17:53 Khisanth ; after the }?
17:57 mauke has left
17:58 geoffb WOW, no wonder pugs is taking forever to compile -- ghc-6.4 wants more RAM than I have in this box.
17:58 geoffb Lets try that unoptimized *cough* *cough*
17:59 Khisanth heh building pugs here pushes everything into swap
17:59 Khisanth that reminds me ...
18:09 gaal anyone know if we have flight plans for tonight?
18:28 geoffb make test + ancient hardware = Jeopardy! theme
18:28 Khisanth how ancient?
18:29 Khisanth seems to be mainly a memory issue
18:29 vcv has joined #perl6
18:29 * integral reckons on 8 hours on a 600MHz 64MB box
18:30 geoffb Dual PII - 400
18:31 geoffb integral, *cough*
18:31 geoffb Ouch
18:31 integral it's the memory that's the killer, it only took about 200 minutes on a 500MHz 1024MB box
18:32 geoffb Khisanth, the original build was heavily mem-bound (hell, ld wanted 129 MB, and I haven't even enabled Parrot embedding)
18:32 geoffb during the pure testing, it doesn't seem to be thrashing.
18:33 geoffb a couple swapped pages per minute
18:33 * Khisanth doesn't do testing
18:33 integral the trick is to just commit anyway and let someone else spot that there's a bug ;-)
18:34 * geoffb chuckles
18:35 geoffb One wonders how often autrijus does a full make test, rather than just for the todo he's working on.  I'm having a hard time extrapolating this make test time even to bleading edge hardware and still supporting his commit rate
18:35 gaal it actually was much faster two weeks ago
18:35 saorge has quit IRC ("Leaving")
18:36 geoffb gaal, what changed?
18:36 gaal one one machine i almost got to a two minute smoke
18:36 gaal lots and lots and lots of tests were added
18:36 gaal and rules support
18:36 gaal (two minutes sans build)
18:37 gaal we have over 7k tests now(!); it was around 4k when it was fast.
18:37 Khisanth "if make test finishes in 2 minutes then we need more tests!" :)
18:38 geoffb I'd be happy with 20 minutes . . . .
18:38 gaal make test never finished in 2 minutes :) make smoke is potentially faster (supports concurrency)
18:39 Khisanth ~33minutes to build :)
18:39 gaal fwiw, the fast smoke was ~135 sec on a dual xeon 2.8GHz w/1GB RAM
18:39 Khisanth on 750MHz with 256MB
18:40 gaal and when i tried putting it on a ramdisk there was no noticable speedup, it's all cpu bound.
18:40 Khisanth hrm
18:40 Khisanth readline seems to have broke
18:40 gaal so's the pugs build, certainly if you make optimized.
18:41 gaal a parallel ghc build would be nice to have.
18:41 Khisanth ok apparently it doesn't like having stuff pasted
18:41 geoffb gaal, yeah, it's only taking a few % of the system RAM (~14 of 192 MB), but one CPU is pegged
18:42 geoffb (for make test)
18:42 gaal you have more than one? then use the yaml harness and use -j 2
18:42 gaal or 3
18:42 Aankhen`` Are you supposed to use -j 2 for Intel HT CPUs?
18:43 geoffb yaml harness?
18:43 gaal it helps on my box, aanken. not a lot, but some.
18:43 geoffb (YAML, I grok)
18:43 gaal geoffb, 'make smoke' instead of 'make test'
18:43 Khisanth interactive pugs not working very well with mutiple lines of input...
18:43 geoffb OK, will try
18:44 gaal what platfomr are you on, before you do?
18:44 gaal works well on unix, less so on win
18:44 gaal though it does workforme
18:45 geoffb $ uname -a
18:45 geoffb Linux zuma 2.4.27-2-686-smp #1 SMP Thu Jan 20 11:02:39 JST 2005 i686 GNU/Linux
18:45 geoffb How to make X unresponsive, in 1 easy step
18:45 geoffb phew
18:45 geoffb right, seem to need Test::TAP::stuff
18:45 gaal k, then please backlog earlier today re: instructions on installing Test::TAP::HTMLMatrix
18:45 geoffb heh
18:45 gaal :)
18:46 gaal also please put it on pugs.kwiki.org
18:47 Aankhen`` Do continuations work in Pugs?  Are there any working examples?
18:48 gaal there was some talk about that too, earlier today
18:48 integral luqui and I identified a bug with them
18:48 Aankhen`` Oh yeah, I was there. :-o
18:48 * Aankhen`` slaps himself.
18:48 Aankhen`` That's what lead me to reading up on them in the first place...
18:48 Aankhen`` Now I remember why I had that tab open in Firefox. :-P
18:49 gaal circular curiosity
18:49 Aankhen`` integral >> Anything I could understand?
18:49 integral Just that &?CURRENT_CONTINUATION seemed to return a value that always invoked the current continuation at the time of being invoked, rather than saving the continuation
18:49 Aankhen`` Apparently not. :-(
18:50 gaal oh man! Set/overload.t is still looping! :(
18:50 gaal there goes that smoke.
18:59 gaal r4274 - skipped loopy test
19:01 madhouse has quit IRC ()
19:04 Enveigler Sorry Gaal I don;t have commit.
19:05 gaal no worries :) we should get you one.
19:06 * gaal looks for a metacommitter
19:06 Enveigler I've gotta pretty graph from the smoke if you want it?
19:06 Southen[a] has joined #perl6
19:06 gaal sure, post the url here
19:07 Enveigler I don't have anywhere to post it. I could email it?
19:07 gaal sure, but please gzip first :)
19:08 Enveigler will do...addy?
19:08 gaal ./pugs -e 'print <gaal>; print <@>; print <forum2.org>'
19:10 vitaminmoo has quit IRC ("brb")
19:10 Enveigler I send it along later... Got go for a while.
19:11 gaal Thanks.
19:11 Enveigler has quit IRC ()
19:14 gaal beh, tireditude caught up. see y'all tomorrow.
19:14 geoffb cya
19:14 * gaal zzzZZ &
19:19 justatheory has quit IRC (sterling.freenode.net irc.freenode.net)
19:19 perlbot has quit IRC (sterling.freenode.net irc.freenode.net)
19:19 Qiang has quit IRC (sterling.freenode.net irc.freenode.net)
19:19 sri_ has quit IRC (sterling.freenode.net irc.freenode.net)
19:19 cookys has quit IRC (sterling.freenode.net irc.freenode.net)
19:19 tcliou has quit IRC (sterling.freenode.net irc.freenode.net)
19:19 kelan has quit IRC (sterling.freenode.net irc.freenode.net)
19:19 amahabal has quit IRC (sterling.freenode.net irc.freenode.net)
19:19 clkao has quit IRC (sterling.freenode.net irc.freenode.net)
19:19 autark-jp has quit IRC (sterling.freenode.net irc.freenode.net)
19:19 Juerd has quit IRC (sterling.freenode.net irc.freenode.net)
19:19 jiing has quit IRC (sterling.freenode.net irc.freenode.net)
19:24 Southen has quit IRC (Connection timed out)
19:25 perlbot has joined #perl6
19:25 Qiang has joined #perl6
19:25 sri_ has joined #perl6
19:25 cookys has joined #perl6
19:25 tcliou has joined #perl6
19:25 kelan has joined #perl6
19:25 clkao has joined #perl6
19:25 Juerd has joined #perl6
19:25 autark-jp has joined #perl6
19:25 jiing has joined #perl6
19:25 amahabal has joined #perl6
19:36 dada has quit IRC ("Schneeschlag")
19:37 vitaminmoo has joined #perl6
19:40 Limbic_Region autrijus must be busy - no journal since the 30th
19:49 ramzi has joined #perl6
19:55 SamB has quit IRC (Read error: 131 (Connection reset by peer))
19:58 Boogie has joined #perl6
20:03 ninereasons has quit IRC ("busy day")
20:10 pjcj has quit IRC (Remote closed the connection)
20:10 pjcj has joined #perl6
20:16 SamB has joined #perl6
20:19 jhorwitz has quit IRC ("Chatzilla 0.9.67 [Firefox 1.0.4/20050511]")
20:23 q[merlyn] has joined #perl6
20:23 q[merlyn] fglock is doing a perl6 talk at YAPC Brazil
20:23 q[merlyn] I'm sitting in here.  If I knew how to stream this, I would. :)
20:24 q[merlyn] qual o promebla que Perl 6 Resolve? :)
20:24 * Odin-LAP skilur ekki portúgölsku.
20:25 Odin-LAP (Meaning: I don't understand portuguese. Or, for that matter, spanish.)
20:31 ero anyone know approx build times on a g4? i'm on a dual 500, 1G.  maybe i should go get some lunch...
20:32 Limbic_Region has quit IRC ("tiuq\")
20:32 eric256 has joined #perl6
20:33 q[merlyn] ugh
20:33 ero and then dinner
20:33 q[merlyn] so 6 != ( 4 & 5 ) is true?
20:34 q[merlyn] not the same as not ( 6 == 4 & 5 )
20:34 q[merlyn] (which would be false)
20:36 q[merlyn] Man... I gotta work to get my head around this
20:38 eric256 why aren't they the same?
20:39 eric256 i get the answer you expect for all
20:39 eric256 !eval 6 != (4 & 5)
20:39 eric256 @eval 1
20:39 eric256 where is eval bot when you need him
20:39 eric256 pugs> 6 != ( 4 & 5 )
20:39 eric256 (bool::true)
20:39 eric256 pugs> not (6 == ( 4 & 5 ))
20:39 eric256 bool::true
20:40 Shillo has joined #perl6
20:40 Shillo Hullo, all!
20:40 wolverian ?eval 6 != ( 4 & 5 )
20:40 evalbot6 (bool::true)
20:40 wolverian (for eric256)
20:40 eric256 ?eval not ( 6 == 4 & 5)
20:40 evalbot6 bool::true
20:41 * eric256 waits for merlyn to return
20:41 * Shillo eyes evalbot6.
20:41 Shillo Is that thing secure? :)
20:41 eric256 yes
20:42 Shillo Cool! :) BSD jail or expression policing?
20:42 integral pugs' safe mode :-)
20:42 * Shillo oooooooooohs!
20:43 Juerd Shillo: That depends on your definition of security.
20:43 Juerd I wonder, for example, whether its limited on memory use :)
20:43 Shillo *grin*
20:43 Juerd ("foo" xx 9e10)
20:43 Shillo Or **1..Inf
20:44 integral it's got resource limits too :-)
20:44 Juerd Pugs doesn't do that yet, Shillo
20:44 Juerd integral: Good
20:44 Shillo Juerd: Theoretically speaking. :)
20:44 Juerd So I can just do this? Fun!
20:44 integral see examples/network/evalbot/
20:44 * Shillo edges away from Juerd...
20:45 Juerd ?eval ("foo" xx 9e10); undef;
20:45 evalbot6 undef
20:45 Juerd Hm :)
20:45 Juerd ?eval ("foo" xx 9e10);
20:45 evalbot6 pugs: out of memory (requested 1048576 bytes)
20:45 Juerd Nice.
20:46 * Shillo claps!
20:46 Juerd Now, why did the former just return undef? :)
20:46 Juerd I thought pugs had no optimizations yet? :)
20:46 integral 'tis probably the evil of Haskell ;-)
20:47 Shillo ?eval 1/0
20:47 evalbot6 Error: Illegal division by zero
20:47 Shillo ?eval 1/0; 5;
20:47 evalbot6 Error: Illegal division by zero
20:47 Shillo I think out of memory is unthown exception?
20:48 Shillo Unthrown
20:48 integral ah, _that_'d be smart
20:49 Shillo I think it'd be wrong thing to do, but I wondered if it explains it. :)
20:50 Boogie has quit IRC (Read error: 110 (Connection timed out))
20:53 * eric256 considers starting a Perl6::Util box of trix for arrays...so you could do things like @list.shuffle; or @list.combinations, @list.powerset .. ;)
20:58 Shillo I still wonder what a powerset is. :p
20:59 eric256 every possilbe combination of the items in a set for everything length of up to the lenght of the original set? something like that.  its what i think of when i here combinations..but someone told me (and i'm not sure i buy it) that a set of combinations is normaly all combinations of a certain length.  blah. ;)
20:59 japhy that
20:59 japhy that's the powerset
21:00 eric256 either way most common questions about arrays are, how do i shuffle it, how do i get combinations, how do i get permutations...so it would be cool if they were included..but then we might be leaning the way of PHP which is just bad. ;)  
21:01 Shillo Why? STL has that stuff, and that's C++. :)
21:01 Shillo (most of it, at least)
21:01 eric256 yea STL always scared me too. but then i always have fun writing that stuff. ;)
21:02 Shillo eric256: I kinda got used to it, actually. Well, did lots of stuff in C++, so I had to.
21:02 eric256 i wrote my own hash class in C++ (for a script language i wrote) and then like five days later found out about STL lol.
21:02 Shillo eric256: *grin* Have you figured what type traits structs are for?
21:03 Shillo eric256: /That's/ the cool bit.
21:04 eric256 i wrote a hash, which required a linked list, (hand coded both - simple enough) then realized i had this nice hash table in the background to handle the script, why not let the script use it, then my scripts had hashes...then i found perl (first language i've ever seen with hashes built in.) and loved it. it was exactly what i was trying to make why my little language ;)
21:04 eric256 no traits still have me confused
21:05 Shillo Basically, if you have vector<string> a, b; ....; a = b; it'll call string operator= for each element of b.
21:05 eric256 not so much confused as i'm just used to perl as is, so all these bells and whistles throw me off some.
21:05 Shillo But if a and b are vector<int>, STL will actually call memcpy in most implementations.
21:05 eric256 we talking C or perl now? i got lost
21:06 Shillo STL, in C++
21:06 Shillo STL is smart enough to know when it should do for (i = 0; i < ...; i++) a[i] = b[i] and when it can just do memcpy(something)
21:07 eric256 ahh yes. the macro/overloading type handling it does is pretty cool, this was years ago i played with it though, never touched C++ agian...no use for it in my job and its such an ugly (in a beatifull kind of way) language. lol
21:07 Shillo And it doesn't rely on compiler's optimizer to do this.
21:07 Shillo Yeah. :)
21:07 Shillo Ugly and evil, but can be fun.
21:07 Shillo I actually tried to work with Monads in C++.
21:07 Shillo Had fun watching gcc blow up to 500 megs just compiling a small example.
21:08 eric256 yea when i finished my script language and had like 15 files and like 5k of code it was cool. then i looked at it a few years later and was like "i could do that in half the code" ;)
21:08 geoffb Shillo: yes, evil is what came to mind when I read what you said STL optimizes internally.  EWWWw.
21:08 Shillo geoffb: They trick is -how- it does it.
21:08 geoffb Summary?
21:08 eric256 c++ was light years ahead of perl in classes until just recently though so this will be fun
21:08 Shillo You can use the same mechanism to define string class that has case-insensitive comparisons.
21:08 elmex has quit IRC ("leaving")
21:09 Shillo You override stuff on char, not string.
21:09 Shillo Oh, you do template<T> struct type_traits { stuff; }
21:09 Shillo Then you specialise: template<> struct type_traits<int> { stuff optimised for ints }
21:10 geoffb So it's got specialized versions for some large percentage of "common cases"?
21:10 Shillo Templates are actually programmable. You can do some *VERY* nasty tricks to actually introspect the types.
21:10 Shillo In particular, you can query a class for the existence of a constructor and specialise on that.
21:11 mj has quit IRC (Read error: 54 (Connection reset by peer))
21:11 geoffb See, for a compiled language, that's just deeply wrong.
21:11 Shillo geoffb: Well... depends.
21:11 * geoffb tosses another entry on the "Why C++ gives me the heebie-jeebies" list
21:12 Shillo geoffb: I've seen implementation of ML (pure-functional language that looks a lot like Haskell, except that it's eager) in templates, to be used compile-time
21:12 * geoffb actually physically shivers.
21:12 Shillo And yes, you're right to be scared. :)
21:13 G2 has joined #perl6
21:13 geoffb In my mind, if you want C, use it.  If you want Haskell, use that.  Don't try to make C(++) into Haskell
21:13 Shillo Frankly, C++ is nice for its libraries. And the compile times pretty much negate the advantage.
21:13 Shillo geoffb: C++ templates -are- pretty close to Haskell.
21:14 Shillo So C++ is runtime-assembler and compile-time Haskell.
21:14 Shillo -That-'s what's scary.
21:14 geoffb I recall some time ago thinking "If C had a decent default set of data structure and algorithm libraries standardizes, I wonder if C++ would have happened?"
21:14 geoffb Shillo, yikes.
21:14 Shillo geoffb: Look at D.
21:14 Shillo My guess is no.
21:15 Shillo You find that out 5 seconds after typing make on a mid-sized program in D.
21:15 Shillo Actually, <1 second after typing make. Usually. ;)
21:16 Aankhen`` G'night.
21:16 Aankhen`` has quit IRC ("Experiments should be reproducible -- they should all fail the same way [Time wasted online: 13hrs 34mins 45secs]")
21:16 Corion has joined #perl6
21:16 geoffb And in my raw C work, I was damn glad when some open source data structure libs came around.  glib, ferinstance.  With that I could have more convincingly told my Compilers prof to take a flying leap when he insisted on teaching the class in Common Lisp "because C doesn't have decent list libs"
21:16 * geoffb googles D
21:16 Shillo *grin* Hey, no dissing my favorite language. ;)
21:16 Shillo Good luck googling 'D'. ;)
21:16 Corion . o O (By nature, C can't have decent lists)
21:17 Shillo Corion: Well, the reason is still lame. There are plenty other reasons to teach in Common LISP.
21:17 * eric256 is amused to see that his code is still the only scripting language released on planetsourcecode after three years... lol.okay so i'm a dork but at least i know it
21:18 Corion Are we moving towards a release?
21:19 geoffb http://www.digitalmars.com/d/comparison.html
21:19 Shillo eric256: Well, one thing that attracted me to perl6 is that it's the first non-Common LISP language to try an actual feature parity with Common LISP.
21:19 geoffb Velly intellesting
21:19 Shillo geoffb: Pity it's a one (small) company project.
21:19 Corion Shillo: I think that most of Common Lisp is in Perl5 already
21:19 geoffb I googled for "D Programming Language" . . . hit the lucky
21:20 Shillo Corion: 'Most' of Common LISP are defmacro and CLOS. Neiter is in perl5.
21:20 Corion Shillo: Ah, macros, true :)
21:20 Shillo Corion: But perl6 macros are getting there. And perl6 object system is actually surprisingly similar to CLOS. :)
21:20 Corion CLOS would need to be implemented in Perl (yet nobody wants that ;) )
21:21 Shillo Well, I've seen CLOS implemented in Emacs LISP. That was scary.
21:21 Corion Yeah - I wonder what people will do with multimethod dispatch :)
21:22 Shillo Heh, there's plenty of theory on how it should be done.
21:23 Shillo Or rather, a number of caching algorithms that seem to work well. And also a large body of LISP code for statistics
21:23 Shillo (I believe they measured that about 99% of CLOS method calls are single dispatch, and can be handled that way)
21:23 Shillo And of that, a large portion doesn't need any dispatch at all.
21:24 geoffb I read something recently in which the author (Paul Graham?) wondered whether people who disliked LISP could actually be stuck on the visual representation, but he thought it unlikely.  Well, I happen to be one of those people.  I actually think some of the *concepts* are good -- I just am very visual about my code, and the look just kills me.
21:24 Corion geoffb: Look at Python then. I also hear that Haskell is considered nice.
21:24 geoffb I swore off lispish languages after being force-fed them in college.  Sure makes learning Emacs a pain . . .
21:25 Shillo geoffb: I believe somebody came  up with a theory that more adequately explains LISP lack of popularity. It's used for teaching... :)
21:25 Corion geoffb: Or write yourself a small read-eval loop and come up with your own syntax. Like every good Lisp programmer ;)
21:25 geoffb Corion, I am deeply into controlling my whitespace.  I would have serious words when the interpreter didn't like my reindentation.  :-)
21:25 Shillo Corion: Eh. I start the day with (defmacro defclass (...) my extensions to CLOS)
21:25 Corion Shillo: Any language used for teaching traumatizes the teached :)
21:26 Shillo Corion: Exactly!
21:26 geoffb Shillo, heh.  Sorta like Catholic school is the biggest producer of Atheists?
21:26 Shillo geoffb: Or even catholic religious classes.
21:26 Shillo geoffb: Count me among de-converted. ;)
21:26 Corion I do the same when programming in JavaScript. Object.method = function(name,code) { ... } // :))
21:26 * geoffb chuckles
21:27 eric256 maybe thats why my teacher used pascal...no one ever misses not having pascal in the real world
21:27 iblechbot has quit IRC (Connection timed out)
21:27 geoffb eric256, NODNODNOD
21:27 Shillo eric256: *grin* I graduated on Pascal and FORTRAN. :)
21:27 Corion Ah - I mostly started programming in Pascal and it's a good language. But it's a compiled language :)
21:28 geoffb I was looking into trying to get a teaching cert to teach comp sci to high schoolers . . . but then I realized it would be about two decades before the school boards allowed you to teach a nice language.  Sigh.
21:28 Shillo Corion: Buh, so's LISP. :)
21:28 Corion Shillo: Yeah, but Lisp has (EVAL ...), which Pascal lacks ;)
21:28 Shillo Corion: It's just that my favorite Common LISP turns REPL straight into machine code... /That/ blew me away.
21:29 Shillo Corion: I like abusing my non-LISPer friends with (defun f (x) (1+ x)) (disassemble #'f)
21:30 geoffb Shillo, *chuckle*  Nice.
21:30 Shillo First line of the result: ; 0901832E:       8B55F4           MOV EDX, [EBP-12]          ; no-arg-parsing entry point
21:30 Shillo :)
21:30 Shillo (that's in SBCL)
21:30 Corion SBCL ? (the CL part is clear ;) )
21:31 Shillo Steel Bank Common LISP
21:31 Corion Never heard of that
21:32 Shillo CMUCL compiler fixed to be actually maintainable.
21:34 metaperl has joined #perl6
21:35 geoffb Why does the make for pugs insist on recompiling Pugs.Help all the time?
21:35 PerlJam geoffb: probably because that's where the version number is.
21:36 geoffb Ah!
21:36 eric256 i keep checking the journal in vein. lol. a whole day without a post! lol
21:37 Shillo eric256: <AOL> Me too, me too!!! </AOL>
21:37 geoffb eric256, I may go into withdrawal.  I'm starting to feel the shakes come on
21:44 geoffb Time to start trying to port some real p5 code to pugs
21:50 autrijus greetings.
21:50 autrijus <- slept some 20 hours in the past 24
21:50 geoffb and to you
21:50 geoffb good for you!
21:50 geoffb clearly needed
21:50 autrijus indeed
21:50 mugwump hi autrijus
21:50 autrijus hi folks. sorry for the delayed release. we'll enter preflight in ~1hr
21:51 broquaint has joined #perl6
21:57 autrijus mugwump:
21:57 autrijus lib/Set.pm is found in both MetaModel and Set
21:58 autrijus one has to go
21:58 autrijus pick one to delete
21:58 autrijus (or to rename)
21:58 q[merlyn] is MetaModel deliberately *not* like Smalltalk?
21:58 lampus has joined #perl6
21:58 mugwump oh, sorry :}
21:58 q[merlyn] it seems like it's making the same mistakes that Smalltalk-72 fixed in Smalltalk 76
21:59 autrijus q[merlyn]: what is that mistake?
21:59 q[merlyn] you don't have an infinite recursion, if you think about it right
21:59 q[merlyn] so you don't have object, metaobject, metametaobject
22:00 q[merlyn] when I saw that, I started to cringe
22:00 autrijus mugwump: I'm not sure the toplevel namespaces you have in MetaModel/lib/*.pm is a good idea
22:00 q[merlyn] that's what they fixed from 72 to 76
22:00 autrijus q[merlyn]: oh. but I thought there's finite abstraction level -- namely 3
22:00 autrijus and the metameta thing merely means "implementation level"
22:00 q[merlyn] Even so.  that's too many
22:00 q[merlyn] it should be reflexive.
22:01 q[merlyn] Should I find a reference on how st80 does it?
22:01 q[merlyn] or are you already familiar with that?
22:01 autrijus it is reflexive iirc, but indirectly so. no, I'm not familiar with all of this -- stevan and mugwump are the people working on metamodeling
22:01 autrijus s/all of this/any of this/
22:01 q[merlyn] OK... well, mark me as "concerned" that the mistakes of st72 are being made.
22:02 autrijus duly marked.
22:02 mugwump q[merlyn]: well, hopefully there will be a point where one level can cleanly represent itself
22:02 q[merlyn] I have been too distracted to create a detailed report
22:02 autrijus (not that the metamodel docs you see is not implemented, at all, in pugs) :-)
22:02 autrijus s/not/note/
22:02 * autrijus clearly can't type.
22:03 mugwump q[merlyn]: that certainly is interesting to hear, anyway.  Keeping each type level distinct was more of a precaution
22:03 autrijus mugwump: so will you fix the toplevel module in metamodel space
22:03 autrijus mugwump: or should I do that?
22:03 broquaint has quit IRC ("firefox teh b0ro")
22:03 mugwump I'll do it now
22:03 autrijus k thanks!
22:03 mugwump I'll move them all to Perl/ I think
22:03 autrijus fine by me
22:04 clkao greetings autrijus
22:04 mugwump q[merlyn]: refer also src/Pugs/Class.hs line 33 ;)
22:04 q[merlyn] good starting point - http://c2.com/cgi/wiki?Desi​gnPrinciplesBehindSmalltalk
22:04 clkao see nmy new p5 array tests? i also documented what's missing in README
22:04 q[merlyn] there's nothing above "metaclass"
22:05 q[merlyn] so when I started seeing "metametaclass", my spidey sense tingles.
22:05 mugwump q[merlyn]: oh, right.  So there still is a metaclass, you can't just get away with normal classes
22:05 autrijus clkao: good.
22:06 G2 has quit IRC ("oops")
22:06 clkao autrijus: push and store failed in weird way, i suspect it's because the initial val isn't mared as rw when it came to p5 land and kept in tied
22:06 clkao you have time to take a look?
22:06 q[merlyn] for every "class", there's an instance of Class, and an instance of Metaclass.
22:07 q[merlyn] but since Class and Metaclass are also classes, the definition applies as well
22:07 q[merlyn] that doesn't lead to metametaclass unless you are smoking something. :)
22:08 Corion Current (Win32) smoke status - http://datenzoo.de/pugs/win2k.html - 7268 ok, 187 failed, 940 todo, 447 skipped
22:08 autrijus so I think it's the same as the model in stevan's docs
22:08 Corion (and some of that are due to my broken test tree)
22:08 q[merlyn] 4 class => Integer
22:08 q[merlyn] Integer class => Integer class
22:08 q[merlyn] Integer class class => Metaclass
22:08 mugwump q[merlyn]: ok, I've just been bitten before by mixing the levels (crossing the streams?)
22:09 autrijus by "metametaclass" I think it means the concrete implementation of metaclasses
22:09 autrijus not visible from the language at all
22:09 q[merlyn] well - it confuses me.
22:09 autrijus i.e. only of interest in the compiler level
22:09 mugwump However, note also that Class traits are effectively changes to the MetaModel
22:09 clkao autrijus: and eta of ref of scalar to be properly passed in mkvalref?
22:09 q[merlyn] But "metaclass" is concrete too
22:09 mugwump So you need a M3 to represent that
22:09 b6s has quit IRC (Remote closed the connection)
22:09 autrijus q[merlyn]: it's only concrete if Smalltalk is implemented in Smalltalk
22:09 autrijus otherwise you have two different levels of concreteness.
22:10 eric256 since classes and metaclass are classes what does metaclass class => ?
22:10 * eric256 not trying to join the fray, just curious
22:10 mugwump classes aren't metaclasses, eric256 :)
22:10 b6s has joined #perl6
22:10 justatheory has joined #perl6
22:10 mugwump or vice versa.  they exist on different levels of the type heirarchy without a common root
22:11 eric256 "q[merlyn]: but since Class and Metaclass are also classe"... that is where i was asking from. /me goes back to just listening. ;)
22:11 mugwump sure.  They both .does(Class), for some notion of Class, perhaps
22:12 q[merlyn] download www.squeak.org and ask that yourself. :)
22:12 Shillo has quit IRC ("Leaving")
22:12 autrijus squeak++
22:12 stevan q[merlyn], autrijus, mugwump: the code in MetaModel (at least the stuff I wrote) is wrong
22:13 q[merlyn] well. it's important to keep the protocol for class separate for the protocol for an instance
22:13 autrijus good that I never looked at the code :D
22:13 q[merlyn] an instance can't .new
22:13 q[merlyn] a class can .new
22:13 mugwump a metaclass can .create
22:13 stevan q[merlyn]: I have a perl5 version I have been working on, pugs was getting to slow for all the stuff it was doing
22:13 mugwump or something :)
22:13 q[merlyn] so the "class" that implements .new must be the metaclass
22:13 q[merlyn] but that's as far as it needs to go
22:14 q[merlyn] there is no need for a metametaclass
22:14 stevan autrijus: some of that code is good, at least the stuff which makes up the peices of the metamodel
22:14 q[merlyn] the metaclass can't .new
22:15 mugwump q[merlyn]: in a way, I've already explored this space with T2..
22:15 q[merlyn] "t2"?
22:15 mugwump T2.pm is a metamodel on CPAN for Perl 5 that is capable of expressing itself
22:15 q[merlyn] because the metaclass has a sole instance
22:15 mugwump but I needed to bootstrap it via Class::Tangram
22:15 stevan the metaclass is the cycle in the model
22:15 stevan it is an instance of itself
22:15 q[merlyn] No it'snot
22:15 q[merlyn] it's an instance of class
22:15 stevan ?
22:15 q[merlyn] that's where the breakdown was in st72
22:16 q[merlyn] they fixed that in st76
22:16 stevan odd, not according to my Smalltalk80 book
22:16 q[merlyn] and thus in st80
22:16 q[merlyn] there are no things that are an instance of themselves
22:16 q[merlyn] go read your st80 book again
22:16 mrborisguy has joined #perl6
22:16 q[merlyn] or maybe you have the bad book. :)
22:17 stevan its the Goldberg/Robson book
22:17 q[merlyn] You read it wrong then.
22:17 q[merlyn] it never says that anywhere.
22:18 q[merlyn] Class is an instance of Class class
22:18 q[merlyn] Metaclass is an instance of Metaclass class
22:18 stevan yes
22:18 vcv has quit IRC (Nick collision from services.)
22:18 stevan sorry thats what I mean
22:18 q[merlyn] Metaclass class is an instance of Class
22:18 vcv- has joined #perl6
22:18 q[merlyn] Class class is an instance of Class
22:18 autrijus I suggest we drop the "metametaclass" nomenclature and call it "encoding of metaclass in the host language" or something :)
22:18 q[merlyn] aut++
22:18 q[merlyn] that'll work for me
22:18 stevan autrijus: I have done that in the perl 5 model
22:18 stevan Meta::CLass is the root
22:19 stevan I also have a Instance protocol object
22:19 stevan and I am working on a class protocol objet
22:19 stevan I broke out the method dispatcher too, but thats a different thing
22:20 mrborisguy what's the story on people like me submitting tests?  should i run by somebody what i'm going to submit before i do, or just do it?
22:20 autrijus mrborisguy: if you feel like discussing it, sure
22:20 autrijus mrborisguy: but otherwise jfdi
22:20 autrijus it's all up to you :)
22:20 stevan mrborisguy: wiki-style development, if its wrong, someone will fix it eventually :)
22:21 mrborisguy haha, alright
22:21 stevan q[merlyn]: are you going to be at YAPC::NA?
22:21 Limbic_Region has joined #perl6
22:21 * autrijus finds "wiki-style" much easier to sell than "anarchistic"
22:21 q[merlyn] stevan - it's in the wrong country
22:21 q[merlyn] US Felons cannot travel to Canaada
22:21 stevan scares less people off too
22:21 stevan ahhh
22:21 stevan ok
22:21 autrijus aw. poor merlyn
22:21 mrborisguy you're really a felon?
22:21 stevan well I would be very interested in talking about the metamodel more if you have time
22:21 q[merlyn] instead, I'm moving to Brazil
22:22 q[merlyn] purl, tell mrborisguy about fors
22:22 geoffb My eyes are beginning to cross -- I'm trying to do 'use SDL::App--perl5;', which blows up because it can't find auto/SDL/App.al in @INC . . . I'd like to try to figure out how it is supposed to work, but I'm really not sure where to start.  Hints?
22:22 q[merlyn] oh, no purl here. :)
22:22 q[merlyn] mrborisguy - http://www.lightlink.com/fors/
22:23 stevan q[merlyn]: its a fairly new topic for me, and so I am open to any thoughts others have
22:23 q[merlyn] Yeah - lemme reread what I saw.  I just got stuck at metameta
22:23 Ovid has quit IRC ()
22:23 stevan q[merlyn]: stick with the stuff in docs/, the stuff in lib/Perl/Meta/ is crap :)
22:23 q[merlyn] there should be a class where I can add a method, and suddenly all instances can do it.  there should be another class where I can add a method, and suddenly all classes can do it
22:23 q[merlyn] that's the top of the hierarchy
22:23 q[merlyn] TWO classes. not one.
22:24 stevan hmmm
22:24 autrijus geoffb: hm. but DBI etc works?
22:25 Corion autrijus: I got *** Pattern match failure in do expression at src/Pugs/Prim.hs:92:4-14 from ext\fp\t\functions.t - is that a "normal" Pugs error? It didn't seem catchable
22:25 geoffb autrijus, actually, had not tried DBI yet.  Was jumping directly into my own fun stuff (OpenGL)
22:25 geoffb Hmmm, now need to throw a DB somewhere so I can test DBI, I guess
22:26 Limbic_Region geoffb - DBD::SQLite
22:26 Limbic_Region no "real" DB required
22:26 stevan q[merlyn]: I would be very interested on your comments on the docs/ feel free to either add them right to the files themselves or email p6-compiler or even me directly
22:26 autrijus Corion: it's not catchable and I've fixed it
22:26 stevan however, right now I have to go pick up a pizza :)
22:27 Corion autrijus++ # fixing stuff before I wonder about it!
22:27 geoffb Limbic_Region, OK, thanks.  Lessee if Sarge has that prepackaged . . . I'm growing a bit weary of source builds on this old clunker box.
22:27 q[merlyn] 4 isa Int.  Int isa "Int class".  "Int class" isa Metaclass.  Metaclass isa "Metaclass class".
22:27 q[merlyn] but where it folds back is that "Metaclass class" isa Metaclass.
22:27 Corion Goodnight everybody :)
22:27 Corion has quit IRC ("Chatzilla 0.9.68a [Firefox 1.0.4/20050511]")
22:28 * Limbic_Region knows nothing about Sarge
22:28 geoffb Debian testing AKA "RSN FOREVER!"
22:28 Juerd rsn++
22:29 q[merlyn] Int inherits from [...] from Object.  "Int class" inherits from [...] Class.
22:29 q[merlyn] Darn.  I'm looking for the picture of this.
22:30 mugwump ok, so the M3 is stop-gap until the M2 can bootstrap itself?
22:30 stevan q[merlyn]: I understand that structure, I get lost when it crosses over from meta-land (MetaClass instances) to regular-user-land (Class instances)
22:30 Juerd Is there something wrong with feather?
22:30 stevan dammit, I gotta get this pizza, I will backlog &
22:30 Juerd There are only 3 users logged in - used to be many more.
22:30 larsen has quit IRC ("later")
22:31 * Limbic_Region wanders off to hook up "sound"
22:31 Juerd That's a sound idea.
22:31 mrborisguy i just logged on... doesn't seem to be anything wrong, Juerd
22:32 geoffb Hmmm, since the last time I looked, it appears the DBI/DBD concept has been ported to most host languages
22:32 geoffb nice when Perl concepts flow out to the unwashed masses
22:33 * Limbic_Region returns dazed and confused
22:33 Limbic_Region I have no idea where my speakers are
22:33 q[merlyn] I'm still looking for the docs
22:33 Juerd q[merlyn]: docs are mostly lacking :)
22:34 autrijus stevan: ext/Perl-MetaModel/t/10_Perl_Meta_MetaClass_test.t ext/Perl-MetaModel/t/11_Pe​rl_Meta_Class_properties.t  ext/Perl-MetaModel/t/12_Perl_Meta_Class_methods.t are failure miserably
22:34 autrijus s/failure/failing/
22:34 autrijus actualy everything else too
22:35 autrijus mugwump / stevan: can you take a look? either fix them, or we ship without Perl-MetaModel or skip all those tests
22:35 autrijus (in order of preference)
22:35 Juerd Hi autrijus
22:35 autrijus it's the only module that fails
22:35 autrijus hey Juerd
22:36 mugwump stevan: unless you've got objections, I'll pull out the Perl/Meta/ stuff
22:36 mrborisguy are Rules ever intended to stringify?
22:36 mugwump oh, he's afk
22:37 mugwump 10:23 < stevan> q[merlyn]: stick with the stuff in docs/, the stuff in
22:37 mugwump          lib/Perl/Meta/ is crap :)
22:37 Juerd mrborisguy: Probably not. They're closures, in some ways.
22:37 mugwump It can return if necessary
22:37 * mugwump removes them
22:38 mrborisguy Juerd: but since they can be scalars, wouldn't one almost expect them to not produce an error in a string context?
22:38 * autrijus installs p5-SDL to test for geoffb
22:39 geoffb autrijus, thanks!
22:39 geoffb At the same time I'm going the other direction and trying DBI
22:40 clkao autrijus: hey, make argr rw!
22:43 geoffb has quit IRC ("Leaving")
22:44 geoffb has joined #perl6
22:44 geoffb D'oh!
22:45 geoffb Reminder to self: Do NOT press CTRL-Q again
22:45 autrijus clkao: still reading readme
22:45 geoffb Well, this is encouraging: $ pugs dbi-test.p6
22:45 geoffb Available drivers: Sponge SQLite Proxy File ExampleP DBM
22:46 autrijus cool
22:47 autrijus clkao: one thing at a time
22:47 autrijus clkao: I guess I need to make pugs_Apply to return SV**
22:47 autrijus right?
22:48 clkao autrijus: right, or construct av
22:48 clkao but that's not as important as rw
22:48 clkao because hash will require rw and pugs_apply return sv** to work
22:48 autrijus ok. what exactly do you want from rw? where do you want rw again?
22:48 clkao run the array test.
22:48 autrijus running.
22:49 clkao STORE is not working. it's working fine in the p6sub eval-applied.
22:49 clkao but not getting back to p6
22:49 autrijus *** No compatible subroutine found: "&my_elems"
22:50 clkao eek? clean build?
22:50 autrijus yeah
22:50 autrijus basic.t passes
22:50 autrijus investigate a bit?
22:50 clkao strange
22:50 Limbic_Region has quit IRC ("leafChat IRC client: http://www.leafdigital.com/Software/leafChat/")
22:52 mugwump so, what happened to make the pugs startup time so long since 6.2.5?
22:53 mugwump I heard some murmuring about a Prelude.pm
22:53 mugwump but I looked at it, and it didn't seem so bad..  maybe I didn't spot the expensive part
22:54 autrijus mugwump: it may just be that.
22:55 Limbic_Region has joined #perl6
22:55 mugwump it's now over 12s on my 1.6GHz athlon!
22:55 autrijus mugwump: try starting it up with env PUGS_SAFEMODE=1
22:55 q[merlyn] ... http://www.ifi.unizh.ch/richter/Cla​sses/oose2/05_Metaclasses/02_smallt​alk/02_metaclasses_smalltalk.html
22:55 q[merlyn] look especially at section 2
22:55 mugwump pugs: *** No compatible subroutine found: "&use"
22:55 autrijus mugwump: huh?
22:55 autrijus time env PUGS_SAFEMODE=1 ./pugs -e1
22:56 autrijus I'm seeing a 1sec delta
22:56 autrijus with and without prelude
22:56 autrijus which is bad but bearable
22:56 autrijus (barely)
22:57 mugwump oh, so it's the time parsing Test.pm etc
22:57 mugwump Are we being stung by excessive backtracking on parsing?
22:58 mugwump time pugs -MTest -e1 => user    0m5.294s
22:58 clkao autrijus: wfm :/
22:59 Juerd mrborisguy: I expect rules to not be scalar values, and that any $rule is actually a reference
23:00 autrijus clkao: same test wfm?
23:00 autrijus mugwump: I'm seeing 2.6s
23:00 autrijus mugwump: you have an old version of pugs to compare with?
23:00 autrijus clkao: :/
23:00 clkao autrijus: ya, array.t
23:01 autrijus clkao: try rebuild?
23:01 autrijus r4290
23:01 autrijus I didn't change anything though.
23:02 autrijus anyway, I'm going to begin preflight.
23:03 clkao me make clean
23:03 clkao what i thought it 's one week away
23:03 autrijus it's not.
23:03 Limbic_Region has quit IRC ("leafChat IRC client: http://www.leafdigital.com/Software/leafChat/")
23:03 autrijus we have weekly release
23:03 autrijus and it's already slipped for 1 day
23:03 kelan ?eval sub foo ($a)
23:03 evalbot6 Error:  unexpected end of input expecting bare trait, trait or block
23:04 mugwump ok, I think I've tracked down the cause of the Set.pm test regressions
23:04 kelan er
23:04 clkao ah, i thought you mean the actual flight o .at
23:04 clkao )
23:04 mugwump changing, eg, the implementation of equal() from:
23:04 mugwump return (($self.size == $other.size) &&($self.includes($other.members)));
23:04 mugwump to:
23:04 mugwump my $rv = (($self.size == $other.size) && ($self.includes($other.members))); return $rv;
23:04 kelan ?eval sub foo ($a) { qq[ $a ] }; my @b = (1,2,3); foo @b;
23:04 evalbot6 ' 1 2 3 '
23:05 kelan ?eval sub foo ($a) { qq[ $a ] }; my @b = (1,2,3); foo *@b;
23:05 evalbot6 ' 1 2 3 '
23:05 kelan hmm
23:05 kelan ?eval sub foo ($a) { qq[ $a ] }; my @b = (1,2,3); foo( *@b );
23:05 evalbot6 ' 1 2 3 '
23:05 autrijus mugwump: ok. feel free to check in the workaround (with comments)
23:05 mugwump will do
23:05 kelan is there a reason that doesnt return just ' 1 '?
23:05 autrijus and untodo the passing test
23:06 kelan do i have context messed up again?
23:06 autrijus ?eval sub foo (*$a) { qq[$a] }; my @b = (1..3); foo(@b)
23:06 evalbot6 Error: No compatible subroutine found: "&foo"
23:06 autrijus ?eval sub foo (*$a) { qq[$a] }; my @b = (1..3); foo(@b);
23:06 evalbot6 Error: No compatible subroutine found: "&foo"
23:06 autrijus ?eval sub foo (*$a) { qq[$a] }; my @b = (1..3); foo(*@b);
23:06 evalbot6 Error: Too many slurpy arguments for &main::foo: 3 actual, 1 expected
23:06 autrijus kelan: looks like you can't get here from there :)
23:06 autrijus ?eval sub foo (*$a, *@rest) { qq[$a] }; my @b = (1..3); foo(@b);
23:06 evalbot6 '1'
23:07 autrijus ?eval sub foo ($a, @rest) { qq[$a] }; my @b = (1..3); foo(*@b);
23:07 evalbot6 Error: No compatible subroutine found: "&foo"
23:07 autrijus the caller-site * is broken
23:07 autrijus I think
23:07 clkao autrijus: also, retro-array will ruin pugs::env
23:07 justatheory has quit IRC ()
23:07 kelan i thought flattening the caller side might just throw away extra arguments like p5 does
23:07 clkao autrijus: a perl6 array accessed by perl5 and export ed to perl6.
23:07 mrborisguy Juerd: so I guess my question is then... will a reference to a rule stringify?  $a = rx:P5{a}; say $a; #or; say ~$a; shouldn't produce an error in my opinion... is that correct?
23:08 kelan but i guess with an explicit signature that doesnt make much sense
23:08 kelan ?eval sub foo ($a, *@rest) { qq[ $a ] }; my @b = (1,2,3); foo( *@b );
23:08 evalbot6 ' 1 2 3 '
23:08 kelan hmm
23:09 autrijus mrborisguy: it shouldn't. what should it produce tho
23:10 mrborisguy autrijus: i guess i'm not quite sure.
23:10 autrijus mrborisguy: ok. checking in a generic fix
23:10 mrborisguy autrijus: rules might be a little to complex to print out the actual rule
23:10 clkao autrijus: array.t runs (failed 6/11) on a clean build form .e
23:10 kelan maybe a string of the rule? although i guess you don't have that around after compiling it
23:10 clkao you sure you have a clean build?
23:10 Limbic_Region has joined #perl6
23:10 autrijus clkao: rebuilding
23:11 mrborisguy autrijus: maybe something like "substitution rule" or "match rule"
23:12 clkao autrijus: i also noticed now it takes very long time to actually run the script file.
23:12 clkao 2sec until 1..1 is run.
23:12 clkao is printed. ie , test.pm's plan
23:13 autrijus clkao: yeah. something seemed to make parsing slow. or it's the prelude
23:13 autrijus got no time to triage tho.
23:13 clkao $ ab -clkao- [~/work/pugs] time ./pugs -Iext/Test/lib -e1
23:13 clkao 0.364u 0.003s 0:00.41 87.8%     4757+747k 0+0io 0pf+0w
23:13 clkao $ ab -clkao- [~/work/pugs] time ./pugs -Iext/Test/lib -MTest -e1
23:13 clkao 1..0
23:13 clkao 2.119u 0.024s 0:02.38 89.4%     4567+719k 0+0io 0pf+0w
23:13 autrijus mugwump: how's the Set coming?
23:13 clkao how can do i do profiling?
23:14 autrijus clkao: make clean profiled
23:14 mugwump I'll check in what I've got... almost got all tests passing, but the workarounds are awful :)
23:14 autrijus okay. sorry for that.
23:14 autrijus we'll investigate later :)
23:14 clkao probably not for today then :/ have you got array.t run?
23:14 clkao i need to sleep soon
23:14 autrijus clkao: still recompiling
23:14 autrijus need another minute
23:15 clkao need a faster feather
23:15 clkao oh no, perl5 embed doesn't even compile on it
23:15 mugwump the nature of these workarounds suggests to me some basic parsetree/expression breakage...
23:15 mugwump wish I could pin it down
23:16 autrijus mugwump: reduce it to simple test cases?
23:17 mugwump gah svn conflict
23:17 autrijus clkao: weird
23:18 autrijus clkao: if I add (print '') after "use strict"
23:18 autrijus it works
23:18 autrijus but ok, I can get it run now
23:18 mugwump spooky ... someone seems to be making same changes as myself to ext/Set/t/operations.t :)
23:19 autrijus that may be me ;)
23:19 clkao sppooooky
23:19 mugwump ok r4292
23:20 clkao autrijus: so, got a glue about what's going on now?
23:20 mugwump basically, this doesn't work:
23:20 autrijus clkao: nope
23:20 mugwump $set.difference($other_set).union($other_se​t.difference($set)).equal($sym_difference)
23:20 autrijus clkao: too weird
23:20 clkao autrijus: make PERL5_EMBED_DEBUG 1
23:20 clkao in perl5.c
23:21 mugwump but breaking each method call into a seperate line, with explicit scalars does
23:21 autrijus mugwump: ok. I think I know why.
23:21 autrijus mugwump: leave a comment there
23:21 autrijus it's basically the chained MMD inferencer
23:21 autrijus can't figure out what method to call without a "returns Set" type
23:22 clkao i think someone should take a quick look on the -MTest problem. see if it's a trivial fix to kill that 2 sec.
23:22 clkao how many tests do we have? if each test takes 2 sec to startup...
23:23 mugwump 5s on my system!
23:24 stevan mugwump: ditching that Perl-MetaModel code is fine
23:24 stevan it relied on Set.pm, which may have been part of the error
23:24 stevan q[merlyn]: I have read that paper too
23:24 clkao it's definitely pain for development cycles
23:24 stevan autrijus: after this release I will put the perl5 version of the MetaModel into pugs, I think it is closer to what we will eventually want to have
23:25 theorbtwo has joined #perl6
23:25 stevan autrijus: I also think it might be best to wait until hackathon to really work out the meta-model
23:25 stevan at least I wont have a whole lot of tuits until then
23:25 stevan ok have to walk to the dog, bbiab &
23:25 autrijus clkao: ok, I've attempted a fix, sec
23:26 clkao for the 2 sec or for the array rw thing?
23:26 theorbtwo Also, it may help the metamodel a lot to have autrijus, stevan, and Larry all in the same place.
23:26 theorbtwo Allo, all.
23:26 autrijus nope, no help
23:26 autrijus hi theorbtwo
23:27 Limbic_Region salutations James
23:27 clkao you need a tool for TODO and unTODO things
23:28 theorbtwo clkao: Have a plan on how to do it without parsing perl?
23:30 theorbtwo Did anybody take a look at my ugly Code::Exp code, and have a clue as to how to do it better?
23:31 autrijus theorbtwo: you can't make it into castV.
23:31 autrijus theorbtwo: and that is as well
23:31 autrijus since castV is for "boxing"
23:31 autrijus whilst creating a new object is hardly boxing
23:32 Juerd mrborisguy: Objects/references stringify as something that identifies the reference, unless stringification is overloaded.
23:32 Juerd mrborisguy: It shouldn't be an error.
23:32 autrijus ?eval rx:P5//
23:32 evalbot6 {rule}
23:32 autrijus ?eval ~rx:P5//
23:32 evalbot6 '<Rule>'
23:32 clkao autrijus: give me a note on what happens to array before you go sleep. i need to slee pno w
23:32 Juerd autrijus: For debugging purposes, the stringification should imo include some sort of id
23:32 autrijus clkao: I have no idea :p
23:32 theorbtwo Hm, OK, that makes some degree of sense.
23:32 autrijus Juerd: sadly we don't have IDs.
23:33 autrijus (yet)
23:33 clkao autrijus: ....
23:33 autrijus clkao: really, I can't for my life tell why
23:33 clkao autrijus: why as in where?
23:33 Juerd autrijus: No way to get to something like a memory address either?
23:33 autrijus clkao: why a print'' is needed
23:33 clkao it doesn't matter, but the STORE thing in array
23:33 autrijus Juerd: well, yes, you can take a weakref and get an address
23:33 autrijus Juerd: but it will change after GC run
23:33 Juerd autrijus: That can serve as an ID for a container then :)
23:33 Juerd Oh
23:33 autrijus Juerd: or you can take a stable ref
23:33 autrijus Juerd: but it will hinder GC
23:33 autrijus ;)
23:34 autrijus so all in all pretty useless.
23:34 Juerd Purity can be awkward :);
23:34 Juerd s/;//
23:34 clkao the sub reports goodie when eval-applied, from STORE, but doesn't get back to actual pugs land
23:34 Juerd Good night
23:34 autrijus I think it's true for all non-ref-counting GCs :)
23:34 autrijus mugwump: ext/Set/t/hash.t all fails
23:34 theorbtwo VObject creates an ID on creation... but that's one of the reasons that it can't go outside a monad, which would be bad for something as general as references.
23:35 * geoffb afk for a while with family unit
23:35 autrijus mugwump: seems to be
23:35 autrijus    at blib6/lib/Set/Hash.pm line 48, column 12-34
23:35 autrijus mugwump: got time to investigate?
23:35 mugwump sure
23:35 autrijus theorbtwo: you can unsafePerformIO the object creation
23:35 autrijus theorbtwo: I'm not sure if that's wise.
23:35 theorbtwo Anyway, I will start making methods on Code::Exp.
23:35 autrijus theorbtwo: also, why do you want it to be pure anyway
23:35 theorbtwo Hm, if you aren't sure if it's wise, I'm certianly not going to do it.
23:36 theorbtwo Um, other then generally wanting it to be elegant, no good reason.
23:36 autrijus theorbtwo: the upshot is that creating a unique ID is not "pure"
23:36 autrijus but it does not have to be monadic either.
23:36 autrijus there's something inbetween.
23:36 autrijus GHC 6.4 has linear implicit parameters to support this
23:36 autrijus so if you'd like to switch object creation to use that
23:36 autrijus (and make it pure so castV can use it)
23:36 autrijus be my guest :)
23:37 theorbtwo Hm, that sounds like a lot of work for very little payback, and use of Yet Another Strange Extension.
23:37 theorbtwo Since we already have enough extensions keeping us from using jhc, and jhc is part of a grand plan, I think it's not worth it.
23:38 theorbtwo Instead I'll start adding methods on Code::Exp, to make clkao's code modification more possible, and other nifty stuff.
23:38 autrijus *nod*. ncie!
23:39 theorbtwo BTW: If I start making methods that can modify things, and not just introspect, should they get marked unsafe in the prims table?
23:40 autrijus probably no need to
23:40 autrijus "unsafe" means "you won't like to enable this in evalbot"
23:41 theorbtwo Right -- but things it creates are still subject to the safe/unsafe things, so it should be fine.  Gotcha.
23:41 autrijus :)
23:43 mugwump ok, that set/hash.t error seems related to the overloaded -
23:43 mugwump which has been commented out in Set.pm :)
23:43 autrijus :)
23:45 mugwump also %:members<$self._stringify($x)> wasn't a great demonstration of perl6 syntax
23:46 autrijus indeed.
23:49 * eric256 is disgruntled that a node he replied to on PM just go reaped, why reap a node with so many comments, why not reparent it?  sorry wrong room to vent about it in i suppose. ;)
23:50 * mugwump works on the other tests in the Set distribution
23:52 theorbtwo eric256: Let me take a glance.
23:53 autrijus mugwump: svn up first? I also fixed some
23:53 mugwump ok will do
23:53 mugwump hmm, the Makefile generated in the Perl-MetaModel seems to wedge make
23:53 autrijus mugwump++ # hash.t passes!
23:53 mugwump Makefile:545: *** target pattern contains no `%'.  Stop.
23:54 autrijus worksforme.
23:54 autrijus one should probably not run Makefile.PL in an ext directory
23:55 rafl_ has quit IRC (Remote closed the connection)
23:55 mugwump oh?  Works in ext/Set :)
23:55 rafl has joined #perl6
23:56 eric256 i miss the svn bot.. is it coming back? do you need someone to host it?
23:56 mugwump oh wow ... all those unicode operator tests are passing!

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

Perl 6 | Reference Documentation | Rakudo