Perl 6 - the future is here, just unevenly distributed

IRC log for #perl6, 2006-09-17

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:00 larsen joined perl6
00:00 zgh markstos: thanks I will
00:01 markstos TimToady, etc: Any opinion on whether the underscore trick should work with "-X" operators, such as:
00:01 markstos print "Readable\n" if -r _;
00:02 obra by underscore trick, you mean the stat cach?
00:02 obra cache
00:02 TimToady no, it shouldn't
00:02 markstos I may try to port the "-X" docs from Perl5, making a note of $file.'-e',
00:02 TimToady but you can say $x = -e $filename; if -r $x {...}
00:02 TimToady the return value of a test is both a boolean and a stat buffer.
00:03 markstos Cool.
00:04 obra That's a little scary
00:04 mjk joined perl6
00:06 markstos Does that also allow for $file.'-e'.'-x'  ?
00:07 TimToady yes.
00:07 markstos Sweet.
00:07 TimToady split seems to be confused about unicode.
00:07 TimToady ?eval "唐鳳 Audrey Tang たんぐおとり".split(/\s+/)
00:07 evalbot_r13373 is now known as evalbot_r13385
00:07 evalbot_r13385 (no output)
00:07 TimToady hmm, that's even more confused...
00:09 TimToady anyway, I get
00:09 TimToady ("唐鳳 Aud", "ey", "Tang", "たんぐおとり")
00:09 TimToady so there's obviously a bit of bytes vs codepoints confusion there.
00:10 TimToady since every 3-byte unicode adds 2 to the offset.
00:10 TimToady (in utf-8 terms)
00:12 TimToady actually, that should be be たんおとり, I guess, since 日本語 has syllable-final n that is pronounced ng
00:12 TimToady but the split is still wrong.
00:15 zgh where's the perl io documentation? I'm looking for the interface to make a socket connection to host:port
00:15 zgh er perl6
00:15 zgh sorry
00:16 zgh oh, docs/Perl6/Spec/IO.pod
00:17 markstos zgh: That part of the spec has only been developed in the last week or two.
00:17 markstos None of the socket stuff is done.
00:17 markstos (as a spec)
00:17 svnbot6 r13386 | markstos++ | [IO.pod]
00:17 svnbot6 r13386 | markstos++ |    Port docs for -X from Perl 5. Changes included:
00:17 svnbot6 r13386 | markstos++ |    - documenting  $file.'-e' style
00:18 svnbot6 r13386 | markstos++ |    - removing section about "_"
00:18 svnbot6 r13386 | markstos++ |    - Add docs and examples for TimToady's note that the
00:18 svnbot6 r13386 | markstos++ |      return values are boolean /and/ stat buffers.
00:18 markstos If you need to /use/ something, grep around in the test suite to see if something is implemented but not spec'ed.
00:18 zgh okay
00:18 obra markstos: given that the removal of _ is a change from p5, is it worth explicitly documenting its removal?
00:18 zgh I assumed since listen worked that connect would.
00:18 zgh i wil dig thanks
00:18 markstos I've been primarily the one working on IO.pod, as you can you see.
00:19 markstos obra: Somewhere, yes.
00:19 markstos I don't think we want every change in the spec itself, and I haven't seen other ones always there. Maybe Perl6::Perl5::Differences.pod is a better place.
00:20 markstos Doing that now.
00:20 obra thanks
00:20 markstos And by "now" I mean, "after I get a snack".
00:20 audreyt dduncan: p5embed is not hard req
00:21 audreyt but when it's nonembed we use ipc
00:21 audreyt so indeed pcre is no longer needed
00:21 audreyt but it's compatible enough that I"m not in a particular rush (i.e. showstopper for this release)
00:21 audreyt to swap it out.
00:21 audreyt next release, maybe, or when someone feel like to.
00:22 zgh okay.... I'd like to move the connect test from unspecced to io, and flesh out the spec along with that
00:22 dduncan audreyt, I hear you, thanks
00:23 dduncan in any event, I changed all the regexps in my code to Perl 6 rules, now that I can reasonably count on them just working despite no Parrot
00:24 TimToady well -r -w -x $file is right out of A03, but for some reason it didn't make it into S03...
00:25 TimToady I would advise against removing pcre for right now.  without :P5 you can't even match ^, it seems.
00:25 dduncan regarding the whole matter of -foo file test operators, I don't see any reason to keep them in Perl 6 ... the .file_exists() or whatever should be the default instead
00:25 audreyt ?eval 1 ~~ rule{^1}
00:25 zgh can someone tell me, if the connect builtin is "Unfiled" in the spec, does that mean it might not be a builtin, or does it mean it just hasn't been documented?
00:25 evalbot_r13385 is now known as evalbot_r13386
00:25 evalbot_r13386 (no output)
00:25 zgh I would like to document "connect"
00:25 audreyt hmm, it worksforme
00:25 zgh based on the tests that pass
00:26 audreyt ?eval 1
00:26 evalbot_r13386 1
00:26 TimToady ?eval 1 ~~ /^\d/
00:26 evalbot_r13386 (no output)
00:26 audreyt i'll look at evalbot
00:26 audreyt it appears that ^ is available under ratchet
00:26 audreyt but somehow not under nonratchet.
00:26 markstos zgh: Please proceed.
00:27 audreyt it also appears that the backtracking part of PCR is less exercised
00:27 audreyt as v6-alpha uses ratchet pretty much all the time
00:27 markstos zgh: see also: perldoc -u -f connect
00:27 audreyt TimToady: under :P5, PCR just delegate to the underlying p5rx engine
00:27 zgh markstos: right! thanks much
00:27 audreyt so it should be as compatible, if not more (by definition), as pcre
00:28 TimToady k
00:28 markstos TimToady: I'll document -r -w -x $file instead of your previous example. It's clearer.
00:30 TimToady as operators the diffs should at least be mentioned in S03...
00:31 markstos TimToady: Are you volunteering for that update? :)
00:33 markstos uh oh, I've got a 'stalled lock' with svk' and "svk cleanup" doesn't fix it.
00:36 TimToady too late to volunteer...it's already done.
00:40 markstos svk cleanup --all fixed my 'stall lock' issue.
00:42 svnbot6 r13387 | markstos++ | [IO.pod]
00:42 svnbot6 r13387 | markstos++ |     Use clearer example with: -r -x -w
00:42 svnbot6 r13387 | markstos++ |     Update the "Author" field to reflect that most of this content is coming from Perl 5.
00:45 zgh how do I slurp a filehandle in perl6? this is for a test so I want something that works now
00:45 zgh in pugs anyway
00:46 TimToady use .slurp
00:47 markstos TimToady: In Module.pod:307, "use perl5" is mentioned, but there are no details of what, if any embedded languages are officially supported, and how the cross language communication works. It would be useful to have a note about to clarify the Perl 6 spec boundary there, and which remaining parts are implementation specific.
00:48 TimToady that sounds kinda like "define the universe and give three examples"...
00:48 markstos I mean, does Perl 6 plan to spec any of the details for how to communicate with Perl 5 ?
00:49 markstos The difference between passing an array and arrayref to Perl 5 is non-obvious since Perl 6 "doesn't have" references.
00:50 markstos But, adding such details to the spec sets a precent for providing such details for every possible embeddable language, so perhaps they are best left to the implementation to specify.
00:51 TimToady ?eval "/etc/mtab".slurp
00:51 evalbot_r13386 is now known as evalbot_r13387
00:51 evalbot_r13387 Error: Unsafe function 'slurp' called under safe mode
00:51 TimToady good
00:52 TimToady biab &
00:54 avar You could map it to rw pretty safely
00:54 avar if I understand you correctly
00:54 markstos avar: context? What or who are you responding to ?
00:54 avar to you
00:55 markstos I could map an array to rw when passing it to Perl 5? I'm still not sure what you are referring to.
00:56 audreyt markstos: I guess a "scalar @x" should passthru to p5 as a "array reference"
00:56 fglock joined perl6
00:57 markstos audreyt: Thanks. I'm going to start a wiki page for related details.
00:57 audreyt markstos++
00:57 markstos The reason I was asking TimToady related questions was because I was wondering whether such things should be part of the official spec or not.
00:57 audreyt fglock: any ideas on the failure of /^x/ ?
00:58 audreyt markstos: for perl5 interop I think it should be
00:58 audreyt as perl5 is part of perl6
00:58 fglock la
00:58 lambdabot fglock: You have 1 new message. '/msg lambdabot @messages' to read it.
00:58 fglock ola
00:58 fglock audreyt: will look
00:58 fglock I'm backlogging
01:02 fglock I've been mostly using token{} lately - so the regex is a bit behind
01:02 fglock regex implementation
01:02 markstos audrey: I agree it's a helpful feature for transistion time, but I'm not sure about whether it should be official.  It just seems there's a lot of complexity there, which could turn out difficult to support.
01:03 markstos So far, it doesn't seem that Perl embedding has been heavily excerised to figure out limitations and dragons there might be lurking.
01:04 audreyt not talking about embedding only
01:04 audreyt 5to6 too
01:04 audreyt 6to5 too
01:04 audreyt but interop is part of perl6
01:04 audreyt just like interop with perl4 is part of perl5.
01:04 audreyt concrete implementations may have their quirks
01:04 audreyt but user should get same semantic expectation regardless of the underlying method used.
01:04 markstos In any case, it's a useful feature and deserves to be documented, which I'll help with. The officialness can decided later.
01:04 audreyt be it p5emb, 5to6, 6to5, or something.
01:05 audreyt yes.
01:05 audreyt officiality is largely adhoc anyway...
01:07 svnbot6 r13388 | zgh++ | [docs/Perl6/Spec/IO.pod]
01:07 svnbot6 r13388 | zgh++ |     added basic documentation for connect builtin
01:07 svnbot6 r13388 | zgh++ | [t/builtins/io/connect.t]
01:07 svnbot6 r13388 | zgh++ |     moved the connect test from t/unspecced
01:07 svnbot6 r13389 | zgh++ | added a test for connecting to subclasses of HTTP::Server::Simple
01:07 zgh I coudn't find the implementation of connect... I documented it based on the tests
01:09 markstos zgh: Great. Thanks.
01:10 zgh markstos: thanks for the go-ahead earlier I'm still a nervous commiter ^_^
01:10 markstos zgh: glad to help.
01:13 svnbot6 r13390 | markstos++ | [Differences.pod]
01:13 audreyt zgh++
01:13 svnbot6 r13390 | markstos++ |     Added section for file test operators.
01:15 zgh i'd be interested to hear what other think of that HTTP::Server::Simple test.. it seems clunky there might be a better way to do it
01:15 markstos zgh: I'll take look.
01:16 zgh markstos: I am still working on that CGI.pm failure ^_^
01:16 zgh markstos: thanks
01:17 markstos zgh: I would avoid the '01', and 02 in the test names unless there is a strict need to run them in that order. it's just easier and simpler to avoid the numbers if they aren't needed.
01:18 markstos zgh: In my experience, subclassing isn't working right now with Pugs, so it may not be the fault of HTTP::Server::Simple that  the test failed.
01:18 zgh funny thing is, it works sometimes
01:18 zgh well it did i can't actually reproduce that now ^_^
01:18 markstos Strange.
01:19 zgh i do have a program that seems to successfully subclass HTTP::Server::Simple
01:19 zgh hrm
01:20 zgh oh!
01:20 * zgh slaps head
01:21 zgh i broke it manually, it wasn't pugs
01:21 zgh checked in a fix
01:21 markstos I think I ran into a specific issue with overriding new... I recall that 'new()' always got called in the parent, even though it was redefined in the child.
01:21 svnbot6 r13391 | zgh++ | [ext/HTTP-Server-Simple/t/02_subclass.t]
01:21 svnbot6 r13391 | zgh++ |     fixed a couple of typos that made the test fail
01:21 zgh ah i have not overloaded new yet
01:21 markstos Yep. subclass.t passes for me now, too.
01:21 zgh okay well now I just need one that fails to use CGI ^_^
01:23 zgh what I would like to do is check for the string "stuff" to make sure the handler is being executed
01:23 svnbot6 r13392 | fglock++ | PCR - implemented non-ratchet '^'
01:23 zgh is it possible to slurp the rest of a filehandler?
01:23 zgh er filehandle?
01:24 audreyt .slurp.
01:24 audreyt $fh.slurp
01:24 zgh heh. thanks
01:31 audreyt np :)
01:31 audreyt bbiab...
01:31 fglock audreyt: fixed
01:31 audreyt fglock++
01:32 audreyt ?eval 1 ~~ /^1/
01:32 evalbot_r13387 is now known as evalbot_r13392
01:32 evalbot_r13392 (no output)
01:33 fglock ?eval 'x' ~~ /^x/
01:33 Termy joined perl6
01:34 evalbot_r13392 joined perl6
01:35 fglock ?eval 'x' ~~ /^x/
01:35 evalbot_r13392 (no output)
01:35 * audreyt ponders
01:36 fglock t\04-rule.t passes (last 2 tests)
01:38 fglock implementation = Pugs::Runtime::Regex::at_start()
01:38 svnbot6 r13393 | zgh++ | fixed up subclass test for HTTP::Server::Simple, now checks for handler content
01:41 evalbot_r13393 joined perl6
01:42 audreyt ?eval 1 ~~ /1/
01:42 evalbot_r13393 CODE: [[ 1 ~~ /1/ ]]
01:42 audreyt ?eval say(1~~/1/)
01:42 evalbot_r13393 CODE: [[ say(1~~/1/) ]]
01:43 audreyt ?eval say(1~~'1')
01:43 evalbot_r13393 CODE: [[ say(1~~'1') ]]OUTPUT[1 ] Bool::True
01:43 audreyt weird. I wonder what's wrong
01:46 evalbot_r13393 joined perl6
01:48 markstos ?eval use perl5:CGI; my $href =  { a => "Hello" }; my $q = CGI.new($href); say "result: "~$q.param('a');
01:48 evalbot_r13393 Error: *** Unsafe function 'require_perl5' called under safe mode     at -e line 16, column 7-187
01:51 audreyt prolly a good thing.
01:51 audreyt ?eval 1 ~~ /1/
01:52 evalbot_r13393 (no output)
01:56 evalbot_r13393 joined perl6
01:58 audreyt ?eval 1 ~~ /1/
01:58 evalbot_r13393 (no output)
02:01 fglock joined perl6
02:02 svnbot6 r13394 | fglock++ | v6 - fixed regex '$'
02:03 fglock s/v6/PCR/
02:12 svnbot6 r13395 | audreyt++ | * pugsembed.c: Change the "hate software" error message to
02:12 svnbot6 r13395 | audreyt++ |   something more informative.
02:12 clkao audreyt: you ruined my art and i will no longer contribute to pugs!
02:13 audreyt T:~/work/pugs audreyt$ grep -r hate src/perl5
02:13 audreyt src/perl5/p5embed.c:#define hate Perl_croak(aTHX_ "hate software")
02:13 audreyt src/perl5/p5embed.c:#define hate
02:13 audreyt src/perl5/p5embed.c:      hate;
02:13 audreyt src/perl5/p5embed.c:        hate;
02:14 audreyt plenty of hates left
02:14 audreyt I won't touch these then
02:14 svnbot6 r13396 | audreyt++ | * initPerl5 regardless of safeMode; this should fix the
02:14 svnbot6 r13396 | audreyt++ |   evalbot's inability to run ~~.
02:15 svnbot6 r13397 | fglock++ | PCR - ChangeLog, TODO update
02:15 svnbot6 r13398 | audreyt++ | * pugsembed.c: Add back "hates software so much" so that
02:15 svnbot6 r13398 | audreyt++ |   clkao++ can continue contribute to Pugs.
02:16 audreyt there you go :)
02:17 audreyt clkao: you should sleep already anyway :)
02:18 evalbot_r13396 joined perl6
02:18 audreyt ?eval 1 ~~ /^1/
02:18 evalbot_r13393 Match.new(   ok => Bool::True,    from => 0,    to => 1,    str => "1",    sub_pos => (),    sub_named => {} )
02:18 audreyt ?eval 1 ~~ /1$/
02:18 evalbot_r13393 Match.new(   ok => Bool::True,    from => 0,    to => 1,    str => "1",    sub_pos => (),    sub_named => {} )
02:18 evalbot_r13396 Match.new(   ok => Bool::True,    from => 0,    to => 1,    str => "1",    sub_pos => (),    sub_named => {} )
02:18 audreyt yay.
02:18 evalbot_r13396 Match.new(   ok => Bool::True,    from => 0,    to => 1,    str => "1",    sub_pos => (),    sub_named => {} )
02:19 audreyt restarting evalbot, it should stay longer this time
02:19 audreyt bbiab
02:21 evalbot_r13398 joined perl6
02:25 mako132_ joined perl6
02:33 TreyHarris TimToady: do you get mail at [email@hidden.address]  I just sent you a diff, but didn't realize until I'd sent that it was to that address.
02:48 dduncan is there an ETA for when there may be a Pugs 6.2.13 release candidate for me to smoke?
02:50 clkao ( pugs+PCR )++
02:50 clkao it's like real language now
02:52 clkao are we nearly there yet?
02:52 zgh clkao: hehe, well said.
02:53 zgh clkao: I didn't really get into pugs development until I could write mostly perl6
02:53 zgh clkao: I would say it has definitely become a real langauge
02:54 zgh clkao: all the code I have checked in so far is pure perl6
02:56 audreyt dduncan: if PCR doesn't break too horribly (it shouldn't), then sometime this week
02:57 dduncan okay ... I'll look out for a mention of it on your blog
02:57 dduncan on a different matter ...
02:57 dduncan off topic question - under Mac OS X, what is the easiest way to see which applications are using my network bandwidth ... Activity Monitor seems to just show the total, but I'd like to see it broken down
02:59 jdv79 PCR?
03:00 jdv79 dduncan: i might install ethereal
03:00 audreyt Pugs::Compiler::Rule; see perl5/Pugs-Compiler-Rule/
03:00 jdv79 if i could get it to install (i still haven't been able to)
03:00 dduncan will have a look
03:01 jdv79 ah yes, i was playing with PCR last night - cool
03:03 dduncan jdv79, BTW, Ethereal has renamed to Wireshark
03:03 jdv79 oh, right - i forgot - sorry
03:03 jdv79 i don't like the new name
03:03 dduncan still, I know what you meant
03:04 jdv79 if you want to install it from fink or darwinports its still ethereal last i checked
03:05 jdv79 i tried to install it a few weeks ago and i couldn't get it to understand what X i was running...
03:07 jdv79 interesting move on the rules stuff, wonder if PGE dev will slow as a result.
03:07 dduncan I'm still trying to find an installer package ... unless its only available as source
03:08 TreyHarris there's a big thread on http://forums.macosxhints.com/showthread.php?t=38939 about it
03:08 lambdabot http://tinyurl.com/nu7cv
03:09 dduncan fyi, I have X11 installed, but not Fink or any other third party package manager
03:12 dduncan well, its not terribly important anyway
03:12 jdv79 aparrently its not as trivial as it is elsewhere like fedora
03:12 SamB WTH did they rename ethereal?
03:13 jdv79 company wouldn't give up the name
03:13 SamB company?
03:13 jdv79 but the guy who wrote it left
03:13 jdv79 aparrently the name is owned by the company that used to employ the author
03:13 SamB they are mean!
03:14 SamB people should send nasty letters!
03:14 jdv79 :)
03:14 SamB also, that package has had that name for quite some time
03:14 SamB why did they not complain before?
03:18 jdv79 wow, updating fink takes forever
03:26 Termy yeah it does
03:27 Termy but its worth it
03:27 Termy better than darwinports
03:31 luqui joined perl6
03:54 weinig|bbl is now known as weinig
04:22 b00t joined perl6
04:26 rindolf joined perl6
04:26 rindolf Hi all.
04:26 rindolf I'm having problems installing IO::All (and Term::ReadLine::Gnu with perl-5.9.4)
04:26 rindolf I'm having problems installing IO::All (and Term::ReadLine::Gnu) with perl-5.9.4
04:27 rindolf I'm using Kubuntu Breezy
04:27 weinig is now known as weinig|zZz
04:57 Termy joined perl6
05:01 ajs_home rindolf: This is not a general Perl channel, but one for Perl 6. Also, Perl 5.9.4 is the development version. Perhaps you meant to use a 5.8.x?
05:03 rindolf ajs_: no, I purposely used perl 5.9.4, to see if I can compile my homesite with it.
05:20 Aankhen`` joined perl6
05:21 TimToady ext/Perl6-Grammar/t/basic.t is hanging again, this time cranking 100% CPU.  strace repeats forever:
05:21 TimToady sigreturn()                             = ? (mask now [])
05:21 TimToady --- SIGALRM (Alarm clock) @ 0 (0) ---
05:22 BooK joined perl6
05:26 TimToady appears to hang after "ok 18"
05:28 TimToady hangs on the test:
05:28 TimToady is(?("Perl6::rule" ~~ /^<identZZ>$/),Bool::True,"ids are parsed as fullid");
05:32 cmarcelo hanging here too.. :(
05:37 Aankhen`` What is identZZ?
05:38 rindolf Hi TimToady
05:49 TimToady seems to loop on litvar.t as well.
05:49 TimToady hi rindolf.
05:52 rindolf TimToady: what's up?
05:52 rindolf TimToady: if I write Module::myfunc "arg1";
05:52 rindolf What should perl do?
05:52 TimToady hanging test is
05:52 TimToady ok("abca" ~~ m/^@var+$/, 'Multiple array matching', :todo<feature>);
05:53 TimToady Perl 6?
05:54 TimToady In Perl 6 it should fail compilation if Module::myfunc isn't defined by the end of this compilation unit.
05:55 TimToady Or if it defined to be inconsistent with a list operator.
05:56 rindolf TimToady: no, in Perl 5.
05:56 rindolf According to http://perldoc.perl.org/perlsub.html#Private-Variables-via-my()-my-variable%2c-lexical-lexical-lexical-variable-scope%2c-lexical-lexical-scope-attributes%2c-my
05:56 lambdabot Title: perlsub - perldoc.perl.org, http://tinyurl.com/o3ecz
05:56 rindolf The parenthesis are optional only if the sub was pre-declared.
05:57 TimToady In Perl 5 it should fail compilation outright.
05:57 rindolf Yet with require Carp; and Carp::carp "hello" it fails.
05:57 rindolf I mean it works.
05:57 rindolf TimToady: OK.
05:58 rindolf Oh, I see.
05:58 rindolf Either strict.pm or warnings.pm imports Carp.
05:59 rindolf But they no longer do in perl-5.9.4
05:59 rindolf Hmmpf.
06:01 TimToady good reason to switch to Perl 6.  :)
06:12 MacVince Is there an operator in Perl 6 to compare arrays?  Specifically, deeply nested arrays?
06:19 TimToady hyperops are supposed to dwim on arrays but I'm not sure it's implemented yet.
06:26 dduncan whenever eqv et al works for arrays and hashes etc, that will help me
06:29 dduncan on that note ...
06:29 dduncan ?eval 1 === 1
06:29 evalbot_r13398 Bool::True
06:29 dduncan ?eval [1,2] eqv [1,2]
06:29 evalbot_r13398 Bool::True
06:29 dduncan or maybe they do?
06:30 TimToady ?eval [1,[2,3]] eqv [1,[2,3]]
06:30 evalbot_r13398 Bool::False
06:30 dduncan or maybe not
06:30 TimToady ?eval [1,[2,3]] >>==<< [1,[2,3]]
06:30 evalbot_r13398 (Bool::True, (Bool::True, Bool::True))
06:31 dduncan I thought hyper-ops just worked at a single level
06:31 TimToady ?eval [1,[1,1]] >>==<< 1
06:31 evalbot_r13398 (Bool::True, (Bool::True, Bool::True))
06:31 dduncan so that should return just (Bool::True, Bool::True)
06:32 TimToady no, they're defined to extend any missing dimension as needed.
06:32 TimToady looks like they're doing that too.
06:32 dduncan I see
06:33 TimToady looks like eqv is what isn't working recursively yet.
06:33 dduncan but still, [1,[2,3]] eqv [1,[2,3]] is incorrectly returning false
06:33 dduncan once it does, and === too, that will help me
06:33 dduncan should make some currently failing Set::Relation tests pass
06:33 TimToady ?eval [1,2] eqv [3,4]
06:33 evalbot_r13398 Bool::False
06:33 dduncan checking ...
06:33 TimToady well, at least it's going down one level
06:34 TimToady (1,(2,3)) eqv (1,(2,3))
06:34 TimToady ?eval (1,(2,3)) eqv (1,(2,3))
06:34 evalbot_r13398 Bool::True
06:34 TreyHarris ?eval my $x = [2,3];  [1,$x] eqv [1,$x]
06:34 evalbot_r13398 Bool::False
06:35 MacVince Should a simple operation like that be so complicated?
06:35 TimToady why do you think eqv is defined to be a simple operation?
06:35 dduncan ?eval { 'foo' => 'bar' } eqv { 'foo' => 'bar' }
06:35 evalbot_r13398 Bool::False
06:36 dduncan comparing hashes specifically is what is causing my test failures, currently
06:36 dduncan { 'foo' => 'bar' } eqv { 'foso' => 'bsar' }
06:36 dduncan I mean ?eval { 'foo' => 'bar' } eqv { 'foso' => 'bsar' }
06:36 dduncan ?eval { 'foo' => 'bar' } eqv { 'foso' => 'bsar' }
06:36 evalbot_r13398 Bool::False
06:37 dduncan and I've only been trying with hashes whose elements are Str, so far
06:40 mdiep_ joined perl6
06:42 dduncan well, good night!
06:42 TimToady night!
06:42 dduncan left perl6
06:45 initself joined perl6
06:55 initself At this point, I'm not experienced or wise enough to contribute to Perl 6 (not as far as I know), but I sure hope whatever it ends of being can help tone down all the 'Perl is dying' crap I keep reading.
06:55 initself Perl is one of the best things that ever happened to me.
06:58 audreyt initself: Is mike at mikebaas dot org the correct place to send a commit bit to?
07:01 initself audreyt: yes
07:01 TimToady audreyt: did you see the hangs we found earlier?
07:02 TimToady thanks, initself.  we actually need people involved in Perl 6 that are just picking it up from the beginning.
07:03 audreyt initself: welcome aboard :) add yourself to ATHORS to test commit and play around :)
07:03 TimToady most of us are too used to ignoring the obvious problems.  :)
07:03 initself It'd be wicked cool if I could actually do something useful for Perl.
07:04 TimToady just putting in smartlinks from tests to the specs is very useful.
07:04 initself I just started learning OOP from perlboot and perltoot.
07:04 audreyt yes -- see the http://rakudo.org/perl6/ wiki for how; also  docs/Perl6/Overview/* and docs/Perl6/FAQ/FUD.pod and other things under docs/Perl6 can use some love and review :)
07:04 initself (not sure that has anything to do with Perl 6, but it's still nice)
07:06 audreyt TimToady: looking into it
07:06 TimToady also, taking out my :P5's made my program run about 60 times slower... :/
07:07 TimToady I wonder if an optmization path to translate some P6 regex straight to P5 would be useful.
07:07 TimToady but correctness first...
07:08 audreyt nod, I've been chatting with demerphq about directly support that
07:08 svnbot6 r13399 | audreyt++ | * Pugs::Runtime::Regex - Deep recursion is made fatal.
07:08 TimToady isn't that going to make .* fail on long strings?
07:08 audreyt as with PCRE callbacks, perl5 can be made aware of nested captures, and with Nicholas's proof-of-concept re.pm, we can swap in new re engines into on old 5.8 perls
07:10 audreyt ?eval ('x' xx 200) ~~ /.*/
07:10 evalbot_r13398 Deep recursion on anonymous subroutine at /home/audreyt/pugs/perl5/Pugs-Compiler-Rule/lib/Pugs/Runtime/Regex.pm line 314. Deep recursion on anonymous subroutine at /home/audreyt/pugs/perl5/Pugs-Compiler-Rule/lib/Pugs/Runtime/Regex.pm line 56. Match.new(   ok => Bool::True,    from => 0,    to => 399,    str =>     "x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x
07:10 audreyt ?eval ('x' xx 200) ~~ rule{.*}
07:10 evalbot_r13398 Match.new(   ok => Bool::True,    from => 0,    to => 400,    str =>     "x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x
07:11 audreyt ponders.
07:11 audreyt the recurse limit of 100 is hardcoded?
07:11 TimToady yep
07:11 audreyt bummer.
07:12 audreyt 09:07 < TimToady> I wonder if an optmization path to translate some P6 regex straight to P5 would be useful.
07:12 audreyt I hear a certain CPAN module went down that path quite some time ago...
07:12 rindolf Hi audreyt
07:12 audreyt greetings rindolf
07:12 TimToady well, if we could figure out which candidates were suitable for such treatment...
07:12 TimToady and which weren't...
07:13 audreyt *nod*
07:13 audreyt part of pcre's advantage is that it hasdirect named capture support
07:13 audreyt which makes named subrule suspectible to such treatment
07:13 TimToady yes, but my 60x slower program is all just s/^.*\t// and the like.
07:14 rindolf audreyt: what's up?
07:15 TimToady and I think the linkage and the memory leakage is dominating currently.
07:16 audreyt mmm perl5 closures and memory leaks.
07:16 audreyt actually if we look at Sage's rules
07:16 audreyt and reverse them
07:16 TimToady it'll spit out mad yaml... :)
07:17 audreyt ...which can't yet be deserialized back, right?
07:17 audreyt or can it?
07:17 audreyt use MadLoader;
07:17 TimToady actually, he has his own regex translator.
07:17 TimToady if I recall.
07:17 audreyt rindolf: pugs now embeds perl5 by default, so CPAN modules can dircetly be used even on win32; also we no longer needs parrot for p6regex, but that's currently causing some transition pains.
07:18 rindolf audreyt: nice.
07:18 audreyt TimToady: yes, I was referring to misc/pX/Common/P5_to_P6_Translation/ASTTranslate.hs
07:18 TimToady that might reverse to regex rather than yaml
07:18 audreyt which is good, as prettyprint is trivial
07:19 audreyt since the "conversion" are supposed to be isomorphic
07:19 TimToady well, and if not, that's when you punt to PCR.
07:20 audreyt *nod*
07:20 audreyt until that happens I guess we do what we've always did for PGE
07:20 audreyt namely flunk the looping tests...
07:21 * audreyt ponders an alternate plan with Time::HiRes::alarm
07:22 TimToady I've always thought there should be some way of saying "if foo.t takes 5 units to run, bar.t takes about 13 units" (assuming non-sleep behavior)
07:23 TimToady course there can be other non-linearities in there too...
07:24 TimToady still, most of the tests are fairly consistent with what percentage of the total CPU time they'll chew up.
07:25 TimToady at least for a given setup.
07:25 audreyt *nod*
07:26 TimToady speaking of non-sleep behavior, I'd better engage in some non-non-sleep behavior soon.
07:27 audreyt have fun nonnonsleeping!
07:28 TimToady hmm, actually, I hope it's boring rather than fun.  :)
07:28 TimToady zzzzz &
07:35 norageek joined perl6
07:40 what3 joined perl6
07:40 svnbot6 r13400 | audreyt++ | * Triage: Disable two hanging tests.
07:40 svnbot6 r13400 | audreyt++ |   Help wanted to unTODO the now-passing subtests (see the latest
07:40 svnbot6 r13400 | audreyt++ |   smoke on smoke.pugscode.org for which ones), and maybe unSKIP
07:40 svnbot6 r13400 | audreyt++ |   the rule tests that were causing PGE to fail.
07:50 * cmarcelo untodoing...
07:52 audreyt cmarcelo++
07:55 cmarcelo audreyt: btw, I'll smoke here again, but looks like GHC-trunk "solved" the J.Hash problems, you might want to try it there.
07:56 audreyt which problem? randomly dropping keys?
07:56 audreyt (my GHC is Sep07 build)
07:58 cmarcelo well. it was segfaulting in lots of tests here, also suddenly ending pugs with Prelude.undefined error. but didn't caught explicitly the dropping keys, any test in special that you saw it doing the drops?
07:59 audreyt here anything could trigger it
07:59 audreyt ./pugs -e "print 123"
07:59 audreyt would result in no &print found
07:59 audreyt (this is the use in Pugs.Internals for interning)
08:03 svnbot6 r13401 | cmarcelo++ | * unTODOing some tests.
08:04 b00t joined perl6
08:06 xdaveg joined perl6
08:06 agentzh joined perl6
08:07 agentzh audreyt: should i send the blog post to p6c?
08:08 xdg23 joined perl6
08:09 audreyt agentzh: that'd be cool also.
08:10 cmarcelo audreyt: I'm checking again, but looks like latest GHC make it work right.. after this I'll smoke it and compare with a clean checkput smoke.. are you using binary builds, maybe trying a recent one there ?
08:12 audreyt I build it myself... I'll rebuild now
08:12 agentzh audreyt: okay :)
08:19 iblechbot joined perl6
08:31 agentzh seen Sal
08:31 jabbot agentzh: I havn't seen Sal, agentzh
08:34 Sal joined perl6
08:34 Sal #join
08:35 Sal seen agentzh
08:35 jabbot Sal: agentzh was seen 4 minutes 12 seconds ago
08:35 nothingmuch Sal: he was just looking for you
08:35 Sal okay
08:35 agentzh hi, Sal
08:36 agentzh welcome to #perl6!
08:36 audreyt agentzh: btw I just made you metacommitter
08:36 agentzh audreyt: thanks!
08:36 audreyt so feel free to login to rt.openfoundry.org and send commit bits via http://rt.openfoundry.org/Foundry/Project/Admin/Members/?Queue=270
08:36 audreyt I need to run to dinner in a bit.
08:37 lambdabot Title: Pugs -- OSSF, http://tinyurl.com/nbyaq
08:37 agentzh okay!
08:37 audreyt Sal: welcome and have fun! :)
08:37 agentzh see you :)
08:37 * nothingmuch ponders going to the supermarket
08:37 * agentzh ponders going to the dining hall.
08:37 * audreyt ponders using libGHC on GHC 6.6 to emit concrete haskell typeclass/data type from nothingmuch's MI/MO
08:37 Sal audreyt:thanks
08:38 audreyt and load them via ghci interpretation API
08:38 audreyt maybe that will be faster than naive data structures; even if they are the same, it could enable better optimization on pugscc
08:38 Sal agentzh: see you
08:38 audreyt nothingmuch: what's your immediate next step? perl5 codeegen?
08:39 nothingmuch audreyt: today i'm going to try that
08:39 nothingmuch that sounds interesting that thought
08:39 nothingmuch will you have cycles after dinner?
08:40 audreyt I will, but perhaps the dinner will be longish
08:40 audreyt so I'll be back in ~4hr
08:40 nothingmuch enjoy
08:40 cmarcelo audreyt: tell me when you got a result on J.Hash... :)
08:41 audreyt cmarcelo: ok :)
08:41 audreyt cmarcelo: btw if you can bench J.H with J.SM on interning
08:42 audreyt over a typical smoke run
08:42 audreyt that'd be great. I expect very small diff
08:43 audreyt but if J.H shows nontrivial win I'm willing to switch to it
08:44 cmarcelo audreyt: ok.. there are any boilerplate code to protect J.SM from \0?
08:45 audreyt sure
08:45 audreyt it's already thoroughly protected
08:45 audreyt line 318 Pugs.Internals
08:45 audreyt -- In the \0 case, we diverge from the Unicode standard to remove any trace
08:45 audreyt -- of embedded nulls in our bytestrings, to allow the use of Judy.StrMap
08:45 audreyt -- and to make passing CString around easier.  See Java for the same treatment:
08:45 audreyt -- http://java.sun.com/j2se/1.5.0/docs/api/java/io/DataInput.html#modified-utf-8
08:45 lambdabot http://tinyurl.com/jyncg
08:45 audreyt it's an old trick from Java(tm)
08:46 audreyt encoding U+0000 as 0xC0 0x80
08:46 cmarcelo (just saw it :) )..
08:46 cmarcelo should I trim that in J.H smoke?
08:47 audreyt it makes no difference, really
08:47 cmarcelo ok
08:47 audreyt although it does involve one more comparison per char
08:47 audreyt hm
08:47 audreyt well, comment out that 4 lines and see.
08:47 cmarcelo fine
08:51 nothingmuch audreyt: got a link to that concrete haskell typeclass/data type thing to some wiki page?
08:53 nothingmuch i assume it's interfacing with the runtime on the bare metal level
08:53 nothingmuch right?
08:58 audreyt nothingmuch: I need to run now but:
08:58 audreyt http://haskell.org/haskellwiki/GHC/As_a_library
08:58 lambdabot Title: GHC/As a library - HaskellWiki, http://tinyurl.com/k4yc2
08:58 audreyt have fun
08:58 nothingmuch thanks
09:09 pdcawley joined perl6
09:17 chris2 joined perl6
09:18 zgh audreyt++ #PGE->PCR
09:19 zgh that reminds me of the first time I saw audrey speak: http://zack.vpop.net/2006/07/oscon-day-one-part-4.html
09:19 lambdabot Title: Under The Network: OSCON: Day One part 4, http://tinyurl.com/zqo3x
09:42 wtf` joined perl6
09:45 foo\ joined perl6
09:46 autark joined perl6
09:50 ezraburgh joined perl6
09:53 dg joined perl6
10:01 larsen joined perl6
10:07 baest joined perl6
10:08 baest joined perl6
10:12 xdg joined perl6
10:59 markstos joined perl6
11:21 larsen joined perl6
11:40 kane-xs joined perl6
11:45 markstos FYI: the smoke server has some broken links: http://m19s28.vlinux.de/iblech/stuff/pugs-smokes/t_index/t/builtins/control_flow/fail.html#line_33
11:45 lambdabot http://tinyurl.com/ksy3j
11:46 nothingmuch @seen iblech
11:46 lambdabot I haven't seen iblech.
11:46 nothingmuch seen iblech
11:46 jabbot nothingmuch: iblech was seen 244 days 15 hours 42 minutes 57 seconds ago
11:46 nothingmuch ;-)
11:46 markstos Oh.
11:46 nothingmuch you can mail him though
11:46 nothingmuch he's silently active
11:47 markstos Thanks.
11:47 markstos It seems like there are still about 720 failing tests to address before release.
11:48 markstos I wonder if the failures in ext/ get treated differently, since they are not part of the core project, but more like "CPAN".
11:58 iblechbot joined perl6
12:00 elmex joined perl6
12:08 mauke_ joined perl6
12:17 svnbot6 r13402 | trey++ | [t/operators/filetest.t]
12:17 svnbot6 r13402 | trey++ | New S03 smartlink for stacked operators.
12:17 svnbot6 r13402 | trey++ | Tests for filetests returning stat buffers,
12:17 svnbot6 r13402 | trey++ | two fail, marked as :todo<bug>, one feature.
12:19 markstos TreyHarris: When should we use :todo<bug> vs leaving  a test failing?
12:20 markstos If I had to guess, :todo<bug> would be used for a partially implemented new feature-- it's not a regression.
12:26 larsen joined perl6
12:28 mauke_ is now known as mauke
12:30 buetow joined perl6
12:33 nachos joined perl6
12:33 nachos hello
12:35 markstos Hello nachos
12:51 markstos I blogged about preparing for the next release:
12:51 markstos http://pugs.blogs.com/pugs/2006/09/in_release_prep.html
12:51 lambdabot http://tinyurl.com/rz8ms
12:51 markstos Let me know if anything is wrong with that, or could be improved, etc.
12:56 audreyt rehi
12:59 agentzh joined perl6
13:00 svnbot6 r13403 | audreyt++ | * Add zgh++ to AUTHORS.
13:01 weinig|zZz is now known as weinig
13:03 agentzh i think we should advertise our enhanced smoke server and christopher++'s work.
13:03 agentzh via p6c and/or the pugs blog site.
13:03 agentzh ...err, and also on feather.
13:04 markstos joined perl6
13:08 xdg joined perl6
13:08 agentzh marstos: re your blog post
13:08 agentzh *markstos
13:08 * markstos listens
13:08 agentzh s/The Perl 6 team/The Pugs team/
13:09 markstos Ok.
13:09 agentzh i think these two are not the same thing.
13:09 agentzh markstos: i'll write about malon++'s work tonight.
13:09 markstos understood. changed.
13:10 markstos Ok. Thanks.
13:10 agentzh markstos: "Reports on failing tests can found"
13:10 agentzh can be found
13:11 markstos Thanks. Fixed.
13:11 marmic joined perl6
13:11 markstos I seem to have a problem with missing words.
13:11 agentzh :)
13:12 agentzh furthermore, there seems to be extra space between the last two list items.
13:12 agentzh an extra <p> or <br> ?
13:13 markstos I see it now. Fixed.
13:13 Juerd markstos: Have you seen my huge post to p6u?
13:14 agentzh markstos++
13:14 markstos I read p6u about an hour ago.
13:14 markstos Juerd: more context ? subject line or URL ?
13:15 Juerd markstos: Huge. The 2nd largest post to p6u since I've been subscribed. Subject: "Web development I: Web::Toolkit" :)
13:15 markstos Looks like it just arrived for me. Reading.
13:16 Sal joined perl6
13:16 Juerd :)
13:17 Sal agentzh: ping
13:17 agentzh Sal: pong
13:17 Sal i'll send you the file
13:18 agentzh k
13:18 Sal a sec..
13:23 Sal agentzh: why not accept the connect
13:23 svnbot6 r13404 | agentz++ | [ChangeLog]
13:23 svnbot6 r13404 | agentz++ | - mentioned the PGE to PCR transition there
13:23 ofer0 joined perl6
13:23 agentzh Sal: my client does't support that. please use email instead. thank you.
13:24 agentzh (or simply paste the url here)
13:25 Sal agentzh: ok! i'll send it via Email, please check in time
13:25 agentzh np :)
13:25 markstos Juerd: Thanks for the post. I thought you did an especially go job of expressing PHP vs. Perl, and what PHP has gotten right.
13:26 Juerd Thanks
13:29 markstos I tried to address a different aspect of PHP vs. Perl in the following post. Typically, large PHP applications are easier to install. (I'm thinking about WordPress, Drupal, osCommerce), while large Perl apps will say "just use CPAN to install all these extra things".  That's solvable, too, but we have to think differently. http://www.perlmonks.org/?node_id=519032
13:29 lambdabot Title: A Vision for Easy Web Application Deployment for Perl
13:30 Juerd I think you missed a more important point there, that's a much bigger show stopper than distribution.
13:31 Juerd We have two competing most popular ways of doing Perl web development, both of which suck in a unique way, when it comes to prefab applications.
13:31 Juerd mod_cgi, because it is generally too inefficient for overloaded bulk hosting servers
13:32 Juerd mod_perl, because it's too insecure and useless for bulk hosting, because of the re-used interpreter that retains all globals and their magic.
13:32 integral You've missed fastcgi.  Jifty, for example, only support it's own test server and fastcgi.
13:32 Juerd integral: Which again isn't a solution for bulk hosting.
13:32 Juerd Most hosting is done ... in bulk.
13:32 markstos Juerd: I agree that's an important point.
13:33 integral oh, I couldn't comment there.  :)
13:33 markstos As it turns out, I also run a hosting company.
13:33 Juerd integral: This is an angle Perl people typically miss completely. PHP's greatest success is in the way mod_php works!
13:33 markstos So I'm very interested in what good solutions there are in between mod_perl and mod_cgi.
13:33 integral sounds like you want a mod_perl that create a new interp for each request
13:33 Juerd markstos: For Perl 5, none that doesn't require core changes.
13:34 markstos Juerd: I get that, and I really don't have a response for who to replicate that with Perl.
13:34 Juerd integral: That will work, but can't compete with PHP in terms of performance.
13:34 integral *nod*  it doesn't sound feasible at all for perl5's interp sadly
13:34 markstos What we end up doing is to use mod_cgi by default because it is "good enough" for a lot of projects. If extra performance is needed, we pull out mod_perl.
13:35 Juerd markstos: Right, but that isn't suited for drupalish, phpnukish, squirrelmailish applications.
13:35 Juerd No two mod_perl environments are the same.
13:35 integral Juerd: is there something particular about fastcgi that makes it unsuitable for bulk hosting?
13:35 Juerd Unless they're set up by the same person :)
13:35 Juerd integral: Inavailability would be an important one.
13:36 markstos Do ruby, python, etc have better answers to PHP in this regard ?
13:36 integral inavailability?
13:36 Juerd integral: And forking. On an overloaded server you don't want to fork and exec things, not even the tinyest hello world CGI script in hand-written ELF.
13:36 integral ah okay, I thought that might be it :)
13:36 Juerd integral: Inavailability is the argument from the end user's perspective. Administrators *could* install it.
13:37 integral Juerd: surely the killer idea then is the Perl6 -> PHP compiler?
13:37 Juerd Most bulk hosting still has PHP running in simple in-apache mode, all running under the same user. Insecure, but efficient.
13:37 markstos I'm an administrator. I could choose to install it for our hosting customers. I perceive that it causes persistent for each instance that would be a drag. Maybe that's a false perception.
13:38 markstos (persistent memory )
13:38 Juerd integral: No, PHP's language is that much less efficient that implementing Perl 5 things (like arrays and hashes, neither of which exist in pure enough form in PHP) in it would kill performance very badly.
13:38 lumi Is the PHP VM also that bad?
13:39 lumi Or just the compiler?
13:39 Juerd lumi: No, the language is.
13:39 Juerd The VM is very fast at executing functions.
13:39 lumi So  p6 -> PHP VM (sorry, don't know the name) is the cure?
13:39 Juerd lumi: No, read what I said last to integral.
13:39 Juerd But s/5/6/
13:40 Juerd Oh, sorry, misread.
13:40 Juerd You said "PHP VM"
13:40 lumi Yes
13:40 Juerd Might be possible.
13:40 lumi Also you could provide P6 services as libraries for PHP
13:40 Juerd I don't think its VM is well defined enough, and I don't think it's very easy to use precompiled code with it.
13:40 markstos http://tnx.nl/php
13:40 lumi Like fast hashes etc
13:40 Juerd But if anyone wants to spend time investigating this, please keep me informed.
13:40 lambdabot Title: PHP in contrast to Perl
13:41 Juerd markstos: I know. I wrote it :)
13:41 markstos Heh.
13:41 markstos Love the graphic.
13:42 Juerd That's merlyn's line
13:42 integral is now known as ntgrl
13:42 integral joined perl6
13:43 markstos So are ruby and  python in the same boat as Perl ? I know ruby promotes FastCGI as well.
13:43 Juerd NT Girl :)
13:43 Juerd markstos: They are, but they're not as popular as Perl is.
13:44 markstos It seems like their popularity will likely rise relatively until Perl 6 is a reasonable choice.
13:44 obra Ruby's been switching to a standalone webserver called mongrel, at last for a lot of rails apps.
13:44 obra apache gets configured as a proxy.
13:45 * integral wonders what are the pros/cons for proxy versus fastcgi
13:45 markstos orba: Any idea of how well that works for them? Doesn't fastcgi also have a mode like that?
13:46 Juerd obra: And that's why you won't find Ruby in bulk hosting either.
13:46 Juerd Not as non-cgi, at least.
13:47 obra Juerd: more and more, I'm seeing hosters offer rails.
13:47 Juerd obra: That's niche hosting, not bulk :)
13:47 obra then again, I'm seeing hosters offer usd 10/mo xen boxes.
13:47 Juerd I offer EUR 20/mo xen "boxes" :)
13:47 Juerd That's also pretty niche-y.
13:47 obra so, who's big in bulk hosting this year?
13:48 Juerd That differs per country.
13:48 integral hmm, dreamhost offer something called "SafePerl" iirc
13:48 obra http://www.dreamhost.com/shared/comparison.html
13:49 lambdabot Title: [ DreamHost : Shared Hosting : Plan Comparison ], http://tinyurl.com/ogot
13:49 obra dreamhost is offering rails on their $8/mo plan ;)
13:49 markstos DreamHost is a bulk hoster that is well known and ..
13:49 markstos obra beat me to the punch.
13:49 Juerd I see.
13:49 obra (dreamhost are the biggest I can think of)
13:50 Juerd That still leaves that big Perl stuff often doesn't run with fastcgi :)
13:50 Juerd Does RT work with fastcgi, by the way? :)
13:50 markstos Jeurd: but is that more a technical issue or a cultural one? Mosty in Perl culture we talk abou targetting CGI or mod_perl.
13:51 markstos I'm sure if people targetted FastCGI, apps could work under it.
13:51 obra Juerd: it does.
13:51 clkao i was wondering why it's so warm in the morning. appearantly it's already afternoon
13:51 obra RT has worked with FastCGI since um. about when it started working with mod_perl ;)
13:51 ludan joined perl6
13:51 Juerd markstos: It's both.
13:51 Limbic_Region joined perl6
13:51 obra At some point, we'll port jifty to mod_perl, but I have 0 incentive to do so
13:52 Juerd Making things work with mod_perl is painful.
13:52 Juerd Class::DBI with mod_perl works until you want to change something. Then you have to restart Apache.
13:53 Juerd But then, Class::DBI could never work in bulk hosting where 1 apache serves multiple sites, because of namespace clashes.
13:55 * Juerd doesn't know how fcgi works, by the way.
13:58 gaal something like $cgi = slurp(..); $cgi_code = eval "sub { $cgi }"
13:58 gaal IIRC
13:58 gaal but it's been a while since I looked.
13:58 jon_ joined perl6
13:59 obra fcgi sets up a daemon and a socket
13:59 obra and a mux
14:00 gaal and what provides the persistence?
14:01 gaal every cgi is wrapped in a sub, isn't it?
14:01 markstos gaal: The fcgi daemon holds your code, I think.
14:01 markstos This page was somewhat helpful: http://www.djangoproject.com/documentation/fastcgi/
14:01 lambdabot Title: Django | Documentation | How to use Django with FastCGI, http://tinyurl.com/m44g3
14:02 buu joined perl6
14:02 obra gaal: perldoc CGI::Fast
14:04 gaal from that doc:
14:04 gaal #!/usr/local/bin/perl    # must be a FastCGI version of perl!
14:04 gaal what's a FastCGI version of perl?
14:05 gaal fastcgi.com says: FCGI.pm v0.35 and later no longer requires SFIO or rebuilding Perl!
14:08 buu joined perl6
14:08 lumi If a perl 6 environment can instantiate a fresh interpreter cheaply this should be much ameliorated
14:10 markstos It looks like "America's Largest Host" supports FastCGI for $5.59/month:
14:10 markstos http://help.godaddy.com/article.php?article_id=1119&amp;topic_id=66&amp;&amp;
14:10 lambdabot Title: Help Center&#8212;Knowledge Base and FAQ, http://tinyurl.com/m2447
14:10 gaal only by half, you'll still need to parse again. unless of course we get that precompilation cache written!
14:10 agentzh joined perl6
14:10 lumi Precompile everything!
14:11 gaal yes, that was the idea.
14:11 lumi You don't need to reparse, though
14:11 gaal there's a docs/notes/ on it somewhere
14:11 lumi I mean, usually. The parent perl could lend its parser
14:11 lumi And then the rest is done with parsetrees
14:11 gaal ~Y~Y~Y~
14:11 lumi asts
14:12 lumi Indeed :)
14:12 gaal bbiab&
14:13 Odin- joined perl6
14:15 zgh joined perl6
14:19 buu joined perl6
14:23 markstos This blog entry suggests that Rails uses 40 Megs of persistent memory per FastCGI listener:
14:23 markstos http://e.cactuswax.net/articles/2006/08/06/memory-usage-rambling/
14:23 lambdabot Title: CactusWax.net » Memory usage rambling, http://tinyurl.com/g2v5h
14:23 markstos It's no wonder more hosts aren't jumping on the FastCGI bandwagon!
14:24 obra that sounds about right
14:24 obra perl 5 webapps using a modern framework will hit that too ;)
14:24 agentzh 40 MB? wow
14:24 obra Dynamic languages are not known for being memory-frugal
14:25 markstos Perhaps from a technical standpoint, but from a business perspective, offering it for $6/month seems difficult.
14:25 obra not when you're buying big hardware in quantity.
14:26 markstos We're more of a "small" web hosting shop. We host about 200 sites on one box.
14:27 markstos It looks like FastCGI hosting would mean more hardware and faster scaling, but perhaps that's what it is starting to mean to stay competitive.
14:27 obra are the 200 sites all dynamic?
14:27 markstos No. I'm guessing maybe 5 percent are.
14:27 obra (do you have a second box for failover?)
14:27 nothingmuch there's that linux patch
14:28 nothingmuch that iterates memory pages, merging them and marking them read only
14:28 nothingmuch as if the processes forked
14:28 markstos We have some redundancy, RAID, and separate boxes for DB hosting, email hosting, firewall, etc.
14:29 markstos We're almost all FreeBSD.
14:29 markstos I need to get away from the compute for a while. back later.
14:29 lumi nothingmuch: What's that?
14:30 nothingmuch lumi: do you know how forked processes share memory on the mmu level?
14:31 lumi Not really. cow?
14:31 nothingmuch *nod*
14:32 nothingmuch all the memory pages are marked RO and left as is
14:32 nothingmuch when a child or parent tries to write to the page the MMU will raise an exception
14:32 nothingmuch which the kernel traps
14:32 buu joined perl6
14:32 nothingmuch it'll then copy the page to some new page, remap that in the process's vm table, and retry the access
14:32 nothingmuch the problem is that if two processes take imperative steps to reach the same state
14:32 nothingmuch then they effectively can't share the same memory
14:32 nothingmuch that kernel patch iterates memory pages in the idle loop, comparing them
14:32 nothingmuch and consolidating for COW
14:33 lumi So you'd get memory savings when, e.g., initializing your web framework 20 times
14:33 nothingmuch *nod*
14:34 nothingmuch iff that memory remains largely unwritten to
14:34 nothingmuch after that initial startup
14:34 integral undump :-P
14:35 nothingmuch if the malloc lib has a stable algorithm then chances are that opcode trees loaded post fork are going to be mergable
14:35 nothingmuch however, 40mb of separate RSS per process is likely mostly a free memory pool
14:36 nothingmuch fastcgi is designed to fork niciely
14:37 buu joined perl6
14:37 lumi nothingmuch: Got link?
14:37 nothingmuch to?
14:37 lumi The patch you mentioned.. Or is it in the trunk?
14:38 nothingmuch hmm... yes, that sounds like the free mem pool... the author said that this memory usage is after a bit of activity
14:38 nothingmuch lumi: oh... .it's a 2.2 kernel patch
14:38 nothingmuch let me try to rmeember it's name
14:39 nothingmuch http://mergemem.ist.org/#description
14:39 lambdabot Title: Home of the mergemem-project
14:39 nothingmuch http://www.complang.tuwien.ac.at/ulrich/mergemem/
14:39 lambdabot Title: Mergemem, http://tinyurl.com/jhfc8
14:39 nothingmuch that has some statistics
14:43 buu joined perl6
14:48 lumi Interesting, thanks
14:49 markstos joined perl6
14:49 putter joined perl6
14:50 putter ping fglock
14:50 putter ping audreyt
14:52 putter @tell fglock Just in case you didn't see it backlogging, http://colabti.de/irclogger/irclogger_log/perl6?date=2006-09-16,Sat&amp;sel=725#l1184 summarizes other PCR errors from t/rules/.
14:52 lambdabot Consider it noted.
14:53 putter mark
14:54 putter ?eval "colabti doesnt have a valid log timestamp pointer until something else happens"
14:54 evalbot_r13398 is now known as evalbot_r13404
14:54 evalbot_r13404 "colabti doesnt have a valid log timestamp pointer until something else happens"
14:55 buu joined perl6
14:55 putter @tell audreyt Re pragma, PCRE, PGE, etc, see http://colabti.de/irclogger/irclogger_log/perl6?date=2006-09-17,Sun&amp;sel=544#l845 :)
14:55 lambdabot Consider it noted.
14:57 * agentzh expects putter to give a talk here.
14:57 putter Ok, my wish list is PCRE/PGE/PCR all available, as say Pugs::Internals:: prims.
14:58 putter An environment variable to control the default, which also sets a $?FOO, so the standard t/ can be used, and skipping can be done selectively.
14:58 putter If one has edit a line of hs and recompile, well, I could live with that too.
14:59 putter Ok, motivation.
15:00 buu joined perl6
15:00 putter PCRE/PGE/PCR are *all* a long way from being a... thorough... rules implementation.  Even PCRE is only a shaddow of a :P5 implementation, unless all the callback stuff has been implemented when I wasnt looking.
15:01 putter I suggest we are more at the "ok, have a toe hold" phase of the rules bootstrap.
15:03 putter It looks like we are almost at the point of having a full(?) grammar for p6/p5(?) rules.
15:04 larsen joined perl6
15:04 putter I haven't looked hard at the PCR ast, but from the lack of combining p5-able subexpressions, it looks like we are at the very beginning of rule ast analysis and munging.
15:06 putter And it seems some elements of the runtime infrastructure for the emitted code, eg, support for temps and lets, hasn't been started yet(?).
15:08 putter Pragmatically, we haven't yet started to deal with PCR now being in the "it can't break... so its hard to change" category of pugs critical elements.
15:11 putter PGE development hopefully benefits from pugs exercising it.  But personally,
15:12 putter my main motivation is that engine limitations are grammar limitations, and until I see a working grammar for the entire p6+p5 rules language, I'd like to keep all my options open.
15:15 putter So punchline, please don't rip out engine support code.   And ideally copy and mutate, rather than just mutate.  Then someone can come in an access hooks.
15:17 putter If we think p6 oo is currently usable for a... "larger than most current code" project, than one possible way to go is:
15:20 putter a p6 set of rx ast node classes, with an annotation and (ideally non-lossy) modification mechanism.
15:20 putter a converter from rx-matched-by-rx-grammar match ast's to that ast.
15:21 putter and a simple multi (fall back to double dispatch if multis dont fly) emitter class.
15:23 putter generating a hybrid p6-flow-control plus p5-re-leaves.
15:27 putter Babble.  Basically the "get rules support" task seems to chunk as "parse rx expression"(now largely done?), "have a full grammar for it"(not sure), "have an ast"(several, though whether any existing can both go all the way to full support and is accessible from p6?), "analysis and modification"(can be deferred, but not as
15:29 iblechbot joined perl6
15:30 putter ... but only with grammar restrictions which end up painful.  Creating a good mutable ast is a not-small undertaking - we'll probably end up redoing it multiple times); "emitting"(pretty trivial if multis are working); "have infrastructure for variables and embedded code"(can be a chunk of work to get right, witness
15:31 putter none(?) of our engines having done it).
15:32 putter So... if we have good grammars and working grammar parsers and working p6 oo and multis, it could be a couple of man week kind of thing.
15:34 putter Versus, depending on to what degree, if we are still mired in a tangled bootstrap constraint space, it could be another year.
15:34 audreyt uhm.
15:34 putter wee
15:34 joples joined perl6
15:34 joples hi
15:34 audreyt 17:04 < putter> I haven't looked hard at the PCR ast, but from the lack of combining p5-able subexpressions, it looks like  we are at the very beginning of rule ast analysis and munging.
15:34 putter agentzh: you called that one right.  even more so than I expected at the time. ;)
15:35 audreyt I think it's uhm, a flawed premise
15:35 agentzh putter: (?)
15:35 * agentzh backlogs.
15:35 putter agentzh: (10:44:06) ***agentzh expects putter to give a talk here.
15:35 audreyt so the logical consequences folllowing it doesn't seem to uhm. converge.
15:35 agentzh ahh
15:35 putter audreyt: awesome, let's see..
15:35 iblechbot_ joined perl6
15:36 audreyt perl5/Pugs-Compiler-Rule/lib/Pugs/Grammar/Rule2.pm is pretty complete.
15:36 audreyt accessible from p6, sure.
15:36 audreyt which is why we embed p5 by default.
15:37 putter p5 subsubexpression identification and combination is both very simple to implement, and very high payoff (highest?) optimization.
15:37 audreyt subexpression as in
15:37 audreyt p5re-compatible rules?
15:37 putter so I take its absence as an indicator that noone has been eating even tasty hand-high fruit.
15:37 audreyt optimizing /^foo/ into /\afoo/ ?
15:38 audreyt no, I think TimToady is the first one to mention it here yesterday
15:38 audreyt and now you're the second
15:38 audreyt prior to that I think PCR lacked "everyday" applications
15:38 buu joined perl6
15:38 audreyt as its main application, Pugs::Compiler::Perl6, caches aggressively
15:38 audreyt so rule runtime is less of an issue
15:39 putter subexpression... (|todo add this is a good time to address long-standing regexp vocabulary problems - create a reasonable standard, and the world with adopt it)...
15:39 audreyt all <500 lines of rules->p5 emitter is in
15:40 audreyt perl5/Pugs-Compiler-Rule/lib/Pugs/Emitter/Rule/Perl5.pm
15:40 audreyt that's backtracking mode; the nonbacktracking mode is in Rule/Perl5/ratchet.pm
15:41 putter subexpression... as in rx/foo(bar)hee+/  "foo", "bar", and "he" can be run on a p5 engine as p5 regexps.
15:41 audreyt well, constants are matched currently with substr/index
15:41 audreyt so not imagining p5 has any way
15:41 audreyt to win over that
15:41 putter oh, wait, I changed the example I was going to use.  "hee+" too there.
15:42 audreyt as for e+, it only can work that way because you never backtrack in that particular expr
15:42 putter oh, and that answers your last few lines too :)
15:42 audreyt if it's
15:43 audreyt /e+ {...some code...} some-more-pattern/
15:43 audreyt on backtracking mode, each time e has to match one less char
15:43 putter you can play target string clipping games, which can actually(measured) being faster.
15:44 putter s/being/end up being/
15:44 audreyt how does that reconcile with the "translate e+ to perl5" plan?
15:44 audreyt to p5re, that is
15:45 putter but the real payoff (hypothetical, not tested) would be hybrid.  fast forward (p5 engine real good at that), and general fallback for backtracking over a section.
15:45 audreyt when TimToady mentioned this idea I thought he meant wholesale translate
15:45 audreyt that is, rx/foo(bar)hee+/ becomes simply that.
15:46 xerox hee
15:46 audreyt I don't know for sure. I mean, you can easily test this hyypothesis by hacking itinto PCR
15:46 putter rx/foo[bar]hee+/ could be simply that, provided your rule api provides a high-bound on the potential match.
15:46 audreyt sure.
15:46 audreyt as it's just
15:46 audreyt rx/foobarhee+/
15:46 audreyt the [] is noop.
15:47 audreyt and I don't quite understand the motivation to bringing in p6oo for this
15:47 audreyt I mean, you can certainly refactor PCR with Moose
15:47 audreyt but for such optimizations I'm not sure it wins you much.
15:48 putter oh, right.   actually (bar) is ok too, you just need to postprocess it.  that's what some of the early attempts at a p5 regexp engine did.
15:48 audreyt yes.
15:48 audreyt Perl6::Rules, in particular
15:48 putter hmm, that might be what the current (spike) one does now.  not sure.
15:48 putter yes
15:48 putter (re p6r)
15:49 buu joined perl6
15:49 clkao audreyt: pugs smoke is only 10 min for you??
15:49 audreyt clkao: yes.
15:50 clkao this is crazy
15:50 audreyt $ grep conc ../pugs/config.yml
15:50 audreyt smoke_concurrent: 2
15:50 clkao ah
15:50 audreyt would be 20min if not for that
15:50 clkao technology++
15:51 audreyt "have infrastructure for variables and embedded code"(can be a chunk of work to get right,  witness
15:51 audreyt 17:31 < putter> none(?) of our engines having done it).
15:51 putter ok, so it looks like there are two questions.  what does/can an ast buy you?  and why does one want it written in p6 rather than p5?  yes?
15:51 audreyt that is incorrect; PCR and PGE does both.)
15:51 rindolf joined perl6
15:51 rindolf Hi all
15:51 rindolf ingy: here?
15:52 audreyt putter: v6-alpha makes extensive use of embvar and embcode
15:52 rindolf Hi audreyt
15:52 audreyt putter: it's just for p5embed, the p6land pad and p5land pad is not unified
15:52 putter re "PCR and PGE does both", great!
15:52 audreyt so you can't see here from there.
15:52 audreyt dirro for parrotembed, which is even harder.
15:52 audreyt ditto, even.
15:52 audreyt also, both has an AST.
15:52 putter I seem to remember some PCR parse errors on {} constructs in r/rules/.  Curious.
15:53 gaal hey all. I'm thinking of punting for default-Exp printing in params until we can depend on ghc 6.6, that is, until after the release
15:53 gaal that means some tests in signature.t need to be todo'd
15:53 putter re non-unified pads... so the capability exists for v6, but not for pugs?  is that it?
15:53 gaal what's our current schedule?
15:53 audreyt ?eval 1 ~~ /1{ print "HEY THIS MATCHED!\n" }/
15:54 evalbot_r13404 Useless use of a variable in void context at (eval 28) line 7. Match.new(   ok => Bool::True,    from => 0,    to => 1,    str => "1",    sub_pos => (),    sub_named => {} )
15:54 audreyt gaal: sure!
15:54 audreyt hm, curious, that works here.
15:54 buu joined perl6
15:54 audreyt ?eval 1 ~~ /{warn "X"}/
15:54 evalbot_r13404 Useless use of a variable in void context at (eval 28) line 5. X at (eval 28) line 5. Match.new(   ok => Bool::True,    from => 0,    to => 0,    str => "",    sub_pos => (),    sub_named => {} )
15:54 audreyt at least warning is propagated out.
15:54 gaal is warn safe?
15:55 gaal ?eval warn "moo"
15:55 rindolf Hi gaal ! Shanah Tovah.
15:55 evalbot_r13404 Error: Cannot cast from VUndef to Handle (VHandle)
15:55 gaal and to you too
15:55 putter ?eval my $x = 3; 1 ~~ /{warn $x}/
15:55 gaal uh, that looks like a bug :)
15:55 evalbot_r13404 *** Cannot parse regex: {warn $x} *** Error:  Match.new(   ok => Bool::False,    from => 0,    to => 0,    str => "",    sub_pos => (),    sub_named => {} )
15:55 audreyt yes, because p5land cannot se p6land $x.
15:55 svnbot6 r13405 | agentz++ | [TASKS]
15:55 svnbot6 r13405 | agentz++ | - removed the smoke server/client task since malon++ has
15:55 svnbot6 r13405 | agentz++ |   already finished that.
15:55 gaal audreyt: no, I meant my eval
15:55 gaal ?eval warn "this one"
15:56 evalbot_r13404 Error: Cannot cast from VUndef to Handle (VHandle)
15:56 audreyt gaal: yes, that too, I was replying to putter :)
15:56 audreyt I thin kit's because $*ERR is bound to undef
15:56 audreyt on safemode
15:56 gaal ah, sorry :)
15:56 audreyt putter: so. some way for pad sharing is needed, at least upto the point of PCR's use of PadWalker::peek_my
15:57 putter ?eval 1 ~~ /{system("ls")}/
15:57 gaal is "thin kit" some weight loss plan?
15:57 evalbot_r13404 Useless use of a variable in void context at (eval 28) line 5. AUTHORS ChangeLog INSTALL LICENSE MANIFEST.SKIP META.yml Makefile Makefile.PL Makefile.old PROBLEMS Pugs.cabal Pugs.cabal.in Pugs.sln README READTHEM READTOO STATUS Setup Setup.hi Setup.lhs Setup.o TASKS VICTUALS a.out bin blib blib6 config.yml configure debian dist docs evalbot_nick examples ext inc lib make_build_perl5 misc perl5 pm_to_blib pugs pugs-prof pugs-prof.prof script src t
15:57 audreyt can be swwapped, when looking at HsBridge, call another helper instead.
15:57 putter not so good
15:57 audreyt no, not so good. glaring security hole.
15:57 gaal "lose bugs now! ask me how"
15:57 gaal aiiiiii
15:58 gaal it's running p5 code? very very bad :(
15:59 * gaal unmooses &
16:00 buu joined perl6
16:00 rindolf gaal: thanks. :-)
16:03 araujo joined perl6
16:04 svnbot6 r13406 | audreyt++ | * Run HsBridge under opcode mask.
16:05 evalbot_r13406 joined perl6
16:05 audreyt ?eval 1 ~~ /{ warn "moose" }/
16:05 evalbot_r13406 Useless use of a variable in void context at (eval 28) line 5. moose at (eval 28) line 5. Match.new(   ok => Bool::True,    from => 0,    to => 0,    str => "",    sub_pos => (),    sub_named => {} )
16:05 svnbot6 r13407 | audreyt++ | * only use ops on safemode.
16:06 audreyt ?eval 1 ~~ rule[ { warn "moose" } ]
16:06 evalbot_r13406 Error:  unexpected "[" expecting comment, ":" or "{"
16:06 audreyt ?eval 1 ~~ rule{ { warn "moose" } }
16:06 evalbot_r13406 *** Cannot parse regex: :sigspace(1)[:ratchet(1)[ { warn "moose" } ]] *** Error:  Match.new(   ok => Bool::False,    from => 0,    to => 0,    str => "",    sub_pos => (),    sub_named => {} )
16:08 audreyt ?eval 1 ~~ /{ system"ls"}/
16:08 evalbot_r13406 *** Cannot parse regex: { system"ls"} *** Error:  Match.new(   ok => Bool::False,    from => 0,    to => 0,    str => "",    sub_pos => (),    sub_named => {} )
16:08 audreyt ?eval 1 ~~ /{ warn "ls"}/
16:08 evalbot_r13406 Useless use of a variable in void context at (eval 28) line 5. ls at (eval 28) line 5. Match.new(   ok => Bool::True,    from => 0,    to => 0,    str => "",    sub_pos => (),    sub_named => {} )
16:09 audreyt ?eval 1 ~~ /{ eval 'system "ls"'}/
16:09 evalbot_r13406 Useless use of a variable in void context at (eval 28) line 5. Match.new(   ok => Bool::True,    from => 0,    to => 0,    str => "",    sub_pos => (),    sub_named => {} )
16:09 audreyt ?eval 1 ~~ /{ eval 'system "ls"'; warn $@}/
16:09 evalbot_r13406 Useless use of a variable in void context at (eval 28) line 5. 'system' trapped by operation mask at (eval 29) line 2. Match.new(   ok => Bool::True,    from => 0,    to => 0,    str => "",    sub_pos => (),    sub_named => {} )
16:09 audreyt ok. somewhat better.
16:09 nothingmuch given two arrays
16:09 nothingmuch err, one array
16:09 audreyt the warning should go away, and the pads should be hooked
16:09 audreyt but I should sleep, too )
16:09 audreyt :)
16:09 putter sleep++
16:09 nothingmuch made of two halves
16:10 nothingmuch s/halves/parts/;
16:10 nothingmuch (not same size)
16:10 audreyt putter: if you want to hack in padhookage, hack HsBridge to take a closure param
16:10 nothingmuch scratch thatr
16:10 audreyt in __RUN__ that fetches pad
16:10 audreyt and havve lib/Pugs/Runtime/Regex.pm call that if preent instead of peek_my
16:10 audreyt that's all it takes, shouldn't be very hard.
16:10 nothingmuch given an array, and a pivot index, how can I swap all the elements such that $array[$pivot] == $swapped[0] and $swapped[-1] = $array[$pivot-1]
16:11 nothingmuch with O(1) space?
16:11 ruz joined perl6
16:11 audreyt I can provide that closure arg when I wake up :)
16:11 putter audreyt, so am I current in summarizing you thoughts as "have ast - PCR; have emitter - PCR; have infrastruct - v6 PCR, and pugs once pads tied; what great payoff for new ast?".  something like that?
16:11 putter s/current/correct/
16:12 audreyt yes, as I believe the PCR node times already pretty much summarizes the rules as we know of
16:12 audreyt s/times/types/
16:12 putter ok.
16:12 audreyt OOification is cool, but doing it in Mooseland beats p6land at the moment
16:13 audreyt and once MO is installed in both Mosoe and Pugs
16:13 audreyt OO code becomes portable
16:13 audreyt (i.e. class/role/method declarations can be encoded in either land)
16:14 audreyt MO is http://nothingmuch.woobling.org/MO btw :)
16:14 lambdabot Title: Index of /MO
16:14 putter ah, tnx
16:14 * nothingmuch can help with any questions on it if needed
16:14 putter :)
16:14 audreyt the "shared PIL slot bootstrap code" idea of stevan++'s in the old PIL^N days
16:14 audreyt being carried to its logical completion :)
16:16 audreyt but I'm blabbering randomly, a clear sign that I should sleep...
16:16 audreyt *wave* :)
16:16 nothingmuch ciao
16:16 putter ok, so I'll look over the pcr ast... hopefully this week.  off for today.
16:16 putter and you're off to sleep.
16:16 putter 'night audreyt :)
16:18 rindolf Hi nothingmuch
16:18 rindolf nothingmuch: Shanah Tovah!
16:18 nothingmuch oh
16:18 * agentzh is reparing for a new blog post.
16:18 * nothingmuch had no idea it was that time of year =)
16:19 putter nothingmuch: so what is the elevator talk description of MO.  (and in case my ride gets here and I have to go, the next question will be, can that go in a README file in /MO/? :)
16:19 etm117 joined perl6
16:20 nothingmuch it's a split compile time / runtime meta model
16:20 * putter wonders if "elevator talk" is a trans-national idiom...
16:20 nothingmuch the runtime meta model talks about invocations, responders, and responder interfaces
16:20 putter "split" == "hybrid"?
16:20 nothingmuch decoupled
16:20 putter ah
16:20 agentzh journal's up: http://pugs.blogs.com/pugs/2006/09/check_smoke_res.html comments welcome. :)
16:20 lambdabot http://tinyurl.com/gdyy8
16:21 nothingmuch e.g. in "traditional" oo the invocant is the responder
16:21 nothingmuch a method name is the invocation
16:21 nothingmuch and the method set as per the class precedence shadowing rules is the responder interface
16:21 nothingmuch so "normal" OO is modeled by creating a MethodTable responder interface (just a hash of methods)
16:21 nothingmuch and creating Invocation::Method objects (which are just method names)
16:22 nothingmuch in MMD the invocation will also contain all the args needed for dispatch
16:22 nothingmuch and the table will have more complex entries
16:22 nothingmuch yadda yadda
16:22 nothingmuch in multi invocant dispatch the responder would be several invocants
16:22 nothingmuch more insanity on that path ;-)
16:22 nothingmuch anyway, the compile time meta model must simply know how to prepare interfaces
16:23 nothingmuch for a typical class/object system every class provides an interface for class methods and an interface for instance methods
16:23 nothingmuch for prototype OO the object is it's own responder interface, by means of delegation
16:23 putter agentzh: neat!  suggestion: provide a suggested synopsis to look at.  I went to Rule, and didn't see anything.
16:23 nothingmuch the runtime does not care how classes are actually composed
16:23 agentzh putter: will do. :)
16:24 nothingmuch part two, the compile time meta model, is an implementation of meta objects for classes, roles, methods, and attributes
16:24 nothingmuch which compose into responder interfaces for class/instance invocants
16:24 nothingmuch which somewhat resembles the semantics that Perl 6 / Moose provide
16:24 Psyche^ joined perl6
16:25 nothingmuch oh, and it's a purely functional meta model
16:25 nothingmuch that is, $attr doesn't have to know what class it belongs to to allocate the right slots
16:25 nothingmuch this is done by making things multi staged
16:26 nothingmuch e.g. attr is asked for the fields it needs wrt some class, the class then collects all the fields in this manner, and creates the layout, and the layout creates slots which are handed back to attrs so that they can generate their accessors
16:26 nothingmuch i'm guessing that for that last part you'd need to have been fairly frustated with some OO system to sympathise ;-)
16:27 putter @tell fglock Could you add a line to INSTALL about how to run v6?  thanks!
16:27 lambdabot Consider it noted.
16:28 * putter reaches part2...
16:29 putter hmm, for some reason the vocabulary ("responder") isn't gelling in my brain... working...
16:30 nothingmuch responder == an object, a class
16:30 nothingmuch something that responds to invocations
16:31 putter ah, k
16:31 nothingmuch responder_initerface == how a responder responds to invocations
16:31 nothingmuch invocations == what a responder responds to (e.g. method calls)
16:31 nothingmuch they are abstract roles
16:31 nothingmuch typically:
16:31 nothingmuch responder == the boxed type
16:31 nothingmuch responder_interface == the table of methods of that class
16:31 putter so a call point would be a...?
16:32 nothingmuch explain?
16:33 putter there is a call at line 13 in the code.  one knows a lot about it statically.  and at runtime, one can usefully gather statistics about it, etc.  the "call point" (ride here, bye) is this an object in the MO?
16:34 putter ride here. will backlog.  thanks for the precis &
16:34 nothingmuch dinner time
16:34 nothingmuch i'll backlog too ;-)
16:37 Psyche^ is now known as Patterner
16:37 buubot gaal: Type 'perldoc CGI::Fast' in your shell or go to http://perldoc.perl.org/CGI/Fast.html
16:37 lambdabot Title: CGI::Fast - perldoc.perl.org
16:42 fglock joined perl6
16:44 gaal er, thanks buubot.
16:45 fglock putter: I'm still backlogging - joining rule terms into p5 rx doesn't give much gain - I've tried that
16:45 lambdabot fglock: You have 3 new messages. '/msg lambdabot @messages' to read them.
16:46 fglock the place to optimize if non_greedy_plus() and greedy_plus() in the runtime
16:46 fglock is
16:47 fglock they are high order functions, better written as plain, tail-calling code
16:47 fglock this would fix the deep recursion problem too
16:49 xdaveg joined perl6
16:50 markstos joined perl6
16:52 fglock audreyt: compiling closures inside regexes requires v6.pm - plain PCR can only do source filtering
16:53 theorbtwo joined perl6
16:53 xinming_ joined perl6
16:53 pjcj joined perl6
16:53 PerlPilot joined perl6
16:57 arcady joined perl6
16:59 weinig joined perl6
17:01 nothingmuch putter: <backlog> not necessarily
17:01 nothingmuch that's for the runtime/compiler
17:01 nothingmuch static dispatch is the responsibility of the emitter
17:01 BooK_ joined perl6
17:01 nothingmuch IMHO the best way to go about it is using partial evaluation
17:01 revdiablo joined perl6
17:01 nothingmuch (we can talk more about that later if you like)
17:01 gaal_ joined perl6
17:02 nothingmuch but aside from that the runtime is responsible for: a. making an invocation object at the call site, b. sending it and the responder to the responder interface for dispatch c. invoking the dispatch match, if any
17:02 bcorn joined perl6
17:03 nothingmuch if it wants to do statistics in that spot then this is either entirely up to the runtime, or between the runtime and the responder interface if they both support it
17:04 nothingmuch as for static dispatch - again, this is between the compiler and the responder interface (if it's known)
17:05 nothingmuch but using partial evaluation you might sometimes be able to statically know both the responder interface and the method name ahead of time, and if the responder interface doesn't care about the responder for dispatch this could be pre dispatched
17:05 nothingmuch </backlog>
17:06 zgh joined perl6
17:07 gaal_ uh, why does the TODO test show up as not passing in agentzh++'s blog post? Mispaste I hopt?
17:07 gaal_ also, hope.
17:07 agentzh gaal_: that is *intentional*
17:08 agentzh smartlinks.pl is using "real_pass" or something
17:08 penk joined perl6
17:08 gaal_ is now known as gaal
17:08 agentzh oh, true_pass?
17:09 gaal well, may I propse there should be a third mark
17:09 agentzh what will that look like?
17:09 * agentzh is curious
17:09 gaal it can be the HANDWAVE glyph, if that were in unicode
17:10 gaal and be purple, which in some places stands for courage
17:10 gaal (ie, boldly test what does not yet work)
17:10 gaal or yellow, for cowardice
17:10 gaal (boldly run away from fixing the bug for this release)
17:11 agentzh hmm
17:11 gaal but anyway it does pay to distinguish between the three cases.
17:11 agentzh there're actually 4 cases.
17:11 gaal I agree that selling TODOs as if they were PASSes was kinda iffy, but no need to overreact.
17:11 agentzh passing, failing, expected failing, and unexpected passing
17:11 gaal and skip, sure, but that's okay to leave blank, or maybe an empty box
17:11 gaal oh
17:12 gaal right.
17:12 agentzh yes, currently skipped tests are marked as "blank" (no mark at all)
17:12 agentzh i think it's fine to unify passing and unexpected passing.
17:13 agentzh and also failing and expected failing
17:13 gaal what's the rationale behind nickserv RECOVER and RELEASE not being one command?
17:13 gaal agentzh: not sure, the old yellow (unexpected success) was the most fun color to see for implementors!
17:14 agentzh gaal: or a yellow sqrt?
17:14 agentzh and a green X?
17:14 gaal no, some users are colorblind.
17:15 gaal maybe a !v and ?x
17:15 gaal or something similar.
17:15 agentzh i'm afraid special symbols will confuse many users.
17:17 agentzh when ordinary people are reading the synopses on smoke server, they probably only concern which test is _actually_ passing and which test is _actually_ failing.
17:17 gaal then use the html abbrev feature to hint them on what it means?
17:17 agentzh i think the current treatment is _consistent_ though.
17:18 gaal consistency's all fine, but why at the price of usefulness?
17:18 gaal let's find two more symbols, and put a legend somewhere.
17:18 gaal and who are these ordinary people you're talking about? :)
17:19 agentzh people who are not implementors in real sense, like me. :)
17:19 * gaal names agentzh a cardinary person
17:20 agentzh :)
17:20 gaal I bet you're still interested, when reading the decorated synopses, whether a feature is planned for the coming release or not...
17:21 agentzh gaal: i'll think about it.
17:21 agentzh never mind.
17:21 agentzh i'm just opposed to confusing symbols.
17:21 agentzh let's find better way to achieve that.
17:22 agentzh i'd say gaal++
17:23 * gaal was about to open up some unicode charte but got sidetracked into looking at the wikipedia page for color blindness
17:23 gaal the images they have there are much "harder" than the typical ones
17:23 agentzh hehe
17:23 agentzh (?)
17:24 gaal the differences in hue are subtler than the normal color vision tests.
17:24 agentzh i see
17:25 * agentzh is not colorblind.
17:25 agentzh (luckily)
17:34 agentzh gaal: i'm adding to the post some clarification on the marks that smartlink.pl is currently using.
17:34 gaal thanks! agentzh++
17:34 agentzh especially for todo/skip tests.
17:34 agentzh :)
17:34 agentzh gaal++
17:35 weinig is now known as weinig|bbl
17:40 * nothingmuch gives up on in place merge sort for the 3rd time in his life
17:42 gaal I just downloaded Unibook: http://www.unicode.org/unibook/ - nicer than doing it with acrobat
17:42 lambdabot Title: Unibook Character Browser
17:43 gaal runs only on windows, though.
17:43 agentzh np, i'm on windows.
17:43 * agentzh grins.
17:43 gaal }:)
17:44 agentzh gaal: fixed in the post.
17:45 gaal it feels a lot like one of those postscript readers (i.e., a little bit clunky). /me pines for the day where "text mode" would be something you could assume can render all that information except maybe the actual tabulation.
17:45 * agentzh is happy to see this post is no longer too short now.
17:45 gaal (and that you could safely assume your readers have all the necessary fonts to make it readable and even look good)
17:47 ajs joined perl6
17:47 agentzh yeah, that is certainly a very good thing.
17:48 agentzh s/is/will be/
17:48 c6rbon joined perl6
17:51 elmex joined perl6
17:53 weinig|bbl is now known as weinig
17:54 elmex_ joined perl6
17:54 gaal okay, this is a cute candidate for TODO: ⁁ U+2041 CARET INSERTION POINT
17:54 gaal it means, for proofreaders, "insert here" :)
17:55 gaal ~~ "fix here" for hackers :)
17:56 gaal OMG scary, unicode has an "invisible separator". golfers would lurve this
17:59 gaal heh, and we can use ++ for unexpected success, because it's indication that someone deserves it :)
18:01 gaal this can work for TODO: 229D            CIRCLED DASH    [⊝]
18:01 Aankhen`` joined perl6
18:02 gaal or for consistency, 2297            CIRCLED TIMES   [⊗]
18:02 xerox joined perl6
18:03 gaal ah, and because we all love APL, we could use this for skip:
18:03 gaal 2395            APL FUNCTIONAL SYMBOL QUAD      [⎕]
18:03 xerox wow!
18:03 gaal hey xerox :)
18:03 xerox Hey hey hey!
18:04 gaal I'm looking for glyphs to indicate the abnormal results in tests
18:04 gaal (ie, everything not either PASS or FAIL)
18:04 xerox DARK FROWNING FACE
18:04 xerox Oh.
18:04 xerox What else happens?
18:05 gaal this includes: expected failure (aka TODO), unexpected success (aka, oops, audreyt did it again), SKIP
18:05 xerox You could use hands!
18:05 agentzh gaal: looking
18:05 gaal and there sohuld also be "this test never ran! OMG the test script must have blown up!"
18:06 gaal biohazard might work for that.
18:06 xerox ✌✍☜☝☞☟
18:06 xerox Unfortunately I can't see the first two but they are the best ones.  Namely: VICTORY HAND, and WRITING HAND.
18:07 xerox ☇☈ (LIGHTING and THUNDERSTORM!)
18:07 xerox ☄☌☍ (COMET, CONJUNCTION, and OPPOSITION?)
18:07 gaal U+1337  WOOT SYMBOL
18:07 gaal (j/k :-)
18:07 * agentzh doesn't quite unserstand U+2041
18:07 xerox :D
18:08 gaal agentzh: when you write a book and submit it for publication, the proofreader makes marks where words are missing
18:08 xerox (Can you see the symbols I wrote?)
18:08 agentzh gaal: ah, i see
18:09 rodi joined perl6
18:09 agentzh xerox: i can see nothing but black boxes in your messages. sorry. :(
18:09 gaal xerox: I can when I view http://colabti.de/irclogger/irclogger_log/perl6?date=2006-09-17,Sun&amp;sel=809#l1272 in my browser :)
18:09 lambdabot Title: #perl6 2006-09-17,Sun, http://tinyurl.com/gjbaf
18:09 xerox Silly Emacs.
18:09 xerox I'm using Circe version from CVS (2006-08-15 19:38:32) with GNU Emacs 22.0.50.1 (of 2006-08-19)
18:10 gaal do we know the colabti admins? we should really get them to set UTF-8 as the charset for our logs.
18:10 agentzh even in my firefox, xerox's chars still doesn't make any sense to me. :)
18:10 agentzh (agreed)
18:11 agentzh gaal's messages also contain a lot of black boxes. :)
18:11 agentzh (in my mIRC window)
18:12 agentzh 2:10 AM here...end of day for me...
18:12 xerox G'night!
18:12 agentzh i'll backlog colabti when i come back (maybe tomorrow)
18:12 gaal good U+265E to you, agentzh!
18:12 agentzh :)
18:13 agentzh night!
18:13 agentzh &
18:13 agentzh left perl6
18:14 gaal wow, these APL folks were amazing. this must be the ROTFLMAO glyph: 2379            APL FUNCTIONAL SYMBOL OMEGA UNDERBAR    [⍹]
18:14 gaal ("my ass hit the floor")
18:15 mako132_ joined perl6
18:15 gaal U+2364 and nearby also make good smileys.
18:17 gaal ah, U+2400 probably is better than the previous empty box. less "cute", closer to intended meaning.
18:30 Aankhen`` joined perl6
18:33 markstos joined perl6
18:35 gaal oh! we could instead of the check mark and stylized x, use U+2610 through U+2612. That makes SKIP consistent and obvious.
18:40 mdiep joined perl6
19:04 svnbot6 r13408 | fglock++ | Pugs-Compiler-Rule - implemented ^^ and $$
19:15 Limbic_Region joined perl6
19:16 jferrero joined perl6
19:20 weinig is now known as weinig|bbl
19:21 buetow joined perl6
19:25 Aankhen`` joined perl6
19:40 integral is now known as ntgrl
19:40 integral joined perl6
19:44 weinig|bbl is now known as weinig
19:59 avar I've been reading about grammar blocks, where do things go from there?
20:00 avar Basically I'm looking for a readup on how the Perl6 parser/compiler in Perl6 is/will be written
20:00 avar pointers to code would be excellent, or some section of the syn'-
20:00 fglock joined perl6
20:00 avar *'s
20:00 avar Basically I want to see where things go from "grammar" / "rules" into execution
20:01 weinig joined perl6
20:04 c6rbon joined perl6
20:05 fglock avar: see http://svn.openfoundry.org/pugs/perl5/Pugs-Compiler-Rule/lib/Pugs/Grammar/Rule2.pm
20:05 lambdabot http://tinyurl.com/egsnm
20:05 fglock avar: each 'token' is a grammar method
20:05 fglock parameter $_[0] is the source code
20:05 fglock it returns a Match object, which contains the syntax tree
20:06 salty-horse joined perl6
20:07 fglock avar: the grammar compiles to this perl5 code: http://svn.openfoundry.org/pugs/perl5/Pugs-Compiler-Rule/lib/Pugs/Grammar/Rule.pmc
20:07 lambdabot http://tinyurl.com/e7tz3
20:10 statico What's the difference between a role and an interface?
20:14 fglock statico: maybe this helps: http://www.oreillynet.com/onlamp/blog/2006/08/roles_composable_units_of_obje.html
20:15 lambdabot http://tinyurl.com/pvylp
20:15 statico Thanks!
20:29 svnbot6 r13409 | fglock++ | Pugs-Compiler-Rule - implemented non-ratchet <null>
20:44 fglock audreyt: re http://sial.org/pbot/19739 - this error should never happen: "unknown parameter 's'" - is the parameter list ro, maybe?
20:56 wilx joined perl6
20:59 svnbot6 r13410 | fglock++ | Pugs-Compiler-Rule - implemented <ident> in base grammar
21:09 _SamB_bot joined perl6
21:23 larsen joined perl6
21:37 weinig is now known as weinig|fooding
21:41 nothingmuch @yarr!
21:41 _SamB_bot Is that a hornpipe in yer pocket, or arr ya just happy ta see me?
21:41 nothingmuch @arr
21:41 _SamB_bot Har de har har!
21:42 nothingmuch whither lambdabot?
21:42 nothingmuch happy talk like a pirate day eve (in my localtime anyway ;-)
21:44 loumz joined perl6
21:48 leo nothingmuch: you seem to have a strange localtime ;-)
21:48 nothingmuch pirate day *eve* ;-)
21:49 nothingmuch it's a jewish tradition to start celebrating holidays the day before ^_^
21:49 leo ah ok
21:49 nothingmuch the real reason is that I just wanted to start reminding everyone now =)
21:50 nothingmuch http://en.wikipedia.org/wiki/Line_Islands
21:50 SamB nothingmuch: perhaps because it is the jewish tradition to start days the day before?
21:50 leo avast, be pepared for bordin
21:50 nothingmuch SamB: *nod*
21:50 nothingmuch at sundown
21:51 nothingmuch shiver me timbers if ye getting root access, leo the red
21:52 nothingmuch how's yer little parrot, matey? does 'e wanna cracker?
21:53 leo nothingmuch: tomorrow ;)
21:53 nothingmuch righteyo
21:54 leo just 1 day, 00:06:29 before International Talk Like A Pirate Day 2006!
21:54 leo # my $localtime
21:54 fglock joined perl6
21:54 nothingmuch 00:06?!
21:54 nothingmuch it's 0:54 here
21:54 nothingmuch and on my server
21:54 leo i 1hour off
21:55 nothingmuch ohhh, you were subtracting
21:55 leo 23:54
21:55 nothingmuch i guess i need to sleep
21:56 mugwump YARRR!!!
21:56 * mugwump just getting in practice.  Only 14 hours to go here
21:56 nothingmuch ^_^
21:57 leo hi mugwump - what's ya date ovarr derr?
21:58 mugwump today be th' eight'th
22:00 nothingmuch mugwump: care to comment in #moose?
22:15 lynxorgd joined perl6
22:15 lynxorgd NEW GAME http://www.cyber-wars.com/?ref=100628
22:15 _SamB_bot Title: New Cyber-Wars
22:15 Limbic_Region joined perl6
22:30 svnbot6 r13411 | fglock++ | Pugs-Compiler-Rule - regex grammar supports placing modifiers inside the regex; this still needs runtime support
22:36 Limbic_Region joined perl6
22:37 justatheory joined perl6
22:41 _SamB_bot joined perl6
22:44 LimbicRegion joined perl6
22:46 arcady joined perl6
22:56 dduncan joined perl6
23:03 dduncan hmm, for some reason, 'make' is now 'Skipping' Pugs.Version ...
23:04 dduncan it was some time after r13316
23:05 dduncan and before r13394
23:05 arcady joined perl6
23:07 dduncan given that I've worked on some relevant code before, I'll see if I can fix this ...
23:08 markstos joined perl6
23:25 khisanth_ joined perl6
23:26 khisanth_ is now known as Khisanth
23:26 dduncan it appears the problem is that version_h.pl wasn't getting run ... but oddly enough, following an inconsequential addition to the file (that prints a debug message), it WAS run, which updated the version correctly
23:26 dduncan perhaps the issue is that something is watching the file and only invoking it if it was updated "since last time"
23:27 dduncan which is incorrect, of course
23:27 dduncan looking ...
23:29 markstos joined perl6
23:35 markstos I noticed this is repeated in 39 places throughout the test suite: <MSWin32 mingw msys cygwin>  . Would it be worth adding something like @WIN32 to Test.pm ? Seems like it.
23:43 dduncan I think I have narrowed the problem down to one of the last 4 Makefile.PL updates, those after r13316
23:49 dduncan however, the Pugs changelog shows that the only thing updated in all 4 of those Makefile.PL changes was a line setting $embed_flags, but I don't see how that would affect version_h ...
23:49 dduncan so actually ...
23:49 dduncan the problem may be much older ...
23:50 dduncan I had only updated Pugs for the first time since a month ago, this last thursday
23:50 dduncan so the first try from a clean checkout worked, and so the problem is probably due to an earlier checkin
23:51 markstos parsing nightmare: http://en.wikipedia.org/wiki/Buffalo_buffalo_buffalo_buffalo_buffalo_buffalo_buffalo_buffalo
23:51 _SamB_bot http://tinyurl.com/rk25h
23:53 dduncan maybe the problem has to do with line 550 of Makefile.PL, where it references SVN but not SVK? ...
23:54 lisppaste3 joined perl6
23:56 dduncan nice one markstos
23:56 markstos Thanks dduncan: I'm sorry I can't be of much help with your Makefile.PL problem..
23:57 dduncan well, what happens for you?  What does your pugs -v say?
23:58 markstos oh. do I need to backlog a little for context, or just run pugs -v ?
23:59 markstos 6.2.12 (r13411)
23:59 markstos I use pugs on feather, which is built automatically, in audrey's tree there, I think.

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

Perl 6 | Reference Documentation | Rakudo