6.2.11 released! | pugs.blogs.com | pugscode.org | pugs.kwiki.org | paste: sial.org/pbot/perl6 Set by audreyt on 1 February 2006. |
|||
putter | search.cpan.org/~crunchie/Regexp-Ex...xtended.pm is cute. | 00:06 | |
ah, search.cpan.org/~pinyan/Regexp-Parser-0.20/ replaces YAPE::Regex | 00:12 | ||
search.cpan.org/~amackey/Regexp-Def...tion-0.05/ has nice perl.com article | 00:26 | ||
search.cpan.org/~pinyan/Regexp-Keep-0.02/ laugh | 00:32 | ||
00:51
theorbtwo joined
|
|||
putter | search.cpan.org/src/PINYAN/Regexp-P.../Parser.pm !! | 00:59 | |
japhy was indeed on #perl (connected to at least). I asked him to stop by to chat. | 01:01 | ||
01:04
theorb joined,
vel joined
01:05
pdcawley_ joined
01:24
pdcawley_ joined
01:26
stevan_ joined
|
|||
stevan_ | heya putter | 01:30 | |
putter | hey stevan_ :) | 01:36 | |
soo... | |||
stevan_ | soo... | ||
putter | one potential piece of the puzzle. it looks like creating a working p5 rules module could consist of taking YAPE-Regex or Regexp-Parser, modifying it (YR: p6 syntax; RP: has? maybe just subrules; both: a subrule node), then | 01:38 | |
writing a walker which creates a very simple sub{} parser (one continuation param, return undef to fail, local()ized $str and $pos). at that point you have a reentrant parser (for p5 too:). add simple store-named-rules someplace, and have working p6 rules on p5. for some "still need to flesh things out to be spec" value of working. | 01:42 | ||
stevan_ | what about Coro (for continuations that is) | ||
putter | though can of course be used prior to being fleshed out. (zombie usage?;) | ||
to.... provide call/cc on a p5 backend?? | 01:43 | ||
stevan_ is not really a "parser" guy, so you are loosing me a little | 01:44 | ||
01:44
stevan_ is now known as stevan
|
|||
stevan | putter: Coro for all your continutation needs (it works pretty well IIRC) | 01:44 | |
putter | sub { my $c = $_[0]; return undef if substr($str,$pos,1) ne "a"; local $pos = $pos + 1; $c->($sub_which_just_returns_true) } | 01:46 | |
that's the implementation of the regexp "a" | |||
the idea behind having the $c continuation, ie, the thing you call after you are done, is that if it fails, and you have some choice in what you can do, you can choose differently (ie, smaller number of repetitions), and try calling the $c again. | 01:48 | ||
err, my code example should have been return $c->(...) | |||
ayrnieu | why should it be that way? | 01:49 | |
putter | say we have sub lit { my($s)=@_; sub { my $c = $_[0]; return undef if substr($str,$pos,1) ne $s; local $pos = $pos + 1; return $c->($sub_which_just_returns_true) } } ie, a generator for the above, for literals. | 01:50 | |
Juerd | putter: I don't want to ruin you dream, but had you taken backtracking into account yet? | ||
putter | one can say $fa= lit("a"); $fb= lit("b"); and then $fab = $fa->(sub{$fb->($_[0])}); | 01:51 | |
yes. for instance, alt would be | 01:52 | ||
Kattana | it looks ugly. | ||
putter | something like sub { my $c = $_[0]; for my $f (@fs) { local $pos = $pos; if $f->($c) { ... } else { next; } } return undef; } re "...", and an oops, | 01:54 | |
you really want to do let $pos = $pos + 1; since p5 doesn't have it, you get to make things even more ugly by doing wrapping up local() to fake it. | 01:55 | ||
01:56
sven_ joined
|
|||
putter | (where let() is p6's hypothetical variable decl. like local() (aka temp()) on failure, but like simple assignment on success. | 01:56 | |
so my $new_pos = undef; { local $pos = $pos + 1; if succeeded { $new_pos = $pos; } } $pos = $new_pos if $new_pos; sigh. | 01:57 | ||
Juerd | putter: But do you even want to think of .*a backtracking? | 01:58 | |
Trying .* first, then one less, then one less, again one less, until you find an a? | |||
Kattana | I think in such situations pcre scans ahead to check if it is possible to match the pattern first, if there is an "a". | 02:00 | |
putter | some expressions are going to be very very painful. unless someone adds optimizer/guard-creation stuff. eg (?:.*)+ :). but... I really don't care ;) | ||
Juerd | ()* # loopy loop | 02:01 | |
putter | Kattana: yeah. that's the kind of game you play to deal with such cases. or explicitly recognize constructs like nested *+, and mutate them. | ||
re ()*, yeah. repetition subs want to do progress checks. "has $pos changed since the last time through the loop". | 02:02 | ||
Kattana | its where optimizing comes in. | ||
putter | ayrnieu: continuations give you two things. one is later stuff in the regexp can fail, "pushing back". ie, saying, nope, I'm not happy, feel free to try again. you could get that in other ways, though they make the implementation more complex. but the second thing it gives you is composability. you can separately compile regexes, then | 02:06 | |
Juerd | putter: Feel like implementing this? ;) | ||
putter | combine them into one, or have one call another from inside of itself. | ||
Juerd: sure :) | 02:07 | ||
it looks like japhy has already done the annoying part. :) | |||
Juerd | You make it sound so simple. I just find it extremely hard that if this is all there's to it, regex engines have so many loc. | 02:08 | |
There must be something huge you're overlooking. Or you're even more of a genius than I thought | |||
putter | well, see integral's earlier comments about recursion and stack depth. | 02:09 | |
and some lucky folks are in the position to care about things like how fast stuff runs. whereas we would be happy to have something running at all, at any not to insanely slow speed. | 02:10 | ||
there some things we can do to speed it up. but they add complexity. so rev one ignores speed in favor of getting it working. | 02:11 | ||
Juerd | I do wonder if it's possible to get it working even | 02:12 | |
putter | re speed up, one approach might be to generate the source of code, rather than assembling lots of separately compile subs. that gives p5 a chance, in eval, to optimize it. | ||
but again, that's more complex | |||
Juerd | Perl 5 doesn't do any high level optimizations | 02:13 | |
Only on statement and expression level it optimizes. | |||
And runtime. | |||
Of course | |||
putter | yeah, but my fuzzy (very) impression was lexically scoped subs which don't escape get inlined. | ||
Juerd | I'd be very surprised. | 02:14 | |
putter | :/ | ||
Juerd | Perl 5 doesn't even have lexically scoped subs | ||
It has lexical variables that can hold references to subs. | |||
But I doubt it can abstract that enough to optimize it. | |||
putter | sub { my $f = sub { ... }; ... $f->() ... } My vfuzzy impression was $f goes away. | 02:15 | |
Juerd | Oh, you mean that it's destructed? Yes, that could be. | ||
putter | could well be wrong though. but as you said, the first thing is to see something work. | ||
Juerd | I don't call that inlining. | ||
putter | not destructed, but deconstructed :) | 02:16 | |
it's p5 vm opcodes get inlined. or that's the hypothesis | |||
Juerd | Do you mean that { my $f = sub { a }; ... $f->() ... } gets optimized into { ... { a } ... }? | ||
if so, nafaik. | |||
putter | yes. ah well. :( | ||
Juerd | I have no idea how it possibly could. | 02:17 | |
$f is a runtime thing. By the time $f->() is reached, it could hold 42 instead of the subref. | |||
putter | but anyway, once you are paying the complexity cost of slinging around code strings, you can play any kind of game you want, including avoiding subs. | ||
Juerd | Perl 5 has no analysis of variables, and how they're used. It doesn't inline variables that aren't used elsewhere. | 02:18 | |
putter | so, it sounds like one possible next step is to do a quicky throw-away demo on say YAPE-Regex, p5 syntax, just to prototype the engine architecture, and provide an illustration for doing it with p6 syntax there, or on Parse-Regexp. | 02:20 | |
would provide a performance test too | 02:21 | ||
Juerd | Oh my | ||
Don't we have a performance test in the sense of `time make test` then? | |||
putter | huh? | 02:22 | |
Juerd | Mind not | ||
putter is confused... | |||
Juerd | So was I | ||
putter | it's contagious ;) | ||
Juerd | More so than h5n1, apparently. | 02:23 | |
At least h5n1 doesn't spread over wire... yet. | |||
putter | ? | ||
Juerd | avian influenza, the pandemic waiting to happen | ||
The h5n1 variant is carried by birds, and happily jumps to humans. | 02:24 | ||
Long incubation period, so the birds and humans get more than enough time to infect others. | 02:25 | ||
Lack of vaccin, lack of anti virals, lack of emergency plans | |||
putter | ok, before touching code, here is the strawman argument. a quick backtracking parser on Y-R prototype, doing p5 regexs, would give a demo/proof-of-concept/performance-test, for a pure p5 p6-rules engine. | ||
Juerd | It's a nice overview of how modern society set its own death trap once more. | ||
putter | a rules engine which could be straightforwardly made a full p6 parser. (ie, addition of longest-match token nodes, and an operator-precedence-parser node). | 02:26 | |
Juerd | What do you mean by quick? | ||
putter | we know we can do a p6 runtime on p5. even if perhaps only a slow one. | 02:27 | |
Juerd | You do realise that by no known standard, a regex engine written in p5 can be quick... | ||
putter | which would leave only the question of can we reasonably compile a p6 parse tree using p5. I don't know enough about what pugs compilation is doing to know how hard that would be. | 02:28 | |
Juerd | I'm going to bed, sorry | 02:29 | |
Good night | |||
putter | Juerd: re quick, err, quickly developed. i expect speed to be poor. | ||
Juerd | I see | ||
putter | re can't be quick, yes. | ||
but all it has to be is fast enough to be usable to bootstrap, no? | 02:30 | ||
Juerd: good night | 02:31 | ||
putter wants a module which configures -MCPAN so it actually works... :/ | 02:33 | ||
02:40
scook0 joined
|
|||
putter thinks in ten years, install Bundle::CPAN has never ever done anything but result in a completely unusable -MCPAN shell. no doubt i'm just not remembering all the times it worked. ;) but I so knew that was a mistake :( | 02:49 | ||
02:54
grayson joined
|
|||
putter | hmm, the YAPE-Regexp alt node doesnt actually store the alternatives. Regexp-Parser's does. switching to RP... | 03:19 | |
audreyt | putter: are you planning on writing a rules compiler in p5 using regexp::parser? | 03:39 | |
(havn't yet backlogged) | 03:40 | ||
I think it's a valid path. I tried to get ingy started on it but we got... distracted | |||
to that yaml business | |||
not surprisingly for two severe ADD people | 03:41 | ||
03:43
stevan joined
|
|||
ayrnieu | (audreyt - hah, that reminds me of a great story, back when *shiny thing appears*. ooh.) | 03:43 | |
stevan | hey audreyt | 03:46 | |
audreyt | hey | 03:50 | |
I'm still in translation | |||
5 pages to go | |||
stevan | ah | ||
what are you translating? | |||
audreyt | lambda-the-ultimate.org/node/1298#comment-14589 | ||
er, the book "Luna" | |||
03:51
grayson joined
|
|||
audreyt | www.amazon.com/gp/product/0316733695/ | 03:52 | |
stevan | yes I just found it | 03:53 | |
very nice | |||
audreyt | nice book. though for hackers, ai.eecs.umich.edu/people/conway/conway.html may be a better source | ||
this professor conway is an amazing person :) | 03:54 | ||
ayrnieu | audreyt - you're translating Luna into Chinese? For a publisher? | 03:56 | |
audreyt | ayrnieu: aye | ||
to be published June I think | |||
if not earlier | |||
it feels a bit like translating Learning Perl :) | 03:57 | ||
stevan | audreyt: are you going to put your story up there? | 03:58 | |
audreyt | stevan: in lynn's page? not sure... I'm still too early in the transition | 03:59 | |
maybe 2~3yr from now | |||
stevan | thats understandable | ||
so I wont bother you much since I know you have a deadline,.. but it occurred to me that we will be writing Perl 6 not in Perl 5, but in CPAN which fits quite nicely with your "CPAN is my programming language" idea :) | 04:01 | ||
audreyt | yeah. I want a better syntax with that language | ||
and it seems we're getting it earlier now | 04:02 | ||
putter | hey audreyt | ||
audreyt | which is wonderful | ||
yo putter | |||
stevan | hey putter | ||
putter | yes. have anchors working. going to literal, alt, maybe *, and then code (stress test:). I'm using the p5 syntax version, because the p6 version doesnt have test cases, so I dont know its state. that set should be enough to demo the concept, and get some order-of-magnitude benchmarks. | 04:04 | |
audreyt | cool | ||
putter | hi stevan. | ||
audreyt | I'll help by porting OpTable to p5 | ||
or did you already have a plan on that? | |||
putter | :) | 04:05 | |
audreyt | (the shift/reduce parser for circumfix/postcircumfix/infix etc tokens) | ||
putter | no plan | ||
audreyt | ok. I've got some sketch in D | ||
translating to P5 should be straightforward | |||
putter | I'm tunnel visioned right now - get working PR demo done before end of day (ie, next hour). | ||
audreyt | will begin as soon as I'm off ground (36hr from now) | ||
good. best luck! | 04:06 | ||
putter | ;) | ||
audreyt | I'll go back to Luna too :) & | ||
putter goes to look at Luna... no he doesn't... putter goes back to hacking... | |||
audreyt | that's right. and I won't go look at OpTable :) | 04:10 | |
putter | :) | ||
sigh. PR has non-blessed arrays for concatenations... grumble, grumble. | 04:11 | ||
audreyt | autobox.pm? | 04:12 | |
putter | nah, I can just fudge it. just grumbling because it's unnecessary cruft. | 04:13 | |
thanks :) | |||
audreyt | . o O (you said "perl5" and "fudge". I think you repeat yourself. :)) | 04:14 | |
stevan | :D | ||
tewk | audreyt: I'd be willing to give OpTable a shot while you finish your translation. Could you make your D sketches available. I did a direct port of OpTable from PGE to Ruby | ||
audreyt | tewk: where is your ruby version? | 04:15 | |
tewk: I could, but I'd need to type them into a computer | 04:16 | ||
(from analog dead trees) | |||
which I can do on the plane :) | |||
tewk: though if you have a ruby version running, transcribing to p5 should be easier than D | 04:17 | ||
tewk | It's half baked, but I could check it in. I was at the point where I needed gotos to finish OpTable. I found a ruby module that provides goto's using exceptions. | ||
audreyt | ahh. then just check it in. | ||
perl5 has gotos, anyway | |||
tewk | That should make it easier. | 04:18 | |
I'l start a translation from ruby/PGE to p5 then | |||
putter | nifty | 04:19 | |
tewk | I guess I need to go look at PR. What are you using for match objects or does that need to be ported too. | 04:21 | |
04:21
justatheory joined
|
|||
audreyt | tewk: check it in under ruby/optable/? or maybe under misc/pX/tewk/ | 04:24 | |
svnbot6 | r8963 | tewk++ | Early start at a port from PGE to Ruby | 04:29 | |
audreyt | tewk++ | ||
04:31
akusarujin joined
04:32
akusarujin left
04:34
Amnesiac joined,
azuroth joined
04:35
justatheory joined
|
|||
svnbot6 | r8964 | Darren_Duncan++ | r2400@darren-duncans-power-mac-g4: darrenduncan | 2006-02-11 20:36:53 -0800 | 04:41 | |
r8964 | Darren_Duncan++ | /ext/Rosetta : continued rewrite of Language.pod | |||
putter | tewk: no match objects a present. just doing accept/reject. there is a p5 Match object in perl5/PIL-Run. | 04:48 | |
tewk | putter: I'll go look at that | 04:52 | |
04:54
stennie joined
04:56
stennie joined
05:27
drbean joined
|
|||
gaal | $morning | 05:31 | |
05:36
rantanplan_ joined
|
|||
putter | morning gaal | 05:43 | |
gaal | heya | 05:44 | |
svnbot6 | r8965 | putter++ | Created pX/Common/regex_engine_demo.pl, the beginnings of an experimental backtracking recursive decent parser for p5. It even works, a (very) little bit. | 05:56 | |
r8965 | putter++ | Checked in today's pasted design space exploration. | |||
r8965 | putter++ | pX is dead, long live pX: | |||
r8965 | putter++ | Yesterday's strawman project proposal for "write a p6 implementation in full p6, and then boostrap it by transcoding" is dead. | |||
r8965 | putter++ | Moved the proposal Aside/, along with the "seed" code files. | |||
r8965 | putter++ | But these directories, created to illustrate a how we might work more collaboratively, look like they will live on for another day or two at least. | |||
r8965 | putter++ | And "pX" may be mutating into a new p6 on p5 effort. | |||
clkao | oooo | 05:57 | |
putter | ok, well that took longer than anticipated, and didnt get as far as intended. but the parser demo file is in, and working just a bit, and I'll get back to it in the morning. | ||
Feel free to finish while I sleep. :) | 05:58 | ||
05:58
drbean left
|
|||
putter | japhy: if you stop by, hi! we're using Regexp::Parse. :) | 05:59 | |
clkao: re oooo, :) | |||
clkao | :) | ||
06:07
Alias_ joined
|
|||
Alias_ | purl, seen audreyt? | 06:07 | |
seen audreyt? | |||
(stupid reflexs) | |||
no bots at all? | |||
ayrnieu | audreyt was last seen on #perl6 0 days, 1 hours, 31 minutes and 23 seconds ago, saying: tewk++ [Feb 10 22:29:37 2006] | 06:09 | |
Alias_ | :) | 06:10 | |
6.2.11 released! | pugs.blogs.com | pugscode.org (down?) | pugs.kwiki.org | paste: sial.org/pbot/perl6 | 06:10 | ||
ayrnieu | (she is translating Luna to Chinese, with five pages left, and has perl6 plans which begin 36 hours from) | 06:10 | |
Alias_ | Luna? | 06:11 | |
ayrnieu | www.amazon.com/gp/product/0316733695/ | ||
Alias_ | ah | 06:12 | |
Alias_ is pondering the point of can_run('foo') in M:I, since it doesn't actually DO anything | 06:16 | ||
or at least, it doesn't do what _I_ thought it did | 06:18 | ||
obra | What does it do? | 06:21 | |
Alias_ | It checks to see if you can run something and returns the location of the executable if so | 06:22 | |
svnbot6 | r8966 | putter++ | Created a new misc/pX/Common/Tasks. Which points you to all the helpful things you can do listed in misc/pX/Common/regex_engine_demo.pl and nicely marked with XXX. ;) | ||
Alias_ | I'd thought it was more of an imperative statement | ||
What I really want is a must_run('...') | |||
obra | oh. it does sounds like what I'd expect | ||
Alias_ | It has no side-effects, and I'd thought it did | 06:23 | |
it's basically which | |||
I really just want something that will abort the installation if it is not available | |||
And which also populates some notional future external dependency element in META.yaml so that debian/platform-integration works better | 06:26 | ||
I guess I should just implement a requires_external bin => 'foo'; | 06:27 | ||
or similar | |||
obra | that'd make some sense. | 06:29 | |
I believe that was the intent of "Alien" | 06:30 | ||
which was, iirc, kane's | |||
Alias_ | Sort of, yes | ||
Alien is the intensive approach | |||
I'm after more of a declarative approach | |||
Alien is a "make it happen, do what it takes" so far as I can tell | 06:31 | ||
putter | If someone wanted to create a way to use t/rules/perl5_\d.t from perl5, so I could do TDD in the morning, that would be nifty. :) | 06:32 | |
way past end of day for me. good night folks & | 06:33 | ||
ayrnieu | ?seen audreyt | 06:37 | |
?eval <<1 2 3>>[1] | |||
06:37
evalbot_8958 is now known as evalbot_8966
|
|||
evalbot_8966 | \"2" | 06:37 | |
ayrnieu | ?eval my @a = <1 2 3>; sub x { @a[$_[0]] } x(0&1) | 06:38 | |
evalbot_8966 | \"2" | ||
ayrnieu | huh, not what pugs does now. | 06:39 | |
?eval <1 2 3>[0&1] | |||
evalbot_8966 | Error: cannot cast from VJunc all(VInt 0,VInt 1) to Double (VNum) | ||
ayrnieu | pugs does that OK :-) | ||
audreyt | registerfly.com is broken, so I can't change the IP :/ | 06:42 | |
ayrnieu | ?eval class List; sub rand { @_[rand @_] } | 06:44 | |
evalbot_8966 | undef | 06:45 | |
ayrnieu | ?eval <1 2 3>.rand | ||
evalbot_8966 | 0.8528460760956738 | ||
ayrnieu | (oops.) | ||
audreyt | I don't think the contexts carry | 06:46 | |
?eval class List; sub rand { @_[rand @_] }; <1 2 3>.rand | |||
hmmm | |||
evalbot_8966 | (no output) | ||
ayrnieu | it's bad anyway: terminal loop. | ||
audreyt | aha. | ||
?eval class List; sub rand { @_[rand @_.elems] }; <1 2 3>.rand | |||
evalbot_8966 | (no output) | 06:47 | |
audreyt | ?eval sub List::rand { @_[rand +@_] }; <1 2 3>.rand | ||
evalbot_8966 | \"1" | ||
ayrnieu | yay | 06:48 | |
Daveman throws a snowball at evalbot_8966 | 06:49 | ||
azuroth | ?eval @a=[1,2,3]; say @a.elems; | 07:08 | |
evalbot_8966 | Error: Undeclared variable: "@a" | ||
azuroth | ?eval my @a=[1,2,3]; say @a.elems; | ||
evalbot_8966 | OUTPUT[1 ] bool::true | ||
azuroth | ?eval my @a=[1,2,3]; say +@a; | ||
evalbot_8966 | OUTPUT[1 ] bool::true | 07:09 | |
azuroth | ?eval my @a=(1,2,3); say +@a; | ||
evalbot_8966 | OUTPUT[3 ] bool::true | ||
azuroth | ?eval my @a=(1,2,3); say @a.elems; | ||
evalbot_8966 | OUTPUT[3 ] bool::true | ||
ayrnieu | ?eval ("hi".split(<>))&(split <>, "hi") | 07:10 | |
azuroth | why are they different in that case? bad precedence..? | ||
evalbot_8966 | ("h", "i") | ||
ayrnieu | (convergence) | ||
?eval (123.split(<>))&(split <>, 123) | |||
evalbot_8966 | ("",) | ||
07:10
comand joined
|
|||
ayrnieu | (well, the second is now different) | 07:11 | |
Alias_ | What's the URL for the P6 use syntax again? | 07:12 | |
S11? | 07:13 | ||
ayrnieu | (dev.perl.org/perl6/doc/design/syn/S11.html for modules) | 07:14 | |
Alias_ | hmm | 07:15 | |
It's kind of annoying that the use syntax requires code to specify what to use | |||
ayrnieu | ?eval +(([<1 2 3>])) & +(([<1 2 3>])[0]) | 07:16 | |
evalbot_8966 | 3 | ||
Alias_ | It's also annoying that the seperator is a legal character | ||
ayrnieu | (now: (3 & 1.0)) | ||
Alias_ | ah, wait... ok, so language is not the same as authority | ||
07:27
Aankhen`` joined
07:45
pdcawley_ joined
|
|||
Khisanth | use v6; is always going to be needed? | 07:52 | |
Alias_ | not if you have module Foo or class Foo | 07:53 | |
Khisanth | I mean for a plain old helloworld.pl | 07:55 | |
Aankhen`` | You could name it helloworld.p6. | 07:58 | |
Khisanth | and what about just helloworld? | 08:03 | |
audreyt notes that "use v6;" is shorter than "use strict;" | |||
Alias_ | audreyt: Question re: versioning Module::Install | 08:04 | |
audreyt: Is there any potential for accidentally mixing plugins from two different versions? Such that it would be worth syncronising the version of each module | 08:05 | ||
audreyt | Alias_: I wouldn't think so; the submodule versinoning are largely cosmetic | ||
Daveman throws a snowball at Khisanth. | |||
Daveman runs away to his igloo | |||
audreyt | The snowball hits! It explodes in a kaledoscopic light! --More-- | ||
Alias_ | audreyt: I've added an experimental Module::Install::External to start implementing things like requires_external bin => 'qemu'; | 08:06 | |
Daveman scrolls down audreyt | |||
;p | |||
Alias_ | But I'm not sure if I've done it all properly... also it causes the Makefile.PL run to shortcut exit without writing anything if the external thing isn't available... is that right? | ||
audreyt | Alias_: what's wrong with "can_run 'qemu' or die;' ? | ||
Daveman | I wonder if you could do wavelet analysis on that :P | 08:07 | |
Alias_ | audreyt: It's not declerative? :) | ||
declarative | |||
audreyt | then I'd use requires_bin 'qemu' | ||
Alias_ | requires_external_bin also works | ||
audreyt | adverbs is not ususally the M::I style | ||
Alias_ | I'm mainly doing it seperately so I can later implement things like versions | 08:08 | |
audreyt | sure | ||
Alias_ | Whereas can_run is quite raw | ||
audreyt | go ahead, I think that's fine | ||
yup | |||
Alias_ | And just exit(255)ing is the proper response to not finding it? | ||
Information on how Makefile.PL indicates N/A or FAIL is thin on the ground | |||
audreyt | no, dying. | ||
Makefile.PL indicates NA by dying | 08:09 | ||
it cannot indicate FAIL. | |||
Daveman | oh noes | ||
what's dying? | |||
Khisanth | the use v6; seems to be implying p5 is sticking around indefinitely though | ||
Alias_ | Specifically dying, or exiting withing writing Makefile? | ||
without | |||
audreyt | Alias_: the latter, though a line of explanation on sTDERR is highly recommeneded | ||
Alias_ | hmm... | ||
ok | |||
audreyt | Khisanth: I tend to think it's a safe implication for the forseeable future | 08:10 | |
Alias_ | I find that dying makes it look like the Makefile.PL itself is crashing, it looks confusing from a "reading the output" perspective | ||
audreyt | Alias_: you can die with a \n | 08:11 | |
Alias_ | There's no obvious distinction between intentionally exiting without writing a Makefile or accidentally crashing | ||
audreyt | die "==> Cannot find bin/qemu, aborting.\n" unless can_run('qemu'); | ||
there is, namely the trailing \n | |||
by conveniton, anyway | |||
Alias_ | ah | ||
Not really documented anywhere I've ever seen :) | |||
audreyt | indeed :) | 08:12 | |
it's all part of this oral history tradition thing | |||
Alias_ | The whole installation cycle is badly documented... too many people involved at different stages | ||
right | |||
Which makes it a bitch for PITA development, which needs strictly defined rules to attach to | |||
Testing is not an area in which I really want to be using oral history and heuristics :) | 08:13 | ||
Khisanth | audreyt: I am just thinking about being annoyed 10 years from now having to type that in every script for no other reason than backwards compatibility with something that isn't really used anymore :) | 08:14 | |
Alias_ | ok, changed to print STDERR $message . "\n"; exit(255) | ||
audreyt | Khisanth: "module Main;" :) | ||
Alias_ | Khisanth: And #!/usr/bin/perl6 | ||
audreyt | Khisanth: maybe at some point in the future it'd make sense to relax it | ||
right, or that. that's explicit. | |||
the v6 disambiguator exists because some day /usr/local/bin/perl would run perl6. | 08:15 | ||
Alias_ | If you are writing something that isn't a script, and isn't a module, then asking for a small indicator isn't too much to ask | ||
Khisanth | that seems about as likely as p5 being strict by default | ||
audreyt | Khisanth: in any case, if you are writing a oneoff script with a #! line, then #!/usr/bin/perl6 obviates the need of 'use v6' | 08:16 | |
Alias_ | If that's the case, surely perl6 would know and assume 5 grammar by default | ||
audreyt | Alias_: right. | ||
08:16
iblechbot joined
|
|||
audreyt | which is why we need a disambiguator. | 08:16 | |
Alias_ | oh right | ||
Alias_ slaps head | |||
audreyt: BTW, if you could start gently bullying people into thinking about cross-language etc deps whenever such topics come up, that would be useful | 08:18 | ||
audreyt: At the moment requires_external_bin just bails out, but I'd like to be writing an entry into some metadata somewhere so that debian/etc people can integrate better | 08:19 | ||
audreyt: So there's about a dozen people that needs to spend some time thinking about what form that metadata will take | |||
audreyt | okay, noted. | ||
Alias_ | I figure we let it stew for about 3 months, then something should happen | 08:20 | |
08:20
G2 joined
|
|||
Daveman | Alias, use the Crock::Pot? :P | 08:20 | |
Alias_ | ? :) | 08:21 | |
what now? | |||
Daveman | heehee, sorry, just silliness | ||
Alias_ | ah, stewing, right | ||
Daveman | yeah :) | ||
I wonder how stewed perl would taste... | |||
audreyt goes back to (literally) do some preflight preparations | 08:22 | ||
gaal: will you be picking me up @ airport? | |||
Alias_ | Although 50% of the time when you try to get concensus amount a dozen people it's more like Crack::Pot | ||
amoung | |||
Daveman | :\ | ||
audreyt | I parsed "Crack::Pot" as well | ||
Alias_ | :) | ||
Daveman | :( | ||
Alias_ | audreyt: Speaking of which, what are the Haskell board like? :) | ||
Daveman | hooray, haskel! | 08:23 | |
audreyt | Alias_: er, very exciting? you can see all the process via the public Trac instance | ||
Alias_ | audreyt: I'm assuming you bullied your way in to help with OO? | ||
audreyt | Alias_: no, I bullied my way by raising my hand during ICFP and volunteering when asked | ||
it's very much an adhockracy | |||
Alias_ | Any particular area of interest? | ||
I'd only heard you mention objects before | 08:24 | ||
audreyt | unicode and library interface | ||
(both are my pet interests in CPAN anyway) | |||
Alias_ | right | ||
Alias_ will be extremely happy if Haskell and P6 play together really really well | |||
audreyt | I think you are likely to be extremely happy. | ||
Khisanth | Daveman: stewed pearls would not taste very good | 08:25 | |
Alias_ | Sort of like the next generation approach to "porting parts to XS" will be "porting parts to Haskell" | ||
Daveman | Khisanth, expensive :) | ||
azuroth 's monitor keeps shaking strangely. hmm. | |||
Daveman | azuroth, commonly attributed to power fluctuations? | ||
audreyt | Alias_: sure, except that "porting parts to XS" will still work | ||
Daveman | someone's setting you up the brownout? - rut roh | ||
audreyt | (at least in the forseeable future) | ||
Alias_ | right | ||
Khisanth | azuroth: turn down the volume! | ||
Daveman | heh | ||
haha adhockracy? | 08:26 | ||
Alias_ | but porting parts to Haskell will be cleaner and less risky I'd imagine | ||
and easier to learn :) | |||
Daveman | haskell++ | ||
azuroth | it only seems to be going vertically though, which is why I find it strange | ||
audreyt | though I need to run now. talk to you in 24 hours when I'm finally Free (as in Freesbee) | ||
Alias_ | ok | 08:27 | |
audreyt ponders "Free as in Freesbee" | |||
ayrnieu | a frisbee is never free, but it flies. | ||
dduncan | hey, commits are actually happening with pugs again! | 08:28 | |
svnbot6 | r8967 | Darren_Duncan++ | r2406@darren-duncans-power-mac-g4: darrenduncan | 2006-02-12 00:27:26 -0800 | ||
r8967 | Darren_Duncan++ | /ext/Rosetta : continued rewrite of Language.pod | |||
dduncan | not just mine, I mean | 08:29 | |
08:29
drbean joined
08:33
elmex joined
|
|||
gaal | audreyt: I sure will be :) | 08:55 | |
08:56
kanru joined
|
|||
Daveman | go to bed! | 08:58 | |
gaal | audreyt: still there? | 09:04 | |
09:13
GeJ joined
09:29
azuroth left
|
|||
audreyt | gaal: yeah | 09:34 | |
09:51
elmex joined
10:14
drbean left
10:35
chris2 joined
10:51
larsen joined
10:57
iblechbot joined
11:57
bsb joined
12:15
iblechbot joined
12:35
usr-src joined
12:42
drbean joined
|
|||
svnbot6 | r8968 | bsb++ | Fix LICENSE location in doc, move comment into haddock and add the Parsec URL. | 12:51 | |
12:59
joepurl joined
13:03
stevan joined
13:10
rantanplan_ joined
13:29
ezraburgh joined
14:04
grayson joined
14:06
marmic joined
14:09
Odin-LAP joined
14:22
SamB joined
14:34
sri_ joined
14:35
sri_ joined
14:49
wilx joined
14:52
larsen joined
14:55
mncharity joined,
mncharity is now known as putter
|
|||
putter tries to find the p5 source repository - just need one file, t/op/re_tests | 14:56 | ||
wolverian | svn.perl.org/perl5/mirrors/perl/t/op/re_tests | 14:58 | |
15:00
ezraburgh joined
|
|||
putter | wolverian: :) thanks! | 15:04 | |
wolverian | you're welcome :) | 15:05 | |
15:12
drbean left
15:13
DesreveR is now known as r0nny
15:20
grayson joined
|
|||
svnbot6 | r8969 | putter++ | misc/pX/Common/: Dropped off the pieces for the creation of a p5 regexp test suite. Volunteers? :) | 15:28 | |
putter | tewk: sorry, I guess there wasn't a p5 Match class in the pugs tree. Now there is. ;) | 15:32 | |
svnbot6 | r8970 | putter++ | Added misc/pX/Common/Match.pm: a simple Match class in p5. | ||
15:37
pdcawley_ joined
|
|||
putter | ok, doing test suite... | 15:56 | |
svnbot6 | r8971 | putter++ | Common/regexp_engine_demo.t created - re_test test suite now runs. | 16:08 | |
16:08
Supaplex joined
|
|||
svnbot6 | r8972 | putter++ | regexp test suite fiddling | 16:11 | |
putter ponders the burden imposed on ChangeLog'ers by this attempt at a more public, hopefully collaborative, coding style. | 16:12 | ||
16:13
justatheory joined
|
|||
putter | Could tag the commit log entries with a prefix? Like [MINOR]? | 16:13 | |
gaal | putter: if you're thinking of chloggers (thanks) the simple convention of starting chloggworthy commits with a "* " is helpful. | 16:14 | |
gaal isn't here though. | |||
putter | lol | ||
is there an inverse convention (to tag _non_chloggworth commits)? | 16:15 | ||
ah well, if the log get's flooded, folks will start using "* ". which will actually make chlogging easier. ;) | 16:16 | ||
Anyway, the regexp current test status is 695/961 subtests failed, 27.68% okay. prove regexp_engine_demo.t. | 16:18 | ||
There are various things in regexp_engine_demo.pl, tagged with XXX, which could be done in parallel with my fleshing things out a bit. | 16:20 | ||
Hacking in perl5, not p6, so join the fun. ;) | 16:21 | ||
svnbot6 | r8973 | bsb++ | [MINOR] expand tabs to spaces in quickref/oo | 16:30 | |
r8974 | putter++ | [MINOR] Fixed regexp test suite. Implemented (?{...}) - no $/ or pos() inside yet, but local() vars should work correctly. | 16:45 | ||
putter | bsb: [MINOR] is just so visually *big*. :( | 16:50 | |
r8974 | zim++ | [MINOR] Gyred and gimbled. | |||
r8974 | zim++ | xxx Gyred and gimbled. | |||
r8974 | zim++ | x Gyred and gimbled. | |||
bsb | I thought so too | ||
putter | any ideas? | 16:51 | |
r8974 | zim++ | * Gyred and gimbled chkloggably. A baseline log message. | 16:52 | ||
bsb | leading - ~ # | 16:53 | |
? | |||
put the whole thing in () | |||
putter | r8974 | zim++ | # gyred and gimbled. | 16:55 | |
r8974 | zim++ | * gyred and gimbled. | |||
r8974 | zim++ | ~ gyred and gimbled. | |||
putter thinks # is the nicest one so far... | |||
r8974 | zim++ | ? gyred and gimbled. | 16:56 | ||
16:56
vel joined,
s7n joined
|
|||
Juerd | putter: # isn't nice, because in code, it is often used | 17:07 | |
putter: # for multiline things | |||
Which is, conceptually, a single comment, not two comments. | |||
I personally like the [foo] flags best | 17:08 | ||
[CT] - changelog this ;) | |||
Or just CT | |||
putter | hi Juerd. hmm. | 17:16 | |
re [CT], as gaal mentioned, there's already a pretty widespread convention of "* ". we've just not been using it ;) so it's more a question of how to flag entire log messages as "i'm not '* ' because I really mean it, rather than being '* ' because that's just not something we do" | 17:18 | ||
ie, some flag that tells the changelogger to skip on by. | 17:19 | ||
I liked the resonance/entails of a single leading # vis "#" being a comment character. but it looks like that just bit us, so now I'm unsure :) | 17:20 | ||
17:20
knewt joined
|
|||
putter | though maybe once it gets used once or twice the ambiguity will go away. | 17:20 | |
in a log message with somethings chlogable and some not, whatever the usual "* " convention could be used. maybe it's "* yes\n* yes\nbut not me". but I don't remember | 17:22 | ||
I'm thinking of this more as a transitional device, until use of "* " becomes reliable. | 17:23 | ||
s/reliable/existant?/ ;) | |||
17:27
Amnesiac joined
|
|||
putter | gaal: you and audreyt seem to do a great deal of our chlogging - any preferences/thoughts? | 17:28 | |
putter realizes you arent here - no problem | 17:29 | ||
17:30
kattana_ joined
17:48
Manaus joined
|
|||
audreyt | putter: I prefer the convention of omitting * on minor (non-chgloggable) commits | 17:50 | |
18:06
rantanplan_ joined
18:07
Manaus left
|
|||
putter | audreyt: great. thanks. :) | 18:11 | |
18:46
justatheory joined
|
|||
wolverian | pugscode.org is still broken for me | 18:56 | |
putter | me too. no ping. My traceroute gets as far as 0.so-6-0-0.xr1.d12.xs4all.net. | 18:59 | |
19:03
elmex joined
19:11
ezraburgh joined
19:50
weinig joined
|
|||
svnbot6 | r8975 | putter++ | regexp engine progresses. | 20:10 | |
20:36
usr-src is now known as usr-src^
20:38
usr-src^ is now known as usr-src
20:49
khisanth_ joined
20:50
khisanth_ is now known as Khisanth
20:52
avar joined
20:54
Southen_ joined
20:59
avar joined
21:09
GeJ_ joined
21:23
avar joined
21:24
hcarty joined
21:26
hcarty left
21:30
usr-src is now known as \usr\src
21:40
DesreveR joined
21:43
stevan_ joined
21:47
avar joined
21:52
\usr\src is now known as usr-bin
21:53
avarab joined
22:00
usr-bin is now known as usr-src
22:09
bsb joined
22:30
Limbic_Region joined
22:46
bsb left
|
|||
ayrnieu | ?nopaste | 22:48 | |
pasteling | "ayrnieu" at 68.13.103.15 pasted "unexpected "w"; expecting ";", statements or "}"; not a class name or reserved word; at ./insult.p6 line 57, column 3" (70 lines, 3K) at sial.org/pbot/15846 | 22:51 | |
ayrnieu | (what is going on?) | ||
Limbic_Region | looks like a parse error | 22:53 | |
nope | |||
you put it in a BEGIN block | |||
but you didn't close the block? | |||
ayrnieu | no, I closed it. | ||
Limbic_Region | oh nevermind me - I see that the while loop is supposed to be inside too | 22:54 | |
ayrnieu | I corrected the shift() calls, though, in the while, to apply directly to @k , and now the program runs as expected. | ||
so... weird. | 22:55 | ||
Limbic_Region | yeah, I just found the same thing | 22:57 | |
so shift is spec'd to operate on $_ when no variable is given now? | 22:58 | ||
ayrnieu | that was just my mistake, from when I wanted to assign the <> list to @_ | ||
23:07
dduncan joined
23:10
drbean joined
23:39
xinming joined
|
|||
xinming | anyone here is able to open www.pugscode.org? | 23:41 | |
I tried just now, And doesn't work here. | 23:42 | ||
23:46
j0sephi joined
|
|||
ayrnieu | the machine has a new IP, apparently, and audreyt hasn't been able to contact the hostname people to have it changed. | 23:46 | |
then again, I see audreyt saying (many hours ago) that it was fixed and should propagate within the hour. | 23:47 | ||
it might be nice if someone could take the new IP address over to dyndns.org for a temporary solution. | 23:48 | ||
wolverian | does someone know what it is? | 23:49 | |
audreyt | yes. 213.84.134.174 | ||
"dig www.pugscode.org" now returns the correct ip for me | |||
registerfly just replied to my ticket | 23:50 | ||
wolverian | oh, it works here too, now | ||
audreyt | so I imagine they only really resolved this problem ~5min ago | ||
someone please take down the /topic notice :) | |||
wolverian | 6.2.11 released! | pugs.blogs.com | pugscode.org | pugs.kwiki.org | paste: sial.org/pbot/perl6 | 23:51 | |
avarab | ;; SERVER: 192.168.1.1#53(192.168.1.1) | 23:51 | |
;) | |||
wolverian | heh, using the IP directly leads me to CPAN++ | 23:53 | |
Juerd | audreyt: You could use feather for the dns if you want | 23:54 | |
audreyt: It has two IPs ;) |