Prelude was borken (worked around now): sial.org/pbot/11497 | pugscode.org/ <Overview Journal Logs> | pugs.kwiki.org | paste: sial.org/pbot/perl6 | Chip needs help!!! www.geeksunite.net
Set by autrijus on 4 July 2005.
clkao ok.. hsould use -pgmc /usr/bin/gcc-3.3 00:09
autrijus allison started journaling, hurray 00:39
use.perl.org/~Allison/journal/25576 # with my comments
clkao apple starts svk, hurray 00:40
autrijus the apple team? not only tlaloc any more?
clkao see #svk
autrijus oh wow. 00:41
next step: ship svk with XCode tools
wolverian is allison he or she? 00:43
wolverian curious
autrijus does it matter? :)
I think she refers to herself as she. 00:44
wolverian yes, since english doesn't have a real gender neutral pronoun to use
autrijus (but then, so does ingy, sometimes)
wolverian ah, right. thanks.
I guess it's all assumption anyway, online :)
clkao Pugs uses Perl.org (i.e. TPF) mailing lists and IRC servers
autrijus offline too, nowadays.
clkao checks and see we are still on freenode 00:45
wolverian autrijus: true enough.
autrijus nowadays a poor black boy can grow to be a rich white woman.
clkao: see my comment
wolverian I actually wish it was easier.
meppl cya autrjius
wolverian (The Culture...)
autrijus meppl: mm?
meppl oh, sorry im drunken, o thougt you want to go away 00:46
because <autrijus> offline too, nowadays.
o=I
jdv79 what are you guys talking about - weird stuff
clkao autrijus: leo is doing branched development, tell him about svk
meppl silly statement :o)
my 00:47
autrijus clkao: I did, and I converted chip, but leo somehow had not. he's in magnet #parrot if you'd like to play missionary
clkao ENOTIME
autrijus neither do I. I need to find food. bbiab & 00:48
svnbot6 r5300, clkao++ | Give -pgmc flag to ghc when CC is set. 01:10
rafl Is there a perl6 specification in EBML or something similar available? 02:10
QtPlatypus rafl: No 02:13
rafl :-/ 02:15
QtPlatypus If you would like you can read the specifications and convert them to that form. 02:21
rafl I surely won't like to do that. :-) 02:22
03:34 cloudnine is now known as mungekruft
gaal morning! 05:18
QtPlatypus Morning 05:19
mugwump evening! 05:24
Or, should I say, Friday night! :D
mugwump runs off to see www.johnbutlertrio.com/ 05:26
imMute still friday for another 25 minutes here 05:35
svnbot6 r5301, mugwump++ | End the horrid ā€œfield `_crypt_struct' has incomplete typeā€ message! Courtesy of Salvador Ortiz Garcia
gaal cool!
06:13 Maddingue__ is now known as Maddingue
svnbot6 r5302, autrijus++ | * add Salvador Ortiz Garcia to AUTHORS for the _crypt_struct fix. 06:13
r5302, autrijus++ | * a silly new retronym of Perl in README. lwall said he like it.
gaal lol # re: polyexirec-\s 06:17
autrijus :)
autrijus runs to lunch
theorbtw1 Oooh, yey, no more _crypt_struct junk! 07:21
svnbot6 r5303, qtplatypus++ | Adding todo checks for "foo".trans() code should follow
r5303, qtplatypus++ | shortly hopefully.
gaal autrijus, can you direct me to an intro text on forall? can't seem to find one. 07:24
what i did find jump straight to rank-2 polymorphism, which i think is one rank above what i want :-) 07:25
QtPlatypus I thought that forall is now spelt for, or are you talking about something else?
gaal Qt, haskell :-)
QtPlatypus Arh
gaal ah! i think this may be useful: haskell.org/ghc/docs/latest/html/us...sions.html (sec. 7.4.1.4 especially) 07:27
but where's a basic explanation of the forall keyword?
nothingmuch morning 08:25
gaal hey nm 08:29
nothingmuch cleanup time now 08:36
Darren_Duncan what a late night it is 08:39
nothingmuch gaal: m ward is ready 08:40
gaal m ward? 08:41
where they keep monad-affected patients?
nothingmuch nothingmuch.woobling.org/mward
no, it's a name
of an artis
whose CD I said I would rip for you 08:42
gaal kewl. :)
nothingmuch i forgot to tell crippple to make it abr 160, so I have no idea what bitrate it is
if it's too low, complain
if not, deal
gaal i doubt my shit ten-buck speakers can tell the difference 08:43
nothingmuch i need to vaccum anyway
ah, perfect =)
gaal i'm off till much later. see y'all. & 08:47
theorbtw1 What sort of music, nm? 08:51
nothingmuch theorbtw1: i think if you take tom waits 08:56
and add a bit of a folkish/country attitude
err, the subset of tom waits that is "normal" ;-) 08:57
theorbtw1: try tracks 2 and 3, then 1... that pretty much covers the whole CD
wolverian damn I hate downloading http directories 09:09
I also hate nosebleeds
wolverian sleeps
nothingmuch oh man! 09:21
perl6 has so many features that are turning out sort of half baked 09:22
theorbtw1 Hmm?
09:22 theorbtw1 is now known as theorbtwo
nothingmuch now MMD is going down the usefulness drain 09:23
theorbtwo Oh.
nothingmuch it's just a generator for big given/when statements
it's order sensitive
which sucks unless you have a proper compiler taking care of that stuff
theorbtwo NM: is C56E 126B C277 6DB7 237C 4A7C 542C 11C0 EBD2 7418 your correct fingerprint? 09:24
nothingmuch it's not hard to define 5-6 simple, logical rules for 'specicifity' of MMD parameter thingies
yes
but that may be just what I'm seeing on my side
it may have nothing to do with what you just typed
DUM DUM DUM!!!!
... and for those 5-6 simple rules have order of definition be a tie breaker 09:25
theorbtwo I'd prefer two simple rules:
1) The one with the shortest PIR wins. 09:26
nothingmuch but have a *REVERSE* order of definition scheme when it's not defined in the same block of code
theorbtwo 2) The one that was defined /latest/ wins.
nothingmuch shortest PIR?
i.e. "looks fastest"?
or 'looks simplest'?
or are you talking about the parameter stuff
theorbtwo Looks simplest. 09:27
nothingmuch hmm... i'm not sure about that
a longer PIR may be a simplified version
theorbtwo So $_ == 5 is presumably simpiler then $_ ~~ 5..10.
nothingmuch because it doesn't call out to many other helpers
oh, of the matching PIR?
theorbtwo Yeah.
nothingmuch not the body 09:28
okay
hmm... that may be unstable when the compiler changes
theorbtwo I meant PIL, not PIR.
Yes, it might.
I'm OK with that.
nothingmuch and you would need tests to make sure your dispatch really works like you meant
theorbtwo Ambiguity there should be rare.
nothingmuch hmm... but there can be weird surprises
remember that lots of "simple" things in perl 6 are complicated concepts with a lot of sugar 09:29
theorbtwo True enough, I suppose.
I think a rule that is somewhat chaotic will encourage people not to rely on it.
nothingmuch i dunno... i'm torn between the elegance of your heuristic. 09:30
(damn . key)
and the fact that it's a bit of a perl 5 ism
(think of the tokenizer adding scores.. that's scary)
plus I think that I would really really like to have reliance on MMD semantics
theorbtwo Oh, for parsing variables vs end-of-string in regexes? 09:31
nothingmuch i would say "for example" 09:32
because i've only heard of this mess, haven't seen it with my own eyes
theorbtwo I don't think it's as messy as you think it is. 09:33
But yeah, it's a bit of a mess when there's ambiguity.
nothingmuch lightstep: hackathon TLV, july 21-23 09:37
gaal's house
are you in?
okay, I have some semantics 09:39
i'll nopase
castaway_ what, who, where? 09:40
hey nm
09:41 castaway_ is now known as castaway
lightstep nothingmuch, (sorry, netvision) 09:42
nothingmuch, i'd love to, but i'm not really fluent in pugs any more. are there some papers to read to catch up?
nothingmuch lightstep: i doubt it 09:44
theorbtwo Try docs/talks/hw2005.{tex,txt}
nothingmuch but come anyway
oh, good suggestion
there is lots of peripheral work too
i think you should be very interested in PIL
castaway nudges nm. 09:45
nothingmuch gets nudged
castaway (ooh, uni-muenchen)
theorbtwo Hint: it's at gaal's house, where does gaal live? 09:46
pasteling "nothingmuch" at 212.143.91.217 pasted "Order of definition tie breaki" (40 lines, 1.5K) at sial.org/pbot/11623
nothingmuch Tel Aviv
i don't exactly know where
eek, i should have provided a summary
the summary is "MMD ordering semantics"
if anyone is grokking the width/height of junctions - please explain in your own words 09:47
i'm not satisfied with my splain
broquaint Is there no "standard" way to do MMD? Or does it vary from language to language?
nothingmuch broquaint: even if there were, perl has too much more to add
junctions
roles
where clauses 09:48
(i forgot them, let me fix)
broquaint But even still, I would've thought there'd be a standard model into which they could be incorporated, or am I hoping too much?
castaway bro! 09:49
theorbtwo quaint!
nothingmuch broquaint: right now they are going with order is everything 09:50
which i think really sucks
so I'm proposing my own
broquaint cast!
orb!
two!
away!
lightstep i heard CLOS also has mmd. what are the advantages of using definition-order over particularity-order?
theorbtwo I think you're misinterpreting, and it's only order-wins within where clauses. 09:51
lightstep: Ease of implementation when you can have arbitrarly complex where clauses.
IE it's easier to not solve the halting problem.
broquaint What do other MMD systems use? 09:52
wolverian inexact booleans? 0.5 true :)
lightstep CLOS looks for the most specific definition - the one with the closer superclasses for all parameters
theorbtwo That's good, when we are talking about subclass/superclass-based MMD. 09:54
broquaint I say we pass the decision off to a quantum calculation and let the universe decide!
theorbtwo But that's only one of the methods of multi-method displatch.
castaway displatch++ 09:55
theorbtwo Broquaint, if you haven't yet been told, Jess has already been snatched up for September, and I'd rather not have a 2-hour commute, so you should probably find other people to fill your empty desks. 09:56
nothingmuch lightstep: particularity is desirable, but hard
swith MI and stuff
i put a proposal in docs/mmd_match_order.txt
which defines some sense of particularity for perl6, which i think is sane
broquaint Ok, theorbtwo :)
nothingmuch svk pushing right now 09:57
wolverian nothingmuch, are you going to mail p6l about it?
nothingmuch wolverian: i'd like some pugs people feedback first
preferably people who tried to write some MMD in their heads
and who like parameter matching
<plug>and whove read Class::Events</plug>
svnbot6 r5304, nothingmuch++ | r5348@syeeda: nothingmuch | 2005-07-08 12:54:53 +0300
r5304, nothingmuch++ | proposal for mmd match order
nothingmuch and who think AOP is scary, and we need some kind of better way to get some of it's benefits 09:58
oops, karma whoring
jabbot nothingmuch: whoring has neutral karma
nothingmuch heh
castaway what, he had empty desks??
nothingmuch i wonderf if there is a way to get svk to not do that... it's very ugly too
(by default)
theorbtwo I don't like the idea of extending it from files to compilation units; I don't like the idea of things changing because you decided to compile more at one bite for better optimization. 09:59
The junction thing seems complicated.
nothingmuch theorbtwo: i don't think that it's an optimization
i was trying to think up a scenario where a single block of source isn't the same file 10:00
theorbtwo Can't we just say that the nonspecificty of a junction is the sum of the nonspecificty of the alternatives of the junction?
nothingmuch and the junction thing is simple
that's exactly it
theorbtwo Oh.
It seems like a very long way of saying it.
castaway bro, which postcode is multimap in?
nothingmuch ((5|6)&(7|8)) is more specific than (5|6|7|8)
because the tree that the first one draws is dee 10:01
p
and the tree that the latter one darws is very shallow and wide
theorbtwo Oh.
I don't see why they should have different specificty.
nothingmuch the first one is not even logical
but it should try first and fail
since it has an & in it 10:02
the more &'s you have, and the more significant they are (higher in the heirarchy) the more "specific" the junction is, IMHO
theorbtwo Oh, now I see why that makes sense.
nothingmuch can you please try to rephrase 10:03
theorbtwo Saying "I'll take 1 or 2" means that you'd accept either of 2 items. Saying "I need something that is both 1 and 2" means that you only have half an alternative.
nothingmuch and commit?
right
and this logic is nesting
since there are parenthesis and junctions containing junctions
okay, i have a better algorithm:
each value in a junction is 1
theorbtwo So the specificty of an or list is the sum of the specificties of it's elements. 10:04
nothingmuch each junction in a junction is it's own score
& is a sum
| is an average
theorbtwo I don't think you want average.
nothingmuch sum / number of elems, no?
theorbtwo 42 has a score of 1; 42|23 should have a score of 1/2, not 1.
nothingmuch right
okay, we need some sort of quantification for nesting 10:05
i'm in a bit of a rush
if you can think up an algorithm please add it
i'll try to think up something, but the house is not getting cleaned
lightstep i have another. weight of a value is 1, | is sum, & is min
nothingmuch min?
theorbtwo I think & wants to be 1/sum.
lightstep minimum 10:06
nothingmuch oh, and low score wins
lightstep so (1|2)&(3|4) weighs 2
nothingmuch okay
lightstep since you only have 2 real options
nothingmuch but arguably (1|2)&(3|4) is more particular than (1|2)&(any(-Inf..Inf)), but that's also 2
theorbtwo (1|2) and (3|4) each weigh 2, so (1|2)&(3|4) would have a weight of 1/4. 10:07
nothingmuch lightstep: you can use screen+irssi with your account on my machine
and my junction causes a divide by zero error at runtime ;-)
err, compile time
anyway, we can find a nice algorithm 10:08
theorbtwo nothingmuch, it doesn't.
nothingmuch i was joking
our algorithm needs to work on anything we throw at it, and it also needs to be very elegant
we'll find one... nevermind
theorbtwo 1|2 has a weight of 2 (again), any(-Inf..Inf) has a weight of 1/Inf, which is +NaN... hm, which isn't much better. 10:09
nothingmuch any(-Inf..Inf) has a weight of Inf
if | is sum
theorbtwo erxz_paste, right, sorry.
Err, right, sorry.
nothingmuch lightstep: did you get my line about screen+irssi? 10:10
theorbtwo The 1/inf doesn't come in until the next step: 1/(2+Inf)
lightstep choosing lower weights is better for this reason. but i think maybe the weight (at least of numbers) should be a range
nothingmuch, no' i'll backlog now
nothingmuch ssh to pasta, type 'screen -U irssi'
then type '/server freenode'
then type '/join perl6'
and every time your connection dies, ssh to pasta again, and type 'screen -U -d -r', it'll be the same irssi 10:11
castaway
.oO( -U ?)
lightstep i have screen&irssi here, too
nothingmuch castaway: unicode
lightstep: but do you have a proper connection? ;-)
wolverian what, your distro doesn't use it by default? :)
castaway Oh, utf8 .. neat
nothingmuch wolverian: maybe it does
wolverian: but OSX doesn't, which is why I use it always 10:12
lightstep nothingmuch, as i said, nietvision
nothingmuch lightstep: right, but running screen on a box in IL won't be too slow
but I do have a reliable connection
i'm also in NV, so the lag shouldn't be noticable
but I have a business line
theorbtwo TĆ«st.
wolverian nothingmuch, hmm, that's odd. isn't it utf8 on the gui level?
theorbtwo Was that an e-umlout for everybody? 10:13
nothingmuch anywho, lightstep, theorbtwo: i do think that a short circuiting junction scoring algo is not good enough
lightstep irssi reconnects anyway
wolverian theorbtwo, here it was
nothingmuch wolverian: screen can fudge it down to ascii/isoxxxx if needed
castaway gui? irssi is console
nothingmuch theorbtwo: i saw the umlaut
theorbtwo Short-circuiting?
OK then.
nothingmuch lightstep: but you don'
wolverian castaway, yes, I was wondering about consistency between console and gui
castaway ah, well mine appears to be supporting it anyway.. (after switching putty over ,)
theorbtwo I don't need a -U when in a utf8 locale on debian.
nothingmuch t get a consistent backlog
lightstep oh, i get it. i'll do that
nothingmuch you should also be able to use feather, but the link to it might be slow 10:14
castaway who uses a gui, these days? :)
nothingmuch anywho, i'm off
castaway: what about those days?
theorbtwo Have fun cleaning house.
castaway :)
castaway whistles innocently
wolverian castaway, hmm. I do, because I haven't been able to config ion3 to my liking. :) 10:15
castaway (green-screens, yeah :9
theorbtwo Ah, good, 1/inf is 0 in Haskell. 10:22
theorbtwo boggles... when was our GPS 38 meters /below/ sea level? 10:24
castaway Ummmmm 10:26
when it was on?
(ok silly question)
figure out where that is, maybe then you'll know ,) 10:27
Im going to guess canada
stuff the coords in google
theorbtwo Northern germany. 10:32
It's old enough that it's lost the time.
lightste1 castaway, you can't know the geographic position based on the latitude
theorbtwo You can't?
I have a latitude/longitude/altitude triple, that should pretty well cover it. 10:33
castaway gimme the url?
theorbtwo maps.google.com/maps?ll=53.34219,10.73369
lightste1 oh, i didn't see the fist two (and i meant altitude)
castaway hmm, that didnt pinpoint much 10:34
theorbtwo Yes it did, you just have to hit + a lot.
N53 20 31.9 E10 44 01.3 -38.3265380859 m altitude
castaway thats in one of the saved trips? 10:35
theorbtwo 16-June-01, the last point given.
castaway June, hmm, wasnt Flensburg then
Must be.. whatsit..
rafl Is operator overloading currently broken? 10:36
osfameron $fh.pos = 10`bytes # cool, is n`units a general purpose thing?
theorbtwo It's meant to be, osfameron. 10:37
osfameron cool 10:38
broquaint What's with the backtick in 10`bytes? 10:39
QtPlatypus The units operator. 10:40
osfameron where is it specced/discussed ?
QtPlatypus In usenet discussions. 10:41
10:43 lightste1 is now known as lightstep
autrijus gaal: "Sexy types in action" or just google for "sexy types" 10:56
nothingmuch autrijus: docs/mmd_match_order.txt 11:05
very short
autrijus lookin' 11:09
nothingmuch: er
Current defined semantics are: matches are tried in order of definition.
this is not true
it's _only_ order of defition for constraint types. 11:10
that is "where" clauses
including value-based MMDs
nothingmuch ugh
what about type distance
this is getting too complicated
autrijus er, no, just two things
nothingmuch i mean unintuitive
autrijus static (type-distance) checks are tried first 11:11
nothingmuch even if sub foo (1) is sub foo (Int where { $_ == 1 }) behind the scenes, it's odd
autrijus with duplicates rejected
dynamic (value-based constraints) are then broken as caseof statements
that's all
nothingmuch could you look at the proposed semantics and see if the make sense
rafl Is someone woring on an XML Parser in perl6? 11:12
nothingmuch rafl: to the best of my knowlege no 11:13
rafl OK. So I think I'll start with that now.
nothingmuch i'd port XML::SAX to perl 6, and hook in a haskell XML parser to make it fast
autrijus: 11:14
?
how far is it from my understanding of current type distance semantics, etc? 11:15
because I have no idea where that is specced
and I still think that order of definition for values is stupid 11:16
autrijus k I'll look at it; I'll be back in a bit
nothingmuch because if you are matching on a range, and on a value, then presumably the value in the range is a special case to simplify/optimize
and you can't add optimization to other people's code, unless you edit it, this way
11:32 Aragone is now known as Arathorn
svnbot6 r5305, nothingmuch++ | r5350@syeeda: nothingmuch | 2005-07-08 14:31:43 +0300 11:32
r5305, nothingmuch++ | explain more about & and depth
nothingmuch crap
shell alias
masak nothingmuch: i don't know if it matters much, but i would think mmd_match_order.txt belongs in docs/notes/ 11:37
castaway kicks self.. the gps data from the canoe trip is gone 11:41
rafl nothingmuch: Where's the code for your XML::SAX port? 12:08
autrijus masak: I moved it to notes/.
I am not sure where docs/SHOT_IN_THE_FOOT belongs. ideas?
docs/misc/? docs/humour/?
if there's no better ideas I'll leave it in docs/ 12:09
castaway we can shoot ourselves in the foot with p6 already? :)
theorbtwo thinks that was implemented back on day 1. 12:11
autrijus castaway: that's the plan according to mugwump
svnbot6 r5306, autrijus++ | * reorganize notes into notes/. not sure what to do with SHOT_IN_THE_FOOT...
castaway laudible goal :)
kolibrie autrijus: welcome back to the land of the living 12:13
castaway he was dead?
kolibrie deep sleep
for days, it seems
Arathorn lying on top of a mountain somewhere, waiting to be rescued by an eagle? O:) 12:14
kolibrie something like that
autrijus yeah :) 12:17
kolibrie: I'm glad to be back :)
kolibrie :)
we're glad to have you, and renewed and all that - white wizard or something 12:18
autrijus I was autrijus the colorless. Now I'm autrijus the chromatic!
er, probably not
Arathorn i think chromatic might have prior art on that one ;) 12:19
autrijus the opaque, perhaps... or the translucent... 12:20
Arathorn waffles off to lunch
nothingmuch rafl: i haven't ported XML::SAX 12:24
it's just what I would have started with given the will to do it
rafl nothingmuch: Oh, sorry. I didn't read careful enough. 12:25
nothingmuch =)
Limbic_Region does that mean chromatic can change colors too? 12:32
salutations all btw 12:33
rafl Is there already a function in a Perl6 module that can give me the name of the directory a given file is in? 13:03
autrijus rafl: splitpath in File::Spec?
Aankhen`` Hiya autrijus. 13:04
rafl autrijus: Right, thanks.
nothingmuch hola robkinyon 13:35
robkinyon heyla, nothingmuch
stevan told me about your crazy P6 plans
:-)
nothingmuch what crazy plans? 13:36
no, that didn't come out right
which crazy plans? I have several =)
robkinyon aren't you involved in the PIL -> P5 effort? 13:37
nothingmuch yep, sort of
i'm thinking in a diff direction now, and not writing code at the moment
robkinyon wow, a hacker who stops and thinks 13:38
next, you're going to tell me that you're writing down a design or something!
svnbot6 r5307, nothingmuch++ | stupid sentance in mmd order notes 13:40
r5308, nothingmuch++ | CHange bullet formatting - it isn't substeps, it's just details of matching
nothingmuch robkinyon: eh... =) 13:45
robkinyon: i think I would like PIL trees to contain combinator objects, and leaf nodes
svnbot6 r5309, nothingmuch++ | I was overzealous with the bullets... Type matching *does* have substeps that
r5309, nothingmuch++ | define the matching of classes, superclasses and roles.
nothingmuch leafnodes know how to stringify
combinators know how to stringify a combination 13:46
without a sort of big case statement for composing a tree - it's just plain old PIL
this puts an emphasis on the polymorphic properties of the PIL structure, and should force us to implement the runtime better
robkinyon you're actually speaking greek to me right now 13:48
i don't know anything about PIL other than it's a silver bullet to P6 parsing
robkinyon has been playing in JSland, not P6land. :-)
nothingmuch jsland... eep 13:49
js was alwayssufferring for me
robkinyon with JSAN, that should change 13:50
www.openjsan.org
nothingmuch i hope =)
robkinyon Once it gets off the ground, it will be pretty amazing
nothingmuch is slowly getting used to his 'svk push --verbatim' alias 13:51
robkinyon: if you want to get into a big bad wad of perl6 i'm nitpicking about: svn.openfoundry.org/pugs/docs/notes..._order.txt
support me on p6l ;-)
wait, it hasn't finished pushing yet 13:52
ok, now it's up
robkinyon is running out of available brainslots 13:56
svnbot6 r5310, nothingmuch++ | Word wrap, and explanation of what is a tie for roles in type matching
nothingmuch parameter coercion also discussed 13:58
svnbot6 r5311, nothingmuch++ | Detailed process of MMD parameter coercion
nothingmuch A 14:02
QtPlatypus watches the Tour and ponders implementing a verion of boids with bikecycles. 14:03
svnbot6 r5312, nothingmuch++ | further discussion of coercion semantics with 'is rw' trait 14:11
14:14 cventers is now known as cventers_ 14:15 cventers_ is now known as cventers
svnbot6 r5313, fglock++ | Set::Functional::Span almost done 14:39
r5314, fglock++ | renamed some classes 14:54
Limbic_Region notes that even with the spaceship parsing bugs fixed there are more to do 14:58
?eval my %hash = map { $_ => 1; } 1..12; %ball{4} = .9; my $res = [+] %hash{1..4} <=> %hash{5..8}; $res 15:03
evalbot6 Error: Undeclared variable: "%ball"
Limbic_Region ?eval my %hash = map { $_ => 1; } 1..12; %hash{4} = .9; my $res = [+] %hash{1..4} <=> %hash{5..8}; $res 15:04
evalbot6 \0
Limbic_Region those two things aren't equal
?eval my %hash = map { $_ => 1; } 1..12; %hash{4} = .9; my $res = ([+] %hash{1..4} <=> [+] %hash{5..8}); $res
evalbot6 \0
Limbic_Region neither are those (helps when you fix the typo) 15:05
actually - it is the pugsbugs.t tests that are wrong - autrijus - you about?
I am trying to figure out if autrijus changed the tests so they would pass for the release or if he disagrees with what the results should be 15:06
grrrr 15:08
Khisanth eh? it's suppose to round automatically? 15:09
Limbic_Region no
I think autrijus misunderstood what the test results should have yielded
since they are still not parsing correctly
the tests were all originally -1 since the ball on the lhs had been made to be light 15:10
when autrijus "fixed" the bug, he changed the test to 0 (equal) - which they shouldn't be
so the bug isn't fixed but the tests pass 15:11
Arathorn ?eval my %hash = map { $_ => 1 } 1..12; %hash{4} = 0.9; my $res = ( ([+] %hash{1..4}) <=> ([+] %hash{5..8}) ); $res
evalbot6 Error: cannot cast from VList [VInt 1,VInt 2,VInt 3,VInt 4,VInt 5,VInt 6,VInt 7,VInt 8,VInt 9,VInt 10,VInt 11,VInt 12] to Pugs.AST.Internals.VCode (VCode) 15:12
Arathorn blinks
so much for that experiment, then
Limbic_Region Arathorn - the ; in the map block is required
Arathorn oh, ok - is that a feature?
Limbic_Region and fwiw - that will work
Arathorn ?eval my %hash = map { $_ => 1; } 1..12; %hash{4} = 0.9; my $res = ( ([+] %hash{1..4}) <=> ([+] %hash{5..8}) ); $res
evalbot6 \-1
Limbic_Region which is the way I have the code running now
see t/pugsbugs/parsing_spaceship.t for other examples of b0rk behavior 15:13
Arathorn there's no way in hell i could wrap my head around the precedence of the [+]s without brackets anyway..
Arathorn looks
Limbic_Region the outter parens aren't necessary btw 15:14
?eval my %hash = map { $_ => 1; } 1..12; %hash{4} = .9; my $res = ([+] %hash{1..4}) <=> ([+] %hash{5..8}); $res
evalbot6 \-1
Limbic_Region I am hesitent to change the tests back since he added another test too which I am not sure how it should behave 15:16
rafl How do I write a static method with perl6?
Arathorn the [0] <=> [1] one? 15:17
Limbic_Region yeah
he wrote the test and had the desired result as being equal
that doesn't seem right to me
if anything, I would think it should be -1 15:18
but if that creates an anon array
and you consider autoderefing
QtPlatypus ?eval [0]
Limbic_Region who knows
evalbot6 [0]
QtPlatypus ?eval [1]
Limbic_Region helpful huh QtPlaytypus
evalbot6 [1]
QtPlatypus ?eval [0]<[1] 15:19
evalbot6 bool::false
QtPlatypus ?eval [0]>[1]
evalbot6 bool::false
Limbic_Region ?eval [0] == [1]
QtPlatypus ?eval [0]==[1]
evalbot6 bool::true
QtPlatypus ?eval +[0]
evalbot6 1
QtPlatypus ?eval +[1]
evalbot6 1
Limbic_Region ok - well it still doesn't make any sense to me
QtPlatypus Ok now it makes sence 15:20
?eval [0,0] <=> [0]
evalbot6 1
QtPlatypus ?eval [0] <=> [0,0]
evalbot6 -1
Khisanth this is comparing the size of the arrays? 15:21
QtPlatypus looks like it 15:22
Limbic_Region right QtPlatypus - I understood why it may work out that way
but that wouldn't have exposed the bug in the first place
IOW - there wasn't an issue when the two sides were equal
so I am confused as to why the test got added (in the state it did anyway)
perhaps autrijus found something else when he was bughunting - will have to wait to ask him 15:23
seen autrijus 15:25
jabbot Limbic_Region: autrijus was seen 2 hours 21 minutes 16 seconds ago
Limbic_Region well - he recently journaled
nothingmuch is an amazing ascii artist 15:30
very patient
tries over and over
the output is not amazing, but the process is ;-)
Limbic_Region nothingmuch - are you the guy who invented a programming language that involved crayons and scribbling? 15:31
Arathorn grins wryly at use.perl.org/comments.pl?sid=27415&cid=41722
nothingmuch nope 15:32
Coke yawns 15:37
nothingmuch thomas posted an interesting link 15:40
svnbot6 r5315, Stevan++ | Perl6::MetaModel - we now have proper SUPER:: calls, no more of that SUPER(method) stuff; changed all the tests to reflect as well; (in case anyone is wondering, look right above AUTOLOAD in Perl6::Object to see how this was done, really very simple actually); 16:04
r5316, fglock++ | Span passes some tests
nothingmuch stevan: ping 16:08
stevan hey 16:13
nothingmuch hola 16:14
stevan nothingmuch: back on your MMD soapbox I see :)
nothingmuch is thinking maybe a simple 'value' is median particularity for the junction case
stevan FWIW, I agree with you (things rea too complex)
nothingmuch ah
but appearantly the cabal is going to simplify some aspects a lot more than I thought
IMHO to the point of uselessness
stevan if I cannot figure out which method MMD will choose, then its not worth it
nothingmuch since value matches in MMD will be boiled down to a given/when, executed in order of definition 16:15
you can figure it out
stevan I am not sure I like the order of defintion thing
but I need to understand it more
nothingmuch docs/notes/mmd_match_order.txt - my proposal
stevan yes I saw
nothingmuch larry's proposal: 16:16
(to the best of my knowlege)
type constraints are chosen using type distance
stevan (that makes sense)
nothingmuch (i hope my 4th step is incorperated, because anything more complex is not easily calculated)
value constraints are taken in their order of definition 16:17
robkinyon so, depending on how classes are loaded, MMD might change?
stevan ok, let me read your proposal again
robkinyon: dont forget about the phase of the moon
nothingmuch and they are simply matches using a big 'given / when' clause
stevan oh and $larry[0]s whim as well :P
nothingmuch robkinyon: yes, but not for type dispatch
which is OK
stevan the given/when thing is not okay IMO
robkinyon anything that depends on order of load is inherently unstable
stevan maybe as the last thing in a type breaker
stevan reads nothingmuch's proposal & 16:18
nothingmuch i think it should be a tie breaker, but I have yet to find tye cases
robkinyon Let me repeat ... "Anything that depends on order of load in any fashion is inherently unstable"
tie breaker or not, it's irrelevant
nothingmuch except for 5 is better than 1..10, which I define as resolved by particularity
robkinyon: i thik I agree 16:19
there aren't enough ties to really matter, and if they are rare, they will be surprises, and should be errors
robkinyon MMD should be able to pick the best case or fail dramatically
as in flashing lights and sirens
either way, i have to go eat lunch. 16:20
robkinyon waves
stevan nothingmuch: in your proposal 16:22
I dont understand steps 1 - 3
nothingmuch sub fun (5) { } is matched by the first step 16:23
stevan ??
nothingmuch sub fun (1 .. 10) { } by the second
stevan WTF is sub foo (5) {}
nothingmuch it defines the action 'foo' on parameters whose value is '5'
sub factorial (1) { 1 }
makes sense?
stevan how is that useful?
oh
nothingmuch brb
stevan uhm
that makes sense, but that makes more sense as : 16:24
multi sub factorial ($num where { $num == 1 }) { 1 }
My "where" syntax is rusty
but thats basically how I see that
you add a guard to it
like in ML or Erlang
fun factorial n = if n=0 then 1 else n * factorial(n-1) 16:26
that is one way to do it in ML
but the better way it to use the guard clause
fun factorial 1 = 1 16:27
| factorial n = n * factorial(n-1) 16:28
my understanding of that is not that the first guard's arg is 1
but that it is sugar to hide some kind of where { $n = 1 } clause
nothingmuch back 16:32
right but if there is a 'where' clause then it's not assured to be specific
and furthermore it's very very hard to optimize
if you define sub factorial ($num where { $num ~~ 1 .. 10 }) { }, sub factorial ($num where { $num == 1 }) { } 16:33
which is more specific?
that is, in a way, indistinguishable from larry's proposal, which I don't like
stevan hmm 16:36
ok
point taken there
I suppose for my purposes (which of course are the most important :P) I want type dispatching to be of the highest priority 16:37
nothingmuch type dispatching is important, but when optimizing for simplicity or speed, you can have both 16:38
and they work together well
that's when values come in
i doubt I will use them a lot
but for when I do want them, this is a lifesaver
dinner time
stevan careful not so set the house on fire again :P 16:39
jabbot seen luqui? 16:40
Limbic_Region seen luqui
jabbot Limbic_Region: luqui was seen 4 days 14 hours 24 minutes 12 seconds ago
stevan thank you Limbic_Region :) 16:41
Limbic_Region walang anuman stevan
stevan Luke is such a slacker :P
Limbic_Region has great admiration for mere mortals that continue to press for design decisions and argue for a specific direction to be chosen 16:45
admittedly I don't know much about language design but I find the whole process way too energy draining
stevan Limbic_Region: that is how I thought on day one of the hackathin 16:46
s/thin/thon/
but by day 3 I suddenly found I had opinions :)
Limbic_Region clear definitive answers are far and few between
stevan Limbic_Region: this is the nature of @Larry 16:47
:)
Limbic_Region and the propensity to lose sight of the original question in favor of some semi-related tangent is just too darn frustrating
stevan Limbic_Region: design by highly chaotic committee :)
Limbic_Region *shrug* - all it means is that there is 1 less worker bee in the mix
I have wanted to help - several times 16:48
stevan Limbic_Region: this is why it was soo good that Larry came to the hackathon
autrijus could corner him :)
the first night was absolutely insane
Limbic_Region stevan - and $larry has never been known to change his mind or misremember
I don't want to sound like I am complaining - I am very much in awe of the design team as well as the pugs team 16:49
it just means that "helping out" is inaccessible to me
stevan Limbic_Region: you are complaining, but about something which more people *should* be complaining about
I think the design docs really need updating
Limbic_Region I will stick to writing p6 code that breaks pugs and commit tests exposing the bugs 16:50
stevan like ****REALLY****
:)
Limbic_Region me too
I thought I had a good reference for stubbing them out
stevan Limbic_Region: I think your advocacy efforts are good too
Limbic_Region turns out that it wasn't
asked for more reference material - and found that it was in the collective @larry's head
stevan eventually it might help turn up the one person crazy enough to sift through months of p6l and update the docs 16:51
Limbic_Region oh - and advocacy - I am fairly effective at that
so when is the next hackathon that autrijus chip and larry will be at again together? 16:52
stevan chip wasnt there 16:53
he couldnt make it, I think something related to the geeksunite.com stuff
ingy hi stevan
stevan hey ingy
Limbic_Region: I am not sure if autrijus is going to OSCON, but that would be the next likely place 16:54
hows tricks ingy?
Limbic_Region OSCON is too soon for me to be able to go, but now that Jean is likely not to have any problems re-entering the country I am able to travel 16:55
ingy pretty good. I'm in St Louis for boojum's bday 16:56
stevan ingy: nice
Limbic_Region: I cant do OSCON either, YAPC::NA exhausted my brownie points with the wife :) 16:57
kolibrie stevan: that's too bad 16:59
Ovid obra: you there? 17:00
obra yes
Ovid I'm working with HTTP::Server::Simple and it's causing a problem with another script when I kill that server: "system $^X, $teardown" fails and returns with "No Child Processes". 17:01
Essentially, I background that server and later kill 9 it, but a test script later on executes an unrelated system call that returns the No Child Processes message. If I get rid of HTTP::Server::Simple, the problem goes away. 17:02
obra "test script later" meaning something running under H::S::S?
you know it forks, right? so you may need to be doing something from the parent, not the forked child. 17:03
Ovid No. HSS is run in one test scripts and then killed in that test script. Later on, a program which calls the test script is getting that error message.
Well, I have a $server->background command and later, in the parent, I issue a kill 9. Is this wrong? 17:04
obra somewhat
Ovid (And thanks for HSS, by the way. Great module)
obra perhaps you want Test::HTTP::Server::Simple to cleanly kill the server ;)
thanks. I'm glad you find it useful
Aankhen`` ?eval sub foo (::class) { ::class.new(10) }; foo(Int) 17:05
evalbot6 Error: unexpected ")" expecting word character, "?", "*", "+", "++" or parameter name
Aankhen`` ?eval sub foo (Any ::class) { ::class.new(10) }; foo(Int)
evalbot6 Error: No compatible subroutine found: "&new"
Aankhen`` ?eval sub foo (Any ::class) { ::class }; foo(Int)
evalbot6 ::class
Aankhen`` ?eval sub foo (Any ::class) { ::class.ref }; foo(Int) 17:06
Limbic_Region kill 9 is almost never the right thing to do
evalbot6 ::Type
Aankhen`` ?eval my %foo = (a => "b", c => "d"); gather { take ($k, $v) for %foo.kv -> $k, $kv; } 17:07
evalbot6 Error: unexpected ">" expecting operator, ";" or "}"
Aankhen`` ?eval my %foo = (a => "b", c => "d"); ($k, $v) for %foo.kv -> $k, $v
evalbot6 Error: unexpected ">" or "-" expecting operator, ";" or end of input
Ovid Thanks for the help, obra. I'll try that module. 17:08
Limbic_Region: kill 9 seemed wrong, but that's what is being done in the tests for HTTP::Server::Simple. I just used those as my guide.
nothingmuch announce his return frm doing the dishes 17:11
stevan: ping 17:12
chip seen autrijus
jabbot chip: autrijus was seen 4 hours 8 minutes 31 seconds ago
svnbot6 r5317, Aankhen++ | HTTP::Headers:
r5317, Aankhen++ | * made &BUILD a submethod.
r5317, Aankhen++ | * added &redirect (class method) as equivalent for &CGI::redirect.
Aankhen`` WB nothing_pasta.
Er, nothingmuch.
chip Anybody know offhand the way you're supposed to specify the difference between named parameters and pairs to be passed into e.g. a slurpy array?
Aankhen`` foo(a => "b", c => "d"); # named parameters 17:13
foo(slurpy_array => (a => "b", c => "d")); # slurpy array
Or, better:
foo() <== (a => "b", c => "d"); 17:14
chip OK, thanks, but consider the case when the declaration of foo is not in scope
Is the latter syntax guaranteed to work anyway?
And given sub foo($a,$b,$c) is it even legal to say foo(c=>3, 1) ? If so, what does it mean? 17:15
nothingmuch chip: that assumes the parameter name slurpy_array, e.g. sub foo (*@slurpy_array)
Aankhen`` I'm lagging, so I'm not sure which one you mean by "the latter". The <== form?
nothingmuch i'm not sure 17:16
Aankhen`` chip >> foo(c=>3, 1) is not legal.
nothingmuch maybe the pair is flattenned
Ovid Test::HTTP::Server::Simple doesn't play well with Test::Class :(
chip Aankhen``: yes, the <== form. I assume it has to work even if sub foo isn't declared yet
nothingmuch no, it probably isn't
Aankhen`` You have to specify parameters in this order: required parameters, optional parameters, and then named parameters.
obra Ovid: how so?
nothingmuch oh, <== is basically 'stuff these into the first slurpy thing'
or maybe the only slurpy thing
chip That implies that there is some way to name "the first slurpy thing" in the calling convention whether or not the declaration of &foo is available. Probably not my (Parrot's) problem though. 17:17
Aankhen`` S06: "The variadic array of a subroutine call can be passed in separately from the normal argument list, by using either of the "pipe" operators: <== or ==>."
Ovid It works with started_ok, but that has to go into the Test(startup) method, but that method is not allowed to have tests. This causes the test script to fail even though all tests pass.
chip Aankhen``: thanks
svnbot6 r5318, Aankhen++ | * made HTTP::Request compile.
Aankhen`` No prob.
Ovid Test(startup) is called only once at runtime.
theorbtwo Anybody with a paid LJ account? livejournal.com/syn/, fill in use.perl.org/~leo/journal/rss/ in the form at the bottom.
obra patches appreciated
Aankhen`` Hmm, strange... could anyone try tracking down the parsing bug in ext/libwww-perl/lib/HTTP/Response.pm? 17:18
Ovid obra: I don't know much about signals, hence my problem. I'll keep digging, though.
Aankhen`` Err. 17:19
Cancel that order!
stevan nothingmuch: pong 17:20
nothingmuch hey stevan 17:21
Aankhen`` Line 58 of HTTP::Status is a really nice replacement for concatenating strings of code and eval()ing them, IMHO.
nothingmuch want to continue our discussion?
stevan nothingmuch: sure
Aankhen`` (that, of course, assumes it will work as expected :-P)
stevan nothingmuch: even better, how about we prototype stuff in the metamodel? 17:22
nothingmuch that was what I was trying to make you do =)
stevan the ::Method classes could use some work
nothingmuch specifically the type based multimethod
stevan nothingmuch: uhm
nothingmuch i'll implement code signatures
stevan nothingmuch: okay, we can do that
nothingmuch: why don't you sketch out the signature part first 17:25
I need to see what you are thinking
nothingmuch okay
did you grok step 4?
stevan yes
how/when do you want to measure type distance? 17:26
in other words, should I add something to the metamodel?
or the ::MetaClass to be exact
nothingmuch this is easy
stevan I know
nothingmuch you just don't allow MI
stevan but who's responsibility is it 17:27
nothingmuch and type distance is the number of ISAs you traverse to get to the thing
stevan you can still do it with MI
nothingmuch uh, maybe the metamodel can have a 'link' method
you can do that with MI
but if you have a shortname
let's look at this:
svnbot6 r5319, Aankhen++ | * HTTP::Response should `require` URI instead of `use`ing it.
nothingmuch method bark (Animal) { print "moo" }
method bark (Dog) { print "moo" }
that's OK, Dog is a specification
but let's say you have a Chiadog 17:28
which also inherits Tree
chip . o O ( not "multi method"? )
nothingmuch method bark (Tree)
Aankhen`` ?eval class Foo { method bar () { ./baz(); } method baz () { "&baz was called"; } }; Foo.new.bar
evalbot6 '&baz was called'
nothingmuch i don't write multi method as a political statement ;-)
stevan :D
nothingmuch anyway, if there was no 'bark' on 'Dog', only 'Tree' and 'Animal' 17:29
Aankhen`` ?eval class Foo { method bar () { .baz(); } method baz () { "&baz was called"; } }; Foo.new.bar
evalbot6 '&baz was called'
Ovid obra: Test::HTTP::Server::Simple can work with Test::Class. My bad. Doesn't solve the problem, but at least it's cleaner than what I had.
nothingmuch or in that sense, there were any two superclasses, from separate lineages, competing for an argument
then this is an error
if it can be detected by the compiler pre-resolving things, that's also good
stevan ok 17:30
so $chiadog.bark() would likely hit Tree::bark() because it is a shorter distance
nothingmuch type inferrence might make such errors/warnings possible
and you could also just check MMD sigs against all compiled classes at the end of compilation, and generate warnings for things like that
no, it's an error
stevan no i understand that 17:31
but if it wasnt an error, that would happen
nothingmuch oh
uh, i don't know
the lineage might be Tree -> SmallTree -> HousePlant -> ChiaPet -> ChiaDog
and Animal -> Dog -> ChiaDog
i usually won't remember writing code, which is why i want it to be an error =) 17:32
stevan ok
I dont think that should be an error 17:33
svnbot6 r5320, Aankhen++ | * HTTP::Message: replace `.foo` with `./foo` where appropriate.
stevan what is wrong with the distance thing?
nothingmuch stevan: distance tends to be dangerous 17:34
in the sense that you shouldn't really care about anything but the things you explicitly put in your ISA
if someone refactored ChiaPet
and made the SmallTree and HousePlant classes, suddenly Tree is much farther 17:35
why should ChiaDog's code know?
if you explicitly resolve this (by adding something to the call, like bark(Tree<$chia_dog>) or something
then it's not an issue
stevan ok 17:36
point taken
($chiadog as Tree).bark()
($chiadog as Dog).bark() 17:37
nothingmuch .as is something else... i thought about it for a second, but then remembered =) 17:38
stevan yes I know
svnbot6 r5321, Aankhen++ | HTTP::Request:
r5321, Aankhen++ | * replaced `.foo` with `./foo` where appropriate.
r5321, Aankhen++ | * used `given ($self)` properly.
r5322, Aankhen++ | * HTTP::Request: use `../foo` where appropriate.
stevan has to start karma whoring more with his commit messages :)
nothingmuch use svk push --verbatim 17:39
stevan karma Stevan
jabbot stevan: Stevan has karma of 46
nothingmuch jabbot punnished me for that today ;-)
stevan karma stevan
jabbot stevan: stevan has karma of 46
nothingmuch karma nothingmuch
jabbot nothingmuch: nothingmuch has karma of 76
nothingmuch that i don't understand.. i haven't committed in ages
stevan perlbot karma stevan
perlbot Karma for stevan: 174
stevan perlbot karma Stevan
perlbot Karma for Stevan: 174
stevan ok, so it's case insensitive, cool :)
nothingmuch perlbot karma nothingmuch 17:40
perlbot Karma for nothingmuch: 129
nothingmuch ah, that is more to scale
albeit disappointing ;-)
Limbic_Region perlbot karma for Limbic_Region 17:42
perlbot Karma for Limbic_Region: 44
Limbic_Region so much for trying to keep my karma neutral
svnbot6 r5323, Aankhen++ | HTTP::Response: 17:43
r5323, Aankhen++ | * replaced `.foo` with `./foo` where appropriate.
r5323, Aankhen++ | * replaced `.SUPER::foo` with `../foo` where appropriate.
r5323, Aankhen++ | * fixed erroneous `if` condition.
nothingmuch Limbic_Region-- # because you're such a nice guy 17:44
Limbic_Region thanks nothingmuch 17:45
I have decided to stop waiting for autrijus and just modify the spaceship parsing bug tests to re-expose the bug
Limbic_Region hopes it was just an oversight on autrijus' part
Aankhen`` Whew... that was tedious. 17:47
svnbot6 r5324, Limbic_Region++ | Parsing spaceship operator is still broke so modified tests to reflect 17:48
r5325, Aankhen++ | HTTP::Headers:
r5325, Aankhen++ | * replaced `.foo` with `./foo` where appropriate.
r5325, Aankhen++ | * fixed &coerce:<as>.
Aankhen`` WB Mr. much. 17:49
nothingmuch hola Aankhen``
Aankhen`` What's shakin'?
nothingmuch is trying to make irssi settings stick
Aankhen`` Ah.
nothingmuch not much
nothingmuch is fussing over MMD in p6l
aside from that just slacking 17:50
Aankhen`` I noticed. :-)
nothingmuch++ # for trying to make sure MMD is done The Right Way (tm) ;-)
nothingmuch is it the right way?
Aankhen`` I dunno, but apparently you seem to care enough. :-)
nothingmuch sometimes I think I may be fussing too much over things I shouldn't fuss over
that is, I care a lot
but others don't seem to 17:51
they don't make arguments against it, but they don't say 'yes' either
brb
woo! it's working
Aankhen`` Well, I personally have the feeling that I fuss too much over most things. 17:52
(such as grammar)
But the way I see it, someone has to care. It might as well be me, since I am interested. :-)
nothingmuch =) 17:57
masak nothingmuch++ # for caring and fussing 18:13
nothingmuch masak, Aankhen``: thanks... Help me by making a slightly bigger fuss on p6l? 18:14
stevan masak++ # for encouraging him :P
*cough* warnocked *cough*
Aankhen`` nothingmuch >> I am wary of posting since I am not very knowledgeable about the subject.
stevan Aankhen``: just say "Yeah, what he said" :) 18:15
Aankhen`` Heh.
Shall I just +1 it?
nothingmuch well, if you sound like an idiot, but make a big issue of the subject
and I sound OK
then we have both an opionion, and an issue
=D
Aankhen`` Heh.
Which thread of discussion should I kick up a fuss in? 18:16
masak i'm not really aware of what fuss you're talking about :)
nothingmuch Hackathon notes
masak is it about mmd?
Aankhen`` The "Hackathon Notes" one?
OK.
nothingmuch masak: MMD semantics
yes and yes ;-)
masak :)
explain to me what's important
masak is just seeing fuss 18:17
Aankhen`` I'm just saying +1.
nothingmuch masak: we won't get any particularity semantics for anything but types 18:18
masak for example...?
nothingmuch that is 'sub foo (1 .. 10) {... }; sub foo (5) { die "i'm never called" }' 18:19
stevan nothingmuch: you could put your shekels where you mouth is, and implement it in the metamodel :P
nothingmuch since 1..10 is tried before 5, even though it isn't as particular
stevan: will do, i'm fussing with irssi ATM.
stevan nothingmuch: excuses, excuses
masak :) 18:20
nothingmuch yeah, but at least it's an honest excuse ;-)
masak nothingmuch: most languages i know go by declaration order
that seems to be the easy way out
stevan masak: there is also static code analysis
but Perl wont do that
nothingmuch masak: declaration order sort of sucks, because you can't append a method that deals with a special case 18:21
you have to prepend it
which means you need access to the original code
which might not be there, since we're going to have real compilation
stevan or in C++ where they just change the function names
nothingmuch look at Class::Events 18:22
it's my canonical example
masak nothingmuch: you have a point there
nothingmuch you bundle up code in a module
it contains two classes - a subscription class, and a notification class
the rest is handled by the generic code
however, it's silly to filter a list of subscription for named events
so the name package adds an MMD get_subscriptions to the Publisher role
masak nothingmuch: but i think you need to make your solution as intuitive as possible, to show the advantages clearly 18:23
nothingmuch which uses a hash insstead
that example shows how the generic solution is unhindered by the extending code
how the extending code can benefit from generic code that it doesn't change
masak ah, ok
nothingmuch and how everything can stay clean and very very simple
but not inefficient
it's about 200 lines altogether, with lots of whitespace
masak there's some pattern matching in there somewhere, isn't there? 18:24
at least you need to determine the relative specificity of expressions
nothingmuch masak: type distance only, in Class::Events 18:25
masak what's type distance?
nothingmuch but this is useful also with values
ChiaDog is Dog is Animal
ChiaDog is Tree 18:26
masak and in case of a tie?
nothingmuch sub bark (Dog $dog) { }
err, method
method bark (Animal $dog){ print "moof" } 18:27
sorry, , phone 18:29
masak: basically it means that 'Dog' is more particular than 'Animal' in the case
so $chiadog.bark() will use 'bark (Dog)'
we have this this with types 18:30
but we won't have it with values, unless we fuss
masak what happens if no supertype is closer than the other(s)? 18:31
masak guesses that other precedence rules kick in 18:32
nothingmuch that's what I'm trying to define 18:33
basically we have 'uh, definition order counts'
and 'type distance should solve that'
that's it
masak :)
gotta go
nothingmuch ciao
masak nothingmuch: good luck with mmd
cwest seen autrijus? 18:35
jabbot cwest: autrijus was seen 5 hours 31 minutes 36 seconds ago
cwest nothingmuch: Do you have bandwidth/space to host a JSAN mirror?
nothing_pasta yes 18:36
for starters at least
cwest Right.
nothing_pasta 278 kilobits out
space is not an issue
and leeching is not a problem
cwest cool.
I need to get some global mirroring going.
No multiplex yet.
Let me get some docs on the site and I'll point you to them.
This will be today. 18:37
Bottom line is 1) rsync 2) static website 3) needs to run from /
so host.domain.com or something.
nothingmuch okay
login? 18:38
cwest nah
nothingmuch jsan.woobling.org
cwest Yeah, that'd be great.
I'll update you soon.
/usr/local/bin/rsync -avz rsync://openjsan.org/jsan /usr/local/apache/jsan 18:41
nothingmuch: That's it if you just want to start.
I'd keep it at 6/12 hour intervals, changes are made a coulpe times a day.
nothingmuch rsync is cheap
6?
cwest yeah, that's cool. 18:43
I may change the explicit host to be master.openjsan.org, we'll see.
Also, run with --delete and you won't keep cruft.
nothingmuch it's pretty small 18:44
want more frequent intervals?
cwest If you want to go with 1h I'm cool. 18:46
I'm going to change the official host to be master.openjsan.org, I'll let you know when that happens.
nothingmuch make it a mirror at the moment? 18:47
jsan.woobling.org is up 18:49
cwest nice 18:50
nothingmuch++
nothingmuch does it need any directly listing options? 18:52
cwest I prefer indexes on dist/
that's it
nothingmuch okay
cwest also, if you got a src/ dir, please run again with --delete.
I don't want to destribute that yet.
nothingmuch i did that now
cwest *nod* 18:53
nothingmuch i was surprised at the deletes
cwest heh
yeah.
nothingmuch ok, rsync from cron is working
making it hourly
cwest there's some XSI problems with a 'browse dist' when javascript is involved.
You rock.
nothingmuch forgets his apache-config-fu every time 18:55
okay, indexes enabled just on /dist/ 18:57
cwest you rock.
nothingmuch i hope I can resist the surge of babes 18:58
are mirror hosters popular?
cwest heh 18:59
Not usually, if you mean traffic wise.
nothingmuch no, i mean babe wise 19:00
;-
cwest But if /. hits this DNS is going to CNAME all my mirror's asses in a flash.
nothingmuch )
cwest Oh.
Well, beats me. :-)
nothingmuch hah
i can take it, i have mod_deflate ;-)
cwest I'm married so I solved that problem already.
nothingmuch and traffic shaping too
cwest Cool.
I should do some of that for the main site. 19:01
nothingmuch yeah, limits HTTP so I still have 2k left for TCP acks
wondershaper
tis tres easy
cwest jots that down
nothingmuch crap, i just realized you can't have umlauts if option is the meta key
how do you run a js test suite?
prove launches mozilla?
cwest bah, freebsd is my king, probably won't work
nothingmuch i wrote a trafic shaper for bsd fw 19:02
cwest send it to me :-)
nothingmuch one sec
it's in perl, so you probably don't want to give it more than 100KBps ;-)
cwest [email@hidden.address]
heh. I don't have that to spare so I think I'm safe. 19:03
nothingmuch perlmonks.org/?node_id=296660
cwest oh, even better
nothingmuch oh crap, it's on code craft, so documentation is deliberately omitted ;-) 19:04
cwest no worries. Could you change the rsync host to master.openjsan.org? 19:06
nothingmuch cwest: ask Juerd to host you a mirror too
yep
cwest Where's he?
nothingmuch seen Juerd
jabbot nothingmuch: Juerd was seen 2 days 22 hours 58 minutes 23 seconds ago
cwest Oh, I meant physically :-) 19:07
nothingmuch netherlands
also ask pair.com, they are generous when it comes to donating boxes/bw
cwest I am pair.com.
nothingmuch and playboy.com - they host a cpan mirror, and I bet their websites have "active" content 19:08
cwest They may be giving me a server for the master site. (My employer, they)
nothingmuch ah
so why do you need mirrors?!
cwest Because their hosting is too expensive for me. ;-)
nothingmuch hah
cwest And because when /. overloads a server they just firewall the site off the intarweb.
nothingmuch it's supposed to be free when you have both connections and a cause
cwest I'd rather make dns adjustments to my mirrors, if/when that happens.
nothingmuch okay
fair enough
cwest I hate the /. effect when it's "Hey look at that cool thing. Oh, I killed it. Pity." 19:09
nothingmuch ping awwaiid, he has a non-profit (that is, you pay for the costs) hosting company
epfarms
cwest *nod* 19:10
I've got friends at a local isp, they gave me colo space.
So I'm good for now.
I may be good for all time.
But I want the mirrors for when people start building installers like cpanp and such.
Because eventually that'll happen.
nothingmuch does the installer have to be written in JS? 19:11
cwest your rsync from master. might fail.
dns was just set up.
nothingmuch because if not, stevan and I made Verby for writing installers
cwest it doesn't have to be :-)
nothingmuch minutely crontab mails me result of -avz, we'll see when it starts working
cwest The way I see it, an installer just reads META.yml for deps and puts lib/* into the PREFIX you choose.
I'll probably write one for myself not too long from now.
nothingmuch so write it with Verby 19:12
=D
you have to look at it, or i'm taking jsan.woobling.org down randomly
cwest hee
show me 19:13
and also I'm hoping autrijus shows up so I can get some east asian goodness from him.
nothingmuch ask ingy who whosts tpe.freepan.org 19:14
cwest *nod*
ingy hola 19:16
cwest heya
ingy what is up?
cwest nslookup master.openjsan.org
well anyway
nothingmuch nslookup is depracated
cwest ingy: want to host a JSAN mirror?
ingy cwest: sounds cool 19:17
cwest as soon as dns propigates, /usr/local/bin/rsync -avz --delete rsync://master.openjsan.org/jsan /usr/local/apache/jsan
ingy need to talk to my peeps on #freepan
cwest Should I do that?
ingy no
cwest okay
well it's easy, rsync once every (1|6|12|24) hours. It needs a vhost, and as I think I said it's all static. 19:18
no? well it's all static.
dns is on its way round the world, so when everything updates you can get from master.openjsan.or 19:19
s/or/org/
(sorry for messing up #perl6 with all this JS junk :-)
however, I must say, the rapid development of pugs was inspiring to me for this project 19:20
obra cwest: are you signing md5hashes of all the dists? 19:27
cwest no, maybe I should be 19:29
since we now have mirrors.
nothingmuch right =) 19:30
obra also, we should talk about bug tracking
nothingmuch obra++
cwest Yeah, I was going to set up RT but I'd like to do the per-dist RT thing, in a recent version.
robkinyon obra: we need to talk about install procedures, first
nothingmuch obra: do you set up rt sites like, for people, for free? ;-)
people like me, for example?
fglock how to test if 2 objects belong to the same class? 19:31
cwest irc.perl.org/#jsan for further jsan stuff mkay?
obra nothingmuch: for what project? ;) 19:33
I have an intern who's about to start working on the new rt.cpan.
Limbic_Region fglock - ref ? 19:34
obra cwest: so, it'll be a matter of writing another import tool, I hope
fglock i tried $a.isa( $b.meta ) but it complains
Limbic_Region well - as in p5, I am not sure ref is the best way, but it should work in the majority of cases
fglock thanks 19:35
Limbic_Region walang anuman 19:36
fglock although it may break on inheritance
Limbic_Region I am sure there will be a better way if there isn't already
cwest obra: cool 19:37
Limbic_Region really isn't up to speed on p6 OO and introspection
gaal hi all 19:39
Limbic_Region salutations gaal 19:40
gaal hey l~r
Limbic_Region out of curiosity - should tests for unimplemented features like t/builtins/strings/trans.t be eval'd or todo'd or something? 19:43
gaal :todo<feature>
and sure, maybe eval_is too, if they don't parse
see t/README
Limbic_Region they are marked todo 19:44
hmmm
svnbot6 r5326, luqui++ | Added a few more notes.
nothingmuch obra: mostly for a personal TODO list + my projects
for 50% of my project there's rt.cpan.org, but I don't use it that often 19:45
i need it on my localhost
but I also want it as a wiki
obra what do you need out of it on localhost?
and what about the wikiness do you want?
nothingmuch so there's no authentication or processes, and that's where rt doesn't fit in the picture
obra _no_ auth?
nothingmuch because I want it fast and disconnected
obra but also possibly visible to others? 19:46
nothingmuch basically every bug, event, whatever is a wiki page
completely open
obra you're daring
nothingmuch (in my scenario, there's just no auth, because it's just me)
obra *nod*
nothingmuch wiki pages have some keywords
if you have an
'event <<some_date>>' in the page
it shows up on the calendar
obra you've looked at backpack?
nothingmuch if it's title contains 'BUG:' it's an issue
if the first or last word is 'closed', it doesn't show up on the pending list 19:47
if it has unidiffs attached it shows up eralier ;-)
what's backpack?
obra backpackit.com
I don't think you want that much dwimmyness
nothingmuch if it looks like a TODO i have an interface to check it off
obra it leads to things being a little hard to use. 19:48
nothingmuch right, that's the problem
it's the kind of software you write for yourself
and I won't get around to it ;-)
gaal nothingmuch: you know, your MMD concerns would make a great Israel.pm talk if you want to give one sometime.
nothingmuch hmm... i don't see how 19:49
gaal present a problem
show approaches
explain why yours wins :)
nothingmuch hah
stevan fglock: $a.isa( $b.meta ) wont work, since .meta will return the metaclass, and not hte class name
gaal is hoping to finally understand it :-)
nothingmuch considers 19:50
stevan fglock: $a.isa( $b.ref ) should work for now
fglock: $a.isa( $b.ref ) || $b.isa( $a.ref ) if you want to check "both ways"
nothingmuch obra: baackpackit looks almost like what I want 19:51
obra *nod*
stevan gaal: it will likely be easier to understand when nothingmuch is finished with implementing it in the prototype metamodel
obra nothingmuch: it may be worth trying it a bit
stevan right nothingmuch ?? *hint* *hint*
gaal wait, nothingmuch said moosish on p6-l. i think i'll undersatand everything from now on.
nothingmuch stevan: uh, yes 19:52
gaal++
gaal moose++
nothingmuch i didn't even notice i did that
your brainwash is amazing
obra: i need everything in one big system
like 'call foo' becoming my front page when I put it in, and i haven't ticked it off for 3 days
because the 'call name' pattern does that
for example
it's basically my life, but in a wiki 19:53
obra nothingmuch: makes plenty of sense
I want it too
nothingmuch let's get ingy to write it 19:54
awwaiid promised me he'll do something like that
and he did, to some extent
but only for issue tracking
nothingmuch tries backpack 19:55
obra what is it for issue tracking? 19:56
nothingmuch he hacked up oddmuse wiki
it basically has the issue aggregation stuff, with state keeping
Limbic_Region out of curiosity - is anyone using "state" declared variables - at all? 19:58
nothingmuch hasn't used it yet 19:59
i keep forgetting it existrs
Limbic_Region in thinking about the problem of cache variables in p5 - I think it would be a nice improvement 20:00
nothingmuch obra: backpack doesn't have one thing: automatic aggregation of pages into meaningful data
obra nothingmuch: correct
Limbic_Region you have a cache that belongs to a particular sub - you don't have to pass it in each time, or declare package level variable, or weird closure tricks
just declare it with state
nothingmuch Limbic_Region: good point =) 20:01
i think I wrote an email with an example sub that had a cache, but never really used one myself
Limbic_Region++
i'd like to be able to do one more thing
create an aggregator page
Limbic_Region well - I have several examples of p5 code that I jumped through hoops for that I was going to port to p6
nothingmuch which instantiates certain aggregators
that's how you wrap it all together, and organize, too
Limbic_Region and while I was at it - I was going to contribute other examples if people had them 20:02
nothingmuch i nodded off in the lightning talk about the wikiwikiweb stuff
does anybody have slides/data/info?
cwest: sorry, i forgot rsync on minutely... fixed 20:03
stevan: okay, getting busy 20:06
stevan nothingmuch: about time ... sheesh
nothingmuch =D
stevan nothingmuch: wanna SEE?
nothingmuch sure 20:07
one sec, i'll start up ingy's trick
hmm 20:11
GRR! 20:14
svnbot6 r5327, fglock++ | Span.pm passes more tests 20:17
Limbic_Region nothingmuch - I posted a meditation on it perlmonks.org/index.pl?node_id=473561 20:22
depending on the responses - I will consolidate examples and create a state sub directory in examples to put all of them in
nothingmuch stevan: ssh is annoying me. 20:23
can you punch your NAT if you have one?
Limbic_Region++ # nice post 20:24
Alfred Brendel is demi god 20:25
luqui - if you backlog you better get some
Limbic_Region notes the time and calls it a weekend 20:28
stevan nothingmuch: why dont you sketch out the code first, then we can work on it 20:29
right now $work is calling me
nothingmuch okay 20:30
eep... how did I close this? /me doesn't remember doint that 20:50
svnbot6 r5328, fglock++ | added "Set::Infinite::Functional" 21:00
21:10 knewt__ is now known as knewt_
cwest seen nothingmuch 21:52
jabbot cwest: nothingmuch was seen 1 hours 2 minutes 24 seconds ago
nothingmuch exposes himself 22:09
oh come on, that's bound to get more attention than this 22:10
nothingmuch prods cwest ;-)
nothingmuch sighs and unexposes himself
Limbic_Region tells nothingmuch that it can't be called prodding with something THAT small
nothingmuch = 22:11
)
at least someone is listening/getting my jokes
Limbic_Region nothingmuch - did you read BrowserUk's reply to my state meditation?
www.perlmonks.org/?node_id=473561
nothingmuch not yet
Limbic_Region oh - it is official btw - Jean's approval letter came today - she can now come and go as she pleases (permanent residency visa - also knowns as green card) 22:12
nothingmuch woot! 22:15
are you guys working on a citizenship?
Limbic_Region: i found that a bit of a pointless discussion... I think he was sort of straying 22:16
brb
cwest heya 22:17
I don't need you anymore
seen autrijus
jabbot cwest: autrijus was seen 9 hours 13 minutes 47 seconds ago
Limbic_Region nothingmuch well, the point of the meditation was to get people thinking about state variables and how they might be useful 22:19
I don't think BrowserUk undermined that - though it isn't the direction I was hoping for
his response boils down to - don't use state variables as a replacement for class variables when doing OO
that I agree with
the argument that it will be easy to make that mistake is false though - as p6 OO looks visually a lot different
you won't confuse a method with a sub 22:20
nothingmuch right 22:26
Limbic_Region $larry replied btw 22:27
Limbic_Region is getting the desired response
nothingmuch callooh, callay 22:28
dudley Limbic_Region++ # Very tactful response to BrowserUK. Impressive social skills (for a hacker, anyway ;-) ) 22:38
Limbic_Region dudley - for the most part, we are pretty amicable at the Monastery 22:40
and even when we get pissy - we tend to forgive quickly
there are a few exceptions - but by and large it is a very synergetic community 22:41
oh, dudley is gone already
nothingmuch www.crocuta.net/AtTheGayBar.mov 22:55
autarch that's awesome 23:02
revdiablo Limbic_Region++ # good Meditation 23:04
nothingmuch more from the same blog: www.koreus.com/files/200502/hollowmen.html 23:05
the blog: bigpicture.typepad.com/writing/music/
svnbot6 r5329, fglock++ | Set::Infinite::Funcional can do "union" 23:10
nothingmuch wow, good questions on perlmonls 23:23
err, perlmonks 23:24
by good i mean fun to answer
Limbic_Region PerlMonks rawks
nothingmuch can't resist the temptation of actually planning out a ??{ } based parser for this guy: perlmonks.org/?node_id=473596 23:26
it should be pretty clean
i'll have a go at it
i've always wanted to use local in regexes =)
Limbic_Region nothingmuch - I earmarked that one for tomorrow 23:27
I didn't have time to give a proper reply
but I was only going to suggest an approach
not a working implementation
though I very much look forward to yours 23:28
nothingmuch this one was also nice: perlmonks.org/?node_id=462487
well, i'll post it if you promise to upvote
i'm whoring for sainthood
;-)
geoffb finally comes out from under huge IRC backlog 23:37
wheee . . .
And on another note, it looks like I will be able to do OSCON in Portland (chromatic++ for making that possible) -- so who from in here will be there? 23:38
nothingmuch shifts uncomfortably 23:39
geoffb ?
autarch I'll be there
I am, like, _so_ there
nothingmuch geoffb: won't be there 23:40
geoffb autarch, you were one of the guys working on HTML::Mason, yes?
nothingmuch autarch: i wanted to thank you for your modules
you are a wonderful wonderful man
thank you for saving the world so many man hours
autarch heh, DateTime.pm is all fubared
mostly cause I tried to make something too simple that's inherently complex
geoffb And BTW, DateTime in Perl 5 SAVED MY PROJECT at my last company.
autarch geoffb: yes, I work(ed) on Mason
heh
just be careful about date math when the object's have a time zone 23:41
it's a little wonky
geoffb Ah. Two companies ago I worked for Jon Swartz, so I've been an H::M adherent ever since
autarch geoffb: what company were you at then? CMP?
geoffb AvantGo -- before they got bought
autarch oh right
geoffb autarch, I hope you're referring to P6 DateTime having wonky time zone math, because the time zone math was a very large part of what I used DateTime *for* in P5. 23:42
autarch no, P5 23:43
you'd have to do some pretty specific operations to uncover it
geoffb oh, OUCH.
geoffb hopes fervently that I didn't trip those operations.
autarch basically, I need to split up all the math stuff to force the user to pick between math on local datetime components, or UTC components
right now it kind of mixes them, which mostly works, except when it doesn't 23:44
geoffb BTW, it didn't then, but have you since added to DateTime a constructor that can build a UTC DateTime object Really Damn Quick? I had to subclass just to make a fast enough DateTime constructor for my project . . .
autarch this is mostly tickled by $dt1->subtract_datetime($dt2)
I could special case for UTC, I guess
I'm trying to use the P6 stuff to prototype a cleaner API which I may backport to P5
geoffb (My code actually special-cased both UTC and 'floating', because the fastpath is the same)
nodnod 23:45
autarch almost the same
second => 60 is only valid for UTC, not floating
autarch really really really hates leap seconds
geoffb It happened that in my case, that didn't matter, but point taken
autarch if everyone would just use UTC, my life would be so much easier ;)
geoffb heh
autarch but everyone wants to give their _local_ time to a constructor, which makes for nightmares 23:46
geoffb which is the one that's almost the same as UTC without leap seconds? TAI?
autarch yes, TAI
I sure as hell can't expect people to put that in the constructor, lovely as that would be
geoffb I kept everything in UTC internally, and converted back and forth to user timezones on input and output
but when I did a calendar year summary of events, all those conversions got SLOW 23:47
autarch ah, the time zone conversion bits are all bug-free, AFAIK
it's basically isolated to the "what's the difference between these two datetimes" bits 23:48
geoffb I believe I did all duration math in UTC. That should work correctly, I hope?
autarch yes
that's a very very good idea ;)
geoffb good
autarch the thing is that people want "2005-11-01T10:00:00 - 2005-08-01T10:00:00 = 3 months" 23:49
regardless of local time zone
but if you look at UTC it could be off by an hour because of DST changes in between two dates
geoffb So for your Perl 6 version, I guess my biggest API wish is that there be a way to say "I've guaranteed elsewhere that my inputs are correct, please do construction and suchlike in the fastpath"
semantically, at least
autarch someone's working on that already
He came up with a DateTime::Diet module that'll do that 23:50
geoffb someone++
:-)
autarch the trick is to let DateTime::Format::* modules use it
Rick Measham
geoffb (Rick Measham)++ then
Darren_Duncan I have a question regarding the common or proper terms of speech regarding continuations ...
autarch It's actually a cute little trampoline. It just blindly accepts your inputs and stores them. It provides a small subset of the DT.pm methods, and then turns itself into a proper DT.pm object for methods it doesn't implement 23:51
Darren_Duncan supposedly, with a continuation, receiving an argument and returning a value is exactly the same kind of thing
autarch this is great if you know your data is valid, but would lead to all sorts of wacko late-appearing errors otherwise
geoffb autarch, nice implementation concept. Go Rick. 23:52
Darren_Duncan as if there was no distinction between functions and procedures; a function's return value is simply an argument that can be written to
autarch yeah, it's cool
Darren_Duncan my question is ...
nothingmuch ugh
Darren_Duncan what is a good generic name for what 'foo' is if 'foo' can be either a value passed in or a value passed out of a routine 23:53
geoffb So autarch will be at OSCON in Portland, and nothingmuch won't (sorry to hear that, BTW!). Anyone else? 23:54
Darren_Duncan I plan to be at OSCON in Portland
geoffb (y) 23:55
Darren_Duncan btw, geoffb, are you still looking for people to room with?
geoffb Nope -- managed to convince my Dad to house me. 23:56
Darren_Duncan so you have family in town ... nice
how far from the convention center?
geoffb Well, Lake Oswego, but he says its about 10 min from convention center