Perl 6 - the future is here, just unevenly distributed

IRC log for #perl6, 2006-02-12

Perl 6 | Reference Documentation | Rakudo

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

All times shown according to UTC.

Time Nick Message
00:06 putter http://search.cpan.org/~crunchie/​Regexp-Extended-0.01/Extended.pm is cute.
00:12 putter ah, http://search.cpan.org/~pinyan/Regexp-Parser-0.20/  replaces YAPE::Regex
00:26 putter http://search.cpan.org/~amackey​/Regexp-DeferredExecution-0.05/ has nice perl.com article
00:32 putter http://search.cpan.org/~pinyan/Regexp-Keep-0.02/ laugh
00:51 theorbtwo joined perl6
00:59 putter http://search.cpan.org/src/PINYAN/Regex​p-Parser-0.20/lib/Perl6/Rule/Parser.pm  !!
01:01 putter japhy was indeed on #perl (connected to at least).  I asked him to stop by to chat.
01:04 theorb joined perl6
01:04 vel joined perl6
01:05 pdcawley_ joined perl6
01:24 pdcawley_ joined perl6
01:26 stevan_ joined perl6
01:30 stevan_ heya putter
01:36 putter hey stevan_ :)
01:36 putter soo...
01:36 stevan_ soo...
01:38 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:42 putter 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)
01:42 putter though can of course be used prior to being fleshed out.  (zombie usage?;)
01:43 putter to.... provide call/cc on a p5 backend??
01:44 * stevan_ is not really a "parser" guy, so you are loosing me a little
01:44 stevan_ is now known as stevan
01:44 stevan putter: Coro for all your continutation needs (it works pretty well IIRC)
01:46 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 putter that's the implementation of the regexp "a"
01:48 putter 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 putter err, my code example should have been  return $c->(...)
01:49 ayrnieu why should it be that way?
01:50 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?
01:51 putter one can say   $fa= lit("a"); $fb= lit("b");   and then  $fab = $fa->(sub{$fb->($_[0])});
01:52 putter yes.  for instance, alt would be
01:52 Kattana it looks ugly.
01:54 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:55 putter 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:56 sven_ joined perl6
01:56 putter (where let() is p6's hypothetical variable decl.  like local() (aka temp()) on failure, but like simple assignment on success.
01:57 putter so  my $new_pos = undef; { local $pos = $pos + 1; if succeeded { $new_pos = $pos; } } $pos = $new_pos if $new_pos;     sigh.
01:58 Juerd putter: But do you even want to think of .*a backtracking?
01:58 Juerd Trying .* first, then one less, then one less, again one less, until you find an a?
02:00 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 ;)
02:01 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.
02:02 putter 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.
02:06 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? ;)
02:06 putter combine them into one, or have one call another from inside of itself.
02:07 putter Juerd: sure :)
02:07 putter it looks like japhy has already done the annoying part. :)
02:08 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 Juerd There must be something huge you're overlooking. Or you're even more of a genius than I thought
02:09 putter well, see integral's earlier comments about recursion and stack depth.
02:10 putter 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:11 putter 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:12 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.
02:12 putter but again, that's more complex
02:13 Juerd Perl 5 doesn't do any high level optimizations
02:13 Juerd Only on statement and expression level it optimizes.
02:13 Juerd And runtime.
02:13 Juerd Of course
02:13 putter yeah, but my fuzzy (very) impression was lexically scoped subs which don't escape get inlined.
02:14 Juerd I'd be very surprised.
02:14 putter :/
02:14 Juerd Perl 5 doesn't even have lexically scoped subs
02:14 Juerd It has lexical variables that can hold references to subs.
02:14 Juerd But I doubt it can abstract that enough to optimize it.
02:15 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.
02:15 putter could well be wrong though.  but as you said, the first thing is to see something work.
02:15 Juerd I don't call that inlining.
02:16 putter not destructed, but deconstructed :)
02:16 putter it's p5 vm opcodes get inlined.  or that's the hypothesis
02:16 Juerd Do you mean that { my $f = sub { a }; ... $f->() ... } gets optimized into { ... { a } ... }?
02:16 Juerd if so, nafaik.
02:16 putter yes.  ah well. :(
02:17 Juerd I have no idea how it possibly could.
02:17 Juerd $f is a runtime thing. By the time $f->() is reached, it could hold 42 instead of the subref.
02:17 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.
02:18 Juerd Perl 5 has no analysis of variables, and how they're used. It doesn't inline variables that aren't used elsewhere.
02:20 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:21 putter would provide a performance test too
02:21 Juerd Oh my
02:21 Juerd Don't we have a performance test in the sense of `time make test` then?
02:22 putter huh?
02:22 Juerd Mind not
02:22 * putter is confused...
02:22 Juerd So was I
02:22 putter it's contagious ;)
02:23 Juerd More so than h5n1, apparently.
02:23 Juerd At least h5n1 doesn't spread over wire... yet.
02:23 putter ?
02:23 Juerd avian influenza, the pandemic waiting to happen
02:24 Juerd The h5n1 variant is carried by birds, and happily jumps to humans.
02:25 Juerd Long incubation period, so the birds and humans get more than enough time to infect others.
02:25 Juerd Lack of vaccin, lack of anti virals, lack of emergency plans
02:25 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.
02:25 Juerd It's a nice overview of how modern society set its own death trap once more.
02:26 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?
02:27 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...
02:28 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:29 Juerd I'm going to bed, sorry
02:29 Juerd Good night
02:29 putter Juerd: re quick, err, quickly developed.  i expect speed to be poor.
02:29 Juerd I see
02:29 putter re can't be quick, yes.
02:30 putter but all it has to be is fast enough to be usable to bootstrap, no?
02:31 putter Juerd: good night
02:33 * putter wants a module which configures -MCPAN so it actually works... :/
02:40 scook0 joined perl6
02:49 * 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:54 grayson joined perl6
03:19 putter hmm, the YAPE-Regexp alt node doesnt actually store the alternatives.  Regexp-Parser's does.  switching to RP...
03:39 audreyt putter: are you planning on writing a rules compiler in p5 using regexp::parser?
03:40 audreyt (havn't yet backlogged)
03:40 audreyt I think it's a valid path. I tried to get ingy started on it but we got... distracted
03:40 audreyt to that yaml business
03:41 audreyt not surprisingly for two severe ADD people
03:43 stevan joined perl6
03:43 ayrnieu (audreyt - hah, that reminds me of a great story, back when *shiny thing appears*.  ooh.)
03:46 stevan hey audreyt
03:50 audreyt hey
03:50 audreyt I'm still in translation
03:50 audreyt 5 pages to go
03:50 stevan ah
03:50 stevan what are you translating?
03:50 audreyt http://lambda-the-ultimate.​org/node/1298#comment-14589
03:50 audreyt er, the book "Luna"
03:51 grayson joined perl6
03:52 audreyt http://www.amazon.com/gp/product/0316733695/
03:53 stevan yes I just found it
03:53 stevan very nice
03:53 audreyt nice book. though for hackers, http://ai.eecs.umich.edu/people/conway/conway.html may be a better source
03:54 audreyt this professor conway is an amazing person :)
03:56 ayrnieu audreyt - you're translating Luna into Chinese?  For a publisher?
03:56 audreyt ayrnieu: aye
03:56 audreyt to be published June I think
03:56 audreyt if not earlier
03:57 audreyt it feels a bit like translating Learning Perl :)
03:58 stevan audreyt: are you going to put your story up there?
03:59 audreyt stevan: in lynn's page? not sure... I'm still too early in the transition
03:59 audreyt maybe 2~3yr from now
03:59 stevan thats understandable
04:01 stevan 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
04:02 audreyt and it seems we're getting it earlier now
04:02 putter hey audreyt
04:02 audreyt which is wonderful
04:02 audreyt yo putter
04:02 stevan hey putter
04:04 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
04:04 putter hi stevan.
04:04 audreyt I'll help by porting OpTable to p5
04:04 audreyt or did you already have a plan on that?
04:05 putter :)
04:05 audreyt (the shift/reduce parser for circumfix/postcircumfix/infix etc tokens)
04:05 putter no plan
04:05 audreyt ok. I've got some sketch in D
04:05 audreyt translating to P5 should be straightforward
04:05 putter I'm tunnel visioned right now - get working PR demo done before end of day (ie, next hour).
04:05 audreyt will begin as soon as I'm off ground (36hr from now)
04:06 audreyt good. best luck!
04:06 putter ;)
04:06 audreyt I'll go back to Luna too :) &
04:06 * putter goes to look at Luna... no he doesn't... putter goes back to hacking...
04:10 audreyt that's right. and I won't go look at OpTable :)
04:10 putter :)
04:11 putter sigh.  PR has non-blessed arrays for concatenations... grumble, grumble.
04:12 audreyt autobox.pm?
04:13 putter nah, I can just fudge it.  just grumbling because it's unnecessary cruft.
04:13 putter thanks :)
04:14 audreyt . o O (you said "perl5" and "fudge". I think you repeat yourself. :))
04:14 stevan :D
04:14 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
04:15 audreyt tewk: where is your ruby version?
04:16 audreyt tewk: I could, but I'd need to type them into a computer
04:16 audreyt (from analog dead trees)
04:16 audreyt which I can do on the plane :)
04:17 audreyt 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.
04:17 audreyt ahh. then just check it in.
04:17 audreyt perl5 has gotos, anyway
04:18 tewk That should make it easier.
04:18 tewk I'l start a translation from ruby/PGE to p5 then
04:19 putter nifty
04:21 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 justatheory joined perl6
04:24 audreyt tewk: check it in under ruby/optable/? or maybe under misc/pX/tewk/
04:29 svnbot6 r8963 | tewk++ | Early start at a port from PGE to Ruby
04:29 audreyt tewk++
04:31 akusarujin joined perl6
04:32 akusarujin left perl6
04:34 Amnesiac joined perl6
04:34 azuroth joined perl6
04:35 justatheory joined perl6
04:41 svnbot6 r8964 | Darren_Duncan++ |  r2400@darren-duncans-power-mac-g4:  darrenduncan | 2006-02-11 20:36:53 -0800
04:41 svnbot6 r8964 | Darren_Duncan++ |  /ext/Rosetta : continued rewrite of Language.pod
04:48 putter tewk: no match objects a present. just doing accept/reject.  there is a p5 Match object in perl5/PIL-Run.
04:52 tewk putter: I'll go look at that
04:54 stennie joined perl6
04:56 stennie joined perl6
05:27 drbean joined perl6
05:31 gaal $morning
05:36 rantanplan_ joined perl6
05:43 putter morning gaal
05:44 gaal heya
05:56 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 svnbot6 r8965 | putter++ | Checked in today's pasted design space exploration.
05:56 svnbot6 r8965 | putter++ | pX is dead, long live pX:
05:56 svnbot6 r8965 | putter++ | Yesterday's strawman project proposal for "write a p6 implementation in full p6, and then boostrap it by transcoding" is dead.
05:56 svnbot6 r8965 | putter++ | Moved the proposal Aside/, along with the "seed" code files.
05:56 svnbot6 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.
05:56 svnbot6 r8965 | putter++ | And "pX" may be mutating into a new p6 on p5 effort.
05:57 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.
05:58 putter Feel free to finish while I sleep. :)
05:58 drbean left perl6
05:59 putter japhy: if you stop by, hi!  we're using Regexp::Parse. :)
05:59 putter clkao: re oooo, :)
05:59 clkao :)
06:07 Alias_ joined perl6
06:07 Alias_ purl, seen audreyt?
06:07 Alias_ seen audreyt?
06:07 Alias_ (stupid reflexs)
06:07 Alias_ no bots at all?
06:09 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:10 Alias_ :)
06:10 Alias_ changes topic to: 6.2.11 released! | pugs.blogs.com | pugscode.org (down?) | pugs.kwiki.org | paste: http://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:11 Alias_ Luna?
06:11 ayrnieu http://www.amazon.com/gp/product/0316733695/
06:12 Alias_ ah
06:16 * Alias_ is pondering the point of can_run('foo') in M:I, since it doesn't actually DO anything
06:18 Alias_ or at least, it doesn't do what _I_ thought it did
06:21 obra What does it do?
06:22 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. ;)
06:22 Alias_ I'd thought it was more of an imperative statement
06:22 Alias_ What I really want is a must_run('...')
06:22 obra oh. it does sounds like what I'd expect
06:23 Alias_ It has no side-effects, and I'd thought it did
06:23 Alias_ it's basically which
06:23 Alias_ I really just want something that will abort the installation if it is not available
06:26 Alias_ And which also populates some notional future external dependency element in META.yaml so that debian/platform-integration works better
06:27 Alias_ I guess I should just implement a requires_external bin => 'foo';
06:27 Alias_ or similar
06:29 obra that'd make some sense.
06:30 obra I believe that was the intent of "Alien"
06:30 obra which was, iirc, kane's
06:30 Alias_ Sort of, yes
06:30 Alias_ Alien is the intensive approach
06:30 Alias_ I'm after more of a declarative approach
06:31 Alias_ Alien is a "make it happen, do what it takes" so far as I can tell
06:32 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:33 putter way past end of day for me.  good night folks &
06:37 ayrnieu ?seen audreyt
06:37 ayrnieu ?eval <<1 2 3>>[1]
06:37 evalbot_8958 is now known as evalbot_8966
06:37 evalbot_8966 \"2"
06:38 ayrnieu ?eval my @a = <1 2 3>; sub x { @a[$_[0]] } x(0&1)
06:38 evalbot_8966 \"2"
06:39 ayrnieu huh, not what pugs does now.
06:39 ayrnieu ?eval <1 2 3>[0&1]
06:39 evalbot_8966 Error: cannot cast from VJunc all(VInt 0,VInt 1) to Double (VNum)
06:39 ayrnieu pugs does that OK :-)
06:42 audreyt registerfly.com is broken, so I can't change the IP :/
06:44 ayrnieu ?eval class List; sub rand { @_[rand @_] }
06:45 evalbot_8966 undef
06:45 ayrnieu ?eval <1 2 3>.rand
06:45 evalbot_8966 0.8528460760956738
06:45 ayrnieu (oops.)
06:46 audreyt I don't think the contexts carry
06:46 audreyt ?eval  class List; sub rand { @_[rand @_] };  <1 2 3>.rand
06:46 audreyt hmmm
06:46 evalbot_8966 (no output)
06:46 ayrnieu it's bad anyway: terminal loop.
06:46 audreyt aha.
06:46 audreyt ?eval class List; sub rand { @_[rand @_.elems] }; <1 2 3>.rand
06:47 evalbot_8966 (no output)
06:47 audreyt ?eval sub List::rand { @_[rand +@_] }; <1 2 3>.rand
06:47 evalbot_8966 \"1"
06:48 ayrnieu yay
06:49 * Daveman throws a snowball at evalbot_8966
07:08 azuroth ?eval @a=[1,2,3]; say @a.elems;
07:08 evalbot_8966 Error: Undeclared variable: "@a"
07:08 azuroth ?eval my @a=[1,2,3]; say @a.elems;
07:08 evalbot_8966 OUTPUT[1 ] bool::true
07:08 azuroth ?eval my @a=[1,2,3]; say +@a;
07:09 evalbot_8966 OUTPUT[1 ] bool::true
07:09 azuroth ?eval my @a=(1,2,3); say +@a;
07:09 evalbot_8966 OUTPUT[3 ] bool::true
07:09 azuroth ?eval my @a=(1,2,3); say @a.elems;
07:09 evalbot_8966 OUTPUT[3 ] bool::true
07:10 ayrnieu ?eval ("hi".split(<>))&(split <>, "hi")
07:10 azuroth why are they different in that case? bad precedence..?
07:10 evalbot_8966 ("h", "i")
07:10 ayrnieu (convergence)
07:10 ayrnieu ?eval (123.split(<>))&(split <>, 123)
07:10 evalbot_8966 ("",)
07:10 comand joined perl6
07:11 ayrnieu (well, the second is now different)
07:12 Alias_ What's the URL for the P6 use syntax again?
07:13 Alias_ S11?
07:14 ayrnieu (http://dev.perl.org/perl6/doc/design/syn/S11.html for modules)
07:15 Alias_ hmm
07:15 Alias_ It's kind of annoying that the use syntax requires code to specify what to use
07:16 ayrnieu ?eval +(([<1 2 3>])) & +(([<1 2 3>])[0])
07:16 evalbot_8966 3
07:16 Alias_ It's also annoying that the seperator is a legal character
07:16 ayrnieu (now: (3 & 1.0))
07:16 Alias_ ah, wait... ok, so language is not the same as authority
07:27 Aankhen`` joined perl6
07:45 pdcawley_ joined perl6
07:52 Khisanth use v6; is always going to be needed?
07:53 Alias_ not if you have module Foo or class Foo
07:55 Khisanth I mean for a plain old helloworld.pl
07:58 Aankhen`` You could name it helloworld.p6.
08:03 Khisanth and what about just helloworld?
08:03 * audreyt notes that "use v6;" is shorter than "use strict;"
08:04 Alias_ audreyt: Question re: versioning Module::Install
08:05 Alias_ 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
08:05 * Daveman throws a snowball at Khisanth.
08:05 * Daveman runs away to his igloo
08:05 audreyt The snowball hits! It explodes in a kaledoscopic light! --More--
08:06 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
08:06 Daveman ;p
08:06 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?
08:06 audreyt Alias_: what's wrong with "can_run 'qemu' or die;' ?
08:07 Daveman I wonder if you could do wavelet analysis on that :P
08:07 Alias_ audreyt: It's not declerative? :)
08:07 Alias_ declarative
08:07 audreyt then I'd use requires_bin 'qemu'
08:07 Alias_ requires_external_bin also works
08:07 audreyt adverbs is not ususally the M::I style
08:08 Alias_ I'm mainly doing it seperately so I can later implement things like versions
08:08 audreyt sure
08:08 Alias_ Whereas can_run is quite raw
08:08 audreyt go ahead, I think that's fine
08:08 audreyt yup
08:08 Alias_ And just exit(255)ing is the proper response to not finding it?
08:08 Alias_ Information on how Makefile.PL indicates N/A or FAIL is thin on the ground
08:08 audreyt no, dying.
08:09 audreyt Makefile.PL indicates NA by dying
08:09 audreyt it cannot indicate FAIL.
08:09 Daveman oh noes
08:09 Daveman what's dying?
08:09 Khisanth the use v6; seems to be implying p5 is sticking around indefinitely  though
08:09 Alias_ Specifically dying, or exiting withing writing Makefile?
08:09 Alias_ without
08:09 audreyt Alias_: the latter, though a line of explanation on sTDERR is highly recommeneded
08:09 Alias_ hmm...
08:09 Alias_ ok
08:10 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
08:11 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
08:11 audreyt die "==> Cannot find bin/qemu, aborting.\n" unless can_run('qemu');
08:11 audreyt there is, namely the trailing \n
08:11 audreyt by conveniton, anyway
08:11 Alias_ ah
08:11 Alias_ Not really documented anywhere I've ever seen :)
08:12 audreyt indeed :)
08:12 audreyt it's all part of this oral history tradition thing
08:12 Alias_ The whole installation cycle is badly documented... too many people involved at different stages
08:12 Alias_ right
08:12 Alias_ Which makes it a bitch for PITA development, which needs strictly defined rules to attach to
08:13 Alias_ Testing is not an area in which I really want to be using oral history and heuristics :)
08:14 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)
08:14 audreyt Khisanth: "module Main;" :)
08:14 Alias_ Khisanth: And #!/usr/bin/perl6
08:14 audreyt Khisanth: maybe at some point in the future it'd make sense to relax it
08:14 audreyt right, or that. that's explicit.
08:15 audreyt 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
08:15 Khisanth that seems about as likely as p5 being strict by default
08:16 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
08:16 audreyt Alias_: right.
08:16 iblechbot joined perl6
08:16 audreyt which is why we need a disambiguator.
08:16 Alias_ oh right
08:16 * Alias_ slaps head
08:18 Alias_ 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:19 Alias_ 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 Alias_ audreyt: So there's about a dozen people that needs to spend some time thinking about what form that metadata will take
08:19 audreyt okay, noted.
08:20 Alias_ I figure we let it stew for about 3 months, then something should happen
08:20 G2 joined perl6
08:20 Daveman Alias, use the Crock::Pot? :P
08:21 Alias_ ? :)
08:21 Alias_ what now?
08:21 Daveman heehee, sorry, just silliness
08:21 Alias_ ah, stewing, right
08:21 Daveman yeah :)
08:21 Daveman I wonder how stewed perl would taste...
08:22 * audreyt goes back to (literally) do some preflight preparations
08:22 audreyt gaal: will you be picking me up @ airport?
08:22 Alias_ Although 50% of the time when you try to get concensus amount a dozen people it's more like Crack::Pot
08:22 Alias_ amoung
08:22 Daveman :\
08:22 audreyt I parsed "Crack::Pot" as well
08:22 Alias_ :)
08:22 Daveman :(
08:22 Alias_ audreyt: Speaking of which, what are the Haskell board like? :)
08:23 Daveman hooray, haskel!
08:23 audreyt Alias_: er, very exciting? you can see all the process via the public Trac instance
08:23 Alias_ audreyt: I'm assuming you bullied your way in to help with OO?
08:23 audreyt Alias_: no, I bullied my way by raising my hand during ICFP and volunteering when asked
08:23 audreyt it's very much an adhockracy
08:23 Alias_ Any particular area of interest?
08:24 Alias_ I'd only heard you mention objects before
08:24 audreyt unicode and library interface
08:24 audreyt (both are my pet interests in CPAN anyway)
08:24 Alias_ right
08:24 * Alias_ will be extremely happy if Haskell and P6 play together really really well
08:24 audreyt I think you are likely to be extremely happy.
08:25 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"
08:25 Daveman Khisanth, expensive :)
08:25 * azuroth 's monitor keeps shaking strangely. hmm.
08:25 Daveman azuroth, commonly attributed to power fluctuations?
08:25 audreyt Alias_: sure, except that "porting parts to XS" will still work
08:25 Daveman someone's setting you up the brownout? - rut roh
08:25 audreyt (at least in the forseeable future)
08:25 Alias_ right
08:25 Khisanth azuroth: turn down the volume!
08:25 Daveman heh
08:26 Daveman haha adhockracy?
08:26 Alias_ but porting parts to Haskell will be cleaner and less risky I'd imagine
08:26 Alias_ and easier to learn :)
08:26 Daveman haskell++
08:26 azuroth it only seems to be going vertically though, which is why I find it strange
08:26 audreyt though I need to run now. talk to you in 24 hours when I'm finally Free (as in Freesbee)
08:27 Alias_ ok
08:27 * audreyt ponders "Free as in Freesbee"
08:27 ayrnieu a frisbee is never free, but it flies.
08:28 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
08:28 svnbot6 r8967 | Darren_Duncan++ |  /ext/Rosetta : continued rewrite of Language.pod
08:29 dduncan not just mine, I mean
08:29 drbean joined perl6
08:33 elmex joined perl6
08:55 gaal audreyt: I sure will be :)
08:56 kanru joined perl6
08:58 Daveman go to bed!
09:04 gaal audreyt: still there?
09:13 GeJ joined perl6
09:29 azuroth left perl6
09:34 audreyt gaal: yeah
09:51 elmex joined perl6
10:14 drbean left perl6
10:35 chris2 joined perl6
10:51 larsen joined perl6
10:57 iblechbot joined perl6
11:57 bsb joined perl6
12:15 iblechbot joined perl6
12:35 usr-src joined perl6
12:42 drbean joined perl6
12:51 svnbot6 r8968 | bsb++ |  Fix LICENSE location in doc, move comment into haddock and add the Parsec URL.
12:59 joepurl joined perl6
13:03 stevan joined perl6
13:10 rantanplan_ joined perl6
13:29 ezraburgh joined perl6
14:04 grayson joined perl6
14:06 marmic joined perl6
14:09 Odin-LAP joined perl6
14:22 SamB joined perl6
14:34 sri_ joined perl6
14:35 sri_ joined perl6
14:49 wilx joined perl6
14:52 larsen joined perl6
14:55 mncharity joined perl6
14:55 mncharity is now known as putter
14:56 * putter tries to find the p5 source repository - just need one file, t/op/re_tests
14:58 wolverian http://svn.perl.org/perl5/​mirrors/perl/t/op/re_tests
15:00 ezraburgh joined perl6
15:04 putter wolverian: :)  thanks!
15:05 wolverian you're welcome :)
15:12 drbean left perl6
15:13 DesreveR is now known as r0nny
15:20 grayson joined perl6
15:28 svnbot6 r8969 | putter++ | misc/pX/Common/: Dropped off the pieces for the creation of a p5 regexp test suite.  Volunteers? :)
15:32 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 perl6
15:56 putter ok, doing test suite...
16:08 svnbot6 r8971 | putter++ | Common/regexp_engine_demo.t created - re_test test suite now runs.
16:08 Supaplex joined perl6
16:11 svnbot6 r8972 | putter++ | regexp test suite fiddling
16:12 * putter ponders the burden imposed on ChangeLog'ers by this attempt at a more public, hopefully collaborative, coding style.
16:13 justatheory joined perl6
16:13 putter Could tag the commit log entries with a prefix?   Like [MINOR]?
16:14 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.
16:14 putter lol
16:15 putter is there an inverse convention (to tag _non_chloggworth commits)?  
16:16 putter ah well, if the log get's flooded, folks will start using "* ".  which will actually make chlogging easier. ;)
16:18 putter Anyway, the regexp current test status is 695/961 subtests failed, 27.68% okay.  prove regexp_engine_demo.t.
16:20 putter 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:21 putter Hacking in perl5, not p6, so join the fun. ;)
16:30 svnbot6 r8973 | bsb++ | [MINOR] expand tabs to spaces in quickref/oo
16:45 svnbot6 r8974 | putter++ | [MINOR] Fixed regexp test suite.  Implemented (?{...}) - no $/ or pos() inside yet, but local() vars should work correctly.
16:50 putter bsb: [MINOR] is just so visually *big*. :(
16:50 putter  r8974 | zim++ | [MINOR] Gyred and gimbled.
16:50 putter  r8974 | zim++ | xxx Gyred and gimbled.
16:50 putter r8974 | zim++ | x Gyred and gimbled.
16:50 bsb I thought so too
16:51 putter any ideas?
16:52 putter r8974 | zim++ | * Gyred and gimbled chkloggably.  A baseline log message.
16:53 bsb leading - ~ #
16:53 bsb ?
16:53 bsb put the whole thing in ()
16:55 putter r8974 | zim++ | # gyred and gimbled.
16:55 putter r8974 | zim++ | * gyred and gimbled.
16:55 putter r8974 | zim++ | ~ gyred and gimbled.
16:55 * putter thinks # is the nicest one so far...
16:56 putter r8974 | zim++ | ? gyred and gimbled.
16:56 vel joined perl6
16:56 s7n joined perl6
17:07 Juerd putter: # isn't nice, because in code, it is often used
17:07 Juerd putter: # for multiline things
17:07 Juerd Which is, conceptually, a single comment, not two comments.
17:08 Juerd I personally like the [foo] flags best
17:08 Juerd [CT] - changelog this ;)
17:08 Juerd Or just CT
17:16 putter hi Juerd.  hmm.
17:18 putter 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:19 putter ie, some flag that tells the changelogger to skip on by.
17:20 putter 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 knewt joined perl6
17:20 putter though maybe once it gets used once or twice the ambiguity will go away.
17:22 putter 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:23 putter I'm thinking of this more as a transitional device, until use of "* " becomes reliable.
17:23 putter s/reliable/existant?/ ;)
17:27 Amnesiac joined perl6
17:28 putter gaal: you and audreyt seem to do a great deal of our chlogging - any preferences/thoughts?
17:29 * putter realizes you arent here - no problem
17:30 kattana_ joined perl6
17:48 Manaus joined perl6
17:50 audreyt putter: I prefer the convention of omitting * on minor (non-chgloggable) commits
18:06 rantanplan_ joined perl6
18:07 Manaus left perl6
18:11 putter audreyt: great.  thanks. :)
18:46 justatheory joined perl6
18:56 wolverian pugscode.org is still broken for me
18:59 putter me too.  no ping.  My traceroute gets as far as 0.so-6-0-0.xr1.d12.xs4all.net.
19:03 elmex joined perl6
19:11 ezraburgh joined perl6
19:50 weinig joined perl6
20:10 svnbot6 r8975 | putter++ | regexp engine progresses.
20:36 usr-src is now known as usr-src^
20:38 usr-src^ is now known as usr-src
20:49 khisanth_ joined perl6
20:50 khisanth_ is now known as Khisanth
20:52 avar joined perl6
20:54 Southen_ joined perl6
20:59 avar joined perl6
21:09 GeJ_ joined perl6
21:23 avar joined perl6
21:24 hcarty joined perl6
21:26 hcarty left perl6
21:30 usr-src is now known as \usr\src
21:40 DesreveR joined perl6
21:43 stevan_ joined perl6
21:47 avar joined perl6
21:52 \usr\src is now known as usr-bin
21:53 avarab joined perl6
22:00 usr-bin is now known as usr-src
22:09 bsb joined perl6
22:30 Limbic_Region joined perl6
22:46 bsb left perl6
22:48 ayrnieu ?nopaste
22:51 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 http://sial.org/pbot/15846
22:51 ayrnieu (what is going on?)
22:53 Limbic_Region looks like a parse error
22:53 Limbic_Region nope
22:53 Limbic_Region you put it in a BEGIN block
22:53 Limbic_Region but you didn't close the block?
22:53 ayrnieu no, I closed it.
22:54 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.
22:55 ayrnieu so... weird.
22:57 Limbic_Region yeah, I just found the same thing
22:58 Limbic_Region 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 perl6
23:10 drbean joined perl6
23:39 xinming joined perl6
23:41 xinming anyone here is able to open www.pugscode.org?
23:42 xinming I tried just now, And doesn't work here.
23:46 j0sephi joined perl6
23:46 ayrnieu the machine has a new IP, apparently, and audreyt hasn't been able to contact the hostname people to have it changed.
23:47 ayrnieu then again, I see audreyt saying (many hours ago) that it was fixed and should propagate within the hour.
23:48 ayrnieu it might be nice if someone could take the new IP address over to dyndns.org for a temporary solution.
23:49 wolverian does someone know what it is?
23:49 audreyt yes. 213.84.134.174
23:49 audreyt "dig www.pugscode.org" now returns the correct ip for me
23:50 audreyt registerfly just replied to my ticket
23:50 wolverian oh, it works here too, now
23:50 audreyt so I imagine they only really resolved this problem ~5min ago
23:50 audreyt someone please take down the /topic notice :)
23:51 wolverian changes topic to: 6.2.11 released! | pugs.blogs.com | pugscode.org | pugs.kwiki.org | paste: http://sial.org/pbot/perl6
23:51 avarab ;; SERVER: 192.168.1.1#53(192.168.1.1)
23:51 avarab ;)
23:53 wolverian heh, using the IP directly leads me to CPAN++
23:54 Juerd audreyt: You could use feather for the dns if you want
23:54 Juerd audreyt: It has two IPs ;)

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

Perl 6 | Reference Documentation | Rakudo