Perl 6 - the future is here, just unevenly distributed

IRC log for #perl6, 2006-09-10

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:23 MacVince Is Perl 6 changing POD?
00:23 obra yes.
00:23 obra Expect to see an updated public draft in the next couple days
00:24 MacVince obra: Ok, that's why http://perlcabal.org/syn/S26.html doesn't work yet
00:24 MacVince What can we expect?
00:26 obra I'm not going to steal damian's thunder
00:28 MacVince ok :)
00:58 weinig joined perl6
01:02 elmex_ joined perl6
01:02 mako132_ joined perl6
01:22 polettix is now known as froh-doh
01:23 froh-doh is now known as polettix
01:35 kanziAFK is now known as kanzi
01:37 Zemyla joined perl6
01:45 vel joined perl6
01:48 rodi joined perl6
02:03 vel joined perl6
02:05 audreyt ?eval 1
02:05 evalbot_r13148 1
02:05 vel joined perl6
02:05 rodi that is one smart bot.
02:06 rodi ?eval 2
02:06 evalbot_r13148 2
02:07 markstos joined perl6
02:08 audreyt markstos: that was because Test.pm.yml needed to regen as well
02:09 audreyt I just did that
02:09 audreyt irrefutable pattern should no longer show up as errror now
02:09 markstos Awesome. Thanks.
02:09 markstos Good morning. :)
02:09 audreyt good localtime :)
02:09 markstos I'm on the flipside from you: 10 pm here.
02:09 audreyt .*$m accidentally broken
02:09 audreyt looking into a fix now
02:10 markstos I could work around it...I'm probably the only user.
02:10 markstos I'm going to work on some documentation on how to pass things to Perl5 when using Perl5 embedding.
02:11 audreyt don't work around it :)
02:12 audreyt hm, problem is that it's an ambiguous parse
02:12 audreyt $obj.*say
02:12 audreyt could mean $obj.GLOBAL::say
02:12 audreyt or $obj.say quantified
02:12 audreyt the quantification is getting us into trouble fast...
02:13 audreyt TimToady: is $obj.*say always quantified? this is also related to $obj.++
02:13 audreyt i.e. if quant-named wins over simple-postfix wins over quant-postfix wins over simple-named
02:16 audreyt fixed.
02:16 svnbot6 r13149 | audreyt++ | * Repair quantified method calls with .*$method by treating
02:16 svnbot6 r13149 | audreyt++ |   .* always as quantifier and never as globalizer.
02:30 TreyHarris audreyt: i think that $obj.*say resolving to GLOBAL::say($obj) is not sane.  GLOBAL:: shouldn't contain methods (those should go into Any) and if you really truly want that, you should write *say($obj) instead
02:30 penk joined perl6
02:31 audreyt agreed.
02:32 TreyHarris though, that brings up a question i had.  i can figure out where a sub is by doing &subname.perl or whatever.  but if I want to figure out where $obj.methname lives, i can't figure out the syntax, assuming it exists
02:33 TreyHarris errr.... where the &methname that would be dispatched to by $obj.methname....
02:33 audreyt it would persumably exist as $obj.META.can('methname') which is shortened to $obj.can
02:34 TreyHarris ahh, of course
02:34 TreyHarris how about if i want to find out which multisub will be called when i run multisub(XXXX)?
02:36 audreyt yes a variant eslector
02:36 audreyt &multisub:(Dog)
02:36 markstos thanks audreyt.
02:36 audreyt :)
02:38 TreyHarris cool.  can I use a Sig object there instead of Dog?
02:39 TreyHarris one last question, I was going to start doing some Prelude and core implementation... what does "is builtin" do?  simply export the symbol into all scopes?
02:40 audreyt type refinement I think can be done via ~~
02:41 audreyt my $sig = :(Dig); (&multisub ~~ $sig)
02:41 audreyt but it's unspecced
02:41 audreyt &multisub.variant($sig) has also been suggested.
02:41 TreyHarris well, where clauses mean that in order to find the actual variant, you need actual args, so a sig (or an argument list)
02:41 TreyHarris er... capture
02:42 audreyt "is builtin" installs the symbol into GLOBAL
02:42 markstos Here's my start on the Perl 5 embedding page. I'm going to work on figuring out more ways that arguments can by passed to Perl 5.
02:42 markstos http://rakudo.org/perl6/inde​x.cgi?using_perl_5_embedding
02:42 lambdabot http://tinyurl.com/rswkg
02:42 audreyt sub foo { ... }
02:42 audreyt install into pkg, whilst
02:42 audreyt sub foo is builtin { ... }
02:42 audreyt sub *foo { ... }
02:43 audreyt sub GLOBAL::foo { ... }
02:43 audreyt all installs to global.
02:43 audreyt I prefer the trait form for less clutter
02:43 TreyHarris ok.  so subs (rather than multi subs or methods) in Prelude should always be "is builtin", unless they're internal subs for code in Prelude itself to use
02:43 audreyt but at some point GLOBAL.pm might work better. for the part of prelude that is in GLOBAL (instead of in its own classes)
02:43 audreyt right.
02:44 TreyHarris yes.  I think Carp::longmess is totally broken, but I was thinking of just writing Carp.pm and implementing it in toto rather than fixing it in Prelude
02:44 audreyt yes.
02:45 audreyt in any case our "die" is currently longmess already
02:45 markstos It would be nice if $!.longmess worked.
02:45 markstos So that you could rethrow an error with the original callstack intacted.
02:45 markstos s/intacted/intact/
02:46 TreyHarris well, i want to have carp, etc., take an optional :skip argument
02:46 audreyt I'll go back to catch some more sleep :)
02:46 audreyt see you in a bit
02:46 TreyHarris since you've had to mess with local variables or with %Internal yuckiness in order to let you carp from any perspective other than one caller up
02:51 * markstos notices a lack of tests at: http://svn.openfoundry.org/pugs/t/unspecced/p5/
02:51 lambdabot Title: Revision 13149: /t/unspecced/p5, http://tinyurl.com/z9jdx
02:52 weinig is now known as weinig|zZz
02:55 weinig|zZz is now known as weinig|zZzier
03:04 svnbot6 r13150 | audreyt++ | * temporarily disable the lats two blocks in next.t
03:04 svnbot6 r13150 | audreyt++ |   as they were infinitely looping.
03:05 reZo_ joined perl6
03:09 markstos part #perl6 sleep &
03:11 * TreyHarris would hand markstos a slash, but he's sleeping
03:19 mako132_ joined perl6
03:22 drrho joined perl6
03:25 SamB @ask audreyt did you add stuff to Makefile.PL to regen Test.pm.yml when needed?
03:25 lambdabot Consider it noted.
03:27 TreyHarris SamB: svn blame is useful for this
03:28 TreyHarris none of the lines involving Test.pm.yml in Makefile.PL have changed since 12030
03:29 SamB well, I was pretty sure the answer was "no"...
03:36 TreyHarris Test::fail needs to have its name changed
03:38 TreyHarris not sure to what, "fail" seems perfect :-)
03:39 TreyHarris oh, wait, it's already been changed to flunk
03:39 TreyHarris ?eval fail "oops"
03:39 evalbot_r13148 is now known as evalbot_r13150
03:39 evalbot_r13150 *** oops     at <eval> line 1, column 1-12
03:40 TreyHarris ?eval __fail "oops"
03:40 evalbot_r13150 Error: No compatible subroutine found: "&prefix:__fail"
03:40 TreyHarris huh, so why does Prelude define __fail?
03:41 TreyHarris ?eval __fail("oops")
03:41 evalbot_r13150 Error: oops
03:42 TreyHarris and why didn't i call it with '__fail "oops"'?
03:44 TreyHarris ?eval ?(__fail())
03:44 evalbot_r13150 Error: failed
03:44 TreyHarris ?eval ?(try {__fail()})
03:44 evalbot_r13150 Bool::False
03:45 TreyHarris ?eval ?(@(try {__fail()}))
03:45 evalbot_r13150 Error:  unexpected "(" expecting "::"
03:45 TreyHarris ?eval ?( @( try {__fail()} ))
03:45 evalbot_r13150 Error:  unexpected "(" expecting "::"
03:46 TreyHarris ?eval ? @( try {__fail()} )
03:46 evalbot_r13150 Bool::True
03:46 TreyHarris *grin*  PBP warns against that error... ;-)
03:50 b00t joined perl6
03:50 buubot joined perl6
04:00 TreyHarris ?eval ?( list( try {__fail()} ))
04:00 evalbot_r13150 Bool::False
04:01 TreyHarris hmm.  maybe this is in fact sane.
04:02 TreyHarris but either way, i don't see where ?(@(...)) should be an error
04:02 TreyHarris though i don't see anything in synopses that say it definitely should be allowed, i can't understand why it's not
04:02 * TreyHarris seems to be talking to himself
04:04 pasteling "agentzh" at 210.22.200.67 pasted "audreyt: "nmake" on win32 is still broken" (13 lines, 487B) at http://sial.org/pbot/19568
04:09 lollan joined perl6
04:12 lambdabot joined perl6
04:16 mako132_ joined perl6
04:18 lambdabot joined perl6
04:18 lisppaste3 joined perl6
04:29 kisu joined perl6
04:46 gaal TreyHarris: Test::flunk was renamed that way because 'fail' is a Perl 6 keyword.
04:46 gaal Prelude's fail is perhaps not exported?
04:47 gaal markstos: your /usr/bin/pugs usage isn't finding audreyt's compiled modules, and is using yours.
04:47 gaal TreyHarris: full fail support requries lexical pragmas, which are not there yet.
04:48 gaal TreyHarris: interestingly, they are have proved harder to implement in Haskell than in C.
04:52 kanru joined perl6
05:02 gaal agentzh: I'm not familiar with a 'wildcard' function. what happens when you don't use it?
05:03 gaal ah, probably a gmake thing?
05:05 gaal hm yes
05:05 lumi Morning, gaal
05:05 gaal hello
05:06 gaal I see you committed a working verison? lumi++
05:06 lumi Well, it broke pugs
05:06 lumi But yep
05:06 gaal don't worry about it :)
05:06 lumi Now the runtime can do its thing, I think
05:07 gaal did you miss a syllable on purpose?
05:07 gaal in the haiku
05:07 gaal knowing you you probably did...
05:07 lumi There was no haiku.. The commit message?
05:07 gaal almost!
05:07 gaal (first three lines)
05:08 lumi Heh
05:08 TreyHarris gaal: got it, thanks.  but you can't see any reason I shouldn't be able to say ?(@($arrayref)), can you?
05:08 gaal (accidental poetry)++
05:08 lumi That would have been brilliant, but they're just my local commits (I should learn how to better use svk)
05:09 TreyHarris by the way, is it possible to create contextual variables?  parser barfs on 'is context'
05:09 gaal excepting there are no refs? :-p
05:10 TreyHarris gaal: i'm reclaiming 'ref' as short for 'reference', which in Perl 6 has no special meaning beyond its one in English. :-)
05:10 gaal TreyHarris: I'm not the best person to ask language questions, but it looks syntactic to me.
05:10 gaal don't think @ x works in pugs yet though.
05:10 gaal agentzh: please try 13151
05:11 gaal okay, I'd better go to work now. see y'all
05:11 svnbot6 r13151 | gaal++ | remove gmakism from Makefile.PL
05:16 mjk joined perl6
05:20 lambdabot joined perl6
05:35 pdcawley joined perl6
05:35 lambdabot joined perl6
06:17 audreyt TreyHarris: huh?
06:17 audreyt ?eval my $x is context = 3;
06:17 evalbot_r13150 is now known as evalbot_r13151
06:17 evalbot_r13151 \3
06:17 TreyHarris audreyt: nm, i typoed :-)
06:17 audreyt ok :)
06:18 TreyHarris 'is contest' is not valid.
06:18 TreyHarris yet. :-)
06:18 TreyHarris i'm going to go through and change all the ok (eval '..')'s to eval_ok using contextual variables :-)
06:20 TreyHarris since that was the usual reason to write ok eval rather than eval_ok, to be able to run the eval inside the current scope.  so i guess *all* of them can't be changed, but ones that just need variable visibility...
06:21 audreyt yes.
06:22 audreyt and you needs to change $foo in it to $+foo as well.
06:22 audreyt seems to be it'd be cleaner if we can make eval_ok a macro
06:22 audreyt rather than a sub
06:22 audreyt better visibility that way too.
06:22 audreyt but then, that will raise the bar of Test.pm even higher
06:23 audreyt so maybe not a good idea in itself
06:23 audreyt not sure
06:24 audreyt "raise the bar of other implementation to support Test.pm" that is.
06:25 audreyt @tell agentzh https://svn.openfoundry.org/pugs/ should work fine now
06:25 lambdabot Consider it noted.
06:36 TreyHarris audreyt: agreed.
06:40 TreyHarris oh, i merge-conflicted with you, i was about to ask where svnbot6 went :-)
06:40 svnbot6 r13152 | trey++ | [t/syntax/force_context.t]
06:40 svnbot6 r13152 | trey++ | Added failing tests for ?(@(...)) and !(@(...))
06:40 svnbot6 r13152 | trey++ | syntax.  'is context' is very useful for
06:40 svnbot6 r13152 | trey++ | evals, by the way!
06:41 TreyHarris i'm wondering if there's some way for the eval itself to run in the caller's context.
06:41 TreyHarris so that even lexical subs could be called with eval_ok rather than eval().  oh, wait, that's what you had in mind for the macro
06:42 TreyHarris i was thinking you meant a macro to convert "$bar" to "$+bar" inside the eval
06:43 TreyHarris who said on p6-l "i think just like TimToady, just much slower?"  s/Larry/audreyt/ :-)
06:52 Teratogen I'd like to see a good old text preprocessor a la C as part of Perl 6
06:52 Teratogen C's macro preprocessor is pretty versatile =)
06:52 * TreyHarris blinks
06:53 TreyHarris Perl 6's macros aren't good enough?  or they're *too* versatile?
06:53 Teratogen I am not saying get rid of Perl 6's macro preprocessing facility
06:53 Teratogen I'd just like to see a text preprocessing facility too
06:53 gaal noooooooo
06:53 Teratogen a la C's preprocessor
06:54 lumi You can always run your script through cpp...
06:54 Teratogen just thought
06:54 gaal noooooooooooooooooooo
06:54 TreyHarris I mean, 'is parsed' isn't good enough?
06:54 Teratogen just a thought.
06:54 Teratogen =)
06:54 lumi But why would you want to?
06:54 Teratogen maybe keep perl6 -P ?
06:54 gaal Perl 6 is a good language. Why write your macros in a nother?
06:55 Teratogen lumi, because sometimes I don't need all the power of a full macro preprocessor, just some simple text preprocessing
06:55 Teratogen and CPP is a simple text preprocessor that nevertheless is very versatile
06:55 lumi If a text preprocessor is the best answer, it's likely you're asking the wrong question
06:55 Teratogen maybe
06:55 Teratogen anyway it's just a thought.
06:56 Teratogen I guess I am old school, I've done a lot of C programming.
06:56 Teratogen (and made use of the C preprocessor)
06:56 gaal http://pfaff.newton.cam.ac.uk/jhnc/hanoi-cf.html
06:56 lambdabot Title: Towers of Hanoi in sendmail.cf, http://tinyurl.com/g3qom
06:56 Teratogen omg
06:56 Teratogen I don't want to look
06:57 gaal and I don't want CPP :)
06:57 TreyHarris i worked through that hanoi implementation once until i could understand it
06:58 gaal TreyHarris: knowing you it probably only worked for towers of up to 63 discs :-P
06:59 audreyt lol
06:59 Teratogen so sendmail's configuration language is turing-complete?
07:00 * audreyt ponders commit log as an art form
07:00 audreyt I mean, we've seen existential counseling and accidental haikus...
07:01 gaal it suffers from the problem of staging. that is, across messages
07:01 gaal if you know what your next commit message is going to be, you could have just as well (in principle) committed this change now
07:01 gaal well, that's not true in general
07:02 audreyt indeed
07:02 gaal but very often is.
07:02 audreyt knowing the message !=== knowing the expression
07:02 gaal but imagine serial novel writers such as thomas hardy
07:03 gaal maybe he didn't even mean all that fiasco with Tess in the garden
07:03 gaal but once that paper was published, wham, he was committed
07:03 audreyt the hardcoding of dist/build/Pugs/AST.hi breaks build for me
07:03 gaal oi
07:04 gaal because there's no rule to build it likely?
07:04 audreyt make: *** No rule to make target `dist/build/Pugs/AST.hi', needed by `src/Pugs/Prelude.hs'.  Stop.
07:04 audreyt yup
07:04 gaal that's why SamB used a wildcard, I bet
07:04 gaal hmm.
07:05 gaal looks like we need to push more dependency logic into prelude generator :(
07:06 audreyt yeah.
07:06 audreyt minimake and all
07:06 TreyHarris audreyt: why did you ponder that?  was my commit log poor form?
07:07 audreyt no, I was looking at lumi's.
07:07 gaal (phone)
07:07 audreyt r13294 (orig r13147):  lumi | 2006-09-10 04:38:00 +0800
07:07 audreyt My local pugs branch
07:07 audreyt The battle continues
07:07 audreyt Closure traits that work!
07:07 audreyt Reverted irrelevancies
07:07 TreyHarris oh, yeah :-)
07:09 lumi It even has a breaking word and a seasonal reference
07:11 audreyt very classic
07:11 lumi Very useless though; I'll get rid of the local branch
07:12 * gaal watches lumi cut the branch, hoping it ain't the one he is sitting on.
07:15 gaal knowing the messenger !=== knowing the message
07:15 gaal though, arguably... MOOSE!
07:15 gaal you kinda knew that.
07:19 gaal okay, who hacks svnbot6 to give extra ++s if commit messages are in iambic pentameter?
07:19 * gaal looks forward to sestinas in svk log
07:22 lumi I guess Lingua::EN::Syllable, and then grep gaal's mind for a matching meter
07:25 svnbot6 r13153 | audreyt++ | * Initial sketch of running NEXT blocks in while loops.
07:25 svnbot6 r13153 | audreyt++ |   This needs to be generalized somehow to fit in other loops and
07:25 svnbot6 r13153 | audreyt++ |   control structures.  (fnord sestina fnord sestina fnord.)
07:25 audreyt TreyHarris: btw ?(@(1) ) works.
07:25 audreyt but not ?(@(1))
07:26 gaal lumi: prosody has many conventions about license and dropp'ed 'nadded syllables.
07:26 audreyt there's sestinas for ya, gaal.
07:27 * gaal fnords for the sestinas
07:28 gaal (after finishing loling)
07:34 svnbot6 r13154 | audreyt++ | * run NEXT in while loops in reverse order.
07:38 svnbot6 r13155 | audreyt++ | * next.t now runs just fine (even passes one subtests),
07:38 svnbot6 r13155 | audreyt++ |   so take away the infinite loop prevention
07:38 audreyt gaal: did you notice that in ghci, :r often corrupts interning table
07:38 audreyt such that random functions goes missing?
07:38 audreyt well it's solved now :)
07:40 svnbot6 r13156 | audreyt++ | * Makefile.PL: Revert the explicit makefile dependency on
07:40 svnbot6 r13156 | audreyt++ |   dist/build/Pugs/AST.hi.
07:40 svnbot6 r13156 | audreyt++ | * also solve the ":r corrupts interning table" bug in "make ghci".
07:44 norageek2 joined perl6
07:44 gaal :-)
07:46 audreyt the solution in Pugs.Internals is rather wacky, though.
07:46 audreyt data ID = MkID
07:46 audreyt #ifdef PUGS_UNDER_GHCI { idBuf :: !ByteString, idKey :: !Int }
07:46 audreyt #else { idKey :: !Int, idBuf :: !ByteString }
07:46 audreyt #endif
07:46 * gaal is pulling
07:46 audreyt (modulo two missing newlines)
07:46 gaal haha, and it works w/o other changes in code because of cast?
07:47 audreyt yeah, and also because of named selectors/constructors
07:56 gaal oh wait
07:56 gaal it's just the *order*!?
07:57 audreyt :D
07:58 gaal there's a positional patmatch somewhere that explains this, I hope?
07:58 audreyt yes, in the lines below that
07:58 gaal or is it some entirely evil implementation detail of recored in ghc?
07:58 audreyt instance Eq ID where MkID x _ == MkID y _ = x == y MkID x _ /= MkID y _ = x /= y
07:59 audreyt i.e. under ghci, don't even use the interning information for comparison
07:59 gaal ACK
08:00 audreyt bbiab...
08:19 nothingmuch moo
08:28 jabbot joined perl6
08:31 iblechbot joined perl6
08:35 baest joined perl6
08:44 ludan joined perl6
08:51 kattana_ joined perl6
08:52 bernhard joined perl6
08:56 elmex joined perl6
09:14 lambdabot joined perl6
09:18 prefiks joined perl6
09:34 edi is now known as xerox
09:38 svnbot6 r13157 | trey++ | [util/smartlinks.pl]
09:38 svnbot6 r13157 | trey++ | Fixed handling of L<< >> smartlinks.
09:48 polettix is now known as froh-doh
09:49 larsen joined perl6
09:53 svnbot6 r13158 | trey++ | [t/operators/smartmatch.t]
09:53 svnbot6 r13158 | trey++ | Lots of cleanup.  Replaced ok eval
09:53 svnbot6 r13158 | trey++ | with eval_ok using contextuals.  Every
09:53 svnbot6 r13158 | trey++ | smartlink was broken; fixed them (after
09:53 svnbot6 r13158 | trey++ | fixing smartlinks.pl first).  Spelling,
09:53 svnbot6 r13158 | trey++ | long lines.
10:00 froh-doh is now known as polettix
10:32 autark joined perl6
10:38 f0rth joined perl6
10:40 gaal ingy: moose
10:55 kanzi left perl6
11:03 ofer0 joined perl6
11:03 rodi S12 contains the statement 'An "isa" is just a trait that happens to be another class:', but is followed by a some examples that use "is".  Could this be a typo in one case or the other?
11:04 TimToady joined perl6
11:20 TreyHarris rodi: no, that's correct
11:20 TreyHarris is Dog is the equivalent of Perl 5 @ISA = ('Dog')
11:28 rodi TreyHarris: cool, thanks, I figured I misunderstood :)
11:47 agentzh joined perl6
11:51 markstos joined perl6
11:54 buetow joined perl6
12:00 pasteling "agentzh" at 210.22.200.67 pasted "Win32 build is still failing" (29 lines, 1.3K) at http://sial.org/pbot/19570
12:00 elmex joined perl6
12:01 iblechbot joined perl6
12:01 agentzh Re r13158 | trey++ | [t/operators/smartmatch.t]
12:01 lambdabot agentzh: You have 1 new message. '/msg lambdabot @messages' to read it.
12:01 agentzh hehe, it's misleading. :)
12:01 agentzh lamdabot: thanks. that is from audreyt, right?
12:05 agentzh hooray! https is super fast!
12:07 agentzh auderyt: thank youuuuuuuu!
12:07 agentzh oops, s/auderyt/audreyt/
12:09 * gaal mooses
12:09 * agentzh starts to learn Haskell (again)
12:09 gaal yay
12:09 agentzh :)
12:23 cm joined perl6
12:23 agentzh glad to see the smoked synopses on the smoke server. they look wonderful. :)
12:24 agentzh http://m19s28.vlinux.de/iblech/stuff/pugs-smok​es/pugs-smoke-6.2.12-r13151-darwin-normal--115​7875664-560--11346-10753-593-1138-1356-0--bc09​9aee669cfb272996ff27f21df800-synopses/S02.html
12:24 lambdabot Title: S02, http://tinyurl.com/okhff
12:24 cm is there still no state of the onion writeup? :(
12:28 markstos I'm trouble debugging this error when embedding CGI.pm:p5: "Undefined subroutine CGI::defined" (there is no line number). I can embed it fine in  a small test script, but I often in getting this error in my real application. I'll keep poking at it...
12:28 markstos ... but if you have any tips about Perl5 embedding, please add them here: http://rakudo.org/perl6/inde​x.cgi?using_perl_5_embedding
12:28 lambdabot http://tinyurl.com/rswkg
12:42 agentzh yay, $a.++ and $a.\  ++ are both working now. :)
12:45 agentzh however, @a.>>++ is still unsupported.
12:46 agentzh hey, i knew good things would happen when audreyt is in releng mode. :)
12:48 svnbot6 r13159 | markstos++ | CGI.pm-p6: revert spelling 'cookies' attr back to 'cookie', as the difference
12:48 svnbot6 r13159 | markstos++ | was a needless difference from p5, both versions supporting setting
12:48 svnbot6 r13159 | markstos++ | one or more cookies anyway.
12:50 obra  markstos: are you porting CGI.pm exactly? or are you doing cleanup like breaking out the HTML generation to separate class?
12:51 markstos obra: short answer: "No". longer answer: see recent discussion on perl6.users.
12:51 obra ok
12:51 markstos I'm not touching HTML generation. I don't think it should be in there.
12:52 obra yay!
12:57 svnbot6 r13160 | agentz++ | [t/junction/associative.t]
12:57 svnbot6 r13160 | agentz++ | - fixed a smartlink.
12:58 gaal CGI::All or CGI::Nothing
12:58 gaal "use nothing" is actually a good name for an Acmeish module
12:59 gaal *CORE::GLOBAL::use = sub { "nothing can help you" }; etc.
12:59 gaal er s//die/
13:00 gaal moral support for all those poor hackers locked in an IT "don't install anything" dungeon
13:01 gaal of course, the question of how they'd get their hands on nothing.pm remains, but the answer to that is that the algorithm, like RC-4, is small enough to memorize.
13:01 crem_ joined perl6
13:02 markstos gaal: They could bring it into the dungeon with them on their iPod.
13:03 gaal I actually have a $client that has no wireless, no cdrom, no diskette drives
13:03 gaal and, astonishingly perhaps, usb ports that require approved stick drives
13:03 Alias_ curious
13:03 gaal delivery is such a joy there
13:03 Alias_ defense?
13:04 gaal something financial
13:04 * Alias_ has an image of gaal plugging a USB stick into a tank
13:04 markstos Oh my. Do the computers enforce the USB stick policy, or are their people hovering over all the terminals waiting for you to try to plug one in?
13:04 Alias_ The computers would have to
13:05 Alias_ Because otherwise you can infect/take-over a computer pretty trvially
13:05 Alias_ Plug a USB in, autorun fires up, splat. And that's without a malicious human
13:05 gaal oh great. i googled for an image of a tank with flowers in its turret and came up with this: http://www.whitehouseblackmarket​.com/productimages/300103952.jpg
13:05 * markstos wonders if, despite all these other precautions, they still run Windows there...
13:05 lambdabot http://tinyurl.com/gufl9
13:06 Alias_ markstos: Well of course, that's WHY the precautions exist :)
13:06 * gaal will say no more
13:07 Alias_ :)
13:16 Alias_ rindolf: So what's the theory behind the Task module for just one website
13:18 markstos Hmm. it seems there might be a Test.pm bug lurking somewhere, when it returns results like this:
13:18 markstos #   Expected: 'is code'  \n #     Actual: 'is_code'
13:19 gaal are you sure that's Test.pm's fault? there's an underscore in only one of those.
13:19 markstos heh. oops.
13:32 markstos I have a method that accepts an arbitrary set of named arguments or an arbitrary array. Is there any way to notice that someone has tried to used named arguments, but failed, like this: meth( 'a' => 1) ?
13:33 markstos Right now that gets handled an an array, which is wrong.
13:34 markstos Does it even make sense to use the fat arrow ( => ) when a valid identifier is not being used?
13:36 agentzh audreyt: i'm now suffering from a "5.8.8 on 5.8.7 problem": Undefined subroutine &main::UpdateHTML_blib called at -e line 1.
13:36 agentzh audreyt: i got that error while installing AI::Prolog. sigh.
13:37 markstos agentzh: You mean the embedded Perl doesn't match the external Perl ?
13:37 agentzh markstos: nope.
13:37 agentzh it's a pure perl 5 problem
13:38 agentzh i installed activeperl 5.8.8 directly over the old activeperl 5.8.7's directory.
13:38 agentzh sadly i've got a problem. :)
13:38 prefiks left perl6
13:40 gaal agentzh: does this break pugs? what happens when you uninstall activeperl and reinstall it?
13:40 agentzh gaal: it used to break pugs yesterday, but audreyt has fixed Makefile.PL.
13:41 agentzh gaal: i didn't uninstall the old one since i don't want to reinstall half of the cpan. :)
13:45 gaal oh, and the two versions aren't bincompat? or is this a interdependency issue?
13:45 svnbot6 r13161 | kudra++ | Summary for the week
13:48 agentzh gaal: it seems to be a problem in lib/ActivePerl/DocTools.pm.
13:49 agentzh and i can't use the ``cpan'' utility, which is even worse. :(
13:49 marmic joined perl6
13:50 agentzh gotta run &
13:50 agentzh left perl6
14:09 nothingmuch w 21
14:59 xinming joined perl6
15:00 MacVince joined perl6
15:07 xinming ?eval $*VERSION
15:07 evalbot_r13151 is now known as evalbot_r13161
15:07 evalbot_r13161 Error: Undeclared variable: "$*VERSION"
15:07 xinming ?eval $*PUGS_VERSION
15:07 evalbot_r13161 Error: Undeclared variable: "$*PUGS_VERSION"
15:08 mauke ?eval $?PUGS_VERSION
15:08 evalbot_r13161 \"Perl6 User\'s Golfing System, version 6.2.12, June 26, 2006 (r13161)"
15:09 MacVince left perl6
15:09 xinming :-/
15:14 xinming thanks
15:15 chris2 joined perl6
15:16 lumi The runtime doesn't have a version?
15:19 Alias_ joined perl6
15:28 xinming audreyt: ping
15:28 audreyt sorry, about to sleep now
15:28 audreyt please feel free to add a $*VERSION or $*PUGS_VERSION etc to the rutntime.
15:28 integral_ joined perl6
15:29 xinming :-P I'm too cai to do this. :-/
15:29 integral_ is now known as integral
15:29 audreyt it's in src/Pugs/AST.hs and src/Pugs/Run.hs
15:29 xinming audreyt: good night, I'll write the test about the contextual bug.
15:29 audreyt add a $* case along $? case will do
15:30 audreyt as long as it compiles, you can commit it :)
15:30 xinming audreyt: thanks
15:30 audreyt I think you're qiang enough to do that, and not at all cai :)
15:30 audreyt *wave*
15:30 gaal faremoose
15:31 lumi Adieusse
15:31 * xinming hugs audreyt for her encourage. :-)
15:31 audreyt *hugs* :) &
15:36 rodi boy, I'm having a hard time grokking the difference between a package, module, and class.  Anyone here wanna be laoshi to my xuesheng?
15:36 lumi What are those?
15:36 gaal I don't know what those words mean but maybe looking at src/Pugs/MOP.hs can help.
15:37 rodi teacher, student.
15:37 rodi sorry.
15:37 gaal ignore the fact that the language is Haskell :)
15:37 rodi gaal: I can do that, I think :)
15:37 xinming Chinese English... or Englishish Chinese... :-P
15:37 lumi I can say something in Chinese
15:37 lumi But.. I can say it wrong
15:37 xinming rodi: I'll tell my opinion after I commited the change.
15:38 rodi xinming: maybe I'm too cai ;)
15:38 rodi xinming: I'll be waiting with bated breath, while reading MOP.hs
15:38 gaal rodi, before that file, you need to know (def actually in CapInternals.hs):
15:38 gaal data Package = MkPackage
15:38 gaal    { p_name     :: Ident
15:38 gaal    , p_parent   :: Maybe Package
15:38 gaal    }
15:39 gaal this means a package is something that has a name and might have a parent
15:39 gaal no versioning, no methods
15:39 rodi ah, that explains a lot of what I've seen in ext/*
15:39 gaal but treed parenthood
15:40 gaal hmm all defs are in CapInternals :) line 800 is Module:
15:40 gaal a module augments a package (ignore the "maybe" there for a minute)
15:40 gaal it has a version and an author
15:41 gaal incidentall, perl detects p6ness by seeing the 'module' keyword
15:41 gaal s/ll/lly/
15:41 gaal so, a package is just a dumb namespace; a module allows for multiversioning.
15:41 gaal line 807, classes:
15:42 gaal (this is somewhat conjectural, but...)
15:42 frankg joined perl6
15:42 xinming rodi: hmm, IMO, package might become a set of functions to load in perl6, I don't know if it will change, eg. you would write a package which loads many modules routines and import them into Global. But currently, package is just a simple "modules" and Class isn't hard to understand. right. :-)
15:42 xinming hmm, currently, package and modules are not that different.
15:42 gaal a class is a module (so it has an associated namespace and versioning thing)
15:43 gaal ah right, when I said above the parenthood is inheritance in Package I was wrong
15:43 lumi A module is just a versioned package, then
15:43 gaal lumi: yes
15:43 lumi The parenthood there is just hierarchy, right?
15:43 gaal the parenthood is nested namespace
15:43 lumi Foo::Bar
15:43 xinming gaal: Do you think this might work? my opinion, hmm, we can write a package which loads sets of modules, and import them, for load many classes... ;-)
15:43 gaal yeah, this does not impliy inheritance of even anything oopy
15:44 xinming that's just my opinion. Maybe wrong.
15:44 xinming and seperate the use of package module and class keywords.
15:44 gaal xinming: yes, if you want to ship a bunch of code that isn't OOPy, a module's the right thing to put it in.
15:44 lumi xinming: I think "package" is the p5 legacy package, and "module" is the extension of that, to p6 style versioning
15:45 gaal so, classes add OOP:
15:45 gaal they have a list of superclasses,
15:45 gaal a bunch of methods,
15:45 svnbot6 r13162 | yiyihu++ |  r13221@Laptop:  xinming | 2006-09-10 23:37:39 +0800
15:45 svnbot6 r13162 | yiyihu++ |  Added $+PUGS_VERSION to runtime.
15:46 gaal and a bunch of slots. slots are the internal storage used *by* attributes
15:46 lumi $+ ?
15:46 gaal but an attribute can in fact decide to use more than one slot for its storage (e.g., store a "up-to-date" flag)
15:46 gaal rodi: so far so good?
15:46 rodi this is making more sense than it did just from reading S10 and S11, and browsing ext/ :-D
15:47 gaal excellent, now for refinements
15:47 xinming gaal: but for package, It really a bit hard to understand, if it is just for perl 5, then, we'd better remove the package keyword from perl 6. and that's why I think we need the make the keyword usage in perl 6,
15:47 xinming Just MHO.
15:47 gaal in Perl 6, there's the concept of a metamodel
15:48 gaal and a "meta object protocol"
15:48 gaal protocol is just another word for "interface"
15:48 rodi okay, that makes sense so far.
15:48 xinming gaal: then, you mean, we have to keep the package keyword for perl 5? :-/
15:48 * lumi commute &
15:48 gaal in the API sense, not the Java sense
15:48 gaal xinming: yeah
15:49 xinming Ok. >_<
15:49 gaal rodi: now, one of the mad things about a MOP is that it doesn't necessarily force *one* object system on you. you can use another one pluginnably
15:49 gaal most obviously, when bridging into other languages
15:49 xinming $PUGS_VERSION
15:50 xinming ?eval $PUGS_VERSION
15:50 gaal rodi: so although by default when you say class Moose is Mammal { has $.antlers }
15:50 rodi I've played with Moose and Class::MOP a little bit, but really only enough to nod dumbly ;)
15:50 evalbot_r13161 Error: Undeclared variable: "$PUGS_VERSION"
15:50 gaal you populate all these three structures we've talked about...
15:50 rodi even package?
15:50 gaal yes, the name 'Moose' here is a package...
15:51 gaal then it is feasible to have a class that doesn *not* have a package
15:51 gaal one case is foreign languages
15:51 rodi okay, that case makes sense.  Are there others?
15:51 gaal another is anonymous (anonymoose!) modules / classses
15:51 rodi heh
15:51 gaal those are actually useful in some applications
15:52 gaal in fact, {Moose,MOP}.pm would have liked to use those internally
15:52 baest joined perl6
15:52 gaal but Perl 5 doesn't have them, so they ended up creating packages on the fly with canned enumed names
15:53 gaal this is a common enough p5 technique. Parse::RecDescent does it too
15:53 rodi okay, I peeked at the Moose guts a little- didn't really grok it at the time, but it makes sense in light of this "lack"
15:53 gaal once you find yourself doing it you realize that needing a name is a technicality - and these generated names reduce clarity
15:54 gaal so in P 6 you can certainly do this:
15:54 rodi nod, nod
15:54 gaal my $bonbon = class { method greet () { ... } (etc.) };
15:55 gaal $bonbon is Class, but has no Package
15:55 gaal no Module, either
15:55 rodi nore module
15:55 rodi sic
15:55 rodi :)
15:55 gaal :)
15:55 rodi is it a bad sign for my brain that this is all making sense?
15:55 gaal you'd probably actually use ":=" there and not "=", but never midn
15:56 rodi that's a discussion for another day ;)
15:56 gaal well, generalizations of this kind often have that quality of being completely impenetrable then somewhat procedurally sensible then totally obvious
15:56 * SamB always forgets that there are makes besides gmake...
15:57 gaal like, in p5, you probably had already said '$x = { anony => 'hash' }
15:57 rodi yup
15:57 gaal or $c = sub { "anonycode" }
15:57 gaal so of course in Perl 6 you can say (if you're in a class) $m = method { "anonymeth" }
15:58 gaal when you say
15:58 gaal (in perl 5)
15:58 gaal sub greet { print "hi" }
15:58 gaal you're actually saying *{__PACKAGE__ . "::greet"} = sub { ... }
15:59 Juerd rehi
15:59 Juerd audreyt: I'm too tired for the p6l post. I'm postponing.
15:59 gaal when you say in p6
15:59 gaal method greet { ... }
15:59 gaal you're saying
15:59 gaal my &greet ::= method {...}
15:59 gaal (that's a compile-time binding)
16:00 gaal same sort of thing
16:00 rodi (yup, tx)
16:00 gaal and all these declarators, method, class, module, whatever, they all result in values, and simply have a sugary way in which these values are installed in some name-keeping thing
16:02 gaal one of those nice unifications that audreyt helped me realize only last week was related to signatures and declarators. they are actually the same thing!
16:03 rodi heh, syntactic sugar is one thing, but semantic sugar...
16:03 gaal sub foo ($x, $y)
16:03 gaal sub foo :($x, y)
16:05 gaal &foo ::= hypothetical_sub_factory (signature => :($x, $y), code => {...})
16:05 rodi I understand :() in the context of closure paramter type specifications, but not completely in sub foo :($x...
16:05 gaal it's a value :)
16:05 rodi s/mter/meter/
16:06 gaal the usual declarator syntax you're used to is just desugared into that last line
16:07 gaal we haven't gotten to variable declarators yet, but it turns out they use the same syntax:
16:07 rodi ah, okay.
16:07 gaal my ($x? = 42) := init();
16:07 gaal (the '?' is optional there, because I gave an explicit default)
16:08 rodi if you give a default, do you still need the ? ?
16:08 rodi and := differs from ::= only in run vs. compile time?
16:09 gaal my (Cat :tom) = breed_named_cat();
16:09 gaal rodi: no, like I said if I give a defualt I *don't* need the ?
16:09 gaal rodi: yes, ::= is BEGIN { := }
16:10 rodi some of the Synopses stick in my brain better than others :)
16:10 gaal since these are like signatures in reverse, all these vardecls are also sugar for
16:10 gaal my :($x = 42) = ... etc.
16:11 Psyche^ joined perl6
16:11 gaal oh, jumping back to the previous stuff (sorry for the digression :)
16:11 gaal if you wondered what classes and roles are
16:12 gaal line 817 and 819
16:12 gaal they are just classes :)
16:12 gaal in terms of the kind of things they can contain
16:12 rodi wow.
16:13 gaal of course conceptually they are 'more', and certianly thre are some syntactic and semantic bonuses for using them.
16:13 rodi Look at that.  Grammars and Roles.
16:14 rodi I hadn't gotten to the point of lumping Grammars and Roles in with Packages, Modules, and Classes yet...
16:14 gaal it's easier to understand with grammars I think. think of a p5 library of useful regexps
16:14 gaal $re_for_ips = qr/ ... /
16:14 gaal $re_for_numbers = qr/ ... /
16:15 rodi nod, nod
16:15 gaal staying anonymous, the p6 equiv is
16:15 gaal $re_for_moose = rx/ ... /
16:15 gaal but if you want to give this a name, you spell it
16:16 gaal rule moose_re { ...(Rule syntax here)... }
16:16 gaal this becomes easy to understand when you appreciate that a RE is just a piece of code that does something and sets some values as result
16:17 gaal so it's a kind of code!
16:17 gaal so it can have a name!
16:17 rodi haha
16:17 gaal so it should have a namespace!
16:17 gaal (and be versionable etc. etc.)
16:17 rodi it's all falling into place...
16:18 gaal so a Grammar is "just" a nice way of packaging up parsing functionality
16:18 rodi heh, "just"
16:19 gaal the key to abstraction is holding an ironic view of the word "just"
16:20 gaal (interestingly, the key to villany is holding a cynical view of the same word)
16:23 Psyche^ is now known as Patterner
16:27 rodi gaal++: this has been very helpful.
16:27 gaal cool! :)
16:37 svnbot6 r13163 | gaal++ | (minor) do away with some warnings
16:41 rodi the only remaining point on which I am somewhat (read: totally") unclear, is that in browsing through ext/ (aka, 6PAN), it seems that use of "class Foo::Bar-0.1" and "module Bar::Baz-0.1" are about a 50/50 split.  I can't figure out the semantic distinction the module authors are going for.
16:42 gaal some modules aren't OOPy?
16:42 gaal you don't have methods inside something that's just a module, but not a class.
16:43 rodi ah.
16:43 rodi well, that ought to have been a no brainer after your explanations ;)
16:44 gaal let it settle a bit :)
16:44 rodi yeah, I gotta walk the puppy before the baby wakes up anyway.
16:44 * rodi drinks from the firehose of chaos
16:45 rodi I'm gonna go let it settle now.  thanks again :) &
16:45 gaal wow, three sources of chaos, and I don't know which you were refering to (baby, puppy, Perl)
16:45 gaal enjoy :)
16:46 gaal s/er/err/
16:47 justatheory joined perl6
17:21 weinig|zZzier is now known as weinig|coffee
17:38 SamB gaal: all three?
17:43 gaal moose?
17:43 gaal oh, see parenthetical comment
17:53 weinig|coffee is now known as weinig
17:54 jferrero joined perl6
17:55 wolverian hm, parrot still uses ICU? I seem to remember problems with it.
18:02 gaal audreyt: I'm trying to nibble away at newval pretty printing, but need some more existential counselling it seems.
18:02 gaal I'm trying to hang on to pure for the moment, so I can do something like
18:02 gaal formatVal v@(VPure {}) = runIdentity $ castVal v >>= \v' -> return $ purePretty v
18:03 gaal but the purePretty method can't be hung on Pure, nor on a dependent typeclass, because that yields the error
18:03 gaal Couldn't match expected type `P' against inferred type `SIO' When using functional dependencies to combine ICoercible SIO Val, ICoercible P Val,
18:03 gaal which I don't really understand.
18:04 mauke joined perl6
18:06 plural joined perl6
18:07 plural good afternoon, all.
18:07 plural anyone know how to get around the issue building third-party/fps for pugs?  The built .o files are going to dist/build/cbits/cbits/FILENAME instead of dist/build/cbits/FILENAME
18:08 TreyHarris yikes... how did pugs on feather get fixed?  Before going to bed, I updated and started a make and smoke.. "81 test cases: 81 ok, 0 failed, 2 todo, 2 skipped and 0 unexpectedly succeeded"... with every one printing out "pugs: src/Pugs/AST/Internals/Instances.hs:483:16-116: Irrefutable pattern failed for pattern Data.Yaml.Syck.ESeq" followed by a bunch of mostly-empty lines
18:09 gaal just a clean make
18:11 plural gaal, for the fps, thing?  I am still getting complaints about Data.ByteString when running Makefile.PL.
18:11 TreyHarris i ran './configure; make; make smoke' before going to bed
18:11 gaal plural: no sorry, was responing to Trey.
18:11 plural gotcha.  thanks.
18:11 TreyHarris gaal: doesn't configure do a clean?
18:11 gaal I wasn't aware we *had* a configure :)
18:12 TreyHarris 'perl Makefile.PL'
18:12 TreyHarris less keystrokes, same thing :-)
18:14 gaal lol: "This script belongs to the public domain and may be freely redistributed." ; perl Makefile.PL $@
18:15 TreyHarris well, feels like voodoo, but i did a clean and am remaking... we'll see in a couple hours if that was all it was..
18:15 justatheory joined perl6
18:15 gaal if you want a quicker verification, make fast...
18:15 TreyHarris justatheory: ohhhh, noooooo.  not again
18:16 TreyHarris yes again.  *plonk*
18:19 justatheory joined perl6
18:20 justatheory TreyHarris: Stupid PowerBook. Sorry.
18:20 TreyHarris :-)  what happens?
18:21 justatheory I put it to sleep
18:21 justatheory a few seconds later it wakes, then goes back to sleep after a minute.
18:21 justatheory Usually that's it (as this time), but sometimes it seems to wake and sleep repeatedly for hours. :-(
18:22 TreyHarris ah.  any USB devices connected to it?
18:22 Daveman joined perl6
18:22 justatheory yeah, mouse
18:23 TreyHarris nah, that wasn't what i was thinking, though it might be interesting to unplug it before putting it to sleep and seeing.
18:23 justatheory I'll try that. Thanks.
18:24 TreyHarris i was thinking about a powered usb device.  i've known machines where laptop sleeps, usb device goes into standby mode a bit later, and in doing so give the laptop a jolt that wakes it up.  rinse and repeat.
18:26 justatheory Stupid.
18:28 putter joined perl6
18:28 putter ?eval class A { has $.x;} A $o .= new; sub f(){$o} f().x = 3;
18:28 evalbot_r13161 is now known as evalbot_r13163
18:29 evalbot_r13163 Error:  unexpected "$" expecting comment, "(", ":", operator, postfix conditional, postfix loop, postfix iteration, ";" or end of input
18:29 TreyHarris ?eval class A { has $.x;}; my A $o .= new; sub f(){$o} f().x = 3;
18:29 evalbot_r13163 \3
18:29 putter danke
18:30 putter ?eval class A { has $.x;}; my A $o .= new; sub f(){$o} f().x = 3; say $o.x;
18:30 evalbot_r13163 OUTPUT[3 ] Bool::True
18:31 putter ?eval class A { has $.x = 3;}; sub f() { my A $o .= new; $o }  f().x
18:31 evalbot_r13163 Error:  unexpected "=" expecting comment, trait, "handles", ";" or "}"
18:31 putter ?eval class A { has $.x;}; sub f() { my A $o .= new; $o.x = 3; $o }  f().x
18:31 evalbot_r13163 Error: No compatible subroutine found: "&x"
18:34 putter Is there an evalbot for p6 on p5?
18:38 gaal putter! moose!
18:39 putter hey gaal. :)
18:39 foo\ joined perl6
18:39 putter Saw a cute definition of moose the other day - last of the ice age megafauna. ;)
18:40 gaal I scream, you scream, we all scream for moose
18:43 * putter is having perl6 cravings.  sigh.
18:43 * avar pets putter
18:43 gaal whee, you also have perl6, so... whee
18:45 putter would that it were so.  the above type inferencer problem has been the "you have oo, but... not really" since... spring '05?
18:46 gaal ah, so write a type inferencer then :)
18:47 putter :)
18:47 gaal i mean it, almost. newval is coming along, gradually but surely
18:48 gaal if the problem is spec then I can't offer relief
18:48 gaal but suggest the usual happy pioneering :)
18:48 putter ?eval class A { has $.x;}; sub f() returns A { my A $o .= new; $o.x = 3; $o }  f().x
18:49 evalbot_r13163 Error: No compatible subroutine found: "&x"
18:49 putter not spec, just no way to persuade pugs that a function is returning an object.
18:50 gaal then hack in --> support to ruleSignature
18:50 gaal and after the coming release we can start migrating the runcore
18:50 gaal most of the other stuff is already parsed
18:50 cdpruden joined perl6
18:51 putter actually, you're right, I'm confused.  yes, this looks a parse error.  hmm, hope returns that the type problem may yet have been fixed.  let's see, where did the test go...
18:51 gaal ?eval :(Int $x: Moose $y, Elk @z, $j = 42)
18:51 evalbot_r13163 CCall "perl" CaptMeth {c_invocant = VPure (SigMethSingle {s_invocant = MkParam {p_variable = "$x", p_types = [(mkType "Int")], p_constraints = [], p_unpacking = Nothing, p_default = <Param.Default>, p_label = "x", p_slots = {}, p_hasAccess = AccessRO, p_isRef = False, p_isContext = False, p_isLazy = False}, s_requiredPositionalCount = 2, s_requiredNames = {"z","y"}, s_positionalList = [MkParam {p_variable = "$y", p_types = [(mkType "Moose")], p_co
18:52 * gaal was writing a pretty printer for that :)
18:53 aufrank joined perl6
18:53 larsen joined perl6
18:54 TreyHarris hmmm... no, make clean didn't fix it :-/
18:54 gaal huh? when's your blib6/lib/Prelude.pm.yml from?
18:55 TreyHarris from about 10 minutes ago
18:55 gaal mind stracing to make sure that's the one that's being loaded?
18:56 onsen joined perl6
18:56 putter ?eval class C { has $.a; }  sub f() { C.new() }  f().a
18:56 TreyHarris first two references in trace are to the right one
18:56 evalbot_r13163 \undef
18:57 TreyHarris but there ar 450 references to the string 'Prelude', so it'll take me a bit to see if it loads some other Prelude later on
18:57 TreyHarris hang on
18:57 putter ?eval class C { has $.a; }  sub f() { my $o = C.new(); $o }  f().a
18:57 evalbot_r13163 \undef
18:57 gaal (wow, liftM23.)
18:58 TreyHarris nope, none of the rest refer to any other path
18:58 putter ?eval class C { has $.a; }  sub f() { my C $o .= new(); $o }  f().a
18:58 evalbot_r13163 Error: No compatible subroutine found: "&a"
18:58 putter currrrrriousss
18:58 putter not parser problem.
18:58 TreyHarris ?eval class C { has $.a; }  sub f() { my C $o .= new(); $o }; f().a
18:58 evalbot_r13163 Error: No compatible subroutine found: "&a"
18:59 TreyHarris ?eval class C { has $.a is rw; }  sub f() { my C $o .= new(); $o }; f().a
18:59 evalbot_r13163 Error: No compatible subroutine found: "&a"
18:59 putter or at least, not the obvious one.
18:59 TreyHarris ?eval class C { has $.a is rw; }  sub f() { my C $o .= new(); $o }; f().ref
18:59 evalbot_r13163 ::Scalar
18:59 TreyHarris ?eval class C { has $.a is rw; }  sub f() { my $o = C.new(); $o }; f().ref
18:59 evalbot_r13163 ::C
18:59 TreyHarris ?eval class C { has $.a is rw; }  sub f() { my C $o = C.new(); $o }; f().ref
18:59 evalbot_r13163 ::C
19:01 putter ?eval class C { has $.a is rw; } my C $o .= new; $o.ref
19:01 evalbot_r13163 ::C
19:02 TreyHarris ?eval class C { has $.a is rw; }  sub f() { my C $o .= new(); return $o }; f().ref
19:02 evalbot_r13163 ::Scalar
19:02 TreyHarris ?eval class C { has $.a is rw; }  sub f(--> C) { my C $o .= new(); return $o }; f().ref
19:02 evalbot_r13163 Error:  unexpected "-" expecting comment, formal parameter or ")"
19:02 TreyHarris ?eval class C { has $.a is rw; }  sub f() returns C { my C $o .= new(); return $o }; f().ref
19:03 evalbot_r13163 ::Scalar
19:03 * TreyHarris *shrugs*
19:03 cmarcelo audreyt: i'm back.. compiling fresh GHC to check the J.Hash thing.
19:03 TreyHarris confusing.  and since I don't have a working pugs, I think I'll just leave it at that :-)
19:04 TreyHarris SamB: all you did to fix feather yesterday was make clean?
19:04 putter thanks for the help. :)
19:04 SamB I didn't make clean
19:04 TreyHarris SamB: oh, that was what gaal said.  What did you do?
19:04 SamB I put something Makefile.PL that was removed in two stages...
19:05 SamB apparantly $(wildcard ...) is a gmake-ism
19:05 SamB anyway, I was trying to have src/Pugs/Prelude.hs rebuilt whenever the Pugs.AST module changed...
19:06 SamB by making it depend on the .hi file when there is one
19:07 TreyHarris my Prelude.hs is up to date...
19:07 TreyHarris I don't know what's wrong :-(
19:07 SamB audreyt rebuilt something else...
19:08 TreyHarris well, i could build a new GHC, but that will put me out of commission even longer without any pugs...
19:09 gaal TreyHarris: no need :)
19:09 SamB <audreyt> markstos: that was because Test.pm.yml needed to regen as well
19:09 putter ?eval class C { has $.a; } sub g() { my C $x .= new(:a(123)); $x } try { g().a }
19:09 evalbot_r13163 undef
19:09 putter ?eval class C { has $.a; } sub g() { my C $x .= new(:a(123)); $x } g().a
19:09 evalbot_r13163 Error: No compatible subroutine found: "&a"
19:09 putter my C $x .= new(:a(123)); $x.a
19:09 gaal eep good point there SamB + audreyt
19:10 putter ?eval my C $x .= new(:a(123)); $x.a
19:10 evalbot_r13163 Error: No compatible subroutine found: "&new"
19:10 SamB gaal: what?
19:10 gaal SamB: good point about Test.pm.yml needing regen
19:10 putter ?eval class C { has $.a; } my C $x .= new(:a(123)); $x.a
19:10 evalbot_r13163 \123
19:10 TreyHarris oh.  i don't have a Test.pm.yml
19:10 SamB I dunno what she meant!
19:10 gaal TreyHarris: maybe elsewhere?
19:11 gaal old 'make install' or something?
19:11 gaal 'make blib6/lib/Test.pm.yml' to regen it
19:11 SamB so, why isn't gmakery allowed?
19:11 gaal SamB: hmm? because not everybody has gmake
19:11 gaal e.g. windows, freebsd
19:12 SamB what DO windows people have, if not gmake?
19:12 gaal SamB: typically nmake, by MS
19:12 SamB and that is able to run makefiles?
19:12 SamB of the normal sort?
19:12 gaal freebsd folks have... bsd make, resumably
19:12 gaal s/res/pres/
19:13 SamB bsd make is annoying
19:13 gaal SamB: the lingo's somewhat different, but that's why we generate makefiles with MakeMaker
19:13 TreyHarris ok, do I need to make again now that i've re-gened Test.pm.yml?  cuz I'm still getting the same Instances.hs error
19:13 SamB so, how are you supposed to have a dependency on a file only if it exists?
19:14 gaal SamB: cross platformly? I don't know, and it looks like we'll ahve to push the dependency logic once more into a script iunvoked by the rule. everybody hates that solution, but hey it works
19:14 svnbot6 r13164 | putter++ | attribute_of_return_value.t - added a { my C $x .= new; $x } test as that currently behaves differently than { C.new }.
19:14 gaal TreyHarris: no remake needed
19:14 SamB gaal: how does that work?
19:14 TreyHarris gaal: ok, so how do I "activate" it?
19:14 SamB the rule only gets run when dependencies change...
19:14 TreyHarris because i'm still getting the same error
19:14 gaal SamB: see util/build_pugs.pl
19:15 SamB why can't you just insist on gmake?
19:15 gaal SamB: it's a cop out. just not use make
19:15 gaal SamB: because it'
19:15 SamB it isn't that hard to get!
19:15 gaal s not part of the toolchain some people have.
19:15 putter But hey, C.new working is very nifty.
19:15 gaal on windows? it is.
19:15 SamB how so?
19:16 gaal I don't know of a gmake that doesn't entail many dependecies (such as different directory separators) on windows
19:17 gaal s/entail.*dependecies/bring in other implications/
19:17 SamB / works fine on windows
19:17 TreyHarris gaal: any clue how to activate it?
19:17 gaal TreyHarris: it should Just Work
19:18 gaal if it's in the path
19:18 gaal setenv PERL6LIB blib6/lib
19:18 gaal or the other syntax
19:18 TreyHarris it's already set to that
19:19 TreyHarris ah, but you're right:  I ktraced and it's loading /Library/Perl6/Test.pm.yml
19:19 gaal whew, I was about to write I'm out of ideas.
19:19 TreyHarris so I gues I need to find the "no, really PERL6LIB" variable ;-)
19:20 _SamB_bot joined perl6
19:20 gaal welllllll no, first please see if it actually tried the right one first?
19:20 gaal because I don
19:20 gaal 't remember how the bracketing worked, but it could be that if it failed one it looks for other candidates in the path before croaking
19:20 gaal of course it can also be a bug in @INC.
19:21 gaal but kwhatever | grep \.pm will be helpful...
19:21 TreyHarris gaal: I guess that's what it must be, as it never tries the one in PERL6LIB and only uses the one in /Library
19:21 gaal ah.
19:21 gaal too bad :)
19:21 gaal well, you have a workaround for now (rm it! :)
19:22 gaal I'm regrettably a little to tired to fix
19:22 TreyHarris no prob.  i wonder how valid my smokes have been
19:22 gaal but if you want to hack on it, the code is either in Run.hs or in Eval.hs
19:22 gaal let me find it...
19:22 TreyHarris because I now see I have a weird mixture of things coming from my source working tree, from the installed pugs, and even from Perl 5!
19:22 gaal ouch :(
19:23 TreyHarris it loads Test.pm from blib6/lib, but Test.pm.yml from /Library.
19:23 mako132_ joined perl6
19:23 gaal ok if you want to moose this: src/Pugs/Prim/Eval.hs opRequire
19:23 TreyHarris and Prelude.pm.yml from blib6/lib.
19:24 gaal prelude has special hardcoding logic for blib6/lib ISTR
19:24 putter moose is a verb now too?!? :)
19:24 gaal moose
19:24 putter lol
19:24 TreyHarris that's my angle, I think--what is different between the loading of Prelude.pm.yml and Test.pm.yml?  because one goes one way, one goes the other, and they both exist in both of the same locations
19:25 gaal forget a bout the prelude case, it's special
19:26 gaal try putting a trace after line 42 (heh)
19:26 gaal see if the env unshifted rather than pushed to @*INC
19:27 gaal maybe the bug isnn't in this file, but rather in what constructs @INC from env
19:27 gaal grep around for that
19:27 gaal I'm losing consciousness :) you'll figure it out, I'm sure
19:27 gaal TreyHarris++ :)
19:27 * gaal sleeps &
19:37 putter g'night gaal
19:50 putter Hmm.   On a clean build. I fail with linker errors from libHSPugs-6.2.12.a(p5embed.o) and from DynaLoader.  For perl C api symbols.  With PUGS_EMBED="".
19:53 putter Hmm.  My PATH's "perl" is /usr/local/bin, 5.8.8, and /usr/bin/perl is 5.8.5.  Perhaps the symbols are version incompats, and the build process is somehow using both?  But why is there _any_ dependency on p5 object code with embedding disabled?
19:54 putter fyi &
20:07 onsen_ joined perl6
20:10 onsen__ joined perl6
20:10 penk joined perl6
20:11 weinig is now known as weinig_
20:12 weinig_ is now known as weinig
20:26 TreyHarris hrm... i know i've seen this, but i've forgotten.  assuming I have @a = 'a'..'c', and @b = 1..4, how can I combine them with ~ such that I get <a1 a2 a3 a4 b1 b2 b3 b4 c1...>?
20:27 TreyHarris ?eval my @a = <a b>; my @b = <1 2>;  @a >>~<< [@b xx @a.elems]
20:27 evalbot_r13163 is now known as evalbot_r13164
20:27 evalbot_r13164 ("a1", "b2", "1", "2")
20:28 TreyHarris ?eval my @a = <a b>; my @b = <1 2>;  @a >>~<< [[@b] xx @a.elems]
20:28 evalbot_r13164 ("a1", "b2", "1", "2")
20:32 mauke > sequence ["abc", "1234"]
20:32 lambdabot ["a1","a2","a3","a4","b1","b2",​"b3","b4","c1","c2","c3","c4"]
20:32 TreyHarris ?eval my @a = <a b>; my @b = <1 2>;  map { $_ >>~<< @a}, @b
20:32 evalbot_r13164 ("1a", "1b", "2a", "2b")
20:32 TreyHarris mauke: yup... but i don't have that in Perl 6 :-)
20:33 TreyHarris ?eval my @a = <a b>; my @b = <1 2>;  map { @a >>~<< @b }, @b
20:33 evalbot_r13164 ("a1", "b2", "a1", "b2")
20:33 TreyHarris ?eval my @a = <a b>; my @b = <1 2>;  map { @a >>~<< $_ }, @b
20:33 evalbot_r13164 ("a1", "b1", "a2", "b2")
20:34 aufrank ?eval my @a = <a b>; my @b = <1 2>; say @a Y @b;
20:34 evalbot_r13164 OUTPUT[ab ] ((Bool::True, "1"), (undef, "2"))
20:36 aufrank ?eval my @a = <a b>; my @b = <1 2>; @a Y @b;
20:36 evalbot_r13164 (("a", "1"), ("b", "2"))
20:40 TreyHarris ?eval my @a = <a b>; my @b = <1 2>;  [@b xx @a.elems]
20:40 evalbot_r13164 ["1", "2", "1", "2"]
20:40 xerox joined perl6
20:41 TreyHarris ?eval my @a = <a b>; my @b = <1 2>;  [[@b] xx @a.elems]
20:41 evalbot_r13164 ["1", "2", "1", "2"]
20:41 TreyHarris ?eval my @a = <a b>; my @b = <1 2>;  [$@b xx @a.elems]
20:41 evalbot_r13164 ["1", "2", "1", "2"]
20:41 TreyHarris ?eval my @a = <a b>; my @b = <1 2>;  [[$@b] xx @a.elems]
20:41 evalbot_r13164 ["1", "2", "1", "2"]
20:41 TreyHarris huh.  i don't get why it's flattening
20:42 TreyHarris ?eval my @a = <a b>; my @b = <1 2>;  [$(@b) xx @a.elems]
20:42 evalbot_r13164 ["1", "2", "1", "2"]
20:44 TreyHarris ?eval my @a = <a b>; my @b = <1 2>;  ($(@b) xx @a.elems)
20:44 evalbot_r13164 ("1", "2", "1", "2")
20:44 TreyHarris ?eval my @a = <a b>; my @b = <1 2>;  ([$(@b)] xx @a.elems)
20:44 evalbot_r13164 ("1", "2", "1", "2")
20:45 statico joined perl6
20:45 TreyHarris ah, well.  i give up.  nested for loops worked for Knuth, they'll work for me :-)
20:50 weinig is now known as weinig|bbl
20:59 buu What in the name of satan is $(@b) ?
21:01 TreyHarris buu: forcing it to be a scalar
21:02 TreyHarris there's $(), @(), %(), ?(), !(), ~(), list(), int()...
21:02 TreyHarris +()...
21:02 TreyHarris probably more
21:02 buu Eek.
21:03 buu ?eval my @a=<a b>; $(@a)
21:03 evalbot_r13164 ["a", "b"]
21:03 buu er, what?
21:05 TreyHarris ?eval my @a = <a b>; @a
21:05 evalbot_r13164 ["a", "b"]
21:05 TreyHarris same thing
21:05 TreyHarris autoboxing.
21:05 TreyHarris you're running into exactly the problem i was trying to create a nested list
21:05 pasteling "cmarcelo" at 200.232.237.204 pasted "GHC-trunk build error. complaining about 'Main' when building Pugs library." (14 lines, 3.1K) at http://sial.org/pbot/19579
21:06 TreyHarris ?eval (1, 2, [3, 4])
21:06 evalbot_r13164 (1, 2, [3, 4])
21:07 TreyHarris ?eval my @a = 3, 4; (1, 2, @a)
21:07 evalbot_r13164 (1, 2, [3, 4])
21:07 TreyHarris ?eval my @a = 3, 4; (1, 2, @a xx 2)
21:07 evalbot_r13164 (1, 2, 3, 4, 3, 4)
21:07 TreyHarris looks like you throw an xx in there, and everything gets flattened
21:11 TreyHarris ?eval my @a = 3, 4; (1, 2, ([@a],) xx 2)
21:11 evalbot_r13164 (1, 2, (3, 4), (3, 4))
21:11 TreyHarris mmmm, better
21:12 TreyHarris ?eval my @a = <a b>; my @b = <1 2>;  @a >>~<< [[@b,] xx @a.elems]
21:12 evalbot_r13164 ("a1", "b2", "1", "2")
21:12 TreyHarris ?eval my @a = <a b>; my @b = <1 2>;  @a >>~<< (([@b],) xx @a.elems)
21:12 evalbot_r13164 (("a1", "a2"), ("b1", "b2"))
21:12 TreyHarris wowee.  that's.... gross.
21:13 TreyHarris ?eval my @a = <a b>; my @b = <1 2>;  @a >>~<< ((@b,) xx @a.elems)
21:13 evalbot_r13164 ("a1", "b2", "1", "2")
21:13 TreyHarris ?eval my @a = <a b>; my @b = <1 2>;  @a >>~<< (($@b,) xx @a.elems)
21:13 evalbot_r13164 ("a1", "b2", "1", "2")
21:14 TreyHarris huh.  that one that works is completely opaque.  i see, sorta, why it works and the others don't... but still.  DWIM already, will ya? :-)
21:25 MacVince joined perl6
21:45 TreyHarris hrm... who's the p6-u moderator?
22:02 notThis joined perl6
22:12 Revision17 joined perl6
22:20 Revision17 joined perl6
22:24 [1]Revision17 joined perl6
22:28 [1]Revision17 is now known as Revision17
22:31 onsen joined perl6
22:49 mako132_ joined perl6
22:50 elmex joined perl6
22:54 justatheory joined perl6
22:57 markstos joined perl6
23:00 xerox joined perl6
23:20 apple-gunkies joined perl6
23:28 svnbot6 r13165 | markstos++ | [util/version_h.pl] add more user-friendly death messages.
23:28 svnbot6 r13165 | markstos++ | Also, added a "TODO" comment to the top of the script, asking someone
23:28 svnbot6 r13165 | markstos++ | to leave a note there explaining what the heck it does.
23:34 markstos agentz: I think there is a bug in smartlinks.pl. Given this broken smart link: # L<S9/=item spliF>, "--check" reports that 1 smart link was found and 0 are broken. Perhaps it just has a different notion of "broken" than I expected.
23:36 svnbot6 r13166 | markstos++ | [util/version_h.pl]
23:36 svnbot6 r13166 | markstos++ | use FindBin::Bin for more sane path defaults. Before this change,
23:36 svnbot6 r13166 | markstos++ | it would die with smartlinks.pl was called from a location other than the "pugs" directory.
23:37 Limbic_Region joined perl6
23:41 onsen joined perl6
23:44 aufrank left perl6
23:48 mjk joined perl6
23:49 mako132_ joined perl6
23:51 svnbot6 r13167 | markstos++ | [util/smartlinks.pl]
23:51 svnbot6 r13167 | markstos++ | Adding some initial (private POD) to document the use of global variables.
23:51 svnbot6 r13167 | markstos++ | It looks like $count and $broken_count could become return values, making
23:51 svnbot6 r13167 | markstos++ | the program easier to maintain and unit test.
23:53 markstos I found the bug with smartlinks.pl. It tries L<NONEXISTENT/foo> as a non-broken smart link. I'm looking at a fix now.
23:53 markstos s/tries/treats/
23:57 TreyHarris markstos: isn't that correct?  because sometimes people might want to link Differences, or some random draft, or whatever... if smartlinks.pl doesn't recognize the title, it's supposed to just skip it and assume it may become useful at some point in the future
23:57 plural joined perl6
23:58 markstos TreyHarris: I also tried just L<BOOM>.  it's ignored. I think that covers the Differences.pod case.
23:58 markstos So I think a bug remains.
23:59 markstos I'm reading the source now to check the intent.

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

Perl 6 | Reference Documentation | Rakudo