Perl 6 - the future is here, just unevenly distributed

IRC log for #perl6, 2008-05-18

Perl 6 | Reference Documentation | Rakudo

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

All times shown according to UTC.

Time Nick Message
00:30 meppl good night
00:31 masapong joined #perl6
00:40 junzi joined #perl6
01:02 pugs_svnbot r20444 | lwall++ | [STD] continue removing old quotesnabber stuff
01:37 nipotan joined #perl6
01:55 alester joined #perl6
01:57 braceta joined #perl6
02:05 justatheory joined #perl6
02:18 mncharity steven_/Auzon/etal: I was wrong.  The "cut startup time by 1/2" I saw wasn't my edits... it was an artifact of using a different version of perl.  doh.
02:19 mncharity Startup in 5.10 is ~1/2 the time of startup in 5.8.8, despite what I believe to be similar Moose installs.  But perhaps I'm wrong about that last bit.
02:28 mncharity pmurias: could you add a note to elf_f_src/README on how elf_f_nomoose was created?  I went to update it and hit unexpected diffs.
02:32 pugs_svnbot r20445 | putter++ | [elf_f] Now uses #!/usr/bin/env perl  instead of #!/usr/bin/perl.  This makes getting 5.10 more likely, and 5.10 appears ~1/2 the startup time of 5.8.8.
02:33 mncharity re artifact, so it turns out using Moose in a less messy manner won't actually help us.  The 2 sec startup hit is better, but... we've no idea how to make it go away.
02:40 mncharity Actually, the cleaned up version starts up 10% faster.  And 25-30% of the startup is doing the immutable optimization.  Leaving ~1sec as a puzzle.
02:53 mncharity pmurias: hmm... it seems _nomoose can't be compiled by elf_f or elf_e?  and can't compile itself?  what am i missing...?
02:57 mncharity nomoose -> faster
02:57 pugs_svnbot r20446 | putter++ | [elf_f] Renamed the "nomoose" variant to "faster".  It's not quite working.
03:19 pugs_svnbot r20447 | lwall++ | [STD] <...> quoting working again using Moose now
03:22 bsb joined #perl6
03:37 pbuetow_ joined #perl6
03:41 mncharity Wow.  elf_f_faster self-compiles in 4 sec (if the parsetree is cached).
03:41 pugs_svnbot r20448 | putter++ | [elf_f_faster] Now compilable by elf_f and itself.
03:41 mncharity vs 14 sec for elf_f, and a parse time of 15 sec.
03:42 mncharity perhaps it's time to profile STD_red again...
03:49 mncharity TimToady: re parsefail and fudge, at least for elf, parsefails are no longer the bottleneck.  70% of t/ currently parses.  it would be nice to have more, but...  the main current obstacle to getting information from individual test success/failures is instead the emitter/runtime - locally broken p5 code causing
03:50 mncharity p5 not to run, or runtime errors stopping it.  both before other, possibly passing tests, are reached.
03:51 silverspeed joined #perl6
03:52 mncharity yes, it would be possible to go through and manually flag tests to be skipped.  but... that's most/a great many of them.  and change with every tweak of the parser and compiler.   changes which you want to stay aware of.  so... it's not clear to me that fudge helps much with this.
03:56 pugs_svnbot r20449 | putter++ | [elf_f] Add run-tests result for elf_f_faster.
03:57 mncharity Thinks there are 32909909 tests. :)  And may also have other issues.  But... 8 minutes to run t/.  Happiness.
03:58 silverspeed left #perl6
04:02 mncharity caveat is of course that it takes very little time to do nothing.
04:02 mncharity so it's mainly an observation on overhead.
04:04 * mncharity tries to remember where p6 notes the process id...
04:07 kst` joined #perl6
04:09 mncharity using speculative $*PROCESS_ID
04:17 TimToady it's just $*PID
04:18 mncharity ah, ok.  thanks.
04:21 * mncharity muses that with elf_f_faster, one might create a tool which takes a .t file, and repeatedly reruns it on file fragments, to automagically figure out which parts are breaking the test.
04:22 mncharity s/fragments/subsets/
04:23 mncharity that might not even be very hard...  hmm...
04:37 Psyche^ joined #perl6
04:38 mncharity re 32909909, I keep forgetting how nearly identical elf_f and elf_f_faster are.  it was again a perl version artifact.
04:39 TimToady I'm still trying to decide what the relative LTM of terminators should be with respect to ordinary tokens.
04:40 eternaleye joined #perl6
04:40 TimToady should <?before <foo bar>> dwim or should <?before >> > dwim?
04:41 TimToady can argue it both ways...
04:42 TimToady should all terminators take precedence over all normal tokens, or vice versa, or should I attempt to interleave them by length?
04:43 TimToady for sure /a || b/ has to not treat it as /a | | b/
04:44 TimToady so I think I need to interleave them and make them pretend to be tokens, even though they're not part of the current sublanguage
04:45 TimToady and probably sanest to explain non-dwimminess in terms of LTM
04:45 TimToady so at a point where >> is a valid token, you have to say > > to get two > terminators
04:46 TimToady (good thing there's no )) token in normal Perl :))
04:59 kst`` joined #perl6
05:00 * mncharity backlogs
05:02 mncharity re "even though they're not part of the current sublanguage", is that necessarily true?  ie, if W is the terminator, might not a sublanguage allow  \W  to escape it and ignore it's terminator-ness?
05:03 mncharity where it only allows \W because W is the current terminator.
05:07 TimToady for instance, in q/foo/ the current sublang is single quoting, but the / as a terminator isn't really part of that language
05:08 TimToady and I don't want to derive a new lang every time someone says q!foo! or q%foo%
05:08 mncharity ah, ok.
05:12 mncharity so terminators are expression terminators, so the issue is ... err, in what sublanguage are EXPR terminators problematic?
05:13 mncharity or... I see, calling / a terminator, even though it's not a <terminator>.
05:13 mncharity ?
05:15 TimToady every language has both internal and external terminators
05:15 TimToady the internal ones we can precalculate a lexer for
05:15 TimToady the external one's tend to be dynamically determined by context
05:15 TimToady *ones
05:16 TimToady certainly a terminator like / in /foo/ has to take precedence over nibbling the next char and treating / as a character to match
05:16 TimToady even though that's the same length
05:17 mncharity if the external tokens are treated as tokens, then for some lexer implementations, you will have to do a custom lexer.
05:18 mncharity *external terminators
05:19 mncharity in interpolated contents, any external terminators can't be treated specially, no?
05:20 TimToady the internal escapes can be handled by normal lexing--I'm doing that now, more or less, though it's largely untested
05:21 mncharity i was thinking "$a" where $a has a ", but... that doesn't quite work.   /$a/  where $a = qr{/}?
05:23 mncharity ie, wondering if one ever needs to have two lexers, one understanding the terminator, and one which must not for "things which get inserted and thus can't be looked at, but which still need to be lexed here".
05:27 TimToady there isn't anything that does double interpolation like that
05:28 TimToady hmm, looks like "\n" doesn't parse the \n as an escape yet, sigh
05:29 TimToady probably a similar problem somewhere of matching . at the same length as \
05:30 TimToady so probably an ordering issue on LTM
05:30 mncharity perl -we '$a=q{\4/}; print qr/$a/;'
05:30 mncharity re double, which lexer is doing the \4, and recognizing it's a problem, but not considering / to be a terminator?
05:31 TimToady the perl5 lexer contains a great deal of bogosity due to reparsing and treating rx as strings
05:31 mncharity ah, ok.  all gone in p6.?
05:31 TimToady in general we never do that in p6
05:32 TimToady strictly single-pass parsing
05:32 Auzon joined #perl6
05:34 TimToady but it means we have to keep careful track of which language we are in, and know when to "pop" back to the previous set of terminators
05:35 TimToady and that, of course, is one of the reasons we're doing most of the parsing with recursive descent
05:36 mncharity for whatever it's worth, redsix took the "it's just a token" approach.
05:36 TimToady bottom-up engines really only work for a fixed language
05:39 TimToady hmm, no, the nibbler has a :: before the . matching, so LTM should always prefer the escape.
05:39 TimToady must be some other problem...
05:39 TimToady probably some insufficiently moosified role or some such...
05:40 TimToady well, back to reading traces...
05:40 mncharity re redsix, rather, each "redsix token" is made up of n lexemes, which are the unit of precedence parsing.  so  < > is just two lexemes, and the second gets added to the currently valid set when the first is parsed, and then dropped from the set when it's eventually seen.
05:41 mncharity so you can do smalltalk-like n-ary "tokens". :)
05:42 TimToady does that work for q[[ ]] and such?
05:45 mncharity looking...
05:53 mncharity it didn't in redsix (the whole pugs parser concept of balanced delimiters was dropped in favor of quick special-case fakes).  whether it could or not...
05:56 TimToady it's also not entirely clear whether one wants to check the terminator set on every lex decision; there could be a different set of terminators for expect_infix than for expect_term
05:57 TimToady and, in fact, \s{...} is probably one of those, since {...} is a fine term, but maybe that just means that {...} is a funny terminating infix
05:58 mncharity re "whether it could", I suspect it would have been straightforward to add.  q[[ ]] would just call EXPR with the second lexeme ]] (the lexemes linked back to their "token"s) to be added to it's lexeme working set.
05:58 TimToady but it's also fine as a terminator, if you buy that (1+) doesn't require expect_term to check for )
05:58 mncharity lol  # funny terminating infix
06:00 mncharity (1+) reminds me of \(2:) which went by recently, where : is normally an infix, but here...
06:00 TimToady some infixes that delimit list terms are allowed to have a right nullterm
06:00 TimToady comma too
06:01 TimToady but you still can't write for 1,2,3, { .$say }
06:01 TimToady since the closure would just be the 4th term in the list
06:02 mncharity one of the "TimToady: (" n STD.pm observations was that while EXPR would parse '3,', it would forget there was a , there, returning just the 3.
06:02 TimToady alternately (and this might actually be what the spec says), you aren't allowed to use a closure in a list like that without parenthesizing the whole list
06:04 TimToady that view would make \s{} a hard terminator that doesn't pay attention to infix/term
06:06 mncharity err, I don't get that last part.  (4, {})  would have to parse, so how could the {} be a terminator? (in either of the two meanings we've used)?
06:07 TimToady it would be a terminator set by the "while" for the top level only, so inside parens would have no effect
06:07 mncharity ahh
06:08 TimToady not clear what people will expect most of the time
06:08 mncharity circumfix:<while {<statementlist>}>  :)
06:09 TimToady heh
06:09 TimToady but we don't currently do anything terminator-y with the 2nd element of <sym>
06:12 mncharity can the 2nd elem of sym ever work if it's also a valid postfix op?  ie, the EXPR would grab it and never give it back.
06:13 mncharity circumfix:<zz ++>...  $x = zz 3 ++;
06:15 Eevee er.
06:17 TimToady postfix cannot have space before it
06:17 Eevee interesting
06:20 bsb joined #perl6
06:28 mncharity ah, ok
06:35 [particle1 joined #perl6
06:36 spinclad $x = zz3++
06:36 mncharity my 'svn up' seems to be hanging... :/
06:36 spinclad circumfix:<-- ++>... $x = --3++;
06:38 TimToady hangs for me too
06:39 spinclad $hangup = "{sleep 3;}+++{sleep 3;}";
06:40 exp_evalbot joined #perl6
06:42 mncharity perhaps the feather memory issue again.
06:43 mncharity svn: PROPFIND of '/pugs': Could not read status line: Connection reset by peer (http://svn.pugscode.org)
06:45 chris2 joined #perl6
06:47 spinclad we just had a netsplit; might be some net congestion?
06:48 spinclad (but /me to bed, perchance to dream...) &
06:49 mncharity goodnight spinclad
06:49 Auzon see you, spinclad
06:50 mncharity yeah.  very late here in EST land.  end of day for me.  will sync tomorrow morn.
06:50 gbacon joined #perl6
06:50 mncharity 'night all &
06:53 [particle] joined #perl6
06:53 rafl joined #perl6
06:53 thepler joined #perl6
06:53 mncharity joined #perl6
06:54 mncharity no space before postfix!?!  so no  postfix:<kg>  ?   eep!
06:54 mncharity &
06:56 rafl joined #perl6
06:57 IllvilJa joined #perl6
07:06 bsb joined #perl6
07:09 meppl joined #perl6
07:41 IRSeekBot joined #perl6
08:46 pmurias joined #perl6
08:54 schmalbe joined #perl6
09:10 bsb left #perl6
09:26 meppl joined #perl6
11:18 polettix joined #perl6
11:21 Schwern joined #perl6
11:49 kanru joined #perl6
12:00 kane__ joined #perl6
12:22 meppl joined #perl6
12:24 iblechbot joined #perl6
12:32 Limbic_Region joined #perl6
13:01 Ched- joined #perl6
13:21 FurnaceBoy joined #perl6
13:32 meppl joined #perl6
13:47 Schwern joined #perl6
13:53 vixey joined #Perl6
13:58 Squern joined #perl6
14:08 Squern joined #perl6
14:10 smtms joined #perl6
14:36 iblechbot joined #perl6
15:04 cognominal_ joined #perl6
15:11 Torment joined #perl6
15:33 justatheory joined #perl6
15:39 djk joined #perl6
15:56 mncharity joined #perl6
15:56 mncharity SVN server still down.  :/
15:57 mncharity perhaps someone with feather access could kick it?
15:57 moritz_ I have access to feather. How do I kick it?
15:58 mncharity is it set up to restore services when you reboot it?
15:59 moritz_ dunno
15:59 moritz_ I tried to restart apache2
15:59 mncharity Juerd: SVN service on feather appears borked.  we have access... but don't know what to do.  guidance?
16:04 mncharity still borked.
16:05 moritz_ uhm, http is also borked
16:06 moritz_ I did a sudo /etc/init.d/apache2 stop
16:06 moritz_ got a warning (nothing fatal)
16:07 moritz_ and ps -el|grep apache2|wc -l
16:07 moritz_ 41
16:07 mncharity :/  I have to run.  Will retry later (~t+12hr).  re 41, eep.
16:07 moritz_ what the bloody hell?
16:07 moritz_ see you later
16:09 moritz_ svn and ordinary http up again
16:09 moritz_ (sudo killall -9 apache2)++
16:10 moritz_ I hope I didn't destroy somebody else's apache, but they had all UID = 0 or UID = 33
16:10 lisppaste3 joined #perl6
16:13 Southen_ joined #perl6
16:15 pugs_svnbot r20450 | clkao++ | Make Data::Bind compile cleanly.
17:06 luqui joined #perl6
17:21 schmalbe joined #perl6
18:09 polettix joined #perl6
18:18 Juerd moritz++
18:34 kane_ joined #perl6
18:52 FurnaceBoy joined #perl6
19:25 cmarcelo joined #perl6
19:30 finchely joined #perl6
19:46 finchely left #perl6
19:49 meppl good night
19:51 luqui joined #perl6
20:03 Psyche^ joined #perl6
20:45 polettix joined #perl6
21:07 rindolf joined #perl6
21:07 rindolf Hi all.
21:07 rindolf TimToady: here?
21:23 stevan_ joined #perl6
21:24 stevan_ joined #perl6
21:25 diakopter moritz_: I think the init script for apache2 is not correct (probably modified from the original, I'm guessing)
21:29 rindolf Hi diakopter
21:29 rindolf Hi moritz_
21:30 rindolf Hmmm.. TimToady has been idle for 14 hours.
22:02 justatheory joined #perl6
22:31 Tene So, I was adding the optional test param to List::uniq on rakudo, and I vaguely remembered something about uniq inspecting the arity of the test, and if the test took a single parameter, testing test($arg1) == test($arg2) instead of test($arg1,$arg2)
22:31 Tene I don't see that in the synopses anywhere, though, so maybe I just made that up?  I'm not sure.
23:06 Eevee is uniq in the synopses at all?  it's not in S29
23:07 wolverian I remember sort doing that.
23:39 pugs_svnbot r20451 | putter++ | [elf] elf_f can no longer be compiled by elf_e - now self-compilation only.
23:39 pugs_svnbot r20451 | putter++ | Parser.pm temp files improved, so simultaneous elf's no longer break each other.
23:39 pugs_svnbot r20451 | putter++ | PrimitivesP5.pm added to elf_f_faster. $*PID added to PrimitivesP5.pm, and unlink() to the runtime.  run-tests now ignores a bogus enormous plan number from list_quote_junction.t.  Updated run-tests results.
23:40 mncharity joined #perl6
23:40 mncharity moritz_++
23:46 mncharity @tell clkao How goes Data::Bind?  I'm looking for something to implement Signature/Capture binding for subs in elf.  Thoughts?
23:46 mncharity no lambdabot?
23:47 mncharity :/  /me wonders how to reinvite lambdabot...
23:52 luqui lambdabot is not in the building
23:52 pugs_svnbot r20452 | lwall++ | [STD] now successfully recognizes escapes in double quotes
23:54 geezusfreeek joined #perl6
23:58 ting_ joined #perl6

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

Perl 6 | Reference Documentation | Rakudo