Perl 6 - the future is here, just unevenly distributed

IRC log for #perl6, 2006-08-14

Perl 6 | Reference Documentation | Rakudo

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

All times shown according to UTC.

Time Nick Message
00:13 norageek joined perl6
00:17 diakopter joined perl6
00:17 theorbtwo joined perl6
00:34 nekokak joined perl6
00:36 justatheory joined perl6
00:49 mjk joined perl6
00:51 diakopter_ joined perl6
00:52 weinig is now known as weinig|dinner
00:52 justatheory joined perl6
01:18 dolmans joined perl6
01:20 FurnaceBoy joined perl6
02:08 lambdabot joined perl6
02:11 xinming joined perl6
02:20 SubStack joined perl6
02:53 deleff joined perl6
03:29 rashakil_ joined perl6
03:38 weinig|dinner is now known as weinig
04:08 elmex_ joined perl6
04:31 weinig joined perl6
04:34 svnbot6 r12198 | audreyt++ | * Rename the "Ident" type to "ID"; it will be come a "newtype Int"
04:34 svnbot6 r12198 | audreyt++ |   so we can intern all our buffers once Judy lands to the trunk,
04:34 svnbot6 r12198 | audreyt++ |   which should also result in massive speed-ups in e.g. Type
04:34 svnbot6 r12198 | audreyt++ |   comparisons.
04:41 svnbot6 r12199 | audreyt++ | * Now that ID means "Identifier", we rename the old "valId" type
04:41 svnbot6 r12199 | audreyt++ |   to "SKID" to agree with the synopses's usage.
04:44 gaal problem is that "ID" doesn't sound like a user-issued name
04:44 gaal if
04:44 gaal "Identidief" weren't so long I'd just go with that
04:48 audreyt hi
04:48 svnbot6 r12200 | audreyt++ | * Oldland method calls with newVal as invocant is now hooked into a
04:48 svnbot6 r12200 | audreyt++ |   newland call with new toys such Captures, Feeds, etc.  Yay!
04:48 svnbot6 r12200 | audreyt++ |     pugs> vv('moose').elk(1, 2, antler => 3);
04:48 svnbot6 r12200 | audreyt++ |     CCall "elk" CaptMeth
04:48 svnbot6 r12200 | audreyt++ |         { c_invocant = VPure (MkStr "moose")
04:48 svnbot6 r12200 | audreyt++ |         , c_feeds = [ MkFeed
04:48 svnbot6 r12200 | audreyt++ |             { a_positional = [VPure (IFinite 1),VPure (IFinite 2)]
04:48 svnbot6 r12200 | audreyt++ |             , a_named = fromList [("antler",[VPure (IFinite 3)])]
04:48 svnbot6 r12200 | audreyt++ |             } ]
04:48 svnbot6 r12200 | audreyt++ |         }
04:50 audreyt gaal: hmm, point
04:51 audreyt oh, a_positional is probably f_positional now
04:51 * audreyt goes fixing
04:53 gaal whoa 12200!!
04:54 audreyt :)
04:54 audreyt gaal++ # prepared the groundwork for all of this
04:55 audreyt capturizing can now begin in runtime level without forcing the AST to be changed at once
04:55 svnbot6 r12201 | audreyt++ | * Feed should have fields f_positionals and f_nameds, not
04:55 svnbot6 r12201 | audreyt++ |   a_positional and a_named.
04:55 audreyt (though I still would like to distinguish &foo(1) with foo(1) in Exp level, that is not critical now)
04:56 gaal what does the former mean?
04:56 audreyt sub-only, never-meth dispatch
04:56 audreyt one is CApply
04:56 audreyt the latter is CCall
04:56 gaal ah. well, then it's just a parser thing then
04:56 gaal "simple matter of parsing" :)
04:57 audreyt yeah. I wonder what's the difference between &foo(1,2) vs foo(1,2)
04:57 agentzh joined perl6
04:57 gaal hmm? why is it any different than the 1-arg case?
04:58 audreyt CCall in 1arg form still have a chance to go into 1.foo
04:58 audreyt currently there's no way for foo(1,2) to go into 1.foo(2)
04:58 audreyt unless we make it so
04:58 audreyt I'm wondering if we should make it so.
04:58 audreyt the ergonomic reason is that
04:58 audreyt the current S29 wants
04:58 audreyt push @x, 1, 2, 3;
04:58 audreyt but that 's semibogus
04:58 audreyt since what we really want people to write is
04:58 audreyt push @x: 1,2,3;
04:58 gaal say $fh: <la la la>
04:59 audreyt but to keep people from revolting, S29 dictates a global helper
04:59 audreyt multi push (@, *@)
04:59 audreyt sole purpose is to redispatch into a method
04:59 audreyt I worry about this pattern
04:59 gaal oh, so this is actually easily fixed
04:59 gaal you tell people the : form is faster
05:00 audreyt but the , form does not work on ordinary objects
05:00 audreyt and we need to flatten all common methods from all builtin classes
05:00 gaal you won't imagine how fast it shows up in forums and style guides that anyone not using the : form is a n00b
05:00 audreyt into global namespace
05:00 gaal problem solved :)
05:00 audreyt simply to delegate
05:00 audreyt which is I think bad tainting
05:01 audreyt what if we say that, if &push is not in scope, or its proto does not handle (@x, 1, 2, 3)
05:01 audreyt then it fallbacks to @x.push(1,2,3)
05:01 audreyt exactly as the 1-arg case?
05:01 audreyt that is symmetrical with the method-to-sub fallback
05:01 audreyt and you can perhaps turn both off with a pragma to enforce say-what-you-mean coding
05:02 audreyt and I think it's cleaner than populating the global namespace with &*push
05:02 audreyt &*shif
05:02 audreyt &*shift
05:02 audreyt which has caused us many a prelude troubles
05:02 elmex joined perl6
05:02 gaal that pragma, it controls parsing or runcore?
05:03 gaal the 2nd-chance dispatch is an extra Exp node?
05:03 gaal or does CCall dispatch retry itself as CApply
05:03 gaal ?
05:03 audreyt nono
05:03 audreyt it's all in CCall
05:03 audreyt all this does not affect CApply one bit
05:03 gaal hm k
05:04 audreyt basically, we wouldn't need a CCall form if not for the fallback rules
05:04 audreyt f(1,2) # CApply &f(1,2) without fallback
05:04 audreyt 1.f(2) # CApply &1.can('f').(1:2) without fallback
05:05 audreyt s/&1/1/
05:05 audreyt but we keep the CCall form because of mutual fallback
05:05 gaal btw: sub f (@x is rw) { ... }      f(x => @a[0], x => @a[72])    # works?
05:06 audreyt I'd imagine so, yes
05:06 gaal and inside f, @x.push does what?
05:06 audreyt I think this is a social problem, i.e. if we can force people to say
05:06 audreyt close $fh:;
05:06 audreyt push @x: 1,2,3;
05:07 audreyt then we wouldn't need any fallbacks
05:07 audreyt or at least not the sub->meth direction
05:07 audreyt (meth->sub still needs to be there)
05:07 gaal 'use PerlFunctions'
05:08 gaal the no arg case looks real funny (close $fh:)
05:08 audreyt $fh.close # a bit better
05:08 audreyt but indeed.
05:08 gaal yeah
05:08 audreyt neither looks as moose as
05:08 audreyt close $fh;
05:09 gaal $fh.close is entirely reasonable, but *requiring* it would be not moose at all
05:09 audreyt ditto for the push case, actually
05:09 gaal yeah
05:09 audreyt substr $text: 1,2;
05:09 audreyt try selling that to perl5 people :)
05:09 gaal "if you want ruby you know where to find it"
05:09 gaal ha!
05:09 audreyt gaal++
05:10 audreyt @x.push does what? it fails
05:10 lambdabot Unknown command, try @list
05:10 audreyt Seq.push is not there
05:10 gaal but surely sub f (@x is rw)....  f(@my_hard_earned_y) should work?
05:10 audreyt maybe "is rw" fails right there
05:11 audreyt but no I guess not
05:11 audreyt Seq still satisfied rw
05:11 audreyt it can be assigned to, it just cannot be pushed with
05:11 gaal no, I can see the use of constructing a view for f in the piecemeal case
05:12 audreyt indeed
05:12 gaal yeah. the only thing is that this can't be figured out statically. probably.
05:12 audreyt and
05:12 audreyt @x = (1,2,3)
05:12 lambdabot Maybe you meant: . v
05:12 audreyt will supposedly distrinbute 1 and 2 to @a[0,72]
05:12 audreyt and discard 3
05:12 audreyt just as what we'd expect with views
05:12 gaal unless possibly a warning.
05:12 audreyt the two-way padding rule is warnable
05:13 audreyt but not a warning in perl5
05:13 audreyt ($x) = (1,2,3)
05:13 audreyt ($x, $y, $z) = (1)
05:13 gaal ah right
05:13 audreyt the latter case is especially frustrating as
05:14 audreyt ($x, $y) = f()
05:14 gaal [what turned out to be the placholder here? (_, _, $x) = @x]
05:14 audreyt in f(), "want" is :(*$ is optional, *$ is optional, *@)
05:14 audreyt not (*$, *$, *@) as I'd expect
05:14 gaal hmmm
05:14 luqui joined perl6
05:14 audreyt but again it's part of what makes perl perl :)
05:14 audreyt so not changing it :)
05:15 audreyt luqui: hi. I'm just ranting about how I dislike
05:15 audreyt push(@x, 1, 2, 3)
05:15 audreyt or rather, how it's currently handled by forcing a global &*push
05:16 audreyt to exist in all programs
05:16 luqui it looks wrong to me...
05:16 audreyt which has a sole purpose of converting it to @x.push(1,2,3)
05:16 audreyt er, all of 3,5,6,9 use that syntax
05:16 audreyt and it's in S29
05:17 luqui I mean, obviously it is correct, but push(@x, 1, 2, 3) doesn't look like you're pushing onto @x
05:17 audreyt so I'd say it's pretty deep rooted
05:17 luqui instead it looks like you're pushing the elements of @x and 1,2,3 onto something... else
05:17 audreyt yeah.
05:17 audreyt so I wonder, instead of forcing a certain methods to global space
05:17 audreyt and confuse everybody else when they use something not preexposed as sub
05:18 audreyt why not just have a pragma that controls sub-fallback-to-method behaviour?
05:18 audreyt when it's on, push(@x,1,2,3) when failing sub dispatch go to meth dispatch
05:18 luqui rather, when it is off
05:18 audreyt and when it's off, you have to write $fh.close and @x.push(1,2,3).
05:18 audreyt sorry, indeed
05:18 audreyt use strict 'subcall'
05:18 audreyt or something like that, and it needs to be off by default
05:19 audreyt i.e. fallback by default happens
05:19 luqui right
05:19 audreyt then 50% of S29 can go away :)
05:19 audreyt since they are just redispatchers
05:19 luqui hmm.. it feels like kind of a hacky solution.  we could consider it a transitional form
05:20 luqui on the other hand, it shouldn't be a transitional form
05:20 audreyt it's there to support push and close
05:20 audreyt and substr
05:20 audreyt and index
05:20 luqui because not everybody thinkis in OO
05:20 audreyt aye
05:20 audreyt and we should preserve this useful illusion
05:20 audreyt that substr is still a function somehow
05:20 audreyt except you can't take a reference to it anymore
05:20 audreyt which I think is very good...
05:21 luqui wait... why?
05:21 luqui I mean, why do you think it is good?
05:21 gaal ha, thanks to you audreyt you can't take a reference to anything now :-p
05:21 luqui gaal, ?
05:21 audreyt luqui: because that implies you can call substr with anything
05:21 audreyt but that's clearly not the case
05:22 audreyt or let's not say substr; let's say binmode
05:22 gaal luqui: there are no references.
05:22 luqui gaal, ?
05:22 luqui you mean in pugs?
05:22 audreyt I think this is bogus: $x = &binmode;
05:22 gaal luqui: in Perl 6
05:22 luqui okay, someone will have to explain this to me
05:22 audreyt luqui: whilst you were away we murdered references :)
05:23 gaal luqui: http://svn.openfoundry.org/pu​gs/docs/Perl6/FAQ/Capture.pod
05:23 audreyt in any case, my point is that while we might want to let people continue writing
05:23 audreyt binmode($fh, ':utf8')
05:23 audreyt that is I think just a fallbacked dispatch to $fh.binmode()
05:24 audreyt (probably decidable in compile time)
05:24 audreyt and &binmode by itself will be a lookup failure
05:24 audreyt to clarify that it is actually not a function in the builtin symbol table
05:24 gaal how can that be decidable at compile time?
05:24 luqui rather, where in compile time?
05:24 audreyt the same time the provisional calls are resolved
05:25 audreyt end of compilation unit construction
05:25 audreyt where you know for sure that &binmode is not going to exist
05:25 luqui fair enough
05:25 gaal require <A B C>[rand hw]; binmode $fh ':utf8';
05:27 * luqui doesn't understand gaal's utterance
05:27 luqui rand hw?
05:27 audreyt gaal: that fails
05:27 audreyt "there is no barewords in perl 6"
05:27 audreyt S02:1775
05:28 audreyt i.e. it will be rejected by provisional call syntax
05:28 gaal how do you force symtable dispatch? if my code relies on someone else pushing a sub into my symtable?
05:28 audreyt unless you somehow proto it
05:28 audreyt then you protot it
05:28 gaal ah, proto.
05:28 audreyt the same way all separate compilation languages do it
05:28 audreyt extern ...
05:28 gaal in perl 5, parens were enough
05:28 gaal nodnod
05:29 gaal luqui: hw is the ubiquitous handwave function.
05:29 audreyt we evven do that in pugs haskell :)
05:29 luqui oh right
05:29 luqui but it is a pita in haskell
05:29 audreyt {-# NOINLINE _DoCompile #-}
05:29 audreyt _DoCompile :: Maybe (IORef (String -> FilePath -> String -> IO String))
05:29 audreyt _DoCompile = Just $ unsafePerformIO $ newIORef (error "unregistered")
05:30 audreyt is how we say this module depends on someone to push into its symbol table"
05:30 audreyt yes, it's a pita :)
05:30 gaal where was the bareword up there, btw? that was a string
05:30 audreyt "binmode" was a bareword
05:30 gaal ah
05:30 audreyt that does not take a clear resolvable meaning
05:30 gaal indeed
05:30 gaal yes yes
05:32 gaal I gotta go to $work now...
05:32 audreyt have fun :)
05:32 gaal *you* have fun :) 12200++ audreyt++ :)
05:33 agentzh audreyt: do you have the ability to get openfoundry support https again?
05:33 audreyt :)
05:33 audreyt agentzh: I can ask, but I don't have shell access now
05:33 audreyt agentzh: or maybe you can ask
05:33 agentzh thanks. :)
05:33 agentzh http is slow here.
05:34 audreyt where are you in the realspace?
05:34 agentzh .cn
05:34 audreyt ahh.
05:35 agentzh :)
05:35 agentzh same as xinming.
05:35 weinig is now known as weinig|sleep
05:36 * agentzh goes to hack on the test suite.
05:38 luqui audreyt, so references, um, do exist
05:38 audreyt yeah. they are just fatter
05:38 luqui $x = \&binmode;  $$x($fh, ':utf8')
05:39 audreyt er no, I'm saying that \&binmode fails
05:39 audreyt with "cannot lookup &binmode"
05:39 audreyt "must be predecl"
05:39 luqui oh, because of the rewritey thing
05:39 audreyt etc
05:39 luqui not because you can't take references to functions
05:40 luqui I really think that if binmode($fh, ':utf8') is to work, \&binmode should also
05:40 luqui it's kind of like the reason for using tied scalars for false getters and setters
05:40 luqui so that you can pretend that it's a real attribute in all circumstances
05:40 audreyt but then
05:40 audreyt \&anymethod
05:40 audreyt would need to work
05:41 luqui ah, and the error would be caught at the call site
05:41 luqui not the reference site, which is indeed a little strange
05:41 audreyt I think it's broken :)
05:41 audreyt I think the compiler should rewrite binmode($fh, ':utf8') to $fh.binmode(':utf8') when it knows it can do that
05:41 audreyt i.e. when &binmode does not exist anywhere
05:41 luqui that seems broken to me, though
05:41 audreyt but that is already the case for close($fh)
05:42 audreyt it's the "1arg special case"; we are just extending it to multiarg
05:42 luqui oh, &close doesn't work?
05:42 audreyt no. close($fh) is just $fh.close
05:42 luqui hmmm
05:42 audreyt special rule on 1arg subcalls -- always try meth first
05:42 audreyt which has always sounded very strange
05:42 luqui okay, well in that context your proposal makes perfect sense
05:43 luqui but it might be worth revisiting that rule
05:43 audreyt yeah. but that rule is vital if you don't want to force people to write $fh.close
05:43 audreyt $text.substr
05:43 audreyt as in ruby
05:43 svnbot6 r12202 | agentz++ | [t/syntax/char_by_number.t]
05:43 svnbot6 r12202 | agentz++ | added tests for \o and \o[].
05:43 svnbot6 r12202 | agentz++ | more magic links as well.
05:43 audreyt i.e. it's the procedural facade for the underlying OO runcoe
05:43 luqui hmm...
05:44 luqui the fallback thing just makes me uneasy
05:45 audreyt I understand
05:45 audreyt it also makes me uneasy. I'd suggest forcing people to write
05:45 luqui the fact that if people start using close($fh), I am not allowed to define a close(), lest it break their code
05:45 audreyt substr $text: ...
05:45 audreyt uh, why?
05:45 audreyt separate compilation
05:45 luqui rather, export
05:45 audreyt you cannot break anyone's code :)
05:45 audreyt oh. but if they import &close, they know what they are getting, presuambly
05:45 luqui basically, the fact that close() is a fallback to method call essentially makes it a function
05:46 audreyt and inport is lexical
05:46 audreyt and if they wrote
05:46 audreyt $fh.close
05:46 audreyt close $fh:
05:46 audreyt then the import doesn't thouch them
05:46 luqui right
05:46 luqui but they have to know that
05:46 audreyt I don't know... I think either global fallback, or force "substr $text: 1,2"
05:47 audreyt the current situation of selecting some &push &substr &binmode to global namespace, but some others not
05:47 audreyt is not sustainable
05:47 luqui absolutely agreed
05:47 audreyt I think cleanest is when you see
05:47 audreyt push @x, 1, 2
05:48 audreyt with *push not in scope
05:48 audreyt compile it to
05:48 audreyt push @x: 1, 2
05:48 audreyt and raise a suppressible warning
05:48 audreyt saying "method-looks-like-a-function compile from foo to bar; consider writing bar instead"
05:48 audreyt to gently lead people the other way
05:49 luqui the reason for the single arg was that close $x:; looks ugly, no?
05:49 audreyt "Warning -- close($fh) with no &close in scope compiled to $fh.close; consider writing it that way to begin with, kthx"
05:49 audreyt yup.
05:50 luqui so I wonder how to reconsile that.  I mean, $x.close obviously...
05:50 audreyt yeah, prolly just $x.close.
05:50 audreyt @Larry made dot shorter for a good reason
05:50 lambdabot Maybe you meant: arr yarr
05:50 audreyt i.e. you don't make your code longer :)
05:51 luqui (blah blah yada yada foo bar).close
05:51 luqui was the thing that bugged me about being forced to use method synta
05:51 luqui x
05:51 luqui close (blah blah yada yada foo bar):;
05:51 luqui ....
05:52 luqui same problem
05:52 audreyt but arguably if you know you are calling a method
05:52 luqui there's a subtle little thing way out on the right
05:52 audreyt then .close is natural
05:52 audreyt what about postifx given?
05:52 audreyt .close given (blah blah yada yada foo bar);
05:52 audreyt is clear and concise and all.
05:53 luqui hmm.. that's nice
05:53 Bit-Man_ joined perl6
05:53 luqui I suppose people who care about endweight will probably be leet hax0rs anyway
05:53 audreyt "given" is to "for" what item cnotext is to cllurpy context
05:53 audreyt *context *slurpy
05:53 luqui uh... huh.  cllurpy huh?
05:54 luqui d/dt(audreyt's grammar + audreyt's accuracy) = 0
05:54 audreyt lol
05:55 audreyt .close for $fh;
05:55 audreyt even that is not half bad
05:55 luqui well, the warny solution sounds good to me
05:55 audreyt yay
05:55 luqui TimToady might disagree...
05:56 audreyt might also be debatable to warn on 1arg or no
05:56 audreyt more consistent if yes
05:56 luqui I mean it is important for people not to have to worry about OO before they understand it
05:57 audreyt yeah. but erl5 already have   233 builtins
05:57 svnbot6 r12203 | agentz++ | [t/syntax/char_by_number.t]
05:57 svnbot6 r12203 | agentz++ | added tests for \d and \d[]. (all tests pass now. pugs++)
05:57 audreyt that's 233 words user cannot use for functions
05:58 audreyt and perl6 , if we take the push-to-global approach as currently in S29, will make that problem worse :)
05:58 audreyt thanks for the sanity check :)
05:59 luqui it's really about: to warn or not to warn
05:59 luqui not: to rewrite or not to rewrite
05:59 audreyt *nod*
05:59 luqui rewriting is the answer if it is between those two options
05:59 audreyt warn on multiarg only fits the current spirit
05:59 audreyt i.e. suggesting people to write
05:59 audreyt push @x: 1,2,3
05:59 audreyt but silent on the matter of
05:59 audreyt shift @x;
06:00 luqui so if someone doesn't understand OO, pedagogically how do you explain when to use :?
06:00 audreyt I can certainly live with that, honestly
06:00 audreyt "you use : when told to" :)
06:01 luqui could be like learning masculine/feminine
06:01 audreyt pedagogically, "use you : when calling a builtin function with more than one arg."
06:01 luqui oh.
06:01 audreyt s/use you/use you/
06:01 luqui we are all methods?
06:01 luqui useful substitution there
06:01 audreyt s/use you/you use/
06:01 audreyt anyway.
06:02 audreyt I think nonbiasing things are still functions
06:02 audreyt infix:<+> for example
06:02 audreyt but they you don't call it with function syntax anyway
06:02 audreyt s/they/then/
06:02 luqui &open
06:02 luqui eh
06:02 luqui probably not an issue
06:03 luqui a beginner will probably write it one way
06:03 luqui and if it fails, the compiler will tell him the right way to write it
06:03 luqui so he'll write it that way
06:03 audreyt yup
06:03 audreyt and I think fallback is there so it still *works
06:03 luqui that whole failsoft design constraint
06:03 audreyt and if you don't care, you say "v6;" or -e and suppress it
06:04 luqui is there a good way to get into "program mode" from the command-line?
06:05 audreyt module Main ...
06:05 luqui I just remembered how important -e is as a learning tool
06:05 audreyt or maybe
06:05 audreyt -Mstrict -e ...
06:06 luqui I'm thinking maybe -E...
06:06 luqui pugs has an interactive mode, right?
06:06 luqui right.
06:06 audreyt sure
06:06 luqui is that strict or not?
06:06 audreyt it's all strict.
06:06 audreyt we don't yet implement nonstrict
06:07 luqui if it stays strict, the interactive mode should suffice as the learning tool
06:07 audreyt *nod*
06:07 audreyt so, the question regarding &open
06:08 audreyt I think it's exported from IO::open
06:08 audreyt into prelude
06:08 audreyt so yes it's still a function
06:08 audreyt but then it's not a redispatcher
06:08 audreyt since it's not a instance-method call to begin with
06:08 audreyt i.e. there's no instance for it
06:09 audreyt so that's fine... wouldn't want to force people write IO::open or IO.open
06:09 audreyt though IO("/etc/passwd") is tempting
06:09 audreyt and might be better pedagogically anyway
06:10 audreyt but &open should remain as a function
06:12 luqui brb
06:13 cmarcelo audreyt: hi.. some news: trunk+6.4.2 and r12101+(6.5 | 6.4.2)  both works (defined as: number of failed tests very close to non-judy)... trunk+6.5 is segfaulting sometimes, i'm trying to track differences from old rev that work but didn't found.. in trunk static thing is already works for 6.4.2 ..
06:13 audreyt I think it's good to checkin then
06:13 audreyt we can track down segfault together
06:13 cmarcelo if it breaks people's heart too much we just revert it..
06:14 audreyt as long as feather works
06:14 audreyt I think people can recover :)
06:15 cmarcelo oh
06:15 audreyt (feather is 6.4.1 debian)
06:15 cmarcelo people with svk will miss some changes, and maybe it'll be broken for them...
06:15 cmarcelo because the skip
06:15 audreyt skip doesn't skip changes
06:16 audreyt it jsut skips history
06:16 audreyt so that's fine
06:16 cmarcelo i need to skip just once or everytime i'm sync'ing?
06:16 audreyt i.e. a "svn up" is like "svk sy -s HEAD"
06:16 audreyt just once
06:18 audreyt so, ready to check in? :)
06:19 luqui oh audreyt, the thing I was working on yesterday is in an almost-working state
06:19 audreyt oooh
06:19 agentzh auderyt: is "\187 \132" valid in Perl 6? The synopses don't mention this form of characters indexed by number.
06:19 luqui there is one problem: FIRST does not keep the correct pad, I'm wondering what the issue is:
06:20 audreyt agentzh: valid, and \d[187] too
06:20 luqui for ^2 { my $c = { my $x = 42; FIRST { say $x }  $x++ };  $c(); $c() }
06:20 audreyt it's in synopses
06:20 audreyt S02
06:20 luqui the second time around, the FIRST is still referring to the $x from the first time around
06:20 agentzh audreyt: but not the "\187" form.
06:20 audreyt oh hm, wait, \187 indeed is not
06:21 agentzh auderyt: so "\187" == '\187' ?
06:21 audreyt er no
06:21 agentzh sorry, eq i mean.
06:21 audreyt per usual rule it will become "187"
06:21 audreyt ?eval "\ijk"
06:21 agentzh auderyt: ah, yes!
06:21 evalbot_12185 is now known as evalbot_12203
06:21 evalbot_12203 "ijk"
06:21 agentzh audreyt: thanks!
06:22 audreyt I don't know... I can see that \65 is not as useful as \d65
06:22 audreyt s/useful/clear/
06:22 audreyt so I'm fine for retiring the \187 form
06:22 agentzh aye
06:22 svnbot6 r12204 | cmarcelo++ | * Integrate judy and HsJudy on Pugs' build process. Make IArray and IHash
06:22 svnbot6 r12204 | cmarcelo++ | use HsJudy.
06:22 * agentzh is also hoping luqui can fix FIRST for pugs.
06:22 luqui agentzh, it is almost fixed, with the exception that I just described
06:23 agentzh luqui++
06:23 audreyt cmarcelo++
06:23 audreyt luqui: check in and let me look?
06:23 luqui kay
06:23 audreyt agentzh: look at current tests for \187 form
06:23 audreyt and fix them?
06:24 agentzh audreyt: it's in t/syntax/hyper_latin1.t
06:24 agentzh audreyt: sure!
06:24 audreyt 'k, please fix
06:24 audreyt thar form is now gone
06:24 audreyt *that
06:24 svnbot6 r12205 | audreyt++ | * "\187" form is gone; write "\d187" instead. agentzh++
06:25 cmarcelo audreyt: try building it there to see if works. i'm following www.feather/svk.html instructions to set up a working dir there..
06:25 luqui r12206
06:25 audreyt cmarcelo: ok
06:25 svnbot6 r12206 | luqui++ | Got state variables and FIRST almost working (cloning with closures).
06:25 audreyt cmarcelo: evalbot will rebuild
06:26 audreyt so we will know if it fails :)
06:26 audreyt no action needed on your part
06:27 audreyt cmarcelo++ # yay I can use JudyAtom to ntern all our IDs
06:27 cmarcelo audreyt: well, i'll setup a working dir on feather anyway, for hacking when $HOME is offline.. =o)
06:27 audreyt *intern
06:27 audreyt cmarcelo: yup
06:28 agentzh pugs build error: Could not find module `Judy.IntMap':
06:28 agentzh sigh.
06:28 audreyt rerun Makefile.PL?
06:29 agentzh okay
06:29 * cmarcelo wants to get deeper in pugs after Judy thing ends..
06:30 luqui what is judy?
06:30 audreyt cmarcelo: *beams*
06:30 agentzh judy is a fast C library for hashes and arrays.
06:30 audreyt luqui: very memory friendly, ultrafast, LGPL, self-tuning ordered maps, sets and hashes
06:31 luqui neat
06:31 audreyt cmarcelo is my sumemr-of-code minion^Wstudent to make Judy a reusable Haskell library
06:31 audreyt and to port pugs to use it instead of the horribly slow Map-based array/hashes
06:31 luqui extra neat
06:31 audreyt ...which he just committed
06:31 agentzh rerunning Makefile.PL doesn't help. the same error...now realcleaning...
06:32 luqui cmarcelo++
06:32 cmarcelo =)
06:32 audreyt agentzh: nopaste the error before you relclean?
06:32 agentzh auderyt: k
06:33 pasteling "agentzh" at 210.22.200.67 pasted "Win32 build failure due to Judy..." (44 lines, 2.6K) at http://sial.org/pbot/18972
06:34 crem joined perl6
06:34 audreyt agentzh: GHC 6.4.2?
06:35 agentzh yes
06:35 agentzh should i upgrade GHC?
06:35 audreyt no
06:35 cmarcelo agentzh: no..
06:35 audreyt thinking
06:36 audreyt seems that it's picking up an old version of fps
06:36 audreyt in which realclean may help
06:36 audreyt I'll boot to win32 to confirm in a bit
06:36 agentzh okay, realclean now.
06:36 * agentzh really don't want to realclean...
06:36 agentzh *doesn't
06:37 audreyt oh ok... then you can wait for an hour or so
06:37 audreyt :)
06:37 agentzh okay, i prefer the former.
06:37 cmarcelo maybe trying to purge just pugs-fps.. ?
06:38 cmarcelo only third-party/installed dir..
06:38 agentzh realclean is done. ;-)
06:39 agentzh Preprocessing library pugs-fps-0.7...
06:39 agentzh Building pugs-fps-0.7...
06:40 cmarcelo oh, if an error happens, try to paste as much as you can (to check if Judy C library gets compiled right..)..
06:40 agentzh hopefully Judy can make pugs much much faster. :)
06:40 agentzh cmarcelo: okay
06:41 cmarcelo agentzh: well, i'm first worried about make it working =)
06:41 agentzh yes, it's understandable.
06:42 audreyt $ time ./pugs -e 'my @x[9999999] = 1; say @x[-1]'
06:42 audreyt 1
06:42 audreyt real    0m0.650s
06:42 audreyt yay
06:43 audreyt (it used to hang :))
06:43 audreyt cmarcelo++ cmarcelo++
06:43 cmarcelo at least its faster for very large cases =o)
06:43 cmarcelo audreyt: now, if you remember, i was having trouble with elems and pop...
06:43 agentzh cmarcelo: judy is not Win32 friendly i'm afraid.
06:43 agentzh i'm now pasting the error.
06:43 audreyt cmarcelo: I do remember, but I'll fix win32 build first
06:44 agentzh -ljudy sucks.
06:44 audreyt ?eval my @x[9999999] = 1; say @x[-1]
06:44 evalbot_12203 is now known as evalbot_12204
06:44 evalbot_12204 OUTPUT[1 ] Bool::True
06:44 audreyt feather survived
06:44 pasteling "agentzh" at 210.22.200.67 pasted "Judy compilation failure" (10 lines, 588B) at http://sial.org/pbot/18973
06:45 audreyt booting to win32 now
06:45 agentzh yay. audreyt++
06:45 cmarcelo agentzh: do you have a file third-party/HsJudy/libJudy.a ?
06:45 agentzh cmarcelo: looking
06:46 agentzh "No such file or directory"
06:47 agentzh nor is .dll.
06:48 cmarcelo agentzh: try cd third-party/judy/Judy-1.0.3; ./configure; make   # and see if it works..
06:48 cmarcelo or win32 equiv..
06:48 agentzh trying
06:48 * cmarcelo doesn't know very much about win32... =|
06:49 agentzh cmarcelo: configure is unix shell. :(
06:49 agentzh Win32's shell is not that intelligent. :(
06:50 agentzh make is also a unix-smell tool.
06:50 agentzh maybe i can get them work under win32's cygwin. but that's far from ideal.
06:51 agentzh i'd better wait for audreyt to fix it. :)
06:53 cmarcelo agentzh: would distributing a precompiled .dll be an acceptable solution for win32 people? as in: if (win32) { give .dll } else { ./configure; make bla bla }....
06:54 agentzh hmm
06:54 agentzh sounds interesting.
06:54 agentzh binary judy is cool.
06:54 agentzh i need at least libJudy.dll and libJudy.lib.
06:55 cmarcelo agentzh: .so => .dll, .a => .lib, right?
06:55 agentzh presumably
06:56 audreyt hm.
06:56 audreyt currently with pcre we still compile it with gcc
06:57 audreyt but with judy seems there's no such luxury
06:57 audreyt since it wants to b e-l'ed
06:58 cmarcelo there's a script inside judy/J/src that could be adapted to work for win32..
06:58 cmarcelo there's a build.bat there actually
07:00 agentzh yay! i've build Judy.dll and Judy.lib via build.bat mentioned by cmarcelo.
07:00 agentzh *built
07:00 cmarcelo agentzh: copy Judy.lib into t-p/HsJudy
07:00 agentzh Judy.lib == libJudy.a
07:01 agentzh t-p?
07:01 cmarcelo third-party
07:01 agentzh okay
07:01 cmarcelo comment the evil Judy section on util/build_pugs.pl and make again
07:02 cmarcelo the section that calls for configure...
07:02 cmarcelo line 76 to 81
07:02 agentzh i think i should also copy Judy.dll to make it visible to PATH.
07:02 cmarcelo agentzh: the idea is that all be statically linked...
07:03 cmarcelo lets try without copying Judy.dll first, if you don't mind.. ?
07:03 agentzh but i think .dll is dynamically-linked library.
07:03 cmarcelo yes... we'll use .lib, for static linking..
07:04 agentzh cmarcel: i think Judy.lib is the import library for Judy.dll.
07:04 cmarcelo agentzh: .lib files depend on .dll ?
07:05 audreyt wow, I walk away for a while and the problem solved itself :)
07:05 agentzh cmarcelo: not always. but i think Judy.lib does.
07:05 cmarcelo well, copy it to third-party/HsJudy too..
07:05 audreyt so just change build_pugs.pl to run the bat on win32
07:05 agentzh i'm editing build_pugs.pl
07:06 agentzh line 76 to 81...
07:06 agentzh hehe, i should edit build_pugs earlier.
07:06 agentzh :)
07:06 agentzh the logic is here.
07:08 agentzh where is "-ljudy"?
07:08 cmarcelo agentzh: well, is in HsJudy...
07:08 luqui heh, while @a[9999999] = 42; @a[-1] is nice, @a.elems hangs ;-p
07:08 audreyt it's in caal
07:08 audreyt HsJudy's cabal
07:08 agentzh Win32 dislikes -lJudy.
07:08 cmarcelo luqui: we are aware of that problem =)
07:08 audreyt luqui: that's because .elems coerces ot VList first
07:09 audreyt luqui: so it's .elems being stupid, not Judy's fault :)
07:09 luqui I figured
07:09 agentzh ld is unix-style linker, isn't it?
07:10 audreyt it is
07:10 agentzh but my Judy.lib is Win32 COFF format. :)
07:10 audreyt ahh.
07:10 agentzh i think i have to recompile Judy using MinGW or so.
07:10 audreyt modify the .bat?
07:10 audreyt we use the GCC in GHC's path
07:11 audreyt c:\ghc\ghc-6.4.2\bin\gcc.exe
07:11 audreyt er
07:11 agentzh ah...
07:11 audreyt c:\ghc\ghc-6.4.2\gcc.exe
07:11 agentzh k
07:11 audreyt c:\ghc\ghc-6.4.2\gcc-lib\ has the mingw tools
07:11 audreyt including ld.exe
07:12 agentzh audreyt: C:\ is not a long-term solution.
07:13 audreyt agentzh: you can get them from build_pugs config variables
07:13 audreyt so just make it work first, then do substitution later
07:13 agentzh fine
07:14 agentzh audreyt: no gcc there (D:\ghc\ghc-6.4.2\bin)
07:14 audreyt one level up
07:14 audreyt -6.4.2\
07:15 agentzh oh, sorry. stupid question.
07:16 agentzh to make things easier, i'll use cygwin's bash first.
07:16 audreyt sure. make it build first :)
07:17 agentzh build.bat needs some tweaks to adapt to gcc and ld.
07:17 audreyt *nod*
07:18 Aankhen`` joined perl6
07:21 mjk joined perl6
07:21 agentzh it seems to me this deserves some time. GHC's ar.exe is too stupid. i'll hack on this issue this afternoon. once i'm done, i'll commit the change. :)
07:22 agentzh if i'm blocked somewhere, i'll also ask here.
07:24 cmarcelo agentzh: thanks for helping..
07:24 agentzh np :)
07:24 audreyt agentzh++
07:25 agentzh :)
07:25 * audreyt is still in 2nd win32 reboot
07:25 audreyt security updates, etc
07:25 audreyt there's something about win32 and reboot :/
07:25 * agentzh never use security updates.
07:25 audreyt wow.
07:32 baest joined perl6
07:32 iblechbot joined perl6
07:35 audreyt cmarcelo: meanwhile your issue is resolved
07:35 svnbot6 r12207 | audreyt++ | * Slurpyness evaluation now uses array_fetchSize, so this is
07:35 svnbot6 r12207 | audreyt++ |   now constant time:
07:35 svnbot6 r12207 | audreyt++ |     my @x[9999999] = 1; @x.elems
07:35 svnbot6 r12207 | audreyt++ |   note that we still doesn't support (1..Inf).elems.
07:35 cmarcelo audreyt: in feather isn't necessary to create local branches, just checkout from mirror, right?
07:36 audreyt aye
07:38 cmarcelo (1..Inf) doesn't end up in an IArray, does it?
07:38 audreyt it doesn't.
07:38 audreyt it's a separate issue
07:38 audreyt the old code was lloking at the size of all incoming flatteneable things
07:39 audreyt and it did it with cast to VList
07:39 audreyt now I changed it to use array_fetchSize
07:39 audreyt but that still only allows finite length
07:39 audreyt in slurpy comparisons
07:39 audreyt sub f (*$x, *$y) {}
07:39 audreyt f(@z)
07:40 audreyt the code needs to know that @z is at least of length 2
07:40 audreyt but f(1..Inf) currently fails miserably
07:40 audreyt because it doens't know its length really
07:41 agentzh later &
07:41 agentzh left perl6
07:41 cmarcelo in the future f(1..Inf) should eval as f(1,2)?
07:41 audreyt no, it should fail
07:41 audreyt sub f (*$x, *$y, *@z) {}
07:41 audreyt should work
07:41 audreyt with f(1..Inf)
07:42 cmarcelo what's the "*"?
07:43 audreyt it says, flatten and concat all collection-containers
07:43 audreyt in the arguments
07:43 audreyt also known as "slurpy"
07:43 audreyt it's what happens in perl5 when you do
07:43 audreyt my ($x, $y, @z) = (@a, %b)
07:43 xinming joined perl6
07:44 audreyt (which in perl6 works the same)
07:44 audreyt here @a and %b are flattened as List(@a) and List(%b)
07:44 audreyt and then concatenated
07:44 audreyt the first two elements goes into $x and $y
07:44 audreyt the rest into @z
07:45 cmarcelo the default is to slurp?
07:45 audreyt the default for list assignment is to slurp
07:45 audreyt the default for function call is not to slurp
07:46 audreyt the * tells it to slurp
07:46 cmarcelo ok
07:48 xinming ?eval if 1 { "hello" }.perl;
07:48 evalbot_12204 is now known as evalbot_12207
07:48 evalbot_12207 "\\\"perl6\""
07:48 xinming is this the correct behaviour?
07:48 xerox '.perl' ?
07:48 xinming I don't think so. :-/
07:48 audreyt xerox: "show"
07:48 xerox Crazy? :)
07:49 xinming hmm, Ok, how about this.
07:49 xinming ?eval if 1 { "hello" }.say;
07:49 audreyt xinming: that's fine
07:49 evalbot_12207 OUTPUT[perl6 ] Bool::True
07:49 audreyt it's just parsed to
07:49 audreyt if 1 {"hello"};    $_.say
07:49 audreyt it's just evalbot had a pretty bad $_
07:50 audreyt to begin with
07:50 xerox ?eval $_.say
07:50 evalbot_12207 OUTPUT[perl6 ] Bool::True
07:50 xerox ?eval $_.perl
07:50 evalbot_12207 "\\\"perl6\""
07:50 xinming audreyt: But, after the test part, It should be a closure, not a "term" :-/
07:50 audreyt it is a closure
07:50 audreyt the closure ends
07:50 audreyt and then you can write anything
07:50 audreyt including .say
07:50 audreyt which means $_.say
07:51 xinming if there is a space between  closure and say, It would be much more understandable. :-)
07:51 xinming audreyt: Ok, thanks, I understand, But just a bit confused.
07:51 audreyt compare it with perl5
07:51 audreyt $ perl -e 'sub f { if (1) {"2"}.1234 } print f()'
07:51 audreyt 0.1234
07:51 audreyt same thing
07:53 xinming audreyt: can you pull using svk from pugs or parrot these days?
07:53 audreyt pugs I cn
07:53 audreyt pugs I can
07:53 audreyt did you run into some error?
07:54 xinming audreyt: md5sum mismatch in parrot.
07:54 audreyt svk revert that file
07:54 audreyt and then pull again
07:54 xinming and
07:54 xinming pugs mirror
07:54 xinming Syncing http://svn.openfoundry.org/pugs
07:54 lambdabot Title: Revision 12109: /
07:54 xinming Retrieving log information from 12102 to 12207
07:54 xinming Incomplete data: Delta source ended unexpectedly
07:54 audreyt look at topic
07:55 audreyt svk sy -s 12103 //mirror/pugs
07:55 audreyt I've reported it
07:55 audreyt but for now use this workaround, sorry :/
07:55 xinming audreyt: thanks.
07:56 audreyt np :)
07:56 baest joined perl6
07:56 xinming audreyt: My hard disk is corrupted by a bug in xfs, Now, I'm syncing everything. luckily, I have perlcabal.org to test something. :-)
07:56 luqui is there a lookbehind in the parser?
07:57 luqui that is, Parser.hs
07:57 audreyt there is one char lookbehind
07:58 audreyt in e.g. getPrevCharClass
07:58 luqui that'll do
07:58 audreyt but we don't do lookbehinds beyond one char
07:58 audreyt penalty too dire
07:59 luqui I'm just trying to make a warning about {"foo"}.say
07:59 audreyt why?
07:59 luqui because it confused xinming
07:59 audreyt ugh. ok.
07:59 luqui ugh what?
08:00 * xinming thinks, it wouldn't only confuse himself, but also other.
08:00 xinming luqui: what do you 'ugh' normally?
08:00 luqui are you asking what it means?
08:00 xinming hmm, what do you mean when 'ugh' normally.
08:00 audreyt as in, go ahead :)
08:00 audreyt add the warning at the implicitmethod place
08:00 luqui ugh usually expresses some sort of annoyance
08:01 gaal dopp :: Perl -> Haskell
08:01 gaal dopp Larry = SPJ
08:01 gaal dopp Damian = Oleg
08:02 audreyt luqui: I ugh'ed because I thought you are adding a more general warning than just detecting .foo preceded by }
08:02 audreyt i.e. that captures all possible use of implicits
08:02 luqui oh my
08:02 gaal I wonder, who's eyespoplikeamosquito?
08:02 audreyt which will be expensive. but lookbehind } is fine
08:02 audreyt gaal: madgolfer asavige
08:02 gaal I mean, who's dopp ~~
08:03 gaal s/~~/!!/
08:03 gaal s/!!/$!/, oh never mind
08:05 svnbot6 r12208 | audreyt++ | * add hash_fetchSize to unify the "get size from to-be-flattened-thing" logic
08:06 audreyt ?eval my @x[9999999999999] = 42; @x[-1]
08:06 evalbot_12207 \42
08:06 audreyt ?eval my @x[9999999999999] = 42; @x.end
08:06 evalbot_12207 1316134911
08:07 audreyt ...I wonder if it can be considered a nonbug.
08:13 cmarcelo audreyt: there's a possibility to switch to Judy.StrMap and use all that Refeable machinery when one of this big ints appear...
08:14 audreyt *nod*
08:18 buetow joined perl6
08:19 audreyt cmarcelo: I see these lines during test
08:19 audreyt pugs: JudyziHash_ddBH: interrupted
08:20 audreyt is it the 6.5 segfault you were referring to?
08:20 audreyt it's the wrapper for Judy.Hash.mkFin
08:21 cmarcelo during pugs test or hsjudy test? i test here ./pugs t/builtins/bool/defined.t and sometimes it segfaulted..
08:22 audreyt exactly
08:22 audreyt I can duplicate it
08:22 audreyt but it segfault afrer finishing all the tests
08:22 audreyt same for you?
08:22 svnbot6 r12210 | luqui++ | Added a warning to catch:  if 1 { "foo" }.perl
08:22 cmarcelo audreyt: did you start a "nice make smoke" in feather or should I? i wanna check if judy didn't compromised smoke time..
08:23 audreyt I just did locally
08:23 cmarcelo audreyt: here after 12, and sometimes after 19... (in defined.t)
08:23 cmarcelo audreyt: smoke with 6.4 or 6.5?
08:23 audreyt 6.5
08:23 audreyt smoke time is virtually the same
08:25 cmarcelo audreyt: strange thing is r12100 + judy modifications, don't segfault and smoke just fine (~150 fails only) with GHC 6.5 here..
08:25 audreyt hm
08:26 audreyt it doesn't segfault here also
08:26 audreyt I see the "intterupted" only after program exit
08:27 cmarcelo i didn't see this interrupted here.. will compile with 6.5 again to check...
08:27 audreyt I'm using my 6.5 build
08:27 audreyt fairly old, not -head
08:28 cmarcelo i'm newer than yours but not -head too..
08:28 kane-xs joined perl6
08:29 cmarcelo (i *think* it's newer hehe.. ghc-6.5 is 2006-07-14)
08:30 cmarcelo s/is/here is/
08:35 Juerd joined perl6
08:35 webmind_ joined perl6
08:35 wolv joined perl6
08:35 PerlPilot joined perl6
08:36 pmichaud joined perl6
08:41 wolverian joined perl6
08:41 webmind joined perl6
08:41 PerlJam joined perl6
08:42 luqui ack, que paso?
08:42 luqui joined perl6
08:43 chip joined perl6
08:43 audreyt joined perl6
08:43 leo joined perl6
08:53 cmarcelo audreyt: ghc-6.5 here is 2006-07-14, I think it's newer than yours..
09:01 cm joined perl6
09:01 ruoso joined perl6
09:09 iblechbot joined perl6
09:10 HEx joined perl6
09:16 svnbot6 r12211 | scw++ | rule2parsec.pl: a prototype of the translator
09:29 audreyt cmarcelo: nod
09:29 audreyt cmarcelo: I've incoporated interning to Pugs internals
09:29 audreyt let's see if it speeds up anything...
09:30 audreyt cmarcelo: btw, you used StrMap in JudyAtom
09:30 audreyt Hash should have exactly the same API except a bit faster, right?
09:30 audreyt (we don't need ordered traversal for atoms)
09:35 audreyt mm. apparently python autointerns all
09:35 audreyt "string_that_looks_like_identifiers"
09:35 audreyt that's a curious and interesting hack.
09:35 cmarcelo audreyt: Hash can replace StrMap
09:36 cmarcelo audreyt: faster depends on situation... in CheckDup test, StrMap is faster..
09:36 audreyt really.
09:37 audreyt I'm surprised
09:38 audreyt do you have a theory for it? :)
09:38 cmarcelo btw, bool/defined.t isn't crashing here with ghc-6.5 trunk..! i'll let a smoke running..
09:38 audreyt k
09:40 cmarcelo well, I lied a bit =o), I tested with an ordered words file, so this may help StrMap a bit.. and it's a always miss situation too (for a file without dups), which may not help Hash... I'm not very familiar with Judy deepest secrets, though..
09:41 audreyt mandelbrot.p6
09:41 audreyt showed a nearly 100% speedup after interning types
09:41 audreyt with judyhs
09:42 audreyt probably StrMap is going to give simila performance... benchamrking
09:42 luqui what does intern mean?
09:42 audreyt luqui: change all constant strings into integers
09:42 audreyt maintain an internal table of such mappings (bidi)
09:42 audreyt and carry around ints, not types, and do comparison based on them
09:43 audreyt useful when you don't need to preserve original ordering, just _any_ ordering will do
09:43 luqui ah, get rid of string compares.
09:43 cmarcelo audreyt: e/mandel.pl you mean?
09:43 audreyt e.g. when writing a type inferencer
09:43 audreyt cmarcelo: yeah
09:43 audreyt StrMap and Hash nearly indistinguishable
09:44 cmarcelo wow.. did tests/atom/*.hs helped by any means? =o)
09:44 audreyt I'll resmoke to see if I break anything :)
09:44 audreyt cmarcelo: a lot :) though I recoded them
09:44 audreyt but saved me ~Inf time
09:46 cmarcelo yay
09:46 audreyt cmarcelo++
09:52 topa joined perl6
09:52 topa hi all..
09:52 topa trying out the nre parrot VM
09:52 topa all tests under python/perl6 and cardinal seem to be failing for me
09:53 audreyt perl6 should fail only about 70% of its tests
09:53 audreyt (sanity tests)
09:53 audreyt the other two are expected to fail all tests, yes.
09:54 cmarcelo audreyt: i didn't get the py autointerning all...
09:54 cmarcelo python
09:54 audreyt (python is hosted in other repository; cardinal has just started and has no working code.)
09:54 audreyt cmarcelo: http://mail.python.org/pipermail/py​thon-list/2003-December/198127.html
09:54 lambdabot Title: Creating a List of Empty Lists
09:56 luqui what is cardinal?
09:56 audreyt luqui: ruby/parrot
09:56 luqui cool
09:57 topa is now known as topa_
10:00 topa_ cardinal looks cool
10:00 audreyt yeah. if Cardinal can work out on parrot, that'd be very nice
10:00 topa_ how do I use the python compiler
10:01 topa_ audreyt seems to work for me :)
10:01 audreyt http://pirate.tangentcode.com/
10:01 lambdabot Title: pirate (a python compiler for parrot)
10:01 cmarcelo joined perl6
10:01 audreyt topa_: er, "work out" as in "capable of running rubygem"
10:02 topa_ audreyt :)
10:02 topa_ audreyt what about the one in languages/python of parrot ?
10:02 topa_ is that pirate ?
10:03 audreyt that was, but then pirate forked
10:03 audreyt and moved out of parro repo
10:03 svnbot6 r12212 | audreyt++ | * Before I go in and intern everything, here is Judy.Hash-interned
10:03 svnbot6 r12212 | audreyt++ |   Pugs.Type implementation.  This should have no functional changes,
10:03 svnbot6 r12212 | audreyt++ |   except things suddenly feeling much, much faster.
10:03 svnbot6 r12212 | audreyt++ |   (up to 2x according to selected micro benchmarks; smoke data later)
10:03 audreyt they might remerge
10:03 audreyt not sure :)
10:04 topa_ audreyt so the "python" in parrot is kinda b0rked I see
10:04 audreyt *nod*
10:05 audreyt cardinal in parrot at this moment is I think at similar state as parrot/perl6
10:05 audreyt i.e. simple function calls works with simple scalars, but not much else
10:06 topa_ audreyt i see
10:08 audreyt though it's moving fast
10:08 topa_ is there documentation on how to  get parrot to inter-operate between languages, as in perl6 code calling ruby objects
10:08 cm left perl6
10:08 audreyt tewk here will help you if you'd like to help
10:08 topa_ audreyt would like to help but I'm newbie to ruby
10:08 topa_ more comfortable with python
10:09 audreyt *nod*
10:09 Jedai joined perl6
10:10 audreyt as for interoperation between objects, PDD21 and PDD03 covers them a bit
10:11 audreyt http://www.parrotcode.org/docs/pdd/
10:11 lambdabot Title: Parrot Documentation :: Parrot Design Documents - parrotcode
10:12 svnbot6 r12213 | audreyt++ | * overlapping instances is needed for GHC 6.4.
10:12 cmarcelo bbiab &
10:13 topa_ audreyt thanks, i'll read those
10:14 robkinyon joined perl6
10:14 norageek joined perl6
10:17 drrho joined perl6
10:28 norageek joined perl6
10:51 miyagawa joined perl6
10:53 ludan joined perl6
10:53 luqui joined perl6
10:58 audreyt cmarcelo: any chance you can make a bindist for me ? :)
11:05 chris2 joined perl6
11:07 cmarcelo audreyt: i'm not $HOME and ssh to there is unreliable, but I can try.. oh, it's amd64, still interested?
11:08 foo\ joined perl6
11:09 audreyt oh, probably not :)
11:09 audreyt won't be bincompat then
11:09 norageek $BK1$?$s(B:)
11:13 cmarcelo audreyt: there's a default procedure do make bindists?
11:15 audreyt yeah. make bindist or something
11:15 audreyt but never mind :)
11:18 cmarcelo ok. /me was just curious..
11:34 svnbot6 r12214 | audreyt++ | * Pugs.Internals: NOINLINE to make unsafePerfomrIO interning safer.
11:44 HXanadu joined perl6
12:04 iblechbot joined perl6
12:16 bpphillips joined perl6
12:17 bpphillips left perl6
12:20 agentzh joined perl6
12:21 agentzh sorry, my mother used the computer this afternoon. so i have to work on judy-on-win32 tonight. :)
12:22 Bit-Man__ joined perl6
12:22 Bit-Man__ is now known as Bit-Man
12:23 agentzh i've heard from IRC log that Judy pugs is now 100% faster (and can be even *faster*), which makes me even more motivated to solve the win32 compilation problem. :)
12:26 norageek joined perl6
12:27 norageek2 joined perl6
12:31 bpphillip1 joined perl6
12:33 norageek3 joined perl6
12:36 elmex joined perl6
12:39 Limbic_Region joined perl6
12:55 svnbot6 r12215 | audreyt++ | * Pugs.Internals - carry the original Buf with ID, so that the cast-to-Buf
12:55 svnbot6 r12215 | audreyt++ |   operation can be much faster still.  (this shouldn't affect Type interning,
12:55 svnbot6 r12215 | audreyt++ |   but is essential to intern Pad -- i.e. make Var into ID instead of String.)
12:57 luqui audreyt, did you get a chance to look at that FIRST problem?
12:58 Limbic_Region ahh, luqui has been lured back from the dark side
12:58 Limbic_Region audreyt - ping if you get a sec
12:59 luqui hey, I pinged him first!
12:59 luqui her
12:59 luqui damnit
12:59 luqui (everybody else has had a year to adjust... I've only had five months!)
12:59 audreyt that's okay :)
12:59 audreyt pong
13:00 Limbic_Region luqui - you go first
13:00 audreyt luqui: no, I'm still doing interning
13:00 * Limbic_Region is just seeking some advice
13:00 audreyt will finish in ~10min
13:00 luqui okay, done
13:00 audreyt Limbic_Region: yes? :)
13:00 Limbic_Region ok, to improve the testing of examples, I need several modules in ext/
13:01 Limbic_Region unfortunately, ext/ isn't in @*INC
13:01 audreyt so push them there
13:01 Limbic_Region except to do that - I have to hardcode an assumption
13:01 Limbic_Region if I could get FindBin from ext/ I would be all set
13:01 audreyt that is correct. if they are not there, skip all
13:01 Limbic_Region that's kinda yucky don't you think
13:01 audreyt no.
13:01 audreyt examples/ is not part of t/ either
13:02 audreyt so you are depending on external things already
13:02 Limbic_Region no I wouldn't
13:02 Limbic_Region if I had FindBin
13:02 Limbic_Region rather
13:02 audreyt so makes most sense to bail out if once of the two {examples,ext} ismissing
13:03 Limbic_Region *shrug* - I still think it is a pretty sucky way to do it since we have FindBin and File::Find and friends but ok
13:03 * Limbic_Region will try and find time this week
13:03 audreyt uhm
13:04 * Limbic_Region actually has enough $work to keep him relatively busy
13:04 audreyt wait a sec...
13:04 audreyt what's stopping you from simply
13:04 audreyt use FindBin; use File::Find;
13:04 audreyt ?
13:04 audreyt the tests are run only when blib is in place
13:04 audreyt so these two modules will be accessible
13:05 Limbic_Region oh - much much much better
13:05 Qiang joined perl6
13:05 audreyt and if people want to run  it by hand they just had to
13:05 audreyt ./pugs -Iblib6/lib t/...
13:05 audreyt which is neccessary anyway to see Test.pm
13:05 audreyt so you are safe
13:05 luqui which I have to do anyway...
13:05 Limbic_Region cool beans - moldy chicken
13:06 Limbic_Region definately will find an hour this week to do it then
13:06 audreyt moose!
13:06 audreyt Limbic_Region++
13:09 clkao the pugs repository sync bug is fixed in svn::mirror trunk
13:09 clkao new release on cpan will come later today.
13:09 * clkao proceed to fix parrot sync bug
13:11 hexmode joined perl6
13:15 agentzh ah, i finally get libJudy.a using GHC's gcc...that's the first step, but took me half an hour. :/
13:16 agentzh ghc--
13:16 Jedai joined perl6
13:17 c6rbon joined perl6
13:20 HXanadu_ joined perl6
13:21 audreyt clkao++
13:21 audreyt (vendor support)++
13:23 agentzh audreyt: where should i put libJudy.a? GHC's ld still complaints that it can't find -lJudy when i have put libJudy.a to third-party/HsJudy..
13:23 agentzh audreyt: where should i put libJudy.a? GHC's ld still complaints that it can't find -lJudy when i have put libJudy.a to third-party\HsJudy..
13:24 agentzh audreyt: where should i put libJudy.a? GHC's ld still complaints that it can't find -lJudy when i have put libJudy.a to third-party\HsJudy..
13:24 agentzh audreyt: where should i put libJudy.a?
13:24 agentzh sorry...
13:24 agentzh terminal error.
13:24 agentzh sorry for the noise.
13:25 audreyt that's fine
13:26 audreyt cmarcelo wants it to be in -Lthird-party/judy/Judy-1.0.3/src/obj/.libs
13:27 agentzh audreyt: it works!
13:27 luqui why the dot?
13:27 agentzh audreyt: i put libJudy.a under GHC's gcc-lib and it links fine.
13:27 crapulous in A2 it is not said how embedded comments are counted for whitespace separation...
13:27 audreyt luqui: gcc convention
13:27 agentzh crapulous: A2 is out of date.
13:28 crapulous ho, maye
13:28 crapulous I meant S2
13:28 luqui crapulous, comments count as whitespace
13:28 luqui i.e. you can think of them as a single space
13:28 crapulous oki
13:29 * agentzh can't wait to try out JudyPugs.
13:29 crapulous my bad, I was not reading corectly
13:31 agentzh the benchmark result for t/closure_traits/first.t:
13:31 agentzh old pugs: 3.343000 sec
13:31 agentzh new pugs: 3.031000
13:31 norageek joined perl6
13:31 audreyt yeah. microbenchmark is better than normal case
13:32 luqui agentzh, how old is the old benchmark?
13:32 agentzh let me see...
13:32 audreyt lots of function calls, or mmd, in a tight loop, will make the difference much more visible
13:32 luqui because i just made a change which slows down closure cloning by... a lot
13:32 agentzh r12161
13:33 luqui yeah, I think that is before my change
13:33 agentzh the new pugs is at r12214
13:33 luqui so it seems that the two changes canceled each other out :-)
13:33 agentzh heh
13:34 agentzh now i'd like to make my Win32-specific changes to Judy more general.
13:35 cmarcelo that strange path may be replaced by something better.. maybe moving libJudy.a|Judy.lib to third-party/installed is a good idea..
13:36 agentzh cmarcelo: please do the change.
13:36 agentzh (if you have time)
13:36 agentzh or i'd like to try.
13:37 cmarcelo just a sec
13:38 agentzh cmarcelo++
13:39 agentzh indeed, judypugs is a bit faster.
13:41 agentzh maybe 10% or such.
13:42 luqui you have to make sure you are running runtime speed
13:42 luqui parsing will be no faster
13:42 luqui s/running/measuring/
13:42 luqui most things in t/ will be dominated by parse time
13:42 agentzh luqui: how to measure only runtime speed?
13:42 luqui either use it on a program that is dominated by runtime
13:43 luqui or use the time builtin functions to measure
13:43 luqui i.e. get the time at the beginning and end of the program
13:43 agentzh luqui: hmm, reasonable.
13:43 luqui and print the difference
13:43 agentzh okay, i'll do this later. first of all, prepare my win32 patch to judy. :)
13:44 Limbic_Region yeah, since Win32 is currently failing to build
13:44 Limbic_Region it's all Judy's fault
13:44 Limbic_Region perlbot nopaste
13:44 perlbot Paste your code here and #<channel> will be able to view it: http://sial.org/pbot/<channel>
13:45 cmarcelo agentzh: almost there (ssh con is slow..)
13:45 pasteling "Limbic_Region" at 129.33.119.12 pasted "Win32 failing to build" (16 lines, 1.1K) at http://sial.org/pbot/18975
13:46 agentzh Limbic_Region: i've already built judypugs. please let me make my changes more general and then commit.
13:46 agentzh cmarcelo: okay
13:46 clkao fglock: is PCR totally broken?
13:48 Limbic_Region agentzh - It wasn't a complaint - it was an FYI
13:48 Limbic_Region in case my error was different than your error
13:48 agentzh Limbic_Region: really? paste it somewhere?
13:50 agentzh oh, i see. thanks.
13:52 cmarcelo agentzh: commited..
13:52 svnbot6 r12216 | cmarcelo++ | * Put libJudy.a in third-party/installed.
13:53 agentzh cmarcelo: great!
13:54 cmarcelo i'm "nice make" now to test it for sure..
13:54 cmarcelo agentzh: is Limbic_Region's error same as yours?
13:55 agentzh nope.
13:55 agentzh cmarcelo: it's different.
13:55 agentzh i don't quite follow his error message.
13:56 agentzh it seems that ld.exe wasn't in the right position.
13:57 agentzh on my machine, it's D:\ghc\ghc-6.4.2\gcc-lib\ld.exe.
13:57 agentzh anyway, i'd finish my patch first. hopefully Limbic_Region will get rid of it automatically. ;-)
13:59 HEx joined perl6
14:01 cmarcelo agentzh: cool. and if you have progress on measuring runtime, tell us..
14:01 agentzh cmarcelo: of course. :)
14:07 Bit-Man joined perl6
14:09 cjeris joined perl6
14:18 agentzh where can i get the GHC installation path from build_pugs.pl?
14:20 audreyt line 66
14:20 audreyt $1 has the path
14:20 audreyt assign it somewhere else
14:21 Limbic_Region agentzh - the ld.exe error message can safely be ignored - it is the -ljudy that is the problem
14:21 * Limbic_Region & # work again
14:22 agentzh audreyt: thanks.
14:22 audreyt thank _you_ :)
14:23 cmarcelo starting with a fresh checkout, perl Makefile.PL then make, prelude generation blows.. if I copy/paste the line that blows in shell, it works..
14:24 HXanadu joined perl6
14:24 cmarcelo i lost the line in screen history, but could get it again..
14:24 cmarcelo s/blows/not work right/
14:24 audreyt it segfaults?
14:25 cmarcelo no
14:25 cmarcelo but stops building..
14:30 pasteling "cmarcelo" at 200.245.119.10 pasted "after "rm blib6/lib/Prelude.pm.yml", i did make and..." (8 lines, 852B) at http://sial.org/pbot/18977
14:32 Eimi joined perl6
14:32 cmarcelo audreyt: I repeat the command a few times and in the fourth it worked.. (copy/pasted the gen_prelude and repetead it)..
14:35 audreyt weird
14:35 audreyt trunk ghc?
14:37 cmarcelo this is feather..
14:41 cmarcelo repeating the prelude generating line eventually pops the erros
14:41 cmarcelo error
14:43 audreyt what about
14:43 audreyt ./pugs -CParse-YAML src/perl6/Prelude.pm > 1 ; ll 1
14:43 audreyt does that always work?
14:44 merlyn a file name "1" would be odd. :)
14:44 audreyt "z" then :)
14:44 merlyn 1 could be confused for "l" on many fonts
14:45 audreyt *nod*
14:45 audreyt it's just random filename for debugging here, but point
14:45 merlyn ahh
14:45 merlyn I always use $$ for that
14:45 merlyn sometimes even /tmp/$$
14:45 merlyn but at least $$
14:46 audreyt excellent point!
14:46 * audreyt learns something new :)
14:46 merlyn then if I see any filenames with 5 digits lying around, I'll remember it's my temp file
14:46 audreyt nodnod
14:46 audreyt merlyn++
14:46 merlyn this presumes you stay within the same shell, of course. :)
14:47 audreyt luqui: so the bug is that FIRST doesn't get run upon cloning?
14:47 luqui no, it is that it closes over the wrong lexical pad if it was cloned
14:47 luqui let me double-check the bug
14:47 audreyt I look at t/closure_traits/first.t
14:47 audreyt it fails one test
14:47 audreyt and it looks like that FIRST was not rerun
14:48 cmarcelo audreyt: tried five times and all of them give me a ~700k file..
14:48 luqui audreyt, there are two ways that it could fail
14:48 luqui which look identical in test output
14:48 audreyt cmarcelo: so it's a open2 thing... let me think
14:49 luqui if you say something within the FIRST blocks, you'll see that they are being run
14:49 luqui the problem is that the second time through, $str refers from the $str from the first time through
14:50 luqui s/from the/to the/
14:52 audreyt minimal program for me to test that?
14:52 luqui I will add a check for that behavior in the test
14:53 jferrero joined perl6
14:54 luqui hmm, that's tricky to test
14:54 cmarcelo bbiab... lunch time &
14:54 svnbot6 r12217 | agentz++ | added Win32 support for the Judy library. pugs should no longer fail to build on Win32 with this patch. please test.
14:54 audreyt oooooooh
14:54 audreyt agentzh++
14:54 cmarcelo agentzh++
14:54 agentzh :)
14:55 audreyt cmarcelo: are you going to blog about this? :)
14:55 audreyt (in the SoC blog and crosspost to pugs.blogs.com perhaps)
14:55 hexmode joined perl6
14:57 cmarcelo audreyt: probably tonight (ie. in 9hrs)...
14:57 cmarcelo did you finish a smoke already?
14:57 audreyt no
14:58 cmarcelo gotta go, brb &
14:59 agentzh Limbic_Region: please test r12217. pugs should build on pugs now.
14:59 agentzh *on win32
15:00 [particle] agentzh: i'm checking msvc now, too
15:00 agentzh particle: pugs doesn't use cl to compile judy.
15:00 agentzh it uses ghc's gcc.
15:01 luqui audreyt, t/closure_traits/first.t has a better test in r12218
15:01 [particle] agentzh: duh. my mistake. i'm rebuilding anyway :)
15:02 agentzh particle: cool. feedback welcome!
15:02 svnbot6 r12218 | luqui++ | Expanded the closure_traits/first tests to demonstrate
15:02 svnbot6 r12218 | luqui++ | exactly what the bug is.
15:02 agentzh luqui++
15:02 audreyt good. I think I have a fix, so that wil let me test it
15:04 vel joined perl6
15:04 luqui heh, I like my "needs to be global" comment next to a lexical
15:08 svnbot6 r12219 | luqui++ | Deleted stupid comment.
15:08 * agentzh grins.
15:09 penk joined perl6
15:12 agentzh hopefully the directory layouts of different versions of GHC are consistent, or my patch will simply fail to work.
15:16 HEx joined perl6
15:21 nothingmuch luqui: pin
15:21 nothingmuch g
15:21 luqui pong
15:21 luqui long time no see
15:21 nothingmuch indeed =)
15:22 nothingmuch would you be interested in rewriting Perl6::Classes as a Moose sugar layer?
15:22 luqui ugh, Perl6::Classes, my ugliest perl code ever
15:22 luqui yes, with emphasis on *rewrite*
15:22 nothingmuch =)
15:23 nothingmuch okies, join #moose sometime and we can discuss how we can do it
15:23 nothingmuch i just wanted to say it before I forgot
15:23 nothingmuch (irc.perl.org)
15:23 luqui maybe in 30 minutes or so
15:23 * nothingmuch needs to go grocery shopping, and real work doing right now
15:23 luqui ah. well, I'll be around.
15:23 nothingmuch goody =)
15:24 audreyt I've improved the Show instance for IVar and Tvar  -- instead of "<ref>"
15:24 audreyt they are now
15:24 audreyt {ref:<Scalar:2b42be0>}
15:24 audreyt etc
15:24 luqui you can access that sort of thing in hs?
15:24 audreyt this should help debugging a bit :)
15:24 audreyt unsafeCoerce# :: a -> Word
15:24 audreyt ;)
15:25 luqui oh my....
15:25 audreyt (actually, unsafeCoerce# :: a -> b)
15:25 audreyt but it's only recenetly I learned that for any containers
15:25 audreyt the pointer doesn't move
15:25 audreyt so uc# it to a Word _is_ the pointer address
15:25 audreyt exactly the same as the notation perl, ruby, etc uses
15:25 luqui that's cool
15:26 audreyt weakly typed language ++
15:26 luqui (pugs probably has the highest occurence of the word 'unsafe' from any haskell project)
15:26 audreyt so now we know that indeed, the $OUTER::x from the closure and the $x form the second time around is not the same
15:27 audreyt but instead it's the same as the first one
15:27 luqui right
15:27 audreyt but curiously that behaviour only happens in FIRST blocks
15:28 luqui apparently
15:28 luqui probably also in BEGIN, INIT, etc.
15:28 luqui but they never run more than once
15:28 audreyt aha, I see why
15:28 clkao where?
15:29 audreyt vcode2firstBlock code = do ...
15:29 audreyt in Parser, the FIRST block carries its own Env
15:29 audreyt it doesn't share its host's
15:30 luqui I tried putting env <- getEnvironment in vcode2firstBlock, and replacing the code's with that one
15:30 luqui no effect
15:30 audreyt nono
15:30 audreyt you probably need to
15:30 audreyt                , Syn "=" [Var "$?FIRST_RESULT", App (Syn "sub" [Val code]) Nothing []]
15:30 audreyt i.e. tell the thing to clone itself
15:30 audreyt I'm testing that
15:30 audreyt (it wa
15:30 audreyt (it was
15:30 marmic joined perl6
15:30 audreyt Syn "=" [Var "$?FIRST_RESULT", App (Val code)
15:30 audreyt )
15:31 audreyt it works!
15:32 luqui cool
15:32 audreyt luqui++
15:32 luqui audreyt++
15:32 audreyt also, "refreshPad" is slightly wrong
15:32 luqui (hmm, by conservation of karma, two idiots somewhere else were just decremented)
15:32 audreyt you want to clone the state pad entirely, no?
15:33 audreyt i.e. you always want it to be "fresh"
15:33 luqui I think so.
15:33 audreyt and always want to clear it
15:33 audreyt the content, that is
15:33 luqui wait... don't state vars have the same freshness provisions as lexicals?
15:33 audreyt no they do not
15:33 luqui sub { state $x;  BEGIN { $x = 42 } }
15:33 audreyt they are never regenned normally
15:33 audreyt so the fresh flag is ireelvant
15:34 luqui the first time through, oughtn't $x have value 42?
15:34 luqui er, the first clone..
15:34 luqui or something.
15:34 audreyt well... that is debatable
15:34 audreyt my $x = { state $x; BEGIN { $x = 42 } }
15:34 audreyt what exactly does this mean?
15:35 audreyt should two clones both get 42 initially?
15:35 luqui I have no idea.  It would seem like it should do the same thing as lexicals in that situation though, shouldn't it?
15:35 luqui okay, I'll dismiss it as "totally weird"
15:35 audreyt probably very wise, sir
15:36 luqui so, how is refreshPad wrong?
15:36 luqui (I also refactored the refresh code from lexicals into that function... which made it easy to implement it the same way)
15:36 audreyt refreshPad is wrong because
15:36 audreyt it sometimes clears $x
15:37 audreyt er I mean
15:37 audreyt for 1, 2 { my $c = { state $x ::= 42 } ; say $c() }
15:37 audreyt intuitively we want "42\n42\n"
15:37 audreyt but refreshPad will get "42\n\n"
15:37 audreyt because it reallocs $x
15:37 audreyt what we want is a clone, not a refresh
15:38 luqui but my's are refreshed?
15:38 audreyt yes, surely
15:38 luqui eg?
15:38 audreyt my $c = { my $x ::= 42 }; say $c(); say $c()
15:39 audreyt it's "42\n\n" in perl5 and I think pugs as well
15:39 luqui I can't say I really understand ::= within closures
15:39 luqui oh
15:39 luqui I understand.
15:39 luqui so why intuitively do we want your state example to behave that way?
15:40 audreyt yay for understanding
15:40 audreyt t's not about state it's about clone
15:40 audreyt for 1, 2 { my $c = { my $x ::= 42 } ; say $c() }
15:40 audreyt it's also intuitively 42\n42\n
15:40 audreyt I think.
15:40 [particle] looks right to me.
15:40 audreyt I may be entirely out of my mind :) but I think :)
15:40 [particle] (intuitively)
15:41 luqui nothing is intuitive to me about binding to things at compile time which don't intuitively exist at compile time
15:41 audreyt oh well... you just have to trust me then *grin*
15:42 luqui macro intu { 'intuitively' }
15:42 audreyt committing
15:42 luqui for huffman coding
15:42 * [particle] prefers i9y
15:42 svnbot6 r12220 | agentz++ | [t/syntax]
15:42 svnbot6 r12220 | agentz++ | added tests for the invalid "\ddd" form of chars.
15:42 svnbot6 r12220 | agentz++ | removed hyper_latin1.t since it's meaningless given "\ddd" is invalid.
15:42 [particle] how does this change if it's my $c := ... or ::= ...
15:43 audreyt my $c :=
15:43 audreyt means the same thing
15:43 [particle] good.
15:43 audreyt it's just $c then cannot be assigned to
15:43 audreyt $c ::= however, means that the second time around, $c gets refreshed
15:43 audreyt and $c() will die
15:43 audreyt it's applying undef as a closure
15:44 audreyt (same behaviour as perl5)
15:44 stevan joined perl6
15:44 [particle] ok, as i expect. thanks
15:45 audreyt :)
15:45 agentzh end of day for me, good night &
15:45 agentzh left perl6
15:45 luqui my i7n must not be i7e
15:46 [particle] :)
15:46 svnbot6 r12221 | audreyt++ | * AST.Internals: Introduce much improved stringification
15:46 svnbot6 r12221 | audreyt++ |   for containers: "{ref:<Scalar:2b42be0>}" instead of "<ref>"
15:46 svnbot6 r12221 | audreyt++ |   should make debugging much easier.
15:47 audreyt hm. another idea is for compile-time-value to always be cloned upon first entry
15:47 audreyt that will eliminate the fresh flag altogether
15:47 luqui that could be very strange
15:47 audreyt (same external behaviour; it's implementation detail)
15:48 audreyt mmm?
15:48 luqui what's a compile-time-value?
15:48 audreyt ::= value
15:48 audreyt the container's value in the bytecode
15:48 audreyt whatever value they had in CHECK time
15:49 iskorptixas joined perl6
15:49 audreyt oh my.
15:49 iskorptixas left perl6
15:49 luqui that seems like it would eliminate refreshing
15:49 audreyt for 1,2 -> $x { END { say $x } }
15:49 luqui uhh....
15:49 luqui wtf does that mean?
15:50 audreyt in perl5, it closes over compile time pad
15:50 luqui so the first one again?
15:50 luqui or undef?
15:50 audreyt undef
15:50 audreyt the "for" unconditionally refresh
15:50 lumi Does "my" so something different the first time through than the next?
15:51 audreyt seems not for "for"
15:51 luqui for 1,2 -> $x { BEGIN { $x := 3 }; say $x };   # "1\n2\n"?
15:51 audreyt in perl5
15:51 audreyt perl -e 'for (1,2) { my $x = $_; END { print $x } }'
15:51 audreyt this print 1 only
15:52 audreyt hm, currently in pugs, Param is not in Pad
15:52 luqui I dare not ask what the behavior *should* be
15:52 audreyt I'll fix that later
15:52 audreyt so you get
15:52 audreyt for 1,2 -> $x { BEGIN { $x := 3 }; say $x };
15:52 audreyt pugs: *** Bind to undeclared variable: "$x"
15:52 luqui seems like we are testing undefined behavior
15:52 audreyt I think we want them to be precisely defined... somehow :) but not tonight
15:54 audreyt in any case, the test passes, which is (at thie moemnt) what counts :)
15:54 svnbot6 r12222 | audreyt++ | * t/closure_traits/first.t passes by cloning FIRST blocks.
15:54 audreyt it's midnight now... got $job tomorrow morning
15:54 audreyt see ya!
15:54 luqui adios
15:57 svnbot6 r12223 | audreyt++ | * gen_prelude.pl: try to slurp all input at once to reduce open2 failure rate.
15:57 * gaal mooses
16:00 justatheory joined perl6
16:00 [particle] wow, that's a spactacular win32 failure when judy's not installed.
16:00 [particle] where do i write up a ticket?
16:00 gaal perlbot nopaste
16:00 perlbot Paste your code here and #<channel> will be able to view it: http://sial.org/pbot/<channel>
16:01 [particle] doing now...
16:01 lumi Hi gaal
16:01 gaal hello lumi!
16:01 lumi You had some sorta haskell ctags thing, right?
16:02 lumi I've been combing your lj for it (I thought it was there but can't find it)
16:02 pasteling "[particle]" at 144.81.84.215 pasted "spectacular win32 failure when judy not installed" (838 lines, 47.6K) at http://sial.org/pbot/18982
16:02 lumi It's otherwise quite entertaining though, so I'm not complaining :P
16:02 gaal @google haskell ctags gaal
16:02 lambdabot http://www.livejournal.com/users/gaal/161104.html
16:02 lumi All hail google && lambdabot
16:02 luqui lumi, not hasktags?
16:03 lumi lumi-- for trusting his little meat brain
16:03 lumi No.. Is that better?
16:03 luqui that's what I use.  I wasn't aware of any alternative
16:03 luqui it's not great, it gets the job done a little bit.
16:04 lumi Straight to google this time.. Thanks
16:04 gaal lumi, luqui: the advantage of a ctags mode is that a single 'ctags -R' works for all files in the project. arguable that's just more noise though :)
16:05 lumi Useful for looking up p6 prelude functions mentioned in haskell source?
16:05 gaal lol @ refaddr # if you want to be eviller, pin it!
16:06 gaal uh, I don't know how many p6prelude funcs are mentioned in .hs source :)
16:06 lumi Thanks gaal and luqui
16:06 lumi There are some...
16:06 lumi I think?
16:07 lumi I got to dash. Have fun
16:07 gaal havamoose
16:08 audreyt [particle]: weird. it's asif libHSHsJudy-0.1.a does not contain the built judy libraries
16:09 audreyt ah. I get it
16:11 pasteling "cmarcelo" at 200.245.119.10 pasted "ghc-6.5 today trunk error" (8 lines, 1K) at http://sial.org/pbot/18983
16:11 audreyt fixed
16:12 audreyt cmarcelo: oy. multiversioning!
16:12 * [particle] svn ups
16:12 svnbot6 r12224 | audreyt++ | * AR_CALL in agentzh++'s judy/win32 building code was bogus...
16:12 audreyt [particle]: you may need to nuke third-party/installer/
16:12 [particle] didn't realize judy source was in pugs tree
16:13 [particle] okay, i'll do that
16:13 audreyt the upstream judy hashtabl can't iterate keys
16:13 gaal [particle]: the pugsy power of the glom
16:13 audreyt spinclad added that; havn't yet mergedback I think
16:13 audreyt spinclad: have you reached upstream yet?
16:14 ruz joined perl6
16:17 [particle] audreyt: looks better, no "Could Not Find ..." messages
16:17 audreyt cool
16:18 Limbic_Region particle - did you nuck third-party/installer?
16:18 Limbic_Region s/ck/ke/
16:18 [particle] no, it didn't exist
16:18 [particle] third-party/installed/ did exist, left it
16:18 [particle] still building
16:19 audreyt k
16:19 [particle] Setup.exe: Pugs.cabal: openFile: permission denied (Permission denied)
16:19 [particle] Build failed: 256 at util\build_pugs.pl line 216.
16:19 Limbic_Region ok, good, was afraid I was once again "different"
16:20 Limbic_Region particle has about a 5 minute head start on me
16:20 audreyt [particle]: that's a new failure
16:20 Psyche^ joined perl6
16:20 audreyt do you perchance have another pugs.exe running?
16:20 [particle] i'll check
16:20 audreyt it's win32 overwrite protection firing
16:20 Psyche^ is now known as Patterner
16:20 audreyt usually means you have a lock to some file we are writing in the build process
16:20 [particle] right, figured.
16:22 [particle] no pugs.exe running. hrmm.
16:22 [particle] no setup.exe either
16:22 audreyt just "make" again?
16:23 [particle] already started :)
16:23 audreyt cmarcelo: fixed. try again
16:24 cmarcelo audreyt: unix-land libHSHsJudy-0.1.o only contais HsJudy stuff, no judy object files.. maybe i missed some -optc-static and -optl-static on HsJudy.cabal?
16:24 cmarcelo audreyt: will test it again..
16:24 svnbot6 r12225 | audreyt++ | * Try to work with GHC 6.5 multiversioning by declaring
16:24 svnbot6 r12225 | audreyt++ |   our Main.hs is actually part of the Pugs package.
16:24 svnbot6 r12225 | audreyt++ |   Reported by: cmarcelo++
16:25 gaal ah, I love the funcy type annotations to cast, that allow pointsfree style and fewer parens
16:25 [particle] "The Semicolon Wars" -- good article: http://www.americanscientist.org/t​emplate/AssetDetail/assetid/51982
16:25 lambdabot Title: American Scientist Online - The Semicolon Wars
16:27 audreyt pugs> VAR(my $x)
16:27 audreyt ({ref:<Scalar:0x1b64bd8>},)
16:27 audreyt yay
16:28 gaal whee
16:30 audreyt [particle]: better news? :)
16:30 audreyt (sometimes "chmod -R +w" might also help, with cygwin tools)
16:32 * Limbic_Region is finally catching up to particle but he is also 1 minute late for $meeting
16:32 svnbot6 r12226 | audreyt++ | * Implement VAR().  It can takes more than one variables and
16:32 svnbot6 r12226 | audreyt++ |   evaluates them all in lvalue context.
16:32 svnbot6 r12226 | audreyt++ | * Also use the faster (and safer) unsafeCoerce# into Int
16:32 svnbot6 r12226 | audreyt++ |   instead of Word for the addressOf function.
16:32 TreyHarris [particle]: i'm curious as to how Perl 6 would be placed and color-coded in that diagram :-)
16:33 luqui weren't you going to bed audreyt
16:33 weinig|sleep is now known as weinig
16:33 luqui also, how can a postfix macro work?
16:33 luqui I suppose it just isn't allowed to change the parse of its lhs
16:33 Limbic_Region audreyt - I am not having the same problem as particle - building fine
16:34 audreyt luqui: right, but otherwise the same
16:34 * Limbic_Region wanders off to catch $meeting now
16:34 audreyt luqui: yeah, but [particle] reported buildfailure :)
16:34 luqui so you implemented VAR?  :-p
16:35 audreyt yeah :p
16:35 audreyt ?eval VAR(my @x)
16:36 audreyt hm, is it dead? :)
16:36 audreyt ...indeed it is.
16:36 * luqui rushes to check, but then realized the last time he started it was six months ago
16:36 audreyt :D
16:36 gaal audreyt: link fails on colinux too: usr/bin/ld: cannot find -lJudy
16:37 audreyt gaal: buildfailure?
16:38 pasteling "gaal" at 192.115.25.249 pasted "linux" (3 lines, 1K) at http://sial.org/pbot/18984
16:39 gaal oh wait! I had judy build errors, investigating
16:40 cmarcelo_ joined perl6
16:40 gaal nnnno, those are just warnings. hmmm.
16:41 gaal though I don't really see how the linker survives them:
16:41 pasteling "gaal" at 192.115.25.249 pasted "judy warnings" (83 lines, 5.2K) at http://sial.org/pbot/18985
16:46 audreyt gaal: it's just lack of prototypes I think
16:47 gaal huh, funny. a second make w/o changing anything gives the unrelated:
16:47 gaal undefined reference to `PugsziEmbedziParrot_d9bm'
16:47 gaal now, I bet nuking the stale parrot hi/o files and rerunnign make will work
16:47 gaal so it may be the case that a first 'make' doesn't finish installing judy?
16:48 cmarcelo_ is now known as cmarcelo
16:49 gaal yes, that's exactly what happened.
16:50 gaal did something happen to Prelude.pm?
16:50 gaal Generating precompiled Prelude... system: [/usr/bin/perl util/gen_prelude.pl -v -i src/perl6/Prelude.pm -p ./pugs --output blib6/lib/Prelude.pm.yml]: No such file or directory at util/build_pugs.pl line 407.
16:50 audreyt uhm
16:50 audreyt ./pugs -e1
16:51 audreyt see if it segfaults for you.
16:53 gaal no, works.
16:54 luqui audreyt, in latest pugs: pugs> VAR(my $x)
16:54 luqui pugs: Numeric.showIntAtBase: applied to negative number -1227242168
16:54 luqui followed by death
16:54 luqui maybe word was a good idea after all.  is there an unsigned you can use?
16:54 audreyt Word is unsigned
16:54 luqui unsigned 32-bit?
16:55 audreyt unsigned native int
16:55 svnbot6 r12227 | audreyt++ | * gen_output.pl - use shell redirection to see if it makes
16:55 svnbot6 r12227 | audreyt++ |   prelude generation work
16:55 luqui not that 30 bit business...
16:55 luqui so, yeah, why not word then?
16:56 audreyt I had a thinko. no reason
16:56 audreyt fixed
16:57 audreyt gaal: try r12227
16:57 svnbot6 r12228 | audreyt++ | * Pointers should be shown with unsigned ints (aka Word) after all.
16:58 gaal audreyt: '27 didn't help, but did reveal that something segfaulted.
16:58 gaal maybe '28 would help :)
17:00 pasteling "gaal" at 192.115.25.249 pasted "/usr/bin/perl util/gen_prelude" (5 lines, 521B) at http://sial.org/pbot/18986
17:00 audreyt yay, so I'm not the only one who got the suddent segfault
17:01 gaal and idea what that '24751' indicates?
17:01 audreyt $$ perhaps?
17:01 gaal hmm yes
17:02 weinig is now known as weinig|bbl
17:02 audreyt apparently '28 fixed it for me.
17:02 gaal I'll try a clean build, bbiab &
17:03 gaal btw is a 10-day-old parrot still OK?
17:03 luqui oh no, segmentation fault!
17:03 luqui I am in the build failure crowd now
17:03 audreyt should be
17:03 audreyt luqui: with r12228?
17:04 luqui yeah
17:04 Limbic_Region joined perl6
17:04 audreyt realclean worked for me, but this is weird
17:04 luqui during ./pugs -C Parse-YAML Prelude.pm
17:04 audreyt yeah. does "./pugs -e1" segfault for you too?
17:04 pasteling "cmarcelo" at 200.245.119.10 pasted "more ghc 6.5 trunk" (7 lines, 1.1K) at http://sial.org/pbot/18988
17:05 luqui no
17:05 audreyt so just at prelude generation?
17:05 luqui seems so
17:05 audreyt what does gdb say?
17:05 audreyt I can't dup the segfault now; but gdb here used to say on "bt" that stack got smashed
17:06 luqui hmm, I just ran it by hand and it worked
17:06 audreyt cmarcelo: nuke src/Main.{hi,o}
17:07 audreyt luqui: and then "./pugs" at interactive shell works? (including VAR?)
17:07 luqui yep
17:08 audreyt cmarcelo: try #haskell for help... I need to sleep now. probably -main-is or something can help you
17:08 luqui I find it odd: ./pugs -C Parse-YAML Prelude.pm > blib6/lib/Prelude.pm.yml
17:08 luqui that is the command line, but what is the working dir of that command?
17:08 luqui there is no Prelude.pm in root
17:08 audreyt the pugs dir
17:08 audreyt it's unlinked by the end
17:08 luqui oh
17:08 audreyt of genprelude run
17:09 luqui this succeeds: ./pugs -C Parse-YAML src/perl6/Prelude.pm > blib6/lib/Prelude.pm.yml
17:11 gaal segfaults at the same place after realclean. trying to gdb it...
17:12 audreyt I wonder if it has anything to do with the temp Prelude.pm
17:12 cmarcelo audreyt: ok
17:12 audreyt I almost would think that gen_prelude line 137 didn't work with timely destruction, so Prelude.pm was empty
17:12 audreyt but that seems very unlikely
17:13 luqui I saved the temp prelude so I can try to repeat
17:13 gaal i think there's a flag to not delete the interim prelude.pm somewhere....
17:13 audreyt --keep
17:13 luqui nope
17:13 luqui no segfault
17:13 gaal I'm trying from a core...
17:15 luqui when I run it by hand with PUGS_COMPILE_PRELUDE enabled it segfaults
17:16 luqui (all this is completely trivial, but I'm not familiar with the compilation process)
17:16 pasteling "gaal" at 192.115.25.249 pasted "looks judy related, all right..." (30 lines, 1.1K) at http://sial.org/pbot/18990
17:17 audreyt gaal: ok. let me triage this a bit
17:19 svnbot6 r12229 | audreyt++ | * Segfault triage attempt #1:
17:19 svnbot6 r12229 | audreyt++ |     - JudyHS => JudyStr for the ID table.
17:19 svnbot6 r12229 | audreyt++ |     - meanwhile, cut down unsafePerformIO in YAML instance.
17:19 audreyt gaal: r12229?
17:19 j1 joined perl6
17:20 audreyt (also making on feather)
17:20 j1 left perl6
17:22 gaal yay! it works
17:22 gaal audreyt++
17:22 audreyt whew.
17:22 gaal pugs> VAR(my $x)  => ({ref:<Scalar:0xb6877828>},)
17:22 audreyt cmarcelo: I think we have a pretty good reason to think that JudyHS binding is segfault-happy somewhere :/
17:22 cmarcelo when works, try a few times more (only generating the prelude)... just in case..
17:23 gaal cmarcelo: is there some stochastic stuff going on in judy?
17:23 luqui I'm currently building
17:23 luqui gaal, segfaults can also randomly happen based on the contents of memory and whatnot, of course
17:23 gaal (otherwise why would regening the same code trigger a segfault sometimes?)
17:24 audreyt gaal: malloc is not deterministic
17:24 luqui gaal, how much C have you written?
17:24 audreyt here gdb says "corrupt stack"
17:24 gaal luqui: some.
17:24 luqui not enough to have written code which only segfaults sometimes?
17:25 luqui anyway...
17:25 cmarcelo audreyt: when i get $home i'll look deeper in JudyHS... meanwhile we can trust Judy.StrMap, or no?
17:25 gaal of course, but usually there's more variation in IO and the process is not so much computation based.
17:25 audreyt cmarcelo: we can, and for ID interning it's just fine
17:25 weinig|bbl is now known as weinig
17:25 audreyt since type names with \0 in it is so degenerate
17:25 audreyt we don't need to consider it
17:26 audreyt but for general IHash, sometimes people do put \0 there
17:26 audreyt and we sholud probably let them
17:26 luqui audreyt's fix works here too
17:27 luqui it would probably be a lose to transform \0 out of the strings for Judy's sake
17:27 audreyt cool. if you are feeling adventurous
17:27 audreyt then in Pugs.Internals
17:28 audreyt change both StrMap to Hash
17:28 audreyt and see if segfault appears again
17:28 audreyt i.e. I wasn't sure if it's unsafePerformIO inlining and laziness killed it
17:28 audreyt or JustHS binding killed it
17:28 audreyt luqui: Judy has two string maps; one allows \0 but doesn't guaranteed ordered key traversal
17:29 audreyt one disallows \0 but guarantees ordered traversal
17:29 audreyt the first one is also more memory friendly
17:29 luqui interesting trade-off
17:29 gaal cmarcelo: about ten preludes generated successfully here.
17:29 cmarcelo gaal: nice..
17:30 audreyt gaal: see "adventurous" above
17:30 audreyt I still would like to use Judy.Hash if possible.
17:30 cmarcelo audreyt: i mentioned strmap just until we found the possible bug um hash..
17:30 gaal audreyt: ACK.
17:30 cmarcelo in hash
17:30 audreyt danke.
17:30 audreyt if Hash is shown to be segfaulty
17:31 audreyt cmarcelo: can you prepare another patch that switches IHash to use StrMap? :D
17:31 audreyt should be a few lines of changes
17:31 cmarcelo ok.
17:31 audreyt if Judy.Hash segfaults gaal, then we probably should switch IHash to StrMap for now
17:31 audreyt and fix Judy.Hash later
17:32 gaal yes, it segfaults.
17:32 audreyt cmarcelo: s/prepare a patch/simply commit/
17:32 audreyt :)
17:32 cmarcelo (i know)
17:32 cmarcelo =)
17:32 audreyt good. :) I can finally rest in peace then :)
17:32 * cmarcelo little slow because of net connection here..
17:33 audreyt cmarcelo++ gaal++ luqui++ agentzh++ for 0-day judyizing :)
17:33 audreyt &
17:33 * [particle] thinks audreyt needs irc-sensitive sunglasses
17:33 gaal @google limor media sensitive sunglasses
17:33 lambdabot http://www.makezine.com/blog/arc​hive/2005/05/mediasensitive.html
17:33 lambdabot Title: MAKE: Blog: Media-Sensitive Glasses
17:37 cmarcelo gaal: in a few minutes i'll commit a StrMap version of IHash, hope you'll be here to test it..
17:38 gaal heh, I just changed it myself :)
17:38 gaal didn't notice audreyt asking you to
17:38 gaal please commit ahead, I don'
17:38 gaal t know if my s/Hash/StrMap/ is all that's needed :)
17:40 gaal well fwiw just doing that doesn't kill prelude generation
17:40 gaal cmarcelo: what's a reasonable test case?
17:41 cmarcelo well. the api is identical, just need to change type IHash and some imports, if you have it done commit it.
17:41 cmarcelo gaal: doesnt kill prelude => no errors happen? or the opposite?
17:41 gaal cmarcelo: I mean it looks good
17:42 Limbic_Region fwiw - latest rev still wasn't building on Win32 - trying a realclean now to see if that help
17:43 [particle] l_r, i'm still failing with 'permission denied'... from earlier.
17:43 gaal prove t/magicals/env.t doesn't die
17:43 [particle] i'll be rebooting as soon as i install os patches
17:43 Limbic_Region particle - interesting, I actually had a successful build after *that* round of updates
17:44 Limbic_Region I started failing again when more Judy hackery started happening
17:44 Limbic_Region "that" being when yours failed due to permissions - mine built successfully
17:44 svnbot6 r12230 | gaal++ | * move over IHash to Judy.StrMap, for now, until Hash is stabilized.
17:45 mauke_ joined perl6
17:49 gaal looking good with a bunch of tests from t/...
17:49 * gaal wanders off... have fun everyone!   &
17:51 Limbic_Region Judy is noisy these days
17:55 cmarcelo Limbic_Region: still failing?
17:55 rindolf joined perl6
17:55 rindolf Hi all.
17:55 rindolf audreyt: here?
17:55 Limbic_Region cmarcelo - dunno, takes a loooong time to build after a realclean
17:56 Limbic_Region Compiling Pugs.Val <----- where I am right now and have to leave for $meeting in 4 minutes
17:56 rindolf Hi Limbic_Region
17:56 rindolf Limbic_Region: I didn't see you on #perl lately.
17:57 Limbic_Region rindolf - I have been sick with mono and only connect to IRC (via CGI:IRC) at work
17:57 Limbic_Region or rather, I don't plug-in during non-work hours
17:57 rindolf Limbic_Region: mono...
17:58 Limbic_Region mononucleosis - got to go
17:59 rindolf Limbic_Region: bye!
18:00 mauke_ is now known as mauke
18:04 mako132 joined perl6
18:05 shachaf joined perl6
18:06 mako132 joined perl6
18:09 cmarcelo bbiab &
18:12 svnbot6 r12231 | audreyt++ | * 02-dash-n.t: "say" is now spelled ".say".
18:16 rindolf audreyt: I'm now installing Jifty and going to play with it.
18:18 svnbot6 r12232 | audreyt++ | * build_pugs.pl: skip HsJudy building when it doesn't need to be built.
18:20 rindolf perlbot: top 10 karma
18:20 perlbot The top 10 karma entries: C: 1182, iblech: 227, $i: 199, C/C: 176, audreyt: 163, fglock: 148, gaal: 130, stevan: 127, putter: 121, $x: 96
18:28 tewk d
18:28 tewk oops
18:38 scw perlbot: karma scw
18:38 perlbot Karma for scw: 10
18:38 jabbot scw: scw has karma of 63
18:46 kane-xs joined perl6
18:49 shachaf joined perl6
18:51 svnbot6 r12233 | scw++ | Rule to Parsec translation
18:51 svnbot6 r12233 | scw++ |  * rule2parsec.pl finished
18:51 svnbot6 r12233 | scw++ |   - 'use' statement and 'use Haskell'
18:51 svnbot6 r12233 | scw++ |   - rule implies :sigspace
18:51 svnbot6 r12233 | scw++ |  * Literal.hs can be generated (with patches)
18:51 svnbot6 r12233 | scw++ | Related changes
18:51 svnbot6 r12233 | scw++ |  * perl6WhiteSpace in Haskell to handle <ws>
18:51 svnbot6 r12233 | scw++ |  * spacing issues in perl5 and parsec emitters
18:55 asz joined perl6
19:01 Bit-Man_ joined perl6
19:03 Bit-Man_ joined perl6
19:06 * [particle] daydreams of japhs with anonymous mmd submethods
19:07 Bit-Man_ is now known as Bit-Man
19:09 scw Left some questions of generated code
19:10 scw current solution is to apply patches after generation
19:10 scw I'll write down problems I met in by blog tomorrow
19:10 scw but I have to go to bed now
19:11 scw I think the first several line of rule2parsec.pl is clear enougn
19:11 scw for those who want to test it
19:11 * scw bed &
19:27 shachaf_ joined perl6
19:31 luqui ?eval VAR(my $x)
19:31 luqui oh crap
19:31 luqui anyway, this is the bug:
19:32 luqui pugs> VAR(my $x).ref
19:32 luqui ::Array
19:32 luqui seems a little wrong
19:32 frederico joined perl6
19:34 TimToady make smoke seems a lot noisier now.
19:35 TimToady are we duping the error comments, or losing them from the smoker, I wonder...
19:35 wolverian Juerd, I get 7% packet loss to feather (says ping -c 100 -q). is that normal?
19:37 luqui or generating a lot more errors?
19:39 TimToady they mostly look like TODO, so I think they're same errors.
19:39 TimToady we'll see when the smoke finishes whether the html has any TODOs.
19:41 TimToady incidentally, I'm gonna rename FIRST.  It's badly not-the-opposite of LAST, pedogogically.
19:41 TimToady FIRST will just mean, run me on loop initialization only.
19:41 luqui and what will be the new FIRST?
19:41 TimToady something else will mean setup state vars.
19:42 TimToady lots of possibilities, but maybe, since it has to run inline anyway
19:42 TimToady it's not a FOO {...} block
19:42 TimToady possibilities:
19:42 luqui hmm, that's interesting
19:42 TimToady reallyonce {...}
19:42 TimToady latch {...}
19:42 dduncan joined perl6
19:42 TimToady sticky {...}
19:43 TimToady unless $anonymous++ {...}
19:43 luqui not: once {...}
19:43 luqui I suppose it would be a nightmare to have:  first {...}
19:43 TimToady unless (my $anonymous)++ {...}
19:43 TimToady same problem
19:43 luqui oh, right.
19:43 dduncan fyi, I'm having a Pugs build failure ...
19:43 TimToady but it seems like the missing primitive is anonymous symbols
19:43 luqui dduncan, are you up-to-date?
19:43 TimToady dduncate: realclean?
19:44 TimToady *dduncan
19:44 dduncan following a 'make realclean' and pull of the latest (12232) ...
19:44 luqui unless my++ {...}
19:44 dduncan I get: Compiling Pugs             ( src/Pugs.hs, dist/build/src/Pugs.o )
19:44 dduncan ar: creating archive dist/build/libHSPugs-6.2.12.a
19:44 dduncan *** Building: util/runcompiler -hide-all-packages -package stm -package network -package mtl -package template-haskell -package base -package pugs-fps -package pugs-HsSyck -package HsJudy -package unix -package-name Pugs-6.2.12 -idist/build -Ldist/build -idist/build/src -Ldist/build/src -optl-Lthird-party/installed -o pugs src/Main.hs -lHSPugs-6.2.12 -threaded
19:44 dduncan collect2: ld returned 1 exit status
19:44 dduncan Build failed: 256 at util/build_pugs.pl line 320.
19:44 dduncan make: *** [pugs] Error 2
19:45 TimToady state $x desugars to something like "my $x ::= $*GENSYM"
19:45 luqui dduncan, I'm guessing it's a judy error, but I can't see where the error is in your barf.
19:45 dduncan I guessed it had something to do with Judy as well
19:45 TimToady plus "unless (my $GENSYM)++ { $x = initialize }
19:46 luqui TimToady, what about closure clone?
19:46 dduncan if things work for all of you, I could try a thorough cleaning by re-checking-out to a clean directory
19:46 TimToady it's a my var, so it clones.
19:46 TimToady oh, you mean the state.
19:46 dduncan s/clean/empty/
19:46 TimToady (there's two states here, really)
19:46 TimToady the original state var
19:46 dduncan so I will try that, then
19:46 TimToady and the init state of that state var
19:47 luqui yeah, something like that
19:47 TimToady anyway, just a heads up that FIRST is changing, mostly.
19:47 TimToady need to trot off to lunch with $job buddies. &
19:47 luqui kay
19:47 luqui oh,
19:47 luqui I think that the present FIRST is quite useful
19:48 TimToady sure
19:48 luqui so keep it short/simple :-)
19:48 hexmode joined perl6
19:48 TimToady cache { ... }
19:48 TimToady or whatever, can desugar to something longer
19:48 luqui state {...} ?
19:48 TimToady I think that would be confusing.
19:48 luqui have a good lunch
19:49 TimToady later &
19:50 luqui dduncan, what arch are you on?
19:50 luqui arch/os, rather
19:51 dduncan actually, something I distinctly remember, is that yesterday, about 30 commits back, some third-party stuff was automatically rebuilt by 'make' ... there was a segfault or something with pugs, so I did a 'make realclean' yesterday, then today did a pull and clean build, which did not rebuild third-party stuff, leading to the current state ...
19:51 dduncan is 'make realclean' supposed to clean up third-party stuff?
19:51 dduncan so that is rebuilt too?
19:51 luqui it ought to be, though I have no idea
19:51 dduncan or if it is, then 'make' isn't noticing that and isn't rebuilding
19:52 luqui find -name libJudy.a
19:52 dduncan still, I just did a revert -R of my whole checkout dir (after emptying it) and will try building from that ...
19:52 lichtkind joined perl6
19:53 luqui make realrealclean :-)
19:53 vel joined perl6
19:55 dduncan nah ... I just did rm -r ., then svk revert -R
19:55 dduncan can't get much cleaner than that
19:58 dduncan luqui, I'm on Mac OS X 10.4.6 PPC/G4, with Perl 5.8.7, GHC 6.4.1, if that answers your question
19:58 dduncan about arch/os
19:59 luqui ah.  I don't think we've tested that one yet.
19:59 luqui but we did have a windows break and then a linux break
20:00 dduncan so, I'm now starting a fresh 'make', and we'll see how it goes
20:01 dduncan as there should be no detritus left from earlier work, this attempt should more cleanly say whether something in the repository is incompatible or not with my system
20:01 dduncan and I can see that third-party stuff is indeed rebuilding now ...
20:13 dduncan here's something that may be an issue ... though it doesn't halt the make so it may just be a warning:
20:13 dduncan Compiling Pugs.Internals   ( src/Pugs/Internals.hs, dist/build/src/Pugs/Internals.o )
20:13 dduncan hmm
20:14 dduncan Compiling Pugs.Internals   ( src/Pugs/Internals.hs, dist/build/src/Pugs/Internals.o ) \ /tmp/ghc22774.hc: In function 's13ka_entry': \ /tmp/ghc22774.hc:4866: warning: implicit declaration of function 'JudyLIns'
20:20 frankg joined perl6
20:27 shachaf_ joined perl6
20:32 bpphillip1 left perl6
20:42 fglock joined perl6
20:48 shachaf__ joined perl6
20:48 dduncan alas, I still get the error at link time
20:49 dduncan it says: /usr/bin/ld: can't locate file for: -lJudy \ collect2: ld returned 1 exit status
20:49 dduncan on the cleanest possible build
20:49 luqui find . -name libJudy.a
20:50 luqui (.a is the extension used on mac, right?)
20:50 dduncan ./third-party/judy/Judy-1.0​.3/src/obj/.libs/libJudy.a
20:50 luqui okay, so it built
20:50 luqui it just doesn't know where to look perhaps
20:50 dduncan afaik, the naming scheme is the same for Unixen in general
20:51 dduncan and/or gcc environments
20:51 luqui it sure would be nice to have somebody who had any knowledge of the build system whatsoever around
20:51 luqui well, except for the .so/.dylib thing
20:53 dduncan does the system build for you?  and what is your os?
20:53 luqui x86-linux
20:53 luqui and yeah, it (now) works
20:55 luqui hm, third-party/installed looks interesting
20:55 shachaf__ joined perl6
20:55 luqui try copying or symlinking libJudy.a to third-party/installed
20:57 dduncan you mean put it in: third-party/installed/libJudy.a ?
20:57 luqui right
20:57 zgh joined perl6
20:57 TimToady my smoke seems to have worked ok; has the todo bits.
20:58 TimToady doesn't look like the speed changed significantly though.
20:58 luqui that is explained above
20:58 luqui judy was integrated in,
20:58 luqui simultaneously I submitted a patch which slowed everything down
20:58 luqui they cancelled each other out (for about a 10% speed gain)
20:59 dduncan luqui, I didn't do that yet but ...
20:59 dduncan I had previously said 'make' again (without pulling again), and while mostly skipping stuff, it did cause a change in subsequent 'find' results
21:00 dduncan rather than just that 1 location, the file is now in 3:
21:00 dduncan ./third-party/HsJudy/libJudy.a \ ./third-party/installed/libJudy.a \ ./third-party/judy/Judy-1.0​.3/src/obj/.libs/libJudy.a
21:00 dduncan so I never copied it there, but it just ended up there after a second 'make'
21:00 luqui interesting
21:01 luqui it appears that libJudy.a is automatically copied to third-party/installed by build-pugs.pl
21:01 luqui however, it is done before libJudy.a is built
21:01 luqui (stupid)
21:01 luqui so I'll bet putting it there will fix it
21:02 luqui that or re-running Makefile.P
21:02 luqui *.PL
21:02 dduncan still with no pulling or other manual editing, I will now try re-running Makefile.PL and 'make'
21:03 dduncan but it sounded like you were saying the build process is faulty
21:05 dduncan as with the second 'make' that resulted in 3 files being found, this one gives the error: /usr/bin/ld: table of contents for archive: third-party/installed/libJudy.a is out of date; rerun ranlib(1) (can't load from it)
21:05 luqui ouch
21:05 luqui that sounds like something I don't know how to do
21:06 luqui maybe you should run ranlib ;-p
21:06 dduncan that's also something I don't know how to do
21:06 dduncan typically I expect the makefile to "do the right thing"
21:07 dduncan well, I'll try back later ... &
21:09 chris2 joined perl6
21:10 kanru joined perl6
21:11 zgh joined perl6
21:28 weinig joined perl6
21:32 cmarcelo joined perl6
21:33 * cmarcelo is correcting the silliest mistakes of the build.. sorry folks..
21:33 nothingmuch seen audreyt?
21:33 jabbot nothingmuch: audreyt was seen 4 hours 3 seconds ago
21:37 svnbot6 r12234 | cmarcelo++ | * Correct silly mistakes on the build process. Still copying
21:37 svnbot6 r12234 | cmarcelo++ | libJudy.a to third-party/HsJudy because cabal doesn't accept
21:37 svnbot6 r12234 | cmarcelo++ | "../installed" as a extra-lib-dir, it eats the first dot.
21:48 shachaf__ joined perl6
21:54 shachaf_ joined perl6
22:00 weinig joined perl6
22:07 Bit-Man_ joined perl6
22:07 meppl joined perl6
22:08 fglock left perl6
22:08 fglock joined perl6
22:09 kolibrie_ joined perl6
22:10 notsri_ joined perl6
22:10 hcchien_ joined perl6
22:10 Bit-Man_ is now known as Bit-Man
22:10 clkao joined perl6
22:11 ruz joined perl6
22:11 stevan joined perl6
22:11 kolibrie joined perl6
22:11 Psyche^ joined perl6
22:12 Bit-Man joined perl6
22:19 HEx joined perl6
22:24 Psyche^ is now known as Patterner
22:24 cmarcelo luqui dduncan: sorry for the mistakes on the build. I tested on linux + ghc6.4.2 with a fresh checkout from svn: perl Makefile.PL, then "make" and it works..
22:25 luqui thanks. cmarcelo++
22:40 dduncan I reran Makefile.PL and 'make' but, the error did not go away
22:40 dduncan I will do a fresh checkout if that would help?
22:41 chris2 joined perl6
22:42 dduncan doing fresh checkout ...
22:46 * cmarcelo looks in logs for dduncan error..
22:47 dduncan my rerun wasn't prefixed by a make clean or anything
22:48 dduncan and since rebuilding the Haskell takes most of the time, I'll just refresh the whole checkout dir with clean copies
22:48 cmarcelo ok.
22:48 cmarcelo which env are you in? unix-like, win32?
22:50 dduncan now starting to make r12234 ...
22:50 dduncan unix-like
22:50 dduncan Mac OS X 10.4.6
22:50 dduncan afaik, it may just be something that will be fixed with a clean checkout dir
22:51 dduncan so no worries unless that doesn't work
22:51 jferrero joined perl6
22:51 dduncan now starting 'make' ... it will take an hour or so, presumably
22:51 dduncan (4-year-old machine)
22:52 cmarcelo ok.. if you can, watch it until gets to Pugs compilation (to see if HsJudy goes fine)..
22:52 dduncan there is a lot of verbiage at that stage ... anything specific to look for?
22:53 dduncan its compiling Judy now
22:53 dduncan lots of C compiler output
22:53 dduncan or rather, shell output regarding its invocation of the C compiler
22:55 dduncan afaik, the Judy compile worked fine
22:55 dduncan make has progressed to other third-party items
22:55 cmarcelo dduncan: yep.. it's just calling "./configure; make" for judy c library, but very noisy indeed.
22:55 dduncan now compiling Pugs itself ...
22:56 cmarcelo ok.. so, if it breaks will break in an hour or so, but I think it should work fine..
22:56 dduncan the Judy make ends with: creating libJudy.la
22:57 dduncan following that: (cd .libs && rm -f libJudy.la && ln -s ../libJudy.la libJudy.la)
22:57 dduncan before the 'creating': ranlib .libs/libJudy.a
22:58 cmarcelo seems ok... I gotta go, but paste any errors you get... &
22:58 dduncan oop, my mistake ... when I said it was compiling Pugs, I meant to say it was compiling Data.ByteString
22:58 dduncan but NOW its compiling Pugs
22:59 dduncan if it fails this time, I'll nopaste the whole session following the last svk revert
23:21 cjeris left perl6
23:23 rashakil joined perl6
23:32 jferrero joined perl6
23:37 diakopter joined perl6

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

Perl 6 | Reference Documentation | Rakudo