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