SVK users: search.cpan.org/dist/SVN-Mirror/ | paste: sial.org/pbot/perl6 | pugs.blogs.com | pugscode.org | pugs.kwiki.org | www.treehugger.com/files/th_images/paradigm.jpg
Set by audreyt on 17 August 2006.
00:26 elmex joined
svnbot6 r12498 | trey++ | [t/oo/syntax-but.t] 00:26
r12498 | trey++ | Added tests for "but False";
r12498 | trey++ | fixed tests to use eval correctly;
r12498 | trey++ | fixed a mispelling.
r12499 | fglock++ | * v6 - given/when/default/break/continue 00:44
00:48 cmarcelo left
renormalist MacVince, TreyHarris: cperl-mode thing: A known issue with new Unicode emacs and cperl-mode 5.x. Fixed in cperl-mode 5.20, but I didn't merged that version changes into Perl6-enhanced version yet. TreyHarris: thanks. 00:59
01:01 rashakil joined
MacVince renormalist: I think there are still a few issues with the code TreyHarris put up. 01:03
However, there are not enough details for me to know where to look: no line numbers or anything.
renormalist The fix to the original problem should be a simple \ --> \\ conversion somewhere in a docu string. 01:05
MacVince: I will have a look at it tomorrow. Must sleep now. sorry. 01:06
MacVince np.
01:12 elmex joined
svnbot6 r12500 | fglock++ | v6 - statement/expression closure traits 01:14
TreyHarris is this correct behavior, and if so can someone explain it: 01:23
?eval my @a = (Bool::False|Bool::True); my @b = 0..3; say "yes" if all(@a) eq any(@b)
01:23 evalbot_12497 is now known as evalbot_12500
evalbot_12500 OUTPUT[yes ] Bool::True 01:23
01:25 Bit-Man joined 01:28 fglock joined 01:31 ludan joined
svnbot6 r12501 | fglock++ | v6 - fixed scientific notation 01:48
wolverian search.cpan.org/~eilara/Aspect-0.11...ormhole.pm -- scary 01:53
lambdabot Title: Aspect::Library::Wormhole - A wormhole between call frames - search.cpan.org
02:12 gantrixx joined
TimToady ?eval my $a = (Bool::False|Bool::True); say "yes" if $a eq 1; 02:26
02:26 evalbot_12500 is now known as evalbot_12501
evalbot_12501 OUTPUT[yes ] Bool::True 02:26
TimToady ?eval my $a = (Bool::False|Bool::True); say "yes" if $a eq 0; 02:27
evalbot_12501 undef
TimToady that is...strange...
?eval my $a = Bool::False; say "yes" if $a eq 0;
evalbot_12501 undef
TimToady ?eval my $a = Bool::False; say "yes" if $a == 0; 02:28
evalbot_12501 OUTPUT[yes ] Bool::True
TreyHarris eqv works
so i just switched to that
TimToady ?eval my $a = Bool::True; say "yes" if $a eq 1;
evalbot_12501 OUTPUT[yes ] Bool::True
TimToady ?eval say "yes" if Bool::True eq 1;
evalbot_12501 Error: No compatible subroutine found: "&eq"
TimToady ?eval say "yes" if Bool::True == 1; 02:29
02:29 weinig is now known as weinig|zZz
TimToady did I kill it? 02:29
TreyHarris ?eval 2+2 02:30
TimToady maybe it's pining
TreyHarris i get *** Cannot cast from VInt 1 to Handle (VHandle)
TimToady weird 02:31
TreyHarris oh, this is maddening. i'm trying to write a test for the last S09 change, and i got a parse failure. so i put it in eval_ok, and the eval test succeeds.
TimToady you mean "for any(@x) > 42" stuff? 02:32
TreyHarris yes
TimToady maybe eval_ok is hosed.
TreyHarris i'm getting three different behaviors depending on whether the same code's run from a file or -e (parse fails), eval (parses, but doesn't work), or run at the pugs interactive line-by-line (wrong behavior, but different behavior if i run the same line a second time) 02:35
still trying to figure this all out. it's very very strange.
TimToady well, I wouldn't expect it to work yet in any event, since we've never given comparisons a list meaning before. But presumably it's trying to return a junction even in list context and messing up somehow. 02:36
TreyHarris no, i wasn't expecting it to work, but i was expecting to be able to write a test that failed :-) 02:38
if i write 'ok ?(blah)' and pugs bombs out, i do *not* expect "ok eval '?(blah)'" to just magically ok. 02:43
TimToady well, I think eval may be having other troubles--I see a lot of eval failures in the current smoke tests. 02:48
pasteling "TreyHarris" at 207.171.180.101 pasted "help me make tests 1 and 3 fail!" (28 lines, 1K) at sial.org/pbot/19149 02:49
TimToady the insides of test one parse if I put them all as one line. 02:53
?eval my @x = 1..20;my $code = -> $x { $x % 2 };my @result = any(@x) ~~ $code;
TreyHarris you're right. huh. so how do i document this problem with a test fail? 02:54
TimToady I also don't have a problem with 02:57
?eval my @x = 1..20; say ?(all(@x) ~~ { $_ < 21 }) 02:58
oh wait, the main loop of interactive pugs is an eval. duh.
02:58 kanru joined
TreyHarris oh... so how do lexicals escape so you can use them in successive lines? 02:59
02:59 Gruber joined
TimToady escape from eval? They can't. 02:59
not unless you declare them outside
just as in P5
03:00 trym_ joined
TreyHarris no, i mean my $x = 32 makes $x go away before you can type the next line with perl -d. but at pugs interactive, you can do my $x = 32 and then use $x in the next line 03:00
TimToady that's interesting. I didn't think it would do that. 03:01
03:01 meppl joined
TimToady well, anyway, even putting the commands in a file, i can't get them to parsefail. 03:01
03:02 avar joined
TreyHarris oh. so maybe it's my build of pugs? i'm at r12433 03:02
TimToady can you give me a file that bombs?
03:02 obra joined
TreyHarris ok 03:02
03:02 autark joined
TimToady I'm at 488 03:02
TreyHarris oh, pasteling didn't announce it 03:08
sial.org/pbot/19150
lambdabot Title: Paste #19150 from Someone at 207.171.180.101
03:09 glasser joined
TimToady uh, wow, I just got a screen and a half of one single error message. 03:10
TreyHarris yep
that's what i get
Cannot cast from VCode (MkCode {isMulti.... 03:11
TimToady ...to Double at foo line 6
TreyHarris I get ...to Double (VNum) at foo, but yes
despite the references to Test.pm in that error message, you can comment out the ok and still get a bombou 03:13
t
ahh.... but if you don't use Test, it works! 03:17
not the ok obviously
TimToady use Test; { my @x = 1..20; my $code = (sub ($x) { $x % 2 }); my $result = any(@x) == $code; }; 03:18
makes 5 screens of error
without the use Test it's only 3.5 screens 03:19
without the curlies it's only 1.5 screens. 03:20
pasteling "TreyHarris" at 207.171.180.101 pasted "works with first line commented, otherwise fails" (6 lines, 124B) at sial.org/pbot/19152 03:21
svnbot6 r12502 | fglock++ | v6 - fixed a statement modifier bug
TimToady looks to me like the junction logic is doing random stuff with code 03:23
TreyHarris huh, you can't 'require "/path/to/filename"' anymore? 03:28
TimToady: well, unless you have a better idea, I'm just going to return 0 at the end of the eval, and put a comment saying not to remove it until it works outside of the eval 03:33
since i can't generate an actual test failure
TimToady audreyt: when you get a change, see last paste above. 03:40
*chance
03:49 justatheory joined 03:54 fglock left
TreyHarris TimToady: is CATCH like this: "try { CATCH { when Exception::1 { ... } when /error/ { ... } default { ... } }? or is it "try { CATCH Exception::1 { ... } CATCH /err/ { ... } CATCH default { ... } }"? I read S04 pretty clearly as saying the former, but only the latter appears to be tested. 04:03
04:04 xinming joined 04:05 kanru joined 04:10 justatheory joined
gaal moose! 04:27
PerlJam TreyHarris: It's the former. It's a CATCH block that acts as a special kind of given (on $!) 04:33
TreyHarris meese, mice, mose 04:34
PerlJam: ok, I'll rewrite the tests
TimToady: interestingly enough, the word 'try' is not just self-documentation in this case. if you do nothing to the code but wrap it in a block, it still fails. but add the magic word "try", and poof, it succeeds--though it doesn't actually make it past the point where it failed before. so i now have an avenue for a test 04:35
audreyt fixed. 04:47
gaal in any case should that not have been $code()?
not that it worked with the parens 04:48
audreyt TreyHarris, TimToady: $x ~~ &c was broken and executed as $_ ~~ &c regardless of $x 04:49
svnbot6 r12503 | audreyt++ | * Implement ($lhs ~~ &code) correctly. Previously the
r12503 | audreyt++ | value of $lhs is ignored and only $_'s value is considered.
r12503 | audreyt++ | I wonder who implemented that... ;)
gaal hmm wait, $code has arity 1
audreyt: 07:49 < svnbot6> r12503 | audreyt++ | I wonder who implemented that... ;)
that would be me, I think
does any~~ set the topic? why *should* Trey's code work? 04:50
audreyt it would set the topic.
see the S03 table
the lhs column says $_
I love the utterance "see the S03 table" 04:51
as most tables are in S03 ;)
gaal wow, I dont' think it wasn '$_' and '$x' last time I looked... 04:52
audreyt that might be the case... :)
gaal "potentially references to container objects" # fossil? 04:53
audreyt is doing her hair right now (citywide wifi++), so connection will be intermittent
not really fossil
it means they are lvalues
gaal for a minute there I couldn't understand how come you needed wifi to do hair
04:53 shachaf joined
audreyt I need wifi to fix pugsbugs :) 04:54
gaal as in, I'll do away with heated air, I'll fry my hair with radio waves!
TreyHarris audreyt: fixed?
audreyt "I do my hair with 802.11"
TreyHarris lol
gaal or maybe, sleep on the NIC
audreyt TreyHarris: aye
"Micro-wavy hair style" 04:55
TreyHarris I just spent the past 20 minutes writing a set of tests that will fail!
audreyt commit them!
TreyHarris ok
gaal wonders if wifi NICs get warmer when the signal is low 04:56
"the signal is weak but the hair is dry"
TreyHarris how should I write an explanation? i notice some people use =kwid blocks, is that how i should too?
gaal TreyHarris: sure
audreyt or you can use multiline #{} now 04:57
timtowtdi
gaal :}s/^# //
er
/^/# /
/^/# /
that is /^/# / 04:58
gaal looks for running water
05:00 Revision17 joined
TreyHarris hmmm. everything in smartmatch.t is marked todo, with the explanation that ~~ isn't implemented yet 05:13
05:22 tup joined
svnbot6 r12504 | trey++ | [junction/chained_operators.t] 05:31
r12504 | trey++ | [operators/smartmatch.t]
r12504 | trey++ | Tests for evaluative junction
r12504 | trey++ | behavior described in S09, and tests
r12504 | trey++ | for fix made in r12503.
05:38 neoesque joined 05:40 agentzh joined
TreyHarris where's nothingmuch been? haven't seen him make a sound in a few days 05:47
agentzh TreyHarris: she is busy with her sysadmin work. 05:48
TreyHarris ah
agentzh :)
05:53 cmarcelo joined
svnbot6 r12505 | cmarcelo++ | * HsJudy: swapMaps is now part of MapM. Also, now we have a 06:22
r12505 | cmarcelo++ | instance of MapM for IORef (Data.Map.Map a b).
gaal wow, MapM is a confusing name :) 06:24
(<=> the mapM function) 06:25
cmarcelo gaal: yes, i agree.. my first names ideas are always very confusing =P... the idea was Collections => Map, then CollectionsM => MapM... =P 06:27
but people in general don't need to deal with the name MapM too much.. [e.g. there's no mention of it in Pugs code AFAIK]..
gaal cmarcelo: it's just an observation, not a complaint :) 06:28
svnbot6 r12506 | agentz++ | [t/README]
r12506 | agentz++ | - polished the wording.
r12506 | agentz++ | - updated the TODO part by encouraging the use of the `todo' function.
r12507 | agentz++ | [Test/lib/Test.pm] 06:37
r12507 | agentz++ | - polished the Kwid doc.
07:13 drbean joined
nothingmuch TreyHarris: i'm alive 07:18
agentzh: i'm not a she ;-)
agentzh nothingmuch: sorry. :)
nothingmuch the sysadmin stuff was actually trivial, once it was done
the PCI card popped out 07:19
so by the time i told you guys it was over with
anymoose, /me hunts food
TreyHarris hunting moose?
nothingmuch is going to start hunting in the freezer 07:20
if i don't see anything there, maybe i'll find some moose eventually
gaal nothingmuch: I hope you didn't push it back in while the system was running 07:30
lumi_ Good morning, folk 07:32
gaal: Do you have an opinion on what I asked yesterday?
svnbot6 r12508 | masak++ | paper was first mentioned 2006-08-06 (or earlier), not 2006-08-09 07:35
cmarcelo masak: are you the one that added monad links into READTHEM? did you see sigfpe.blogspot.com/2006/08/you-cou...s-and.html ? 07:37
lambdabot Title: A Neighborhood of Infinity: You Could Have Invented Monads! (And Maybe You Alrea ...
cmarcelo likes sigfpe blog
07:40 traecer joined
gaal lumi_: sorry no, at $work now so low on cycles too 07:44
but why not just moose it and see if it simplifies things? 07:45
lumi_ k, I'll try it
traecer just m00se it
agentzh what is the advantage and disadvantage of using Pod::Simple::HTML instead of Pod::Html? 07:55
util/catalog_tests.pl uses the former and i don't know why. :) 07:56
08:07 integral joined
nothingmuch gaal: no, i didn't 08:11
gaal: i shut it down to open it
gaal nothingmuch: ok. it's an expensive and not very effective way to defrost frozen food 08:13
nothingmuch =)
nothingmuch didn't know
the scary part was that it was half in there
and i think it was still picked up by lspci -v 08:14
gaal ugh
nothingmuch yes, very confusing =(
gaal remember the old cascade virus? /me wonders if a flaky card is like that
nothingmuch no, i don't
nothingmuch is a mac head, didn't have many viruses 08:15
what did it do?
gaal gotta go back to work
nothingmuch ah... see you then
gaal google for an emulator :)
nothingmuch btw, my first bookmooch book arrived
awesometown!
08:18 iblechbot joined 08:39 kane-xs joined
xerox G'day. 08:41
cmarcelo xerox: hi 08:43
xerox About yesterday's prime code... 08:44
TreyHarris audreyt: so r12503 only fixed the spewing of the long error... it still causes the closure executing to fail immediately. so my tests for parsing (at the bottom of t/operators/smartmatch.t) still fail 08:45
08:45 DaGo joined
xerox import Text.ParserCombinators.ReadP; composite = do { x <- liftM2 (:) (char '1') (many (char '1')); y <- many1 (string x); z <- look; guard (null z); return (x,y) }; prime = null . readP_to_S composite . flip repeat '1' 08:45
cmarcelo xerox: could you help me here? readP_to_S "runs" the composite parser, and if it doesn't match anything, will return []... right? 08:53
xerox "...and if "^(11+)\1+$" doesn't match, will return []." :) 08:54
cmarcelo cool! (I was in doubt if it returned [] or [(?, original_string)]). but perl one is still prettier =) 08:58
xerox roar. 08:59
08:59 shachaf joined
cmarcelo xerox: the first ocurrence of many shouldn't be many1 ? 08:59
xerox cmarcelo: that's equivalent, right. 09:00
No
At least *two* ones. 09:01
cmarcelo but (char '1') (many (char '1')), which I read as /11*/, could parse just "1", right? 09:02
xerox Ooops.
I thought you meant x <- many1 (char '1').
Yes, that's a typo. 09:03
cmarcelo and... manyN 0 = many; manyN n p = liftM2 (:) p (manyN (n-1) p)... so you can use x <- manyN 2 (char '1')... makes sense? 09:06
xerox Does it work? 09:07
TreyHarris agentzh: are you here?
09:12 Aankhen`` joined
cmarcelo xerox: is "repeat" what you really meant in the "prime" definition? repeat :: a -> [a], so that flip sounds a little strange. 09:15
xerox replicate 09:16
Sorry for the typos
cmarcelo np =)...
09:22 chris2 joined
cmarcelo xerox: everything works now. manyN too.. \o/ 09:23
09:39 iblechbot joined
svnbot6 r12509 | trey++ | TASK done: 09:43
r12509 | trey++ | spellchecking Overview PODs.
TreyHarris whoops. what to do for a segfault? write a test or no? 09:45
gaal TreyHarris: sure 09:55
TreyHarris: isolate it in one file, put it in t/pugsbugs 09:56
09:57 Aankh|Clone joined 09:59 DaGo joined
TreyHarris gaal: i don't see pugsbugs. create the directory? 10:00
10:00 bernhard joined 10:07 penk joined
gaal urp? it used to be there 10:08
TreyHarris svn log t/pugsbugs doesn't give me anything 10:09
gaal confers with svk log
ah, r11323 renamed it to t/bugs 10:10
TreyHarris i don't have that either... 10:11
gaal r11334 renamed it to t/xx-uncategorized... 10:23
TreyHarris oh? one of the TASKS says to move xx-uncategorized into the approriate directory by synopsis 10:24
gaal then r11334 must be bogus :) please make sure it hasn't accrued non-buggy tests, and if not, rename it back to something with 'bugs' in it :) 10:25
gaal thinks pugsbugs was in fact a good name
TreyHarris oh, well. it may not be a generic issue anyway, i just noticed that my uninstalled pugs is using a Prelude from my installed pugs. i guess my idea of installing only versions that seemed pretty stable and then build often in the source dir for testing was not a worthy idea... 10:26
gaal since we can't expect other implementations to copy our bugs
TreyHarris: that's simply a search path issue
TreyHarris oh? what should i change?
gaal if you want local prelude, export PERL6LIB=blib6/lib 10:27
or put a `pwd` there to protect yourself when cd'ing around
(I almost never use cd, so I don't bother)
TreyHarris no, that didn't do it
gaal huh? what does pugs -V say? 10:28
TreyHarris it's still saying Consider removing /Library/Perl6/Prelude.pm.yml and make it again
oh, i typoed :-) 10:29
gaal whew 10:30
gaal wanders off to $job again...
xerox $job eh... 10:32
cmarcelo audreyt: ping? 10:39
svnbot6 r12510 | trey++ | [STATUS] 10:49
r12510 | trey++ | [t/builtins/control_flow/try.t]
r12510 | trey++ | [t/xx-uncategorized/hashes-segfault.t]
r12510 | trey++ | Updated status of tests, changed try.t to
r12510 | trey++ | use current CATCH syntax, and added a test
r12510 | trey++ | for a bug that's causing Pugs to segfault
r12510 | trey++ | whenever hashes are used in certain
r12510 | trey++ | contexts.
11:02 Aankhen`` joined 11:04 DaGo joined, TimToady joined
masak cmarcelo: yes, I added a few links yesterday. and good suggestion about "You Could Have Invented Monads", I'll add that too 11:12
cmarcelo audreyt: sial.org/pbot/19159 => two main blog posts I'm planning on Judy + Pugs. could you take a little look? at least to check if I didn't said anything insane or sureal? 11:13
lambdabot Title: Paste #19159 from "cmarcelo" at 200.232.236.222 11:14
cmarcelo masak: great.. =) 11:15
audreyt looking now 11:16
svnbot6 r12511 | masak++ | added reference suggested by cmarcelo++
audreyt s/as I already described/as I'll describe below/ 11:17
all looks very sane 11:19
cmarcelo (I pasted in reverse order)
audreyt actually the interning was not heavily usef until r12317 11:20
which resulted in much more drastic speedup
so you may bench this moment's pugs and compare it against that two revs also
cmarcelo ok.. but: this moment's = r12317 or trunk? 11:21
audreyt (in r12215 only Type (type tags)were interned, r12317 and afterwards, Var (variable identifiers) was also interned)
trunk
what I've been doing was throwing more memo and intern at the problem
which all uses Judy one way or another
in one place (line 126, Parser.Operator) I switched back to HashTable 11:23
which was slower (forgot by how much) but didn't occasionally segfault with "Judy.IntMap: interrupted" / "Judy.Hash: interrupted" 11:24
havn't had time to investigate that yet.
but anywhere the ID type is used, a Judy-backed interning is used 11:25
cmarcelo audreyt: hmmm.. that amazing "100% speedup on mandelbrot" was counting with these other interning things? because here it wasn't that big the difference (considering this two old revs)..
audreyt it was counting other interning things.
mostly Var/ID interning
which made variable lookup much, much faster
11:26 ludan joined
audreyt (from Map String PadEntry to Map ID PadEntry) 11:26
11:27 evalbot_12487 joined
cmarcelo audreyt: I added Data.Map instance in collectionM, if the functions you use for HashTable are the default ones, I can instantiate HashTable too, so it will become easy to swap them and test... 11:27
11:28 nothingmuch_ joined
audreyt oh! that's a very good thought 11:28
please go ahead and do that
though I'm not sure whi Data.Map is collcetionM
sinceyou cannot destructively update it, no?
or did you mean IORef (Map)?
cmarcelo audreyt: yes, IORef (Map)...
audreyt gotcha.
cmarcelo is it bad manners to use IORef in Pugs code (since all over TVar is used)? I tested here and it seems to work. 11:29
11:31 shachaf_ joined
audreyt well, when use use IORef, atomically{} cease to work 11:32
since our atomically{} support (that's STM) depends on TVars
that's an open design problem actually, since we assume a share-everything model 11:33
in multithreading
instead of forcing people to say
my %hash is shared;
previously we implement Hash as space-inefficient TVar (Map)
which means all hash can be transactional (essentially blocking random access) 11:34
but when not running in multithreaded context, we'd like to use the faster Judy.Hash
which cannot provide rollback
so my idea is to switch only to STM-friendly storage (perhaps the THash from edwardk) only when user wants them 11:35
and otherwise default to share-nothing cloning
ala perl5
which I think TimToady had said he'd be more comfortable with
but that's still an open design question.
</rant> 11:36
11:36 prefiks joined
cmarcelo i see.. well, I can try instantiating TVar (Map) too, but would not work out-of-the-box since CM references in pugs are all supposing that it'll be an IO-action. 11:38
svnbot6 r12512 | kudra++ | Added threads from Saturday
audreyt I thought MapM is c->kam
so m = STM and that's all it takes, no?
(yes it'd require liftSTM)
cmarcelo yep, CM part is easy I think. but in pugs' code all references to CollectionsM functions are preceded by liftIO. 11:40
audreyt maybe we can replace both with just "cast"... 11:43
svnbot6 r12513 | audreyt++ | * This is now an error, in compliance with the revised S04 ruling:
r12513 | audreyt++ | my $x; { $x = 1; my $x = 2 }
r12513 | audreyt++ | "If you've referred to C<$x> prior to the first declaration, and the
r12513 | audreyt++ | compiler tentatively bound it to C<$OUTER::x>, then it's an error
r12513 | audreyt++ | to declare it, and the compiler is required to complain at that point."
r12513 | audreyt++ | The error message it gives is currently:
r12513 | audreyt++ | unexpected redeclaration of "$x" conflicts with earlier OUTER references in the same scope
r12513 | audreyt++ | which is kinda wordy -- improvements welcome.
audreyt but nvm... where would you like to CM? envGlobal? 11:44
cmarcelo actually the idea was keeping the possibility of safely swap Data.Map / Judy / whatever without breaking, so it's easy to pick the best one for each scenario.. 11:47
cmarcelo will take a look on THash also..
s/also/too/ =P 11:48
audreyt oh... then I'm afraid you need polymorphic lift
which can be defined as "cast" I guess
see src/Pugs/AST/SIO.hs for casting between monads
but I wouldn't suggest doing that right now...
I think it's a better idea to implement them as Pugs.Val.Mut instances 11:49
so that we expose each at surface level for a while
my %h is Hash::Transactional
my %h is Hash::Judy
so we can write benchmarks in perl6
to compare them directly without recompilation
cmarcelo oh. cool =).. well, will only do the MapM HashTable thing then.. 11:52
gaal 'declaration of "$x" conflicts with earlier OUTER reference in same scope'
audreyt please commit ahead :)
svnbot6 r12514 | kudra++ | spelling corrections 11:55
11:58 iblechbot joined 11:59 DaGo joined
gaal I would but Text.ParserCombinators.Parsec.Prim.unexpected gives me the creeps 12:02
audreyt "unepxected declaration" is fine 12:03
svnbot6 r12515 | kudra++ | Spell-checked
audreyt so just (unexpected "declaration...") 12:04
gaal tell that to the guy who wants a Hebrew translation of the error message
audreyt well that can be done at the reporting layer
gaal no it can't :)
audreyt Left err -> show (loc err))
of course it can :) 12:05
get errorMessages
and case into each, loc them
gaal It *could have* if there were markers in the error string 12:06
or if loc does NLP :)
audreyt data Message = SysUnExpect !String --library generated unexpect | UnExpect !String --unexpected something | Expect !String --expecting something | Message !String --raw message
you don't have to use the default Show
as you have access to constructors
see Error.hs in parsec 12:07
actually just use showErrorMessages
and supply different prefix markers
that will do
emeijer and daan is quite big on this hook-providing thing... 12:08
gaal but not all languages need the error class in prefix location
you need to closurize the renderer
audreyt so showErrorMessages them with unique markers
yes.
12:08 elmex joined
gaal I'm not seeing where the hook is. 12:09
audreyt showErrorMessages is it. 12:10
12:11 tup joined
svnbot6 r12516 | kudra++ | change title of august summary 12:11
gaal I don't see how this is done by looking at the code, but never mind for now... 12:13
audreyt Left err -> localize (showErrorMessages "!!OR!!" "!!UNKNOWN!!" "!!EXP!!" "!!UNEXP!!" "!!EOF!!" $ errorMessages err) 12:16
...and parse back the unique markers to get the structure
(yes, that is wrong, cheating, adhoc, etc. but Locale::Maketext::Fuzzy did exactly that)) 12:17
Locale::Maketext::Fuzzy to Locale::Maketext is what Template::Extract is to Template :) 12:18
gaal *groan*
gaal needs to wander away again
audreyt have fun... bbiab too 12:19
cmarcelo pugs w/ 6.4.2 here is way slower than pugs w/ 6.5 here... 12:25
audreyt list numbers for both then? 12:28
(not surprising as ByteString is heavily tuned as part of 6.5)
cmarcelo trunk+6.4.2 is worst than judy 0-day rev =P 12:31
(also with 6.4.2)
audreyt wow... 12:34
on linux?
"make profiled" and
./pugs-prof ... +RTS -p
and nopaste the profiling chart in pugs-pugs.prof ? 12:35
(just the first section)
cmarcelo ok.. i'm on linux amd64... 12:36
ops: make prof => Could not find module `Data.ByteString.Char8':
12:36 evalbot_12514 joined
audreyt try nuke third-party and svk revert -R it 12:37
?eval my $x; { $x = 1; my $x = 3 } 12:39
evalbot_12514 Error: unexpected redeclaration of "$x" conflicts with earlier OUTER references in the same scope expecting comment, "?", "!" or trait
audreyt good.
12:43 masak joined
cmarcelo (compiling...) 12:50
svnbot6 r12517 | agentz++ | [util/smartlinks.pl] 12:54
r12517 | agentz++ | - the HTML emitter now works! you can generate HTML files
r12517 | agentz++ | for all the synopses with embedded test snippets
r12517 | agentz++ | using the following command:
r12517 | agentz++ | util/smartlinks.pl t/*/*.t t/*/*/*.t
r12517 | agentz++ | yay!
r12518 | cmarcelo++ | * HsJudy: Add instance of HashTable for MapM.
12:58 agentzh joined
agentzh audreyt, gaal, nothingmuch et al: please comment on the HTML files (with test snippets) generated by util/smartlinks.pl. :) 12:59
though the CSS and HTML templates still need treatment, but the idea is already quite obvious at this moment. ;-)
nothingmuch_ agentzh: ETOOBUSY right now to run it myself and all 13:00
do you have sample html i could take a quick look at?
agentzh yes, i have.
13:00 nothingmuch_ is now known as nothingmuch
agentzh email? 13:00
nothingmuch [email@hidden.address]
agentzh okay
a sec... 13:01
svnbot6 r12519 | audreyt++ | * Fix build for inconsistent .hi-boot files in GHC 6.4.
13:03 mdiep joined
agentzh sent 13:03
nothingmuch bounces 13:04
agentzh bounced?
nothingmuch: only S02.html is attached. :) 13:05
nothingmuch no
nothingmuch bounces out of joy
=)
agentzh search for "Show t/" in your browser please.
i'll change the color of the code snippets so as to make them distinguished from the context. 13:06
nothingmuch that's awesome
agentzh++
agentzh sorry, end of day for me. my computer will be shut down in 17 sec...see you tomorrow...
nothingmuch: :)
bye &
audreyt nothingmuch: put the sample html somewhere
:)
I wanna look!
agentzh: take care :)
nothingmuch nothingmuch.woobling.org/S02.html 13:07
lambdabot Title: TITLE
audreyt ...beautiful.
13:08 mauke_ joined 13:11 jferrero joined 13:18 mauke_ is now known as mauke 13:22 Eidolos joined
cmarcelo audreyt: post the entire .prof or only the first page summary ? 13:27
s/post/paste/
audreyt first page first
but I may need to afk for a bit 13:29
13:29 masak joined
pasteling "cmarcelo" at 200.232.236.222 pasted "prof summary for pugs execution of examples/mandel.pl" (38 lines, 2.2K) at sial.org/pbot/19160 13:29
cmarcelo np.. it took 9m of user time (a little bit more of wallclock, because i'm multiprocessing...) 13:30
audreyt ok. hm. try changing "30" to "3" in mandel.pl 13:32
and see if 6.4 and 6.5 still differ
(bbiab) 13:37
13:38 shachaf joined
cmarcelo audreyt: (ok).... still big difference 6s vs. 30s... 13:38
13:56 diakopter joined
cmarcelo audreyt: i have to go sleep a bit, but i always read irc.pugscode.org... will be back later & 14:04
14:04 discordja joined, cmarcelo left
svnbot6 r12520 | fglock++ | * v6 - cleanup extra parenthesis and braces in emitted code 14:07
r12520 | fglock++ | - fixed 'num' Term
14:08 diakopter joined 14:36 DaGo joined
gaal agentzh: are you planning on colorizing tests with results? 14:37
svnbot6 r12521 | gaal++ | [util/smartlink.pl]
r12521 | gaal++ | - when a test comes just before a table, it's hard to tell them
r12521 | gaal++ | apart. Put a border around the test code. This should of
r12521 | gaal++ | course move over to a stylesheet eventually.
14:52 mollmerx joined 14:55 drbean joined 14:59 marmic joined
svnbot6 r12522 | audreyt++ | * op2Numeric: slightly clean up syntax; no functional changes. 15:08
15:08 lunartear joined, lunartear left 15:31 weinig|zZz is now known as weinig 15:33 justatheory joined 15:45 pmurias_ joined 16:04 [mago] joined 16:05 tup joined
svnbot6 r12523 | audreyt++ | * Shave 60% off parsetime... Simply by making decodeUTF8 16:14
r12523 | audreyt++ | and encodeUTF8 strict using `seq`.
r12523 | audreyt++ | It's the first time I've used space profiling ("+RTS -hc"
r12523 | audreyt++ | on "make prof"), and wow was it effective.
audreyt (*60% only on large modules. on very small ones, it's more like 25%.D[D[D[D[D[D) 16:15
(but still...)
gaal w00t 16:19
16:20 diakopter_ joined
gaal is there perhaps a faster *codeUTF8 implementation available? 16:20
do it in ffi entirely?
uh why is it even String->String? 16:21
audreyt because Parsec takes String 16:22
xerox gaal: ask dcoutts, I think he knows the right ways to do it
audreyt (the heap overflow happens at the entrance to Parsec, namely withProgramRun)
it's not in the usual place such as "cast". 16:23
so until we switch to linspire or sjanssen's bytestring parsec
--both of which doesn't have an url yet--
gaal audreyt: is it an encoding of the entire program string or of parts?
audreyt entire program
gaal linspire have a bytestring parsec!?
wow
audreyt spj et all's history-v2 paper quotes them saying their bytestring parser has speed indistuiguishable from cat. 16:24
and meory use is 10% compared to parsec
which all sounds very reasonable
gaal well, then it's probably moose to Buf.unpack . encode . Buf.pack
audreyt it's moose. the current treatment is probably best we can do
xerox audreyt: I pinged stepcut about it but he didn't answer or something, yarrr. 16:25
audreyt thanks, xerox :)
gaal I meant the happy moose :)
audreyt ah :)
gaal what's withProgramRun?
i gotta go
sorry 16:26
xerox ~~
audreyt er. doParseWith, actually
the thing that calls decode in Pugs.hs
see ya
16:31 Psyche^ joined 16:35 weinig is now known as weinig|bbl 16:42 Psyche^ is now known as Patterner 16:49 lambdabot joined 16:51 Bit-Man joined 16:59 weinig|bbl is now known as weinig 17:15 plisk joined 17:26 plisk_ joined 17:30 jikanter joined, evalbot_12523 joined 17:37 jikanter joined 17:55 justatheory joined 18:07 ruoso joined 18:10 Bit-Man joined
nothingmuch seen markstos 18:18
jabbor: seen markstos
aaaah?
18:31 foo\ joined 18:35 justatheory joined 19:01 MacVince joined 19:11 justatheory joined
svnbot6 r12524 | audreyt++ | * Another 25% combined win, this time thanks to retainer set 19:12
r12524 | audreyt++ | profiling (+RTS -hr) to save heap space.
r12524 | audreyt++ | * Loading pads from YAML prelude now saves an unpack/pack roundtrip.
r12524 | audreyt++ | * The heavily used "string" matcher no longer cause memory leaks.
r12524 | audreyt++ | (This was #1 reason why parsing slows down semi-exponentially.)
r12524 | audreyt++ | * Lazy data constructors (Maybe, (:)) in the tight Parser.Operator
r12524 | audreyt++ | loop are made strict to reduce leaks when there are a large number
r12524 | audreyt++ | of user-defined functions that could influence parsing.
gaal audreyt: who provides the 'encode' and 'decode' functions used by encodeUTF8? 19:36
audreyt UTF8.lhs 19:37
19:37 cmarcelo joined
gaal oh. so much for grep ^encode :-) 19:37
wolverian ack 19:38
audreyt I should sleep, but I'm having too much fun with hp2ps :)
wolverian . o (Does ack parse lhs files?)
audreyt prolly not
wolverian yeah.
gaal wolverian: i hacked mine so it at least searches them... but does it purport to parse code? 19:39
audreyt gaal: send Andy the hack?
wolverian gaal, no, I don't think so, but it could!
gaal audreyt: surely encode would be faster if it were inside bytestring and operated on strings not chars? 19:40
ie not via encodeOne? 19:41
is the Elbereth poem Pugs-contributed?
does seq seep down and force encodeOne to be strict too? 19:42
audreyt surely is.
seq on length forces the entire list
encode would be faster if it's in bytestring, but if the consumer in String, pack+unpack overhead may well be larger. 19:43
the profiling is showing decodeUTF8 + encodeUTf8 is currently <1% of time
and 3% of space
gaal isn't there a cheaper way to construct a bytestring for this purpose?
audreyt so please not be worrying about them :) 19:44
TreyHarris blinks
gaal okay :)
my hovercraft is full of strings
audreyt :D
cmarcelo hello folks 19:45
TreyHarris i find myself doing "svn stat -u | perl -ne 'print unless /^\?/'" a lot. is there a faster way, some flag I haven't noticed or something?
cmarcelo audreyt: any suggestion on that strange 6.4.2 slowdown here?
leo TreyHarris: svn st -q
gaal TreyHarris: apart from |grep -v ^\? ... 19:46
add svn:ignore properties to things that should obviously be ignored
TreyHarris gaal: perl's faster than grep :-)
audreyt cmarcelo: not sure... I'm hoping that my last few patches would help 6.4.2 as well
TreyHarris leo: that prints nothing at all :-)
gaal actually, prolly not.
TreyHarris ah but -uq.... there's the ticket 19:47
gaal: on file sizes of any significance, it is. at least on OS X. 19:48
cmarcelo audreyt: ok, i'll try it. was there any anomaly in that prof summary I paste or the proportions were sane?
audreyt that was sane
gaal audreyt: done (patch to Andy) 19:52
audreyt gaal++
gaal hah, 2 lines
audreyt it's curious to note that spj implemented the .hs-boot rationalization due to you
and the nfound out GHC itself ws using .hs-boot inconsistently with .hs
gaal something deserving of a ++ would be to refactor the fileliest out to a config file :)
I'm beginning to think that ".hs-boot rationalization" should be "cat *hs" :-( 19:53
audreyt oy. 6.5 not working for you yet? :) 19:54
gaal no -- bindist wants readline 4, debian doesn't carry it
and I don't feel like installing my one one
audreyt you can get that by hand surely
gaal though come to think of it
audreyt it's trivial
gaal that's much easier than getting a ghc by hadn :)
audreyt excellent reasoning sir 19:55
xerox is compiling ghc
...for the first time since I learned Haskell, hehe.
gaal seeks a readline4.tgz
svnbot6 r12525 | audreyt++ | * some more `seq` to get a pretty linear space on the heap graph. 19:57
gaal audreyt: how bad was the nonlinearity in concrete nubmers? eg. on a ~100k source file 19:58
xerox Dum de dum 20:01
audreyt: does it take long to build GHC on your macbook? 20:02
audreyt xerox: ~3hr I think
xerox Do you do make -j3 ?
audreyt gaal: "string"'s leak only occurs when it matches but not immediately demanded, so it varies a lot
no
gaal: unlike the "decodeUTF8" leak, which basically keeps a thunk alive for each chacracter of the input source 20:04
gaal ouch!
audreyt parsec is great in that it can parse infinite streams
sometimes it's not so great when you know you are dealing with finite source files that can fit in memory :) 20:05
20:05 cmarcelo left 20:07 awwaiid joined
gaal yay, the familiar ol' [n of n] 6.5 message looms again! 20:07
audreyt ooh 20:08
gaal oh but HsJudy is broke
pasteling "gaal" at 192.115.25.249 pasted "judy breakage on 6.5" (34 lines, 1.5K) at sial.org/pbot/19169
audreyt warning: "__GLASGOW_HASKELL__" redefined 20:10
Private.hsc in judy has a version check
check the headers a bit? it works here
gaal yes looking 20:11
what's Private_hsc.h genned from? it indeed has a #define __GLASGOW_HASKELL__ 604 20:13
maybe this is stale, let me clean things up
xerox ghc doesn't have smoke test eh... :) 20:16
gaal pugs' make clean/realclean should run clean in third-party/*
xerox What does pugs use for it?
audreyt ghc surely has
gaal xerox: for smoke tests? lots of stuff 20:17
xerox Oh, it has?
audreyt ghc/testsuite/
xerox Didn't know, nice. I'll try it when it finishes compiling.
gaal wonders where QuickCheck/LectroTest might come in handy in Pugs' t/ 20:18
20:19 marmic joined
gaal xerox: if you're interested in Pugs testing, see perlcabal.org/~gaal/pugstest/ 20:20
lambdabot Title:
gaal perlcabal.org/~gaal/pugstest/start.html even
lambdabot Title:
xerox Will do, now the system is too slow for anything, though :)
gaal (hmm why no title?)
xerox lambdabot is having a bad time 20:21
> 2+2
lambdabot /home/pls/lib/ghc-6.4.2/package.conf: openFile: hardware fault (Input/output...
xerox We're waiting for dons to wake up and check :(
gaal no there really is no title on that page. weird. 20:22
xerox Ah.
gaal ok, running 'make clean' in HsJudy/ helped.
any idea how 6.5 compares with 6.4.2 in compilation speed? 20:25
I guess we'll know in 30-odd minutes when this build finishes :) 20:26
i should probably have cleared ccache before doing this exercise though... 20:30
svnbot6 r12526 | audreyt++ | * Restore support for utf8 identifiers in programs.
audreyt ?eval 536 / 670 * 100 20:31
20:31 evalbot_12523 is now known as evalbot_12525
evalbot_12525 80/1 20:31
gaal dRat.
audreyt so smoke apparently thinks there's a 20% win today, everything considered
on my computer here, that is 20:32
gaal whee!
audreyt TimToady's numbers (with GHC 6.4) seems to agree with mine linearly pretty much
whee indeed :)
s/seems to agree/seemed to have been agreeing/
zzz &
gaal could knight ode tree 20:33
20:42 weinig joined
TreyHarris how can i diagnose what's going wrong when i get "user error (incompatible version number for compilation unit)" out of prove6 20:44
gaal you need to rm a .yml file
having that error message include the offending filename is proably a good idea :) 20:45
for now, strace
or fix the message :) 20:46
TreyHarris hm, 'user error.*incompatible' doesn't appear in the sources. any hint? 20:48
20:48 weinig is now known as weinig|bbl
gaal src/Pugs/Prim/Eval.hs:128 20:48
simply change to 20:49
err $ "incompatible blah: " ++ fileName'
TreyHarris thanks 20:51
gaal TreyHarris++
so, 6.5 is slower to compile Pugs from realclean than 6.4.2 by about 15% :( 20:53
svnbot6 r12527 | fglock++ | * v6 - fixed subroutine declarator
r12527 | fglock++ | - fixed class method calls on 'self'
gaal but that may have been related to ccache misses
let's see how they compare running part of t/ 20:54
wow, on the other hand 6.5 produces a *much faster* pugs! 21:00
xerox Yarrr
It took 2hours
...fast? :D
gaal t/builtins takes 26 cpu seconds on 6.5, 42 on 6.4.2 21:01
TreyHarris gaal: woot 21:03
gaal what platforms is 6.5 hard to get running on? on debian it's kinda klunky
but I really feel like dropping 6.4... 21:04
xerox Somebody should do this kind of work with GHC
A community to make it FAST :) 21:05
gaal offer a phd as bounty?
xerox ?fptools System.IO 21:08
lambdabot darcs.haskell.org/packages/base/System/IO.hs
xerox haha
gaal ? 21:09
xerox No the System.IO thing was unrelated
to the discussion here 21:10
gaal k
TreyHarris Trey 21:15
lol
macro misfired
gaal pines for the fr0rds and ghc 6.6 21:16
and also, goes to bed... zzZ &
TreyHarris gaal: it must be coming from elsewhere, i'm not even getting the colon i put after "incompatible version". but i can't find any text file that contains it. gah, i guess i'm going to have to do make clean. 21:17
bleh. 3 hours to find out what yml i need to delete
of course, make clean will mean that i'll never know... :-/
i wish os x has strace. 21:18
gaal it does have something
ktrace maybe?
it works in the aixish model of start the service, do something, stop the service 21:19
it also has fam I think or some other thingie that can monitor file access
ask nothingmuch
anymoose, I really doubt your error is coming from somewhere else 21:20
TreyHarris why wouldn't the colon display? 21:21
gaal are you sure you're running the right pugs?
TreyHarris yes. modify time was after my last make
i even had prove6 print out the path of pugs
Eval.hs is getting recompiled, but it isn't getting included, or else the message is coming from elsewhere 21:22
21:24 weinig|bbl is now known as weinig
gaal hm well, come to think of it it's weird that the 'failed loading Yaml: ' part of the error isn't there 21:24
but there's nowhere in the source that can otherwise produce this 21:25
can you just run it manually?
anyway I need to sleep
TreyHarris ktrace worked. it was blib6/lib/Prelude.pm.yml
gaal you'll think of something :)
that's good too 21:26
TreyHarris but i guess i can't really commit that change since it doesn't do anything
guess i'll revert
i do wonder where that error is coming from...
ah, well :-)
sleep tight
gaal well, if you're up to it a fix would be good to have... if you chase it
thanks, bye :)
TreyHarris ahhh 21:28
i think i just figured it out
/usr/bin/pugs is using ~/src/pugs/blib6/lib/Prelude.pm.yml, but ~/src/pugs/pugs is using /Library/Perl6/Prelude.pm.yml 21:29
now, *why* that is so broken... I don't know :-)
my installed copy is using my working dir libs, and vice versa...
21:35 prefiks left, diakopter joined 21:40 takanori joined
svnbot6 r12528 | fglock++ | v6 - optimized op-precedence usage; gets about 10% performance; Test.pm 21:45
r12528 | fglock++ | compilation now requires <100M ram (was up to 400M)
clkao (!)
obra wow 21:47
nothingmuch gaal: ktrace is like strace, in terms of usage 21:50
it just dumps to a binary log
and kdump filters that log
and prints it
svnbot6 r12529 | Sage++ | The translator now declares any variables not already declared when the -S option is _not_ in effect. At present, it's not too smart: all variables are my, and _everything_ that's bot declared gets declared, even things that may not need to be explicitly defined. 22:21
r12529 | Sage++ | Anything the code declares will not be redeclared.
r12529 | Sage++ | This update includes updates to ASTUtil (for some new untility functions) ASTTranslate-sage (for the actual new translation) and TestInit.pm (to show off the new translations).
r12529 | Sage++ | The new TestInit.pm can be fed to pugs, as is, and run (I think) correctly. At the very least, it doesn't die...
r12530 | fglock++ | v6 - $?POSITION calls &?POSITION 22:24
22:27 cmarcelo joined 22:28 avarab joined 22:31 ludan joined
TreyHarris anyone know how to make a new Prelude.pm.yml? i'm trying what seems obvious with util/gen_prelude.pl, but i'm getting "illegal hardware instruction" 23:03
svnbot6 r12531 | fglock++ | v6 - fixed a few warnings
23:07 justatheory joined 23:21 justatheory joined 23:49 FurnaceBoy joined