pugscode.org <Overview Journal Logs> | r1773/winxp: 587/4256, smoke/win2k (occasional): xrl.us/fqum (81/4418, r2232), Mac OS X (160/4483, r2216), Linux (60/4482, 2267) | pugs.kwiki.org
Set by obra on 23 April 2005.
machack666_ network on the fritz .. did you get any of my last statements ($val ~~ any (@results)) ? 00:00
nothingmuch </aol> was the last thing i saw
00:02 machack666_ is now known as machack666
crysflame 16:51 < machack666> </aol> 00:02
machack666 I said that I thought that there was nothing a junction could accomplish by sub_call(..., >>$junc<<) that we couldn't already accomplish with @res = @objs >>.method(...) 00:03
you can then have explicit control over the interpretation of the results...if you want an any() instead of an all(), you just test against the precalculated results 00:04
my @res=@objs>>.meth($a,$b,$c); 00:05
if (all(@res)) { say "all were true" }
nothingmuch could you rephrase?
machack666 else if (any(@res)) { say "some were true" }
else { say "none were true" }
nothingmuch btw, does my $result = sub_call($junction) repack the return values? 00:06
machack666 that's what's at debate.
if we allow junctions, then I think it should, insofar as we have a simple junction
but what about any(1,2,all(2,3),none("a",5)) ?
if it's a uniform junction, it makes sense 00:07
my argument is that there seems to be little difference in treating junctions this way -- it is highly redundant with hyperops
nothingmuch i think that threading prototypes should return a junction
like ops
machack666 i.e., $j = 1|2|3 ; say $j + 1; # 2|3|4 00:08
nothingmuch they are just junction aware thingies
but with room for optimisation
and that anything that is memoizable should be autothreading
machack666 this seems to be analagous to @a=(1,2,3); say @a>>+<<1
nothingmuch yes, but hypers are on operations
junctions are on values
the distinction is where does it happen 00:09
machack666 i'm not saying getting rid of junctions
nothingmuch and that's why i think autothreading is dumb
machack666 just not being able to treat them as variables
nothingmuch because it really makes it redundant
why not?
machack666 so: given ($x) { when 1|2|3|"grandma's panties" {...}} # ok
I think autothreading causes too many problems for it to be the default 00:10
nothingmuch i think junctions are most useful for composing predicates
and that if i want to say if
if (is_funky(1|3)){ } it should dwim
but also equivelently:
sub do_on_funky (..., my $thing, ...){ if (is_funky($thing) { ... } } 00:11
machack666 it just seems too fuzzy for cases like this:
nothingmuch do_on_funky(1|3);
The purpose of a junction is to allow for performing several tests at a 00:12
given time, with the testing code needing no knowledge of that junctions
are present
-- groups-beta.google.com/group/perl.p...44593eb886
machack666 package Naive::Module; sub naive_exp ($base, $exp) { my $ret = $base; while ($exp--) {$ret *= $base}; $ret}
naive_exp(1|2|3|4,100)
# ...syslock 00:13
# due to whole hd used for swap
wait
Juerd nn
machack666 if the autothreading happens at the point of the func call, then we're only calling the code effectively for the 4 cases of the junction 00:14
and $base is not considered a junction
nothingmuch right
machack666 if it is ever possible for us to pass an actual junction as a single datatype which later autothreads, then I see that there could be problems down the line 00:15
nothingmuch it should be limited to (cpus)+1
autothreading shouldn't be so greedy though
at most
+1 to ensure that behavior is unpredictable
machack666 but if autothreading is the default, then we don't need to worry about that in the case of sub calls.
which protects package semantics
from unexpected behaviors
nothingmuch lets agree: 00:16
machack666 the world is now safer for naive module authors...
nothingmuch autothreading is an optimisation
machack666 :D
nothingmuch what if naive_exp handles writing to disk, btw?
machack666 hmm
since ooe is not defined for junctions, I assume we'd get some funky results 00:17
nothingmuch what if it does if ($user_id == $value){ ... write to data file ... }
and if i pass in $user_id and $value
and I want them to be both junctions 00:18
or one of them
machack666 or at least the possibility exists
nothingmuch or none of them
it should behave in a sane way
junctions are values
not control flow
hyper ops are control flow
they are related in that junctions are something that is good to hyper up
but they should be values unless someone asks to hyper them
or they are sent into something like a builtin op 00:19
or something that can be memoized (explicitly marked as pure)
machack666 so $j+1 is equivalent to any($j.values >>+<< 1 ) ?
(or whatever the composition operator was for junction creation)
nothingmuch not exactly 00:20
because '+' is pure
it doesn't matter
but if a junction gets into some complex code,
so yes, they are equiv
because whoever is using it does not know of the complexities
(new programmer in a project, someone using a CPAN module, perl newbie)
and suddenly the person gets data corruption 00:21
because of a implicit concurrency on unsafe code
then we're in deep crap
crysflame this problem affects all programming languages using junctions, right?
nothingmuch and it could be as simple as
my $val = $bar - 2;
$foo += $val;
$bar += $foo/2; 00:22
suddenly all your math is wrong
your data files suck
crysflame tangentially, should junction support be disabled by default and only enabled by a pragma?
nothingmuch your database driver complains about broken constraints
machack666 that's Larry's contention
crysflame use DBI # this module uses junctions, which you have not enabled
nothingmuch crysflame: no, they're very useful to represent data
machack666 junction support ok for conditionals 00:23
nothingmuch i would like to say if (1|2 == $expected){ }
machack666 but not for variable assignment
nothingmuch machack666: i disagree
ther'es nothing wrong with them
crysflame so
nothingmuch as long as they keep getting passed down
machack666 </larry's opinion>
nothingmuch oi vey
crysflame (a) junctions wreak havoc on those who don't suspect they're there
i like larry's opinion
it protects the masses from the worst of it, while keeping the simplest use (if $a == 0|1) functional 00:24
nothingmuch they don't if they are not exploded into threads
crysflame sure they do
seek($fh, $pos)
voila, chaos
which $fh does $fh degrade to?
which position?
nothingmuch that should be a fatal error
crysflame why? $fh is a junction of multiple filehandles
$pos is a junction of a bunch of positions
i see no reason that should be a fatal error
i do see that it's wildly confusing 00:25
and that it's so unlikely to be useful that it could be considered an error condition
nothingmuch and the current C lib inspired definition is not prepared for this kind of abstraction
because seek is at the lowest level
of abstraction
crysflame okay
pick something other than seek then
machack666 crysflame: in your case, we'd end up with m x n seek ops
nothingmuch if we switch to buffer oriented abstraction, where our buffers can write themselves to junctive points in the files
then it could make more sense
machack666: which seek would be the last seek?
i say things that don't make sense
machack666 undefined
I agree; it's garbage 00:26
nothingmuch like IO ops
crysflame okay, so
nothingmuch and system calls in general
machack666 depends on the underlying algorithm
crysflame i chose badly by saying seek()
nothingmuch anything that is not 'perl intornal'
crysflame how about "factor()"
machack666 for junction storage...probably a map of some sort
nothingmuch no, seek is an excellent choice
cannot eat junctions
crysflame no it's not, because you're complexifying it all because it's a C function
i was trying to make a general point
:|
but that's okay. i trust y'all :)
nothingmuch (3|4)! == (6|24); 00:27
like + does
is add(1, 3) different from +?
especially now that + is just a multimethod?
why should factorial() need to say that it can handle junctions?
why can't the junctions just be passed downwards to say the '*' op that factorial uses 00:28
which knows to do the right thing, since it's a builtin?
machack666 bbiab
nothingmuch it's simpler
for most cases of control flow it's probably more efficient
because tiny steps are optionally taken
instead of whole programs repeated on a junctions
s/s$//; 00:29
and it's consistent
because factorial($x); # x == junction
is the same as what you'd expect from (1|4)!;
if ! were a builtin op
or to disallow IO completely in any autothreaded dynamic scope 00:30
also it lets you detect such garbage when it reaches seek()
when you autothreads it makes no sense to remember which values are derived from a junction exploision
my point is in one sentance: 00:31
if junctions can't safely be put in variables they're worth nothing for onezeroinfinity since the only place where they can be created is in the code that uses them
and autothreading isn't safe
period
(unless we know the op is pure, in which case we can decide whether we pump the junction down or autothread and rejunction, which is really just an optimizer decision) 00:32
machack666 nothingmuch: you said earlier that hyperops were an example of control flow, while junctions are a combination of values 00:34
but I see junctions in most cases as a kind of control flow shorthand -- almost a parameterized control flow macro 00:35
in the case of the simple junctions (if $x = 1|2|3), we're really just abbreviating (if $x == 1 | $x == 2 | $x == 3) 00:36
to me this seems directly related to control flow. The fact that a junction datatype would represent multiple values is ancilary to this -- the reason you use a junction is because you want to express the control conditional succinctly 00:37
nothingmuch right 00:39
machack666 nothingmuch: clarify onezeroinfinity. are you referring to one(), none(), all() ?
nothingmuch in this example since == is pure 00:40
then it can affect control flow
it has no side effects
no, c2.com/cgi/wiki?OneZeroInfinityRule
basically it means if $x == (something that is really many things)
and not for $value (many things) { if ($x == $value){ } } 00:41
that's how we perceive it too
machack666 link appears to be borken
or blank, actually
:) 00:42
nothingmuch sorry, from memory
c2.com/cgi/wiki?ZeroOneInfinityRule
one zero infinity sounds more natural to me for some reason
in this case junctions let us follow the simpler ZeroOne rule 00:43
while getting Infinity for free
the only way to do this safely is to make a distinction at the edges of the language definition
between pure primitives, which accept these One<->Infinity thingies
and external side effect rich primitives 00:44
it is a fatal error to feed them this
or at least the op always fails
(use fatals)
anything else is up to the user to compose
should declare which param they can explode 00:45
and autothread on it
ops which are pure
or which have side effects but can handle junctions
and statements can also explode junctions into threads
and pure functions/mutlimethods/whatever can also be autothreaded
if it looks to be a gain 00:46
these are simple, consistent, relatively safe rules
which can give a lot of benefit
i know that if autothreading stays in perl 6 i will never use junctions for more than if (my $value == 1| 00:47
2);
whether it's allowed or not
because overloaded objects and stringification are already not handled properly in p5 by some 90% of the modules that deal with these things
machack666 when you speak of autothreading, do you actually mean process-type threads, or just the ability to ignore the actual algorithms used to make the match?
nothingmuch and junctions/autothreading are a much more dangeous thing 00:48
i think that they're replacable
e
machack666 i found some pretty weird idiosyncronicities in pugs' handling of junctions, to be sure
nothingmuch i think furthermore that I will be overly paranoid 00:49
and type Any|Junction everywhere I can
just to make sure that I am not being hurt by anyone else who is too lazy to think about it
again, because these things hurt me every day in perl 5
machack666 how about a super to Any and Junction which is the junction of Junction and Any. something short and catchy 00:50
and a policy to specify that that is the default parameter type
nothingmuch i think Any should be that Any
but that doesn't work well with autothreading
machack666 we need the ability to have negative traits: my sub thing isnt threadable {..." 00:51
nothingmuch i think we have that
machack666 well! 00:52
nothingmuch not that specific thing
but is rw vs. is constant
and you can apply a role to an object
and then unapply it later
machack666 I guess it's just the equivalent of a sub-scoped use() or no() block in p5 00:53
(oversimplified and off-the-cuff)
nothingmuch anyway, do you agree with my simple rules for junctions? 00:54
because if not i'd like to see why 00:55
i think i don't get why there is this autothreading-is-good-it-should-be-the-default orgy at all, and I have no clue why some people don't think this is obvious
machack666 scrolls up 00:57
I agree that we should be able to specify which parameters can be autothreaded. I don't think that code which hasn't declared explicitly its autothread intentions should be expected by default to be autothread safe. On the other hand, authors who haven't thought about the autothreading issues will ikely not be expecting junction objects as parameters to handle internally. 01:01
so at least a warn() should suffice ...(although die() may be more appropriate, as you don't want your pg_pl6 procedure to do unpredicable things anyway. 01:02
I don't know how much semantic parsing we could do on compilation of the sub in question...if we have the is_pure status of all ops involved in the function body, then we could automatically promote the compiled sub to pure. 01:03
problem is how far you want to traverse the call tree to find this info out while compiling
and it only works for static code/no eval()s
I agree with your memoizable statement from above. (I think it was you...) 01:04
it is sufficient to autothread if a particular sub is memoizable. 01:05
this has been an enlightening discussion. :(
s/:\(/:)/
machack666 hates to be enlightened. ;)
nothingmuch: ping 01:06
bbiab 01:08
nothingmuch morning Corion 01:39
are you waking up, or still up?
Corion Just got home, and possibly need to be back up (and on my bike) in 5 hours %-)
"need" is relative :)
The build seems broken?
Corion backloggeth 01:40
nothingmuch not that I know
Corion src/Pugs/Prim.hs:377:4: 01:41
The last statement in a 'do' construct must be an expression
Hmmm - maybe it's a local patch then ...
Ah. Yeah. Some conflict. I'll wipe it then ...
Oooo. We had a release. Nice :) 01:46
Corion feels sympathy with Juerd 01:47
nothingmuch Corion: autothreading sympathy? 01:54
Corion nothingmuch: CPANPLUS breakage sympathy 01:55
nothingmuch ah
mugwump: ping 02:30
jabbot pugs - 2291 - test .() on junctions, not todo anymore 04:08
bsb I have a possibly nonsensical junction question: 04:24
Should "((1|2)^(3&4))" and "one(any(1,2),all(3,4))" produce junctions with matching structures? 04:25
They don't currently
Seems to be b/c the & operator trumps ^ and | but the function version does the params before the function 04:26
05:19 kenhack is now known as tadpol1 05:21 tadpol1 is now known as kenhack
autrijus bsb: no, that's a valid question 06:42
and I fixed it
would you please write a test?
Aankhen`` autrijus++ 06:43
bsb nice one. I've been testing junctions with .perl strings but that kind of assumes a canonical representation. Is there a better way? 06:44
autrijus not sure there is. 06:45
Aankhen`` Does Pugs have support for P6 pattern matching yet? 06:46
autrijus Aankhen``: no, see roadmap in PA01 06:47
jabbot pugs - 2292 - * Junctive ^ should join junctions inste 06:48
Aankhen`` PA? 06:49
autrijus pugs apocryphon 06:51
Aankhen`` Ahh, okay.
autrijus lunch & 06:55
gaal autrijus, is interactive mode gone? it doesn't start up on msys. 07:08
Aankhen`` Is there an easy way to see diffs in the Web interface? 07:09
I'm looking at the log, and when I go to individual changes, I can only see the version checked in, without any diffs. 07:10
gaal do you want two arbitrary versions, or a certain version against its immediate predecessor? 07:11
Aankhen`` The latter.
gaal then go to e.g. rt.openfoundry.org/Foundry/Project/...g/VICTUALS and follow any of the "diff with previous" links. 07:12
Aankhen`` Hrm... I just followed the Recent Commits link from pugscode.org.
Anyway.
Thanks. :-)
gaal ???? 07:13
uh
"sure"
Aankhen`` OK, see, I'm at rt.openfoundry.org/Foundry/Project/...it=Show%21
Er.
One sec.
rt.openfoundry.org/Foundry/Project/.../pugs/log/
That might be better.
gaal my keyboad switches languages occasionally. amusingly, i just typed "sure" and it came out "dork" :) 07:14
well, okay, click on he "revision" link 07:15
Aankhen`` Ahh.
I have to go to the individual file's history page.
gaal yes
if you prefer, you can do this from the command line: svn diff -r2001:2000 07:16
Aankhen`` Nah, I'm gonna stick with the Web interface.
gaal autrijus: ping 07:40
Corion r2290 - datenzoo.de/pugs/win2k.html - 8 hours after the release and still all tests work/are todo ... Amazing :))
gaal Corion: can you try something? do "pugs" w/o any params and see if it starts the interactive interpreter? 07:41
it's broken on msys; works on linux.
i don't know where to start debugging this, since there aren't any nice tools like strace here. :( 07:42
Corion worksforme 07:43
gaal darn, this is msys specific then.
Corion Maybe the isTerm() call fails?
(but why should it fail now when it worked earlier) 07:44
gaal how would i tell?
i'm not sure i ever worked in interactive mode on msys :)
Corion gaal: Write a small Haskell program that does what the shell/interactive code does
gaal right.
Corion ... I think if you search for "term" in Main.hs or Run.hs , you'll find the startup for the interactive loop 07:45
gaal i'm on it.
Corion Yay!
I'm away again!
gaal oh, i see what you meant by isTerminal, no that's not wha'ts happening because sending an EOF doesn't help. 07:47
oh! it *is* what's happening, but then it gets stuck. fishy. 07:49
ok, hIsTerminalDevice is lying. And it's not that stdin is being closed, because echo 'say "hi"' | ./pugs.exe works. 07:52
jabbot pugs - 2293 - Test complex junctions are equivalent 08:48
pugs - 2294 - plan number fixed
nothingmuch morning 09:47
elmex morning 09:53
gaal nm, hi. 09:54
let's try the patch thing now?
Juerd t apache why do you keep crashing stop
nothingmuch sure 09:56
i thought you sent it yday
nothingmuch is starting his first real web development project 09:57
anyone who wants to help is welcome
gaal no, once i'd recorded a patch darcs wouldn't let me get a diff against your version. of course there's a way to do that but it wasn't worth losing sleep for a couple of trivial methods.
^figuring it out for etc. 09:58
nothingmuch darcs diff -p 'atch na'
will match things like 'patch name' or 'match nautilus'
and display a diff for that patch
but don't do that
gaal 'atch na'? why, that makes perfect sense! how didn't i think of that :)
nothingmuch 'darcs send'
that's just a regex ;-)
gaal but, you know, send wants to send to p6-c. 09:59
nothingmuch so type in my address
it's because i put p6c in there
so that everyone can review patches, not just me
nothingmuch doesn't really see it as explicitly his 10:00
darcs send --to=nothingmuch@woobling.org
gaal nothinmuch, help me out please. i'm tired of learning YA scm
ah, at last :)
couldn't you have said that last night?
nothingmuch didn't i? 10:01
gaal no!
nothingmuch oops
nothingmuch--
i thought it asked you interactively
gaal sent. as you can see, it's mighty trivial. don't forget to mod the template 10:02
nothingmuch i did =)
gaal darcs-- # why doesn't it send mail like a regular human bein^W^Wprocess and use mutt? 10:04
pasteling "gaal" at 192.115.25.249 pasted "HTMLMatrix inline css support" (26 lines, 709B) at sial.org/pbot/9611 10:07
gaal next time i'll pick up the phone and sing bits at you :)
nothingmuch darcs it doesn't know you like mutt
you can set it's sendmail though
gaal i tried, you know. 10:08
nothingmuch what's so bad about sendmail?
gaal maybe i like keeping a copy of outgoing mail?
nothingmuch ah
=P
the patch is out there 10:09
i think expecting it to guess that you prefer mutt is a little too much
gaal you'd think i can set a mailer as an option to the command that, you know, sends mail. but no!
nothingmuch yes you can
gaal darcs send --help | grep send # nope 10:10
darcs send --help | grep command # nope
nothingmuch oh my, you're right
nothingmuch files a bug
want to be the bug owner? 10:11
oh, i see what i remember 10:12
gaal none(<cvs svn p4 cc arch darcs>).pick
nothingmuch you can ask it to darcs send into a file
that is: create a message
and then just put that in your mail client
gaal that's reasonable enough.
nothingmuch i knew i remembered something
gaal ah, it's even documented. -o.
nothingmuch darcs send -o file 10:13
ah, yes
gaal well, mayve svn doesn't annoy me that much, of the bunch :)
i should take a break, this hostile mood isn't good for anything
nothingmuch drink some tea ;-)
gaal good idea!
also, i made soup and i should have another bowl. 10:14
nothingmuch =)
gaal the TAP model, btw: a testgroup can have diags of itself 10:19
not explicitly specced the the TAP, but possible if you start a test with diag()
a test file, that is 10:20
group, in your terminology.
actrually, that's a shortcoming of the TAP, because you can't unhackily specify "intent" style messages. 10:21
"about to do $DANGEROUS_OPERATION, i hope i don't crash" 10:22
of course that's what you have a plan for, but still this can make debugging quicker.
actually, we can fix that simply by emitting a test description before running the test, which should be possible if the test is a thunk. 10:23
but that means you need to change the functions to things like ok(Code $test, ?$desc) { say $desc; proclaim .... if $test.() } 10:25
and call it liek ok({ 1 + 1 = 2 }, "arithmetic"); # (bad example since the compiler optimizes this) 10:26
conceptually this is cleaner anyway. every test is a thunk.
with metadata associated to it. the metadata should not be vulnerable to the whims of the test. 10:27
nothingmuch gaal: i think the protocol should allow for whatever 10:38
and that diag should be available for groups 10:39
hmm
interesting
sort of like lives_ok 10:40
btw, did you send the patch?
i didn't get anything yet
also, try muttng
gaal poll 10:42
actually i keep forgetting, give it another minute, i'm calculating hashcash.
nothingmuch hashcash? i don't need no hashcash from you 10:43
autowhitelisting should be enough
although gaal++ for using
nothingmuch really ought to start too
gaal everybody gets hashhash from me.
it's real easy
nothingmuch the camram scheme for hashcash is purdy though 10:44
pay once
gaal www.livejournal.com/users/gaal/150447.html 10:45
not familiar with camram
and the interesting pages on their site are down. got a spare pdf? 10:51
nothingmuch nope, sorry 10:55
gaal->isa("Pirate"); # no documentation for patch
gaal no tests, either 10:56
but i'm a p6 pirate, so it's .isa
nothingmuch care to send me hashcash-sendmail? it's not in gentoo's package
gaal sure, one sec.
forum2.org/gaal/lj/hashcash-sendmail 10:58
nothingmuch goody 11:02
Aankhen`` The class for strings is Str, right? 11:12
gaal y 11:13
Aankhen`` So could you add this: method Str::foo ($self is rw) { $self ~~ s:p5:/foo/bar/; } 11:14
gaal i don't know if you can add methods to the builtin types in perl. in java, fwiw, String is final. 11:15
Aankhen`` Hrm. 11:16
gaal that doesn't mean "no" :) it means i don't know.
Aankhen`` Heh.
It would suck to not be able to add methods to the builtins.
nothingmuch gaal: for some reason (can't figure out) inline css looks differently
nothingmuch.woobling.org/example.html
gaal you can always do multi sub (Str $self is rw) 11:17
yes, i noticef that too, weird, innit
wasn't sure it was really what i though it was :)
nothingmuch body { font-family: Verdana, Arial, Helvetica, Tahoma; <-- no effect?
kungfuftr: ping
Aankhen`` Ah, I was planning to use it to be able to say: $foo = $bar.foo(); 11:18
gaal nm, firefox?
Aankhen`` ōæ½xABnothingmuchōæ½xBB: The comments are messed up there...
nothingmuch safari
Aankhen`` <style type="text/css">
/* <!-- */
...
nothingmuch oh
Aankhen`` /* --> */
nothingmuch gaal: naughty
Aankhen`` </style>
gaal what? 11:19
nothingmuch your patch ;-)
gaal doesn't see the problem with that - perhaps i'm blind?
nothingmuch Aankhen``++ 11:20
nothingmuch.woobling.org/example.html
reload
Aankhen`` ^_^
gaal huh? how does that work? 11:21
the point of the <!-- is to comment out the css from non supporting browsers
Aankhen`` Yes.
gaal but if they don't support css, they'll crap out on /* */
Aankhen`` However, he had this: <style type="text/css"><-- ... --></style>
gaal what's wrong with that? i was under the impression that's how this was done? 11:22
Aankhen`` It was missing a !, heh.
gaal aaaahh!
Aankhen`` Actually, I made a mistake too: you don't need to put CSS comments around the HTML comments.
gaal heh
Aankhen`` I've gotten used to typing <style type="text/css">/* <![CDATA[ */ ... /* ]]> */</style>
gaal Aankhen``++
nothingmuch gaal: darcs pull 11:24
don't darcs pull, i'm going to amend record 11:25
oh crap
darcs unpull if you did
that was the problem
gaal more in the blind department, what does this mean?
-Test::Tap::Model::Subtest::Visual - A subtest with additional display oriented
+Test::TAP::Model::Subtest::Visual - A subtest with additional display oriented
Pull cancelled. 11:26
nothingmuch Tap -> TAP
it confused search.cpan
gaal aah, right
i think i need a break again, i'm not seeing all those little things :)
nothingmuch i didn't see it for about a week
gaal: how expensive is 24 bits of collision? 11:27
gaal you can test and see
-b i think
you should tune it to your hw 11:28
i think i moved to 26 bits after a while
& 11:30
nothingmuch that's a long time
~10 seconds
gaal aim for 30 secs i think 11:31
nothingmuch why so long?
you're right, in underestimated
gaal email can take some latency usually
nothingmuch true, but are the cpu cycles really worth it?
gaal your call...
i like to know someone spent 30 cpu seconds before bothering me :) 11:32
nothingmuch avg of 25 bits seems good enough for me
gaal & # for real
nothingmuch ciao
now you can all darcs pull 11:33
Aankhen`` ōæ½xABnothingmuchōæ½xBB: Are those supposed to be question marks in the table? 11:36
nothingmuch inside the thingies?
that's UTF-8's &nbsp;
Aankhen`` Inside the cells, yeah.
nothingmuch (in theory)
Aankhen`` Looks like a character from another encoding to me, since the page encoding is showing up as UTF-8. 11:37
nothingmuch hmm
it worked for me all along 11:38
but it looked like trouble
i'll check it out
Aankhen`` Ah, just put the entity instead of the decoded character.
nothingmuch easier said than done
Aankhen`` Why? 11:39
nothingmuch petal attrocity i forgot about
Aankhen`` It won't let you spit out entities as-is?
nothingmuch you can do it, but it's sort of clumsy
Aankhen`` How about &amp;nbsp; in that case? 11:40
nothingmuch but since it's UTF8 it doesn't reencode
then you get &amp;nbsp;
the point is that it decodes the entities from the template
Aankhen`` Ah.
nothingmuch but this somehow broke at some point
Aankhen`` That sucks.
nothingmuch i just noticed xmllint complains about this too
because it used to be ok 11:41
Aankhen`` What is Petal? Templating system? 11:42
nothingmuch yup
Aankhen`` (or petal, as the case may be)
What language?
nothingmuch perl ;-)
Aankhen`` What a coincidence. =) 11:43
nothingmuch search.cpan.org/dist/Petal
Aankhen`` Ohh. 11:45
I've read about TAL.
The concept sounded good. 11:46
nothingmuch blammo 11:51
it is pretty nice
but i think the implementation is not quite good enough
nevertheless I still use it because it's the easiest template for me to maintain
i hfixed the problem
Aankhen`` Yey!
nothingmuch reload nothingmuch.woobling.org/example.html 11:52
Aankhen`` Woo! 11:53
nothingmuch++
nothingmuch now i should release, i think
example.html:107: parser error : Entity 'nbsp' not defined
">&nbsp;</a>
beh
xmllint--
lets see if it passes the validator 11:54
Aankhen`` Heh.
You could s/&nbsp;/&#160;/
It will.
nothingmuch hmm, it can't eat file:// URLs
Aankhen`` (I'm assuming xmllint actually does process it as XML :-) 11:55
nothingmuch it passes htmltidy, so i'm happy enough
it does
Aankhen`` So then it's fine.
nothingmuch i use xmllint to compress things usually
xmllint --noblanks -
Aankhen`` &nbsp; isn't an XML entity, and I'm guessing xmllint doesn't read the DTD.
nothingmuch exactly 11:56
Aankhen`` This page is not Valid XHTML 1.0 Strict!
Below are the results of attempting to parse this document with an SGML parser.
1.
Line 558, column 9: document type does not allow element "tfoot" here
<tfoot>
Surprising as it may seem, you need to put your tfoot right after your thead.
nothingmuch odd, htmltidy eats that OK
all it complains about is missing table summaries
nothingmuch will fix
okay, try again 11:57
Aankhen`` This Page Is Valid XHTML 1.0 Strict! 11:58
nothingmuch huraah
Aankhen`` ^5s nothingmuch!
nothingmuch okay 11:59
both fixes on public repo
got anything you could play with before I make a release?
Aankhen`` ?
nothingmuch could you sort of fool around with it 12:02
Aankhen`` Ah.
nothingmuch see if you have anything else to add?
Aankhen`` One sec.
You could put in summary="91 test cases: 91 ok, 0 failed, 0 todo, 1 skipped and 0 unexpectedly succeeded (100.00% OK)" 12:03
nothingmuch i'll make that into a method methinks
then i'll put summary in the summarry and in the tfoot cell
Aankhen`` Also, chomp the title attributes.
<a href="#" title="ok 1 - Checking MANIFEST integrity
">&#160;</a>
nothingmuch i don't want to put a summary in each table though 12:04
this file grows very fast
Aankhen`` shrugs.
Up to you.
It's just one less thing for htmltidy to complain about, really.
Are there supposed to be line breaks in the footer? 12:05
Or are those just for formatting?
nothingmuch test_cases/50 * length(summary="subests x..x+n"');
actually that's not so bad
that's just what the template does 12:06
err, how the template is written
Aankhen`` Ah. 12:07
<td style="background-color: #00ff00" class="x sum">100.00%</td> # you seem to have a lot of inline CSS there which is inflating the size; how about .sum { background-color: #00ff00; } instead?
nothingmuch because the color is calculated that means about 100 css classes 12:08
for example 75% is slightly orange
60% is redder
Aankhen`` You have a different colour for each grade?
nothingmuch yup
Aankhen`` I see.
You can't only generate the classes which are used? 12:09
nothingmuch much more complicated control flow
Aankhen`` Ah, okay.
nothingmuch it's 25*test files more bytes
Aankhen`` No matter, it's not such a big deal.
You seem to have a lot of <table width="100%"> -- is there a reason why you can't put that in the CSS? 12:10
nothingmuch didn't know that 12:11
i forget where i lifted the HTML
Aankhen`` Hrm.
Actually.
I'm not sure it would work.
You could try it.
nothingmuch want to bundle up HTML fixes into a patch on the template? 12:12
i'm really lousy at that stuff
i don't notice when things go bad
and i can't fix them when i finally do
hola Aankh|Clone 12:14
Aankh|Clone Re.
[17:41:59] <nothingmuch> want to bundle up HTML fixes into a patch on the template?
[17:42:13] <Aankhen``> On the HTML file itself?
[17:43:08] * Disconnected
[17:43:17] * Attempting to rejoin channel #perl6
nothingmuch lib/Test/TAP/HTMLMatrix/template.html
Aankh|Clone Alright. 12:15
Might take some time though.
nothingmuch goody 12:16
Aankh|Clone Should I include the ones I was on about earlier? 12:17
nothingmuch chomp ${ $_ }->{line} and redo for $f->cases; 12:18
you can darcs pull from nothingmuch.woobling.org/
Test-TAP-HTMLMatrix
(just a plain source tree, btw)
and see what's missing
i did the tfoot thing last
Aankh|Clone I don't have darcs.
nothingmuch now i'm working on chomping the summary
okay, just plain downloaad
Aankh|Clone Alright. 12:19
12:21 Aankh|Clone is now known as Aankhen``
nothingmuch okay, table summaries are in place 12:30
i have to work on something else now 12:32
update your copy of the template 12:33
Aankh|Clone ōæ½xABnothingmuchōæ½xBB: Ping. 13:31
nothingmuch pong
btw, if you know HTML, want to help out with the website i'm working on?
Aankh|Clone Er, one sec.
castaway_ Plong.
nothingmuch i have a friend, she's putting together a manic depression/bipolar website
13:31 castaway_ is now known as castaway
nothingmuch to help people start self help groups 13:31
Aankh|Clone Sure, I'd love to help.
nothingmuch so it's a good cause
Aankh|Clone Hrm. 13:32
nothingmuch i'm having a bit of trouble with the right-to-left layout
Aankh|Clone I seem to have lost my Website.
13:32 Aankh|Clone is now known as Aankhen``
nothingmuch oi 13:32
Aankhen`` aankhen.vengefuldeath.com/example.html 13:37
Comments?
Limbic_Region Corion about? 13:38
Juerd Some messages on mailinglists are so useless.
Limbic_Region anyone know why splice.t says FAILED, but it is all green and says 100% passed??? datenzoo.de/pugs/win2k.html
Juerd nothingmuch: self help in what area?
datenzoo.de/pugs/win2k.html 13:39
argh
nothingmuch Juerd: groups of around 8-12 people with one of the diseases
Juerd WHY THE HELL DOES DRAGGING COPY AND PASTE
nothingmuch that organize themselves
Aankhen`` ōæ½xABnothingmuchōæ½xBB: aankhen.vengefuldeath.com/example.html
nothingmuch Aankhen``: i can't really see the diff
could you explain?
Juerd THAT MAKES ABSOLUTELY NO SENSE WITHIN THE SAME TERMINAL WINDOW
Aankhen`` Mostly under the hood.
Firstly, I removed all the commented out CSS.
nothingmuch i mean from reading the source ;-)
okay
Aankhen`` Secondly, I compressed it to one line per selector.
Thirdly, I fiddled around with the links a bit. 13:40
nothingmuch ack!
i exploded it to N lines per selector ;-)
Aankhen`` Heh.
nothingmuch i have trouble reading things which are not blockish when I maintain things
Aankhen`` Lastly, I tweaked the padding a bit on the cells.
nothingmuch ah, i see, so the whole block is a link 13:41
that's good
what did you do to the links?
Aankhen`` Basically, added padding, and pretty hover effects. :-P
Juerd nothingmuch: What kind of diseases? And only diseases, not disorders?
Aankhen`` Making them blocks is something I wanted to do, too...
nothingmuch oi vey
Juerd: manic depression and bipolar disorder
that cyan thing is crazy 13:42
Juerd What is 'manic' depression?
nothingmuch you go up, you go down
from being so happy that you cry
to being totally depressed
in around 3 minutes
sort of like bipolar
i forget the nuances
Limbic_Region Juerd - is that a serious question?
nothingmuch it's at the chemistry level 13:43
Odin- Bipolar Disorder
:p
Juerd Limbic_Region: Yes...
Aankhen`` ōæ½xABnothingmuchōæ½xBB: You no like pretty links? :-P
Juerd nothingmuch: Googling for bipolar disorder tells me that it's the same thing as manic depression
Odin- "manic-depressive" *is* bipolar disorder.
nothingmuch Odin-: caps are good when they tab complete
Aankhen``: i like traditional links best =)
Limbic_Region for all intents and purposes they are the same thing
Aankhen`` Pah.
nothingmuch Odin-: i think not 13:44
Juerd Limbic_Region: I'm (too) familiar with depression, but I didn't know what manic meant.
Odin- nothingmuch: Yes, it is. :)
nothingmuch Odin-: my friends diagnosis changed from one to the other, i think
Odin- nothingmuch: Yes. That's because the terminology changed.
www.behavenet.com/capsules/disorder...cation.htm
Juerd Hurrah for dsmiv classifications.
(blurgh)
Odin- Meh. They're standard. ;)
nothingmuch well, whatever 13:45
Odin- It's like ADD/ADHD.
nothingmuch en.wikipedia.org/wiki/Manic_Depression <-- yields bipolar disorder
Juerd I'm ambivalent about dsmiv (and other standards like this), Odin-
nothingmuch no info about wy it was renamed
Odin- It's the same thing.
nothingmuch was curious
Limbic_Region Odin - there is a clinical distinction between the two
they aren't the same thing
you can have ADD without the hyperactive part
Odin- Juerd: Go figure. So am I. They're standard, nevertheless, and that's what you'll be getting from the shrinks.
Limbic_Region: Yes. But it's still the same thing.
Juerd Odin-: It's good to have a name for something, but at the same time it's very dangerous to put people with slightly different disorders in the same groups...
Limbic_Region isn't sure what Odin- is basing his assertion on, but still believes them to be two distinct things 13:46
Odin- Limbic_Region: I'm basing it on what I've read in the past ten years on a disorder I've been diagnosed with. :> 13:47
So, seriously, you're not likely to convince me otherwise.
:) 13:48
Juerd: Tell you what. I don't really disagree.
jabbot pugs - 2295 - Typo fixes.
Odin- Juerd: But it's still useful. You just have to watch out for the mines.
Sort of like IQ.
Limbic_Region I'm not trying to convince you otherwise
Juerd Odin-: It's useful, indeed. And indeed, I think the same things about IQs.
Though IQs are much less useful because everyone uses a different standard deviation, and it's no longer around a 100 middle point. 13:49
When someone asks me my IQ, I just say it's 2+1/3 SD, and if they don't understand it, I just assume they're less intelligent ;)
Odin- Actually, IQs are most useful not for saying how you stand compared to others, but what strengths and weaknesses you have in the fields measured. :> 13:51
Limbic_Region not knowing much about the subect, aren't IQ tests supposed to give near same results regardless of age/studying and yet it has been repeatedly shown that this isn't the case? 13:52
Odin- Limbic_Region: And, yes. It's possible not to have the 'H' part. But that's considered to be a specific manifestation of ADHD, not a seperate disorder.
Limbic_Region: Uh. No, they aren't.
And thus no wonder it isn't the case.
Aankhen`` ōæ½xABnothingmuchōæ½xBB: Reload the page.
Juerd Hm, according to dsmiv I am depressed.
Limbic_Region Odin- ok, we are saying the same thing but with a difference on a focus
Juerd Funny how I already knew that even without the classification specs :) 13:53
Limbic_Region WRT ADD/ADHD
Odin- Juerd: According to DSM IV I have a whole host of disorders.
nothingmuch why are the blocky? so that you can click on the whole TD?
Odin- Which, frankly, just might be the case. :)
Limbic_Region: Maybe. :)
Aankhen`` Yeah.
Fitt's Law. :-D
Juerd Odin-: Heh. 13:54
Odin-: I have looked at only two, that I suspected before seeing the criteria. (Aspergers and now depression)
Odin- Limbic_Region: ADHD is a headache to deal with. It's chaotic ... in both that it makes people chaotic, and it manifests in very chaotic ways.
nothingmuch so do you want to CI it? you can learn darcs in about 2 minutes
Aankhen`` CI?
Limbic_Region Odin- well, let me put it this way - I agree with what www.behavenet.com/capsules/disorder...cation.htm had to say on the matter - when classifying the disorder you can pick and choose the options that fit the individual A, B, A&B
Aankhen`` Commit?
nothingmuch check in
yup
Juerd I should read more of them, just to find out what disorders I have. Maybe they'll some day be worth cash!)
Aankhen`` Ahh.
Sure.
Where do I get darcs for Win32? 13:55
Odin- Limbic_Region: Okay. Yes. That's what I was referring to. :)
nothingmuch darcs.net <-- links to binaries
Aankhen`` OK.
Limbic_Region Odin- also speaking from personal experience - I believe that "what ADHD is or is like" is a highly subjective experience
Odin- Limbic_Region: Oh, yes. But there seems to be a root cause for many, if not most... 13:56
Aankhen`` Hrm. 13:57
I have to go for now.
Limbic_Region realizes the time and wanders off to wake Jean up
Aankhen`` ōæ½xABnothingmuchōæ½xBB: I'll be back in a couple of hours. Can you wait till then?
Odin- would be 'combined type'
nothingmuch Aankhen``: sure
actually it's better for me
Aankhen`` Alrighty then
.
See you later.
nothingmuch ciao, and thanks!
stevan nothingmuch: ping 14:00
nothingmuch pong
castaway stevan.. 14:14
castaway pings stevan.
stevan castaway 14:22
pong 14:23
castaway hey
Could you copy us OS 9 when you get a chance, please?
(damn mac doesnt want to play) 14:24
stevan castaway: yes I will do that sometime today
castaway Ta!
stevan (not on the right computer right now
should I stop the rsync
theorbtwo Oh?
The rsync is still running?
castaway Isnt it finished?
stevan LOL
20%
theorbtwo That's... odd. 14:25
castaway for the 2nd one ?
stevan it was doing early 90s modem speeds :)
theorbtwo That suggests that the file that was there and the file being transfered weren't more or less the same. 14:32
nothingmuch is so pathetic 15:24
castaway whatup, nm ? 15:25
nothingmuch lost all my graphic apps abilities
castaway eh? 15:26
castaway ruffles nothingmuch 15:27
nothingmuch purrs
castaway wonders what graphic apps abilities are 15:28
nothingmuch the ability to grok how stuff will look pretty 15:29
and actually do it
castaway ohh..
nothingmuch and also do a bit of simple 2-d math
castaway never had any of those ;)
nothingmuch i used to do collages for fun
big PSDs with some kind of message
castaway PSD?
nothingmuch photoshop files
castaway ah 15:30
Corion_ r2295 - datenzoo.de/pugs/win2k.html - still no new failures ... :) 15:33
nothingmuch autrijus is at a family reunion or something
Corion_ Limbic_Region / Juerd: There is one more test (in my local copy of splice.t) than planned, so all tests are successes, but due to the plan it fails. 15:34
castaway cos no new code has been done? ;) 15:35
Corion_ castaway: :))
castaway I got 3 fails from 4506
Corion_ castaway: Where? I get 0 fails ... 15:38
jabbot pugs - 2296 - QoTW regular #24 works!
pugs - 2297 - Added test for explicit scalar context a
castaway Failed Test Stat Wstat Total Fail Failed List of Failed
-------------------------------------------------------------------------------
t/operators/arith.t 177 1 0.56% 158
t/operators/filetest.t 34 2 5.88% 11-12
r2292 15:39
Corion_ Oh. The two filetest tests are skipped on win32
15:39 Corion_ is now known as Corion
Limbic_Region Corion - did you see my comment from earlier? 15:39
Corion Limbic_Region: I even answered to it 15:40
(it was a plan failure)
Limbic_Region must have already been off playing with FF
Corion More tests run than planned results in an overall failure even though all tests succeed
Limbic_Region: I answered it about 5 minutes ago :) 15:41
Limbic_Region thinks he is seeing a significant speed improvement in page rendering with FF 1.0.3 15:42
versus 1.0-Pre that is
Corion Grrr. Skipping tests because of "sporadic failures" is stupid/wrong. If something is "sporadic" in t/operators/filetest.t, you can be pretty sure it's operating system dependent. Like, "-s" is not implemented for Win32 yet. 15:43
Ah - no, it's merely the skip reason that is stupid/nondescript. 15:44
nothingmuch w3 are hypocrites 15:46
so much for usability: www.w3.org/TR/SVG12/
where on that page is the spec itself, anyone?
theorbtwo If you actually read it, you'd realize that it doesn't exist yet; it's a working document. 15:47
Try the "previous version" link, OTOH. 15:48
nothingmuch beh
i've read the first 4 paragraphs and still haven't found the 'this is not written 15:49
bit
but thanks
jabbot pugs - 2298 - Win32 -s and -z now work, thanks to Lemm 16:18
Aankhen`` pokes nothingmuch. 16:26
nothingmuch has a spasm
Aankhen`` Tsk, tsk.
So touchy.
Anyway.
nothingmuch bangs head on table, swallows tounge, starts foaming
Aankhen`` What do I do with this darcs thingie?
nothingmuch 'darcs get repo_url'
repo_url in this case is: nothingmuch.woobling.org/Test-TAP-HTMLMatrix
Aankhen`` And the URL would be?
OK.
nothingmuch then you edit the files 16:27
svn st translates to 'darcs w -ls', which is really 'darcs whatsnew --look-for-adds --summaryy'
jabbot pugs - 2299 - Commented on the fact that Compat.hs now 16:28
nothingmuch and then you say 'darcs record' for whatever changes you want to keep
you name them
and then you darcs send
Aankhen`` Copying patch 7 of 44... 16:29
Corion Hmmm. Should hs-plugins Just work on Win32? I haven't tried it yet, but the documentation doesn't claim anything in either direction ...
Aankhen`` darcs failed: Failed to download URL nothingmuch.woobling.org/Test-TAP-H
TMLMatrix/_darcs/patches/20050423234958-e79bd-9900a4a65dd228be32bb75913f439f0a6a
dd2d09.gz
libcurl: HTTP error (404?)
nothingmuch ooh
Aankhen`` Tried again, it failed again on 7.
nothingmuch one sec, i'll look into it
Aankhen`` Alright. 16:30
nothingmuch try again
16:31 wilx` is now known as wilx
Aankhen`` Got 'em all. 16:31
So, where's example.html? :-P 16:32
nothingmuch it's not there, you have to generate it ;-) 16:33
example.pl is the thing that makes it
Aankhen`` Darn.
Right.
I suppose I need to install the module first? 16:34
Darned prerequisites. 16:36
theorbtwo Corion, last I checked, dons (the primary author) mentioned something about / vs \ paths. 16:37
It's worth a try.
Corion theorbtwo: Yeah ... I'll guess I'll try :)
... but first I'll hunt down some cross platform issues
Yah. r2299 - datenzoo.de/pugs/win2k.html - -s and -z work now on Win32 16:38
autrijus woot. 16:52
greetings, btw.
I'm about to check in a change.
it makes mandel.p6 finish in 55 secs for one round in my machine
it took 250.
(before this change)
I'm smoking now to make sure I didn't break anything 16:53
obra ?!
theorbtwo Impressive.
obra what did you change?
autrijus obra: I changed the symbol table from using an association list (list of pairs)
into Data.Map
that's all
theorbtwo Ah.
obra hah
theorbtwo It's all about the hash, man. 16:54
autrijus right... except for multisubs
obra "mature optimization"
autrijus type Pad = Map Var [IORef VRef]
so I end up settling for this
not sure whether we still need to make optimized the default after this anymore 16:55
it's in as r2300. reverse.t broke 16:59
for some reason
otherwise looks good so far
reverse.t repaired 17:06
hey Corion_. I wonder if on Win32 pugs is also 5x faster for you now :) 17:07
Corion_ autrijus: Hmmm. I'm just running a smoke test - I should notice if it is 5x faster :) 17:08
autrijus Corion_: r230x?
jabbot pugs - 2300 - * New, much much faster implementation t
pugs - 2301 - * repair the "list" context hinter
Corion_ autrijus: What did you change?
autrijus: Just did an svn up
Aankhen`` autrijus, I had a question which you might be able to answer...
Corion_ Will be 2301
autrijus good
Corion_: the Pad data structure is much improved
Aankhen`` [16:42:05] <Aankhen``> The class for strings is Str, right?
autrijus it's now a hash instead of a list.
Aankhen`` [16:42:42] <gaal> y
[16:43:32] <Aankhen``> So could you add this: method Str::foo ($self is rw) { $self ~~ s:p5:/foo/bar/; }
Corion_ autrijus: Ah - so we have faster variable name/value lookups 17:09
autrijus: Build is not broken :) Tests seem to work ;)
autrijus Aankhen``: I don't know... consult S12/A12
I know that
Aankhen`` Alright. 17:10
autrijus class Str { method foo {} }
works
Corion_ And it seems faster, yes. Too bad I'm too lazy to install time(1) here :)
autrijus as does
Corion_: you can run mandelbrot with two pugs.exe :)
also,
multi method foo (Str $self is rw:) { ... }
works
Aankhen`` So class Str { method foo {} } would add foo() to all strings?
Juerd Corion_: time is a bash builtin. bash(1). 17:11
;)
autrijus Aankhen``: something like that.
Aankhen`` Cool.
Thanks. :-)
Corion_ Juerd: Too bad I'm too lazy to install bash. But maybe I shouldn't be :))
autrijus Aankhen``: but I'm talking with p6l hat. in p6c terms it doesn't work right now... only the multi sub works
multi sub foo (Str $self is rw) { .. }
Aankhen`` Ah, okay.
I have to say, it's fascinating to even just idle in this channel. 17:12
autrijus agreed :)
Juerd Aankhen``: Can you explain why?
Aankhen`` ōæ½xABJuerdōæ½xBB: Watching a programming language being implemented is a new experience for me. :-) 17:13
Juerd I see
elmex hm, how far are the networking capabilities of pugs? can i do something like select () and using non-blocking ? 17:18
autrijus elmex: see example/network
http-client.p6 http-server.p6
we are currently having a share-everything model (5005threads)
elmex well, that one bases on async {} didn't it?
hmm
autrijus I think it is larry's wish to make it more like ithreads
and I may throw in STM as well.
atomically {}
elmex i've read that post... indeed 17:19
i don't like threads anyway. i tend to use select () in all of my applications. it's simpler and you can do much with it until you hit some performance barrier...
autrijus: will async { } be there in future too? 17:20
autrijus elmex: I'm pretty sure it will.
async is part of ithreads API.
elmex hm
autrijus: what about coroutines?
autrijus elmex: you can roll coroutines yourself using a simple iterator interface.
i.e. lazy list
elmex oh, iterator interface? uh.. 17:21
(no idea)
but it sounds good ;)
autrijus ;)
if all you want is lazy yield(), you have gather/take.
Corion_ It sure felt faster! 17:22
autrijus Corion_: glad to hear that!
Corion_ Hmmm. Supposedly it took 14 minutes. But I don't have any numbers to compare. D'oh :)
autrijus run mandelbrot? :) 17:23
(provided you have an old pugs.exe to compare against)
Corion_ autrijus: Ah. Hmmm - too late :) 17:25
BTW, I'm moving out all the fixed tests in pugsbugs/ - where should subscripts_and_context.t go? 17:26
jabbot pugs - 2302 - Moved succeeding tests out of t/pugsbugs 17:28
ingy hola 17:30
Aankhen`` pokes nothingmuch.
autrijus Corion_: improvise :)
Corion_ autrijus: Already doing that ;)
Is => supposed to be a hash/pair constructor or is it still the P5 Fat Comma ? 17:31
broquaint Pair constructor.
autrijus it is always a pair constructor.
specifically, it creates a reference to a pair object.
broquaint Although it still stringifies the left handside.
Corion_ Ah. Hmmm. Still it should be mostly usable in the same situations as before, especially in a map block ... { $_ => uc $_ } 17:33
I hate tests that only exist as comments and don't even have an empty skip() or fail() call... :) 17:34
autrijus map { $_ => uc $_; }
map { +($_ => uc $_) }
map { \($_ => uc $_) } 17:35
gaal the yaml harness now records how long the run took. should be a decent benchmark of pugs' speed, per r at least. 17:36
Corion_ %ret = map { $_ => uc $_ }, split "", $text # currently dies. Is that correct?
gaal++
Juerd autrijus: It creates a pair object. That *implies* reference, on the outside.
Corion_ (it's no parsefail but a runtime error later) - I'll commit the changed/updated test again, as t/pugsbugs/map_function_return_values.t - I just wonder, the test name doesn't have much in common anymore with the cause :) 17:37
nothingmuch gets poked
jabbot pugs - 2303 - include timing data in yaml harness run 17:38
pugs - 2304 - Moved one more test, turned one comment
autrijus Juerd: sure 17:39
Corion_: it's I think correct
it amounts to saying
17:39 Corion_ is now known as Corion
autrijus map %hash &func 17:39
er
map %hash, @list
which is undefined.
it should fail with a MMD error
but we'll get to that 17:40
Juerd autrijus: Shouldn't { } in Code context prefer sub interpretation, then?
Likewise, { } in Hash context, prefer hash interpretation.
autrijus Juerd: eh. 17:41
multi sub foo (Code $x) { ... }
multi sub foo (Hash $x) { ... }
foo { 4 => 5 }
obra make smoke now takes 5:27 for me
Juerd autrijus: Then both are possible and old heuristics apply.
autrijus obra: is that an improvement?
Juerd autrijus: But if only one is valid, it makes no sense to interpret it as the invalid thing, and then croak.
autrijus Juerd: problem being the interpretation thing is done at compile time 17:42
Juerd: but the MMD is not resolved until runtime, as you very well know
Juerd autrijus: That's not something I know :)
autrijus Juerd: so the best we can do is to mark that block as some kind of Code|Hash thing
Juerd: oh. ok. :)
Juerd And is map really a multi?
I had always assumed it was a normal sub 17:43
(And method)
autrijus anyway. :)
it's for @larry to decide :)
Juerd Also, is it spelled "multi sub"? I thought "multi".
autrijus it is spelled multi sub. 17:44
because you also get multi methods.
it may or may not be equivalent to the "is multi" trait.
gaal pings nothingmuch
Juerd So we still have elsif crammed together into the extreme, but multi sub as two words. Confusing :) 17:45
SHOCKING NEWS 17:47
"Mac mini" and "Mac Mini" are both used.
The box sais "Mac mini"
says even
autrijus I'm shocked!
autrijus elecrifies
electrifies, even
Corion Galvanize!
theorbtwo Is this confusingly similar to a mini cooper?
If not, why do I care?
For that matter, if so, why do I care? 17:48
Corion Ow. I introduced a failing test - should I make it :todo(1) ?
Or do we accumulate failing tests again, and :todo them before release?
theorbtwo Corion, we're obviously out of preflight, since there was a release yesterday.
autrijus right. 17:49
Corion theorbtwo: Yes, but a 0 bugs build is easier to keep track of, resp. if you introduced new bugs or not
autrijus so make those tests fail.
new tests, I mean
except of course if it is a missing new feature... in that case it's truly todo
broquaint IIRC, which I may not, but in circumstances where { } is potentially ambiguous Code is assumed, and to create a Hash just plonk the "hash" keyword in front of the braces. 17:52
castaway tickles broquaint 17:54
broquaint Hey c, enjoying a fine Sunday afternoon? 17:55
castaway yup thanks
autrijus broquaint: no. currently it's defined to always collapse to a hash
Corion r2304 - datenzoo.de/pugs/win2k.html - 661 seconds on my machine
autrijus if its first toplevel AST is either a pair constuctor
or a list constructor with the first element being a pair constructor.
Corion (and one failure :| ) 17:56
broquaint Ah yes, that makes sense, autrijus. But I wouldn't think those circumstances ambiguous ;)
But then again, I'm not a parser.
autrijus broquaint: no... Juerd is asking for more 17:57
consider
@foo.map({ 1 => 2 })
ah!
Juerd: I know! I know!
Juerd: we just define adverbial blocks to never collapse ;)
i.e.
map { 1 => 2 } @foo # map(Code, Array) 17:58
map { 1 => 2 }, @foo # map(Hash, Array)
makes sense?
I think it does.
autrijus writes p6l
broquaint dev.perl.org/perl6/doc/design/syn/S...tml#___top 18:01
'pparently: "If the closure appears to delimit nothing but a comma-separated list starting with a pair (counting a single pair as a list of one element), the closure will be immediately executed as a hash composer."
gaal Corion incidentally that doesn't count time building pugs, only smoking it. 18:03
Corion gaal: Ah. Hmmm - maybe I should try with "nmake optimized" and then smoking ...
gaal someone with more make-fu than i should give that a look, fer sure. the 'make smoke' target needs to be rewritten. 18:04
Corion I don't use "make smoke", at least not directly :) 18:05
gaal i think the responsibility on smoke has to be either on run-smoke, or on make smoke, but not both.
autrijus map_function_return_values.t 18:11
now works.
* implement the tentative proposal of not collapsing a bare block as a hash reference, if it is in an adverbial, loop body, or comma-omission position. 18:13
r2305
Corion autrijus: Yay! :) Maybe I should simply everytime select one bug to propagate to a real fail() so you then fix it :) 18:16
Hmmm. "make optimized" does not copy/execute the ext/*/Makefile.PL ...
jabbot pugs - 2305 - * implement the tentative proposal of no 18:18
Corion Heh. make optimized smoke now takes 341s :)
err - 371
nothingmuch hola 18:19
Corion hola! 18:20
nothingmuch can anyone explain: www.w3.org/TR/SVG/coords.html#Trans...rixDefined ? 18:21
theorbtwo Brok! 18:22
awwaiid howdy
Corion nothingmuch: What part of it? All (linear) transformations can be expressed as 3x3 matrices
awwaiid thought I'd drop in and see whatsh shakin in perl6 land
nothingmuch hola awwaiid 18:23
awwaiid bonjour
nothingmuch hey, i need an epfarms account for that website
Corion nothingmuch: You get the target point of the original point by multiplying the original point with the matrix
nothingmuch what email to use?
awwaiid [email@hidden.address]
nothingmuch awwaiid++ ; # look! you didn't even hack pugs, and already a positive karm 18:24
a
awwaiid crazyness 18:25
theorbtwo Well, by multiplying a /column/ matrix with [x y 1] by the matrix and getting out a /row/ matrix [x' y' 1] 18:26
jabbot pugs - 2306 - * oops, accidentally inhibited the comma 18:28
Corion Hmmm. What was 2306 for ? 2305 raised no error ... Are we missing some test(s) ? 18:33
How do I see via svn/web which files were changed by a commit? 18:34
Aankhen`` Pugs doesn't work with input from a file? :-S
autrijus Aankhen``: what?
Corion: click on the revision num 18:35
Aankhen`` I have Str.foo.p6 containing say "foobar";
Corion autrijus: D'oh :)
autrijus Corion: I added a test to 2306
Aankhen`` I run pugs Str.foo.p6
And get:
unexpected "\NUL"
expecting operator, postfix conditional, postfix loop, postfix iteration, ";" or
end of input
NonTerm SourcePos "Str.foo.p6" 1 8
autrijus it says you have a \NUL. 18:36
maybe something in your editor?
have you saved it as utf16? ;)
theorbtwo Possibly you saved as utf-16?
Aankhen`` I saved it as a UTF-8 file with Unix line endings.
theorbtwo D'oh.
Aankhen`` Hrm.
Weird.
I think UltraEdit-32 messed up somewhere. 18:37
It works now.
Looks like it was some encoding issue.
autrijus I like older versions of UE better.
theorbtwo Allo, bro.
Aankhen`` Ahh, I'm a sucker for shiny new features. :-P 18:38
broquaint Hey, theorbtwo. How're hs-plugins coming along? 18:40
Corion BTW, where should I look for calling Win32 API functions from Haskell?
theorbtwo eval_haskell is working (for some values of working), and tested. 18:41
I haven't messed with the dynamicly-loaded modules recently.
broquaint Nifty :)
Aankhen`` Does "is rw" work? 18:42
Corion Aankhen``: It says so in one of the commits I think 18:43
... or at least I saw some tests that work now
... in t/pugsbugs/
See t/var/is_rw.t
broquaint Is the best place to look for stuff "to do" in todo_* calls in t/ or is there a TODO lying about? 18:45
Aankhen`` perlbot nopaste
perlbot Paste your code here and #<channel> will be able to view it: sial.org/pbot/<channel>
theorbtwo Working on a pure haskell project at present, to create (graphviz) graphs of haskell module dependences.
autrijus ooh, useful! 18:46
can it walk symbols?
instead of merely plotting import strings
broquaint Is that through introspection or some judicious parsing, theorbtwo? 18:47
Corion broquaint: There is the general roadmap (I don't know where), but I usually look at annoying todos in my smoke output (datenzoo.de/pugs/win2k.html) and fix them.
... but by that way, I won't implement new features. New features I implement when I need them in plain P6 code ;)
theorbtwo It does it by reading the .hi files.
broquaint Cool, thanks, Corion. 18:48
theorbtwo ...using the parser that is part of hs-plugins.
Corion (or rather, I ask about them not existing, write tests for them, and release a botched implementation that somebody else then fixes)
pasteling "Aankhen" at 203.101.1.31 pasted "What am I doing wrong?" (13 lines, 188B) at sial.org/pbot/9619
broquaint Heh, nice :)
Corion Worked for sleep(), async() and sockets :) 18:49
autrijus Corion++
Corion Should I move older tests (like t/syntax/symbol_table.t) to the new Test.pm API ? It doesn't use eval_ok, which it really should IMO :) 18:52
autrijus Aankhen``: huh, it worksforme
Aankhen``: should work for 6.2.1
Aankhen`` o_O
autrijus it says "barbar" here
Aankhen`` Which revision bumped it up to 6.2.1?
theorbtwo I suspect in theory the function-level dependencies are present, but Hi.Parser doesn't parse a fair bit of the file.
broquaint What's the difference between a skipped test and a test TODO? Tests that are skipped were/will be working, and tests todo are stuff to be implemented? 18:53
autrijus skipped tests are either: 18:54
1. hard parsefails
(where you add "fail" before it)
or
2. platform-dependent
Aankhen`` I'm at r2235.
Aankhen`` looks for "is rw" in the log.
Aha.
2253.
No wonder.
autrijus :)
Aankhen`` updates.
broquaint Thanks, autrijus. 18:55
autrijus np :)
Aankhen`` I'm starting to dislike RapidSVN.
broquaint ponders implementing caller() 18:58
Corion broquaint++
broquaint How hard can it be, right? 19:00
nothingmuch isn't that done with magicals now? 19:01
for example &?CALLER::SUB is the &?SUB in your CALLER's scope 19:02
so to invoke your parent, &?CALER::SUB.()
Aankhen`` &?CALLER::SUB.(), even? 19:03
broquaint There are the magical variables, but they really apply to the current sub, whereas you can look up the stack (if you so wish) with caller().
nothingmuch yep, sorry
broquaint: the impl stacks 19:04
Aankhen`` ^_^
broquaint What are "impl" stacks?
nothingmuch the implementation is a stacking one, it stacks
when I hacked pugs a while ago, the way it was done is for every CALLER:: in the namespace, one frame is popped of the stack
stacks is a verb,
broquaint I guess it'll get interesting with tail-call optimisation and the such. But I think that's mentioned in Apoc6, looking now ... 19:05
nothingmuch oh crapxor 19:06
Corion weeds out some more test failures
broquaint I take it (and am hoping) .wrap hasn't been implemented? 19:07
nothingmuch .wrap wasn't
but look at .assuming
or wait, maybe it's different
broquaint Superb.
nothingmuch it is, actually
.wrap does an in place edit, right? 19:08
.assuming was fun because it only generates a closure
Corion Deleting a file via "svn delete" is not harmful for the repository, right?
nothingmuch Corion: you can undo the delete later, i think
Corion nothingmuch: Yep - that's what I want to know, because I found a duplicate test :) 19:09
broquaint More or less, nothingmuch, it points the existing subroutine to the wrapped variant, so in theory you should be able to unwrap it.
Corion hopes the best.
nothingmuch it doesn't destroy history
how does wrapping layer?
say i take a sub and wrap it
and someone else wraps it too 19:10
and i remove my wrapping
is the original sub still wrapped with the last one?
if yes, it gets a bit tricky
because this means we need dual indirection here
or parent links 19:11
so we can make the thing wrapping a removed wrapping point to something else instead
are you looking into doing this?
broquaint I believe it's stacked, nothingmuch, so you'd have to .unwrap the secondary sub to .unwrap your sub.
dev.perl.org/perl6/doc/design/apo/A...tml#___top 19:12
So it's not too clearly defined at this stage.
nothingmuch $subref.unwrap($id); <-- i think this implies it isn't
v 19:13
There is also likely a .wrappers method that represents the list of all the current wrappers of the subroutine. The ordering and manipulation of this list is beyond the scope of this document, but such activity will be necessary for anyone implementing Aspect-Oriented Programming in Perl 6.
broquaint Yeah, so it's not so obvious at this point :) 19:14
autrijus journal up. g'night!
nothingmuch okay, so i think it is a dually linked list
last wrapper is always the one being invoked
cia autrijus
and you can remove arbitrary wrappings from the list 19:15
broquaint Later, autrijus.
nothingmuch if you know their IDs
Corion Can anybody explain to me why t/general/config.t is :todo(1) ? Shouldn't we make that one non-todo to automagically collect the various operation systems?
Corion &
nothingmuch broquaint: if you are planning on implementing .wrap i'll be glad to help 19:17
i've not hacked pugs in a long while and this is a good excuse
(to start)
broquaint Well I'm certainly interested in implementing .wrap and .caller, but firstly I have to remember how to code in Haskell and where to start with pugs ;) 19:18
jabbot pugs - 2307 - s!is(eval !eval_is(!g; s!ok(eval !eval_o
pugs - 2308 - Some more hard parsefails converted to e
pugs - 2309 - NaN calculations work now and the test l
pugs - 2310 - Move tests for eval() into t/builtins/ev
pugs - 2311 - Move junction test to t/junction/
broquaint Heh, nice -- XXX absolutely evil bloody hack for "assuming" 19:19
nothingmuch broquaint: well, when you start ping me, and i promised to be lured away from work for at least some hunks of time
tee hee
broquaint Cool, thanks nothingmuch.
nothingmuch takes the blame for that line 19:20
broquaint Is there much to hacking in functions/methods/multis?
nothingmuch i'm not very up to date on that bit
maybe someone else can help more
but:
MMD: we have that
methods: they are just single MMDs
functions: do you mean builtins? 19:21
what we don't have is classes
or objects
broquaint Yeah, builtins.
nothingmuch coding builtins is a nice way to start
look at all the op1 and op2s in Prim.hs
broquaint I guess caller() is best implemented as a builtin for the time being
nothingmuch anyway, i've got to go 19:22
ciao!
broquaint Later, nothingmuch.
nothingmuch Aankhen``: when I get back will you still be around?
broquaint & # Indiana Jones 19:23
nothingmuch i need massive CSS help
Corion Dr. Jooooones! Dr. Jooooones! 19:55
stevan you throw me the idol, i throw you the whip 19:59
Corion Adios, stupido! 20:00
stevan later finds Corion impaled by circuit boards and retrieves the sacred golden Pug 20:01
Corion stevan: You got the reference wrong :) It is me who finds you impaled. :)
But I lose the golden Pug to some french guy 20:02
stevan Once again Dr. Jones there is nothing you have which I cannot posess
Corion: I was blinded by the new speed of Pugs :P 20:03
Corion stevan: :))
... in the end, will the ghosts we unleash through the tomes of Haskell destroy us all
?
stevan they might get you because you are german, but I'm an american and therefore invincable 20:04
stevan can't wait for his Haskell book to arrive
Corion stevan: But I have a cool coathanger! 20:06
stevan but that scar on your hand is really just creepy
Corion Are there any lvalue-producing builtins yet?
(I'm considering looking at making substr-lvalues work, but I need to cargo-cult the stuff, obviously)
autrijus Corion: proxyScalar is the way to go. 20:09
see Types/Array.hs for sample use.
Corion goes looking
Corion melts like wax in the hot sun 20:11
I guess I should better sleep(28800) now :)
good night :)
autrijus night!
stevan autrijus: I am looking at t/builtin/io/io_in_while_loops.t, and it looks like the reading past the EOF problem is fixed? is that right? 20:14
autrijus hm. splice([], 1) is a fatal error. if someone can add a test for that, I'd be grateful
stevan autrijus: adding
autrijus stevan: I believe so, aye
list context readline() is now strict.
stevan goody, I can resurect the Pod parser I was working on 20:15
autrijus waves &
stevan autrijus: is is supposed to cause the error? or is it a todo test? 20:16
nothingmuch evening 20:38
jabbot pugs - 2312 - Exchange skip() for eval_is() 20:58
stevan hey nothingmuch 21:01
nothingmuch hola stevan
anyone want to help with CSS voodo?
stevan nothingmuch: I can try, but its been a while since I did much CSS 21:02
nothingmuch okay, i'll post a demo thingy
it's in hebrew, but CSS attrocities still apply ;-)
stevan LOL
I warn you, my hebrew is even rustier than my CSS
nothingmuch nothingmuch.woobling.org/kelaa/demo...re.html.he 21:03
Aankhen`` You should lowercase UTF-8.
Surely that isn't so scary? :-S 21:06
nothingmuch i'll do that
Aankhen``: the logo is giving me crap
let me generate a proper png first
Aankhen`` Alright.
I'm not really here though.
On the computer for a little while longer before I go to sleep, but sorta busy. 21:07
nothingmuch okay, any suggestions on what we can do now?
the navigation is hard to do right
Aankhen`` What are you trying to do? 21:08
nothingmuch make it look right ;-)
the nav items should be exploded horizontally 21:09
Aankhen`` Ah.
You want them to expand and fill up the space?
gaal nm, a comment on the content: the visitor is given two names, kela and Byahad, with no explanation about their distinction.
nothingmuch shoshan says: kelaa is a self help group org in general 21:10
and beyahad is specificly for bipolar thingies
gaal am i suposed to know what shoshan is?
who shoshan is? 21:11
nothingmuch shoshan is my friend, whom i'm trying to slap a website together for
she's the brains behind beyahad
gaal why does kelaa need to be mentioned on this page at all?
we can move to /msg if you like. 21:12
nothingmuch gaal: it's the parent org
gaal mention it in the text then. it shouldn't be the page's subtitle. 21:13
nothingmuch it shoudln't 21:15
it will be fixed eventually
but i'm working on presentation, not content ATM
jabbot pugs - 2313 - Added link to t/builtins/substr.t that l 21:18
Aankhen`` G'night. 21:31
21:40 saorge_ is now known as saorge
Juerd autrijus: I can't go into details because I have no better suggestion, but I think disambiguation based on lack of comma sucks. 21:55
autrijus: And I'm starting to wonder why a { ... } can't just be a closure until used in hash context, at which point heuristics come into action 21:56
autrijus: (more than one statement? runtime error) 21:57
nothingmuch Juerd: autrijus is supposed to be sleeping, methinks
Juerd nothingmuch: I guess he reads backlogs.
I'm reacting to something he said 4 hours ago. Works well.
nothingmuch ah 21:58
jabbot pugs - 2314 - adding failing splice test per autrijus
jroc don't all talk at once ;) 23:21