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 |