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 |