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—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. |