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