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 | :) |