Chip needs help!!! www.geeksunite.net | pugscode.org/ <Overview Journal Logs> | pugs.kwiki.org | paste: sial.org/pbot/perl6 Set by theorbtwo on 10 July 2005. |
|||
svnbot6 | r5457, nothingmuch++ | geoffb++'s next bug test case, and a similar test case for redo. | 00:00 | |
putter | Do we have NEXT blocks yet? | 00:01 | |
nothingmuch | not that I know of | ||
that will require unification | |||
we should generalize, actually | |||
the next constructor takes the action for next | |||
but also performs NEXT { } blocks on the sub body | |||
and does the continuation magic | |||
i'll discuss with autrijus tomorrow | 00:02 | ||
putter | ok. | ||
can one make $i rw in for 1 .. 10 -> $i { ... } ? | 00:15 | ||
nothingmuch | not in a range | 00:16 | |
what are you mutating? | |||
you can declare is copy | |||
putter | I went to transliterate a ruby redo test, and it didnt quite work... | 00:18 | |
for i in 1..10; sum += i; i -= 1; if i > 0; redo; end end assert_equal(220, sum) | |||
Juerd | "i -= 1; if i > 0; redo;" | 00:24 | |
That's just downright stupid, with all respect for the original author. | |||
coral | interesting way to do a while loop | ||
er, for | |||
Juerd | Just use i > 1 | ||
And that's not even looking at the horrors of changing what was a constant. | 00:25 | ||
coral | there's more than one way to do it, but only one will look satisfactory to any single person. | ||
putter | ok, with -> $i is copy {}, it runs, but loops indefinitely. It looks like redo takes us back before the assignment to $i. perl5 otoh has the same behavior as ruby. | ||
for my $i (1..4){$i--;print $i;redo if $i > 0;print "\n"} works. | |||
Juerd | putter: I think the original code needs a change first. | ||
putter | Juerd: ?? | 00:27 | |
Juerd | I'm amazed that it works in Perl 5. | ||
Apparently ranges do result in writable values, and 1..2 isn't expanded until runtime, so no literals are changed. | 00:28 | ||
02:28 < Juerd> That's just downright stupid, with all respect for the original author. | |||
I take that back. The code was misleading, not wrong. | |||
nothingmuch | geoffb: you're off the hook, I did all three | ||
svnbot6 | r5458, nothingmuch++ | Add tests for redo and next under all loop (;;), for, and while (every loop | 00:29 | |
r5458, nothingmuch++ | type is broken in one way or another - tests todo'd) | |||
Juerd | Still, a range should theoretically of course return immutable values | ||
putter | perlfunc shows redo returning to while (EXPR) { #### HERE .... }. | ||
Juerd | Whatever 1..3 returns should be equal in semantics to 1,2,3 | 00:31 | |
I'd consider perl 5's behaviour a bug. | |||
putter | Juerd: it does... which is why the for mumble -> $i is copy {mumble} was needed... no? | ||
Juerd | Yes. | ||
nothingmuch | good night everyone | 00:32 | |
putter | Good night. I'll add a test for "returning to too early redo". Fun. tnx | 00:33 | |
nothingmuch | returning to too early redo? | ||
putter | err, backlog? | ||
this, | 00:34 | ||
nothingmuch | oh | ||
redo redoes the cond? | |||
putter | for 1..2 -> $i is copy { $i--; redo if $i > 0; } | ||
nonterminates | |||
nothingmuch | appearantly it redoes the increment clause of loop(;;){} | ||
which is not good | 00:35 | ||
see last test in t/statements/next.t | |||
putter | looking... | ||
nothingmuch | $j is not 4 by the time it's done, but 6 | ||
i'm not sure if it's because it does the butt end of the loop 2 times more than it ought to | |||
anywho, *poof* | 00:39 | ||
svnbot6 | r5459, dudley++ | Removed the extraneous quotes that were causing the test for [...] on user defined ops to fail | ||
putter | nothingmuch vanishes in a cloud of smoke. 'night | 00:40 | |
kelan | seen kelan | 00:41 | |
perlbot: seen kelan | 00:42 | ||
putter | does this look plausible? my $i; while (do{$i++ < 10}) {say $i} | 00:53 | |
kelan | why have the do-block? | 00:54 | |
putter | the real example is something like do{$x=$i; $i++ < 10}... but bad things happen... | 00:58 | |
(nonterminates, and $x is not set) | 00:59 | ||
svnbot6 | r5460, putter++ | Additional redo.t tests. | 01:12 | |
putter | Hmm... in p6, how does one next/last/redo to non-inner loops? p5's OUTER:{... while ... { last OUTER;}} | 01:17 | |
autrijus | that should continue to work (even tho we don't yet support it) | 01:20 | |
putter | ah, tnx. | ||
autrijus | leave :label<OUTER>; | ||
is what that really means | |||
putter | tnx. I started to transliterate p5's loopctl.t, but it's too dependent on labels and NEXT blocks. ah well. | 01:24 | |
autrijus | for some reason leave() works in PIR :) | 01:29 | |
it should be much easier to work with once PIL evaluator is there | 01:30 | ||
putter | right :). | 01:31 | |
svnbot6 | r5461, fglock++ | added bug list; fixed docs | 01:37 | |
autrijus | dear larry. you have again inflicted your whim on me. :-/ | 01:41 | |
putter | ? | 01:42 | |
autrijus | so this week I need to, at compile time, detect if $?SELF and $_ is the same thing | ||
and if yes, raise a fatal exception on .method | |||
er | |||
I mean, if not | |||
putter | ;) | 01:43 | |
autrijus | and force dialects with "use self" | ||
and it's only applicable this week | 01:44 | ||
mugwump | why not just defer such behaviour until some indeterminable time in the future when everything is self hosting and mutating the grammar isn't a PITA | ||
putter | hmm, perhaps that's not the highest thing on the priority list...? | ||
autrijus | esp. seeing how existing ./foo needs to be rewritten | ||
putter: yeah, but I feel uncomfortable having a mass of test suite actively disagree with ruling | 01:45 | ||
or do you think it's sane to say that pugs has `use self "./"` always in scope, until we really have a compile time and PIL evaluation, at which time self.pm can actually be implemented with P6? | 01:47 | ||
mugwump | sure. why not do something really interesting, like Proxy objects :) | 01:48 | |
autrijus | mugwump: there's already ScalarProxy IType | ||
just hook it to Proxy::new and you're set | |||
mugwump | Oh cool... and I was figuring that the Array and Hash proxies wouldn't need much, probably just connections with the hash/array de-ref methods | 01:49 | |
ie, the post_circumfix:Ā«{}Ā» methods, | |||
and post_circumfix:Ā«[]Ā» of course. | 01:50 | ||
putter | I do think it sane. Hmm... so let me reflect on why... | ||
mugwump | everything else is simply an object method on the hash/array | ||
putter | Timeframe is one issue. A hack for the day would be a no-brainer. A forever divergence from p6 spec would be problematic. Someplace in between discomfort grows. | 01:53 | |
A possible metric is the usual "the next week of development time can buy x or y. which?" | 01:54 | ||
I started a "ruby on p6" port. The roadblocks were pugsbugs, and objects being largely unimplemented. Speed was secondary. | 01:57 | ||
mugwump | autrijus: I'm interested in playing with the IScalarProxy type, I notice that there is an associated class Scalar::Proxy, and I can call .new() on it; what else can I do with it? | 01:59 | |
autrijus | mugwump: not much yet | ||
mugwump | the symbols "scalar_fetch = fst", what does the "fst" refer to? | 02:00 | |
(in the relevant definition in src/Pugs/Types/Scalar.hs) | |||
I see a proxyScalar in Pugs/AST/Internals.hs, too | 02:02 | ||
autrijus | proxyScalar is the one you're looking for | 02:03 | |
it takes two thunks, one for fetch and one for store | |||
mugwump | and yields an IScalar | 02:04 | |
autrijus | and return a IVar VScalar -- suitable to pass into IScalar and maybe VRef | ||
mugwump | ok, so I could make a primitive that returns such an item, and then make the Scalar::Proxy::BUILD call that? | 02:06 | |
putter | Hmm, what is the motivation behind the current focus on PIR? | 02:07 | |
mugwump | putter: AIUI, to simplify the task of getting to a self-hosting point | ||
putter | so a path of getting working: pir backend, hs frontend, p6 meta, p6 frontend? | 02:13 | |
mugwump | Hmm, my comment wasn't quite right is it. that's a secondary goal, the first is simply to make it easier to compile to backends by reducing the number of distinct operations that need to be translated/tested to the target language/platform. this should aid in the self hosting goal. | 02:14 | |
putter | so -BPIR is primarily being used as a motivating case for a kernel-languagey restructing of pugs? | 02:16 | |
autrijus | putter: PIR codegen is merely a motivating case of PIL compilation | 02:18 | |
putter: the most pressing thing for me is to switch to PIL evaluator in haskell side so our interpreter won't differ from compiler | |||
porting the metamodel to Haskell goes with that. | 02:19 | ||
after those two, we'll have reliable way to write codegen in P6 | |||
for example codegen into P5 | 02:20 | ||
and _then_ we can port compiler to P6 | |||
I need to draw some graph to explain all this. | |||
(btw, my reply to larry is posted to p6[cl]. feedback welcome) | |||
geoffb | nothingmuch++ for doing all the loop tests -- I just got slammed this afternoon with work stuff, sorry about that | 02:31 | |
putter | so the top level objective is: replace the current hs interpreter backend because... something. (a clean backend is a prerequisite for self hosting, and simplifies pursuing it?) | 02:32 | |
that should have been, | 02:33 | ||
so the top level objective is: replace the current hs interpreter backend because... something? (a clean backend is a prerequisite for self hosting, and simplifies pursuing it?) | |||
geoffb | that was different how? | ||
oh, s/./?/ in one spot | |||
sheesh | |||
mugwump | putter: for consistency of behaviour between interpretation and compiled execution | ||
putter | and compiled execution is needed because...X? | 02:34 | |
autrijus | putter: currently there is no compile phase | 02:35 | |
mugwump | lots of reasons. to run outside of pugs, for instance on parrot. to convert to other code forms. to boldly run where no dynamic code has run before | ||
autrijus | so we don't get strict, warnings | ||
pragmas | 02:36 | ||
and "1 = 1" does not fail until runtime | |||
there's no semantic analysis. | |||
treatment of class literals depend on order of introduction. | |||
I think those are reasons enough | |||
I hope you agree :) | |||
hm, the first paragraph in the perl 6 faq is bad. | 02:37 | ||
autrijus mails allison to see if it can be taken down. | |||
geoffb | (Note: this is NOT intended as pressure, I am merely inquiring): autrijus, I've been holding off learning Pugs' Haskell guts on the assumption that the PIL change would pretty much put the internals in a blender. A) Is this true, and B) when abouts is the planned change? | 02:38 | |
autrijus | geoffb: this is not true; PIL evaluation will be a refactoring of Eval.hs, not rewrite | ||
the planned change is supposed to start happening as soon as 6.2.8 is out of the door. | |||
putter | Oh, I don't disagree with any of this. I've just been aware for a long time that I couldn't write the one paragrah pithily insightful description of what we are doing, when, and why. So I'm taking this opportunity to explore it. Can write up result. | ||
autrijus | ooh, please do | 02:39 | |
I see, you're the interviewer here | |||
putter | Yes :) | ||
good description | |||
so the primary objective is to obtain a compile time? | 02:40 | ||
err, compiler opportunity? | |||
autrijus | right. | ||
to not run the parse tree. | 02:41 | ||
to allow a semantic analysis of parser tree | |||
geoffb | OK, given the above response, I'm thinking of diving into src/ sooner rather than later. What is available to help me understand what does what? | 02:44 | |
svnbot6 | r5462, geoffb++ | hack.pod updates: split ext/Span out of ext/Set-Infinite, and reword the set-related module descriptions to be parallel | ||
mugwump | geoffb: PA01? | ||
autrijus | geoffb: PS02 | ||
er | |||
geoffb | If the answer is "not bloody much", I may end up writing something, but no promises yet | ||
autrijus | PA02 | ||
you can augment PA02 :) | 02:45 | ||
geoffb | Is that up to date enough not to lose me? | ||
autrijus | it's up to date enough. | ||
it is also nothing much | |||
geoffb | OK | ||
autrijus | but I'm thinking about renaming it into PA02 | ||
er | |||
PA03 | |||
and leave PA02 as the design thing that putter was interviewing me with | 02:46 | ||
i.e. the grand scheme of things | |||
geoffb | .oO( I must be a masochist with the amount of work I pulled onto my pile in the last few days ) |
||
autrijus | geoffb: arbeit macht frei | ||
geoffb | wah? | 02:47 | |
autrijus | "Arbeit Macht Frei" (Work Brings Freedom) was the sign over the gates of Auschwitz. | ||
geoffb gets chills | |||
autrijus | it's intended to have that effect :) | ||
autrijus hacks on with pirsmoke -- that was (and still is) an insane amount of work too :) | 02:48 | ||
geoffb | I am reminded of freshman CS, in which the prof gave extra credit on a midterm if you answered the question "What is the best novel ever?" with "The Dispossessed" | 02:49 | |
autrijus | lol | 02:50 | |
putter | so the top level objective is to do compiler thingys, rather than running the parse tree? this requires an alternate tree? PIL? Eval.hs is refactored to... run this tree rather than parse tree? | ||
autrijus | putter: yes and yes. | 02:51 | |
theoretically we can go the Perl5/Ruby route and augment the parse tree instead of inventing a new minimal language | |||
but that makes the life of codegen immeasurably more difficult. | |||
and nonlocal optimization virtually impossible | |||
putter | kernel languages++ | ||
autrijus | so we introduce PIL as a core calculus of perl6 | ||
yup | |||
geoffb | Does PIL though contain enough information to make micro-optimizations relatively easy? As I recall, P5 does a lot of that sort of thing | 02:52 | |
autrijus | really? | 02:53 | |
it does constant folding | |||
static lexical lookup | |||
that's all | 02:54 | ||
I think | |||
oh and void map, and reverse sort | |||
sure, all those will be possible | |||
geoffb | (IOW, if everything that loops gets completely abstracted to a single overarching continuation concept, do you then lack the necessary info to do stuff like turn while 1 {} into something really damn simple and fast?) | ||
autrijus | do note that it's just a call to &statement:<while>. | 02:55 | |
geoffb | ok, fair enough | ||
AH! | |||
autrijus | so... the answer is voidly true :) | ||
geoffb | OK, not having actually looked at PIL, I imagined that you had made something between a turing machine and PIR in complexity -- extremely abstract | ||
turing machine with continuations? :-) | 02:56 | ||
autrijus | PIR is between turing machine and PIL. | ||
PIL is basically scheme with some more calling convention. | |||
putter | so work on Eval/PIL will begin shorty, and work on PIL-to-PIR is in progress? Why PIL-to-PIR before Eval/PIL? The motivation for PIL->PIR is... something. (reality check on PIL design?) | ||
autrijus | putter: PIL->PIR is keeping us honest. | ||
it's trivial to make PIL bloaty and codegen unfriendly | |||
by shuffling a lot hidden complexity to haskell runtiem | |||
switch to another runtime forces us to define all operational semantics | 02:57 | ||
geoffb | autrijus++ # psychological engineering on himself | ||
autrijus | because haskell runtime and pir runtime (and p5 runtime) cannot agree | ||
so all semantic must be preserved at PIL level | |||
geoffb | bah, must go again. | ||
autrijus | otherwise I imagine Eval/PIL producing something that's hard to codegen for. | 02:58 | |
s/for/from/ | |||
(if we started from that first) | |||
so yes, "reality check" is pretty accurate | |||
putter: please commit whatever you have written down to docs/notes/ :) | 02:59 | ||
putter | so pir, rather than p5, because...? (same reason?) | ||
will do. :) | |||
autrijus | because p5 is too smart. | 03:01 | |
similar to our existing hs runtime | |||
there's too much logic in p5 code | |||
meppl | what a pitty, that im drunken again - bye | ||
autrijus | even in a single method call | ||
meppl: see ya | |||
so it does not keep us honest the same way as PIR does | |||
otoh, once PIL is more solid, p5 runtime will have a lot of practical value | 03:02 | ||
because p5 is known to segfault less. | |||
and DBI is written in p5 not pir. | |||
so it makes sense to pursue Eval/PIL with PIL->PIR until we have a good idea of what PIL's final form will be | 03:03 | ||
then work on PIL->P5 in earnest | |||
and maybe PIL->JS etc. | |||
stevan | (PIL->JS)++ | ||
hola autrijus :) | |||
autrijus | greetings stevan :) | ||
autrijus goes to find food and repair PIR | 03:04 | ||
putter: please type away more questions if any -- I'll reply when I'm back | |||
stevan | autrijus: I am thinking of implementing Scalar, Array and Hash in the metamodel, but using tie() structures for now | ||
autrijus | stevan: sure, tie() structure is what I'm using in hs anyway | ||
stevan | when you return from food, let me know you opinion of the sanity of that idea | ||
autrijus | same interface | ||
so sure, sane | |||
stevan | yes, this was part of the inspiration | 03:05 | |
ok | |||
this way I can do typed containers and ro/rw traits | |||
and get that out of the metamodel | |||
putter | so the motivation for doing PIL->P5 once PIL has a finalish form is... something? | ||
stevan | then we can compile Perl 6 to Perl 5 :) | ||
putter | :) | 03:06 | |
autrijus | the motivation is that we can write "use perl5:DBI;" and expect it to work in both hs evaluator and p5 evaluator. | 03:08 | |
and have it work far more reliably in the latter. | |||
I prophesy that once that happens we'll enter the "hack hack hack" phase of imaginary perl6 timelinee | |||
and out of the current "slowly gaining more respect" phase | 03:09 | ||
stevan is very happy that Larry is talking meta-model stuff :) | |||
hack++ hack++ hack++ :) | |||
autrijus | bbiab. :) & | 03:10 | |
putter | so at some time X? weeks from now, Eval.hs has been refactored. the primary objective then becomes... what? (PIL->P5?) | ||
stevan | I think the PIL>p5 effort will happen simultaneously with the PIL in Haskell effort | 03:11 | |
especially since PIL is soooo much cleaner in Haskell than it is in Perl | 03:12 | ||
but that is not what I am working on, so I can only guess :) | |||
autrijus | stevan: PIL in Haskell is Eval/PIL is Eval.hs refactoring | 03:19 | |
PIL->P5 will probably happen simultaneously with PIL->PIR and other PIL->* as people find time to work on it | |||
I'm equally interested in P5 and PIR targetting, but P5 brings more instant gratification | 03:20 | ||
mugwump | so it's not better to go PIL -> PIR -> P5 ? | ||
or does that miss out on too many good integration features | |||
autrijus | mugwump: PIR on P5 is an interesting subject. I suspect it will run very slowly | ||
unless you of course link with libparrot and pmcs | 03:21 | ||
if so, that is valid approach (and the one allison originally proposes) but I'm not personally interested | |||
if we have have a single runloop, why settle with two? | 03:22 | ||
and some core parrot opcodes, eg. bsr/ret and tailcc | 03:23 | ||
and its calling convention | |||
cannot be directly expressed in p5 | |||
they must be emulated if youa re targetting pure p5 (without linking libparrot) | |||
and I suspect it will be slower than acceptable | |||
but people are welcome to try :) | |||
putter | so the comming thing in pugs is PIL? PIL->PIR provides honesty in PIL design? PIL->P5 provides reliability and visibility? PIR->hs/Eval provides... something? | 03:38 | |
svnbot6 | r5463, autrijus++ | * The Alligator in 0.2.2 prevents the perfectly good 03-equal | ||
r5463, autrijus++ | sanity test from working. Got no choice but to remove | |||
r5463, autrijus++ | two lines that prints nothing; need reinvestigate with leo-ctx5. | |||
r5464, autrijus++ | * remove dead code in Bind.hs. | |||
autrijus | putter: provides clear definition of semantics. | ||
putter: taking advantage of haskell's uncanny ability of serving as specification that happens to run. | 03:39 | ||
so it is the reference evaluator. | |||
until, some day, we finish PIL->Perl6. | 03:40 | ||
which would be the last milestone of pugs | |||
(of course, the compiler, emitter and metamodel + object space should be all in P6 in the last milestone) | 03:41 | ||
but there are two levels of PIL->P6; one is merely a pretty printer | 03:42 | ||
which will not need to implement any semantic | |||
the "last milestone" one is however different; it's basically an implementation of a perl 6 virtual machine on top of perl 6 | |||
it's there so we can replace the haskell one as the reference implementation | 03:43 | ||
alternatively, if people all agree that parrot runtime should be the reference one | |||
then that step would not be needed | |||
hence the "if needed" clause in the pugs roadmap. | |||
putter | so for X in hs,pir,p5, what does a success for PIR->X look like? (X-smoke?) | 03:45 | |
autrijus | X-smoke. | 03:47 | |
putter | an "X-smoke no worse than hs-smoke"? | 03:48 | |
autrijus | right | 03:49 | |
the success will be quantifiable | |||
it's not a 0% - 100% thing | |||
er | |||
0% / 100% thing | |||
putter | so what are the parts to an PIR->X? (an emitter? an X-Prelude.p6? a X-native runtime? other?) | 03:52 | |
autrijus | assuming you mean PIL->X | ||
putter | oh, yes... | 03:53 | |
autrijus | the parts are: CodeGen from PIL to X-tree; an emitter from X-tree to X-bytecode; a X runtime. | ||
Parser->Compiler->CodeGen->Emit->Runtime | 03:54 | ||
putter | which parts are written in hs, p6, X? | 03:55 | |
autrijus | only the Runtime is in X. | 03:56 | |
currently all other parts are in hs | |||
to be replaced by p6 gradually. | |||
X does not enter the picture. | |||
except for the Runtime | |||
which includes object space, primitives, and maybe more emulation foo | 03:57 | ||
oh, replace X-bytecode with X-code | 03:58 | ||
we don't quite care whether it's bytecode of other kind of concrete representation | |||
putter | before broadening focus, anything else which should be said about the backends? | 03:59 | |
so what else is going on as these backends are being developed? | 04:01 | ||
(tests? frontend? docs? somethings?) | 04:02 | ||
rephrased, n weeks from now, three greenish smokes, what else would you like to have seen happen? | 04:07 | ||
masak yawns | 04:16 | ||
morning | 04:17 | ||
QtPlatypus asks a question for confermation "At the moment in pugs where is no way to manipulate raw bytes, everything gets utf-8ed." | 04:24 | ||
brentdax | Hmm. | 04:26 | |
autrijus | QtPlatypus: that is correct. | ||
QtPlatypus: mostly due to the fact that I'm not sure how raw bytes are to be presented in p6. | 04:27 | ||
putter: tests are shared. other frontends -- i.e. *->PIL may be interesting, but not of active interest to me | |||
QtPlatypus | And strings that corraspond to illegal Unicode or utf-8 cause pugs to get indigestion. | ||
autrijus | putter: Perl5->PIL is indeed interesting, as is Python->PIL etc | 04:28 | |
brentdax | Perl 5 interop with DBI. $sth.execute(...) says "no compatible sub". $sth.can("execute").($sth) executes happily. This only happens in a module which is part of a large program--when I write a little test script, it all works fine. | 04:29 | |
Other DBI::st methods (like .fetch) seem to work fine. | 04:32 | ||
Any thoughts? | |||
autrijus | hrm, not sure. | 04:42 | |
mugwump | reducing to a simple test case can really be a bitch sometimes aye! | ||
autrijus | hear hear. | 04:47 | |
autrijus hopes allison will reply that punie is targetting perl6 :) | 04:48 | ||
obra | ? | 04:50 | |
autrijus | obra: # www.nntp.perl.org/group/perl.perl6.compiler/931 | ||
putter | weeee... putter finishes pass at writeup. looks at clock, and concludes discussion of frontend can wait 'till another day. | 05:16 | |
autrijus | ooh ooh mesee mesee | ||
commit to docs/notes/ ? | |||
putter | ok... | 05:17 | |
autrijus | weird, the feature motd looks upside down | 05:18 | |
Ā”Ę®uĖ9Ę®É¹ĒdĖɹĒÉ„ŹÉĒÉ oŹ ĒÉÆoÉĘ®ĒM | |||
s/feature/feather/ | |||
putter | 5465. docs/notes/plan Too tired to think of a better name.:/ | 05:22 | |
svnbot6 | r5465, putter++ | Added docs/notes/plan - some notes on the pugs development plan. | ||
autrijus | hm, evalbot is offline | 05:23 | |
and borken | |||
I wonder why | |||
putter++ putter++ | |||
lunch... bbiab & | |||
putter | It is not the pithy paragraph I originally envisioned. Who was it that said, sorry for the length of my note - I didn't have time to write a short one. | 05:24 | |
Any/everyone, feel free to pithify. ;) | 05:25 | ||
Thanks autrijus, was fun. | |||
good night all & | |||
autrijus | nite! | 05:26 | |
& | |||
putter | & | 05:27 | |
geoffb | If noone else is working on refactoring putter's note, I'll take a crack at it . . . | 05:38 | |
geoffb begins hacking on it | 05:42 | ||
masak | putter: (in case you're backlogging) it was supposedly oscar wilde who said "I'm sorry for the length of this letter but I didn't have | 05:46 | |
time to write a shorter one." | |||
gaal | i think not. voltaire perhaps; checking. | 05:47 | |
ah: pascal. | 05:53 | ||
06:16
spinclad_ is now known as spinclad
|
|||
svnbot6 | r5466, gaal++ | * `require Bar; require Bar` only loads Bar once | 06:43 | |
geoffb is having fun rewriting docs/notes/plan | |||
I know developers are supposed to hate documentation, but I just don't. :-) | 06:44 | ||
gaal | docs can be fun given the right *. | ||
pugs often has the right * to it. | 06:45 | ||
06:45
castaway_ is now known as castaway
|
|||
geoffb | gaal, nodnod | 06:46 | |
allo, castaway | |||
masak | gaal: you're right about pascal, the quote is "I would have written a shorter letter, but I did not have the time." according to wikiquote | 06:53 | |
gaal | word. | 06:54 | |
castaway | g'mornin gaal | 06:56 | |
gaal | hey castaway! | ||
castaway | umm, mornin geoffb .. /me rubs eyes | ||
geoffb | :-) | ||
gaal offers coffee | |||
geoffb offers tea | |||
castaway | tea :9 | 06:57 | |
see, you must be a brit :) | |||
gaal | bbiab & | ||
geoffb | castaway, :-) | 06:58 | |
castaway | mm, you like writing docs, eh? | ||
I wouldnt spread that about were I you :) | |||
geoffb | I can always say no -- that's the beauty of the bazaar. :-) | 06:59 | |
castaway | ,) | 07:00 | |
castaway has bundles that needs writing.. | |||
geoffb | Well, if you'd like to spring for my consulting fee . . . :-) | 07:04 | |
castaway | heh | ||
gaal | okay, here's something sad: i was experimenting with precompiling Test.pm | 07:05 | |
but it causes pugs to segfault :( | |||
geoffb | bleah | 07:06 | |
gaal | inconsistently :( | ||
geoffb | double bleah | ||
theorbtw1 | Segfault? | 07:13 | |
07:13
theorbtw1 is now known as theorbtwo
|
|||
theorbtwo | With precompile to AST, or precompile to something more parroty? | 07:14 | |
gaal | to2: apparently the segfault was just an optimized-unoptimized artefact. | ||
looking at other problems now | |||
theorbtwo | Ah, that works for me. | 07:15 | |
Hm, I should look into the gcc4/ghc problems, possibly, since debian unsable now defaults to gcc4. | |||
gaal | on my fast, machine, ghc peaks at 120mb. i want it to use *more* ram if it needs it. how do i do that? | 07:19 | |
i'm not sure if it gets there because of a limit or bacause that's what it needs. | 07:21 | ||
oh, i just said that and now it's at 175mb. heh. | 07:22 | ||
geoffb | gaal, opt or unopt? A couple days ago I had unopt peak at 140 MB ghc + 130 MB ld | ||
Limbic_Region has seen a peak of 750 MB each for ghc and ld with optimized builds, but that was before PCPrelude. | 07:23 | ||
gaal | optimized. Pugs.Run with large includes. | ||
on the contrary, PCPrelude increases that figure. | |||
geoffb | Though Limbic_Region may have been compiling on Win32, I'm not sure. | ||
gaal | well not *that* figure | ||
it increases build-time ram usage. | |||
well, it eventually peaked at just under 200mb. hmmm. | 07:24 | ||
geoffb | Build time RAM was what I was referring to. :-) | ||
gaal | yeah - meant i never saw it anywhere near 750mb | 07:25 | |
geoffb | gaal, *nix or Win32? | ||
(My numbers are on Debian testing) | 07:26 | ||
gaal | win32. on linux my box only has 256mb... | ||
so i never make optimized there. | |||
geoffb | yeah, opt make OOM kills my linux box (192 MB) | 07:27 | |
gaal | brb | ||
autrijus, ping | 07:35 | ||
07:37
Aankh|Clone is now known as Aankhen``
|
|||
autrijus | gaal, pong | 07:39 | |
gaal | hey. i'm getting something weird precompiling Test, and i remember something about END blocks... | ||
autrijus | right. :) | ||
gaal | i've basically concatenated Prelude.pm with Test.pm | ||
autrijus | @*END would be filtered out | 07:40 | |
gaal | but now i'm getting errors about "undeclared $testing_started" | ||
autrijus | yes, because the compilation does not preserve lexical context | ||
gaal | in &test_ends | ||
autrijus | so you don't get visibility | ||
you can workaround using explicitly qualified vars | |||
gaal | but some other classes in the prelude do have that: eg Time::Local | ||
oh | 07:41 | ||
Aankhen`` | Morning. | ||
gaal | no it doesn't :) | ||
geoffb | morning, Aankhen`` | ||
autrijus | it doesn't. :) | ||
it's an outstanding problem | |||
maybe we can workaround it for this release | |||
by using qualified vars in Test | |||
what do you think? | |||
gaal | errr wait, File does. | ||
oh and it does indeed fully qualify them. | 07:42 | ||
autrijus | it does not. | ||
and that means the three 'my' should really be 'our' | |||
the 0 worked by chance. | |||
because undef happens to be 0. | |||
gaal | it says the crazy $File::SEEK_START | ||
ahh :) | |||
okay :) | |||
Aankhen`` | geoffb >> What's shakin'? | ||
geoffb | Rewriting docs/notes/plan | 07:43 | |
Aankhen`` | Er... no commits since last night? o_O | ||
autrijus | but I suggest you just use qual now | ||
geoffb | (almost finished with that) | ||
Aankhen`` | Oh, that was my browser messing around. | ||
autrijus | $File::SEEK_START = 0; | ||
etc | |||
so what about Test? do you think we qual it for now? | |||
gaal | autrijus: sure. but (a) do we just not declare the vars, like p5? | ||
autrijus | that can do | ||
gaal | (b) i hope TEst doesn't make use of the lexicality of vars, eg. with closures | 07:44 | |
autrijus | would you like to take a look at it? | ||
gaal | i'll happily experiment. | ||
autrijus | please do. | ||
gaal++ | |||
btw if you have parrot | |||
gaal | yes | ||
external executalble though. | 07:45 | ||
autrijus | you can easily test that with ./pugs -BPIR -MTest -e 'ok 1' | ||
that's fine | |||
it should exhibit the same bug | |||
for exactly the same reason | |||
gaal | right, i'm on it. | ||
autrijus | gaal++ | ||
Aankhen`` | I have a question: since Prelude is precompiled, does that mean it makes more sense for builtins to be implemented there from now since they eventually need to be written in Perl 6 anyway? Or will that be done later? | ||
autrijus | Aankhen``: yes, it makes total sense now | 07:46 | |
I said that in my journal | |||
new prims should be in Prelude.pm preferably | |||
I don't see a need now to completely redo Prim.hs | |||
gaal | we need a way to tag them as pure perl imo. | ||
Aankhen`` | I just wanted to clarify "I expect" vs. "I think they should be". ;-) | ||
autrijus | ok. I expect, and I think they should be | 07:47 | |
gaal | be it a trait or a documentation convention. | ||
Aankhen`` | OK. | ||
geoffb | OK, docs/notes/plan updated. autrijus, can you take a look and see if you disagree with anything? | 07:51 | |
Aankhen`` | $I.ve(got => "the power"); | 07:55 | |
svnbot6 | r5467, geoffb++ | rewrite of putter++'s interview/brain dump with autrijus on PIL and Pugs as a compiler | ||
gaal | Aankhen``, perl4 is clearly superior to p6 as your example demonstrates. (you can spell that "I've" in p4) | 07:56 | |
Aankhen`` | BAH, I SAY | 07:57 | |
geoffb | You can spell it in P5, too, but people will look at you funny | ||
gaal | true. | ||
theorbtwo | macro <'> {'::' | ||
Er, wait, not quite. | |||
geoffb | That could have interesting effects on quoting . . . . | 07:58 | |
Aankhen`` | macro infix:<'> is parsed(/<null>/) { "::" } | 07:59 | |
gaal | even though precompiling Test is expected to give another factor of two speedup in smokes, once it works, it involves a significant build time hit. | ||
autrijus | geoffb: I committed chgs. I'll brb | 08:08 | |
svnbot6 | r5468, autrijus++ | * minor fixes to geofb++'s hackery to notes/plan | ||
autrijus | geoffb++ | ||
gaal | does it make sense that i have to fully qualify sub names? | ||
&proclaim isn't being found. | |||
it's declared after most of the subs that call it. | 08:09 | ||
geoffb pulls | |||
Cool, thanks autrijus. I knew the overview chart would need fixing, but I figured a first pass would help. | 08:12 | ||
gaal | geoffb++ putter++ # helpful docs | 08:13 | |
geoffb | thanks, gaal | ||
autrijus | geoffb: it helped a lot! I think I'll just build PA02 out from that and hw2005 | 08:27 | |
gaal | i have a smoke running on precompiled Test. a little soon to say if it's faster though. | 08:28 | |
geoffb | cool beans, autrijus | ||
QtPlatypus can't work out why grep expects Vcode | 08:32 | ||
svnbot6 | r5469, autrijus++ | * acknowledge zeroderef and context bugs as :todo<bug>. | ||
QtPlatypus | Should the following work? | 08:33 | |
grep /a+/,"a","b" | |||
gaal | i think not | ||
QtPlatypus | gaal: Why not? | ||
gaal | iirc only grep CODE LIST is in now? | ||
geoffb is several hours overdue for bed . . . time to attempt sleep | |||
QtPlatypus nods. | 08:34 | ||
geoffb mumbles "It would be spiffy keen if someone were to fix the while+next and related bugs . . . ." | |||
gaal | apparently i'm wrong though... S29 mentions "MatchTest $test" | ||
but i don't know what MatchTest is. | 08:35 | ||
autrijus | it's Item or Junction. | ||
but for all practical purpose we can limit it to Rule | 08:36 | ||
I wonder who added it there, but it makes sense | |||
gaal | hmm, since the reference implementation does a smartmatch, why not put an Any there? | ||
autrijus | that would do too | 08:37 | |
although Any would include pairs | |||
grep :x<y>, "a", "b"; | |||
so I think Item|Junction is indeed correct | |||
QtPlatypus: make it a :todo<feature> | 08:38 | ||
svnbot6 | r5470, autrijus++ | * more test cleanups. | ||
autrijus | QtPlatypus: if you would like you can also implement it :) | ||
modify op2Grep to do a smartmatch | |||
QtPlatypus nods. | 08:41 | ||
gaal | autrijus, any idea why i needed to fully qualify sub names in Test too? | ||
autrijus | gaal: namespace bugs | 08:42 | |
gaal: is it PIR or precomp? | |||
gaal | precomp | ||
autrijus | I bet the namespace isn't propagated | ||
so it looks at main::proclaim | |||
because it's exported | |||
and called inmain | |||
gaal | smoke ended, let's look at the times. | ||
autrijus | I need to fix export.t first too | ||
gaal | duration: 1350 | 08:43 | |
that's measly :-( | |||
precomp prelude alone gave ~1400 | |||
but that must meant my experiment is flawed. | 08:44 | ||
svnbot6 | r5471, autrijus++ | * more deref victims. | ||
gaal | looks as if Test.pm is compiled again? /me moves away Test.pm | ||
drats, if *did*. but why? i added an %*INC guard. must have had a bug there. | 08:47 | ||
sysinternals.com++ | 08:49 | ||
aha! %*INC was populated with "Test.pm" instead of "Test". that's probably wrong, isn't it? | 08:51 | ||
autrijus | it agrees with p6. | 08:52 | |
er, p5. | |||
$ perl -MTest -e 'die %INC->{"Test.pm"}' | |||
/usr/local/lib/perl5/5.8.6/Test.pm at -e line 1. | |||
autrijus gleefully abuses one of the p5 bugs | |||
(the %hash->{key} syntax) | 08:53 | ||
oh wait, it's a feature not a bug. | |||
gaal | okay, /me gleefully changes his most hacky line yet to %*INC<Test.pm> = '<precompiled>'; | ||
it's a deprecated feature | |||
autrijus | yup. | ||
#perl6: Powered By Gleemax | 08:54 | ||
gaal | with no justification whatsoever. | ||
obviously likeable. :) | |||
autrijus, what's the advantage of keeping the keys of %INC in filesystem format? classname format looks cleaner to me | 08:58 | ||
du -b src/Pugs/PreludePC.hs => 1763898 # eep | 08:59 | ||
autrijus | gaal: I suspect it's due to require's desugared form. | 09:01 | |
require 'Test.pm'; | |||
require 'Test'; # won't work | |||
gaal | yeah | ||
autrijus | because you my be doing | ||
require 'heya.gaal' | 09:02 | ||
gaal | but we don't like that, do we? :) | ||
autrijus | and then what will its %INC entry be? | ||
I do not like it but I see its use. | |||
gaal | why not make require accept only class names? the fs mapping is a runtime detail. | 09:04 | |
okay 110 seconds is much too fast. | |||
autrijus | sometime I may really have some perl code is "config.ini" | 09:05 | |
or "foo.conf" | |||
or "heya.gaal" | |||
kungfuftr | or blah.pl | 09:06 | |
autrijus | yes. | ||
gaal | or evil.com | ||
theorbtwo | Or 123341232.dump | ||
autrijus | to not allow that is, to quote tim oreilly, "forgetting our working-class roots" | ||
;) | |||
gaal | so write your own loader, or else we need a primitive | ||
"working class" | 09:07 | ||
require | |||
and a higher level one. | |||
autrijus | but what will %INC be? | ||
gaal | what does the key of p5 %INC mean anyway? it's some sort of key to the module, not to a class | 09:08 | |
because MyMod can contain many classes | |||
broquaint | %INC key = join('/', split '::', $name) . ".pm"; | ||
autrijus | the key of p5 is filenames used in require. | ||
gaal | i meant what does it conceptually mean | 09:09 | |
it's the name of a unit of code | |||
autrijus | it's the name passed to require. | ||
theorbtwo | It's the file (under @INC) that is being required. | ||
broquaint | It's the name of the file the represents a unit of code. | ||
autrijus | that's what it conceptually means. | ||
$ perl -e 'require "/home/autrijus/work/pugs/z"; die keys %INC' | |||
/home/autrijus/work/pugs/z | |||
$ perl -e 'require "z"; die keys %INC' | |||
z at -e line 1. | |||
gaal | i suppose i'm saying that there's no reason to use "filenames under @INC". | 09:10 | |
theorbtwo | But there is, because otherwise you can't record things that are only filenames. | 09:11 | |
autrijus | require 'auto/Tk/Widget.al'; | ||
require 'open2.pl' | |||
gaal | i mean i want to widen it, not narrow it | ||
theorbtwo | Have it either be a filename or a somethingelse? | 09:12 | |
gaal | URI:code.com/yourmod | ||
theorbtwo | But then you have to worry if this filename and this somethingelse are really the same thing. | ||
broquaint | As long as it's consistent. | ||
autrijus | you mentioned that %INC for Test.pm should key on 'Test' | ||
gaal | Class:Test | ||
broquaint | Consistent! | ||
autrijus | class:Test -- it's fine by me. | ||
p6l p6l :) | |||
(but it's really not test, and not module, and not class) | |||
it's rather a file. | 09:13 | ||
broquaint | It should key on an INC object, or some such. | ||
autrijus | require does not deal with packages etc. | ||
only "use" does | |||
I'm fine to have "use Test" record Test.pm in %INC | |||
gaal | the *actual* file is in the value of %INC (as i know you know :)( | ||
autrijus | as well as module:Test | ||
gaal | okay, i'll get back to this, i want to figure out this too-fast smoke business first. | 09:14 | |
what might be causing this output? | 09:15 | ||
pugs.exe: 1 | |||
autrijus | not sure | 09:16 | |
it's an user error using 'error' call | |||
gaal | autrijus, can you review my %*INC patch (opRequire) from earlier today? | 09:17 | |
i'm returning VInt 1 if a module has already been used | |||
so i fear this may be the same 1. | |||
masak | where can one read more about the perl6 semantics of BEGIN et al.? | 09:24 | |
svnbot6 | r5472, autrijus++ | * remove dead code. | ||
autrijus | gaal: url? | 09:25 | |
masak: hw2005 has some writeup | |||
gaal | it's committed as r5466 | 09:26 | |
# rt.openfoundry.org/Foundry/Project/...;rev2=5466 | 09:27 | ||
autrijus | gaal: worksforme | 09:29 | |
gaal | it worked for me too, but i though it might have been triggering those errors with the precomp Test | 09:30 | |
masak | autrijus: thx | 09:31 | |
autrijus | masak: np | 09:32 | |
gaal: hrm, if you change it to return vint 2, see if it fails with 2 | |||
I doubt it is the case | |||
gaal | doing just that :) but build is slowww | ||
autrijus | unoptimised too? | 09:33 | |
gaal | i got segfaults trying to mix them | ||
and i'm shooting for an eventual benchmark of the smoke, so i did need an optimized pugs... | 09:34 | ||
autrijus | nodnod | 09:36 | |
gaal | like i said, Pugs.Run is so expensive to compile now I'm not sure it's even worth it to precom Test. :( | 09:38 | |
autrijus | it makes more sense if we produce Test.so. | ||
gaal | yeah | 09:39 | |
autrijus | which is actually not very hard | ||
gaal | but then we get into hairy platform dependencies. | ||
autrijus | only to make it more portable, Test.pil is probably what we need to shoot for | ||
heh, jinx | |||
gaal | yup | ||
:) | |||
autrijus | and worse case we can just derive Read | ||
and read in the PIL expressions | |||
gaal | won't they be very large? PreludePC.hs is huge already. | 09:40 | |
autrijus | that is likely Fast Enough. if not, we can use DriFT to derive Binary Read | ||
akin to Storable's thaw | |||
gaal | jinx again, only you know the stuff better | ||
autrijus | but I think that's a good idea overall :) | ||
probably not push Test.pm precomp for 6.2.8 then | |||
but please still commit the crippled -- I mean workaround -- Test.pm | |||
I'd like to look at it and see how much I can preserve for pirsmoke | 09:41 | ||
gaal | what do you know, it *is* my %*INC guard. | ||
autrijus | ooh. | ||
(bbiab) | |||
gaal | why would returning a value trigger an error? | ||
autrijus: perlcabal.org/~gaal/Prelude.pm | 09:43 | ||
i was in q&d mode, so this has the modified Test tacked on to the Prelude. | |||
autrijus | can you sep it out and commit it back to ext? | 09:44 | |
ext/Test/lib/Test.pm | |||
that makes it easier for me to diff and work with chunks | |||
gaal | if this is deemed worthy, i can write an evil mangler^W^Wnefarious mutilator to generate a unified Prelude.pm from Test.pm and the real prelude | ||
sure. | |||
autrijus | hm, sort of like perl5's prelink build option | 09:45 | |
for platforms without dyld | |||
I think it should not be the default, but having it available is a good thing | 09:46 | ||
(exactly the same as p5) | |||
gaal | old wheels, new cars | ||
s/cars/ships/ | |||
autrijus | yup :) | 09:47 | |
gaal | who needs wheels on a ship? | ||
autrijus | exactly | ||
gaal works on getting the hawser in shape | |||
autrijus | there is a pirate joke in there somewhere but I will refrain from uttering it | 09:48 | |
gaal | arrr. | ||
there was a problem saying "use" from within a lexical scope, right? was it fixed? | 09:49 | ||
because i'd omitted 'use v6' in my version out of paranoia | |||
autrijus | I don't think that matters. | 09:51 | |
gaal | r5473. | 09:52 | |
brb | 09:54 | ||
svnbot6 | r5473, gaal++ | prelodability mutilations | ||
autrijus | I think I finally fixed export.t | ||
testing | |||
gaal | [off-topic] btw, autrijus, when does par use /tmp/par-SYSTEM for a cache? people showed me a case at $work where cgis that used par (don't ask) used that. | 09:59 | |
autrijus | SYSTEM is usd on win9x and other cases where I can't determine $USER. | 10:00 | |
you can turn that behaviour off with pp -C or runtime with PAR_GLOBAL_CLEAN | |||
gaal | when might that happen on unix? when /etc/passwd was modified under your feet? | 10:01 | |
autrijus | huh. | 10:02 | |
$ENV{USER} has nothing to do with /etc/passwd | |||
gaal | oh, env! all right. | ||
thanks. :) | |||
autrijus | np :) | ||
autrijus lols at Installing /usr/local/lib/perl6/site_perl/mach/CORE/pugs/pge/parrot.core | 10:06 | ||
svnbot6 | r5474, autrijus++ | * Allow exporting into non-main packages; export.t finally fixed. :) | ||
nothingmuch | morning | 10:14 | |
svnbot6 | r5475, autrijus++ | * more TODOification | 10:15 | |
r5476, autrijus++ | * fix typo in test. | |||
nothingmuch | autrijus: i need help with continuations, and your MMD | ||
autrijus | my MMD? | 10:16 | |
nothingmuch | the current implementation in puts | ||
pugs | |||
autrijus | oh. the current implementation is not at all scientific | 10:17 | |
what help do yo need with cont? | |||
nothingmuch | okay, | 10:18 | |
look in t/statements/{next,redo}.t | |||
we have some horrible bugs | |||
next and redo behave like calls instead of gotos: the statements right after them in the dynamic scope are returned to | |||
i've fixed next in while | 10:19 | ||
but it's pretty ugly | |||
i think we should generalize them so there is a 'generate a sym that wil goto this code', a bit more specific than genSymCC | |||
autrijus | ah. I can see why. | ||
yes. | 10:20 | ||
svnbot6 | r5477, autrijus++ | * now export is working, fix the misimporting test | ||
r5478, autrijus++ | * instead of :todo(1), please use :todo<bug> | |||
autrijus | that'd be the right direction | ||
nothingmuch | also look at Monads.hs and tell me if my fix is valid | ||
autrijus | it is valid. | 10:23 | |
nothingmuch | yumm | ||
I had no idea what it was doing, so i was guessing 'undef' is the expression evaluated to make a return value for 'last' | 10:24 | ||
autrijus | yes. | 10:25 | |
"esc undef" is basically shifting out to outer dynamic scope | |||
and push undef as the reply | 10:26 | ||
the inner dynamic scope is then thrown away | |||
nothingmuch | okay | ||
goody | |||
autrijus | a dynamic scope is deliminated by resetT | ||
nothingmuch | could you briefly explain Cont in haskell? | 10:29 | |
"dynamic scope" means the caller continuation stack maintained by the Cont monad? | |||
autrijus | yes... it is unrelated to envCaller | 10:30 | |
and the "callCC" works inside a stack frame | |||
nothingmuch | we just sync them because it's convenient? | ||
autrijus | yeah | ||
callCC snapshots the flow in a stack frame | |||
nothingmuch | callCC replaces the last stackframe with a certain action? | ||
autrijus | and when invoked it resumes execution from there | ||
yes | 10:31 | ||
nothingmuch | when who is invoked? | ||
autrijus | when the cc is invoked | ||
look at its type | |||
((a -> m b) -> m a) -> m a | |||
it is a "Eval a" | |||
that demands one argument | 10:32 | ||
the argument is a code that gets the CC | |||
if it finishes normally without invoking the CC | |||
then the resulting (m a) is the final (m a) | |||
if it invokes CC with a | |||
-- which may be done in any position -- it does not ever return anyway | |||
(hence the m b) | |||
nothingmuch | okay | ||
autrijus | then it escapes out with the a as the final (m a) | 10:33 | |
nothingmuch | and (a -> m b) is the basically the the point to continue on | ||
that is the thing right after $?CALLER::POSISITION if there was one in haskell? | |||
autrijus | yes I think that is correct. | ||
nothingmuch | ok, how would you refactor it? | 10:39 | |
autrijus | sorry; I'm not currently thinking about it. | 10:40 | |
I just got pirsmoke working again | |||
autrijus is firmly in relenging mode | |||
so I'd be happy to answer questions, but more high level thinking needs to wait until 6.2.8 | |||
(I apologize for the inconvenience) | 10:41 | ||
gaal | autrijus, i'm not working on Test.pm now (out of ideas re: the error). are we punting on that? | ||
autrijus | gaal: yes, punting on precomp Test | ||
gaal | ok | ||
autrijus | I doubt the gain anyway | ||
gaal | me too | ||
autrijus | good we agree :) | ||
nothingmuch | autrijus: so should I just repeat what I did? | 10:42 | |
autrijus | nothingmuch: that would be good | ||
svnbot6 | r5479, autrijus++ | * more unTODO and TODOify | ||
r5480, autrijus++ | * `make pirsmoke` revived. | |||
nothingmuch | okay | ||
gaal | i just hoped to be able to *measure* it :) but ther's no rush. | ||
nothingmuch | can I do what I did in Monads outside of Monads? | ||
how is line 380 of Eval.hs (genSymCC "&next") different from any &last? | 10:44 | ||
autrijus | you can do it in Eval.hs directly | 10:45 | |
line 380 captures the point where the next line is runBody | 10:46 | ||
so people invoking symNext will then run that. | |||
hence, next | |||
nothingmuch | oh, i see | ||
theorbtwo | It doesn't, it just happens at a different time, IOW. | 10:47 | |
nothingmuch | so how does &last get defined? | ||
i.e., how is there a symbol | |||
theorbtwo | Which is good, because next doesn't differ from last, except where they go. | ||
nothingmuch | if it happens later? | ||
or is 'runBody res sub'' not executed at all? | |||
oh, whoops | 10:48 | ||
autrijus | I hoped I don't have to explain that :) | ||
(the genSymCC for &last is the end of the reduction.) | |||
nothingmuch | i was reading it incorrectly, nevermind | ||
i got it now | |||
autrijus | cool | ||
nothingmuch tries to see how todo might be written | 10:49 | ||
s/todo/redo/ | |||
autrijus | I need to run to dinner. down to 8 failed testfiles now | 10:51 | |
(in the main suite) | |||
gaal | wow | ||
autrijus hopes to crush them during dinner | |||
Tree is still burning, as is Date and DateTime | 10:52 | ||
spare tuits to look at them welcome | |||
nothingmuch | autrijus: i looked at date/datetime | ||
the problem is that MMD is selecting the wrong BUILD | 10:53 | ||
or at least a problem | |||
i tried to hack your MMD | |||
but didn't get far | |||
autrijus | if they are beyond repair for the moment, add them to MANIFEST.SKIP please | ||
nothingmuch | i don't think so | ||
theorbtwo | Better: Add a test for the underlying problem, and put them both in MANIFEST.SKIP. | ||
autrijus | right. | ||
nothingmuch | the case is that BUILD(Str $string) is somehow bound to new(epoch => 123); | 10:54 | |
autrijus | er, the test for underlying problem can be a dies_ok | ||
nothingmuch | even though there is a BUILD (Int|Real +$epoch) { | ||
gaal | note that i hacked on Test.pm - I may have introduced a bug | ||
nothingmuch | when Str is commented out, then submethod BUILD () is used instead. | 10:55 | |
gaal | unlikely since 7000 tests still pass, but still :) | ||
nothingmuch | gaal: what did yo8u hack? | ||
gaal | workarounds to allow it to be precompiled | 10:56 | |
jaggers | guys sorry for the interruption , i need a bit of help | ||
autrijus | Time::Local can't numify anymore? hrm | ||
gaal | they can be reverted, in a pinch -- we're not precompiling for this release. | ||
autrijus | it should have numified to the original time() no? or am I mistaken | ||
jaggers | i ve been to trying to connect to DALnet , but not successful , i was able to connect thru win XP , but not able to connect thru fedora 4 | 10:57 | |
nothingmuch | autrijus: anyway, should (epoch => 123) bind to (Str $string | ||
gaal | autrijus, did Time::Local ever numify? | ||
nothingmuch | ) at all? | ||
autrijus | gaal: hrm, t/builtins/io/time.t tested something weird | ||
svnbot6 | r5481, autrijus++ | * fix borken test due to nonnumiability of Time::Local | 10:58 | |
autrijus | nothingmuch: no, it should decidedly fail | ||
ok, two more fails bite the dust. | |||
really need to run for dinner now. I'll be back in (say) a hour | |||
autrijus waves & | |||
gaal | jaggers, wrong channel? | ||
jaggers | i dunno | 10:59 | |
Aankhen`` | gaal >> You can't just use a regular, older version of Test.pm? | ||
jaggers | this is wat is keeps saying GAAL | ||
* Looking up irc.dal.net | |||
* Connecting to irc.dal.net (194.68.45.50) port 6667... | |||
* Connection failed. Error: Connection timed out | |||
Cycling to next server in DALnet... | |||
* Disconnected (). | |||
gaal | jaggers: this is for perl6 development, i don't think we can help you | ||
jaggers | am sorry gaal | 11:00 | |
gaal | Aankhen``: sure, i was saying, we can revert if necessary | ||
Aankhen`` | Ah. | ||
Right, I missed that. :-) | |||
nothingmuch | autrijus: how do i comkpose the return of genSymPrim and genSymCC? symRedo . symNext doesn't work anymore | ||
gaal | jaggers, no problem | ||
nothingmuch | do I need to call updateSubPad N times? | ||
Juerd wonders what lwall has been smoking. | 11:01 | ||
lightstep | blue sugar? | 11:02 | |
wilx | DALnet isn't dead? | 11:03 | |
svnbot6 | r5482, autrijus++ | * restore PUGS_VERSION. | ||
jaggers | no i cud connect to DALnet thru win XP , while iam not able to connect from fedroa 4 | 11:04 | |
Aankhen`` | Juerd >> What prompted that wondering? | ||
Juerd | Aankhen``: .foo will be forbidden whenever a topic is used in a method. | ||
that is: method foo { given $something { .foo } } will be a compile time error | 11:05 | ||
Aankhen`` | Ah, that threw me off too. | ||
Juerd | See also my post, of which the subject matches /WTF/ | ||
Aankhen`` | That should be interesting. :-) | ||
Juerd | I'm amazed and very upset at the same time. This time, I really did lose confidence in Larry. | ||
I had anticipated a lot, but not this. | 11:06 | ||
nothingmuch | oh man! | ||
that sucks | 11:07 | ||
nothingmuch wrote a lot of code that uses ./foo and .foo to disambiguate with *HEAVY* (read 2-3 layer nested) topicalization | |||
and it was nice code to write | |||
not confusing | |||
Aankhen`` | I used it a lot too... not 2-3 nested layers, but enough that this sucks. | 11:08 | |
svnbot6 | r5483, iblech++ | * Finished the move of pugsbugs/export.t to packages/export.t and added another test. | ||
r5483, iblech++ | * Usual svn props added to new t/statements/redo.t. | |||
Aankhen`` | Juerd++ # for writing it up :-) | 11:09 | |
Juerd | Please let your opinion be heard on the mailinglist as well | ||
If only an AOL-ese response. | 11:10 | ||
nothingmuch | done | 11:11 | |
Juerd goes to collect some cash from a client | 11:12 | ||
His time is up. | |||
Bye | 11:13 | ||
nothingmuch | good luck | ||
Aankhen`` | See ya. | 11:14 | |
Aankhen`` 's "me too" post has been sent. | 11:15 | ||
lightstep | what's with the tendency to preform monadic actions in procedures? like genSymPrim doesn't return m(Pad->Pad), or ifListContext doesn't return (m Bool) ? | 11:16 | |
what about separation of concerns? | 11:17 | ||
nothingmuch | lightstep: please separate concerns... that code is confusing me =) | ||
svnbot6 | r5484, Aankhen++ | * t/data_types/enum.t: added a few tests, modernised some of the older tests. | 11:32 | |
r5485, Aankhen++ | * t/data_types/enum.t: added 'hex' enum. | |||
nothingmuch | autrijus: | 11:34 | |
eep | |||
gaal | perlcabal.org/~gaal/smoke_xp.html # r5466 | 11:36 | |
theorbtwo wonders what bonus: 0 means in the tests.yml file. | 11:42 | ||
svnbot6 | r5486, Aankhen++ | * t/data_types/enum.t: fixed a few mistakes in the previous commit related to quoted numbers. | ||
gaal | more tests run than planned, iirc | 11:43 | |
nothingmuch | autrijus: help | ||
pasteling | "nothingmuch" at 212.143.91.217 pasted "code that makes infinite loops" (27 lines, 1.2K) at sial.org/pbot/11709 | 11:45 | |
nothingmuch | my impl of for is looping into the redo continuation infinitely | ||
why is that? | |||
svnbot6 | r5487, iblech++ | pugs::run -- Added entry about %*ENV<PUGS_COMPILE_PRELUDE>. autrijus: Please | 11:54 | |
r5487, iblech++ | fill in the XXX, thanks :) | |||
r5488, nothingmuch++ | Ugly fix for redo in for loops | 12:01 | ||
nothingmuch | genSymCC needs to be redone | 12:02 | |
it's no good when there are more than 2 escapes involved | |||
iblech--; # made my recompilation cycle slow | 12:06 | ||
Limbic_Region shakes his head in disbelief | 12:08 | ||
nothingmuch | lightste1: | ||
Limbic_Region: ? | |||
Limbic_Region | nothingmuch - did you follow the GHC perl.exe conversation I was having yesterday? | 12:09 | |
nothingmuch | no | ||
fill me in? | |||
Limbic_Region | long story short then | ||
ghc ships with a perl binary at the root install directory, windows is broken with regards to . and PATH so if you are there you get GHC's perl, if you remove it you won't know it is a problem right away and even then the error message is too cryptic to know what the problem was | 12:10 | ||
so I recommended 3 things that could make it more user friendly - rename the binary, improve the error message, have it look at %PATH as a backup | 12:11 | ||
nothingmuch | ghc ships with perl? wtf? | ||
Limbic_Region | well - after a long series of emails trying to convince each other of the validity of our respective perspectives | ||
theorbtwo | Probably because of the evil glasgow haskell compiler, what ghc uses to bootstrap with. | 12:12 | |
nothingmuch | heh | ||
Limbic_Region | I got an email from a guy at microsoft saying that Windows is broken WRT to . and PATH and that renaming the exe and documenting the fact that changing the root install directory is bad would be a good thing | ||
nothingmuch - if you are really interested in why GHC ships with a perl binary - grep yesterday's logs - autrijus linked to relavent sources IIRC | 12:13 | ||
Limbic_Region was just shaking his head in disbelief of what he saw coming from a microsoft guy - in writing - from his microsoft account | |||
nothingmuch | pok^H^H^Hk^H^Hnah | ||
i can't type today | |||
that was the weirdes typo ever | |||
lightste1 | he's at MS research, not in MS evil empire | 12:14 | |
Limbic_Region | simon marlow not the other simon - but I suspect you are still correct lightste1 | 12:15 | |
12:15
lightste1 is now known as lightstep
|
|||
nothingmuch | fixses tricksy bugses | 12:20 | |
anyone feel like untodoing? | 12:22 | ||
Aankhen`` | Are nested `gather/take`s allowed? | 12:23 | |
svnbot6 | r5489, nothingmuch++ | Same ugly fix for next/redo in loop(;;){} loops | ||
Aankhen`` tries it. | |||
nothingmuch | wait, more on the way | ||
theorbtwo | Should be allowed, I think. | ||
Might not presently work, though. | |||
nothingmuch | Aankhen``, theorbtwo: i think it does work | ||
luqui and I used it in the pil -> p5 | 12:24 | ||
Aankhen`` | Doesn't seem to. | ||
Hrm. | |||
Pugs is fabricating array elements. | |||
pugs> gather { take "a"; take (gather { take "JUMPED IN!"; take "AGAIN!" }); tak | |||
e "c"; }; | |||
('a', 'b', 'c', 'd') | |||
nothingmuch | okay, then it did work ;-) | ||
Aankhen`` | Am I missing something? | ||
nothingmuch | oh wait, gather take, not given when | 12:25 | |
nothingmuch idiot | |||
Aankhen`` | `gather { take "foo" }` is like `my @ret = (); push @ret, "foo";`, right? | ||
svnbot6 | r5490, nothingmuch++ | Fix redo test and implementation of next for loop(;;){} | ||
r5491, nothingmuch++ | redo fixed for while loops... code needs cleanup | |||
QtPlatypus | Aankhen``: Yes. | 12:26 | |
theorbtwo | Roughly, but with extra added funky lazy goodness. | ||
QtPlatypus | theorbtwo: In a lazy context. | ||
Aankhen`` | Indeed. | ||
pugs> gather { take "a"; take "b"; } | 12:27 | ||
('a', 'b') | |||
svnbot6 | r5492, autrijus++ | * Fix the broken handling of %INC -- the blind `VInt 1` | 12:38 | |
r5492, autrijus++ | broke `use Foo; use Foo;` because the second one does | |||
r5492, autrijus++ | not return a VControl ControlEnv as it should. | |||
r5493, autrijus++ | * identity test for functions should now pass; Eq and Ord | |||
r5493, autrijus++ | for function and dynamics redefined to base on 'show'. | |||
r5494, autrijus++ | * more TODOify. | |||
autrijus | two left: export, examples | 12:40 | |
rafl is working on having lib/* installing to sane paths | |||
(maybe list them as subdirs?) | |||
I'm still fixing export #2 and examples/quicksort; after that I'll clean up modules. if lib/ installation is done by then we'll enter preflight. | 12:41 | ||
nothingmuch | autrijus: before preflight, i'd like you to look at Date vs MMD with me | 12:42 | |
i think the problem is simple | |||
but I don't know | |||
either way, all next/last/redo statements are contized now | |||
autrijus | nothingmuch++ # wonderful, seriously | 12:44 | |
svnbot6 | r5495, autrijus++ | * align signature_matching's todoity with reality | ||
autrijus | nothingmuch: can you reduce the problem to something in the main test suite? | ||
nothingmuch | i'm not 100% sure | ||
i'm having trouble actually diagnosing the dispatch problem | 12:45 | ||
autrijus | please try anyway; I'll have tuit to look at that after I fix export and quicksort | ||
nothingmuch | okay | ||
autrijus | mm backlash in p6l | 12:46 | |
autrijus steps back very slowly | |||
nothingmuch | the .foo forbidden thread? | 12:47 | |
autrijus | yup | 12:48 | |
broquaint | Ignore p6l, it's just noise. | ||
autrijus | broquaint: sometimes noise makes into synopsis :) | ||
nothingmuch | food! | 12:49 | |
broquaint | Good idea! | ||
broquaint away & # insert pie into piehole | 12:50 | ||
castaway | bah, me hungry | 12:51 | |
Limbic_Region looks around for bah - doesn't see them and says nice to meet you hungry - me L~R | 12:54 | ||
castaway pokes Limbic_Region | 12:55 | ||
nothingmuch swings from a vine, and saves Limbic_Region from hungry's poking | |||
castaway | this getting a visa thing is turning out to be more complicated than we thought :( | ||
nothingmuch | me tarazan, you jean husband | ||
Limbic_Region rewards nothingmuch's gallantry with a bananna | 12:56 | ||
nothingmuch is offended by Limbic_Region's obcenety | 12:57 | ||
Limbic_Region | WRT the .method acting on $self thread - is the OO code currently written still valid | ||
I really should have been following that thread closer | 12:59 | ||
autrijus | Limbic_Region: glad to hear spj resolved the bug | 13:09 | |
calling it ghc-perl.exe would be good enough | |||
or was it jeffacake? | |||
*JaffaCake | 13:10 | ||
svnbot6 | r5496, autrijus++ | * JeffaCake notes that there is now Linux x86_64 GHC snapshots, | 13:15 | |
r5496, autrijus++ | and we should reflect this in INSTALL. | |||
Limbic_Region | it was spj that noted clearer docs and renaming the exe were no effort things that could make it easier on the next person | 13:26 | |
autrijus | Limbic_Region: cool. | ||
Limbic_Region | I feel really good about the exchange since the original reaction was - you really shouldn't be doing that and I can't think of a good reason why anyone else would | 13:27 | |
autrijus - fwiw, there is a "should I develop in p5 or wait till p6" thread at the monastery - I can post link if interested | 13:28 | ||
autrijus | sure, url? | ||
stevan | autrijus: is Tree still burning? | ||
autrijus | stevan: yes | ||
stevan | morning BTW :) | ||
autrijus: I think I did that, so I will go fix :) | 13:29 | ||
autrijus | please do :) it's something about Tree::BUILD | ||
stevan | ah | ||
ok | |||
I didnt do *that*, but I will fix none the less :) | |||
Limbic_Region | perlmonks.org/index.pl?node_id=474125 | 13:30 | |
stevan wonders why more people arent using Pugs in production :) | 13:31 | ||
integral | too slow | 13:32 | |
autrijus | indeed. | ||
stevan | bah! good things come to those who wait :) | 13:33 | |
autrijus | we really need PIL->P5 to convince the production crowd of adopters | ||
QtPlatypus | Keeps changing. | ||
integral | and I don't trust parrot, and PIR output isn't good enough yet | ||
Limbic_Region | I would be less concerned about the slowness factor than the stability | ||
autrijus | QtPlatypus: strangely though, there are very few regressions in each release | ||
Limbic_Region | having correct code that is only going to get faster wouldn't be a big concern for me | 13:34 | |
autrijus | but "keeps getting new and/or previously unspecced stuff" indeed | ||
Limbic_Region | but having code that may be b0rk in two days because the wind changes directions would really p!$$ me off | ||
I would likely have fun with refactoring previously stable code after new and exiting features were added | 13:35 | ||
autrijus | nodnod. | ||
Limbic_Region | but having to deal with all the changes all at once would just be too much | ||
lumi | The Lilypond folk have a version porter | 13:36 | |
gaal | interesting thing, with the %*INC bug. i thought the typechecker would refuse to accept such things :) | 13:44 | |
autrijus | gaal: it's not a typechecker thing | ||
gaal: VControl ControlEnv is still a Val. | |||
gaal | well, i suppose that means i can get back to experimenting with precomp Test. i have a 4596 smoking now, though i did forget to look at the build start time. | 13:45 | |
autrijus | gaal: the smoke report has a "duration"key. | 13:46 | |
it's listed at top of html | |||
I should know, I asked for that :) | |||
gaal | yes, i know (i added it) but it only counts the smoke itself. | ||
Limbic_Region | hmmm - given my limited understanding of Win32 architecture - I find this behavior a bit odd | ||
autrijus | heh, right, and I was about to say you implemented it iirc | ||
Limbic_Region | I am in the middle of building Pugs and I decide I want to abort, svn up, and make clean | 13:47 | |
I hit ctrl-C and get the prompt back | |||
gaal | i'll time the second pass. | ||
Limbic_Region | I type exit - and it just sits there | ||
I check the process table and GHC is still running | |||
gaal | l~r: similar things happen to me too | ||
Limbic_Region | shouldn't GHC have died when I killed the make process since Win32 doesn't have a real fork/exect ? | ||
autrijus | it means it uses CreateProcess | ||
but failed to capture SIGINT | 13:48 | ||
Limbic_Region | which for all intents and purposes is the same thing? | ||
autrijus | I think it's a GHC issue. | ||
Limbic_Region | heh - not going there autrijus | ||
autrijus | JaffaCake is still in #haskell -- maybe ask him there :) | ||
Limbic_Region | I am 1 and 0 | 13:49 | |
autrijus | (== simon marlow) | ||
gaal | what i've seen is that ^Cing the tests sometimes takes some time to kick in. | ||
svnbot6 | r5497, Stevan++ | Tree - putting out the fire (i think) | ||
Limbic_Region wants to retire a winner | |||
autrijus | lol | ||
Limbic_Region | anyway - I have started another build on trunk so I will be AFK for about 45 mins | ||
Limbic_Region AFK & | |||
autrijus | ok, quicksort is the only remaining main suite failure | 13:50 | |
svnbot6 | r5498, autrijus++ | * export.t -- putting out the fire (I think) | 13:54 | |
r5499, Stevan++ | Tree - pouring more water on the fire .oO( <smoke> ) | |||
castaway laughs | 13:55 | ||
gaal | are you getting failures on pugsrun/09- and 10- ? win32 | 13:59 | |
autrijus | iblech++ # creative use of pzero to parse `multi foo { }` | ||
svnbot6 | r5500, Stevan++ | Tree - .oO( *cough* *cough* )Oo. | 14:00 | |
r5501, Stevan++ | Tree - only *you* can prevent forest fires :) | 14:05 | ||
r5502, autrijus++ | * reflect the `multi foo` shorthand for `multi sub foo` in quicksort | |||
r5502, autrijus++ | and in ChangeLog | |||
r5503, autrijus++ | * add minimal test case for the quicksort testfail in multi_sub.t. | |||
r5504, autrijus++ | * avoid duplicate #define in Pugs.Version | |||
r5505, rafl++ | Added Makefile.PL for Inline::Pugs. | |||
14:06
wilx` is now known as iwlx,
iwlx is now known as wilx
|
|||
stevan | autrijus: the Tree fire is out | 14:07 | |
geoffb | Morning, all . . . | ||
stevan | looked like it had to do with the BUILD MMD | ||
autrijus | wonderful. | ||
stevan | morning geoffb :) | ||
autrijus | Perl::MetaModel is still burning | 14:08 | |
rafl_ | Hm. I try to rename lib/Inline to lib/Inline-Pugs, but svk gives me: Merging back to mirror source svn.openfoundry.org/pugs. | ||
Commit message saved in svk-commitTkN4a.tmp. | |||
Why? | |||
autrijus | I'm rapidly thinking we should move docs to notes and ditch all code in ext/ | ||
stevan | autrijus: that's mugwumps | ||
gaal | pcTest build phase near completion. | ||
stevan | I dont think it is meant to be executable | ||
autrijus | unless mugwump is willing to maintain the p6 equiv to the p5 one in lib | ||
in which case it should be made to pass tests | |||
stevan | autrijus: we can move lib/ into docs/ | ||
as they are really just notes IMO | |||
autrijus | mugwump: ideas? | 14:09 | |
rafl_: hm? curious. | |||
rafl_: but that'd be wrong still | |||
stevan also questions the sanity of the contents of docs/* now | |||
rafl_ | autrijus: Why? | ||
autrijus | better to mkdir lib/Inline-Pugs/lib/Inline/ | ||
and then move Pugs.pm there | |||
rafl_ | autrijus: OK. | 14:10 | |
nothingmuch | moose! | 14:12 | |
svnbot6 | r5506, Stevan++ | Tree - oh no! it still burning <stomp> <stomp> | ||
nothingmuch | stevan: i'm stuck with haskell, so wanna do sigs? | ||
clkao | rafl_: hmm? why would you see that merge back thing when you do mv? or you mean duiring the commmit? | 14:13 | |
castaway grins at the svn messages | |||
rafl_ | clkao: Yes. | ||
stevan | nothingmuch: sure, but I will want your input | 14:14 | |
autrijus | also, we have conflicting Date.pm in DateTime and Date | ||
stevan | castaway: :) | ||
nothingmuch | no, i mean want me to do thjem? | ||
and help out a bit? | |||
MMD in pugs is a bit too hairy for me | |||
autrijus | which means we clearly need to work on multiname library support | ||
rafl_ | Hm. I don't get it. How can I reset my local svk copy to that version on the server? | 14:15 | |
nothingmuch | rafl_: rm -rf... | ||
autrijus | but seeing Date.pm is all stub, maybe I'll just MANIFEST.SKIP it for the release. | ||
stevan | nothingmuch: ok, but I have to do $work today too | ||
autrijus | (Date.pm in ext/Date/, that is) | ||
nothingmuch | stevan: ok | ||
autrijus | mugwump: ideas? | ||
nothingmuch | i think we should namespace it a bit like CPAN | 14:17 | |
QtPlatypus | How so nothingmuch ? | ||
svnbot6 | r5507, autrijus++ | * DateTime - remove the erroneous use of colon | ||
nothingmuch | lib/AUTHOR/Module-Name-0.01/Module/Name.pm | ||
autrijus: now that you've removed the colon from datetime, there are MMD match errors | |||
with AUTHOR not being only uppercase | 14:18 | ||
and not being limited to 8 chars | |||
maybe lib/AUTHOR/Module-Name-0.01/lib/Module/Name.pm so that it's a bit more extensible | 14:19 | ||
btw, since we're in preflight, smoke report just finished | |||
Khisanth | hmm | ||
gaal | we're in preflight? | 14:20 | |
nothingmuch | it sounds like it | ||
gaal | i'll have pcTest smoke results up in a bit. | ||
nothingmuch | burning trees, everyone wading through bugs | ||
seen geoffb | 14:21 | ||
castaway | geoffb went to bed earlier (several hours ago?) | ||
nothingmuch | perlbot: seen geoffb? | ||
ah, ok | |||
Limbic_Region | seen geoffb | ||
nothingmuch | Limbic_Region: jabbot isn't here | ||
Limbic_Region | ahh - perlbot doesn't keep track | 14:22 | |
gaal | i'm tempted to add a progress indicator to the harness :) | ||
geoffb | Um, right here | ||
stevan | I just saw geoffb about 20 min ago | ||
geoffb | what's up guys? | ||
stevan | there he is,... get em!!! | ||
nothingmuch | geoffb: all of your bugs are belong to past | ||
do you have any more tests? | |||
gaal | stevan++ # nothing special, i just like your attitude | ||
QtPlatypus | geoffb was last seen 15 minits ago. | 14:23 | |
castaway scratches head.. 8short sleeper?) | |||
stevan | gaal++ # coffee is goooooddddd | ||
geoffb | nothingmuch, they're all fixed? Schweet | ||
nothingmuch | gaal: while you're at it, make the parallel harness truely async | ||
geoffb | castaway, yeah, only one sleep cycle last night, instead of two . . . :-/ | ||
gaal | suuuure | ||
nothingmuch | parent prints test file names (padded) to pipe | ||
autrijus | we're not yet in preflight because I'm quickly running out of sanity :) | ||
gaal | nothingmuch: if it were written in p6, i'd consider it | ||
nothingmuch | child processes sysread them, and unpack("Z*") | ||
gaal | but it has to work portably. | 14:24 | |
geoffb | nothingmuch, I'm still reading backlog ATM . . . and last night I put all my energy into docs/notes/plan before falling into bed | ||
gaal | okay, the results are in: | ||
pcTest is indeed much faster to run (duh!) | |||
autrijus | question is how much and whether it makes up for the comp time | ||
gaal | 782 sec instead of 1368 | ||
nothingmuch | autrijus: are you wokring on datetime? | ||
gaal | however, the 2nd compilation phase is about five minutes on my machine | 14:25 | |
autrijus | nothingmuch: no, I just saved it from parsefail | ||
nothingmuch | autrijus: are you planning on working on it? | ||
autrijus | gaal: so that's still 5 mins saved | ||
nothingmuch: my plan doesn't matter... my body will force me into blissful sleep in 10 minutes | 14:26 | ||
so not until I wake up, no | |||
gaal | and of course, we already pay some of those 5 minutes on account of the pcPrelude | ||
i can get the exact delta if it's interesting. | |||
autrijus | gaal: if it can be made optional, I think definitely check it in | ||
geoffb | gaal, but pcPrelude itself already saves net time, yes? | 14:27 | |
autrijus | "it" being the evil mangler thing you referred to | ||
gaal | it can of course be made so, but i don't want to bloat the build system more | ||
geoffb, sure it does. | |||
geoffb | I just didn't understand your "we already pay some of those 5 minutes" comment | 14:28 | |
gaal | i like evil manglers, but i don't like having too many knobs | ||
svnbot6 | r5508, rafl++ | * Moved lib/Inline to lib/Inline-Pugs. | ||
r5509, autrijus++ | * untodo the now passing next/redo tests, nothingmuch++ | |||
autrijus | gaal: bah, the build system can survive another bloat. :) but it's ultimately your call | ||
geoffb: the Run.hs 5min build includes both Prelude.pm and Test.pm | |||
rafl_ | Can u push the Version of Perl6/Pugs.pm to 6.002008? | ||
gaal | here's my proposal: | ||
autrijus | rafl_: you can do that. | ||
geoffb | AH, gotcha, thanks autrijus | ||
gaal | put all those build options in a yaml file | ||
including whether to optimize or not | |||
geoffb | clearly short on sanity from lack of sleep | ||
gaal | and pcPrelude or nor | 14:29 | |
nothingmuch | and ghc heap size | ||
gaal | and all other things | ||
and nothingmuch heap size | |||
errr | |||
how about that? | |||
nothingmuch | i like it | ||
geoffb | All in favor say aye? Aye. | ||
nothingmuch | aye | ||
autrijus | I don't particularly like to depend on YAML.pm :) | 14:30 | |
but I can see a minimal yaml parser in two lines | |||
so, aye. | |||
gaal | split /:/ :-) | ||
autrijus | but please leave nothingmuch's heap size out of it | ||
nothingmuch | what's bad about a YAML dependency? | 14:31 | |
gaal | lol | ||
i had a feeling you'd say that | |||
stevan | we already have a YAML dep for the smoker | ||
autrijus | nothingmuch: it will increase our dependency list by +Inf times | ||
(it's currently 0) | |||
gaal | err, not so, autrijus, we already need a newish MM | 14:32 | |
nothingmuch | yaml's meta.yml: | ||
build_requires: | |||
Test::More: 0.54 | |||
requires: | |||
perl: 5.005003 | |||
geoffb | dependency list 0? bwa-ha-ha-ha-haaaa . . . | ||
geoffb remembers the day spent finding and building various haskell dependencies for pugs . . . . | 14:33 | ||
autrijus | gaal: er, that means 5.6.2 or 5.8.1 | ||
gaal: hardly newish | |||
stevan ... "I get by with a little help from my friends... gonna try with a little help from my friends" | |||
autrijus | geoffb: CPAN dependency list, silly :) | ||
gaal | well, fwiw, that means you can't build on a vanilla msys. | ||
geoffb | autrijus, I knew that, it just hit my funny bone | ||
gaal | not that i know of anyone who still does that | ||
autrijus | but anyway. I'd like to avoid depending on a noncore 5.8.1 module as much as possible. | 14:34 | |
gaal | but maybe that proves my point | ||
anyway: | |||
nothingmuch | YAML has almost no deps | ||
gaal | i'm fine with parsing yaml ourselves | ||
minimally | |||
kungfuftr | JSON! | ||
autrijus | cool. | 14:35 | |
gaal | ? | ||
autrijus | gaal++ # make it so then :) | ||
JSON is a weird YAML dialect that is somehow welcomed by javascript folks | |||
gaal | okay, i think i'll phone gabor and pick up the wiki router for the hackathon first. | ||
rafl_ | Hm. What about P5-PIL-Run? What is it needed? Should it be installed? Looks suspicious to me. | 14:36 | |
kungfuftr | JSON isn't YAML | ||
clkao | rafl_: ah, you just hit a bug which is fixed in 1.01 i guess. | ||
autrijus | actually, all valid JSON is valid YAML, iirc. | ||
rafl_ | clkao: What bug? | ||
geoffb | hmmm . . . why not just include YAML in inc/? | ||
stevan | rafl_: that should not be installed, and neither should Perl6-MetaModel | ||
kungfuftr | autrijus: JSON can be a single line | ||
autrijus | so can yaml. | ||
kungfuftr | and be a huge data structure | ||
rafl_ | clkao: Oh, you mean the svk thing? Yes. Maybe. It works now. | ||
clkao | rafl_: mv tries to do funky things | ||
autrijus | ditto. | ||
kungfuftr | *blink* | ||
rafl_ | stevan: OK. | ||
kungfuftr | 2 secs | ||
gaal | it doesn't say "yaml" anywhere on www.crockford.com/JSON/index.html -- but i don't know if that's the official page | 14:37 | |
kungfuftr | www.crockford.com/JSON/index.html ? | ||
autrijus | kungfuftr: and YAML.pm is horribly outdated and broken. :) | ||
yes | |||
gaal | kff: 1st google hit | ||
stevan | rafl_: FYI, P5-PIL-Run is the start of the Perl 5 runtime for PIL/Perl6 | ||
autrijus | kungfuftr: redhanded.hobix.com/inspect/yamlIsJson.html | ||
kungfuftr | ah! | ||
autrijus | all other languages get to use a nonbroken YAML implementation | 14:38 | |
except for Perl5 :) | |||
svnbot6 | r5510, rafl++ | * Moved lib/Perl6 to lib/Perl6-Pugs. | ||
r5510, rafl++ | * Bumped up version of Pugs.pm to 6.002008. | |||
r5510, rafl++ | * Moved lib/pugs* to lib/Perl6/Pugs. | |||
r5510, rafl++ | * Added Makefile.PL for lib/Perl6/Pugs | |||
r5511, autrijus++ | * more TODO juggling in light of the namespace fixes. | |||
kungfuftr | so you can use the JSON parser instead? | 14:39 | |
gaal | is yaml.pm core in any versio of p5? | 14:40 | |
autrijus | gaal: no. | ||
kungfuftr: no... Syck can parse JSON; the reverse isn't neccessarily true | |||
geoffb | So, at the risk of repeating myself, why not just have a YAML parser in inc/? | 14:41 | |
Rather than writing from scratch? | |||
kungfuftr | autrijus: bah... soz... head's away with it... too warm here | ||
autrijus | geoffb: I guess 62k isn't much | ||
it's pushing it a bit | 14:42 | ||
and if all we are using is a single hash with no nestedness, then it's quite wasteful | |||
geoffb | It get 54 MB for the source tree in total . . . . | ||
autrijus | but should we ever need nested data or anything beyond a simple regex parser | ||
geoffb | fair enough | ||
autrijus | then sure, inc/YAML.pm it is. | 14:43 | |
er what? 54mb? | |||
geoffb | Oh, duh, minus 12.7 MB -- I still had a blib | ||
autrijus | er what? | ||
are you counting .o files? | |||
gaal | geoffb, that's after a build, surely? | ||
geoffb | hold, on, making realclean | ||
autrijus | 5mb here. | 14:44 | |
geoffb | oh, phew, only 10.5 MB after that | ||
OK, so why am I still off by factor of 2? | |||
autrijus | I have no idea. | ||
rafl_ | Why do we have use lib 'lib' in Makefile.PL? I can't see anything from lib being used there. | 14:45 | |
integral | .svn? | ||
gaal | df -k if you're on hpux :-P | ||
geoffb | integral, using svk | ||
gaal | (*du | ||
geoffb | I did du -cskx * |sort -n | ||
autrijus | rafl_: I didn't remember. try taking it off and see if it works still | ||
gaal | bbiab & | ||
autrijus | if yes take it out | ||
rafl_ | autrijus: Did that. It does. | 14:46 | |
autrijus | anyway... 62k isn't much for a 5mb tree. iff it's needed, throw it to inc/. | ||
rafl_: take it out then. | |||
rafl_ | autrijus: I replaced that with use lib 'util'. I had some problems in inc/Module/Install/Pugs.pm to use PugsConfig. | 14:47 | |
autrijus | sure. | ||
I can't stay up any longer. hack on, and see you tomorrow :) | |||
theorbtwo | Do you have .svn dirs in there? | ||
autrijus waves & | 14:48 | ||
geoffb | bye, autrijus | ||
svnbot6 | r5512, bsmith++ | Makefile.PL - get version from lib/Perl6-Pugs/lib/Perl6/Pugs.pm and | ||
r5512, bsmith++ | use lib 'util'. | |||
rafl_ | Hm. Is he in here? I'm also already working on that. | 14:50 | |
integral | oh, yep I am | ||
I've just found some more places too | |||
rafl_ | So, please wait a moment. I'm just trying if everything is working and will commit it then, OK? | 14:51 | |
integral | ok, sorry. I was just trying to build to check my changes with HEAD | ||
rafl_ | Oh, OK. | 14:52 | |
What other places did you found? util/config_h.pl and Makefile.PL is everything I needed to change. | 14:53 | ||
integral | that's it, it's building fine atm | ||
nothingmuch | make: *** No rule to make target `lib/Perl6/Pugs.pm', needed by `src/Pugs/pugs_config.h'. Stop. | 14:54 | |
rafl_ | nothingmuch: integral fixed that in 5512 I think. | ||
integral | that's the one I missed | 14:55 | |
nothingmuch | i just synched | ||
integral | rafl_: are you going to commit the rest of the changes? | ||
rafl_ | integral: Yes. I'll do that now. | ||
integral | rafl_++ | 14:56 | |
svnbot6 | r5513, rafl++ | * Build lib/ recursively, just like ext/. | 15:02 | |
r5513, rafl++ | * s#lib/Perl6/Pugs.pm#lib/Perl6-Pugs/$&# Makefile.PL util/config_h.pl | |||
r5514, rafl++ | * Adjusted path for pugs.pod in debian/rules. | |||
rafl_ | Is build_subdirs also running the test for each subdir? | 15:19 | |
Who want's to fix utils/src_to_blib.pl? It installs everything, including temporary and object files and stuff. That's not really needed, is it? | 15:30 | ||
What creates the contents of blib/ during the build? | 15:37 | ||
Also p6 stuff seems to be put into blib/. Shoudn't that go into blib6? | 15:38 | ||
gaal | rafl_: (i'm not an expert on MM, but) see PM_TO_BLIB in Makefile | ||
rafl_ | Hm. Can I prevent Module::Install to look into lib to find something to install? | 15:40 | |
gaal | sorry, dunno. | ||
rafl_ | ingy, autrijus: Do you know how to prevent Module::Install to look into lib/ to find its stuff to install? | 15:41 | |
(They're listed in AUTHORS, so I assume they know about that. | 15:42 | ||
gaal | at least one of them is asleep atm :) | ||
svnbot6 | r5515, putter++ | docs/notes/plan: added link to original form, and a note re it not really being an interview. | ||
putter | geoffb: Thanks for the rewrite. I appreciate the help. I have some mixed feelings about the result. Some information lost, some mistakes added. Better grammar, but also less dense. But nice things added. Anyway, so I added a link to the original, so folks have both, and a note on the liberties I took, which would have been inappropriate if it had really been an interview. Thanks again. | 15:50 | |
svnbot6 | r5516, putter++ | notes/plan: added a note of context at top. As, being linked from autrijus's journal, many will see it rsn. | 15:58 | |
putter | masak: "I am sorry for the length of my letter, | 16:00 | |
but I had not the time to write a short one." | |||
[Blaise Pascal [1]] | |||
www.vendian.org/envelope/dir1/cant_explain.html | 16:01 | ||
tnx :) | |||
geoffb++ | 16:05 | ||
gaal | what can i assume about make? is there a minimum standard for rules that { gmake, nmake, bsd make } agree to? i just want "if". | 16:07 | |
putter | And, I forgot last night to say, thanks to mugwump++, geoffb++, stevan++, and anyone I missed, for your help collecting ideas for the note. | ||
gaal: perl? | 16:08 | ||
gaal | hmm | ||
i might actually do that. | |||
how long can an environment variable typically be, on the worst of OSes? | 16:10 | ||
is 100 chars still safe? | 16:11 | ||
150? 250? | |||
putter | 10? ;) | ||
lightstep | enough to store PATH | ||
gaal | :-) | ||
Limbic_Region | Failed 6/355 test scripts, 98.31% okay. -2/6342 subtests failed, 100.03% okay. | ||
lightstep | that is, dozens of chars | ||
Limbic_Region | -2 tests failed - 100.03% ok | ||
got to love those numbers | |||
;-) | |||
gaal | how many dozens is the crux of the matter | 16:12 | |
dudley | gaal: I think VMS has a limit of 255... | ||
gaal | i think i can live with that. | ||
100 will probably be okay for what i need too, but 50 is iffy. | 16:13 | ||
the idea: config.yml has key/value pairs. you set those with an editor or a Configure script (not included). | 16:14 | ||
the pro is that there's a standard way to override those w/o going to the editor again | 16:15 | ||
env PUGS_OPT=key:val make | |||
(usually you don't need that at all) | 16:17 | ||
putter | re "standard way", but note that it is os specific. so ok for users, but needs to be wrapped by perl in makefiles. | 16:19 | |
gaal | by os specific you mean that there's no env on windows, or something else? | 16:20 | |
dudley | There's no env on VMS, either. I get the distinct feeling that I'm going to end up trying to port Perl6 to VMS someday... | 16:24 | |
gaal | dudley: how do you pass args to make on vms? just command line? | 16:25 | |
dudley | Gnu make barely works on vms. MMK is the standard build tool. | 16:26 | |
gaal | the drive here is primarily to put all build preferences in one place; making that overridable from either the command line or the environment is very important but not crucial. anyway a vms is not for a while is it? :) | 16:27 | |
*a vms port | |||
dudley | Yeah, i was mostly joking. | ||
I do need it to run on VMS eventually, though. | 16:28 | ||
gaal | beh, use ghc to crosscompile. | ||
you didn't say you needed it to *build* there :) | |||
dudley | :-) | 16:29 | |
putter | JeffaCake/autrijus re Linux x86_64 GHC snapshots... but do they actually work? the two I tried failed to make. (just a cautionary note while backlogging...) | 16:30 | |
dudley wanders off to find a bookstore & | |||
putter | & | 16:31 | |
Re inconvenience of changing p6 spec, I can't find the quote now, but Denis Richie(?) wrote how he realized having whitespace be significant (or space vs tab??) was a mistake a couple of weeks(?) after doing it (in 197x(?)), but at that point he had too many users (order-10 (?)) to fix it. | 16:36 | ||
gaal | Stuart Feldman, and it's a great story, but i can't find the quote either. | 16:40 | |
www.faqs.org/docs/artu/ch15s04.html | 16:42 | ||
" And then a few weeks later I had a user population of about a dozen, most of them friends, and I didn't want to screw up my embedded base. The rest, sadly, is history." | 16:43 | ||
putter | :) thanks! | 16:46 | |
cognominal | tab should not even be a character, more like a mecanographic device | 16:47 | |
gaal likes the librarian job | 16:48 | ||
# www.livejournal.com/users/gaal/2002/03/14/ | |||
putter | gaal: knobs, please knobs. (backloging) 5 min is deadly in a development cycle. way too much for "does it work _now_?". but precompiled speed great for "ok, think so, run make test". knobs. | ||
gaal | brb, $work phone | 16:49 | |
putter | re OED balcony service :) :)... now if only it wasn't 1/4 way round the planet. | 16:51 | |
revdiablo | hmm, is anyone else using {''} instead of <> with nested hashrefs, just to maintain symmetry? I mean, %hash{$foo}{$bar}<baz> just looks ugly to me. | 16:53 | |
gaal | putter: i'm aiming for Standard Knobbage | ||
so instead of vi SOMETHING ; env THIS make THAT | 16:54 | ||
you either vi config.yml and make away, | |||
or override via env | 16:55 | ||
but hopefully the names stay the same | |||
of course you should be able to change anything, but right now if you grep util for ENV you'll see there are too many disparate entities | |||
re: the look-up service, i regret to say that although i'd love to, i cannot take email requests at this moment. | 16:56 | ||
putter | ;) | ||
gaal | revdiablo: %hash<<$foo>><<$bar>><<baz>> ? :-) | 16:57 | |
prolly not a good idea though. | |||
revdiablo | heh | ||
gaal | since they may contain spaces. | ||
putter | Have an OED around here someplace. Misplaced it. One volume, with teeny tiny print. Wish I had a monitor with print like that. | ||
gaal | well, i bet you didn't lose the magnifying glass that came with it -- those are huge | 16:58 | |
i actually have the full version here. snatched it in an inexplicable bargain. | |||
they sold for a while at an insane discount, but the real insane thing was that they charged shipping as if it were one volume. | 16:59 | ||
the whole deal was for under $400 (instead of $3000). | |||
geoffb | putter, noticed this window was blue, so have just read what you said to me (and nothing else in backlog yet) . . . sorry to have messed up your stuff, I thought I had captured most of what you had included. Sigh. | 17:01 | |
putter | Oh hey, no problem. Appreciate the work. Especially since past experience has shown folks find my draft design space notes dense to the point of being incomprehensible. | 17:03 | |
gaal | textwork is hard. team textwork is also hard. /me returns to configuration matters which are of course easy | 17:04 | |
geoffb | Funny thing is, I debated just leaving the original intact at the bottom, and finally decided against that, because "Curious people can always look at the change history." putter had the better option -- drop the old text but add a link to the old revision. I'll remember that for next time. :-) | 17:07 | |
putter | You did (capture most). Was good. With added link to old, readers in better state. gaal: :) | 17:08 | |
ah. interesting. | |||
geoffb | putter, also you mentioned earlier that I added some mistakes -- but a diff doesn't show you edited content stuff. Is there something that still needs to be changed? | ||
putter | let me see... | 17:09 | |
yeah... sigh. | 17:10 | ||
do we have stats on how many people read autrijus's journal? | 17:11 | ||
Limbic_Region isn't sure that's possible | 17:12 | ||
geoffb | Limbic_Region, a lower bound certainly is . . . . | ||
(and I suspect that lower bound wouldn't be more than an order of magnitude off at worst) | 17:13 | ||
gaal | putter: no way to do that. it's syndicated. | ||
Limbic_Region | for non-anonymous readers - see use.perl.org/~autrijus/fans | ||
gaal | at least 8 users on LJ :) | ||
putter | ;) | ||
gaal | plus probably the planetperl aggregators? | 17:14 | |
Limbic_Region | as I said - not sure its possible to know | ||
gaal | i'm sure it isn't. :) | ||
geoffb assumed most of the other sites would be links, not wholesale syndication . . . bah | 17:15 | ||
syndication-- | |||
Limbic_Region | even if it weren't - it is still only an approximation to parse the logs looking for unique IPs | ||
you have proxies that make many people look like 1 | |||
and with DHCP - 1 can look like many | 17:16 | ||
geoffb | Yeah, that's why I said "lower bound within an order of magnitude" . . . | ||
and you wouldn't do unique IPs. For a daily journal, it would better be hits. | |||
Limbic_Region | ick - I check his journal several times a day | 17:17 | |
geoffb | crazy bastard | ||
Limbic_Region | why? | ||
I don't have an RSS feed so it is the only way to know if there are comments or updates | |||
geoffb | Can't use an RSS feed, you mean? I know use.perl generates various RSS feeds . . . . | 17:18 | |
Limbic_Region | no | ||
geoffb | Comments I can see being a problem | 17:19 | |
Limbic_Region | I don't have = I don't use | ||
gaal | bbiab | ||
Limbic_Region | see - I don't ever get anything done because I am too busy keeping up with what everyone else is doing | ||
literally | |||
geoffb | I think it's time to get away from the keyboard. I'm just not mentally all there today. | 17:20 | |
Limbic_Region | TTFN geoffb - enjoy | ||
putter | geoffb: me too. worry about plan later. ? | 17:31 | |
Aankhen`` | (backlogging) Limbic_Region: Re ^C-ing the build process: try repeating it a few times. A similar thing happens to me when installing a module from CPAN: if I ^C it, it drops me back to the regular DOS prompt, but the commands are interpreted as if by the `cpan` shell, and I have to keep pressing ^C for a while. | 17:42 | |
`cpan` is actually a lot worse, since I'm running it, it runs `nmake`, and then `nmake` runs `cl` or whatever. | 17:43 | ||
gaal | alias kill kill -9 :-) | 17:46 | |
Aankhen`` | Wow... Pugs really starts up fast now. o_O | 18:13 | |
gaal | aankhen``: are you using the precomp test as well? i hand out free sneak previews if you want. :) | 18:14 | |
Aankhen`` | No, I don't run `nmake test`. :-P | ||
I was just running the interactive shell. | 18:15 | ||
gaal | that does make things faster. :) | ||
Aankhen`` | Hehe. | ||
putter | nothingmuch.woobling.org/pugs_test_status/ smoke has gone bogus. 27 test cases. | 18:19 | |
Aankhen`` | putter++ geoffb++ # docs/notes/plan | ||
svnbot6 | r5517, iblech++ | * Usual svn props. | ||
r5517, iblech++ | * Minor typo and grammatic fixes: INSTALL, gen_prelude.pl, | |||
r5517, iblech++ | lib/Inline-Pugs/Makefile.PL, docs/notes/plan, ChangeLog. | |||
r5517, iblech++ | * Renamed docs/other/SHOT_IN_THE_FOOT to docs/other/shot_in_the_foot, as all | |||
r5517, iblech++ | other files in docs/other/ are all-lowercase, too (consistency). | |||
r5518, Stevan++ | Perl6::MetaModel - changed all croak()s to confess()s (mmmm stack trace :); added Perl6::Container::Scalar as a (tied) stand in for real container types; added tests for it as well; next step is to actually use it in the MetaModel; | 18:26 | ||
putter | I thought make pirtest was working? With 6.4.1.yesterday, 0.2.2, and pugs head, my sanity is all dubious. | 18:27 | |
And everything else is Can't locate Test in @*INC. | |||
Ovid | OK, I think I'm a little irritated with Pugs right now. Specifically, I went ahead and did a "sudo make install" and just hosed my Perl installation due to many Perl 6 modules overwriting Perl 5 modules. Why did Pugs do that? Is this something I was just supposed to "know"? | 18:33 | |
putter | Here is a project for someone with bits on feather - set up a pair of smoke and pirsmoke. Noone seems to be running a pirsmoke yet, and we'll need it, and on feather perhaps multple people keep smoking going reliably. | 18:34 | |
Ovid: thats _very_ not the right thing. I suspect no one is really testing make install. | |||
gaal | putter: i'll do that once i get tuits. | 18:35 | |
putter | gaal++ | ||
Ovid | Ah, jeez. I'm seriously screwed. I've got a ton of work to do and I have no idea how long it's going to take to rebuild my Perl install. | ||
gaal | Ovid: definitely a bug. | ||
Ovid | When I did the install, I got lines like Installing /usr/local/lib/perl5/site_perl/5.8.6/HTTP/Headers.pm | 18:36 | |
That looks normal, but that's a Perl 6 module which overwrote my Perl 5. :( | |||
stevan | anyone have any idea how to return a tied scalar from a subroutine and how have it do return tied($scalar)->FETCH ??? | 18:39 | |
svnbot6 | r5519, Aankhen++ | * edited docs/notes/plan. | ||
stevan | (this is a Perl5 question relating to the perl6 metamodel :) | ||
Khisanth | hmm | ||
Ovid: you didn't get a /usr/lib/perl6/ ? | 18:40 | ||
Ovid | No. | ||
Khisanth | hmm which version? | 18:41 | |
Ovid | I'm going through the module list right now to see if I can automate the fix or if I have to wipe out Perl and start over (not very easy) | ||
Khisanth | create a bundle and force install? | ||
Ovid | Khisanth: it's overwriting 5.8.6: Installing /usr/local/lib/perl5/site_perl/5.8.6/Test/Builder.pm | 18:42 | |
Hmm, a bundle might work. | |||
A bundle won't work. Core modules that cpan and cpanp require have been overwritten. Even 'lib' was blown away :( | 18:50 | ||
svnbot6 | r5520, putter++ | Its quite a kludge, but this will stop anyone else from getting burned by make install until we figure out whats going on. | ||
Aankhen`` | I use `nmake install`; modules seem to install alright into the PREFIX directory. | 18:51 | |
gaal | putter++ # stopgap | ||
Aankhen`` | Then again... EVERYTHING installs into the PREFIX directory, including lib/ (as-is). | 18:52 | |
putter | I added an extra install: target to Makefile.PL. Intended to say "sorry, disabled", instead it causes a : vs :: conflict error. But that's hopefully good enough. | ||
Ovid | Aankhen: Regardless, this much destruction should not happen. | ||
Aankhen`` | Indeed... | ||
putter | Ok, my Makefile.PL patch did make make install safe... by completely breaking the Makefile. Regressed. So we still need a stopgap... | 18:55 | |
Khisanth | Ovid: so which version of pugs did you install? | 18:56 | |
Ovid | Fresh from svn. | ||
Version: 6.2.7 (r5516) | 18:57 | ||
svnbot6 | r5521, putter++ | Makefile.PL patch broke the build. Removed. Deadly make install is back. | ||
Khisanth | oh... I guess someone broke the Makefile between 6.2.2 and now | ||
gaal | perl -i.bak -pe 's/^(install.*)/$1\tfalse/' the generated Makefile? | ||
missing an \n at the end of the substitution there. | 18:58 | ||
stevan | eval? class Foo { has $.bar is ro; submethod BUILD ($.bar) {} }; my $foo = Foo.new(bar => 42); | ||
oop :) | 18:59 | ||
gaal | evalbot isn't up, stevan. | ||
stevan | bah! | ||
ok | |||
thanks gaal :) | |||
putter | Khisanth: so make install was doing the right thing, whatever that is, at some point in the past? | 19:01 | |
gaal has only ever made install once. but it worked then! | 19:02 | ||
svnbot6 | r5522, putter++ | Added purely advisory "do NOT use make install" to Makefile.PL. Still dangerous. | ||
putter | I've added a purely advisory "dont run make install!" after the *** Enter make to build Pugs. But we really should disable it until its fixed. | 19:03 | |
Khisanth | putter: I installed 6.2.2 through CPANPLUS and it seems to be in /perl6 as expected | ||
gaal | it was months ago, so that doesn't help tracebacking much. | ||
putter | looking... | 19:04 | |
gaal | (it == the version i installed, not yours, Khisanth) | ||
putter | Ovid: thank you. if that had gone out a release... "shudder". | 19:05 | |
Ovid | No problem. | ||
Khisanth | hrm | ||
so safe to assume 6.2.6 didn't have this problem? | |||
Ovid | I don't know. I haven't touched Pugs in a while as I've been stuck on a huge contract and now am prepping for OSCON. This was just a lark. | 19:07 | |
dudley | I did a make install within the last week, and it went in /perl6 | ||
svnbot6 | r5523, Aankhen++ | HTTP::Cookies: | ||
r5523, Aankhen++ | * modified &scan to pass rw parameters to callback. | |||
r5523, Aankhen++ | * implemented &as_string. | |||
putter | rafl: ping | 19:09 | |
19:11
Ovid is now known as Ovid_afk
|
|||
putter | Does svn have a line-by-line revision attribution? Colorized? | 19:13 | |
integral | svn blame? | ||
gaal | svn praise | ||
putter | thanks! | 19:14 | |
eric256 | hey. if i wanted to add something to Prelude.pm .... is there somewhere i should ask first? BTW i want to add a .shuffle method to arrays, seems like something that gets done enough to put in prelude. | 19:15 | |
gaal | eric, yes, propose it on p6-l, and have it added to S29. | 19:16 | |
eric256 suppose a local working version would go a long way towards getting the go ahead? | |||
gaal | sure, though the most important things are probably the function signature and an argument for the algorithm you've chosen to implement this in. | 19:17 | |
plus why this should be in the prelude, of course. | |||
eric256 | in prelude becuase its cheap enough to add, and i'm pretty sure (thought possibly wrong) that fisher_yates could be considered the standard, so why make people keep coding it? ... /me realizes i don't need to argue for it hear, just testing it out | 19:18 | |
gaal | read around about shuffles - i seem to recall a discussion that compared a few. fisher-yates wasn't the only interesting one there. | ||
unfortunately i have no idea where i did see it, except that maybe it was in some functional programming forum or faq or archive. | 19:19 | ||
eric256 | mhm okay. i'll get the bones laid out and working, then look into better solutions. | 19:21 | |
make will recompile Prelude.pm right? | |||
gaal | sure. | ||
eric256 | does this mean perl can now cache compiled versions of modules for quiker load times? | ||
gaal | when developing this, though, you may find it faster not to rebuild pugs every time | 19:22 | |
set PUGS_BYPASS_PRELUDE=1 in your env, and use -I src/perl6 -MPrelude | |||
eric256 | will it know to use the edited Prelude.pm ? or should i just code it in a seperate file at first, then merge when working? | ||
or that would work. ;) | |||
thanks | |||
gaal | np :) | 19:23 | |
re: caching arbitrary modules, we're not there yet, but backlog a bit, there's been discussion about it today. | |||
svnbot6 | r5524, Aankhen++ | * HTTP::Cookies: implemented :host, :uri_path and :normalize_path. | ||
putter | eric256: it sounds like something which to start with should simply go in a module. then if gets made part of Array, it can be moved to the Prelude, or to some Array.pm if that's been spun of by then. | 19:28 | |
Bah, makefiles. Lets use rake. ;) | 19:29 | ||
eric256: one of the nice things in p6, is one can simply do module SomeArrayExtensions; method Array::foo().... use SomeArrayExtensions; | 19:32 | ||
eric256 | yes. but a whole module for array shuffling seems silly. either way i can't seem to get this working anyway..../me attacks from a different angle. | 19:33 | |
Aankhen`` | I think I'll leave the last two methods from HTTP::Cookies for another time. :-P | 19:34 | |
gaal | be sure to "is rw" :-) | ||
svnbot6 | r5525, Aankhen++ | * HTTP::Cookies: implemented &set_cookie and &set_cookie_ok. | ||
Aankhen`` wanders off. | |||
eric256 | hmmm....number of elements in array is?? not .length or .elements | 19:37 | |
gaal | .elems | 19:38 | |
eric256 | hehe. shortend the wrong one. thanks gaal....i've been away for too long, its all coming back slowly though | ||
gaal | t/data_types may come in handy, eric256. | 19:39 | |
eric256 | thanks i'll go look around in it. | ||
gaal | np. dinner & | ||
eric256 things long forms should work too...but that would probably be wastefull namespace pollution | |||
rafl_ | putter: pong | 19:42 | |
Limbic_Region wonders WTF this message nmake is spitting out is all about | 19:56 | ||
eric256 | i wonder that pretty much nmake says anything | 19:58 | |
nothingmuch | uh, wtf?! | 19:59 | |
nothingmuch.woobling.org/pugs_test_status/ | |||
gaal_ | look on the bright side, nice duration. | 20:00 | |
eric256 | hmm. i did what gaal said to load perlude.pm at run time, edited, got it working, then recompiled and tried and the changes appears gone.. (change = added Array::shuffle sub) | 20:01 | |
gaal_ | does your pugs have other prelude functions? | 20:02 | |
eric256 | lemme see. | 20:05 | |
"hello".as(""); prints undef in the interactive shell | |||
gaal_ | what does open("AUTHORS").readline.say say? | ||
eric256 | a whole bunch of authors names | 20:06 | |
gaal_ | well, you do have *a* prelude | ||
are you sure your prelude.pm still has your code? | 20:07 | ||
if yes, try incrementally making cleaner and cleaner. | |||
eric256 | yep | ||
gaal_ | start by just rm pugs ; make | 20:08 | |
putter | rafl_: make install overwrote someone's p5 lib/ with p6 stuff. yipes. saw you had been working with lib/ handling and wondered if you had any ideas. after a long pause, I'm again looking into it... | ||
gaal_ | then delete src/Pugs/PreludePC.o and .hi | ||
then make clean | |||
etc. | |||
eric256 | okay. i'll see if i can find when it starts working agian. (i'm guessing that is what you are looking for) | 20:09 | |
gaal_ | yup | ||
i'm however low on wakies so i'm not here for long | 20:10 | ||
eric256 | online a PreludePC.hs file... is that the one you meant? | 20:12 | |
Prelude.(hi|hs|o) are there as well | |||
s/online/only/ | |||
ls | |||
gaal_ | uh, sorry, make that Run.hi and .o | ||
eric256 hopes that deleting the .hs file isn't bad? | 20:13 | ||
gaal_ | nope, svn up to restore it | 20:14 | |
rafl_ | putter: Right, I'm working on that. | ||
eric256 | hmm svn says that file isn't under svn control....now what did i break... | 20:15 | |
gaal_ | which one, ppc? oh, right, that's autogenerated so you really did no harm :) | ||
make again. | |||
eric256 | NMAKE : fatal error U1073: don't know how to make 'src\Pugs\PreludePC.hs' | ||
eric256 is no longer allow to play in the src directory | 20:16 | ||
gaal_ | uh, is this a recent r? | ||
eric256 | yep. just updated an hour ago...unless the update didn't take. | ||
gaal_ | nmake clean and try again. | 20:17 | |
i gotta go now, good luck. :) | |||
eric256 | thanks for all the help so far | ||
gaal_ | np :) | ||
svnbot6 | r5526, gaal++ | mini-YAML parser, to be used by the build system to handle prefs | ||
eric256 | great...one of the commands from nmake clean is too long | 20:18 | |
gaal_ | you need a newer make | ||
forum2.org/gaal/pugs/nmake.exe should do the trick. | |||
night :) & | |||
Limbic_Region | eric256 gaal_'s nmake.exe might break about a missing .dll - it is also freely downloadable off the net | 20:19 | |
putter | & | 20:20 | |
Limbic_Region | msvcr71.dll in case it matters | ||
Limbic_Region calls it a day | |||
Aankhen`` | G'night. | ||
putter | Everyone is leaving... :( | ||
eric256 | yea. that at leans finished the clean correctly...... and now SVN update found tons of changed files....odd | 20:24 | |
brentdax | Is there a reason for the warning against running 'make install'? | 20:39 | |
putter | It smashed someone's p5 lib/ with p6 files. | 20:40 | |
Cause unknown. rafl_ is looking into it. | 20:41 | ||
putter wonders if there might be a connection with make test and smoke being br0ken. | |||
Is anyone looking into what happened to use()? | 20:42 | ||
brentdax | I see. This makes my life a tad difficult, but I'll find a way to manage... | 20:43 | |
putter | t/01-sanity/06-use.t is failing... | ||
dudley | putter: That one's passing here... | 20:45 | |
putter wishes there was log file with one test summary line per revision. Good for detecting regressions, good for figuring out when/why the world broke, etc. | |||
stevan | putter: I think nothingmuch is working on just such a thing | 20:46 | |
dudley has wished for the same thing | |||
stevan | on top of Test::TAP::HTMLMatrix | ||
dudley | ah, good, cause tuits are in especially short supply for me right now | ||
putter | dudley: I'm failing with Can't locate lib.pm in @*INC. Clean build of head. | ||
After make;make test, there is no blib6/lib. !?! | 20:48 | ||
dudley | putter: I've got a dirty build running make test right now | ||
putter | @*INC contains /usr/..., so if you ever did a make install in the past, you may be running on those files. | 20:49 | |
Do you have a blib6/lib? | |||
dudley | Nope, you're right | 20:50 | |
svnbot6 | r5527, cdpruden++ | Typo fix; missing pipe in regexp | ||
putter | rafl_: note blib6/lib is nonexistent after make on pugs head. fyi. | 20:51 | |
Just to save me time in binary search of revision space, what is the latest revision anyone has which _does_ have a ./blib6/lib directory? | 21:04 | ||
Thanks. | |||
r5480 is ok. | 21:05 | ||
stevan | can I get a Perl6 sanity check? | 21:10 | |
class Foo { has $.bar is ro; } | |||
the "is ro" should only relate to autogenerated accessors right? | |||
otherwise you could never assign to $.bar | 21:11 | ||
because it would make the underlying scalar container read only | |||
putter | gaal_: re knobs, how about a 'make quickly' target which is make unoptimized and dont precompile the prelude? | 21:12 | |
stevan: would you believe 'is ro' doesnt appear in (an old copy of) the bible? | 21:14 | ||
stevan | yup | 21:15 | |
the bible is unclear on this | |||
putter | better yet, \bro\b doesn't appear. | ||
stevan | but I have a vague recollection of Larry and Autrijus talking about this at the hackathon | ||
putter: "is ro" is the default for class accessors | 21:16 | ||
putter | wait, doesnt "is rw" just mean create r and w accessors? so "is ro" == "is r". | ||
stevan | and then generates an accessor only | ||
putter | ah. | 21:17 | |
theorbtwo | Depends on where you mean, I think. | ||
stevan | but "is rw" makes the accessor and the mutator | ||
theorbtwo | Do you mean on vars with class scope? | ||
Or do you mean on arguments? | |||
stevan | theorbtwo: I am speaking only about "has $.bar is rw" in class definitions | 21:18 | |
theorbtwo | Ah. | ||
stevan | has $.bar is ro; should make a rw scalar container but only generate a read accessor | ||
theorbtwo | Ja. | 21:19 | |
stevan | ok | ||
theorbtwo | (I think... and it was my RFC, dammit, not that it means anything.) | ||
stevan | so the "is <trait>" on 'has' attributes does not apply to the underlying container | ||
theorbtwo: I am trying to fake basic container types in the metamodel with tie(), this is why I am asking | 21:20 | ||
theorbtwo | Ah. | ||
putter | autrijus's post-hackathon p6l post had some discussion of "is constant", etc... | ||
theorbtwo | Yeah, that's right. | ||
stevan | I had passed the "ro" on, and things got really ugly :) | 21:21 | |
cause I could no longer assign to my class attributes | |||
theorbtwo | is constant is more general then is ro, but similar. | ||
putter | Including "In order to pass by read-only reference"... | ||
theorbtwo | Right. Inside the class, it doesn't matter what accessors there are -- you are assigning directly to the var, not using an accessor... I think. | ||
my $foo is constant = 42; | 21:22 | ||
($foo can never be assigned to again.) | |||
has $.foo is ro = 42; | |||
stevan | yes | ||
putter | r5500 is ok. | ||
theorbtwo | $.foo can be assigned to again, but only by class methods. | ||
stevan | yup | ||
that is what makes sense to me | |||
theorbtwo | To me too. | 21:23 | |
stevan | so what parts in the class declaration does the underlying scalar container need to know about | ||
the type? | |||
has Dog $.fido; | |||
theorbtwo | I think, BTW, the default isn't ro, but no access. | ||
stevan | theorbtwo: I thought it was ro | 21:24 | |
oh well easily changed in the metamodel :) | |||
theorbtwo | I could well be wrong. | ||
stevan | has Dog $.fido handles "wag"; | ||
theorbtwo | I think everything but a few blacklisted things get passed on. | ||
stevan | the "handles" part should be handled by the class not the container | ||
thats delegation | 21:25 | ||
all I can think of is passing on the Type | |||
theorbtwo | Huh? Never noticed the existance of that... were is is it documented? | ||
putter | r5510 is broken, but differently. | ||
stevan | SA12 | ||
look for "Delegation" | |||
theorbtwo | And typeish things -- is shaped, is newlined (or whatever it's called...) | ||
stevan | has $.bar is constant = 42; | 21:26 | |
that would be a different kind of container | |||
a ScalarConstant | |||
or somesuch | |||
theorbtwo | Da. | ||
Or a Constant with a Scalar inside it. | |||
stevan | ok, I am not worrying about is shaped or any of that non-sense | ||
theorbtwo | Handle what you know how to handle, pass the rest on? | 21:27 | |
stevan | ok, so my Scalar container will really just deal with type checking (if a type is added to it) | ||
theorbtwo | Sounds about right. | 21:28 | |
stevan | theorbtwo: I am mostly trying to figure out *what* I need to handle... the how can come later | ||
cool | |||
danke theorbtwo :) | |||
clkao | 8use.perl.org/~Ovid/journal/ | 21:34 | |
LOL | |||
Limbic_Region is just reading that now | 21:35 | ||
clkao | u t/operators/eq.....................................pugs: *** Can't locate Test.pm in @*INC (@*INC contains: /Users/clkao/work/pugs/blib6/lib /System/Library/Perl6/darwin-thread-multi-2level /System/Library/Perl6 /Library/Perl6/darwin-thread-multi-2level /Library/Perl6 .). | 21:41 | |
wtf? | |||
thisw is a clean build on macosx | |||
putter | pugs is broken at the moment. broke between r5505 (ok) and r5515 (not). | 21:43 | |
narrowing it down... | |||
nothingmuch is working on a test log so we dont have to play this silly game. nothingmuch++ | 21:46 | ||
nothingmuch | putter: if you have a full TAP output or yml file of both, i can do sometthing | ||
svnbot6 | r5528, Stevan++ | Perl6-MetaModel : the Scalar container only handles types now; made some minor modification to the way attributes are stored so that it handles tied scalars correctly; various other small changes, nothing big; | ||
nothingmuch | like, right now | ||
stevan | nothingmuch: hola | 21:47 | |
nothingmuch | uh, whoe ees thiis naathingmuch you speek off? | 21:48 | |
putter | nothingmuch: huh? | ||
nothingmuch | putter: i have a working diffing TTH | ||
if you have the data to shove in it I can graph it for you | |||
putter | Ah, no. Nifty thing, and I look forward to using it. But at the moment, | 21:49 | |
nothingmuch | what I didn't get around to is rounding corners | ||
putter | what I'd like is a file of lines like 'r5500 - 26 test cases: 26 ok, 1 failed, 2 todo, 2 skipped and 0 unexpectedly succeeded' so I dont have to search through revision space. | 21:50 | |
nothingmuch | oh, that' easy | ||
putter | :) | ||
nothingmuch | generate Test::TAP::Models somehow (call analyze_lines?) | ||
then simply print each ones ->summary | |||
putter | r5505 ok, r5509 and r5510 broken differently, r5515 ok. proceeding... | 21:51 | |
err, no. r5515 br0ken. | |||
Err, no again. r5509 ok. r5510 broken differently. r5515 broken. | 21:52 | ||
:) | 21:53 | ||
rafl_: ping? | 22:00 | ||
nothingmuch | use.perl.org/~Ovid/journal/25550 <-- is he asking for ltu? | 22:01 | |
stevan | nothingmuch: he asked for it over on LtU too | 22:02 | |
nothingmuch | hah | 22:08 | |
so he really wants LtU in chrome ;-) | 22:09 | ||
nothingmuch should read more ltu | |||
there, rss feed | |||
putter | ok, r5509 was working. r5510 wasnt. r5511 is irrelevant. r5512 also broken. r5513 has the current form of brokenness. | ||
rafl_: ping? | |||
rafl: ping? | 22:10 | ||
Ok, to sum up the State of the Build: r551{0,2,3} broke make test. It's still broken. Around the same time make install smashed Ovid use.perl.org/~Ovid/journal/25660 "Vicious Pugs :(". | 22:16 | ||
They may or may not be connected, but... | |||
Someone needs to go through r551{0,2,3} and fix or revert. | 22:17 | ||
I'll do it when I get back from dinner if someone hasn't beaten me too it. | |||
Unfortunate. | 22:19 | ||
& | |||
mugwump | 5510 added Perl6::MakeMaker (see lists.utsl.gen.nz/pipermail/pugs-co...2842.html) | 22:42 | |
that might have been a rename | |||
lists.utsl.gen.nz/pipermail/pugs-co...02844.html is probably the culprit | 22:43 | ||
pjcj catches up on today's p6l excitement | 22:45 | ||
clkao | pjcj: hey, i thought you are busy on work or fixing devel::cover | 22:57 | |
pjcj | Unfortunately, I am at work, yes. | 23:00 | |
but I was just waiting for a db to install | |||
wolverian | chronoa.dy.fi/~wolverian/nuclear.p6 # does this look sane? particularly, does role inheritance work like that? | 23:14 | |
stevan | nothingmuch: ping | 23:33 | |
nothingmuch | stevan: sorry | 23:57 | |
svk merge got stuck because i forgot to quit filemerge | |||
it's sooo slooow | 23:59 |