pugscode.org/ | nopaste: sial.org/pbot/perl6 | pugs: [~] <m oo se> (or rakudo:, kp6:, smop: etc.) || We do Haskell, too | > reverse . show $ foldl1 (*) [1..4] | irclog: irc.pugscode.org/ Set by TimToady on 25 January 2008. |
|||
00:02
lambdabot left
00:08
thestarslookdown left
00:12
justatheory left
|
|||
meppl | good night | 00:31 | |
00:31
masapong joined
00:33
meppl left
00:41
junzi joined
|
|||
pugs_svnbot | r20444 | lwall++ | [STD] continue removing old quotesnabber stuff | 01:02 | |
01:34
IllvilJa left
01:38
nipotan left,
nipotan joined
01:56
alester joined
01:58
braceta joined,
braceta left
02:02
Limbic_Region left
02:06
justatheory joined
|
|||
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:18 | |
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:19 | ||
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:28 | ||
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:34 | |
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:41 | ||
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:54 | ||
nomoose -> faster | 02:58 | ||
pugs_svnbot | r20446 | putter++ | [elf_f] Renamed the "nomoose" variant to "faster". It's not quite working. | ||
r20447 | lwall++ | [STD] <...> quoting working again using Moose now | 03:19 | ||
03:23
bsb joined
03:26
junzi left
03:37
pbuetow_ joined
|
|||
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. | ||
mncharity | vs 14 sec for elf_f, and a parse time of 15 sec. | 03:42 | |
perhaps it's time to profile STD_red again... | 03:43 | ||
03:49
pbuetow left
|
|||
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 | |
p5 not to run, or runtime errors stopping it. both before other, possibly passing tests, are reached. | |||
03:52
silverspeed joined
|
|||
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:53 | |
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 | |
03:59
silverspeed left
|
|||
mncharity | caveat is of course that it takes very little time to do nothing. | 04:03 | |
so it's mainly an observation on overhead. | |||
mncharity tries to remember where p6 notes the process id... | 04:04 | ||
04:07
kst` joined,
kst left
04:08
justatheory left
|
|||
mncharity | using speculative $*PROCESS_ID | 04:10 | |
TimToady | it's just $*PID | 04:18 | |
mncharity | ah, ok. thanks. | 04:19 | |
04:20
bsb left
|
|||
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 | ||
s/fragments/subsets/ | |||
that might not even be very hard... hmm... | 04:24 | ||
04:35
eternaleye left
04:38
Psyche^ joined
|
|||
mncharity | re 32909909, I keep forgetting how nearly identical elf_f and elf_f_faster are. it was again a perl version artifact. | 04:38 | |
TimToady | I'm still trying to decide what the relative LTM of terminators should be with respect to ordinary tokens. | 04:40 | |
04:40
eternaleye joined
|
|||
TimToady | should <?before <foo bar>> dwim or should <?before >> > dwim? | 04:41 | |
can argue it both ways... | |||
should all terminators take precedence over all normal tokens, or vice versa, or should I attempt to interleave them by length? | 04:42 | ||
for sure /a || b/ has to not treat it as /a | | b/ | 04:44 | ||
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 | ||
and probably sanest to explain non-dwimminess in terms of LTM | |||
so at a point where >> is a valid token, you have to say > > to get two > terminators | 04:46 | ||
(good thing there's no )) token in normal Perl :)) | |||
04:50
Patterner left,
Psyche^ is now known as Patterner
05:00
kst`` joined
|
|||
mncharity backlogs | 05:00 | ||
05:01
kst` left
|
|||
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 | |
where it only allows \W because W is the current terminator. | |||
05:05
kanru left
|
|||
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 | |
and I don't want to derive a new lang every time someone says q!foo! or q%foo% | |||
mncharity | ah, ok. | 05:09 | |
so terminators are expression terminators, so the issue is ... err, in what sublanguage are EXPR terminators problematic? | 05:13 | ||
or... I see, calling / a terminator, even though it's not a <terminator>. | |||
? | |||
TimToady | every language has both internal and external terminators | 05:15 | |
the internal ones we can precalculate a lexer for | 05:16 | ||
the external one's tend to be dynamically determined by context | |||
*ones | |||
certainly a terminator like / in /foo/ has to take precedence over nibbling the next char and treating / as a character to match | 05:17 | ||
even though that's the same length | |||
mncharity | if the external tokens are treated as tokens, then for some lexer implementations, you will have to do a custom lexer. | 05:18 | |
*external terminators | |||
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:22 | |
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:23 | ||
TimToady | there isn't anything that does double interpolation like that | 05:28 | |
hmm, looks like "\n" doesn't parse the \n as an escape yet, sigh | 05:29 | ||
probably a similar problem somewhere of matching . at the same length as \ | 05:30 | ||
so probably an ordering issue on LTM | |||
mncharity | perl -we '$a=q{\4/}; print qr/$a/;' | ||
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:32 | |
mncharity | ah, ok. all gone in p6.? | ||
TimToady | in general we never do that in p6 | ||
strictly single-pass parsing | |||
05:32
Auzon joined
|
|||
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 | |
and that, of course, is one of the reasons we're doing most of the parsing with recursive descent | |||
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:37 | |
hmm, no, the nibbler has a :: before the . matching, so LTM should always prefer the escape. | 05:39 | ||
must be some other problem... | |||
probably some insufficiently moosified role or some such... | 05:40 | ||
well, back to reading traces... | |||
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 | |
so you can do smalltalk-like n-ary "tokens". :) | 05:42 | ||
TimToady | does that work for q[[ ]] and such? | 05:43 | |
05:45
jan_ left
|
|||
mncharity | looking... | 05:46 | |
05:52
kst`` left
|
|||
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:53 | |
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 | |
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 | |||
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:59 | |
TimToady | but it's also fine as a terminator, if you buy that (1+) doesn't require expect_term to check for ) | ||
mncharity | lol # funny terminating infix | ||
(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:01 | |
comma too | |||
but you still can't write for 1,2,3, { .$say } | |||
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:03 | |
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 | ||
that view would make \s{} a hard terminator that doesn't pay attention to infix/term | 06:05 | ||
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:08 | |
mncharity | ahh | ||
TimToady | not clear what people will expect most of the time | ||
mncharity | circumfix:<while {<statementlist>}> :) | 06:09 | |
TimToady | heh | ||
but we don't currently do anything terminator-y with the 2nd element of <sym> | 06:10 | ||
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 | |
circumfix:<zz ++>... $x = zz 3 ++; | 06:14 | ||
Eevee | er. | 06:16 | |
TimToady | postfix cannot have space before it | 06:17 | |
Eevee | interesting | ||
06:20
bsb joined
|
|||
mncharity | ah, ok | 06:29 | |
06:35
alester left
06:36
[particle1 joined
|
|||
spinclad | $x = zz3++ | 06:36 | |
mncharity | my 'svn up' seems to be hanging... :/ | 06:37 | |
spinclad | circumfix:<-- ++>... $x = --3++; | ||
06:37
[particle] left,
stevan_ left,
thepler left,
exp_evalbot left,
rafl left,
gbacon left
|
|||
TimToady | hangs for me too | 06:39 | |
spinclad | $hangup = "{sleep 3;}+++{sleep 3;}"; | 06:40 | |
06:41
exp_evalbot joined
|
|||
mncharity | perhaps the feather memory issue again. | 06:43 | |
svn: PROPFIND of '/pugs': Could not read status line: Connection reset by peer (svn.pugscode.org) | |||
06:45
chris2 joined
|
|||
spinclad | we just had a netsplit; might be some net congestion? | 06:48 | |
(but /me to bed, perchance to dream...) & | 06:49 | ||
mncharity | goodnight spinclad | 06:50 | |
Auzon | see you, spinclad | ||
mncharity | yeah. very late here in EST land. end of day for me. will sync tomorrow morn. | ||
06:51
gbacon joined
|
|||
mncharity | 'night all & | 06:51 | |
06:51
mncharity left
06:54
[particle] joined,
rafl joined,
thepler joined,
rafl left,
mncharity joined,
[particle] left
|
|||
mncharity | no space before postfix!?! so no postfix:<kg> ? eep! | 06:54 | |
& | 06:55 | ||
06:55
mncharity left
06:57
rafl joined
06:58
IllvilJa joined
06:59
bsb left
07:07
bsb joined
07:10
meppl joined
07:19
meppl left
07:41
IRSeekBot joined
08:47
pmurias joined
08:54
schmalbe joined
09:11
bsb left
09:27
meppl joined
10:06
schmalbe left
11:19
polettix joined
11:21
Schwern joined
11:49
kanru joined
12:01
kane__ joined
12:10
kane_ left
12:20
meppl left
12:22
jferrero left
12:23
meppl joined
12:25
iblechbot joined
12:33
Limbic_Region joined
12:44
iblechbot left
13:02
Ched- joined
13:22
FurnaceBoy joined
13:29
Schwern left
13:32
meppl left
13:33
meppl joined
13:48
Schwern joined
13:53
vixey joined
13:58
Schwern left,
Squern joined
14:00
FurnaceBoy left
14:08
Squern left
14:09
Squern joined
14:11
smtms joined
14:19
Squern left,
Limbic_Region left
14:31
c9s left
14:37
iblechbot joined
15:05
cognominal_ joined,
cognominal__ left
15:12
Torment joined
15:19
polettix left
15:28
Jedai left
15:34
justatheory joined
15:40
djk joined
15:56
lisppaste3 left,
mncharity joined
|
|||
mncharity | SVN server still down. :/ | 15:57 | |
perhaps someone with feather access could kick it? | |||
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 | ||
I tried to restart apache2 | 16:00 | ||
mncharity | Juerd: SVN service on feather appears borked. we have access... but don't know what to do. guidance? | ||
still borked. | 16:05 | ||
moritz_ | uhm, http is also borked | 16:06 | |
I did a sudo /etc/init.d/apache2 stop | 16:07 | ||
got a warning (nothing fatal) | |||
and ps -el|grep apache2|wc -l | |||
41 | |||
mncharity | :/ I have to run. Will retry later (~t+12hr). re 41, eep. | 16:08 | |
moritz_ | what the bloody hell? | ||
see you later | |||
16:08
mncharity left
|
|||
moritz_ | svn and ordinary http up again | 16:10 | |
(sudo killall -9 apache2)++ | |||
I hope I didn't destroy somebody else's apache, but they had all UID = 0 or UID = 33 | |||
16:11
lisppaste3 joined
16:14
Southen_ joined
|
|||
pugs_svnbot | r20450 | clkao++ | Make Data::Bind compile cleanly. | 16:16 | |
16:26
justatheory left
16:34
pmurias left
16:46
Southen left
17:07
luqui joined
17:21
schmalbe joined
17:40
luqui left
17:55
schmalbe left
18:10
polettix joined
18:12
djk left
|
|||
Juerd | moritz++ | 18:19 | |
18:24
chris2 left
18:34
kane_ joined
18:44
kane__ left
18:48
polettix left
18:53
FurnaceBoy joined
19:26
cmarcelo joined
19:30
finchely joined
19:46
finchely left
|
|||
meppl | good night | 19:49 | |
19:52
luqui joined
19:53
meppl left
20:04
Psyche^ joined
20:15
Patterner left,
Psyche^ is now known as Patterner
20:46
polettix joined
21:08
rindolf joined
|
|||
rindolf | Hi all. | 21:08 | |
TimToady: here? | |||
21:19
polettix left
21:24
stevan_ joined,
stevan_ left
21:25
stevan_ joined
|
|||
diakopter | moritz_: I think the init script for apache2 is not correct (probably modified from the original, I'm guessing) | 21:25 | |
rindolf | Hi diakopter | 21:30 | |
Hi moritz_ | |||
Hmmm.. TimToady has been idle for 14 hours. | |||
21:32
iblechbot left
21:42
FurnaceBoy left
22:03
justatheory joined
22:15
rindolf left
22:30
justatheory left
|
|||
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:32 | |
I don't see that in the synopses anywhere, though, so maybe I just made that up? I'm not sure. | |||
Eevee | is uniq in the synopses at all? it's not in S29 | 23:06 | |
wolverian | I remember sort doing that. | 23:08 | |
pugs_svnbot | r20451 | putter++ | [elf] elf_f can no longer be compiled by elf_e - now self-compilation only. | 23:39 | |
r20451 | putter++ | Parser.pm temp files improved, so simultaneous elf's no longer break each other. | |||
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
|
|||
mncharity | moritz_++ | 23:40 | |
@tell clkao How goes Data::Bind? I'm looking for something to implement Signature/Capture binding for subs in elf. Thoughts? | 23:47 | ||
no lambdabot? | |||
:/ /me wonders how to reinvite lambdabot... | |||
luqui | lambdabot is not in the building | 23:53 | |
pugs_svnbot | r20452 | lwall++ | [STD] now successfully recognizes escapes in double quotes | ||
23:55
geezusfreeek joined
23:59
ting_ joined
|