Perl 6 - the future is here, just unevenly distributed

IRC log for #perl6, 2006-01-03

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:19 Debolaz Amnesiac: Yes.
00:24 frederico joined perl6
00:24 Supaplex joined perl6
00:37 waltz left perl6
00:44 mjl69 joined perl6
00:51 scook0 joined perl6
00:59 imperator joined perl6
01:16 imperator left perl6
01:23 dduncan is something up with openfoundry that could cause it to be a lot slower (for commits particularly) during the last few days?
01:24 dduncan is anyone else experiencing that?
01:25 svnbot6 r8564 | Darren_Duncan++ |  r1771@Darren-Duncans-Computer:  darrenduncan | 2006-01-02 17:20:52 -0800
01:25 svnbot6 r8564 | Darren_Duncan++ |  /ext/Rosetta-Incubator : incremented the Locale::KeyedText versions following its CPAN release today
01:25 dduncan not sure if its the server or the network
01:25 dduncan other network things at my end seem normal enough
01:52 Khisanth checked your route to the server? maybe one of the usual routers died and you are taking a different and slower route
01:53 Debolaz copy installable_parrot to /usr/pkg/bin/parrot: No such file or directory
01:53 Debolaz Gotta love nice senseless errors. :/
01:56 leo make installable_parrot or make install in parrot might help - but please note (again) that installing parrot is still experimental, especially with pugs
01:57 petdance joined perl6
01:58 Debolaz leo: Noticed the latter. I fixed pugs compatibility by having the port install src/parrot_config.o though. :) (Which is copied from install_config.o)
01:59 Debolaz The thing is with my error above though, that installable_parrot actually exists. What I did that seemed to cause the breakage was append "include" to include files in MANIFEST so it the installer would respect --includedir.
02:00 Debolaz I'll figure it out tomorrow when I have gotten some sleep though.
02:01 leo k - g night
02:01 Debolaz Night.
02:25 Alias_ audreyt: ping?
03:05 justatheory joined perl6
03:16 xah joined perl6
03:20 justatheory joined perl6
03:26 dduncan following Khisanth's suggestion, I tried a traceroute to openfoundry
03:26 dduncan running it 4 times, I saw hickups at the last leg
03:27 dduncan lamp.iis.sinica.edu.tw (140.109.17.109)
03:27 dduncan from 1/2 to 2/3 of the time, it read about 400-500ms, while other times around 175ms, which is close to the previous link
03:28 dduncan and the previous link was fairly consistent
03:28 dduncan 173-174
03:29 dduncan the previous being ge-3-14.c6r0.tpe.tw.rt.ascc.net (140.109.251.78)
04:05 justatheory joined perl6
04:09 mjl69 joined perl6
04:14 justatheory joined perl6
05:09 sapper joined perl6
05:12 mjl69 joined perl6
05:14 audreyt stevan: you forgot to add Container/*.pil
05:14 audreyt so I can't work on them :-/
05:16 * audreyt goes doing some $job work instead
06:07 tewk audreyt: What is the signature of _Group    RuleCapturing -> Token Rule -> [Rule] -> Rule   or   RuleCapturing -> (Token Rule -> [Rule] -> Rule)
06:09 tewk The pattern match   _Group c _ [x]  makes me thing the latter.  type DynMkMatch r = (Token r -> [r] -> r)  I don't understand the the () here.
06:10 tewk s/latter/former/   but the ()'s in the type DynMkMatch make me think the other one.
06:15 * clkao yawns
06:25 audreyt its pattern is RuleCapturing -> DynMkMatch Rule
06:25 audreyt note that in haskell
06:25 audreyt a -> (b -> c)
06:25 audreyt is _exactly_ the same as
06:25 audreyt a -> b -> c
06:25 audreyt because of currying
06:25 audreyt so the two types you list is identical
06:26 audreyt i.e., "f x y" is exactly the same as "(f x) y"
06:34 Khisanth ?eval [*] 1..171
06:34 evalbot_8564 1241018070217667823424840524103103992616605577501693185388951803611996075221691752992751978120487585576464959501670387052809889858690710767331242032218484364310473577889968548278290754541561964852153468318044293239598173696899657235903947616152278558180061176365108428800000000000000000000000000000000000000000
06:34 Khisanth ?eval 171*170
06:34 evalbot_8564 29070
06:39 tewk ?eval 1..10
06:39 evalbot_8564 (1, 2, 3, 4, 5, 6, 7, 8, 9, 10)
06:48 joepurl joined perl6
06:52 meppl guten mrogen
07:08 audreyt yo meppl
07:08 kanru is now known as kanru2
07:10 tewk audreyt: Is there a way to run Test/Parser/Rule.hs interactivelly or from the commandline, I though I saw you do something like that the other day.  Also is it possible to trace ghc ?
07:10 gaal left perl6
07:10 tewk btw The currying answer, above made perfect sense.  
07:13 Amnesiac joined perl6
07:28 r0nny joined perl6
07:30 lisppaste3 joined perl6
07:31 gaal joined perl6
07:31 gaal remoose
07:32 gaal tewk: I just managed to build hat for ghc6, now to see if it works :)
07:32 gaal # http://www.haskell.org/hat/
07:47 DesreveR joined perl6
08:14 gaal audreyt: ping
08:15 audreyt pong (but I'm about to afk)
08:15 gaal ok. do you see anything obviously wrong with:
08:15 gaal freezeNode node = do { ptr <- newStablePtr node ; new (castPtr $ castStablePtrToPtr ptr) }
08:15 gaal thawNode nodePtr = do { let ptr = castPtr nodePtr ; deRefStablePtr (castPtrToStablePtr ptr) }
08:16 gaal deRefStablePtr segfaults, though traces show the pointer is the one I'd frozen.
08:17 gaal I removed the explicit type sig for thawNode, btw; I'm not sure if perhaps deRefStablePtr needs that for its magic
08:19 gaal sorry no: the sig i removed was for freezeNode.
08:19 audreyt the sig is probably irrelevant
08:19 gaal OK
08:20 audreyt hm, I don't see anything explicitly wrong
08:20 audreyt why would you want a castPtr, though?
08:21 audreyt is it not enough to default nodePtr into the correct type in FFI?
08:21 gaal hmm, I lifted code from readPtr :)
08:22 gaal trying w/o it (probably won't make a difference though, right?)
08:22 audreyt ah.
08:22 audreyt I'm not sure, as FFI is definitely not my forte
08:22 audreyt maybe ask on glasgow- ?
08:22 audreyt (or #haskell)
08:23 gaal #haskell didn't know
08:23 gaal g- is the mailing list? will try there if I don't figure it out
08:23 audreyt yeah, glasgow-haskell-users
08:24 audreyt best luck -- also feel free tocommit your code
08:24 audreyt as long as it compiles, runtime segfault is no problem if it does not interfere with existing code path
08:24 gaal the docs for hsc2hs + FFI are a little terse for me :/
08:24 gaal y
08:24 gaal OK
08:24 audreyt and that way I'll be more motivated to debug
08:24 gaal :-)
08:24 audreyt :)
08:24 audreyt ok, I gotta run.
08:24 audreyt bbiab
08:24 gaal bye.
08:26 iblechbot joined perl6
09:08 dada joined perl6
09:20 Limbic_Region joined perl6
09:49 nnunley joined perl6
09:52 Limbic_Region seen audrey
09:52 jabbot Limbic_Region: I havn't seen audrey, Limbic_Region
09:52 Limbic_Region seen autrijus
09:52 jabbot Limbic_Region: autrijus was seen 25 days 7 hours 7 minutes 52 seconds ago
09:56 Limbic_Region seen audreyt
09:56 jabbot Limbic_Region: audreyt was seen 1 hours 31 minutes 23 seconds ago
09:56 larsen joined perl6
10:14 G2 joined perl6
10:37 konobi is now known as konobi_
10:50 audreyt Limbic_Region: hm?
10:50 elmex joined perl6
10:55 Limbic_Region oh nothing, been on vacation in the PI for 3+ weeks and wanted to know what new handle you were using
10:55 * Limbic_Region is glad to see you are journaling regularly again and think that the new pic on wikipedia is much more flattering
10:56 Limbic_Region you should update your perlmonk's acct accordingly - /msg the gods for a name change too
11:12 audreyt maybe I should just register a new perlmonk nick
11:12 audreyt thanks re the pic. :-)
11:31 whiteg joined perl6
11:34 Limbic_Region no need to register a new nick - when you have the gods rename your account a link from your old handle points to the new one and all of your posts are automagically handled
11:34 audreyt ok... how do I /msg the gods again?
11:35 Limbic_Region from the chatterbox - /msg gods please rename my account to <insert name here> because <insert explanation here>
11:42 audreyt done, thanks
11:44 Limbic_Region when is the next hackathon btw?
11:44 Limbic_Region or rather - let me make a suggestion for the blog - put up a calendar with upcoming events
11:45 audreyt I wonder how do I do that with typepad
11:45 Limbic_Region s/blog/blog or pugs homepage/
11:45 audreyt for now, try http://pugs.blogs.com/pugs/event/
11:47 * Limbic_Region has read that but couldn't remember where
11:52 elmex joined perl6
12:01 pdcawley joined perl6
12:02 pdcawley seen audreyt
12:02 jabbot pdcawley: audreyt was seen 16 minutes 56 seconds ago
12:05 xinming joined perl6
12:06 xinming joined perl6
12:11 audreyt pdcawley: yo
12:11 pdcawley privmsg awaiting your attention.
12:12 audreyt replied.
12:17 Limbic_Region oh, I meant to ask audreyt - should the following barf?  I think no but it currently does
12:17 Limbic_Region ?eval for 1... { last if $_ == 4 }
12:17 evalbot_8564 pugs: out of memory (requested 1048576 bytes)
12:20 audreyt it should not, it currently does, the new runcore's ::List will address this, please give us another week or so :)
12:33 Limbic_Region ok cool
12:33 audreyt yay, I ported Catalyst's dispatcher logic (or maybe something better) to Jifty :)
12:33 Limbic_Region will that also make my @infinity = 1...; # work too or is there a limit to when things can be lazy
12:34 audreyt Limbic_Region: that should works natively.
12:34 * Limbic_Region isn't sure he understands natively in this context
12:34 Limbic_Region ?eval my @infinity = 1...;
12:34 evalbot_8564 pugs: out of memory (requested 1048576 bytes)
12:35 clkao mmmm
12:35 audreyt the ::Array container, @infinity, should contain one single ::Range object underneath
12:35 audreyt the ::Range object should have a $.start at 1 and $.end at Inf
12:36 audreyt that's how it's going to work in the new runcore. :)
12:36 Limbic_Region ok
12:36 * Limbic_Region will just be patient then
12:37 audreyt thanks for your patience :)
12:43 Debolaz Will I break anything fundamental by including parrot_config.o in libparrot?
12:43 audreyt I think not.
12:44 audreyt (but better check with #parrot in irc.perl.org if you are not sure.)
12:44 Debolaz Hmm.. that's not a bad idea. :)
12:45 Debolaz Also got another weird issue they may clear up, installer refusing to install installable_parrot if I sed -e '/^include/s|$|include/ the MANIFEST files.
12:45 Limbic_Region oh that reminds me about a Parrot/ICU unicode question along with ANSI compliance
12:45 * Limbic_Region heads over to #parrot
12:46 Limbic_Region guess not - the server I had hosting CGI::IRC to get to #parrot is offline
13:02 chris2 joined perl6
13:11 iblechbot joined perl6
13:14 Limbic_Region oh, cool beaners on the Jifty dispatcher audreyt - I hear Jifty is a real contender to Rails
13:15 obra Really? Where'd you hear that?
13:17 chris2 does perl6 have something like ruby's "p" or "obj.inspect"?
13:19 Limbic_Region obra - I believe it was a PerlMonks entry - let me see if I can find it
13:19 wolverian ?eval 1.perl
13:19 evalbot_8564 "1"
13:19 wolverian chris2, I think that's it, currently
13:20 Limbic_Region obra - http://perlmonks.org/index.pl?node_id=520196
13:20 Limbic_Region see the first response
13:20 chris2 wolverian: thanks!
13:20 wolverian you're welcome
13:20 xinming audreyt: can rule now be used in pugs?
13:21 audreyt xinming: it can be used for some time now
13:21 audreyt via PGE/parrot
13:22 xinming audreyt: hmm, not in pugs shell?
13:22 xinming ?eval my $a = rule { . }; $a ~~ "test"
13:22 evalbot_8564 Match.new(   ok => bool::true,    from => 0,    to => 1,    str => "t",    sub_pos => (),    sub_named => {} )
13:23 xinming hmm, In pugs shell, this line will cause segfault
13:23 * xinming is out for supper.
13:23 xinming bbl
13:25 anatolyv joined perl6
13:39 hlen joined perl6
13:39 kanru joined perl6
14:08 Qiang joined perl6
14:41 Debolaz joined perl6
14:42 stevan audreyt: ping
14:42 audreyt stevan: yo
14:42 stevan obra: chromatic said in his Year in Perl that Jifty might leave Rails in the dust
14:43 stevan audreyt: see Bootstrap/Container/*.pil :)
14:43 * audreyt discovers the svk checkout is subtly broken
14:43 audreyt heh. sorry :)
14:44 audreyt but I did this meanwhile  (joint design with obra) -- I think you'll like it
14:44 audreyt http://perlcabal.org/~autrijus/tmp/Dispatcher.html
14:44 audreyt (in jifty trunk now)
14:44 audreyt deploying to $job as we speak
14:44 clkao (?!)
14:45 clkao svk checkout borken?
14:45 audreyt clkao: apparently I needed a "revert -R" to get new Bootstrap/Container/*.pil
14:46 Limbic_Region joined perl6
14:46 audreyt tried to reproduce, can't, weird.
14:46 clkao weird
14:46 clkao 1.06?
14:47 audreyt no, 1.0901 trunk
14:47 stevan audreyt++ obra++ # very nice dispatcher :)
14:47 audreyt :D
14:47 justatheory joined perl6
14:48 audreyt I'd like to support proper subclassing next
14:48 justatheory joined perl6
14:48 audreyt so MyApp::Dispatcher::Blog handles the "in 'blog'" by default
14:49 audreyt with :Private and :Local propagation attributes
14:49 audreyt sounds familiar? :)
14:49 stevan audreyt: :)
14:49 stevan audreyt: $work for today is going to be reading over all the Jifty docs/source  
14:50 audreyt /join #jifty then
14:50 stevan heading there right now
15:07 ezraburgh joined perl6
15:15 petdance joined perl6
15:22 Eimi joined perl6
15:30 lisppaste3 joined perl6
15:41 sahadev joined perl6
15:41 kanru joined perl6
15:54 stevan audreyt: so thoughts on the containers
15:55 stevan I was thinking that the immutable version of Array should acutally be List
15:55 stevan (sort of)
15:56 audreyt yeah
15:56 audreyt Array I think delegates to a finite sequence of underlying list-ish things
15:56 audreyt Seq and Range, in particular
15:56 stevan ok
15:57 audreyt which are value types
15:57 stevan hmmm, so are we just using the autoboxed Seq?
15:57 audreyt i.e. immutable among themselves
15:57 audreyt that can work, yes
15:57 stevan ok
15:58 audreyt (based on my understanding about fglock's p5-based work)
15:58 audreyt which I think makes a lot of sense
15:58 audreyt oh, aside from Seq and Range, need some sort of Generator too
15:58 audreyt but because Array hides all of them, it's okay
15:59 stevan ok
15:59 stevan I will look over fglocks stuff again
16:00 audreyt I think it's summarized (somewhat haphazardly) in docs/notes/laziness.txt
16:00 stevan I will also add some methods to the autoboxed ::Seq
16:00 audreyt cool
16:00 stevan actually I will make a ::Seq role instead
16:02 Debolaz Aight, parrot port is more or less complete now. http://www.debolaz.com/temp/parrot.tar.gz for those who has pkgsrc.
16:04 audreyt hm, how do I install pkgsrc for freebsd?
16:04 audreyt (and why would I want to do that?)
16:04 audreyt <- running freebsd 6-stable
16:07 vel__ joined perl6
16:08 Debolaz audreyt: Well, as for how to install it, it's documented on http://www.pkgsrc.org/. I guess why is a matter of personal preference.. it's in my personal opinion superior to ports, a lot easier to manage, etc. But again, my personal opinion, there's no big reason to switch if you're on FreeBSD. :)
16:10 audreyt ok :)
16:10 * audreyt puts it on her infinite, self-recursive, lazily evaluated list of things to try
16:10 justatheory seen pdcawley
16:10 jabbot justatheory: pdcawley was seen 3 hours 58 minutes 33 seconds ago
16:10 * pdcawley looks up.
16:11 justatheory "The name that left was PIR"
16:11 pdcawley Yeah.
16:11 pdcawley IMC was left bleeding on the floor.
16:11 justatheory Should that be "that was left", since you then kick sand in imc's face?
16:11 Limbic_Region no justatheory
16:11 Limbic_Region two names enter, one name leaves
16:11 Limbic_Region the name that left was PIR
16:11 pdcawley Tcha! Get your pop culcha references right.
16:11 justatheory D'oh!
16:11 justatheory sorry, I suck.
16:11 pdcawley But no harm in clarifying on the blog version.
16:11 pdcawley You won't be the only one I'm sure.
16:12 Limbic_Region thunderdome
16:12 justatheory well, it becomes clear in the rest of the sentence
16:12 Limbic_Region beyond even
16:12 justatheory I haven't seen that movie in decades.
16:12 justatheory No, wait, I never saw it, only Mad Max.
16:13 * pdcawley reads through again... Nah... 'the name that was left was pir' is butt ugly English.
16:13 pdcawley But it does have a semicolon now.
16:13 justatheory Bunglish.
16:15 justatheory " a properly documented Pugs, and the Perl 6"
16:15 justatheory then?
16:19 justatheory pdcawley: That's a great photo on your blog.
16:19 pdcawley Ta.
16:34 marmic joined perl6
16:59 pdcawley Dave Adler was the man with my camera.
16:59 iblechbot joined perl6
17:16 * audreyt waves and goes to sleep &
17:23 r0nny is now known as DesreveR
17:27 justatheory joined perl6
17:45 G2 joined perl6
17:47 mjl69_ joined perl6
17:47 luqui joined perl6
17:59 Shachaf joined perl6
18:25 cm joined perl6
18:46 justatheory joined perl6
18:48 justatheory joined perl6
18:49 DaGo joined perl6
19:01 mjl69 joined perl6
19:14 xinming joined perl6
19:32 audreyt stevan: pniing
19:32 audreyt s/ni//
19:33 audreyt stevan: A quick question. in PILN, ::Pair is actually what Perl6's ::Pair.meta is
19:33 audreyt in Perl6, ::Pair.meta.isa(::Class), but ::Pair.isa(::Pair).
19:33 audreyt stevan: which is fine, and can be handled in PIL2->PILN compiler
19:34 audreyt stevan: but how do you think we should represent ::Pair in PILN? i.e. what does ::Pair compile to?
19:34 audreyt a NativeObj with o_class set to clsPair, but with no o_repr ?
19:34 audreyt i.e. all prim call on it fails?
19:35 audreyt i.e. ::Pair`get_attr('$!k') will throw an exception?
19:36 audreyt is that sane, or am I actually talking dreamspeak (which is likely)?
19:36 * audreyt goes back to sleep
19:40 stevan_ joined perl6
19:40 obra stevan_: ou just missed a braindump from audrey
19:41 obra you
19:43 frederico joined perl6
20:21 nothingmuch joined perl6
20:22 nothingmuch hola
20:23 avar joined perl6
20:30 justatheory joined perl6
20:37 the_ez joined perl6
20:38 xinming joined perl6
20:44 stevan is now known as stevan_
20:44 stevan obra: thanks for the heads up
20:44 * stevan reads the log
20:46 stevan audreyt: I am not sure I understand that you mean, does ::Pair really need to be anything other than just an normal object?
20:47 stevan ::Pair`get_attr('$!k')  will die , but ::Pair.new({})`get_attr('$!k') will be ok
20:47 * stevan is guessing audreyt is having some very strange dreams
20:48 SamB joined perl6
21:04 svnbot6 r8565 | tewk++ | Outstanding cleanup
21:16 dduncan joined perl6
21:17 webmind hmmm
21:17 webmind I'm trying to compile pugs
21:17 webmind and suddenly the machine is unreachable
21:18 webmind actually in the make Makefile.pl
21:18 webmind er
21:18 webmind perl Makefile.pl part
21:18 webmind is this that heavy or ?
21:24 gaal audreyt: ping
21:25 luqui webmind, I doubt that that phase would do much...
21:25 luqui how much ram do you have?
21:25 webmind 1gb
21:25 luqui (because that phase does run ghc, which is rather ram heavy)
21:25 luqui okay, you should be fine
21:25 webmind 2.4ghz p4
21:25 luqui it's probably something else
21:26 pasteling "gaal" at 192.115.25.249 pasted "undef handling patch for YAML::Syck" (61 lines, 1.8K) at http://sial.org/pbot/15257
21:26 webmind waqs also checking out parrot
21:26 webmind and running apt
21:26 webmind but doesn't sound heavy
21:26 ezraburgh joined perl6
21:27 luqui well even heavy cpu lifting shouldn't cause the machine to be unreachable, should it?
21:27 webmind depends
21:27 webmind but  I can still ping it
21:27 webmind just ssh doesn't work any more
21:27 luqui this was with the latest pugs?
21:27 webmind I can connect to port 80
21:27 webmind but requests fail
21:28 webmind yes
21:28 * luqui sees if something went wrong in the makefile
21:28 webmind I can see more info when I get home
21:28 webmind but currently still at the meeting
21:29 luqui do you know how far the makefile got before the connection died?
21:29 audreyt gaal: please mail the Patch to my inbox :)
21:29 gaal audreyt: sure :)
21:29 webmind luqui, didn't get any output from it
21:29 webmind so no
21:31 luqui not even "*** Probing configuration"
21:31 luqui ?
21:31 luqui not even "*** Probing configuration"?
21:31 luqui (ugh, my connection dies every 20 minutes for about 1 minute)
21:31 luqui (comcast sucks)
21:31 webmind nope
21:32 luqui hmmm.. that sounds like a different problem then
21:32 webmind don't think so
21:32 webmind hmmm :(
21:32 webmind sounds bad
21:32 webmind hope the HD is ok
21:32 gaal audreyt: sent
21:32 luqui I mean, Makefile.PL doesn't do anything before it prints that...
21:32 webmind ok
21:32 webmind maybe it's the disk then
21:32 audreyt gaal: danke
21:33 webmind certainly hope it's not
21:33 luqui hope not.  maybe it was a coincidental occurrence
21:33 webmind uhuh
21:33 luqui anyway, pop back on here when you find out more
21:33 webmind btw, is there a howto somewhere to make deb'sfor pugs ?
21:33 webmind will do
21:33 gaal audreyt: hash emmitting is pretty broken... I can add a test or two at least.
21:33 luqui hmmm... who was doing that before?
21:33 gaal s/mm/m/
21:34 luqui anyone remember who was making the deb distro for pugs?
21:34 audreyt hm. I couldn't sleep, so I finally typed down my design notes since November into the latest p6c/journal post.
21:34 luqui rafl?
21:34 gaal luqui: rafl++
21:34 audreyt stevan: S12: "Taken as an object, a class represents all of the possible values of its type, and the class object can thus be used as a proxy for any "real" object of that type in calculating what a generic object of that type can do. The class object is an Object, but it is not a Class, because there is no mandatory Class class in Perl 6. We wish to support both class-based and prototype-based OO programming. So all metaprogramming is done through the cu
21:34 luqui righto, webmind, you should talk to rafl
21:35 webmind rafl is maintainer for debian yes
21:35 luqui I don't think there is a howto anywhere
21:35 luqui but he could help write one I presume
21:35 webmind hmk
21:35 * webmind pokes rafl
21:36 gaal webmind: there is a debian/ you can look at
21:36 audreyt stevan: so it seems to me that, on p6 level, if %hash.keys can be called, so can ::Hash.keys (although it will probably fail, but the point is that the dispatcher dispatchs ::Hash the same way as %hash.)
21:36 luqui audreyt, man that paragraph is unclear
21:36 webmind gaal, what's that ?
21:36 webmind ah
21:37 gaal specification for the dpkg
21:37 gaal for the .deb that is
21:37 webmind ah
21:37 webmind hm
21:37 audreyt stevan: and also if there is a ::Hash.new(), so is there a %hash.new().
21:38 audreyt this is very p5esque, where a class is just a string that has no instance data but dispatches the same as a blessed reference.
21:38 webmind ok,will check that when I'm home aswell then.. thanks
21:38 rafl luqui: Here I am.
21:39 * luqui symlinks himself to webmind
21:39 rafl webmind: ping
21:39 rafl luqui: I just locked for the first highlight. Sorry.
21:39 luqui np
21:40 audreyt also S12: "Class methods are just methods that can take a class as their invocant."
21:40 audreyt stevan: I _think_ that is what larry means. if it turns out to be a strange dream, all the better, but I'm planning for the worst. (also cf. the dereference/assignment post.)
21:40 * luqui figures that if classes are those generic objecty things
21:40 luqui then class methods are nothing but methods that don't refer to any members
21:40 audreyt yes, I think that is what larry's idea is
21:40 * luqui thinks that that's what Larry insanely means
21:41 audreyt it's a bit more well-typed than p5
21:41 luqui uh... how?
21:41 audreyt but has the same operational semantic as p5
21:41 audreyt er, you can't use a string as a class anymore.
21:41 luqui oh right
21:41 audreyt and there's no barewords, so class literals are well typed.
21:41 audreyt so you can very well write a typechecker.
21:42 audreyt and this is how IO, Self, JavaScript has been working for ages anyway
21:42 luqui I wonder if we can determine at compile time whether a given method can be called on the class
21:42 luqui and then die before even entering the offending method if not
21:42 audreyt yeah, that's what I mean by "write a typechecker"
21:42 luqui okay then
21:42 Debolaz Parrot 0.4.0 is committed to pkgsrc. :)
21:42 audreyt Debolaz++
21:43 luqui not possible in general to determine whether or not it is allowed
21:43 audreyt stevan: so... ::Int.isa(::Class) would be false under this scheme
21:43 luqui but we can default to "is" when we can't determine
21:43 audreyt luqui: hm? if you mention any $.foo $!bar then it's disallowed
21:43 audreyt everything else is allowed
21:44 luqui what about calling methods on self?
21:44 luqui where those methods aren't allowed?
21:44 audreyt if you can early-bind them, then of course errors propagate
21:44 webmind rafl, do you know, or can you provide something like an howto on how to make pugs debs ?
21:44 audreyt late-bound methods are, as usual, deferred until runtime.
21:44 luqui audreyt, okay, fair enough.  so we only look at "leaf offending" methods in general
21:44 rafl webmind: I do debs for every release. You mean for svn snapshots?
21:45 audreyt luqui: yeah, but everything becomes leaf under     use optimize :classes<close finalize>;
21:45 webmind from svn snapshots yes
21:45 webmind but it's for ubuntu
21:45 rafl Doesn't fakeroot debian/rules binary work?
21:45 webmind no idea
21:45 luqui audreyt, nope.
21:45 rafl webmind: Try it, please.
21:45 webmind currently can't check either.. cos the box died
21:45 webmind I will
21:45 luqui equivalent to the halting problem.
21:46 audreyt luqui: huh?
21:46 rafl webmind: Maybe you'll need to alter debian/changelog for the ubuntu release names if you want to upload it there.
21:46 rafl webmind: Don't mind if it's only for personal use.
21:46 audreyt if (0|1).pick { self.call_bad_method }
21:46 audreyt that should be statically rejected.
21:46 luqui method maybeoffender() { my $var = halting_computation() ?? $?SELF !! MyClass.new;  $var.offender() }
21:46 rafl webmind: My stable pugs packages seem to be migrated to ubuntu anyway.
21:46 audreyt even if it's if (0|0).pick
21:47 luqui should that be?
21:47 audreyt surely yes.
21:47 audreyt if False then 3 (3 3) else 1;
21:47 luqui what if I mentioned $?SELF in a very roundabout way
21:47 audreyt try writing that in GHC.
21:47 webmind rafl, ok
21:47 luqui hmm
21:47 * rafl goes to bed
21:47 luqui okay, I see what you mean
21:47 rafl Bye!
21:48 audreyt all lines of branch needs to be well-typed
21:48 * luqui was having a static-types-don't-exist moment
21:48 luqui :-)
21:48 audreyt heh :)
21:48 luqui oh, but you were talking about :classes<close finalize>
21:48 * stevan is not a fan of Larry's class model
21:48 audreyt alright, I think I can finally rest now that the dense incomprehensible container type thing is written
21:48 * luqui isn't either
21:48 stevan hey guys/gals
21:49 * luqui courtseys
21:49 gaal yo stevan
21:49 * audreyt can see its merit, but thinks it makes a horrible underlying calculus
21:49 stevan audreyt: where is it at?
21:49 audreyt (which is why I think PILN (and PIR for that matter) should _not_ be changed; just the compilation strategies to them)
21:49 stevan audreyt: agreed,.. i think we should all chip in and get Larry a copy of the Art of MOP :)
21:49 audreyt stevan: http://pugs.blogs.com/pugs/2006/01/dereference_and.html
21:50 stevan audreyt: yes, I agree,.. I tried to plan the MOP so that Larry's model could desugar into it
21:52 * luqui doesn't think that  is a contextifier
21:52 * stevan beats luqui about the head with a \
21:53 luqui i.e. I don't think that \\$x === \$x
21:53 stevan what does proto mean again?
21:53 Amnesiac joined perl6
21:53 luqui it just gives an overall signature to a multi
21:53 stevan overall?
21:53 nothingmuch i need to quit my job... the great out doors calls me
21:53 luqui proto foo(...) {...}  multi foo(type1) {...}   multi foo(type2) {...}
21:53 nothingmuch or rather, i need to quit computers
21:54 luqui or get a laptop with good outdoor lighting ;-)
21:54 * luqui hasn't found one that works well outside yet
21:54 luqui stevan, it also sets a default implementation for a set of multis
21:54 stevan luqui: so proto is kind of like the "top" for multis?
21:54 luqui yeah
21:55 stevan so I could set a ceiling then
21:55 luqui ?
21:55 * stevan is trying to think of an example
21:56 luqui you know how in haskell you say like foo :: typesig;  foo pat1 = impl1;  foo pat2 = impl2
21:56 stevan yes
21:56 luqui the proto serves as the typesig, and the foo _ = impl at the end
21:56 stevan ok
21:56 stevan I think I get it
21:56 luqui but multis allow you to distribute the rest of the implementations all over your program
21:57 luqui unlike in haskell
21:57 stevan can you write multis without proto?
21:57 stevan does one automagically get created?
21:57 audreyt (actually, multis are quite like typeclasses)
21:57 audreyt luqui: so you think prefix:\ has this type?
21:57 audreyt multi prefix:<\> (Ref ::T is rw) --> (Ref of ::T) {...}
21:58 luqui right
21:58 luqui I mean right to typeclasses
21:58 audreyt instead of the one I gave
21:58 audreyt multi prefix:<\> (Ref ::T is rw) --> ::T {...}
21:58 luqui Yeah, I think so...
21:58 luqui probably good to check with larry though
21:58 luqui (I'm judging by his comment <luqui> "how do you take a reference to a reference?"  <lwall> with the new "\\" operator :-) )
21:59 luqui but that was six months back or more
21:59 audreyt actually I've just been thinking about prefix:<\\>.
21:59 luqui hmm?
21:59 audreyt an actual new \\ operator.
21:59 luqui what would it do?
21:59 audreyt that has the type you want
21:59 luqui oh
21:59 luqui what does \ do?
21:59 audreyt multi prefix:<\\> (Ref ::T is rw) --> (Ref of (Ref of ::T))
21:59 luqui put stuff in referential contexT?
21:59 audreyt yes.
22:00 luqui almost short for scalar()
22:00 audreyt because you'd think \@foo is a value
22:00 nothingmuch luqui: the point is to not be laptopy
22:00 audreyt but it actually takes container methods
22:00 audreyt (\@foo).elems
22:00 nothingmuch no shower for several days
22:00 nothingmuch eat weird food
22:00 nothingmuch directly from the pot
22:00 luqui so, basically like normal, except outside :-)
22:00 audreyt and it's been handwaved as "autoderef" for some time now
22:00 nothingmuch sleep in a tent
22:01 nothingmuch that kind of no-laptop
22:01 * gaal misses that kind of outdoors also
22:01 gaal nothingmuch: wanna go to sinai sometime?
22:01 luqui audreyt, by "\@foo is a value" you mean?
22:01 nothingmuch for a hike? or the beach?
22:01 stevan nothingmuch: I give you 2 weeks before you make a laptop for yourself out of rocks and twigs
22:01 luqui ll
22:01 audreyt luqui: meaning that it can't be assigned to.
22:01 gaal nothingmuch: mountains, duh
22:02 audreyt it doesn't take the infix:<=> method
22:02 nothingmuch stevan: it's the only addiction i haven't beaten totally
22:02 luqui s/(.)(.)/$1o$2/
22:02 nothingmuch i've managed to cut TV, sugar, cigarettes, coffee, etc for weeks on end
22:02 nothingmuch cold turkey
22:02 luqui audreyt, oh...
22:02 nothingmuch whenever I suspected i may be too involved
22:02 luqui audreyt, why?
22:02 nothingmuch but computers - they are like cutting social life
22:02 nothingmuch except it has string attached
22:02 nothingmuch gaal: gladly
22:03 nothingmuch =)
22:03 audreyt \$x = 3; # same as "$x=3"
22:03 nothingmuch i'm trying to push a friend into the yam-el-yam hike
22:03 audreyt \@x = 4; # same as "@x=4"
22:03 audreyt like that?
22:03 luqui it seems to me, and this may be muddy wrong thinking, that \@foo = $x is the same as @foo := $x
22:03 nothingmuch i hope we can do it in 3 days
22:03 nothingmuch transportation is the biggest issue
22:03 gaal nothingmuch: more than 3, and not in this season anyway. despite this being january, there are places where it's cold :-)
22:04 audreyt luqui: \$x = \$y, you mean
22:04 gaal anymoose, I just comitted the preliminary .yaml stuff, and am now going to bed. have a moose, all!
22:04 audreyt (rhs of = is not rw'ed)
22:04 nothingmuch i heard 4 to 3.5 as the benchmark for normal people
22:04 audreyt gaal: woot!
22:04 * luqui thinks he means just what he said
22:04 * luqui isn't sure what audreyt meant
22:04 gaal audreyt: it's not like it works or anything :-)
22:04 audreyt luqui: ok. you said that \$x=3 means $x:=3
22:05 nothingmuch got another idea for a long 2+ night hike?
22:05 svnbot6 r8566 | gaal++ | * beginning of .yaml emitter. "string".yaml.say segfaults, but hey,
22:05 svnbot6 r8566 | gaal++ |   it's a start :)
22:05 luqui audreyt, no, I said \@x = 3 means @x := 3
22:05 gaal audreyt: but once we figure out that segfault the rest shoudl be easy.
22:05 luqui the sigil might be important
22:05 luqui .... but I don't think so
22:05 audreyt luqui: I'm very much lost then. how is it important?
22:05 audreyt er.
22:05 gaal nothingmuch: south may be dangerous (flash floods). galil maybe? anyway I'm off; later :-)
22:06 gaal zZZ &
22:06 nothingmuch i don't mind the cold in the day time, or at night (slept in pretty cold conditions in the US - so that's OK), but food making and getting packed in the morning is hella-tough when cold
22:06 audreyt see, the rhs of infix:<=> is not "rw"; a FETCH (or value()) is applied to it
22:06 nothingmuch yam-el-yam is galil
22:06 audreyt that is the definition of rhs
22:06 gaal .yaml .yam
22:06 audreyt so saying that \$x=$y magically takes variable($y)
22:06 nothingmuch did you think med-to-dead? or med-to-galilee?
22:06 audreyt is quite strange.
22:07 audreyt I can't seem to think a way to make it work.
22:07 ezraburgh left perl6
22:07 audreyt \$x=$y; $x = 5; # $y can't become 5
22:08 audreyt try putting anything else in \$x's position, you can't get that
22:08 luqui no, wait
22:08 * luqui goes off for a minute to figure out why he thinks that
22:08 luqui bbiab
22:08 luqui audreyt, okay, it's because we've been saying things like @a := [1,2,3]
22:08 luqui which binds the innards of @a to [1,2,3], and of course makes it return that same [1,2,3] when you take a reference to @a
22:08 luqui I'm not sure what it means for scalars
22:08 luqui and I'm not sure that @a := [1,2,3] is correct, but if it is, then that's what \@a = [1,2,3] should mean
22:09 luqui did you get that?
22:09 luqui I was 20-minute clockwork disconnected while I was writing that
22:10 petdance left perl6
22:12 luqui audreyt, poke, poke
22:13 audreyt pong
22:13 luqui okay good, I'm not still disconnected
22:13 audreyt @a.infix:<:=>([1,2,3])
22:14 audreyt (oversimplyifying the args/sigs part, because that's going to desugar to it anyway)
22:14 audreyt so, this calls a method on the container object on the pad as '@a'
22:14 audreyt the container object discards its innards
22:15 audreyt and use the same underlying representation (p6opaque or otherwise) as [1,2,3]
22:15 audreyt very straightforward
22:15 luqui ahh, \@a = .. isn't the same as \$x = ..; it's the same as \variable($x) = ..
22:15 audreyt yes, because method calls on scalars always valueify it first
22:16 audreyt except when the method is rw
22:16 audreyt as prefix:<\> is.
22:16 luqui hmm..
22:16 audreyt s/is rw/has the invocant declared as rw/
22:16 * luqui understands
22:17 luqui so do you agree that @a := [1,2,3] should mean the same thing as \@a = [1,2,3], if \@a = [1,2,3] means anything?
22:17 audreyt I don't know if ::Ref.infix:<=> should be defined.
22:18 audreyt because
22:18 audreyt (\@a).end
22:18 luqui yeah, but I'm asking, if it were, then that's what it should mean for an array
22:18 audreyt is the same as @a.end
22:18 audreyt and having \@a.infix:<=> to be _not_ the same as @a.infix:<=>
22:18 audreyt is violating the onelevel autoderef semantic.
22:18 luqui but infix:<=> has an rw invocant
22:18 audreyt so does .push
22:19 audreyt yet (\@a).push means the same as @a.push.
22:19 * luqui thinks
22:20 audreyt I think you have a point; prefix:<\>, even on container types, should return a plain ::Ref that is a simple container that delegates methods back to the underlying container (but only for one level)
22:20 audreyt I think it should not introduce anything else.
22:20 audreyt i.e. either forbid or passthru.
22:20 audreyt (for one level, again)
22:20 * luqui doesn't like delegation
22:20 audreyt but that's what autoderef is.
22:21 * luqui doesn't like autoderef...
22:21 audreyt i.e., what (\@a).push is doing
22:21 audreyt heh, but it's what's specced ;)
22:21 luqui and I think there's a way to think about it so that the same thing happens, but no autoderef is going on
22:21 audreyt and I do think $a[0]=1 is kinda good.
22:21 luqui same semantics, different mental model
22:21 audreyt ah, which is why I proposed \ as contextifier.
22:21 marmic joined perl6
22:21 audreyt but you raised the \\\\1 point that I don't have an answer to.
22:22 audreyt so it's now back to simple ::Ref.
22:22 audreyt (with delegation.)
22:22 luqui I think I'll go take a walk to ponder
22:22 luqui my mind isn't terribly clear, and walks work wonders
22:22 audreyt cool -- if you came up with anything, reply on p6c or so :)
22:22 audreyt good night. :)
22:22 luqui good night
22:23 Debolaz Amnesiac: There?
22:23 Amnesiac Debolaz, it's been a while
22:23 Debolaz Amnesiac: Yes. #freebsdhelp, right?
22:24 Amnesiac hahaha yes :P
22:24 Amnesiac last time we talked you were using SiLC
22:24 Debolaz I have the memory of a very small mammal with a very small attention span. :)
22:24 Amnesiac hahaha
22:24 Debolaz Yeah, I gave that up when it became clear that the author never intended for silc to become widespread.
22:25 Amnesiac I just tried it, never used it for real
22:26 Debolaz The problem was that he just wants to make money off of it. The standard library is GPL, so it's impossible for any non-GPL application to use silc without having to reimplement everything for a very complex protocol.
22:27 Amnesiac what do you do now?
22:28 Debolaz Not much. Doing some smaller projects now and then, like porting parrot to pkgsrc.
22:28 svnbot6 r8567 | stevan++ | PIL/Native/Bootstrap/Container/Array.pil
22:28 svnbot6 r8567 | stevan++ | - added &reduce and &zip (only for same sized arrays for now)
22:28 svnbot6 r8567 | stevan++ |   - some tests too
22:30 Amnesiac Debolaz, nice thing, you don't hang at #freebsdhelp anymore right?
22:31 Debolaz No. I still use FreeBSD though.
22:31 Amnesiac I idle in EFNET most of the time, and yep, still using FreeBSD
22:31 Debolaz But I have taken an interest in DragonFlyBSD.
22:33 Amnesiac doesn't DragonFlyBSD is based in 4.x?
22:33 Debolaz Yes, it's based on the FreeBSD 4.x codebase.
22:33 Amnesiac don't you find that a bit... uhm... "old"?
22:34 Amnesiac lots of latest packages don't compile on 4.x codebase in FreeBSD
22:34 Debolaz Well, DragonFlyBSD is changing from ports to pkgsrc now actually to solve the package incompatibility issue.
22:35 Amnesiac refresh me, pkgsrc is from NetBSD?
22:36 Debolaz As for the "old" part, I don't think so. FreeBSD 4 is still a good operating system for uniprocessor machines. The one of the two main reasons for the fork was how FreeBSD 5 solved the SMP scaling issue. DragonFlyBSD has a very different solution to SMP scalability.
22:37 Debolaz Yes, pkgsrc is from NetBSD, but pkgsrc intends to be a framework for building packages that works on many systems, not just NetBSD.
22:37 Debolaz I use it on my FreeBSD machine.
22:37 Amnesiac I see
22:38 Amnesiac not based in Debian pkgs right? :P
22:38 Debolaz No. :)
22:38 Amnesiac good then
22:38 Debolaz Think of it as ports on steroids.
22:38 Debolaz It's much more practical to manage imho.
22:39 Amnesiac sounds good, I want to try FreeBSD 6, but I need to backup my data first and I don't have HDD space right now...
22:39 Debolaz What version are you currently on?
22:41 Amnesiac 4.11 and 5.4
22:41 Debolaz Think of FreeBSD 6 as 5.5. :)
22:41 Debolaz There's really nothing fundamentally new about it.
22:41 Debolaz Unlike FreeBSD 5 compared to 4.
22:42 Amnesiac at least the 5.x guys fixed the old problem with sound cards ( for vchans )
22:42 Amnesiac that was bothering me when 5.x was just released
22:44 Debolaz I've taken it on me as a personal goal to have full and up to date perl 6 support in pkgsrc. Parrot was just finished today.
22:45 Amnesiac so you're using NetBSD now?
22:45 Debolaz [23:37] <Debolaz> I use it on my FreeBSD machine.
22:45 Debolaz :)
22:45 leo Debolaz++  # thanks for the parrot part
22:45 Amnesiac Debolaz, very nice
22:46 Debolaz Amnesiac: As I said, pkgsrc is a lot more pleasant to work with than ports.
22:46 Debolaz Amnesiac: Both as user and maintainer.
22:46 Debolaz leo: :)
22:48 * Amnesiac looking at pkgsrc info
22:51 leo Debolaz: are any patches needed for parrot src tree?
22:51 Debolaz I'm going to get pugs into pkgsrc too, the port is mostly done but I need to resolve what to do with haskell since the version currently in pkgsrc only supports NetBSD. I've made it run with FreeBSD, but it ain't my port, so I gotta talk with the maintainer.
22:52 Debolaz leo: You can see the patches I made at http://cvsweb.netbsd.org/bsdweb.cgi/pkgsrc/lang/parrot/patches/
22:53 Debolaz They are mostly to get stuff into more correct locations.
22:53 leo I'll forward that to p6i - thanks
22:56 Debolaz The only one that's really needed to make things compile is patch-ac, but patch-ad might be of some interest.
22:59 Debolaz patch-ac is due to the fact that combining -lc_r with any other threading library on FreeBSD 6 will cause stuff to break. patch-ad is simply making sure shared applications aren't installed with _shared as suffix. :)
23:00 leo Debolaz: I've sent the message to p6i - please reply and explain there - thanks
23:02 frodo72 joined perl6
23:03 leo rafl: can you please review above pkgsrc patches for debiaan compat - thanks
23:04 leo debian compat too ;)
23:05 Amnesiac debiaan++
23:08 Debolaz Hrmm.. but I don't use usenet. :)
23:12 leo Debolaz: mailto:perl6-internals@perl.org
23:13 leo e.g. in docs/intro.pod or docs/submissions.pod
23:13 webmind ok, machine crashed.. no idea what it was
23:16 luqui that's good to hear that it wasn't the HD :-)
23:16 stevan luqui: back from you walk?
23:17 luqui yep
23:17 luqui got some good stuff figured out
23:17 luqui writing a docs/notes entry on it
23:17 stevan good :)
23:17 stevan cool
23:17 stevan when you are done ... please see my recent p6c post
23:17 stevan I sent that list o' types i promised
23:17 luqui neato
23:18 stevan I think I am probably completely wrong/crazy/on-crack, but I wanted to start the discussion off at least :)
23:18 stevan it would be nice to have something official I could build upon
23:18 stevan s/build upon/build PIL2 runcore upon/
23:20 svnbot6 r8568 | stevan++ | PIL/Native/Bootstrap/Container/Array.pil
23:20 svnbot6 r8568 | stevan++ | - added &keys, &values, &kv and &pairs
23:20 svnbot6 r8568 | stevan++ |     - added tests for these too
23:20 stevan I would be nice to start building up a reasonable class/roles heirarchy for PIL2, and I want to be sure it does not deviate too much from what is expected in Perl 6
23:21 * stevan dinner & # be back in a few hours probably
23:25 Debolaz leo: groups.google.com is nice to have. :)
23:25 webmind luqui, indeed
23:26 leo Debolaz: yup it's covered there too
23:27 Debolaz leo: I posted a reply to your post anyway. It should cover the "why"'s.
23:29 leo thanks
23:30 lisppaste3 joined perl6
23:43 frederico joined perl6

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

Perl 6 | Reference Documentation | Rakudo