Perl 6 - the future is here, just unevenly distributed

IRC log for #perl6, 2007-03-06

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:05 mdiep joined perl6
00:08 weinig|away is now known as weinig_
00:10 weinig_ is now known as weinig
00:24 Alias__ joined perl6
00:34 Alias__ joined perl6
00:40 explorer joined perl6
00:42 explorer joined perl6
00:48 explorer joined perl6
00:50 Loccccs joined perl6
01:02 Minidin joined perl6
01:04 TimToady_ @tell audreyt what would STR() do that Str() doesn't do already?  Also ITEM and LIST are already spelled $() and @(), so what would you do with %() and @@()?  Seems like this is just coming up with different names for the same thing.
01:04 lambdabot Consider it noted.
01:06 TimToady_ @tell audreyt along the same lines, far be it for me to reject something just because Python does it, but if we're going to do name mangling, I'd rather it use a more P6ish "foo:bar<HOW>" mangling of some sort where we get some proper delimiters on the mapped part.
01:06 lambdabot Consider it noted.
01:07 TimToady_ @tell audreyt meta:HOW might be suffient as short for meta:sym<HOW>, for instance
01:07 lambdabot Consider it noted.
01:08 TimToady_ @tell audreyt and that has the added benefit of being outside the user's ordinary identifier space
01:08 lambdabot Consider it noted.
01:12 Alias__ TimToady: For what it's worth, I'm not a big fan of uppercaseism
01:13 Alias__ Not referencing anything in particular by that, just noticing a general flavour of uppercasism starting to appear in the weekly summaries
01:16 tene Alias__: explain "uppercasism"?
01:18 drbean joined perl6
01:19 amnesiac joined perl6
01:20 TimToady_ in general, uppercase in P6 indicates something that is called magically.
01:20 TimToady_ so maybe it just means we have more things being called magically
01:22 TimToady_ and if it's not something being called automatically, perhaps it's a design mistake.
01:22 TimToady_ would need to see examples
01:23 Alias__ joined perl6
01:23 TimToady_ can't think of any uppercaseism that hasn't been in the design for some time, but I'm not good at accessing my memory for examples.
01:24 Khisanth joined perl6
01:25 TimToady_ or are you just referring to SHOUTING?
01:26 TimToady_ I guess Z and X are uppercase and not called automatically, but they're using uppercase to stand out from the list on either side.
01:28 tene Alias__: explain "uppercasism"?
01:33 Juerd TimToady_: In my experience, in between expressions, uppercase letters stand out less.
01:34 Juerd Because they're the same height as (), @, $, etc
01:34 Juerd (foo, bar) Z @quux
01:34 Juerd (foo, bar) z @quux
01:34 Juerd Though I personally still don't see any reason to have or use Z anyway :)
01:34 * Juerd doesn't know X yet.
01:35 TimToady_ don't need the parens on the left, so it's just foo, bar Z @quux
01:35 TimToady_ most of the time it's @foo Z @bar
01:35 TimToady_ X is the old XX
01:35 Alias__ TimToady: Well, for example, that XX thing
01:36 TimToady_ there is no XX
01:36 * Alias__ is a bit behind on the updates :)
01:36 BooK_ joined perl6
01:36 TimToady_ there's still X*X as a metaoperator
01:37 [particle] y as an operator SUX. Y is much better, imo.
01:37 TimToady_ there is no Y either.  :)
01:37 [particle] perhaps i should have used spoon and SPOON
01:37 TimToady_ though I would be surprised if the lambdacamels snuck in in as a shorter way to write $?BLOCK
01:38 [particle] if you're going to have ascii chars as operators, uppercase is better, is what i'm trying to say
01:38 [particle] *word chars
01:38 TimToady_ we get away with x because people are used to reading it symbolically from grade school
01:39 TimToady_ and it shows up frequently in 2x4 and such
01:39 Minidin joined perl6
01:40 Alias__ uppercase is a bit less huffman friendly though isn't it? In that we have to use two keys?
01:40 Alias__ (sorry, being called away for lunch)
01:42 TimToady_ "huffman friendly" implies both that common things should be easier and that uncommon things should be harder.  It specifically doesn't mean that everything should be shorter, which is not possible.
01:43 TimToady_ and in any case, I'm much more worried about how it looks than how hard it is to type
01:43 TimToady_ one reads it many more times than one types it, after all
01:44 [particle] that's promising
01:44 [particle] perl 5 := write only ; perl 6 := write once
01:45 tene unless it's delibirately obfuscated, I rarely have trouble reading perl5 code
01:45 tene "write-only" generally is just FUD, IME
01:45 [particle] it's a badge of honor for some
01:45 allbery_b "write-only" is mostly FUD, but there are some stunning examples of well-nigh unreadable code on CPAN :/
01:46 TimToady_ Perl 5 was pretty good at encouraging good huffman coding, but Perl 6 will be better, I think.
01:46 avar this is a bit late in the design but twigils on introspective methods as well as variables as to not pollute namespaces would be neato:)
01:47 avar $obj.?methods;
01:47 avar >:)
01:47 TimToady_ um that's exactly waht $obj.^methods is currently, I believe
01:47 tene ?eval vv('hello').^methods
01:47 evalbot_r15464 is now known as evalbot_r15480
01:47 evalbot_r15480 Error: ␤Unexpected "^"␤expecting ".", "\187", ">>", "=", operator name, qualified identifier, variable name, "...", "--", "++", "i", array subscript, hash subscript or code subscript
01:48 * avar looks at the syn to see what SHOUTING is used for then:)
01:48 [particle] HOW, WHERE, WHAT, etc
01:48 [particle] and $?BLOCK $?SUB...
01:48 [particle] i like those just fine
01:49 TimToady_ I consider them encouragement to give your lambdas better names.
01:49 [particle] the first are interrogatives (for introspection.)
01:50 [particle] WHERE_WERE_YOU_ON_THE_NIGHT_OF_THE_TWENTY_FIFTH? is best if shouted
01:50 [particle] it's more dramatic that way :)
01:50 avar map { uc } qw( what which who where how when why);
01:50 TimToady_ needs a bright lamp shining in your face too
01:51 TimToady_ ?eval map { .uc }, < what which who where how when why >
01:51 evalbot_r15480 ("WHAT", "WHICH", "WHO", "WHERE", "HOW", "WHEN", "WHY")
01:56 TimToady_ @tell audreyt and HOW can certainly not be dispatched as an ordinary __HOW__ method since the whole point of HOW is to decide which kind of dispatcher to use.  If WHAT maps to something like .HOW.deep:<WHAT> that's fine though.
01:56 lambdabot Consider it noted.
02:20 dmq joined perl6
02:20 rhr what's the difference between give and leave?  Was give renamed leave?
02:24 TimToady_ leave was only renamed to "give" for about a day before we reverted it.
02:24 TimToady_ but it's form changed to Label.leave(retval)
02:29 rhr OK, there are still some references to give in S02 and S06
02:29 ayrnieu joined perl6
02:33 yip joined perl6
02:48 putter joined perl6
02:59 qmole_ joined perl6
03:00 dduncan ping Juerd
03:00 dduncan I didn't talk to you since before I added some ext/ stuff on your behalf.
03:01 dduncan Did you have a chance to look at that yet, and see if it was like what you proposed?
03:01 dduncan 2 weeks ago
03:03 specbot6 r14311 | larry++ | the change back from .give to .leave was incomplete as noted by rhr++.
03:21 forsaken joined perl6
03:41 Alias__ joined perl6
03:50 svnbot6 r15481 | putter++ | yet_another_regex_engine - Can now be swapped for PCR as pugs's p6 regex engine.  But many failing tests.  Began sigspace, embedded :p5, and aliases.
04:01 mako132_ joined perl6
04:01 b00t joined perl6
04:41 hcchien joined perl6
04:46 Schwern joined perl6
04:57 nekokak joined perl6
05:13 khisanth_ joined perl6
05:14 audreyt joined perl6
05:15 audreyt TimToady_: $() and @() does not imply rvalue
05:15 lambdabot audreyt: You have 5 new messages. '/msg lambdabot @messages' to read them.
05:17 TimToady_ ah, ok
05:18 audreyt the idea is that in lvalue context
05:18 khisanth_ is now known as Khisanth
05:18 audreyt VAR(expr())
05:19 audreyt is just the expr() node
05:19 audreyt while in rvalue-item context it actually calls
05:19 audreyt ITEM(VAR(expr())
05:19 audreyt and rvalue-list context it does
05:19 audreyt LIST(VAR(expr())
05:19 audreyt it's not that different from existing context hinter
05:19 audreyt &item and &list
05:19 TimToady_ what does @@() look like in rvalue context?
05:20 audreyt but in the implementation we call them automatically
05:20 audreyt %() in rvalue is just LIST()
05:21 audreyt @@() may need another hint. FEED() ?
05:21 audreyt MATRIX()? MULTISLICE()?
05:21 TimToady_ UNFLAT?
05:21 audreyt anyway, I started with just VAR(@foo).item and VAR(@foo).list
05:22 audreyt but then automagically calling lowercase stuff feels wrong
05:22 audreyt re the meta:HOW question... it's true that we need a special dispatch just for HOW
05:22 audreyt and all others can be derived or defined
05:22 audreyt what about if the HOW magic method is spelled
05:22 audreyt $obj."" ?
05:22 audreyt you see, I still want to hijack the regular call-method node instead of inventing a new operation
05:23 audreyt but if it's not kosher, I'll deal
05:23 dec_ is now known as dec
05:23 TimToady_ well $obj."" might be sufficiently not kosher to work.  :)
05:23 audreyt woot
05:23 audreyt maybe @@() in rvalue is spelled LOL()
05:23 TimToady_ :D
05:24 TimToady_ well, really list of capture, but still
05:24 TimToady_ I just didn't want the standard method dispatcher claiming that it knew how to do HOW for every kind of object.
05:25 audreyt but isn't it kind of the point?
05:25 audreyt i.e. for all objs, even foreign
05:25 audreyt we can all get the HOW of them
05:25 TimToady_ the MOP needs to be pluggable, and HOW is the plug
05:25 audreyt right. so it's not in the stdmethdisp
05:25 audreyt the responder is bundled with the object
05:25 audreyt in MO, an object is
05:25 audreyt (invocant, vtable)
05:26 audreyt and the vtable is anything that handles dispatch
05:26 audreyt what I'd like is an entry for the vtable to reflect itself
05:26 audreyt sending the null message seems to be as good a way as any
05:26 audreyt in which case it means "ignore the invocant and reify yourself as an object"
05:26 TimToady_ we need surreal HOWs.  :)
05:27 audreyt mm, a list of captures. CAPS()?
05:27 audreyt ALLCAPS()
05:27 tene hehe
05:27 TimToady_ CAPSLOCK()
05:27 PerlJam TimToady_: Whenever I see HOW, I think of the indians from Peter Pan.
05:29 svnbot6 r15482 | putter++ | misc/pX/Common/yet_another_regex_engine/README - Review objectives, status.  Considering dropping project.  Feedback encouraged.
05:29 TimToady_ on the name mangling front, I've been wondering whether there should be some consistent notation for semantic operations, so instead of "infix:<+> is deeply" we have some kind of "infix:deep<+>" or other
05:30 sahadev2 joined perl6
05:31 TimToady_ or deep:infix<+>, or whatever
05:31 TimToady_ then deep:DOODOO is short for something like deep:prefix<DOODOO>
05:32 putter weary :)
05:32 TimToady_ you don't need feedback, you need encouragment.  :)
05:33 sahadev2 hello, is GHC 6.6 required to compile pugs? I have GHC 6.4.2 installed on my ubuntu system. would that be good enough?
05:33 TimToady_ 6.6 required now
05:33 audreyt sahadev2: 6.6 for trunk, 6.4 for the prev release
05:33 sahadev2 i just updated my svn tree to rev 15482
05:34 TimToady_ then 6.6
05:34 sahadev2 i guess i will try to install 6.6 then
05:34 TimToady_ do you have a commit bit yet?
05:34 sahadev2 thanks
05:34 putter sahadev2: do you have a commit bit yet?
05:35 sahadev2 I do. for a few months, but haven't been able to do anything related to pugs in the last few months. trying to get back in and make some sense out of it.
05:35 TimToady_ cool
05:35 TimToady_ is now known as TimToady
05:37 sahadev2 i am basically a Perl programmer with zero haskell-fu. i will have to see what i will be able to do. my interest now is to just understand what's going on in the Perl 6/pugs world. contributing something meaningful may be quite a ways off.
05:37 sunnavy joined perl6
05:37 PerlJam sahadev2: writing about your experience would be a meaningful contribution.
05:37 PerlJam (as you "get back in"
05:37 PerlJam )
05:37 * putter stares at screen, thinking TimToady lost his tail.  Chomp()ed.  "Lost tail".  ... End of day.
05:38 jrockway if only you could tack a \n onto your nick :)
05:38 putter :)
05:38 Patterner and colours...
05:39 putter re encouragment, but in what direction, with what objectives.  but that's for another day.
05:39 putter good night all &
05:47 dolmans joined perl6
06:06 gaal hey
06:08 audreyt yo
06:08 audreyt making food, sec
06:08 audreyt plan to implement the proper ."" nonkosher dispatch after that
06:14 gaal I was thinking something like ${^Perl5_crazy_vars} could work too
06:14 gaal or just prepend a NUL or something
06:17 audreyt I like ."" more
06:17 audreyt at least we can type it
06:18 gaal pretty thight namespace there though
06:18 nlitsme joined perl6
06:20 audreyt but obj is just (inv, how)
06:20 audreyt so it's appropriate that .how can reflect, I guess
06:26 BooK joined perl6
06:26 * gaal rereads the conversation because he feels he's missing something
06:31 gaal ok, I think I get it now.
06:32 gaal ."" has the benefit of not slowing down stuff very much, either
06:33 gaal (null :: ByteString -> Bool is extremely fast)
06:37 rfordinal joined perl6
06:45 masak audreyt: it's so good to have you blogging again
06:48 masak the "vv('hello, world').HOW" of http://pugs.blogs.com/pugs/2007/03/mo_bridge_landi_1.html doesn't work in my r15481 build
06:48 lambdabot Title: Pugs: MO bridge landing!
06:48 masak it says "Can't locate object method "HOW" of invocant: "hello, world""
06:48 masak maybe that's a known one
06:50 audreyt well it's temporarily renamed to .__HOW__
06:50 audreyt I'll rename it back
06:50 audreyt in a bit, via a macro
06:51 masak ah :)
06:51 masak .__HOW__ works ok over here
06:54 REPLeffect joined perl6
06:55 jisom joined perl6
06:55 svnbot6 r15483 | audreyt++ | * Rename __HOW__ back to HOW for now; it'll be converted to macro soon.
06:55 svnbot6 r15483 | audreyt++ | * Also, passing objects into Perl5 should work again.
06:56 geoffb joined perl6
06:56 audreyt masak: there you go
06:56 audreyt bbiab...
06:57 geoffb What does this error mean: "*** Cannot cast from Pugs.Val.PureStr to Ptr ()"?
06:57 audreyt it means you're on r15482 and not r15483
06:57 geoffb heh
06:57 masak :)
06:58 geoffb OK, time to pull
06:58 audreyt (I accidentally broke coercion from objects to SV)
06:58 pasteling "evalbot_r15482" at 194.145.200.126 pasted "Pugs build failure" (426 lines, 25.4K) at http://sial.org/pbot/23295
06:59 geoffb hmmm, build fails
06:59 geoffb trying make clean first
06:59 audreyt it's link error it seems
07:00 TimToady I get it with 15483 too
07:04 audreyt remaking on feather
07:04 TimToady up to [60 of 111]
07:06 b00t joined perl6
07:10 svnbot6 r15484 | audreyt++ | * Pugs.Prim.Keyed: Fix keyed access into PerlSV.
07:12 geoffb Oh sure, check in the fix just when I get done building the last rev ....
07:12 geoffb ;-)
07:12 svnbot6 r15485 | audreyt++ | * isa_ok against unblessed Perl 5 refs currently loops;
07:12 svnbot6 r15485 | audreyt++ |   flunk the test for now.
07:12 gaal geoffb: "make ghci" :)
07:12 audreyt geoffb: the build should take just 1sec
07:12 audreyt it doesn't change the interface of Keyed.hs
07:12 audreyt so it should be the only one that gets rebuilt
07:13 audreyt (separate compilation)++
07:13 geoffb 15485 built, testing ...
07:13 offby1-damnit joined perl6
07:13 gaal audreyt: speaking of which, do we at all care about orphan instances? we have those.
07:13 audreyt gaal: not at all
07:14 geoffb Well, that bug is fixed ... I need to figure out whether the next one is in the P5 binding, or my code
07:14 audreyt at some point -fno-warn is fine
07:14 audreyt geoffb: the perl5 binding is currently undergoing surgery... I'd be happy to see more bugs coming to t/perl5/
07:14 audreyt geoffb: but the new binding code is much more robust
07:14 audreyt e.g. when you call an nonexisting method, it reports as such; also there is proper AUTOLOAD support; etc
07:15 gaal audreyt: if I understand the warning correctly, it just means compilation's a bit slower than it could have been?
07:16 audreyt gaal: yes but the speed diff is negligible
07:16 the_dormant joined perl6
07:17 Schwern joined perl6
07:17 gaal audreyt: ack
07:18 geoffb Boo-yah, got a small bit of P6 -> P5 code working ... now for more complex case
07:20 TimToady on the test timeout problem, I note that this successfully kills pugs:
07:20 TimToady my $x = sub { use v5; alarm 5; $SIG{ALRM} = 'DEFAULT'; }
07:21 gaal huh.
07:21 TimToady at least on Unix
07:21 TimToady well, you have to call the sub too...
07:22 gaal anybody want to implement %*SIG in pugs?
07:23 TimToady it's not clear we want to implement %*SIG in Perl 6...
07:23 gaal I wonder what doesn't play nice with GHC's runtime in perl5's innards there
07:24 TimToady well ALRM is supposed to be a fatal signal by default
07:24 TimToady I suspect GHC is changing it to IGNORE or some such
07:24 TimToady or it installs its own handler and throws away the alarm
07:24 gaal TimToady: oh? because it may not be portable? so how do you do signals on those platforms that do support it?
07:25 gaal Some Module?
07:26 TimToady dunno, just not assuming a hash is necessarily the right interface
07:26 audreyt it's fatal because we did not install handlers via System.Posix.Signals / GHC.ConsoleHandler (win32)
07:27 audreyt so we can catch it all right
07:27 audreyt how do we tell the perl5 runtime about a signal again?
07:27 audreyt what's the api for that?
07:27 TimToady my $x = sub { use v5; alarm 5; $SIG{ALRM} = 'DEFAULT'; }
07:27 TimToady you mean the internal api?
07:27 audreyt yes
07:27 audreyt as in XS api
07:28 geoffb joined perl6
07:28 TimToady you could still fiddle with the hash; it's basically just tied
07:28 audreyt curious despatch_signals is spelled despatch_signals
07:28 TimToady magic, really
07:29 * geoffb mutters to himself about bloody keyboards
07:29 TimToady heh
07:29 geoffb Why does the commented version work, but the uncommented one errors?
07:30 geoffb Grrr
07:30 geoffb hold on
07:30 geoffb Camel3D.new().main;
07:30 geoffb # my $camel = Camel3D.new;
07:30 geoffb # $camel.main;
07:30 geoffb there we go
07:30 audreyt seems to be Perl_csighandler
07:31 audreyt gaal: what is this Camel3D?
07:31 audreyt er
07:31 audreyt geoffb: what is this Camel3D? and what's the error?
07:31 TimToady I would guess that "despatch" is a Sarathy spelling
07:31 geoffb "Undefined subroutine &main:: called."
07:32 geoffb It's a port of the Perl 5 graphics code I wrote for perl.com many moons ago.
07:32 audreyt can I duplicate this error?
07:32 TimToady I was getting that error when I tried "use v5" in something that wasn't an anonymous sub
07:33 audreyt also, try "my $camel := Camel3D.new"
07:33 cognominal joined perl6
07:33 audreyt if I can duplicate it, I know where to fix...
07:33 geoffb give me a sec, I'll upload the code somewhere
07:34 TimToady use v6-alpha; sub foo { use v5; alarm 5; $SIG{ALRM} = 'DEFAULT'; } foo();
07:34 TimToady that fails
07:34 audreyt k fixing
07:35 marmic joined perl6
07:36 geoffb First: this code is resurrected from a port I did quite a while ago, so I'm sure a lot of stuff is out of date.  Still:
07:36 geoffb http://www.broadwell.org/dl/step032.p6
07:37 audreyt installing sdl
07:38 geoffb Now *that* is dedication ...  ;-)
07:39 TimToady dedication is only one remove from foolhardiness.  :)
07:39 * geoffb finding next bug in code
07:40 audreyt ok, got it. fixing
07:40 geoffb bah -- been away from the syntax for two long
07:42 offby1` joined perl6
07:43 offby1` is now known as offby1
07:43 geoffb How would I currently say @{$foo<bar>} ?
07:43 audreyt @($foo<bar>) = ...
07:43 lambdabot Unknown command, try @list
07:44 geoffb ah, s,{,(, then
07:44 TimToady but you don't need the @ as many places as Perl 5 would require it.
07:44 TimToady you can just push $foo<bar>, $baz for instance
07:45 shay_ joined perl6
07:46 audreyt fixed.
07:46 svnbot6 r15486 | audreyt++ | * Fix the "main::" error when evaluating perl 5 closures that
07:46 svnbot6 r15486 | audreyt++ |   closes over zero lexical variables.
07:46 audreyt it had code like
07:46 audreyt my () = @_
07:47 audreyt for some reason perl5 did not like it
07:47 TimToady someone stupid must have written that compiler
07:47 geoffb clearly  :-)
07:48 TimToady ?eval my () = 123
07:48 audreyt evalbot currently recompiling
07:48 audreyt ftr, pugs does not like it either
07:48 audreyt I wonder if STD likes it?
07:48 TimToady hmm
07:49 geoffb hmmm, apparently something else wrong in my code, because now I appear to be locking it up.  hmmm ...
07:49 TimToady looks like it should allow a () signature there
07:51 audreyt geoffb: does r15486 fix the error for you as well?
07:51 geoffb hold on, will check
07:51 TimToady 'course, STD doesn't try to do anything semantic yet, which is where it'd have to be smart enough to deal with a signature that contains no parameters
07:52 geoffb audreyt: yep, worked like a charm
07:52 audreyt woot
07:53 TimToady and in fact the signature rule is not well written to capture the separator information
07:54 BooK joined perl6
07:59 geoffb audreyt: repull step032.p6 from above, and look at method end_frame
07:59 geoffb Uncommented version works fine.
07:59 geoffb Commented version just seems to go to sleep.
07:59 geoffb Have to ctrl-c in controlling xterm
07:59 geoffb But at least that works
08:01 audreyt weird. will fix.
08:04 audreyt TimToady: so if I'd like to intecept all calls to
08:04 audreyt $SIG{ALRM}=...
08:04 audreyt in p5 land
08:04 audreyt is the preferred way to do this in pugsinit?
08:04 audreyt MGVTBL_SET(PL_vtbl_sigelem, ...our own ptrs...)
08:05 Alias__ joined perl6
08:05 audreyt or rather
08:05 audreyt PL_vtbl_sigelem = {...our own ptrs...}
08:05 audreyt is there a saner way to do that?
08:06 TimToady I wonder whether an ordinary tie would override it...
08:06 audreyt perl -MTie::Hash -e 'tie %SIG, "Tie::Hash";'
08:06 audreyt this loops perl
08:06 audreyt how convenient
08:07 * audreyt ponders what's wrong
08:07 audreyt using other tie backends may work. testing
08:07 audreyt no, the mg still fires
08:08 audreyt or rather, it seems to ignore tie
08:08 TimToady maybe rename the magic so it isn't found, and then tie
08:09 audreyt hm, %SIG reports     hash quality = 101.0%
08:09 audreyt very good quality
08:10 audreyt the unmagic needs to be done in XS land it seems
08:10 TimToady possibly a local(%SIG) will help, but probably not
08:10 audreyt that worked.
08:10 audreyt TimToady++
08:11 audreyt so we tie %SIG into the perl6 land %*SIG?
08:12 TimToady %*SIG is unspecced
08:12 gaal %*__PYTHON_OH_WAIT_NO_PERL5_SIG
08:12 TimToady arguably signals should be treated more like events
08:14 geoffb What is $?SELF now?
08:14 TimToady self
08:14 geoffb (sorry for giving everyone flashbacks)
08:14 TimToady or $.meth
08:14 TimToady including $.meth(args)
08:15 audreyt and $.meth: args
08:15 TimToady %.meth @.meth &.meth also acceptable hinters
08:17 audreyt yay the PiH book is out! it's as close to Llama for Lambdas as it gets
08:17 audreyt http://www.cs.nott.ac.uk/~gmh/book.html
08:17 lambdabot Title: Programming in Haskell
08:22 geoffb bak
08:22 geoffb hmmm, where is chapter and verse for $.meth syntax?
08:23 iblechbot joined perl6
08:24 TimToady S12:468
08:24 audreyt S12:473
08:25 audreyt I wonder if I should give in and just buy paul graham's "ANSI Common Lisp".
08:25 audreyt or this "Programming in Ada 2005"
08:27 penk joined perl6
08:28 TimToady I suppose that depends on how soon you want to write a Lisp or Ada back end.  :)
08:29 audreyt I just would like to learn the two important influences to Perl :)
08:29 audreyt Ada05 looks like a very good very advanced language, though.
08:29 TimToady Lisp was not really that great an influence...
08:29 audreyt in any case it is now...
08:30 TimToady well, much like Smalltalk, the influence is mostly indirect
08:30 audreyt *nod*
08:30 audreyt TimToady: did you program in Ada?
08:30 TimToady mostly only on paper
08:31 audreyt interesting media
08:31 TimToady about the time Ada compilers actually started coming out, I moved to C
08:31 TimToady I remember playing with the early compiler written in setl which was written in lisp.
08:32 TimToady it rand about 2 statements a second or so.
08:32 TimToady *ran
08:33 * audreyt notes the SETL->ABC->Python lineage
08:34 evalbot_r15485 joined perl6
08:38 geoffb Is there a cleaner way to say this: &::($action).(self: $command, @args);
08:38 geoffb $action being a string containing the name of a method
08:38 audreyt self.$action($command, @args)
08:38 geoffb thank god.
08:38 audreyt just what you'd expect, actually
08:38 audreyt :)
08:38 geoffb That's roughly what the perl 5 looked like, but the monstrosity above was working around that syntax not working when I first tried the port
08:39 audreyt TimToady: should $.$action(1,2,3) work?
08:41 geoffb audreyt: hmmm, cleaner version no worky.  Another sleeper bug.
08:42 audreyt interesting.
08:42 TimToady audreyt: I expect that should probably work
08:43 audreyt duplicated
08:43 audreyt fixing
08:43 TimToady STD seems to be missing point blocks entirely.  :/
08:43 TimToady *pointy
08:45 geoffb http://www.broadwell.org/dl/step040.p6 now has three lines marked # XXXX: Pugs sleeper bug
08:45 geoffb Two are nearly equal
08:46 audreyt got the bug. fixing
08:50 audreyt the bug is a semantic one
08:51 svnbot6 r15487 | lwall++ | missing pointy blocks and for's expression
08:51 svnbot6 r15487 | lwall++ | nameroots didn't follow sym pattern
08:51 svnbot6 r15487 | lwall++ | allow file-scoped package_decl to follow use and such.
08:51 audreyt TimToady: how does
08:51 audreyt $x.'++'
08:51 audreyt know that it must VAR($x)?
08:51 audreyt or rather
08:51 audreyt $x."{expression that evalutes to ++}"
08:51 audreyt or does a late-resolved method form always assume rvalue on part of its invocant?
08:52 TimToady good question, not sure I'm awake enough to answer it...
08:52 audreyt ok... that's the bug geoffb is running into
08:52 audreyt I'll just assume rvalue for now.
08:53 f0rth joined perl6
08:53 audreyt sure enough that fixed the bug. committing
08:53 TimToady I note that Perl 5 doesn't fail 1++ until runtime.
08:54 audreyt $ perl -ce '1++'
08:54 audreyt Can't modify constant item in postincrement (++) at -e line 1, near "1++"
08:54 audreyt -e had compilation errors.
08:54 audreyt uhm.
08:55 TimToady hmm, yeah, but when you type it in directly it doesn't fail till you type ^D
08:55 TimToady caught in peephole optimizer, maybe
08:56 audreyt constant folding, perhaps
08:56 TimToady constant folding usually happens early
08:56 audreyt *nod*
08:56 geoffb audreyt: fixed bug committed?
08:57 audreyt geoffb: yup
08:57 svnbot6 r15488 | audreyt++ | * Dynamic methods such as $x.$meth should evaluate $x
08:57 svnbot6 r15488 | audreyt++ |   in rvalue (ITEM) context instead of lvalue (VAR) context.
08:57 svnbot6 r15488 | audreyt++ |   Reported by: geoffb++
08:57 geoffb there it is
08:58 audreyt yay, google.tw talk rescheduled to this Friday
08:58 audreyt <- in much better shape to talk about perl6 now
08:58 audreyt and I don't have to work that hard on slides this time ;)
08:58 drrho joined perl6
08:59 dduncan left perl6
08:59 geoffb audreyt: hmmm, still seems to sleep for me.
09:00 TimToady speaking of which...
09:00 TimToady zzz &
09:00 geoffb Did you make the fix work for the special case of self.$meth as well as $x.meth?
09:00 geoffb TimToady: g'night
09:00 audreyt TimToady: sleep well
09:01 REPLeffect self.$meth  (that sounds illegal) :-)
09:02 audreyt some of meths are legal :)
09:03 audreyt geoffb: limited testcase here seems to work
09:03 audreyt I'm still having problems installing sdl
09:03 geoffb audreyt: bleah, damn sdl.
09:03 audreyt can you try this
09:03 audreyt my $self = self;
09:03 audreyt $self.$meth
09:03 audreyt etc
09:03 audreyt ?
09:03 geoffb yep, will do
09:03 audreyt also you can trace which line was causing the loop
09:03 audreyt using
09:03 audreyt pugs -d step040.p6
09:04 geoffb still looping
09:04 geoffb running trace
09:06 geoffb pasting a few lines of what I think is the loop
09:06 audreyt k
09:07 pasteling "geoffb" at 64.142.64.78 pasted "looping trace" (10 lines, 1.2K) at http://sial.org/pbot/23301
09:07 geoffb I'm not sure where the exist repetition boundary is, but there are a lot of copies of those 10 lines
09:08 geoffb s/exist/exact/
09:08 geoffb audreyt: what distro are you running?
09:09 audreyt geoffb: OSX
09:09 audreyt geoffb: try forcing eager evalution:
09:09 geoffb ouch.  Yeah, SDL_Perl is known to be hard to install there
09:09 Alias__ joined perl6
09:09 audreyt if ($command.does(Array)) {
09:09 geoffb (outright impossible for many versions)
09:09 audreyt    my $new_command = $command.shift;
09:10 audreyt    @args = @$command;
09:10 audreyt    $command = $new_command;
09:10 audreyt }
09:10 geoffb OK, trying
09:10 audreyt I know you shouldn't have to do this, and assignment should be eager
09:10 nwc10 left perl6
09:10 audreyt but this looks like a circular definition bug
09:13 geoffb Still doesn't fix it.
09:15 audreyt try "say @args" and "say $command"
09:15 * audreyt rethinks the situation
09:16 audreyt and this only happens with late calls?
09:16 audreyt &::($action) does not cause it?
09:16 audreyt what about self.$process($event); below?
09:16 audreyt does it loop if you use &::($action) above?
09:18 geoffb audreyt: I actually was adding those same says, and they worked but did not change the behavior
09:18 geoffb hold on, checking
09:19 geoffb hold on, checking
09:19 geoffb Ooops
09:19 geoffb I was going to say, yes, &::($action) ... works fine
09:19 geoffb checking whether change to version in process_events can be fixed
09:21 geoffb Yep, $command = self.$process($event); sleeps, as does version split into $self = self, $self.process ...
09:22 geoffb But version $command = (&::($process).(self: $event)) works fine
09:22 audreyt and how does self.$process($event) loop with -d?
09:22 geoffb checking
09:22 audreyt can you paste a bit more context?
09:23 geoffb I'll try, it gets scrolled away really damn fast
09:23 audreyt Can't use an undefined value as an ARRAY reference at make/lib/SDL/Build.pm line 154.
09:23 audreyt very useful ;)
09:23 geoffb heh
09:26 pasteling "geoffb" at 64.142.64.78 pasted "Many, many copies of below:" (5 lines, 466B) at http://sial.org/pbot/23302
09:26 geoffb Sorry, context scrolled away in a fraction of a second
09:26 audreyt 2>log
09:27 audreyt ./pugs -d foo.p6 2>log
09:27 audreyt wait a second then ^C?
09:27 geoffb OK, will do
09:29 geoffb Hmmm, not enough wait
09:29 geoffb retrying
09:31 andara joined perl6
09:32 geoffb Uploading log, warning: several MB
09:32 geoffb damn DSL asymmetry
09:33 audreyt bzip2 will help
09:33 geoffb duh.
09:33 * geoffb too tired to see obvious
09:34 audreyt maybe sleep after upload first
09:34 audreyt I'll eventually get SDL to install ;)
09:34 geoffb Holy crap, 5.4 MB -> 33 KB
09:35 audreyt glad
09:35 geoffb loop.log.bz2 in my dl dir
09:36 geoffb If you manage to get SDL_Perl to install on OS X, please tell me how!  I'd love to be able to make cool stuff for my wife's PPC Mac ....
09:40 audreyt k
09:40 audreyt I'll return to debug once ports finishes to reinstall sdl
09:41 audreyt so please use the &::() workaround first, but I'll fix that
09:41 geoffb k
09:57 jisom_ joined perl6
09:58 gaal remoose
09:58 aukjan|gone is now known as aukjan
09:59 geoffb demoose
09:59 gaal isLoose
10:01 geoffb joined perl6
10:02 geoffb zzz &  # I hope
10:05 the_dormant joined perl6
10:20 elmex joined perl6
10:42 hcchien joined perl6
10:45 svnbot6 r15489 | audreyt++ | * The "HOW" call is now dispatched by ."".
10:45 svnbot6 r15489 | audreyt++ | * Also rename __ITEM__ and __LIST__ back to ITEM and LIST
10:45 svnbot6 r15489 | audreyt++ |   as they are not super-magical; indeed the user is free
10:45 svnbot6 r15489 | audreyt++ |   to define them.
10:48 gaal cmarcelo: I found the docs useful, thanks!
10:49 audreyt note however I retired the Codeable concept
10:49 audreyt as it's really one-and-the-same as CompiledMethod
10:50 audreyt the class is still there, but it's not in use
10:51 audreyt grep WHICH 10
10:51 audreyt oops.
10:51 gaal actually that was one of the things I remained unclear on: in what sense is the method compiled?
10:52 audreyt a method is compiled when it is attached into a concrete class
10:52 audreyt 's concrete named-method body
10:52 audreyt instead of, say, an anonymous method object
10:52 audreyt or, say, a method in a role
10:53 gaal why is that called compilation and not resolution?
10:53 gaal or: is it "attached" in the sense that a Hs closure is created binding them?
10:54 audreyt the latter
10:54 audreyt "Compiled" means it carries a real Hs Code Ptr
10:54 audreyt instead of a Exp
10:54 gaal *nod*
10:54 audreyt representing the anonymous method body
10:54 audreyt it's known as Prim in oldvalland
10:54 audreyt the idea is that you can eventually take Exp
10:55 audreyt and then upon class composition time, generate some Hs code
10:55 audreyt and eval it away
10:55 audreyt getting back a "compiled" method
10:55 audreyt mostly for performance, though currently we probably simply say "evalExp"
10:55 audreyt instead of doing any runtime codegen-to-hs
10:56 audreyt that is definitely the goal though.
10:57 audreyt PerlSV bridge I think is (mostly) fixed
10:57 * audreyt ponders what to do next
10:57 audreyt 1) kill the thole VRef concept and gets us Sane Container Objects
10:58 audreyt 2) kill the VObject concept and gets us Sane User-Declared Classes
10:59 audreyt 3) kill the VHandle/VSocket concepts and support IO layers etc
10:59 audreyt 4) kill VInt/VNum concepts and put their methods from Prim into Meta
11:00 audreyt gaal: preference?
11:01 gaal 1 and 2 probably have the most immediate yellow-inducing potential to the test suite :)
11:02 audreyt I'll do 1 then
11:02 audreyt choose a container?
11:02 audreyt @ % $
11:03 audreyt $ is probably most fun of all
11:03 audreyt since it has this rvalue/lvalue nonduality
11:03 audreyt I'll do that first then
11:03 integral audreyt++
11:04 gaal make $ fast
11:04 polettix joined perl6
11:04 audreyt gaal++
11:08 DHGE joined perl6
11:10 gaal anything I can help with?
11:13 gaal (any(1..4) in their entirety are a little too big, but..)
11:15 buetow joined perl6
11:16 audreyt why yes
11:16 audreyt add more methods to Str :)
11:17 gaal via p5bridge?
11:17 audreyt that will likely exercise our ... instances
11:18 audreyt (...) instances
11:18 audreyt well, I was n't thinking about p5bridge
11:18 gaal hmm, where's a good list of methods in Str?
11:18 gaal or just scan Prim.hs
11:18 audreyt Prim and docs/Perl6/Spec/Functions.pod:102 onwards
11:18 audreyt see we have a spe!
11:18 audreyt *spec
11:18 gaal yay :)
11:19 audreyt some of them may be multimethods. in which case define one "long name" for each variant
11:20 audreyt we'll bridge them into userland (with proper signature checking) via prelude
11:20 audreyt which will replace the bigtable in Pugs.Prim
11:20 audreyt i.e. "class Str { method reverse () { ... } }"
11:20 audreyt actually, to follow Timtoady
11:20 audreyt "class Str { method reverse () { * } }"
11:20 gaal I was wondering about optional args, e.g. the simplest one I could think of was join, which uses space as the default delimiter
11:21 gaal but I guess that can be frontended too?
11:21 audreyt that is frontended
11:21 audreyt in hs-land all optionals are already filled in
11:21 gaal unless we implement sigthru in haskell..
11:21 audreyt that may not be very sane...
11:21 gaal heh, okay.
11:21 audreyt I think I want our signatures in p6 syntax
11:22 audreyt anyway, the Hs prim receives simply [:Val:]
11:22 audreyt i.e. all named-positionals already translated to positional
11:22 audreyt so don't worry about names
11:22 audreyt but it may be good convention to reuse names in hs code
11:23 gaal so for example:
11:23 gaal our Str multi join ( Str $separator = ' ', *@values )
11:23 audreyt that's a sub
11:23 audreyt not a method
11:23 audreyt so not part of Str method table
11:23 gaal "join" ... (\[: separator:values :] -> ..)
11:23 audreyt the only one in the table is
11:23 gaal sorry:
11:23 gaal our Str multi method join ( @values: Str $separator = ' ' )
11:24 audreyt I think that is a typo...
11:24 audreyt should simply by
11:24 audreyt be
11:24 audreyt ( @values )
11:24 audreyt hm
11:24 gaal because self is the separator?
11:24 gaal isn't that backwards
11:24 audreyt ?eval "foo".join(1,2,3)
11:25 evalbot_r15485 is now known as evalbot_r15488
11:25 evalbot_r15488 "1foo2foo3"
11:25 audreyt I think it's clearly saner than
11:25 gaal huh
11:25 audreyt "foo".join([1,2,3], 'bar') # 1bar2bar3
11:25 audreyt so the Function spec is probably not to be trusted ;)
11:25 gaal <1 2 3>.join(", ")   # I thought it would be
11:25 gaal but that's of course not in Str
11:26 audreyt right. that is in List
11:27 gaal <x>.join("y") and "x".join("y") produce very different things then :)
11:27 gaal but then, it does make perfect sense
11:28 gaal so how do I get a @values, as one Val?
11:29 audreyt you can choose actually
11:29 audreyt anything that has MethodPrimable can do
11:30 audreyt let me define [Val] and [:Val:] for you
11:36 svnbot6 r15490 | audreyt++ | * Pugs.Class: Instances for getting the arguments as [:Val:],
11:36 svnbot6 r15490 | audreyt++ |   [Val], or Boxable a => [a].
11:37 gaal cool
11:43 audreyt hm, our Pad itself contains VRefs. this is going to be fun...
11:43 gaal ~:/
11:43 audreyt obviously the first thing to do is to redefine VRef ;)
11:45 gaal (type inference)++
11:45 gaal yay!
11:45 gaal pugs> vv("X").join("1","2","3")
11:45 gaal "1X2X3"
11:45 gaal pugs> vv("X").join(vv("1"),"2","3")
11:45 gaal "1X2X3"
11:46 gaal now the question is whether I can benefit from your instances to avoid MkStr . ... . unStr here:
11:46 gaal    , "join"        ... (\self values -> MkStr (Str.join (unStr self) (map unStr values)))
11:47 gaal probably not as ByteStr itself isn't coercible, is it
11:47 audreyt you can replace all the MkStr and unStr to cast ;)
11:47 audreyt not that it helps that much
11:48 iblechbot joined perl6
11:48 audreyt maybe we shouldn't newtype PureStr ;)
11:48 audreyt instead just install it as type synonym
11:48 audreyt now that anything typable can be made boxable
11:48 gaal but then we can't derive stuff on it
11:48 audreyt it seems to have little point to newtype things
11:48 audreyt well yes, we just instance it
11:48 gaal *nod*
11:49 audreyt please go ahead and do that :)
11:49 gaal ok :)
11:51 svnbot6 r15491 | gaal++ | * Str.join
11:52 pnu joined perl6
11:52 Alias__ joined perl6
11:53 audreyt now let's play another type magic...
11:54 audreyt @pl \x args -> return (f x args)
11:54 lambdabot (return .) . f
11:54 gaal :)
11:54 gaal it's actually
11:55 gaal @pl \x args -> f x args
11:55 lambdabot f
11:55 gaal hehe or rather
11:55 gaal @pl \x args -> g (f x args)
11:55 lambdabot (g .) . f
11:55 pasteling "evalbot_r15488" at 194.145.200.126 pasted "Pugs build failure" (478 lines, 30.1K) at http://sial.org/pbot/23304
11:56 gaal which is, well, the same as the return case where g = return
11:56 audreyt hm, incremental compilation in 6.6 seems to be hosted
11:57 audreyt *hosed
11:57 gaal there's this "identify a programmer's language by looking at their keyboards" page being linked to lately
11:57 gaal somehow I can see my '@', 'p', and 'l' keys wearing down in the coming weeks...
11:59 svnbot6 r15492 | audreyt++ | * Pugs.Class: Auto-generate all pure MethodPrimable instances
11:59 svnbot6 r15492 | audreyt++ |   from Eval instances.
12:00 * audreyt goes back to VRef-land from type-trickery land
12:00 audreyt did I mention the size of Pugs.AST.Internals is annoying? :-)
12:01 gaal we should rename it to Hydra
12:01 audreyt fortunately at the end of day the bulk of it (the Value definitions and various casts) will Simply Be Gone
12:01 audreyt well, that day is not today
12:01 audreyt but still
12:02 gaal http://www.haskell.org/ghc/docs/latest/html/users_guide/type-extensions.html#newtype-deriving scares me; I'm looking at the manual instances e.g. ((:>:) ID) String and they look very non-trivial
12:02 lambdabot Title: 7.4. Type system extensions, http://tinyurl.com/uxvor
12:03 audreyt ghc/compiler/typecheck/TcDeriv.lhs:316 onwards
12:03 audreyt if you're interested
12:04 gaal thanks; my practical concern is writing out src/Pugs/Val.hs:79 and abouts by hand
12:04 audreyt uh
12:04 audreyt type PureStr = ByteString
12:04 audreyt and you don't need to write any of which
12:04 audreyt profit
12:05 gaal why? how does instance ((:>:) ID) ByteString exist?
12:05 audreyt if it did not then you could not have derived it
12:05 audreyt that particular instance is in Pugs.Internals.ID:96
12:06 audreyt TcDeriv simply repeat the base type's instance
12:06 audreyt it's not really magical, you know :)
12:06 gaal oh! I was looking only at Pugs.Internals.Cast :(
12:06 chris2_ joined perl6
12:06 audreyt :i in make ghci =:= your friend
12:07 * audreyt is tempted to name the new constructor in IVar, besides IScalar/IArray/IHash etc as "IUnknown"
12:07 gaal well, as the story goes... $5, marking an "X" with a chalk, $49,995, knowing where to put it
12:07 gaal *shudder* that reminds me of COM
12:07 audreyt exactly
12:08 gaal "pls no k thx"
12:08 audreyt was going to name it "IV" but it reminds me of unpleasane recent memories in hospital
12:08 audreyt so "IVal" it is
12:08 gaal IAny?
12:08 kanru joined perl6
12:08 audreyt sure, IAny
12:09 audreyt it'll be gone once it takes over the other I* anyway
12:09 shay_ is now known as shay
12:09 gaal IA64
12:09 chris2_ is now known as chris2
12:09 audreyt IPod
12:09 clkao fnord
12:09 gaal INeedAName
12:09 audreyt that's lowercase
12:09 audreyt INaN
12:10 gaal \freemoose ->
12:10 audreyt pronounced "inane". how appropriate...
12:10 gaal back to hacking :)
12:11 audreyt ditto :)
12:12 GabrielVieira2 joined perl6
12:16 gaal Functions.pod offers the following implementation of Str.reverse:
12:16 gaal $str.split('').reverse.join;
12:16 gaal this is wrong, isn't it? If join defaults to a space delimiter.
12:16 audreyt yeah
12:17 gaal also, is Str a Role as implied by that snippet?
12:17 audreyt ?eval <1 2 3>.join
12:17 evalbot_r15488 is now known as evalbot_r15492
12:17 evalbot_r15492 "123"
12:18 audreyt I guess pugs is out of date
12:18 tene gaal: just find a way to special-case join to use '' delimiter in that specific situation, of course
12:19 audreyt heh.
12:19 gaal tene: why? the implementation could surely use join('')
12:19 ayrnieu ?eval join(*<1 2 3>)
12:19 evalbot_r15492 Error: Odd number of elements found where hash expected: VNum Infinity
12:19 audreyt ?eval join(|<1 2 3>)
12:19 gaal infinity is certainly an odd number
12:19 evalbot_r15492 Error: ␤Unexpected "|<"␤expecting ":", identifier or ")"
12:19 audreyt ?eval join(| <1 2 3>)
12:19 evalbot_r15492 "123"
12:20 ayrnieu I wanted to emulate the perl5: join(qw(a b c)) => "bac" :-)
12:20 audreyt ?eval join(|[1, 2, 3])
12:20 evalbot_r15492 "213"
12:20 audreyt that is how you do it :)
12:26 fglock joined perl6
12:30 fglock putter: re feedback - please go on! :)
12:30 ruoso joined perl6
12:30 gaal tweaking Pugs.Meta.Str triggers massive rebuild. why?
12:31 audreyt gaal: really? it should not
12:31 audreyt hm.
12:31 tene what did you think the files were tied together with if not Strings?
12:31 elmex joined perl6
12:32 gaal Ropes?
12:32 tene ;)
12:33 gaal also I'm afraid r15490 maybe introduced some type unsafety
12:33 SamB razor wire?
12:33 gaal either that or eliminating the PureStr newtype
12:34 audreyt type unsafety?
12:34 pasteling "gaal" at 192.115.25.249 pasted "with this, vv("X").join(vv("1"), vv("2")) crashes ghc" (42 lines, 1.3K) at http://sial.org/pbot/23307
12:35 SamB audreyt: that thing they do in C
12:35 gaal unsafeCoerce☣
12:35 SamB heh
12:36 gaal (those with U+2623 in their fonts are better warned here)
12:36 SamB isn't that the ReactOS logo?
12:37 gaal so, acutally I'm not sure whether it's those instances; I thought maybe it was because perhaps currying Str.join completely would confuse them and therefore trigger a crash
12:38 gaal but as you can see from the patch with the pointful version it still happens
12:38 svnbot6 r15493 | fglock++ | PCR - fixed backtracking on non-capturing subrules; this resolves all :todo<bug> in capture.t
12:38 svnbot6 r15493 | fglock++ | - fixed <-alpha>; 26 more passes in stdrules.t
12:38 svnbot6 r15493 | fglock++ | - defined <sp> <gt> <lt> <dot> (from p6regex.t)
12:38 svnbot6 r15493 | fglock++ | - fixed compilation of t/09-ratchet.t
12:38 gaal SamB: U+2623 BIOHAZARD SIGN
12:39 SamB oh.
12:39 gaal reactos seems to be using a stylized atom thingie
12:39 SamB at that size, its hard to tell from the radiation sign
12:39 audreyt gaal: a sec...
12:40 gaal there's a new radiation warining icon, btw, because apparently someone thought the old one was not onomatopoeically scary enough
12:40 gaal but it's silly, because they recursively *use* the old icon in it!
12:41 SamB what does the new one look like?
12:41 gaal http://www.flickr.mud.yahoo.com/photos/kt/395457657/in/dateposted/ # the left one apparently isn't a parody
12:41 lambdabot Title: New Radiation Warning Signs on Flickr - Photo Sharing!, http://tinyurl.com/242vxy
12:42 gaal see also http://www.irpa.net/
12:42 lambdabot Title: IRPA - Home
12:43 chris2 joined perl6
12:43 gaal "The trefoil symbol has no inherent meaning and only those people that have been educated in its meaning have knowledge that it represents the presence of ionizing radiation. The new symbol is the completion of a multi-year effort by the IAEA to develop a universal radiation warning symbol that anyone anywhere will understand the message of “Danger- Stay Away”."
12:44 SamB I don't understand it. It looks like that scary skull is chasing that poor guy...
12:45 pasteling "evalbot_r15492" at 194.145.200.126 pasted "Pugs build failure" (415 lines, 24.8K) at http://sial.org/pbot/23309
12:45 gaal I wonder if they realized they were using the old symbol
12:46 gaal it's like they didn't run the typechecker on it
12:46 SamB maybe they wanted to save the educated people from dying of radiation while they tried to figure out what it means?
12:46 gaal "this old symbol is ill-formed! let's make a new one! [time passes]  hmm, let's see what scary symbols we could put here. oh, here's a convenient trefoil symbol, sure looks scary to me"
12:47 gaal RADIATION. KEEP RIGHT.
12:48 SamB shouldn't the japanese version involve going to the left?
12:49 gaal you calling godzilla a wimp
12:49 gaal ?
12:49 SamB I figure, since they read from right to left...
12:50 * SamB wonders why videogames go from left to right
12:50 audreyt japanese read from left to right...
12:50 mauke joined perl6
12:51 gaal was that always the case?
12:51 SamB not in the comic books they don't!
12:51 SamB I mean, I don't know how the characters are ordered, but the panels are ordered right to left
12:52 audreyt gaal: it only panics ghci but not cmdline
12:52 SamB audreyt: if it panics GHCi, it is *probably* wrong
12:52 gaal hmm, probably an ID order thing?
12:52 audreyt hm.
12:52 audreyt SamB: or it is a bug. I mean, both gaal and I are using ghc-trunk.
12:53 audreyt as in, 6.7-unstable-dragons
12:53 SamB audreyt: yeah. I did say *probably*
12:53 mauke .oO( stable dragons? )
12:53 gaal cuddly dragons though.
12:53 SamB but potentially deranged?
12:54 gaal PArrayed dragons
12:54 * SamB wasn't aware GHC had any primitive types for dragons
12:54 audreyt RedDragon#
12:54 SamB oh, wait.
12:54 SamB P
12:54 mauke Dragon#
12:54 IllvilJa joined perl6
12:54 SamB not U
12:54 * SamB silly
12:55 SamB hehe
12:55 gaal shouldn't the ((:>:) ID) instance be inside an #ifdef PUGS_UNDER_GHCI too?
12:55 SamB the WHAT?
12:56 SamB what the hell is :>:? is it related to (:[{- eater of comments -}]) ?
12:56 gaal actually no, since the constructor is named explicitly
12:57 gaal SamB: http://svn.pugscode.org/pugs/src/Pugs/Internals/Cast.hs
12:57 audreyt SamB: (a :>: b) denotes that b is subtype of a
12:57 SamB ah
13:00 audreyt gaal: even with your patch it worksforme
13:00 audreyt it only segfaults during incremental ghci rebuild
13:00 audreyt quitting ghci and remaking ghci made it work
13:01 gaal without clean? I tried several times...
13:01 audreyt without clean... :/
13:01 gaal hmm.
13:01 audreyt oh well. I'll commit anyway
13:02 gaal then commit pointsfree
13:02 gaal please :)
13:04 svnbot6 r15494 | audreyt++ | * Pugs.Val: type PureStr = ByteString.
13:04 svnbot6 r15494 | audreyt++ | * Pugs.Meta.Str: Improved join.
13:08 audreyt    [ "reverse"     ... Str.reverse
13:08 audreyt    , "join"        ... Str.join
13:08 svnbot6 r15495 | audreyt++ | 21:04 < gaal> then commit pointsfree
13:08 svnbot6 r15495 | audreyt++ | 21:04 < gaal> please :)
13:08 audreyt this is as good as it gets
13:08 audreyt without going to TH
13:09 audreyt I guess TH is premature atm
13:09 gaal yes, this is the version I meant
13:10 gaal hehe yeah, TH would be a little extreme
13:10 gaal it also kinda underlines Perl 6 ~~ Hs with sugar on top
13:11 gaal brb
13:11 noganex joined perl6
13:12 noganex hi there
13:12 noganex http://www.perl.com/pub/a/2007/03/01/perl-6-parameter-passing.html << this article made me really snoopy for perl6/pugs
13:12 lambdabot Title: perl.com: The Beauty of Perl 6 Parameter Passing, http://tinyurl.com/2x2opj
13:13 noganex are there any other good articles/books you would recommend for a closer look on that pugs thingy?
13:13 ayrnieu aside, who should I hassle about Gentoo/PS3 not being able to build (the required) GHC 6.6 from provided GHC 6.4 ?  I get assembly errors after a long build.
13:13 audreyt (bbiab)
13:14 ayrnieu noganex - off hand: pick up Perl6::Bible for Perl6 in general.  Otherwise, www.pugscode.org and the pugs checkout itself.
13:14 audreyt noganex: rakudo.org/perl6/ ?
13:16 gaal also, consider not building ghc 6.6 yourself; it can take quite a while!
13:18 noganex thanks guys :)
13:18 ayrnieu gaal - I don't have a choice: I have a Gentoo/PS3 system to do this on.  That, and -this- system, which is OpenBSD/Zaurus.
13:19 ayrnieu gentoo only gives me ghc-bin up to 6.4
13:19 gaal ask on #haskell or maybe #ghc here on freenode
13:20 ayrnieu OK, I'll try that in a bit.
13:20 gaal (I never used gentoo myself...)
13:20 ayrnieu the 'gentoo' part matters little, really.  Unless it happens to use a broken 6.4 binary.
13:25 gaal audreyt: how to write mutating methods, such as p5chop?
13:26 cmarcelo joined perl6
13:26 cmarcelo muu
13:26 noganex left perl6
13:27 gaal oooose!
13:27 gaal hey :)
13:28 Limbic_Region joined perl6
13:30 cmarcelo gaal: glad the comments on MO were helpful, I'll continue then (at least until I cover all MO/* files)..
13:31 gaal cmarcelo++
13:33 cmarcelo hmm, what's new in ghc-6.7 (-unstable)?
13:35 gaal ghci has a debugger!
13:39 cmarcelo wow. i'll try it
13:43 gaal hey is it on purpose that we don't export UUndef etc.?
13:44 gaal from Pugs.Val
13:57 penk joined perl6
14:06 gaal why do we use Data.ByteString.Char8 at all?
14:07 rindolf joined perl6
14:36 iblechbot joined perl6
14:47 chris2 joined perl6
14:47 aukjan is now known as aukjan|gone
14:52 shay_ joined perl6
14:59 amnesiac joined perl6
15:00 gaal joined perl6
15:00 yhsuan__ joined perl6
15:00 yhsuan__ is now known as yhsuan
15:01 cmarcelo In an ideal world MethodPrim should take Capt instead of [:Val:]?
15:02 shay_ is now known as shay
15:04 cls_bsd_ joined perl6
15:04 scw_ joined perl6
15:18 gaal cmarcelo: audreyt earlier said something about dispatch-land seeing flattened args
15:18 gaal heh, the typechecker really doesn't like this:
15:18 gaal    , "index"       ... (\str sub pos -> maybe (cast UUndef) cast $ Str.findSubstring sub $
15:19 gaal            Str.drop (cast pos) str)
15:24 audreyt well you gave it a -> b -> c -> z
15:24 audreyt I havn't wrote that instance
15:24 audreyt in MethodPrimable
15:24 gaal ah
15:24 audreyt add it?
15:25 audreyt sorry, I just lost two hours to Lost
15:25 gaal also I think Int isn't castable
15:25 gaal addicting isn't it
15:25 audreyt 'fraid so
15:25 gaal I lost 2 hr to being ill, so you're better off
15:25 audreyt oy. typeOf ill?
15:27 gaal I thought it was bronchitis but now the pain in my trachea is gone.. maybe just the flu
15:27 gaal or maybe the antibiotics are helping but I'm still harassed by goo
15:27 audreyt :/
15:28 audreyt however a clear and concise Vision of how to do typed IVal has formed in my subconciousness whilst I was watching lost
15:28 audreyt so maybe it was not all lost
15:28 * audreyt goes coding it in
15:29 gaal does this instance look reasonable? (sorry for the paste)
15:29 gaal instance (Boxable a, Boxable b, Boxable c, Boxable z) => MethodPrimable (a -> b -> c -> Eval z) a where
15:29 gaal    asPrim f x args = do
15:29 gaal        y <- coerceVal (args !: 0)
15:29 audreyt sure.
15:29 gaal        z <- coerceVal (args !: 1)
15:29 gaal        fmap mkVal (f x y z)
15:29 gaal yay
15:29 gaal but I'm still getting errors...
15:29 audreyt what was the error?
15:30 gaal hm sec..
15:30 audreyt you don't need the casts though
15:30 audreyt if you write something like that
15:30 audreyt as a rule, drop all casts
15:30 audreyt in the method body
15:30 audreyt the Boxable and mkVal does that for you already
15:31 pasteling "gaal" at 192.115.25.249 pasted "errors" (70 lines, 3K) at http://sial.org/pbot/23312
15:31 gaal neat :)
15:31 audreyt this time around I'd like to do DRY the right way :)
15:32 gaal savior friend coming over for company and food...
15:32 gaal s:right_place//u/
15:33 audreyt lol
15:34 audreyt s:there///
15:34 audreyt probably works by, in compile time, use Net::IRC to log in to this channel to collect votes
15:34 audreyt ...actually it can be made to work with today's pugs
15:35 * audreyt dismisses that as VerySillyIdea
15:40 audreyt hm, the cool thing is we can redefine the Sym node without Prelude.pm.yml changing one bit
15:40 audreyt because Sym is never seen in serialized ASTs
15:40 GabrielVieira2 is now known as GabrielVieira
15:41 gaal it isn't?
15:42 gaal oh Sym
15:42 gaal not Syn
15:42 gaal what's Sym? :)
15:42 audreyt a parser-to-unsafeEval node to generate fresh compile-time Pad entries
15:44 gaal hm I'm not getting Int -> Val magic
15:44 gaal the typechecker suggest addign instance for Boxable Int
15:44 gaal but that's bogus
15:44 gaal isnt' it?
15:45 audreyt it's not
15:45 gaal what does the instance do? default?
15:45 audreyt yeah (for now)
15:45 gaal (there's already instance Boxable PureInt..
15:45 gaal )
15:45 audreyt we add more methods to it later
15:45 audreyt PureInt is perl6-land Int
15:45 audreyt Int is perl6-land int
15:45 audreyt confusing but true
15:46 gaal oh! oh right!
15:46 gaal bacause of magical anything-is-a-boxable paradigm
15:47 audreyt yes.
15:47 audreyt magic!
15:47 audreyt if you don't want to add instance
15:47 audreyt then just add a Just
15:47 audreyt but it will show up as opaque, which is fine for generic hs data that has no p6 counterpart
15:48 audreyt but ^int is actually a builtin
15:48 audreyt so it warrants a separate instance
15:51 gaal now I'm having trouble reconciling undef <-> int return types:
15:51 gaal    , "index"       ... (\str sub pos -> case (Str.findSubstring sub $ Str.drop (cast pos) str) of
15:51 gaal                            Just s -> s
15:51 gaal                            _      -> UUndef)
15:52 gaal casting s and UUndef gives copious errors
15:52 silug audreyt: is there an easy way to override pugs privlib/sitelib/etc.?
15:52 gaal guests here. moose &
15:53 audreyt gaal: well, actually. just return it.
15:53 cmarcelo in Pugs.Class:68, the instance "MethodPrimable Call a" let you use MethodInvocations directly in the (...) syntax, that's it? (/me's a few steps behind yet)
15:53 audreyt either that, or mkVal.
15:53 audreyt Just s -> mkVal s
15:53 silug i guess i should say when building pugs...
15:54 audreyt cmarcelo: why, yes
15:54 audreyt silug: please look and hack util/PugsConfig.pm
15:56 cmarcelo in essence MethodPrimable is just infrastructure to make (...) works? oh, why MethodPrim just takes [:Val:] instead of a Capt (didn't found in logs)?
15:58 audreyt cmarcelo: because at the time of primtiive method resolution all optionals are already filled in and all named-invokation-to-positionals is translated to positionals
15:58 audreyt cmarcelo: for the rare class that absolutely needs Capt
15:58 audreyt we simply don't use mkBoxPureClass
15:59 audreyt and define it with the ordinary MO way
16:00 punter joined perl6
16:00 punter Hi
16:00 iblechbot joined perl6
16:00 punter Will Perl6 also run in a browser like Java does?
16:01 audreyt I would definitely like to work on the Tamarin backend.
16:01 audreyt which gets us flash
16:01 audreyt which is better than Java
16:01 audreyt I hope.
16:01 ajs_ Anyone getting the impression that ^ is a bit overloaded? {^$^a^.x +^ ^$^a^.y >>^^<< ^$^b^.x +^ ^$^b^.y }
16:01 ofer0 joined perl6
16:02 punter what? is there no ^^ operator??
16:02 punter or ^-^
16:02 punter ok ok
16:02 ajs_ Actually, my example is broken, but ^$^a^.y >>^^<< ^$^b^.x works
16:04 ajs_ "Upto parameter a's class method y return hyper-exclusive-or with upto parameter b's class method x"
16:04 ajs_ It's really that ^$^a^.y that gets me.
16:05 ajs_ Oops, that's ^$^a.^y
16:05 ajs_ Bugs, bugs, everywhere are bugs
16:06 broquaint I propose ~$a over ^$a without any forethought or consideration.
16:07 ajs_ I don't think there's much in the way of available operator space. Certainly, ~ must be in use (string context, I think?)
16:07 broquaint Hrm, ~ stringifies stuff does it.
16:07 broquaint s/does/$&n't/
16:07 ajs_ I'm not saying it's a place to propose change, so much as a place where we want to think carefully.
16:07 broquaint I think ? would be nice but it's used for boolean context.
16:07 cmarcelo audreyt: got it. is it ok to fill some comments in Pugs.Class/Pugs.Meta.* or they'll change lot in a short timeframe?
16:08 cmarcelo (.. ok if I fill some comments ..)
16:09 audreyt they won't
16:09 audreyt please fill some comments
16:10 Psyche^ joined perl6
16:10 ofer0 joined perl6
16:11 * [particle] wonders what the periodic table of operators looks like today
16:13 punter left perl6
16:16 Psyche^ is now known as Patterner
16:19 kanru joined perl6
16:19 audreyt TimToady: is this kosher?
16:19 audreyt my Int $x = 3; $x := "string"
16:19 audreyt or, even simpler
16:20 audreyt my $x is Scalar; $x := [1,2,3];
16:20 audreyt looking at the second example I guess it's always okay to bind to incompatible type
16:20 audreyt but if it's the case, what's the point of Tieable?
16:21 audreyt (since regardless of tieable or not you can always rebind)
16:27 svnbot6 r15496 | audreyt++ | * Introduce the IVal variant of VRef that we're going to
16:27 svnbot6 r15496 | audreyt++ |   unify all container types under.
16:31 moritz when I have a class like this: class Foo { has @.bar; has %.bar;}
16:32 moritz how can I access both the array and the hash?
16:34 pasteling "evalbot_r15495" at 194.145.200.126 pasted "Pugs build failure" (384 lines, 20.7K) at http://sial.org/pbot/23315
16:42 charsbar joined perl6
16:46 audreyt moritz: can't :) it's an error I think according to spec
16:46 audreyt too fried to complete the commit right now ... till tomorrow :)
16:47 cmarcelo in p6-land, how one would change the precedence order? will exist a way to create in p6 something in the same "level" as MOClass that could have different precedence moosiness..?
16:47 svnbot6 r15497 | audreyt++ | * add missing boot file.
16:48 moritz audreyt: do you know where it is specced? and should the compilation of the class fail?
16:48 pasteling "gaal" at 192.115.25.249 pasted "Isn't the first error bogus?" (43 lines, 1.7K) at http://sial.org/pbot/23316
16:49 moritz ?eval class Foo {has @.a; has %.a}; my $ = new Foo;
16:49 evalbot_r15492 is now known as evalbot_r15496
16:49 evalbot_r15496 Error: ␤Unexpected "$ ="␤expecting "=", formal parameter, context or "("
16:49 moritz ?eval class Foo {has @.a; has %.a;}; my $ = new Foo;
16:49 evalbot_r15496 Error: ␤Unexpected "$ ="␤expecting "=", formal parameter, context or "("
16:50 awwaiid joined perl6
16:50 moritz ?eval class Foo {has @.a; has %.a;}; my $c = new Foo;
16:50 evalbot_r15496 \Foo.new(("a" => undef),)
16:51 moritz ok, it compiles
16:51 TimToady audreyt: I do think my int $x = 3; $x := "string"
16:51 TimToady needs to be illegal
16:52 Daveman joined perl6
16:53 TimToady and I think I would prefer if the "my Int" one could also be illegal if it's not too much trouble
16:56 TimToady if everything always requires the Tieable indirection then we give the optimizer little to work with.
16:57 lichtkind joined perl6
16:58 TimToady and there seems to be some mental benefit as well to having lexically scoped type invariants.
17:00 TimToady maybe := always tries to cast to the type on the left and therefore can fail
17:01 TimToady and if there is no type on the left the cast is rather trivial.  :)
17:11 cmarcelo ghc-unstable build error: src/Pugs/Internals/Monads.hs:31:26:  Module `Control.Monad.RWS' does not export `MonadIO(..)' .. also inside ghci I can't :browse Control.Monad.RWS, is it normal or my installation maybe crippled?
17:17 TimToady @tell audreyt actually, := is already specced to fail if the type is inconsistent, S03:1003
17:17 lambdabot Consider it noted.
17:27 nothingmuch cmarcelo: in the meta class simply replace the MRO combinator
17:47 kolibrie TimToady: it's always a good sign when current thoughts on a subject match thoughts from previously
17:52 justatheory joined perl6
17:52 masak say "{ newton(8, \&f, verbose => 1, epsilon => .00005) }"; # aren't the quotes and braces a no-op?
17:55 [particle] yes, as is the backslash
18:13 TimToady kolibrie: not always--sometimes it just means you're making the same mistakes over and over again.
18:15 kolibrie TimToady: the woes of imperfection
18:18 shamu joined perl6
18:31 cmarcelo nothingmuch: so, "^Class" in Perl means MOClass for Pugs (at start)?
18:31 offby1 joined perl6
18:32 cmarcelo masak: re "{ ... }", in the article I think the author was showing the {} interpolation inside strings..
18:33 nothingmuch cmarcelo: i suspect
18:33 nothingmuch Larry always said that .HOW was not really a part of the language spec
18:34 nothingmuch so it's probably just the default metaclass
18:34 nothingmuch or rather the instance of the metaclass describing the default metaclass
18:34 nothingmuch meta meta jokes are fun
18:35 cmarcelo :)
18:35 nothingmuch oh, by default metaclass i mean the MO default metaclass, same api
18:36 nothingmuch when bootstrapping gets into it, it'll probably be the class that was compiled with the compiler toolchain
18:36 nothingmuch unless it was replaced at BEGIN
18:36 shamu is there a pdf/postscript/latex version of the synopses available?
18:36 nothingmuch shamu: you can create some
18:36 nothingmuch check out the pods from svn.perl.org (if orget the full URL)
18:36 nothingmuch and then use pod2latex
18:36 shamu is that pod2latex up-to-date with the pod in those pods?
18:37 nothingmuch personally i think the best looking output is from pod2man and then making that into pdf
18:37 nothingmuch huh?
18:37 nothingmuch pod2latex is a cli tool
18:37 nothingmuch use it on the pods from the svn head, and it'll be up to date
18:37 shamu POD has kind of evolved over time -- what with the unicode excapes, et al
18:37 nothingmuch ah
18:37 nothingmuch i've never had any issues with it
18:37 shamu I'm wondering if pod2latex can handle everything in the (rather recent) perl6 pods
18:37 nothingmuch i think it uses Pod::Parser, which is supposed to be pretty comprehensive
18:37 shamu ah ok
18:38 shamu I'll give it a shot then
18:38 nothingmuch good luck
18:38 shamu thanks
18:38 nothingmuch maybe set up a cron script to keep them up to date on a feather web home
18:38 shamu ?
18:39 shamu what's a feather web home?
18:39 nothingmuch make your pdfs public, and upated automatically
18:39 nothingmuch oh
18:39 nothingmuch feather is the perl 6 development box donated by Juerd
18:39 nothingmuch you can get webspace for perl 6 related things on it
18:39 shamu ah gotcha
18:40 shamu thanks, I'll give that a shot
18:56 jisom joined perl6
19:02 coumbes joined perl6
19:04 coumbes left perl6
19:09 coumbes joined perl6
19:10 Minidin joined perl6
19:10 coumbes left perl6
19:11 fglock joined perl6
19:13 REPLeffect joined perl6
19:17 mako132 left perl6
19:23 perlbot joined perl6
19:27 explorer joined perl6
19:31 dduncan joined perl6
19:41 stevan_ joined perl6
19:47 drupek12 joined perl6
19:50 chris2 joined perl6
19:54 DHGE joined perl6
20:08 nipra joined perl6
20:10 nikhil-- joined perl6
20:23 SamB is now known as samb
20:24 samb is now known as SamB
20:29 moritz habt ihr mal ein traceroute auf www.hw.ac.uk gemacht?
20:29 moritz das wird über aussen geroutet....
20:29 moritz bin gerade beim 20. ping, kein Ende in Sicht ;)
20:30 moritz und webmail.hw.ac.uk ist auch nciht besser
20:31 mj41 hi, I  lost svn passwd. username rootmj. pleas, help me :-).
20:32 buetow moritz: isnt this an english channel?
20:32 fglock buetow: it's multilanguage
20:33 buetow ok, also kann ich auch in deutsch schreiben (so i can write in german as well :)
20:33 fglock mj41: checking
20:33 fglock moritz: btw, same result here
20:35 moritz sorry, wrong channel
20:36 moritz fglock: I wanted to say that in a channel inside .hw.ac.uk ;)
20:39 fglock hmm - I don't see how to reset a commitbit password
20:39 fglock moritz: np :)
20:40 moritz fglock: what do you mean by "resest"? deactive an account? or change passsword?
20:41 fglock mj41: I resent the invitation - please check
20:41 mj41 fglock: thanks
20:41 fglock moritz: how to help someone else change password
20:42 Aankhen`` joined perl6
20:44 moritz hm, dunno
20:50 rindolf joined perl6
20:51 mj41 fglock: It didn't help.
20:58 rodi joined perl6
21:01 fglock mj41: sorry. the channel should get in a more populated timezone in a few hours, you should get proper help then
21:03 kolibrie obra: do you know how to reset someone's password with commitbit?  mj4l (rootmj) is looking for this service
21:04 fglock home &
21:05 moritz we could just delete him and re-invivte
21:06 kolibrie unless it would remember that username/email and not let it be recreated
21:06 kolibrie I'm not sure how svn's authentication works
21:09 moritz by default it's just htusers
21:09 moritz but I guess you could configure virtually any backend
21:09 kolibrie which commitbit might do
21:37 the_dormant joined perl6
21:43 larsen_ joined perl6
21:43 awwaiid joined perl6
21:56 awwaiid joined perl6
22:07 ofer0 joined perl6
22:34 Psyche^ joined perl6
22:36 geoffb joined perl6
22:39 gnuvince_ joined perl6
22:51 Psyche^ is now known as Patterner
23:30 DrSlump joined perl6
23:30 DrSlump hello
23:30 moritz hi
23:33 Limbic_Region joined perl6
23:52 Khisanth joined perl6

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

Perl 6 | Reference Documentation | Rakudo