geoffb's column: www.oreillynet.com/pub/au/2333 | Pugs 6.2.10 coming soon | pugscode.org | pugs.kwiki.org | paste: sial.org/pbot/perl6 | www.geeksunite.net
Set by autrijus on 5 October 2005.
dduncan ?eval my $foo = {1=>2,3=>4,5=>6}; 00:50
evalbot_7422 {('1' => 2), ('3' => 4), ('5' => 6)}
dduncan ?eval my $foo = {1=>2,3=>4,5=>6}; my $bar = $foo; 00:51
evalbot_7422 {('1' => 2), ('3' => 4), ('5' => 6)}
dduncan ?eval my $foo = {1=>2,3=>4,5=>6}; my $bar = hash($foo); 00:52
evalbot_7422 Error: cannot cast from VUndef to Handle (VHandle)
dduncan ?eval my $foo = {1=>2,3=>4,5=>6}; my $bar = hash(%{$foo});
evalbot_7422 Error: cannot cast from VUndef to Handle (VHandle)
dduncan my $foo = {1=>2,3=>4}; my $bar = hash(%{$foo});
?eval my $foo = {1=>2,3=>4}; my $bar = hash(%{$foo});
evalbot_7422 Error: cannot cast from VUndef to Handle (VHandle)
dduncan ?eval my $bar = 3; 00:56
evalbot_7422 \3
dduncan ?eval my $foo = {1=>2,3=>4,5=>6}; my $bar = %{$foo}; 00:58
evalbot_7422 {('1' => 2), ('3' => 4), ('5' => 6)}
dduncan ?eval my $foo = {1=>2,3=>4,5=>6}; my $bar = %{$foo}; $bar.kv.join( ', ' ) 00:59
evalbot_7422 '1, 2, 3, 4, 5, 6'
dduncan ?eval my $foo = {1=>2,3=>4,5=>6}; my $bar = $foo; $bar.kv.join( ', ' ) 01:00
evalbot_7422 '1, 2, 3, 4, 5, 6'
dduncan ?eval my $foo = {1=>2,3=>4,5=>6}; my $bar = $foo; $bar.pairs.join( ', ' ) 01:12
evalbot_7422 '1 2, 3 4, 5 6'
dduncan I seem to have fixed Locale-KeyedText, but the process was painful ... its checked in now 03:10
svnbot6 r7423 | Darren_Duncan++ | /ext/Locale-KeyedText : updated KeyedText.pm and t_LKT_Util.pm to remain compatible with recent Pugs changes
nothingmuch oh god 03:28
you say "normal exception handling" and then everyone jumps at you
i'm so sick of that thread
why can't they just let it go?
putter geoffb: 3617 (pilrun tests passed) of 7716 (piljs tests run) is < 50%. 6910 (pilrun tests run) vs 7716 is a bunch of test files utterly failing. 03:45
iblech: note geoffb's puzzlement. pity poor users unfamiliar with pugs. the %ages need to be normalized.
geoffb putter, ah, now I get it 03:46
putter :)
geoffb So some test files don't even manage to cough up a plan?
putter actually, a program that doesnt do anything passes... I don't really remember... perhaps 20% of the test suite? all the negative tests. 03:47
geoffb sigh
It's like getting 400 on the SATs just for putting your name at the top.
.oO( I wonder if they still use that stupid scale . . . ? )
03:48
putter geoffb: yes. there are non-terminations cpu intensive, non-termination cpu-less hangs, memory exhaustions, etc, etc.
geoffb bleah
fair enough
putter actually, the 100% pugs is a bit of a crock. from an end user perspective.
for developers it's fine. but for users, a skip is no better than a fail. so pugs is at... 03:49
~70% 03:51
geoffb gah
Yes, normalization is in order. 03:52
putter and that's of a test suite which tends to be driven by the implementation, rather than covering the spec.
geoffb But how to know what is correct number for total, given that some tests fail utterly on some backends?
nodnod, well, that much was well advertized 03:53
putter max tests (ie, pugs) is one option. another is an arbitrary 10k (ie, normalized pugs). another is 20k (closer to the total number of tests anticipated for p6 coverage) 03:54
geoffb How many does p5 have these days?
putter ? 03:55
geoffb How big is the perl (5) test suite?
sili_ ginoperous
putter 365 .t files... 03:56
geoffb doubts that Perl 6's test suite can reasonably be smaller, even if perl 5 tests are overconservative
& 03:58
putter a very quick and superficial look suggests pugs and p5 may already
have a comparable number of tests. 03:59
g'night geoffb
geoffb you too
putter tnx
scook0 hmm 04:04
is there any reason the default typechecker needs to be *rejecting* programs?
(rather than just giving a warning)
putter sigh. ./pugs official "pass" of a month ago was "96%". Which _really_ meant a third of the things we tested for, did not in fact work.
the smoke's would be awash in red, if the colors were tuned for users rather than developers. 04:05
scook0: ? 04:06
Supaplex greetings fine gentlemen
scook0 re: p6l "Type annotations"
Supaplex oh, and buu. ;)
putter is concerned folks are forgetting how very much doesn't work yet, and how little p6 code is actually being written (and with what difficulty). which may lead to misleading and disappointing users. burning credability perl6 already doesnt exactly have in abundance. 04:10
Supaplex so how do we fix this putter? 04:11
putter Supaplex: change skipped and todo tests to shades of red? ;) stay clear ourselves on how much isnt working yet. and undersell our capabilities to others. 04:15
Supaplex sounds reasonable. 04:16
come to think of it, I had an awesome idea for p6 just int he last day or two ... meh :( I can't recall
will p6 be a reasonable canidate for desktop applications? 04:18
SamB Supaplex: who can say?
Supaplex: will it even work?
Supaplex good point 04:19
Khisanth will the specs ever get to a point resembling "complete"? :) 04:20
or at least .. "fixed"
putter eg, for this release, -Bjs is best described as running a perl4ish dialect of p6, and is probably the most noteworthy accomplishment. or if aut gets a linkable pugs and Inline::Pugs working. -Bperl5 imho does not, from an end user perspective, deserve more than passing mention.
SamB: once some backend, or even a combination of backends, provides working rules, oo, and a compiler which doesn't choke too often, it should be surprisingly easy to do, for example, ruby to p6 transliteration. those challenges are ones of implementation, not language definition. and that capability provides a lower bound on what p6 will be able to do. 04:26
Khisanth but how will running ruby give perl6 credability? 04:29
putter running anything will give p6 credibility 04:30
PerlJam Why does perl6 need credibility again?
and credibility to whom?
Khisanth putter: that makes it sound like it's in a rather sad state of affairs ... 04:31
putter we've got a very very neat baby. even todler. lots of potential. may even grow up to be president (even though that's not saying much these days;). but we haven't really written any large p6 programs yet... and the occasional attempts have not gone smoothly. 04:37
dduncan I agree with changing skipped/todo to something more like red 04:40
but there are different reasons that should show up differently
in a fully working system, the only reason to have a skip is if that test is for an optional component that the user didn't choose to install 04:41
whereas, anything conceptually non-optional, particularly anything that isn't ok because Pugs isn't far enough along to implement it yet, should be reddish ... maybe orange or yellow
for fails, I see at least 3 levels: 04:43
1. the most red is if the test script dies before spitting out a count of tests; maybe also use this if the test script ties part way through as well 04:44
or those can be 2
2. the script does not die, but reports an ordinary failure
3. the script gives a todo, should Pugs not be ready to implement it, or the code is incomplete
those should all be shades of red 04:45
maybe maroon, mid red, and orange
yellow or light green can be skips due to an optional feature not being chosen by the user or their not installing an optional prereq
and dark green would be a normal successful tets 04:46
test
Khisanth, why get politics involved in this? 04:50
PerlJam putter: Why do you think that pugs development is the bottleneck?
putter Khisanth: the other upbeat aspect is that I suspect we will have a supercritical cascade release at some point. a depends on b depends on c depends on d which depends on autrjus. at some point d gets kicked, and rumble thunder boom. 04:51
PerlJam putter: why do you think that autrijus is critical to perl6?
dduncan I would say he is very important to perl6 04:52
Khisanth PerlJam: he seems to hack most of the haskell parts?
dduncan providing a good kick in the level of progress
t'werent for pugs, I doubt there would have been an environment to run perl 6 code in by now 04:53
scook0 an implementation is critical to P6, and pugs is the only (top-down) implementation
autrijus is critical to pugs
PerlJam dduncan: I agree.
I will also agree that autrijus has been an excellent person to rally around and has helped perl6 development greatly. 04:54
scook0 and the 'real' implementation is unlikely to get written until pugs is complete enough to write it in
PerlJam but perl6 hardly has a truck-number of 1 (autrijus). That's the vibe I'm getting.
putter PerlJam: pugs is the only existant parser and compiler. their limitations and bugs define what it is currently possible to do. it should be possible to do a non-hs compiler shortly after oo starts working. but even a minimal compiler will I suspect be the largest p6 program ever written, and thus a stress test with associated difficulties. 04:56
PerlJam scook0: the real implementation will depend on perl6 rules. AFAIK autrijus isn't working in that area.
Khisanth speaking of which, whatever happened to that anyway?
scook0 really? 04:57
PerlJam Khisanth: you mean PGE?
scook0 I thought the current plan was to get Pugs to a stage where perl6 can be written in Perl 6
dduncan last I checked, the perl6 rules were being implemented in Parrot
scook0 with Pugs as the bootstrap
dduncan it is
Khisanth PerlJam: yup
dduncan Pugs is the bootstrap of the main parg
and PGE/Parrot the bootstrap of the other part 04:58
PerlJam Khisanth: last I heard (several weeks ago), Larry and Damian keep changing certain semantics that make it quite difficult to implement something concrete
But pmichaud has disappeared as far as I know. I've not seen hide nor hair nor avatar in quite a while. 05:00
Maybe he's on vacation
putter pge/parrot is the furthest along p6 rules implementation. some stuff of mine is the only other activity I know of. pge is a one-man show. and I'm unclear on whether it's being semi-actively developed, on hold slated for replacement by an alternate approach, or simply very quiet. 05:01
PerlJam: writing anything in assembly language (which is basically what pir is) requires a stable spec. its not a good exploratory programming language. which is one reason it's always seemed an iffy choice for the first draft rules engine. 05:02
PerlJam putter: What would you have done? 05:05
(or what rules-related stuff have you done? I haven't kept up)
scook0 anybody know how `foo.()`-style calls are supposed to interact with adverbs? 05:06
(syntax-wise)
can I say `foo :adverb .()`? 05:07
or `foo .() :adverb`?
PerlJam scook0: The former is highly doubtful :)
putter PerlJam: re criticality of autrijus, while other lambda camels have contributed, autrijus is the only person who as done large scale reengineering of pugs/hs. and several acts of such reengineering will be needed as pugs matures. and I see very little chance of p6 comming into existence any time soon without pugs. which means if autrijus gets hit by a bus, I give up on p6.
scook0 hmm 05:09
PerlJam putter: That's a strange attitude. 05:10
scook0 I suspect that adverbs outside parens can only come _after_ the parens, if there are any 05:11
otherwise adverb-parens get confused with call-parens
putter PerlJam: it took under a calendar week to write a prolog engine, linkable to p5, which passes the p5 test suite modulo embedded code. admittedly it's not a very thourough test suite. when I get an extra day, I plan to address that last embedded code bit. finishing up the p6 version will take another couple of days. that will be under 100hrs dev time total, to get a fast working prototype thourougly correct. and easily updated. we 05:16
could have a p6 rules grammar for p6 now if that existed. next step is deriving a p5 emiter/engine from the prolog one. scheduling and success on that is more iffy, as performance is so important. but I'm optimistic. I give it about a 1/3 chance of being straightforward.
scook0: i dont know, but I'm not so doubtful about before paren adverbs. after all, rx:foo(3)(bar) is fine. 05:20
i think. fuzzily. when I should be asleep.
good night folks &
PerlJam g
scook0 bye
PerlJam g'night putter
dduncan seeing as there was no public smoke from the last day, I posted my first one 06:02
under darwin: Pugs 6.2.9 r7423 08 Oct 2005 06:00 Sat 96.67 min 99.28 % ok 10307: 10233, 74, 1220, 1512, 0 Ā» Ā» 06:03
gaal dduncan: there's also a win32 one there. producing a new one here.... 07:01
dduncan and hello to you too 07:07
fyi, Locale-KeyedText is all fixed, though it was painful to figure out the problem ... I ended up just recoding some bits in a different way to get them to work 07:08
eg, I found strange things happening with .pairs that were difficult to reproduce, so I recoded the bits with .keys and another hash lookup instead, the perl 5 way
in this case, difficult meaning that I was unable to reproduce them outside of my module 07:09
gaal hi :) yes, pairs are still in the doimain of Weird 07:10
dduncan most of my problems are related to pairs and/or hashes
eg, simply assigning one hash to another with $foo = $bar results in the new hash being a condensed version of the original, every key/pair was concated into a single string 07:11
if you see various smoke errors about odd numbers of elements in a hash, it is probably related to this
gaal yeah
dduncan one workaround I found was to say $foo = %{$bar}
another one was to use .keys instead of .pairs 07:12
separately, I found I had to wrap an array property in an @{} in order for a .map to work properly
related to that, I removed a bunch of hash(), which used to be necessary but now seem to cause problems instead of helping 07:13
also, I verified that Pugs still has the hash bug where keys auto-vivify when they are referenced
due to various issues, my current Locale-KeyedText has a bunch of cruft in it 07:14
suffice it to say that, following the CPAN release of 6.2.10, I'm going to delete that and just have the rewritten cruft-free Locale-KeyedText inside Rosetta-Incubator instead 07:15
and that should function once the new MetaModel and proper object support is integrated into Pugs
I figure that the change-over to the MetaModel, plus a Parser overhaul built on the new PIL, should cause a lot of things to just work in Pugs, both adding new features and removing most of the need for cruft 07:17
so release 6.28.0 should be sweet indeed
meanwhile, 6.2.10 will have the functional/fixed older version 07:18
autrijus wakes up and backlogeth 07:24
putter++ putter++ putter++
# reality check
I was constantly worried about overadvertisement 07:25
and still am. but at the same time I can't help but be very excited/enthusiastic about progress.
so it requires a delicate balance ;)
gaal it also requires: (1) saying we're developing for development, for now 07:26
(2) no busses;
i think we do #1 enough... when i enthuse about pugs to people i try to convey this at least. 07:27
autrijus geoffb: I actually fixed the parrot_config bug, but a nap turned into unexpected sleep 07:28
so I'm committing it now. apologies
gaal is there a checklist for this release? 07:29
svnbot6 r7424 | autrijus++ | * link in parrot_config.o explicitly during parrot embedding;
r7424 | autrijus++ | not until 0.3.1 will we have "include/" installed in parrot
r7424 | autrijus++ | base, so currently we still need a build tree of parrot.
r7424 | autrijus++ | C'est la vie.
autrijus gaal: it's the usual one. tests and changelogs
I think I'm done with cabal. 07:30
gaal k. i'll have an updated smoke up soon.
autrijus so, pick one and I'll do the other :D
gaal i'll do the tests. (but did anyone take a look at that weird one? what was it...)
ext/libwww-perl/t/base/headers-util.t
autrijus dduncan: indeed. totally need to make cruftfree OO code viable after this. 07:31
I did not. sec
fixed.
gaal oh, we also need to make a decision about trans (the map/pair issue). 07:32
autrijus++ # "sec" means sec
your -> Pair $_ workaround in the Prelude carries things a little further, but there are still crashes.
autrijus I think, rewrite it without map+pair 07:33
gaal heh, okay
autrijus and push demagicalization through following the release.
(see my commit log.)
svnbot6 r7425 | autrijus++ | * when you iterate an array of pair, always require type annotation. 07:34
r7425 | autrijus++ | (I thought the base dynamic perl6 was a type annotation free language?
r7425 | autrijus++ | whatever happened to that? ;-))
gaal giggles
autrijus for the record, I don't consider junctive application "base". 07:35
autrijus starts changelogging 07:37
bbiab
gaal hmmm, we've got a namespace/exportation bug. consider t/pugsbugs/attribute_hash.t 07:39
it crashes because "plan" is not found. but when "use Test" is pulled up to Main::, it doesn't find lives_ok
autrijus hm. and export is meant to be lexical. 07:40
gaal i'm pretty sure the .t code is correct as it is now; but exportation is apparently broken.
autrijus yeah. 07:41
lexical exports should fix the both counts.
gaal Should Bundle::Pugs::SmokeKit be mentioned in the ChangeLog to encourage people to submit smokes?
autrijus gaal: yes, definitely
I wouldn't object to even a Makefile.PL probe 07:42
actually, I'll code that up.
gaal whoa, sec. t/pugsbugs/attribute_hash.t didn't crash yesterday
so we broke something very recently.
autrijus eh? 07:43
I'm remaking pugs. will test in a bit
gaal yup, see the smoke for r7403
autrijus gaal: can you add this cross-package export test (or, easier, the equiv export-is-lexical test -- "{ use Test }; ok()" should _not_ succeed) to t/packages/export.t? 07:44
gaal tricky! but yes, of course.
autrijus I'll look at what breaks attrhash.t.
svnbot6 r7426 | gaal++ | tests for lexical exports 07:50
autrijus pugs built.
attrhash does _not_ crash for me.
gaal new smoke uploaded 07:51
eep
autrijus eep is correct
autrijus puzzleth
nopaste the crash when you run it alone?
pasteling "gaal" at 192.115.25.249 pasted "attribute_hash.t crasheth" (3 lines, 141B) at sial.org/pbot/13546 07:52
autrijus ghc 6.4.1, win32? 07:53
no local changes? :)
hm, apparently not win32.
gaal yes win32
autrijus mm. 07:54
gaal very *minor* local changes :)
cleaning and remaking.
autrijus rebooting to win32.
gaal eep build hangs? on or just after 07:56
configure: Dependency template-haskell-any: using template-haskell-1.0
whatever, an interrupt and reinvocation worked.
autrijus you are using 6.4.1-release-msi right?
gaal oh wait! i know what we have different.
i was precompiling Test 07:57
autrijus aha!
gaal you prolly weren't.
autrijus indeed.
gaal hmm
suckage.
autrijus try again without precomp test?
I'll try again /with/.
gaal i *like* precomp Test :)
autrijus I know. :)
gaal ok, testing
hmm, fiddling with config.yml triggered a rebuild of syck. 07:58
yeah, it was the precompiled prelude. 08:04
autrijus nah, cabal always rebuilds syck.
and pcre, etc.
hadn't figured out how to stop it
but doesn't hurt too much
gaal well, that's fast at least.
autrijus so precomp test only fails on this single test? 08:05
(I'm still compiling)
gaal i think so, unless there are others with scoping issues. i'll look at the smoke (this is just one that i noticed fail as it was running)
yes, looks like it. 08:06
there are many skips though, which might be crashes before plan, etc.; looking into that now. 08:07
autrijus at this stage I'm probably going to just declare precomp Test noncanonical :) 08:08
since I suspect fixing export can make lots of those issues go away
gaal yeah, that makes perfect sense
sure.
autrijus and aye, I duplicated the bug.
gaal: and the reason is that "is export" is not seen twice 08:11
gaal: I suspect what we really need is a link set semantics. but failing that, a default &import that is reusable.
but both are after 6.2.10
gaal not seen twice? 08:12
autrijus # XXX - FIXME - Here we qualify the Test:: methods, because
# when precompiling Test.pm with prelude (see config.yml),
# export works differently and cause the plan() to be hidden
# (as currently the export only happens at parsing time, and
# precompilation inhibits the reparsing)
svnbot6 r7427 | gaal++ | connect now fails on error
gaal hmmm. non-Test prelude builtins don't have this problem because... they're supposed to be global? 08:13
autrijus yes.
gaal is builtin/primitive
autrijus and we made sure we qualify everything in them
gaal i see 08:14
autrijus anyway, I did what is required as a workaround.
autrijus goes back to chglgng 08:17
svnbot6 r7428 | autrijus++ | * add explicit Test::: qualifier to attribute_hash.t:
r7428 | autrijus++ | # XXX - FIXME - Here we qualify the Test:: methods, because
r7428 | autrijus++ | # when precompiling Test.pm with prelude (see config.yml),
r7428 | autrijus++ | # export works differently and cause the plan() to be hidden
r7428 | autrijus++ | # (as currently the export only happens at parsing time, and
r7428 | autrijus++ | # precompilation inhibits the reparsing)
r7429 | gaal++ | add reason for skip
r7430 | vkon++ | add readline to Pugs.cabal.in 08:23
r7431 | gaal++ | unskip tests; parrot no longer causes hangs here
r7432 | gaal++ | add reason for skip
autrijus vkon: er no, why? 08:27
vkon: build_pugs.pl adds readline if needed
...except it does not. oops. fixing
fixed. 08:29
svnbot6 r7433 | autrijus++ | * instead of adding readline to Pugs.cabal.in, fix
r7433 | autrijus++ | build_pugs.pl so it probes correctly. vkon++!
r7434 | gaal++ | detect missing smoke stuffs and encourage the user to install them 08:46
vkon autrijus: newer GHC more restrictive, and people reported build problem. Its good you fixed it better than I did :) and sorry for delayed answer (PC wasn't prepared) 08:48
autrijus no prob 08:49
vkon++
scook0 autrijus: I'm looking at `parseNoParenParamList` in Parser.hs, and it's turning my brain inside-out
how the heck does it work?
autrijus very carefully.
which part are attacking your brain? 08:50
the first formal<- is merely a sepEndBy
with the restriction that the first part (the ones before :) cannot suffer a dot after a block.
scook0 what's meant by "a block"? 08:51
autrijus foo {}.blah
the {}.blah is a unit 08:52
scook0 oh, that kind of block
autrijus foo:{}.blah
the {} belongs to foo as it can now suffer it.
(please add comments to that effect)
scook0 I shall try
btw, what exactly is it supposed to be parsing? 08:53
a listop-style arglist?
(I'm trying to figure out what all the various `parseParamList` parsers are responsible for) 08:54
autrijus scook0: yeah 08:59
it's a listop style arglist without parens
either with parens already accounted for
or the parenless form
scook0 it seems to be getting called from some weird places though 09:04
autrijus hmmm?
scook0 like after parsing `foo .(` 09:05
shouldn't that be equivalent to `foo(`?
autrijus yes? 09:08
so both calls the same parseNoParenParamList (I think)
scook0 I guess my real question is:
what's the fundamental difference between HasParen and NoParen? 09:09
gaal scook0: how do you tell where it's called from? you mean just grepping the code for references or is there some funky caller()-like debugging trick in haskell i shouldn't know of? :)
scook0 (both in terms of what they do, and who calls them)
gaal: I just use grep
autrijus scook0: HasParen is always surrouded with verbatimParens 09:10
gaal ah, okay :)
autrijus so much so that I think we should factor verbatimParens into it
and inside parens we can suffer everything
foo({})
is just fine
foo({}.bar) too 09:11
so we don't need special directive to support adverbial blocks
foo:{}.blah
I think the ruleBlockLiteral is the only difference 09:12
would be nice to merge them into one
scook0 so really the only difference is that NoParens has to be careful not to swallow `{}.blah`?
autrijus: merging is one of the reasons I'm looking into them in the first place 09:14
autrijus nodnod. 09:15
scook0 what's with (`sepEndBy` symbol ":") anyway? 09:16
what sort of colon is that supposed to be--invocant?
autrijus yeah 09:17
see processFormals
scook0 and processFormals should never get a list of length > 2 09:18
autrijus _ -> fail "Only one invocant allowed"
scook0 yep
autrijus: where do the actual argument expressions get parsed? 09:21
autrijus argBlockish 09:22
and as part of it, argVanilla
scook0 parseTightOp? 09:23
autrijus yeah parseTightOp
oh right, parenless is only tight
scook0 what is parseTightOp? (and parseLitOp etc.)
autrijus and parenful can suffer lit
see litOperators
lit = tight+loose
i.e. all operators minus the list-associative , Y 09:24
scook0 any reason it's called 'lit'?
I didn't realise parseLitOp/parseTightOp were parsing terms, btw 09:26
autrijus please fix them 09:29
ruleLitTerms
"lit" as in "literal"
as in non-list
but this is too vague
maybe "Item".
scook0 I'm still not clear on what parse*Op actually do 09:32
autrijus look at parseOpWith 09:33
there is a buildExpressionParser hidden in it
it takes operator table 09:34
returns something that can parse terms joined together with those operators
the basic term is parseTerm.
scook0 buildExpressionParser is part of Parsec, right?
autrijus yes. it's the reason why pugs exists.
(and partly the reason why you can't parse 1+1 yet with PGE.) 09:35
it's in Pugs.Rule.Expr 09:36
I have tweaked it liberally from basic parsec
scook0 and the three different variants (parse, parseTight, parseLit) exclude 'tightnesses' of operator
autrijus notably with optional prefix and list associations
scook0: yes.
scook0 but essentially you give it a parser for atomic terms and a bunch of operators, and it gives you a parser for arbitrary expressions 09:37
autrijus yes.
scook0 hokay
autrijus tho the alleged "atomic" term is also partly built with buildExpressionParser
it's a self recursive, potentially infinite parser structure. 09:38
(which is why there is no parsec for Scheme... without laziness this can't be expressed easily)
scook0 how about something like 'parseTermWithTightOps' as a name? 09:39
autrijus sure!
fix ahead
scook0 (\_ -> laziness++)
and how about s/parseOpWith/parseTermWithCachedParser/? 09:42
autrijus works for me.
svnbot6 r7435 | gaal++ | revert 7431: this test *does* hang here. 09:52
gaal chromatic, ping 10:26
autrijus lunch, bbiab 10:27
gaal the 'use_ok's in 010_Test_Builder.t confuse the harness somewhat, because they emit a duplicate test header.
autrijus hrmph. 10:28
svnbot6 r7436 | scook0++ | Parser.hs changes:
r7436 | scook0++ | * Rename parseOp & friends to parseExpWithOps
r7436 | scook0++ | * Factor out ruleInvocationCommon & parseParenParamListCommon
r7436 | scook0++ | * parseHasParenParamList now parses its own parens
r7436 | scook0++ | * Move maybeParensBool closer to its (only) caller
autrijus woot, scook0++ 10:29
scook0 thanks 10:30
rafl Good morning. 10:56
Building pugs still doesn't work for me. I get linker errors: nopaste.debianforum.de/1293 10:57
-package plugins fixes some of the errors.
Some others still remain. 10:58
That's the output if I add -package plugins: nopaste.debianforum.de/1294
Any ideas? 10:59
autrijus: Maybe that's related to vkon's and your changes to the build system yesterday.
Ah, -package haskell-src makes the linking work. 11:02
svnbot6 r7437 | rafl++ | * Fix linking errors when compiling with hs-plugins support. 11:10
rafl OK, now it builds fine again. I'll now adjust Makefile.PL to build perl5/ properly and src_to_blib.pl to install the right parts of perl5/*/blib* into blib6/ to install it into a sane location. 11:11
jp-autark Hm, I only get errors like 'Can't exec "./Setup": No such file or directory at util/build_pugs.pl line 83.' when trying to make a fresh checkout of pugs. 11:48
scook0 jp-autark: what command(s) did you use to build it? 11:50
does the file 'Setup' actually exist? 11:51
jp-autark scook0: first, perl Makefile.PL and then make
rafl OK, perl5/ is being built and cleaned correctly now. Now only the installation stuff is missing. 11:52
jp-autark: I suspect there was an error during perl Makefile.PL.
jp-autark the Setup file does not seem to exist.
rafl jp-autark: ghc -package Cabal Setup.lhs -o Setup creates it. 11:53
scook0 it really should be getting generated by Makefile.PL though 11:56
jp-autark rafl: it seems I don't have the Cabal package. 'ghc-6.4.1: unknown package:Cabal' 11:57
scook0 AFAIK, Cabal is part of the GHC distribution 12:00
so maybe there's something wrong with your GHC install
jp-autark seems so. 12:01
scook0 what OS/package are you using?
jp-autark gentoo 12:02
scook0 jp-autark: can you load other packages? 12:05
e.g. $ ghci -package QuickCheck
jp-autark yes, that worked. 12:06
scook0 and $ ghci -package Cabal # fails?
jp-autark yes, unknown package:Cabal
scook0 jp-autark: try $ ghc-pkg list # and see if Cabal shows up there 12:15
rafl jp-autark: Gentoo and other distributions seperate Cabal and other packages from the ghc distribution. 12:16
jp-autark scook0: it does indeed not appear in that list.
rafl I don't know how's the ghc cabal package called in gentoo, though.
svnbot6 r7438 | rafl++ | util/PugsConfig.pm:
r7438 | rafl++ | * Added new 'pugslibdir' variable.
r7438 | rafl++ | util/src_to_blib.pl:
r7438 | rafl++ | * Make it non-fatal if a directory doesn't exist.
r7438 | rafl++ | * Copy over perl5/*/blib{,6,js} to blib6/pugs/.
r7438 | rafl++ | Makefile.PL:
r7438 | rafl++ | * Build and clean perl5/ correctly.
r7438 | rafl++ | * Use ./Setup copy --copy-prefix instead of ./Setup install.
r7438 | rafl++ | * Install built blib6/pugs into $(PEFIX)/share/pugs.
rafl Finally! 12:17
scook0 looks like it's 'dev-haskell/cabal'
jp-autark indeed. Thanks, I will emerge it at once :) 12:18
rafl Sounds good.
Does the perl5 embedding work again with the cabalized pugs?
Doesn't seem so: *** Wasn't able to find 'Perl5_stub.o', aborting...
jp-autark Thank you, it's now compiling pugs again. 12:21
scook0 autrijus: it seems that a lot of the complexity in HasParens/NoParens comes from trying to parse arbitrary numbers of invocants 12:22
which I dont' think makes sense anymore, since there's now only one level of 'invocant-ness', and it can only have one invocant 12:23
autrijus scook0: yes, indeed 12:58
so if you'd like to decomplex it by reducing the invocness, you have my blessing 12:59
rafl: wierd. 13:04
rafl: build_pugs line 123 should take care of that. trace a bit?
clkao will js backend pass all test for this release? 13:07
autrijus cf. smoke.pugscode.org 13:08
still some miles to go
bbiab & 13:09
rafl: btw, you are using Cabal-1.0 right? 13:12
I'll retest Cabal-1.1.3 when I get back
dotato20cm viva perl6! 13:14
pdcawley Does anyone know of anyone who might want to sponsor the Perl 6 Summaries? perl.com has had a resource squeeze and one of the things that didn't survive was the summary. 13:15
svnbot6 r7439 | scook0++ | More Parser.hs changes: 13:16
r7439 | scook0++ | * Make parseHasParenParamList much simpler
r7439 | scook0++ | (this might cause very subtle changes in arglist parsing)
r7439 | scook0++ | * More code now uses parseHasParenParamList
scook0 pdcawley: :( 13:17
pdcawley Yeah. Up until they stopped, that and savings was my only income. 13:18
The fact that I've got about two years of uninvoiced back issues to get through is something of a buffer, but still, far from ideal.
joao pdcawley, what sort of values are we talking about? 13:21
michael hello camels
scook0 'night all 13:24
pdcawley They were paying me $250/summary 13:28
I can't very well apply to TPF for funding 'cos I'm on the grants committee that'd decide if I got it. 13:30
rafl autrijus: Care of what? 13:40
autrijus: Cabal-1.0, yes.
autrijus: Oh, you mean the perl5 embed build error? That one was fixed by cleaning the source tree first. 13:41
svnbot6 r7440 | rafl++ | r16858@ata: rafl | 2005-10-08 15:06:18 +0200
r7440 | rafl++ | Debian:
r7440 | rafl++ | * New package 'libghc6-pugs-dev' for the haskell interface to pugs.
r7440 | rafl++ | * Added debian/libghc6-pugs-dev.install accordingly.
r7440 | rafl++ | * Added usr/share/pugs/* to pugs-modules.install
r7440 | rafl++ | * New install-stamp rule in debian/rules to get rid of the double-dh_install.
r7441 | rafl++ | r16859@ata: rafl | 2005-10-08 15:39:54 +0200
r7441 | rafl++ | Debian:
r7441 | rafl++ | * New changelog entry for 6.2.10.
r7441 | rafl++ | * Install stuff for libghc6-pugs-dev into /usr/share/haskell-packages/ghc6/lib.
r7441 | rafl++ | * Install .installed-pkg-config in Debian rules. 13:42
r7441 | rafl++ | * Added prerm and postinst script for libghc6-pugs-dev to register the ghc
r7441 | rafl++ | package with ghc-pkg.
rafl autrijus: pugs doesn't use that pugs library yet, does it? 13:43
autrijus: Seen my recent changes to the build-system? I install perl5 into /usr/share/pugs/{perl5,perl6,js} now. I'm not sure if pugs finds it there if it's installed. I guess not. 13:44
autrijus: Would be nice if you could take a look because I don't know much about what perl5/ does at runtime. 13:45
The debian/ dir is now kind of suitable for the release imho. Given that noone changes the build-system again. :-) 13:47
wolverian rafl++ # awesome! 13:51
14:19 ods15_ is now known as ods15
xinming_Beijing isn't pugs still unable to be built? 14:49
oops. I mean can't be built. 14:50
rafl xinming_Beijing: Works fine for me ATM. 14:57
xinming_Beijing But It doesn't compile here. hmm, I use Debian, And installed 6.2 version of ghc. And I compiled 6.4 myself... And use $GHC environment variable. But now, It seems it uses the old(6.2) version of ghc... 14:59
rafl Well, sid and etch have ghc6.4. 15:00
iblech rafl: Fixing src/Pugs.hs to find {jspugs.pl,runjs.pl,pugs-p5.pl} again currently
xinming_Beijing ghc-6.2.2: unknown package name: mtl
rafl iblech++; #Yay!
xinming_Beijing That's the error message.
autrijus xinming_Beijing: ghc 6.2 can't build pugs for quite a while now
eric256_ what syntax does pugs use for including perl5 modules? use Blah-perl5; ?
iblech eric256_: use perl5:Blah 15:01
autrijus xinming_Beijing: I wonder why... have you left old ghc in path?
xinming_Beijing autrijus: yes, I know, So I compiled ghc 6.4 myself.
rafl eric256_: use perl5:Foo::Bar
eric256_ ahh i thought it had switched at some point
xinming_Beijing and export the $GHC environment variable
autrijus eric256_: yes it had, back in toronto
xinming_Beijing: oh hm, so maybe it's not picking it up
rafl: /usr/share/pugs is your invention right? 15:02
xinming_Beijing autrijus: yes, so, I wonder if the modification do delete the usage of $GHC.
autrijus rafl: I made it so it installs into /usr/local/lib/perl6/site_perl/perl5 here
rafl: i.e. same as sitelib but s/perl5/perl6/ and append "perl5"
rafl: what's wrong with this arrangement?
rafl autrijus: Well, FSH invented it.
eric256_ thanks
rafl autrijus: Think of "use perl5::Perl6::MetaModel" 15:03
autrijus: That's not what you normally want.
autrijus: The perl5 stuff seems only to be used internally and isn't needed for people who want to code perl6.
autrijus: And it's arch-independent. Therefor it should be in /usr/share/pugs, IHMO. 15:04
autrijus if so then we'd move the rest of /usr/local/lib/perl6 into /usr/share/pugs
the perl5 stuff is used internally, for sure
I can see CORE/perl5/ 15:05
there are certain directories, like CORE and auto
that in perl5 was also marked for internal use only.
CORE is fine by me.
but I'd still want it to be in sitelib
rafl Why?
autrijus hm, I'm not making sense. 15:06
rafl /usr/{lib,share}/perl6 isn't specific to parrot. I think everything should remain where it is.
s/parrot/pugs/ of course. :-)
autrijus ok. my rationale is as such 15:07
in the next release I'd like the existing perl5 to be true CPAN modules
so they can be used outside pugs
so seeing in this view, maybe they should be installed into the perl5 -- not perl6 -- sitelib. 15:08
rafl Fine. Then they don't need to be installed by pugs and we don't need to care where to install them.
15:08 Lopo_ is now known as Lopo
autrijus yes. 15:08
so what we are doing now is interim
I can see two places
one is in perl5 sitelib under the pugs/ namespace
site_lib/pugs/perl5/PIL-Run 15:09
rafl Do you really want to install JavaScript into perl5 sitelib?
autrijus another is somewhere in perl6 lib.
why, yes, why not.
they are js data used by a p5 module.
CGI::Ajax.
rafl Sounds reasonable.
autrijus and we already claim pugs.pm namespace
rafl I'd prefer /usr/share/perl5/Pugs/ then. 15:10
autrijus lowercase.
rafl Thought those names were reserved for pragmas.
autrijus pugs.pm is a pragma that enables lexically-scoped perl6 code.
rafl pugs.pm is, pugs::Perl6::MetaModel not. 15:11
autrijus what if I put it into auto/pugs/?
it's the customary data dir for cpan modules.
rafl Good idea!
autrijus okay. sitelib/auto/pugs/perl5/*
it is.
in p5 sitelib. 15:12
rafl Yes.
autrijus thanks for the brainstorming :)
please modify your changes
rafl You only need to change the pugslibdir in util/PugsConfig.pm for that.
autrijus I'll fix the hs side to locate them.
cool
xinming_Beijing autrijus: hmm, by the way, Could you please tell me where to find the information about Makefile.PL 15:13
rafl Could you please change the path? I'll be offline in some seconds.
autrijus rafl: sure!
xinming_Beijing How do I create my own please?
rafl Thanks and good bye.
autrijus rafl++
xinming_Beijing: hm? for your own module?
rafl xinming_Beijing: perldoc ExtUtils::MakeMaker
autrijus perldoc perlmodlib
rafl xinming_Beijing: perldoc Module::Build Module::Install, etc. 15:14
autrijus xinming_Beijing: anyway, the GHC probe is on inc/Module/Install/Pugs.pm
line 151
can you trace and make sure it found the right ghc?
I can test it when I'm back from sauna
which is to say ~40min from now
xinming_Beijing autrijus: Ok, I will try anyway
autrijus xinming++ 15:15
rafl autrijus: Oh, please think about that the files are in different locations if installed with different INSTALLDIRS arguments. 15:18
It's in /usr/local/share/perl5/ for INSTALLDIRS=site and /usr/share/perl5 for INSTALLDIRS=vendor 15:19
autrijus: Maybe the haskell code should look at the whole perl5 @INC.
meppl is it possible to lock variables for shared variables? 15:24
xinming_Beijing the module can detect the right ghc, But the problem is, It seems that Makefile doesn't use that correctly, Just use the variable from .setup-config 15:38
hmm, the config from .setup-config
geoffb <rez> 15:39
Autrijus, I noticed you pinged, but I haven't backlogged yet. Should I test a dual-embed?
geoffb assumes no comment is good comment, and starts a fresh build 15:44
nothingmuch morning
geoffb morning, nm 15:45
geoffb is in and out, dealing with morning kiddo routine
nothingmuch is planning the intricate details of a trip to the stapler
turns out this paper I stabled only several days ago is falling apart (!!!)D 15:46
tr/b/p/
meppl oh 15:59
never mind
eric256_ perlbot nopaste
perlbot Paste your code here and #<channel> will be able to view it: sial.org/pbot/<channel>
nothingmuch eric256_: use pbotutil
pasteling "eric256" at 24.8.74.230 pasted "Optimized Build error on win32" (12 lines, 560B) at sial.org/pbot/13550
nothingmuch it makes life easy 16:00
eric256_ thanks
any ideas on the error? 16:02
nothingmuch doesn't know about windows stuff
i see some sh code in there, which sounds odd for windows 16:03
eric256_ doesn't either ;)
nothingmuch dir was unexpected at this time.
that looks like 'for dir in ...'
which probably doesn't make sense for nmake, or cmd.exe or whoever is running the subcommands 16:04
eric256_ yea
hmmm maybe someone changed pl2bat?
nothingmuch doesn't know what that is 16:05
eric256_ this doesn't make any sense 16:08
the only pl2bat.bat i could find was in my perl5 bin directory
and neither it nor the script referencec (pugscc) have that line of code in them 16:09
xinming_Beijing eric256_: hmm, IMHO, it's impossible to convert the real program into bat...
eric256_ it doesn't and i'm not trying to. thats what nmake does while building pugs 16:10
nothingmuch eric256_: svk log -x Makefile.PL
maybe someone made a unix-centric change
eric256_ pl2bat.bat just wraps a perl script in the batch file
hmmm looks like maybe they did...wife is dragging me out of the house...i'll check on it later 16:11
16:21 nothingmuch is now known as elmex____ 16:22 elmex____ is now known as nothingmuch
autrijus xinming_Beijing: a 'clean' should clean out both 16:33
but I know -- did you first run Makefile.PL once without setting env GHC?
if so the ./Setup will inherit the 6.2.2 config.
xinming_Beijing autrijus: hmm, I've done make clean before do perl Makefile.PL 16:40
But the problem still exists. So, this time, I am trying to get the "fresh" one... hope it works. the Internet connection here is poor, So, still downloading...
hmm, and also 16:43
export GHC=${HOME}/local/ghc/local/bin/ghc
this line is in my .bashrc
autrijus hmmm. 16:44
pasteling "geoffb" at 69.110.115.185 pasted "Dual-embed/optimized failure with 7441" (260 lines, 29.1K) at sial.org/pbot/13553 16:50
geoffb bak for a while
xinming_Beijing autrijus: hmm, In fact, here is a small trick I found. Everytime, we have to do `svn update && make && make install` for pugs.
I just do a symbolic link to the pugs binary in /usr/bin/ 16:51
and we just do `svn update && make` for now... And don't need to copy the files into destination dir... :-) well, In fact, Just it's my habit... :-S 16:54
autrijus geoffb: hm, I suspect scook broke the parser somehow. 16:57
svnbot6 r7442 | iblech++ | * Usual svn props.
r7442 | iblech++ | * Perl6::Pugs: Added link to GMane's archive of perl.perl6.compiler.
r7442 | iblech++ | * util/gen_prelude.pl: Remove the tmp-Prelude.pm when it is no longer required.
r7442 | iblech++ | * PIL2JS: jspugs.pl, runjs.pl, PIL2JS.pm: Support for running from "make
r7442 | iblech++ | install"'s locations (previously, extra code was not necessary, as the
r7442 | iblech++ | installed path structure was the same as the sourcedir path structure).
r7442 | iblech++ | Note: -BJS still can't find jspugs.pl and runjs.
r7442 | iblech++ | Note: PIL-Run still doesn't work with the new hierarchy. 16:58
geoffb autrijus, bleah. Have not finished backlogging. Was that during today, or earlier this week, but I just didn't notice because of yesterday's failed builds?
autrijus during today 16:59
let me see
I get the error. 17:02
svnbot6 r7443 | autrijus++ | * remove unportable chunks from perl5 buliding to make win32 happy. 17:03
autrijus reverting.
geoffb OK, building from 7443 17:05
autrijus yeah, it was r7439. 17:06
er no
(this might cause very subtle changes in arglist parsing)
scook: it did and I had to revert it
nothing personal 17:07
geoffb: you want 7444
geoffb OK, halting and pulling
nothingmuch wht a screwed up weekend 17:08
svnbot6 r7444 | autrijus++ | * revert r7439 as it breaks prelude parsing. Sorry.
geoffb nothingmuch, are you referring to the build pain? 17:11
nothingmuch no, to my own life
i got absolutely nowhere
had concentration trouble all the way through
the only productive time I had i wasted on rules.t
geoffb ah 17:12
bleah
nothingmuch btw, autrijus what do you think of my email? 17:13
autrijus nothingmuch: what email? 17:14
type anno?
nothingmuch no
the one about rules.t to p6c
autrijus can you elaborate the linearlized $1$2$3 more? 17:17
example?
nothingmuch well, $1 can be either $/[1] or $/[0][0] 17:18
you can't know which is the right one to be checking without parsing the regex
autrijus point.
I think your reasoning is sound. 17:19
maybe indeed converting t/rules/from_perl6_rules/ is more fruitful. 17:20
but I still think it's valid to make perl6.t available 17:21
nothingmuch what are those?
autrijus especially the :todo ones
those are from damian's tests for Perl6::Rules
nothingmuch ah
oh my, lots of side effect stuff
geoffb Hot damn! It built!
autrijus geoffb: woot!
we reached the gholy rail! 17:22
geoffb Seeing rafl and autrijus have made install changes, I'll clean up and do a make install
heh
svnbot6 r7445 | autrijus++ | * fix pugslibdir path. now going to look for them correctly... 17:26
geoffb Version: 6.2.9 (r7444) 17:27
Hmmm, from install, I'd say we've got a wierdness now: some stuff in /usr/share/ and some stuff in /usr/local/share.
IMHO a manual build should default to /usr/local/share, and debian can override with /usr/share 17:28
But in either case, consistent
autrijus what are in /usr/share? 17:30
I thought I squashed those
two rev ago 17:31
geoffb /usr/share/pugs/... looks like the PIL2JS and PIL-Run and MM stuff
ext/ went into /usr/local/share
autrijus geoffb: that I fixed 17:32
if you rerun Makefile.PL that should not happen
geoffb I did, and do, every time.
I can do again from scratch here . . . .
autrijus nod...
yeah, I think I fixed that in 7445. 17:33
geoffb Ah, I had 7444.
pulled 7445, rebuilding
and away we go . . .
gaal meow 17:40
nothingmuch autrijus: for Perl6::Rules I have a better idea: 17:44
just rewrite Perl6::Rules with a PGE backend 17:45
it'll make it both useful for perl 5
and easily testable
i think we could also simplify it with the constant overloading trick that e.g. NamedCapture uses 17:47
nothingmuch goes to ride bike and contemplate dinner
18:34 _SamB_ is now known as SamB
geoffb OK, so now all .hi files are in /usr/local/share/perl/5.8.7/Pugs-6.2.10/, all ext/ in /usr/local/share/perl6/, and the backends in /usr/local/share/perl/5.8.7/auto/pugs/ 18:47
autrijus, rafl: is that what you intended? 18:48
autrijus geoffb: yes.
excellent
geoffb alright, great! 18:49
autrijus I hope it's somewhat acceptable to you.
geoffb I'm a little battle-weary this morning, so I'm not too worried about details. My big happy is that it's all localized in /usr/local/share at least 18:50
autrijus :D
which sys is this?
geoffb Debian etch w/ sid bits
Built standard way, instead of using debian/rules, of course
autrijus hm 18:51
the .hi bits is redundant.
geoffb ?
autrijus they will be installed into ghc libs anyway
can you rm them from /usr/local/share/perl/5.8.7/Pugs-6.2.10/
and put a test.hs:
import Pugs
main = pugsMain
and then compile it:
ghc --make test.hs
./a.out
and see if it works?
geoffb OK, .hi's deleted 18:52
Going somewhere outside of pugs tree to create test
oh, duh, need to register to do this 18:53
BAH 18:54
you can't make register after deleting those files:
./Setup register
Registering Pugs-6.2.10...
Reading package info from ".installed-pkg-config" done.
ghc-pkg: /usr/local/lib/Pugs-6.2.10 doesn't exist or isn't a directory
make: *** [register] Error 1
make install'ing again
D'oh! 18:55
'make register' has the wrong place. It's expecting /usr/local/lib, into which nothing has been installed
you're up, autrijus
:-)
autrijus hmmmm.
I blame ghc-pkg
just to humour me, mkdir /usr/local/lib 18:56
make install and make register, see if that works.
geoffb There already was a /usr/local/lib (standard in debian FHS)
autrijus grep copy Makefile 18:57
see what your copy-prefix is
append that to ./Setup register
geoffb sorry, multitasking with child-wrangling 18:58
autrijus that's entirely fine
mm rafl made my life very intersting.
but for good cause, no doubt about that
geoffb nodnod 18:59
Interesting. copy-prefix=$(DESTDIR)
DESTDIR seems to be nothing
autrijus wow indeed. 19:01
svnbot6 r7446 | iblech++ | * Usual svn props.
r7446 | iblech++ | * PIL2JS: pil2js.pl: Be able to be run from $pugslibdir.
r7447 | iblech++ | * util/PugsConfig.pm: Very minor comment fix.
r7447 | iblech++ | * src/Pugs/Run.hs: Include $pugslibdir/perl6 in the default @*INC.
r7447 | iblech++ | * src/Pugs.hs: Find jspugs.pl, runjs.pl, and pugs-p5.pl even if $sourcedir
r7447 | iblech++ | had been deleted and thus $pugslibdir has to be used.
autrijus what is rafl smoking?
svnbot6 r7447 | iblech++ | The patch is a bit hacky (for example, pugs-p5.pl is searched for in --
r7447 | iblech++ | amongst other dirs -- PIL2JS), but seems reasonable given that the directory
r7447 | iblech++ | structure of $sourcedir doesn't match the one of $pugslibdir.
r7447 | iblech++ | Note: PIL-Run still can't be run from $pugslibdir.
r7447 | iblech++ | Note: pugs::hack is not yet updated WRT the recent dir moves.
autrijus oooh iblech++
geoffb: try this
./Setup install
./Setup register
both as root
geoffb I'm using sudo, but same diff 19:02
autrijus k
geoffb Now that worked
trying to make test file again
Woah:
Chasing modules from: test2.hs
Compiling Main ( test2.hs, test2.o )
Linking ...
/usr/bin/ld: cannot find -lparrot
collect2: ld returned 1 exit status
I guess it's the dual-embed 19:03
um, right, which -L to use
autrijus -L/path/to/parrot/blib/lib 19:04
or ldconfig it
your choice
geoffb used first option 19:05
Got a little further:
Chasing modules from: test2.hs
Skipping Main ( test2.hs, test2.o )
Linking ...
/home/geoff/svk/parrot-trunk/blib/lib//libparrot.a(global_setup.o): In function `create_config_hash':
src/global_setup.c:34: undefined reference to `parrot_get_config_string'
collect2: ld returned 1 exit status
autrijus right
geoffb brb
autrijus add /path/to/parrot/src/parrot_config.o 19:06
to the ghc line
rafl: I'm reverting your "copy" fix.
rafl: we need to let GHC manage and take over.
and --copy-prefix=(nothing) does not help
rafl: if there is no prefix, we can't have --copy-prefix 19:07
as it will use '.' as the prefix 19:08
sad but true
geoffb OK, ghc --make -L/parrot/blib/lib test2.hs /parrot/src/parrot_config.o linked 19:09
autrijus is there a portable way in make to test that?
geoffb And it runs pugs!
whee
autrijus $copy = $DESTDIR ?? "--copy-prefix=$DESTDIR" !! ""
something like that
geoffb: whee.
geoffb: good, then all the heart wrenching in the past three days is worth it :D
geoffb :-)
nodnod
xinming_Beijing autrijus: hmm, what does ghc-pkg command do for pugs please? 19:12
coral parrot can run pugs?
autrijus coral: or vice versa, but yes
coral neat
autrijus xinming_Beijing: it registers pugs into the GHC package db
xinming_Beijing I think, the modules you told me to check is right. But for Makefile, It still use the ghc-pkg command in system instead of the version I compiled 19:13
autrijus xinming_Beijing: aha. 19:16
xinming_Beijing: see nc/Module/Install/Pugs.pm
xinming_Beijing: see inc/Module/Install/Pugs.pm
line 183
it detects $ENV{GHC_PKG}
xinming_Beijing But... I try to make a synbolink to the ghc-pkg-`version` But still fails. 19:17
autrijus xinming_Beijing: can you trace line 188? 19:18
svnbot6 r7448 | iblech++ | pugs::hack, perl5/PIL2JS/README: Updates WRT the recent dir moves.
autrijus $ghc_pkg =~ s/\bghc(?=[^\\\/]*$)/ghc-pkg/ # ghc-6.5 => ghc-pkg-6.5
or $ghc_pkg = 'ghc-pkg'; # fallback if !/^ghc/
I _think_ it is doing something bad for you
put a "die $ghc_pkg" after that line.
rafl: I'm also thinking that, if Cabal's 19:22
./Setup install
xinming_Beijing autrijus: It will die, Is it right?
autrijus does register implicitly
xinming_Beijing: er, yes, but die with that?
rafl: then our install shall do the same.
I'll make that so.
xinming_Beijing autrijus: the ghc I compiled.
autrijus xinming_Beijing: so it is the right one?
xinming_Beijing autrijus: hmm, But the .setup-config still filled with wrong ghc and ghc-pkg 19:24
autrijus xinming_Beijing: I got it. sec
yeah
fixing
cognominal what means "restarted _SOME_DATE" in STATUS? 19:26
MM stands for multimethods? 19:27
autrijus cognominal: aye 19:31
xinming_Beijing: fixed. committing 19:32
xinming_Beijing autrijus: where the problem is please?
Khisanth really? I kept thinking it was for MetaModel :/ 19:33
autrijus er 19:34
it is metamodel in STATUS context. ;)
sorry.
xinming_Beijing: the problem is that ./Setup --configure 19:36
needs to be told of where ghc etc is
cognominal I am frilled to see autrijus tackling types
autrijus I'm very much looking forward to it, but MM and containers have precedence. 19:37
one thing at a time :)
cognominal :)
autrijus and we need to do something about rules some day.
geoffb Man, I wish I had the tuits to work on rules. I would learn *so* much. 19:38
Alas, ETOOFEWTUITS
autrijus xinming_Beijing: retry 19:39
geoffb cognominal, when I say "restarted SOME_DATE" in STATUS, I meant that something had been stalled or blocked, and work started back up at that time
autrijus r7449
cognominal geoffb: thx for the explanation
geoffb sure 19:40
autrijus iblechbot: got tuits to get -BPerl5 running under the new arrangement as well?
geoffb: what's your next column about? 19:41
svnbot6 r7449 | autrijus++ | * xinming++ for pointing out that for nonstand GHC locations,
r7449 | autrijus++ | our ./Setup configure did not catch any them up. This should
r7449 | autrijus++ | fix it for real.
autrijus wow, that was extra bad spelling.
xinming_Beijing autrijus: might works... :-)
autrijus xinming_Beijing: woot 19:42
xinming_Beijing +++++++++++++++++++++++++
:-)
geoffb autrijus, I'm thinking of "After -Ofun: Thoughts on optimization" 19:43
A column about code optimization. 19:44
autrijus interesting
what are the metrics?
geoffb After that, I need some more subject ideas, since I haven't been reading tech news for a week now to conserve tuits, so nothing is triggering.
Hold on a couple minutes, I'll toss an URL at you with my notes 19:45
autrijus k
mm the law of conservation of tuits
geoffb :-)
autrijus greetings luqui
luqui gurreetings! 19:46
autrijus how's $work -- I mean $school?
luqui Okay. Requiring much loss of sleep.
But I caught up today, getting 14 hours.
Today, I'm going to port L::AG to parrot. 19:47
autrijus does it work in reasonable space for p5 already? 19:48
luqui no
autrijus mm.
luqui I couldn't decide which to do first
autrijus neither al or pm has been porting L::AG to parrot?
luqui neither understand the algorithm. al wrote a little grammar for it
to which I replied "it's probably best not to have a grammar at all" 19:49
autrijus oh?
combinators?
AG combinators would be interesting idea
luqui uh, yes, "combinators" 19:50
(not really)
(just a proceduralish interface: add_rule, add_type and whatnot)
autrijus ah, stateful combinators 19:51
aka knobs
cool
geoffb
.oO( The Asymmetric in ADSL is an understatement . . . )
autrijus you know you're too much a programming language geek when you see ADSL and parses "Attributive Domain Specific Language"
luqui haha 19:52
geoffb *smirk*
autrijus which, in a way, is what AGs are
luqui: actually your work complements hers.
luqui: given a grammar, a reasonable visitor can turn an external AG document into procedural calls 19:53
luqui sure 19:54
autrijus luqui: anyway, I'd love to hear about your experience of parrot porting. my bias is that exploratory programming in PIR is pain, so I'd probably code up the algo first in something else
luqui you mean like Perl5? 19:55
autrijus luqui: but that is just bias and not founded, so if your experience turns out otherwise
luqui :-)
autrijus then I'd be glad to hear about it
xinming_Beijing autrijus: works for now...
autrijus yeah, I mean like p5.
xinming_Beijing: nice
luqui thinks PIR is probably a pain too, and cringes when al says something like "we could implement a subset of Perl for AGs"
(when brainstorming what to put inside the syntax, which caused me to propose the syntaxless formation) 19:56
svnbot6 r7450 | iblech++ | PIL-Run: Ability to be called from $pugslibdir instead of $sourcedir. 19:57
r7450 | iblech++ | * Was easier than adapting PIL2JS (no precompiled Prelude,Test, no special
r7450 | iblech++ | JS Metamodel handling)
r7450 | iblech++ | * This means -[BC]{Perl5,JS} work with an installed Pugs again :)
cognominal hum, EHC seems to be based on AG
autrijus luqui: well, that's her plan all along
a subset of perl, that is
luqui I guess so 19:58
autrijus it'd be interesting to see how it unfolds
cognominal www.cs.uu.nl/wiki/Center/AttributeGrammarSystem
autrijus cognominal: yes, I've been playing with UUAG
and I think it's promising to use as eg the typechecker for pugs
as well as other semantic analysis.
...and nothingmuch, upon hearing that, went ahead and did exactly that. 19:59
for blondie
cognominal how can you learn all that ... and program? beats me.
integral no one's done any work on porting ghc/jhc/ehc/hugs/nhc to parrot yet?
autrijus integral: no, parrot codegen was not feasible really
integral :-( 20:00
autrijus 0.3.0 is already much better, and hopefully 0.3.1 will come with variable-sized registers and sane lexical pads
without the former you can't use CCs reliably
integral I didn't realise the situation was quite that bad
autrijus without the latter you can't gen closures efficiently.
it's only bad for functional languages ;)
it already go a quite reasonable procedural/primitive OO set of features.
cognominal: by not doing much else, of course 20:01
integral hmm? do you mean something where you don't have thousands of very small closures generated all the time?
autrijus integral: aye
geoffb Outlinish notes for next week's blog, thoughts/additions VERY welcome: www.broadwell.org/graphics/pigge/do...notes.html
integral jhc doesn't avoid that? I thought whole program analysis could sequence lots of stuff and figure out when they'd be forced so you wouldn't really need to generate the closures 20:02
autrijus integral: oh, jhc can use parrot as C
I don't think it will be efficient.
I'd like a better Grin->Parrot
having a CPS engine and not using CCs is... weird :)
integral hehe 20:03
autrijus also not if you want to respect the calling conv
for interop
integral personally I think the whole interop thing is better just ignored, and each language use FFI-style declarations to call across language barriers 20:04
geoffb autrijus, see link from 2-3 min ago.
autrijus geoffb: already looking 20:05
geoffb (y)
autrijus integral: FFI has C as lowest common denom
integral: CLR proved they can do richer types and better object semantics.
also neat things like named parameters and optionals 20:06
cognominal UUAG is under the Artistic license, good karma :)
autrijus cognominal: yes :D
integral autrijus: I wasn't thinking quite down to C, but something like the current parrot conventions, but in the HLL you'd just explictly declare which entry points to generate as language unspecific
ie it could be bolted on once parrot actually worked
autrijus geoffb: wow, it's huge. you sure it will fit in 1 column?
integral: I tend to agree with you.
integral: but in dynam lang 20:07
it's very common to conjure up random functions
and/or oebjects
and it'd be best to have the glue generated for them
not explicitly declared
integral hmm, so you'd need some kind of dynamic exporting system too, you couldn't have all those thunk glue pre-generated
autrijus right, exactly
I did that with Inline::MzScheme
geoffb autrijus, that's part of my problem. I got started, and then just kept going. At this point, I'm considering one of two options: 20:08
autrijus it is doable just tedious.
geoffb 1) Break into multiple columns
2) Do one column, which is a general overview, with a link to more detail.
geoffb not sure about which, but definitely would like to fill in the outline some more in either case. It's got some big gaps because I skipped around as things came to mind 20:09
autrijus geoffb: I think multi work 20:10
each section is compartmentized 20:11
so you can cover a few eac
h
geoffb If I do it as multi, I *definitely* need to fill in more, so that no one column feels week 20:12
autrijus yeah. I tihnk fill in some more and split in 2
geoffb BTW, what do you think of the content so far?
svnbot6 r7451 | autrijus++ | * rule_used_in_Str fails back to using PGE; if it's not there
r7451 | autrijus++ | we need to skip it.
autrijus geoffb: I think it want one or more running case studiess. 20:13
geoffb hmmm
autrijus not in much detail
just a theme you can use to illustrate points
geoffb That's starting to move from blog to article, but you've got a point
nodnod
autrijus otherwise it'd feel like nothingmuch's "sex in the 70s" talk.
the first half of it anyway
geoffb ?!?
autrijus (he had a talk about complexity management in yapcna; the first half is lots of general abstract points, but the case study did not appear in full until later) 20:14
geoffb ah
hmmm, good point
autrijus but this is blog, so you don't need to explain in any detail 20:15
just random finger pointing will do.
as we know, that's what blog is best about.
;)
geoffb is better at "short article" style blogging than "link slut" style blogging 20:16
autrijus nod 20:17
in -Ofun, for each abstraction you added one or more case example 20:18
it reads very well.
geoffb nodnod, and thx
autrijus excellent, my .tw server of autrijus.org died. 20:21
geoffb Man, you have the worst computer luck . . . 20:22
autrijus don't mention it ;) 20:23
autrijus triggers evacuation settings
geoffb ?
autrijus mail forwarding and web forwarding etc 20:25
geoffb ah
autrijus btw, does irc.pugscode.org workforyou? 20:26
geoffb could not be found
autrijus mm 20:27
dns takes time to propagate I guess. 20:38
integral depends on the TTL on the records...
autrijus goes back to pugs 20:45
sigh.
obra heya autrijus 20:46
autrijus yo obra.
obra How's it going?
autrijus autrijus.org just died.
obra urgh
backups?
autrijus sure
but in .tw
obra wonders if after pugs you want to do a distributed server project
seriously bummed to hear that, though. 20:48
anything you need?
autrijus: What did you use to make your Takahashi Method slides? 20:49
autrijus obra: OOo Impress
and whilst downloading it, MS Powerpoint.
obra nod
autrijus but the outline is done in vim first
as usual. 20:50
obra *nod*
obra ponders vim with ^l inserted and a huge font
autrijus may not be a bad idea. 20:51
luqui decides to rewrite L::AG in Perl first before doing it in PIR 20:58
maybe I can convince pm or al to do it in the mean time :-)
autrijus resists an attempt of joking about mean time and average time. 20:59
gaal: I forcibly fixed the Prelude trans to cure trans.t
hm, somehor Arcfour insists going back to failing. I thought I fixed the subclassing bug already...
wolverian hm, does gobby use the same protocol as moonedit/subetha? 21:00
(rather OT..)
autrijus subetha sends frozen cookies around 21:01
so I doubt so
obra wolverian: no. it does not 21:03
none of the tools share a protocol
wolverian hm 21:06
that is not very logical. :) 21:07
obra why? the're different products from different vendors with no speced protocol? 21:09
s/?$/./
wolverian it is not very logical from the consumer's point of view 21:15
going to sleep, now, bye :)
obra Welcome to software. 'night
luqui ?eval 3 but { $_ += 1 } 21:41
evalbot_7451 Error: Can't modify constant item: VInt 3
luqui ?eval my $x = 3; $x but { $_ += 1 }
evalbot_7451 Error: Can't modify constant item: VRef <Scalar>
luqui ?eval my $x = 3; $x but { $_.say } 21:42
evalbot_7451 3 \3
svnbot6 r7452 | autrijus++ | * Use brute force to solve the .trans problem. 21:49
rmoriz hi 21:56
rafl autrijus: Please set a default DESTDIR of none is set. 22:13
autrijus: And don't do register when installing. At least not with a way to disable it. Otherwise there are major problems when packaging it for Debian and other systems.
autrijus rafl: what should the default be? 22:14
rafl: do you always trigger vendor install? 22:15
clkao strange. i have conflicts when updating pugs
autrijus mmmm?
rafl autrijus: /usr/local/. Or run install instead of copy if DESTDIR isn't set. 22:16
clkao Pugs.hs somehow got changed?
or is it svk bug?
autrijus I have no idea
I don't think install changes Pugs.hs
rafl autrijus: Yes. /usr/local/ is reserved for site local stuff in Debian. Everything goes into /usr/ therefor.
clkao are you on latest svk?
autrijus clkao: ye
trunk
clkao ya, runing perl makefile.pl changes pugs.hs
autrijus rafl: okay, let me recap: have a "register" target 22:17
clkao: uh how?
rafl: and for "install", detect for DESTDIR
if it's there, revert to "copy".
rafl autrijus: Yes. It would also be good to remove pugslibdir from util/PugsConfig.pm and install blib6/pugs into \$(DESTDIR)$config->{sitelib} or \$(DESTDIR)$config->{privlib} according to type of install (site/vendor) 22:18
autrijus aw my head. 22:19
rafl Err, why? :-)
autrijus just as when iblech changed things meticulously to make pugslibdir work...
rafl Hrm, right. 22:20
Then let's set pugslibdir to sitelib or privlib? 22:21
Which would be hard because we don't know that in PugsConfig.pm.
How about using the whole perl5 @INC? I think that's more robust and it still works if we put the perl5/ stuff on CPAN for the next release. 22:23
autrijus you mean search for auto/pugs/ in all INC? 22:25
can we spare ourselves for this release? I really want to get it released :) 22:26
I can fix the register thing.
rafl Well, I would have large problems in getting 6.2.10 into Debian if it hardcodes /usr/local/ somewhere. 22:28
Differenciating between sitelib and privlib would be enough for this. 22:29
autrijus wait, where do we yet hardcode usrlocal? 22:33
rafl $Config{sitelib} which is /usr/local/perl5 for Debians perl. 22:35
util/PugsConfig.pm:37
Or /usr/local/share/perl5. I don't remember exactly. 22:36
autrijus pouts 22:37
I think we still want a pugslibdir; maybe we can list both directories
so it gets searched
however, searching all of @INC for auto/pugs/ is clearly more portable. 22:38
but pugs doesn't know perl5's @INC.
so maybe you give me a set of possible pugsconfig keys
and I search those appended with auto/pugs/.
and then you can go ahead and fix the Makefile targets. 22:39
dduncan I posted another smoke, of 7451
it looks like someone else did too, but we got rather different results 22:40
rafl autrijus: $Config{sitelib} and $Config{privlib} should be enough. 22:41
autrijus rafl: okay. do you have a second to do the Makefile.PL / PugsConfig side change?
I'll fix the hs side.
rafl Unfortunately not. Tomorrow morning at the earliest. 22:43
dduncan there were 2 repository snapshot / darwin, Normal runcore, r7451 ... 90 min and 10250 succ, 60 fail ... vs 31 min, 9874 succ, 436 fail
rafl OK, so sorry inconveniences and good night.
autrijus rafl: no compromises is a good thing. :) 22:44
dduncan mine is the 90 min
autrijus thanks for your infinite patience.
integral dduncan: is that 90 min on ~1GHz? 22:47
dduncan I have a dual 1Ghz G4 ... didn't pay attention to how much the smoke used 22:48
I could run it again and check though
integral oh, no, I was just wondering if it'd take the same time on my box, sounds like yes, or longer
dduncan the timing isn't so much the issue though, I'm more interested in the different number of test successes and fails 22:49
autrijus decides to leave the pugsdir thing to rafl...
...as I don't really have a Debian system here.
dduncan during make, both CPUs are being utilized, with Pugs on one and Perl on the other, each using most of theirs 22:50
integral gosh :-)
dduncan or ghc as the case may be
but the 90 min isn't for the make process 22:51
there is also plenty of RAM ... all the physical isn't in use yet
ghc eats a lot of both 22:52
integral it's a pity swap interacts poorly with swapping
err, gc
dduncan okay, make is done, now to observe make smoke on the latest svn 22:56
rafl autrijus: feather is a debian testing system.
autrijus rafl: I'll still wait for you 22:58
(also, please try to stay away from gmakeisms. :))
dduncan okay, I'm seeing that the smoke proper mainly involves pugs, which is using 100% of 1 of the CPUs; since it is single-threaded, it can't be split up ... but the managing script in perl is on the other cpu at next to zero usage since its mostly waiting
integral, what are the cpu and ram specs of your box? 22:59
mine is 768M
integral I've a 1GHz iBook 1.25GB
dduncan I would say yours should be around the same speed as mine then
integral it still has 1-2GB of swap file, *grr*
dduncan how much RAM?
integral 1.25GB
dduncan oh yes 23:00
yours should be roughly the same speed as mine ... if its CPU intensive, maybe a smidgen slower
biab
integral tweaks his config.yml to actually upload. I'll leave one running while I hopefully sleep 23:01
autrijus cool
dduncan actually, I'm quitting activity monitor and top, since they take their slice too, though it may not make a difference due to pugs being bound to 1 cpu ... it would make a difference for you, though
integral top's darn expensive, more so with crappy Terminal 23:02
dduncan but since mine has it on a separate cpu, it may not matter unless pugs can use both
I don't ever expect pugs to be multithreaded, unless its easy, though I expect parrot to be
integral it might be easy with ghc 6.5's stuff, I wonder how much you can parallelise compilation of subroutines for example 23:03
(all the internal variables are already STM TVars)
dduncan autrijus, it occurs to me that if the smoking script can be set to run multiple pugs processes at once, such as doing different tests in parallel, it would better utilize multi-CPU boxes like mine, speeding up the smoke a lot, each process on a separate cpu 23:04
integral dduncan: hmm, I thought you could with smoke_concurrent in config.yml?
dduncan I didn't tweak any config file
I just ran the default smoke
integral looks like you just set it to the number of CPUs 23:05
autrijus dduncan: what integral said.
dduncan okay, I fixed that
but while make smoke acknowledged that concurrent = 2, top shows only 1 pugs process active, though there are 2 perl processes active 23:08
do I have to do something else? 23:10
I just noticed that I don't set Test.pm to pre-compile ... that may contribute to my slower speed also 23:11
I'll address that next time, after seeing what effect just the SMP has 23:12
autrijus k. 23:13
clkao Failed 1/450 test scripts, 99.78% okay. 7/8294 subtests failed, 99.92% okay. 23:20
t/builtins/arrays_and_hashes/pair is the only one
obra are preflights needed?
dduncan back in an hour or so 23:22
autrijus clkao: I'm fixing that. 23:26
clkao cool
do you happen to know why spidermonkey is failing on freebsd? 23:27
it doesn't pass its tests
autrijus no idea, I build it by hand
clkao hmmm
force install?
or your tests pass?
autrijus force
clkao -DWITHOUT_TEST 23:29
integral hmm, here's an interesting error in the smoke output: PackFile_unpack: Bytecode not valid for this interpreter: version mismatch 23:38
Parrot VM: Can't unpack packfile /Volumes/Unix/parrot/src/parrot/runtime/parrot/library/Data/Escape.pbc.
autrijus mm, probably an old parrot 23:41
integral ah
svnbot6 r7453 | autrijus++ | * give up on any pretense of magical pair's sanity; we will 23:43
r7453 | autrijus++ | revisit this after release, preferably adopt some variation
r7453 | autrijus++ | of luqui's proposal. We Will Be Back.
clkao slacker giving up things! 23:58
autrijus clkao: er, actually, that is an informal complaint against the nonworkableness of larry's decree.
which, I assure you, not for lack of trying... 23:59
clkao :)