6.2.10 released! xrl.us/hxnb | geoffb's column (/. ed): xrl.us/hxhk | pugscode.org | pugs.kwiki.org | paste: paste.lisp.org/new/perl6 or sial.org/pbot/perl6 | www.geeksunite.net Set by integral on 25 October 2005. |
|||
ingy | what's with the new tradition of using 'ingy' instead of mumble or foo? | 00:01 | |
(not that I don't like it ;) | |||
putter | yaml man page :) | ||
first usage example | 00:02 | ||
ingy | oh right | ||
putter | so self inflicted ;) | ||
ingy | that module I last updated two decades ago... sorry | ||
putter | ;) | ||
ingy heads off to update yaml.pm | |||
clkao | yaml.pm! | 00:03 | |
ingy | clkao: I'm really working on the new one for real! | ||
putter | chuckle. putter notes this is an example of current cpan's focus on individual ownership not dealing gracefully with various issues. | 00:06 | |
clkao | how about kwiki? can we have history view like mediawiki? | ||
ingy | clkao: after i move to taiwan... | ||
putter | stevan: the motivating example is to have Object does role NonProxyObject, but class ProxyObject is Object, but without NonProxyObject's stuff. ProxyObject being a bare or minimal class, with children like Proxy, Ref, and Scalar. Trying to insert a proxy/nonproxy distinction into the hierarch directly is just a recipe for pain. The need arises the minute you want "Object" to provide default implementations of bit/perl/etc. One can w | 00:12 | |
ork around it temporarily by having all the proxy classes track Object's method list and provide explicit reflectors, but yuck. Perhaps I'm missing something. | |||
(or adding a level of method indirection and having a ProxyObject role, so only ProxyObject has to track Object's method list) hmm... which is what I'll probably do for now... | 00:15 | ||
ingy: you're moving to taiwan?!? | |||
robkinyon | putter: why does Object do NonProxyObject? | 00:31 | |
why isn't ProxyObject a subclass of Class? | |||
putter | hi robkinyon. so | 00:33 | |
dduncan | is that +$arg/:$arg change mentioned on P6L worth implementing now, or is that change still unsure/in-progress? | 00:34 | |
last I saw, P6L still seemed to be hashing some stuff out, so I'll continue to write in the old manner | |||
putter | the problem is you want to distinguish things added to the root (Object) for everyone, including proxies, from things added to everything but proxies. having everything but proxies off to the side (role NonProxyObject) theoretically allows one to subtract it out later when you hit things which consider themselves proxies. | 00:36 | |
dduncan: sorry, no idea | 00:37 | ||
robkinyon | putter: icky | 00:40 | |
much better to have either a role (ProxyObject) or a subclass of class that does this for you | |||
putter | stevan: and the problem with the indirection workaround i proposed is it interacts poorly with things like Ref, which uses autoload to proxy only some types of proxyees. | ||
classes are objects, so that kind of approach doesnt work I think... | 00:43 | ||
oh, last line was for robkinyon. | |||
robkinyon | The ProxyObject that isa Class would not, itself, be a ProxyObject. It would -create- proxy objects | 00:44 | |
so, any class of yours that isa ProxyObject would instantiate proxy objects | 00:45 | ||
(or somesuch) | |||
unless, for some random reason, you want proxied classes ... | |||
in which case, you're better off using a prototype model instead of a classical model | |||
putter | I fuzzily recall some languages have a proto-object, and break proxies into a separate tree. some, like ruby, create a "bare object" dynamically/reflectively (create a class, look at various classes method lists, remove some methods from the class). | ||
robkinyon | what on earth are you so worried about proxy objects for? | 00:47 | |
robkinyon must have missed something | |||
putter | Ref and Scalar behave as proxies. and are rather core to the language runtime. | ||
and Proxy is used for lvalued subs. | |||
(though not at the moment) | |||
autrijus | integral: ping | 00:48 | |
robkinyon | Ref and Scalar behave as proxies? | ||
I thought that they're just base types? | 00:49 | ||
putter | I may well be confused, but ProxyObject _would_ be an Object, methods added to Object would all land in proxies too... | ||
robkinyon | I thought that Ref is the empty base type for the other Refs and that Scalar is the empty base type for the other scalars | ||
autrijus | putter: ping? | 00:51 | |
putter | autrijus: pong | 00:53 | |
autrijus | good. review something for me. | ||
robkinyon & # Put child to bed | |||
putter | robkinyon: method calls to Refs of Arrays and Hashes (but not others) get reflected. Scalars are the things vars bind to. | ||
autrijus: sure | 00:54 | ||
robkinyon: and Scalars reflect most everything. at least that's what fglock's code says, and I have no reason to disblelieve it. | 00:55 | ||
autrijus | putter: perlcabal.org/~autrijus/tmp/temp.html | ||
putter | looking... | ||
autrijus | nonputter people are of course also welcome :) | 00:57 | |
(but that one is written with putter in mind) | |||
(various grammar fix was updated) | 01:00 | ||
putter | expectation management: I'm squinting at the screen, holding a 2l bottle of Coke, periodically wishing I had gotten more than 3 hrs of sleep last night. so my thoughts/comments may be a bit slower in coming than one might anticipate... back to reading... | 01:03 | |
autrijus | sure... | ||
obra | autrijus: nice blog temp | 01:06 | |
autrijus: patrick has promised me an updated PGE roadmap this week | 01:07 | ||
autrijus | promises are... well you know. still good to hear :) | ||
obra | yep | ||
clkao | hungary... tokaj! | 01:08 | |
robkinyon | putter: So it's the ArrayRef that's a proxy of Array, not Ref | 01:09 | |
putter: I'm not sure why Scalar would proxy anything. my $foo = Int( 3 ); is an Int which isa Scalar, not a Scalar | |||
putter | robkinyon: I'll bbiab, after journal stuff... | 01:13 | |
autrijus | I wonder if I should crosspost to Dan's | 01:14 | |
or just link to my journal. | |||
putter | autrijus: might want to linkify -Ofun. back to reading... | ||
autrijus | ok | 01:15 | |
wolverian | autrijus, nicely written. I agree with you on the perl points. also, I wish for good health to you :) | 01:16 | |
autrijus | :) | ||
wolverian | autrijus, I hope you're not abandoning social 'distractions' | 01:17 | |
putter | s//subjecting oneself/ at least in American;) | ||
autrijus | putter: mmm | 01:18 | |
what would the sentence be like in American? :) | |||
wolverian | putter, you mean s/to subject/subjecting/? | ||
autrijus | ah. fixed as wolverian suggested | ||
wolverian | :) | ||
putter | this also means not subjecting oneself to... | 01:19 | |
all other projects == non-pugs projects? | 01:20 | ||
dduncan | autrijus, your journal mentions you having a bunch of stuff to push ... is your connection stable enough to do it? | ||
autrijus | putter: aye | 01:23 | |
fixed to say "non-pugs" | |||
dduncan: yes, it is now, it's about t/var/lazy.t and related discussions with larry | 01:25 | ||
dduncan: but it remains unspecced and runtime-typed lazy thunks is still unspecced -- I guess I can pull a commit-then-revert | |||
otoh, it doesn't break any test, and just slows down things a bit for lazy{} (and complicates the runtime a bit), so maybe I just commit. | |||
wolverian | what stuff is that? please commit so I can see :) | 01:26 | |
autrijus | that sounds so familiar :) | 01:27 | |
okay, booting to fbsd now. | |||
wolverian | hehe. ;) | ||
autrijus++ | |||
autrijus | bbiab | ||
putter | ok... lets see... first a quicky, "... to devote into," is another one which may be English, but isn't American. ;) | 01:28 | |
ok... the middle section, "Since February 2005" to "expectation that would come with it."... | 01:31 | ||
wolverian | the phrase is a bit long anyway | ||
split it up perhaps. | 01:32 | ||
putter | it gives me a bit of that late-night email uncertainty of "errr, maybe I had better look this over in the morning rather than hitting send". | ||
perhap break the post into to parts? one for tonight, the other for "tomorrow"? its a long post, | 01:33 | ||
there's is also a bit of "its long been a problem, but starting today it isnt", which is always a somewhat iffy proposition... | 01:34 | ||
perhaps "suffered as a consequence." ~ "But that's a topic for another post.\n\n". s/take another journal/take a couple of journals/? ;) | 01:36 | ||
err, i meant that to be "This is changing, but that's a topic for another post." | 01:37 | ||
autrijus | rehi | ||
ok. I think I'll sleep on it :) | |||
putter | never turn down funding in advance... ;) | 01:38 | |
autrijus | lol, good advice. | ||
putter | or at least, hesitate before doing so... :) | ||
autrijus | glad I called review before posting. | ||
putter | collaboration++ | 01:39 | |
autrijus | so I think I'll remove the "related note" part | 01:40 | |
and the parts after that | |||
putter | actually, it might be neat to have a journal on Erdos, and how your plans are in a similar vein, etc. | ||
looking... | |||
autrijus | uploaded | ||
in particular the technical parts are moved to tomorrow | 01:41 | ||
added sentence in penultimate para: "There are more I'd like to say, particularly about the technical prospects of Perl5/CPAN/Perl6 developments, but I'll sleep on it and save it for tomorrow." | 01:43 | ||
putter | err, your call, but i'd drop startin with "Since February". basically separating discussion of your plans, from the Fears/Dan/technical part | ||
autrijus | ho hum. | ||
autrijus ponders. | |||
so you mean preserving the first 3 | 01:44 | ||
up to "suffered as a consequence" | |||
obra | I'd just sleep | ||
autrijus | _then_ inject "We need truly scalable computer languages"? | ||
obra | It's not that important to get it up today. | ||
and it's insanely late in .dk | |||
putter | obra - good point. | 01:45 | |
autrijus | point well taken :) | 01:46 | |
putter | drat, I hit reload... and now I cant see the whole thing. :/ | ||
autrijus | temp2.html ;) | 01:47 | |
svnbot6 | r7746 | autrijus++ | * wrap.t: add comment to reflect discussion with Larry about | 01:48 | |
r7746 | autrijus++ | &sub.wrap's purpose of not breaking CODE refs. | |||
putter | perhaps we should stop. to recap, I think the post works nicely with just the middle removed, "Since Feb" through 'dont fund me' paragraph. that leaves a nice little post prompted by Dan, and a bit of light self reflection. the part that comes out has a theme of personal plans and such, and might be interestingly refactored as another post. | 01:49 | |
robkinyon | putter: back | 01:51 | |
putter | but I really like obra's "there's no reason to do it tonight". | ||
autrijus | putter: refresh temp.html | ||
putter | hmm, a theme which has a similar flavor to "we shouldnt be optimizing this yet". curious. | ||
autrijus | premature optimization eh | 01:52 | |
obra | premature -Ofun? | ||
autrijus | no, premature -Opresentable :) | ||
obra | ;) | ||
so, what about explicit deoptimization? | 01:53 | ||
obra has cans of worms and an electric can opener | |||
autrijus | ;) | 01:54 | |
putter: I think temp.html is postable, actually. | |||
obra: makes sense to you too? | |||
obra | looking | ||
autrijus meanwhile cleaned up and committed the typed thunks patch | 01:55 | ||
clkao | btw, i think pugs can make use of a bootstrap mirror dump | 01:56 | |
putter | ah, that seems plausible. I suggest it would "take several journals to express your thoughts", and I'd add a sentence after "my sanity suffered as a consequence." along the lines of "That is change, but that's another post." | ||
clkao | it's gettting large | ||
putter | erg, s/That is change/That is changing/ | ||
obra | The call to transparency starting with "I understand" feels a bit out of place | 01:57 | |
it feels like criticism without suggesting a better alternative | 01:58 | ||
robkinyon | putter: would you like to continue? | 01:59 | |
svnbot6 | r7747 | autrijus++ | * Typed Thunks. This is a fairly self-contained change | ||
r7747 | autrijus++ | to make `lazy {...}` values carry inferred types. | |||
r7747 | autrijus++ | The upshot is that supplying a function with a lazy | |||
r7747 | autrijus++ | value should pass MMD _without_ evaluating the thunk. | |||
r7747 | autrijus++ | This is unspecced, and not at all reliable, but still | |||
r7747 | autrijus++ | committed (by request of wolverian). If it turns out | |||
r7747 | autrijus++ | to be not feasible or adversely impacts performance | |||
r7747 | autrijus++ | and/or readability we can always revert back. | |||
ingy | hi autrijus | ||
wolverian | whoa. nice | ||
coral blinks | 02:00 | ||
autrijus++ wolverian++ | |||
autrijus | ingy: hi | 02:01 | |
putter | though perhaps this should be seen as an opportunity to build self discipline. ;) its postable... but there's no reason to do it tonight. and some reasons not to (eg, Dan discussion will continue to grow for a while, so readers will see more in a day or two, "not un-postable" is perhaps not quite the right metric, etc). | ||
autrijus | obra: I'd actually like it to fix it by elaborating the fix part | ||
which means, of course, that though it is postable, I will not post it tonight | |||
:) | 02:02 | ||
obra | autrijus: is haskell's unspecced execution order something that's being looked at as a way t oget increased performance on multicore cpus? | ||
autrijus | obra: sure. it's a very long tradition :) | ||
entire lines of parallel research hangs on side effect free order of execution | |||
and GHC's SMP support is already in trunk. | |||
obra | nod | 02:03 | |
obra ponders side-effect-free perl | |||
obra feels his head explode | |||
autrijus | aka "is pure" | ||
and use := instead of = all the time | |||
wolverian | I didn't realise pugs had inferred types at all, actually :) | 02:05 | |
clkao cries | |||
autrijus: remember your old code | |||
$self->{signature} = { <$fh> }; | |||
this is doing a 1-byte buffer read | 02:06 | ||
BAD PERL | |||
autrijus | clkao: in M::Sig? | 02:07 | |
clkao | svk::xd | 02:08 | |
autrijus | oh well. sorry | 02:10 | |
putter | www-groups.dcs.st-and.ac.uk/~histor...Erdos.html has a nice, more fleshed out, bio | 02:12 | |
neat to see the context | |||
autrijus waves and sleepeth | 02:18 | ||
putter | robkinyon: oh, right, sorry. brain leak. | ||
good night autrijus | |||
where were we... | 02:19 | ||
my understanding is, mostly from reading fglock's code, is $foo, a scalar variable, has a Scalar container. @foo, %foo, have Array and Hash containers. $foo->bar is a method call on the Scalar, which is passed on to its current contents. Ref is a separate concept, and there is no ArrayRef (that part is spec, though perhaps spec is lagging p6l). A Ref is a pointer, like in p5. Method calls on Ref's get passed along if ("autoderefere | 02:24 | ||
ncing") only if it points to an Array or Hash. That's apparently the p6l call. | |||
in pugs, I fuzzily recall, Int isa indeed a Scalar. but that's apparently no longer spec. | 02:26 | ||
actually, not just from fglock's code (re $@% variables). there have been a couple of discussions over the last few months. | 02:27 | ||
basically, pugs is a p6 design waveform collapser. it reduced uncertainty when the existing pugs oo was done. but the oo wasnt then the focus, so things were still fuzzy. now, focusing on oo and trying to do it correctly, to spec, will naturally generate a lot of questions, helping to collapse and fill in the spec. | 02:32 | ||
but anyway, the interest in proxying results from having refactored redundant method definitions, moving them and other stuff into Object, thus having the world break because Ref and Scalar no longer proxy properly, and wondering how to address it without sacrificing the code brevity and clarity which are the point of the exercise. | 02:35 | ||
robkinyon, so any further thoughts/comments welcome. it would be nice if someone could collect scattered spec fragments, and try to put together a full picture, highlighting issues and areas of uncertainty. right not most of the effort is "document" and explore with code. sometimes documenting with, well, a document, and exploring more analytically, is a complementary approach. | 02:38 | ||
s/right not/right now/ | 02:39 | ||
fglock: note previous discussion - some of the "overhaul" refactorings have issues (ie, dont work yet;). | 02:42 | ||
its late. good night anyone still here. & | |||
03:14
stevan_ is now known as stevan
|
|||
stevan | putter: ping | 03:14 | |
putter: regarding the Ref/Scalar issue and adding methods to Object | 04:14 | ||
I think robkinyon has a good idea there | |||
if we subclass Class (createing ProxyClass), this would allow us accomplish the dispatching, and disallow all other methods | 04:16 | ||
actually nevermind,.. that wont work either | 04:19 | ||
hmm.... | 04:20 | ||
oh wait | |||
there is no reason a class needs to inherit from Object | |||
in MM2.0 speak, just do this : | |||
class 'Proxy' => { submethods => { 'BUILD' => sub {} }, methods => { 'BUILDALL' => sub {} } } | 04:24 | ||
basically you need to stub out BUILD and BUILDALL since Class::CREATE will be looking for them | 04:25 | ||
but that will give you an object which does not inherit from Object, which should do what you need for Scalar and Ref | |||
05:03
Lopo_ is now known as Lopo
|
|||
xerox | Yow. | 05:27 | |
wolverian | hey cat. | 05:28 | |
r0nny | yo | 06:13 | |
how do i set up constructors wit parameters ? | |||
gaal | r0nny: check out BUILD, I think it's mentioned in the docs/other/porting_howto | 06:19 | |
Juerd: the funniest thing, I tried setting up mail forwarding on feather. Sent myself a test message from feather to [email@hidden.address] and it bounced; *to the address I was forwarding to*. :) | |||
r0nny | damn - i knew it | 06:28 | |
$.foo works ;P | |||
woot | 06:33 | ||
seems like perl6 can do neat functors | |||
omg | 06:44 | ||
reading shooting in the foot of perl6 is *ARGH* | |||
Khisanth | shooting perl6's foot? | 06:48 | |
r0nny | Khisanth: read Perl6-Pugs-6.2.9/docs/other/shot_in_the_foot | 06:59 | |
again - is there a way to use yaml evailing with files ? | 07:08 | ||
Juerd | gaal: What was your envelope from? (Note: *envelope*, not header) | ||
gaal: Ah, you used [email@hidden.address] as your envelope from. No wonder it bounces to the forward address! | 07:17 | ||
gaal: There is a config problem, making [email@hidden.address] not work. However, it can redirect [email@hidden.address] correctly, so the bounce is sent to the forward address | 07:18 | ||
r0nny | can someone tell me, how to dump the data stored in a deep hash ? | ||
Juerd | goddamnit | ||
something overwrote a config file! | |||
I *hate* it when that happens. | |||
gaal: Should be fixed now. Can you test it? | 07:20 | ||
Khisanth | r0nny: %hash.perl maybe? | 07:22 | |
r0nny | can i use this on all kinds of objects ? | 07:23 | |
Khisanth | though .perl might be pugs specific | 07:26 | |
r0nny | oh | ||
*adding a fixme ;P* | |||
btw - how long till roles will work ? | 07:28 | ||
autrijus | r0nny: it already works in perl5/Perl6-MetaModel | ||
r0nny | and n pugs ? | 07:29 | |
autrijus | as for when it will be integrated back to default runcore, I _think_ I can pull it off within the 10 days of staying in liz's place (starting this weekend) | ||
but I'm wondering how much of the ongoing p6l waveform collapsing is going to affect the object model (again) | |||
but that is no excuse of not porting what is already there | |||
r0nny | hmm | 07:30 | |
autrijus | so the plan still stands | ||
(at least until larry checks it in into S12) | |||
s/it/the new version/ | |||
r0nny: re yaml eval with files | 07:37 | ||
eval(=<file.yml>, :lang<yaml>) | |||
r0nny | oh | 07:38 | |
sweet ;P | |||
autrijus | :) | ||
nothingmuch | morning | ||
autrijus | yo nothingmuch | ||
nothingmuch likes the new colon prefix for nameds | 07:39 | ||
and also, a sigil idea for classes that is sort of free is the broken pipe char | |||
i'm so out of date =( | |||
autrijus | nothingmuch: I suggested the same | ||
svnbot6 | r7748 | Darren_Duncan++ | /ext/Rosetta-Incubator : fixed up the Locale::KeyedText code and added most of its remaining documentation | ||
autrijus | larry chose ^t instead | 07:40 | |
which makes sense too | |||
nothingmuch | yeah, it does | ||
autrijus | not so sure about the unicode variant UP ARROW | ||
nothingmuch | is it as easy to parse? | ||
autrijus | i.e. about if we really need that | ||
sure, it's no easier or harder than % | |||
nothingmuch | i agree about not needing that | ||
what about infix xor? | |||
autrijus | what about infixmodulo? | 07:41 | |
nothingmuch | $x ^ foo; # with a sub foo | ||
oh, right | |||
;-) | |||
autrijus | =) | ||
nothingmuch wallops himself with perlop | |||
xinming | Hi, autrijus | ||
autrijus: Is C| changed to ^t ? | |||
Sorry, I didn't reach the mailing list archive, as just come back online | 07:42 | ||
nothingmuch | i like the new pairness of colon | ||
:$foo -> :foo($foo), etc | |||
Khisanth | Ā¢ -> ^? | ||
nothingmuch | it will really promote good design | ||
Khisanth: aye | |||
:%hash<key> especially | 07:43 | ||
autrijus | xinming: yes | ||
nothingmuch | i wish for that almost daily in perl 5 | ||
resorting to 'map { $_ => $h{$_} } qw/my keys/' instead | |||
autrijus | nothingmuch: fully agreed | ||
Khisanth | what is this : syntax for? | ||
nothingmuch | Khisanth: see how + was renamed to : on p6l | ||
it relates to named parameters | 07:44 | ||
autrijus | Khisanth: www.nntp.perl.org/group/perl.perl6....uage/23820 | ||
dduncan | nothingmuch, I agree and like that + to : change | ||
xinming | hmm, << is a bit like << in unicode form, And others are also in Unicode form, why this is so different? :-o | ||
Khisanth | I seem to recall : already being used for that before | 07:45 | |
which is why I am confused :) | |||
nothingmuch | Khisanth: that's why it's such a good change ;-) | ||
Khisanth | you mean << and Ā«? :P | 07:46 | |
nothingmuch | it's used for paassing pairs as ":key<value>" etc | ||
xinming: because up arrow makes no sense, while caret is the next free shifted number sigil | |||
Khisanth | hrm so pretty the same as the p5 foo({key=>"value"}); :) | ||
nothingmuch | we don't have a milcent unicode alias to sigil hashes just for the heck of it | ||
gaal | Juerd: mail forwarding works, although both From: and To: headers get s/perlcabal/feather.perl6/'ed. | ||
nothingmuch | Khisanth: err, but more | 07:47 | |
Khisanth | there is not ! sigil :P | ||
nothingmuch | my %opts = ....; | ||
gaal | Juerd: mind if I install hashcash on feather? Everybody should use it ;-) | ||
Khisanth | s/ot/o/ | ||
nothingmuch | foo(:%opts<key>); # gets key => %opts<key>, due to the colon. | ||
that was what I was appreciating | |||
Khisanth | eh? | ||
nothingmuch | foo( %opts<key> ); # positional | 07:48 | |
foo( :%opts<key> ); # named, like ':key($opts<key>)' | |||
gaal | Juerd: www.livejournal.com/users/gaal/150447.html | 07:49 | |
Khisanth | sub foo( :%opts ) { say %opts<bar> } %foo<bar> ="bar"; foo( :%foo<opts> ); < so that will print "bar"? | 07:51 | |
nothingmuch | wow, that thread is making me happier and happier | ||
Khisanth: yep | |||
or more clearly: | |||
sub foo ( :$bar ) { say $bar }; %foo<bar> = "moose"; foo( :%foo<bar> ); | 07:52 | ||
?eval sub foo ( :$bar ) { say $bar }; %foo<bar> = "moose"; foo( :%foo<bar> ); | |||
evalbot_7748 | Error: unexpected ( or "f" expecting ";", statements or end of input Only one invocant allowed | ||
nothingmuch | not yet though ;-) | ||
Khisanth | this syntax is a bit strange :) | ||
nothingmuch | Khisanth: sorry, you got it slightly wrong | ||
:%foo<opts>; # makes no sense - there is no such key in %foo | 07:53 | ||
and %opts should be slurpy | |||
(in foo's decl) | |||
Khisanth | I think for the first time I am unable to make sense of perl6 syntax :) | 07:55 | |
nothingmuch | huh? it's really simple | ||
:foo( $rvalue ); # creates a pair, foo => $rvalue | 07:56 | ||
right? | |||
instead of writing ':foo( %hash:<foo> )' to create foo => $rvalue if rvalue is in a hash | |||
you can write ':%hash<foo>' | |||
oops, I stuck an extra colon in there | |||
:foo( %hash:<foo> ) => :foo( %hash<foo> ) | 07:57 | ||
it's not a big change, it just lets you write 'foo' only once | |||
without using map | |||
Khisanth | everything made sense then I see ":@array[42]42 => @array[1]" | 08:02 | |
where the heck does the 1 come from? | |||
nothingmuch | that is an error | 08:10 | |
see several emails down | 08:11 | ||
www.boingboing.net/2005/10/27/math_..._can_.html | 08:15 | ||
Juerd | gaal: What do you use for email? | 08:34 | |
gaal: And you can install any debian package. If it's not a debian package, install things in places where they will never clash, and make sure they do not depend on specific libraries that are in debian packages | 08:35 | ||
gaal: And I don't grok hashcash at all yet. I'll have a look later | 08:37 | ||
afk | |||
"de-facto disallowed configurations -- if you want to set up an open-relay for functionality reasons, blacklist operators and ISPs will intentionally sabotage your email service." | 09:08 | ||
That, listed in the hashcash FAQ, takes away a lot of confidence. | |||
Certainly with " I tried to do this for a relative so he could send mail via my server regardless of which ISP he used (he travels a lot)." added | |||
Also this FAQ isn't a FAQ. I can't imagine people have asked the authors questions this broad | 09:09 | ||
My take on hashcash: it slows down the spamming, but ensures arrival of the spam | 09:12 | ||
Hmm... | |||
As a spammer, I'd know my choice! | |||
A way to bypass all blacklists, all filters, all bayesian tools, all at once. At the cost of a fraction of a second. | |||
Also, this hash has to be calculated by the mail server (which makes its impact huge instead of small), not the client, or BCC doesn't work. | 09:15 | ||
The "FAQ" says this is not a problem | |||
While in reality, BCC's are used a lot, and with good grounds. | |||
Yes, spammers don't make headers and envelopes match up. That does not mean they use BCC. | |||
gaal: Sorry, but currently, I cannot be in favor of hashcash. | 09:16 | ||
gaal: It is not compatible with existing clients, and on a server it is too costly. | |||
As hateful as they are, clients like Outlook Express and Eudora and such must not be ignored. | 09:20 | ||
If those clients are unlikely to participate, the entire idea fails. | |||
I don't think OE will ever send BCCs one-by-one. | |||
It will be a great slowdown, especially for dial up users and in case of large messages (think attachments with funny pictures that people send to all their contacts, HOPEFULLY in bcc) | 09:21 | ||
So MS won't do this, because end user experience, not technical correctness, is what they care about | |||
And if OE doesn't implement hashcash, it will not work, because it's client based. | |||
Most people will not migrate. That's a matter of fact, I'm afraid. | 09:22 | ||
All these anti spam techniques have some problem that the authors and supporters think are not problematic | 09:23 | ||
They're all well thought through, but just not enough. | |||
nothingmuch | Liz++; # Cache::Memcached::Managed | 09:36 | |
Liz | thank you ;-) | 09:37 | |
nothingmuch | now all I have to do is make memcached work | 09:50 | |
libevent seems to be confused on OSX Tiger | 09:51 | ||
it's unsynchronized | |||
seems like there is a 1 item write queue somewhere | |||
nothingmuch will try cvs version | 09:52 | ||
Liz | yes, memcached on OS X sucks badly because of that | ||
but it's because OSX screwed up | |||
nothingmuch | it says "broken kqueue" | 09:53 | |
can I use select instead? | |||
Liz | eagerly waiting for 10.4.3, which should be RSN | ||
nothingmuch | ah | ||
Liz | it should automatically revert to that, doesn't it? | ||
nothingmuch | i'm guessing it does | ||
but in that case, why isn't select unbreaking memcached? | 09:54 | ||
or are these unrelated? | |||
Liz | it's so bad on OSX right now that the stress test in the test-suite isn't done... | ||
on your basic Linux box that takes 2-3 mins | |||
on my iBook it would take 10+ hours | |||
nothingmuch | on mine it doesn't work | ||
all values come back undef | |||
Liz | (never actually let it ran that long) | ||
ah? | 09:55 | ||
is memcached running at all? | |||
nothingmuch | yes | ||
it's not delayed | |||
as in the value takes a long while to get there | |||
Liz | can you telnet to it and do a "quit" ? | ||
nothingmuch | yes, that works | 09:56 | |
but if i do e.g. 'get foo' | |||
then nothing is printed to the socket | |||
oh wait, there is | |||
but for some reason both Cache::Memcached and Cache::Memcached::Managed return immediately, with undef | |||
Liz | then it's not making a connection probably | 09:57 | |
did you config right? | |||
nothingmuch | yep | 09:58 | |
rafl_ | Good morning. | ||
nothingmuch | i'm seeing output in -vv | ||
hi raa | |||
rafl_: | |||
rafl_ | Hi nothingmuch | ||
Liz | nothingmuch: not sure what the pb is then... | ||
nothingmuch | nevermind, i'll do this on linux | 09:59 | |
can I override the server C::M::M uses? | |||
(in it's test suite) | |||
Juerd | bankrupt clients -- | ||
nothingmuch | oi | ||
Juerd | Or, as a counter: ++ | ||
:* | |||
:( | |||
Liz | eh... | ||
nothingmuch | can't you sue anyone? | ||
rafl_ | nothingmuch: Nur sure if I already said this: I maintain your XML::SAX::Expat::Icremental for Debian now. | 10:00 | |
Liz | the test-suite starts its own servers... | ||
nothingmuch | rafl_: cool, i didn't know it's popular | ||
Liz | that can only be done locally | ||
Juerd | nothingmuch: Not really. | ||
nothingmuch | Liz: okies, in that case i'll just install blindly | ||
Liz | success! | ||
nothingmuch | rafl_: if you need any kwalitee improvements or something, let me know | ||
rafl_ | nothingmuch: libpoe-filter-xml-perl depends on it. And libpoe-component-jabber-perl depends on libpoe-filter-xml-perl. So I needed to package it.. | ||
Juerd | nothingmuch: What I want is tiny compared to their total debt. I don't stand a chance. | 10:01 | |
rafl_ | nothingmuch: I'm a jabber fanatic, you know? :-) | ||
Liz | juerd: if the curator ever comes to you with a settlement proposal: take it | ||
nothingmuch | Juerd: well, I'm guessing for a private business it's not that tiny an amount for you, right? | ||
Juerd | Liz: Of course! | ||
nothingmuch | rafl_: I always meant to install jabberd on my home box | ||
Juerd | Liz: I've made the mistake of not doing so once, never again. | ||
Liz | and make sure you get the VAT back (hmmm... are you charging VAT?) | 10:02 | |
Juerd | nothingmuch: That's mostly irrelevant | ||
Liz: Yes, I am | |||
Which reminds me... Only a few days left for Q3 :( | |||
rafl_ | nothingmuch: I'd prefer ejabberd.. | ||
Juerd | Fuck. Totally forgot that! | ||
Thanks for mentioning VAT :) | |||
nothingmuch | rafl_: is it easier to set up? my last attempt was like a 2 years ago or so, and I think there was a showstopping problem | 10:03 | |
Juerd | You could install jabberd on feather, and you'd get @feather.perl6.nl jabber addresses :) | ||
nothingmuch | i want a woobling.org address =) | 10:04 | |
Juerd | I see | ||
Vanity addresses! ;) | |||
nothingmuch | aye | ||
Juerd | (++) | ||
rafl_ | nothingmuch: The Debian package is in a quite good shape. And you don't need to edit XML to set it up. | ||
nothingmuch | i pay good money for a stupid domain name | ||
rafl_ | nothingmuch: Well, you need to edit erlang data structures, though. | ||
nothingmuch | rafl_: edit XML? what kind of package installation would make the poor user do that? | ||
oh, ejabberd | 10:05 | ||
rafl_ | nothingmuch: The jabberd config files are XML. | ||
nothingmuch: ejabberd configs are erlang-like. | |||
nothingmuch | i thought you were referring to the ::Incremental package | ||
nothingmuch wonders if ejabberd is in portage | |||
gaal | rehi | ||
nothingmuch | hi gaal | ||
gaal | Liz: you can port Cache::Memcached::Managed to p6 :) | 10:06 | |
nothingmuch: aloha! | |||
Juerd | nothingmuch: You pay a noticeable amount of money, just for a .org? | 10:07 | |
Liz | gaal: I was actually considering that | ||
nothingmuch | Juerd: ~$5 a year or so ;-) | ||
gaal | Juerd: it is a debian package; users just need a wrapper around sendmail as their, well, sendmail command :) | ||
Juerd | nothingmuch: Ah, so that's your def of "good money" :) | ||
gaal | Liz: Cache::Memcached is ported, hee. | ||
Liz | gaal: and adapting the memcached protocol so that C:M:M functionality would be done server side rather than client side | ||
Juerd | nothingmuch: I have to remember that for when you sell something and express you want good money for it :) | ||
gaal: Install it, but please do not wrap the default sendmail. | 10:08 | ||
gaal | (though it never actually ran.) | ||
nothingmuch | well, you have to invest in money obedience school. | ||
gaal | Juerd: of course not! | ||
Juerd | gaal: Put the wrapper somewhere else, and document in your .plan or public_html that people who wish to use it have to change their $PATH | ||
gaal | I don't do that on my own box | ||
Juerd: sure. As for the other objections, I'll have to read that FAQ you mentioned (doesn't look like something I'd seen) - making effective use of it is a matter of tuning, nobody that I know wants to make it an automatic white flag. | 10:10 | ||
Juerd: and, yes, I do realize there's no practical value for a very small number of people using it. | 10:11 | ||
which is why I want to encourage others to join in ;) | |||
Juerd | Well, I think it sucks :) | ||
It has to be client side | |||
But clients are ill connected | |||
gaal | Yes. | ||
Juerd | It requires BCCs to be sent individually | ||
Which takes a long time, if you are ill connected | |||
The only solution to that is to not use the hash when you're sending BCCs | 10:12 | ||
But then people can detect that you are sending a BCC | |||
Which isn't quite good either | |||
gaal | hmmm, how does your connectedness fiure into this? | ||
Liz | it's a nice throttling effect... ;-) | ||
gaal | you can mint before you connect. | ||
*figure | 10:13 | ||
Liz | putting the burden on the client rather than the server side, no? | ||
gaal | Yes. | ||
Juerd | gaal: A single message, with no recipient-specific headers, can be sent to multiple rcpts without duplication over the line. | ||
gaal: But hashcash requires that every recipient gets their own, recipient specific headers | |||
gaal: Which means that the message has to be re-sent for each message individually | |||
gaal | Actually, hashash is perfect for proprietary systems where you control all the clients. The majot problem with deploying it in email is that most clients don't know how to participate. | 10:14 | |
nothingmuch | Juerd: nuh uh, you can just share all the headers | ||
you only need to send the BCC users their own headers | |||
gaal | nothingmuch: Juerd refers to BCC | ||
Juerd | gaal: Which means the data traffic grows from $size to @recipients * $size | ||
nothingmuch | ah | ||
the problem could really be fixed by hashcaching the hash of the email, not the email itself | |||
then each user will hash their own addresses, and look for hashcahes which pay these hashes | 10:15 | ||
Juerd | Given the VERY COMMON scenario of @recipients > 20 and $size > 500 kB, that SUCKS for the user, who doesn't care about hashcash anyway | ||
gaal | Juerd: I think the reason I never considered this is that I never BCCed more than a few people on one email | ||
nothingmuch | that way the user can only know whether there was a BCC, not who was BCCed | ||
Juerd | And thus end users will not ever want to use this | ||
And thus its use will never be common enough for the scheme to work | |||
So I find any attempt to implement it for myself futile. | |||
Liz | Juerd: Wendy will send you a mail regarding getting the VAT back from your --client | ||
nothingmuch | Juerd: one thing to remember - if you sent someone before you BCCed them, then you don't need to pay them again | 10:16 | |
Juerd | Liz: I've done it before. | ||
gaal | Juerd: I doubt very much that this is *the* major obstacle for acceptance :) but I'll see if I can think of something :) | ||
Juerd | Liz: The easy way is to just negate the invoice with another. ;) | ||
Liz | Juerd: ok, if that works for you! | 10:17 | |
Juerd | Liz: The funny thing about that is that you can reverse the actual buying with that, negating warranty as well. This isn't entirely legal, but bankrupt clients usually don't complain :) | ||
(It's legal until people complain) | |||
Liz | isn't that always the case? | ||
;-) | |||
Juerd | No | ||
This actually is legal :) | 10:18 | ||
Liz | ah, ok | ||
Juerd | It's like sending invoices by email | ||
That's legal | |||
gaal | djb has a very, very sketchy proposal -- an idea really -- for an alternative email architechture. The gist is that the sender ('s ISP) is responsible for storing the email. | ||
Juerd | Until people complain, and you have to comply by sending a hard copy | ||
gaal | "opt out" | ||
Juerd | gaal: I don't like that either | 10:19 | |
I quite like how SMTP works in general | |||
nothingmuch: I don't understand what you say | 10:20 | ||
nothingmuch | Juerd: there are scnearios where you only need to pay a user once | ||
let's say I mail you, and give you 15 seconds of CPU time | |||
or N bits | |||
then you can say "OK, i trust this guy" | |||
and I don't have to do it anymore | |||
gaal | nothingmuch: well, that requires hefty protocolling to get it to work | 10:21 | |
nothingmuch | spamassassin's auto whitelisting is prolly good enough | ||
for 90% of the cases | |||
Juerd | nothingmuch: Right, and how do you know I trust you? | ||
nothingmuch | well, I don't, without a protocol | 10:22 | |
Juerd | Do you just assume this? | ||
Right | |||
nothingmuch | but if i've mailed you 10 times and paid | ||
and now i'm bccing | |||
Juerd | The protocol isn't there, and would be hard to implement. | ||
nothingmuch | it might be safe to mail you without it... this is adhoc knowlege though | ||
btw, camram.org for a protocol | |||
bottom line: hashcash is better than nothing at all | 10:24 | ||
bccing isn't that common for home users | |||
if it is they have a trade off | |||
robkinyon | wrong | ||
nothingmuch | either waste bandwidth or waste privacy | 10:25 | |
robkinyon | bcc'ing is more common than you thin | ||
Juerd | BCCing is extremely common | ||
Painful, but common | |||
robkinyon | for example, let's say i want to send a story to all my friends, but i don't want my friends to know about each other | ||
nothingmuch hasn't met people who use it on a day to day basis IRL, hence my impression | |||
robkinyon | i send it to my self, bcc'ing all my friends | ||
(I learned this trick from someone I taught to cut'n'paste) | |||
Juerd | When people receive a "hahahaha" picture, powerpoint presentation, word document, MP3, video, or even screen saver, they FORWARD it | ||
To ALLLL their friends | 10:26 | ||
The somewhat smarter ones luckily use BCC for this. | |||
nothingmuch | right, but they never remember to BCC | ||
Juerd | Oh, yes they do. | ||
And they should. | |||
nothingmuch | they should not be sending that crap in the first place ;-) | ||
Juerd | But they do | ||
And they love to do it | |||
nothingmuch has yet to get mail where it's BCCed | |||
Juerd | They spread viruses and other malware with it | ||
nothingmuch | but nevermind, this is offtopic | ||
Juerd | They usually even know that this can happen | ||
But that doesn't stop them | 10:27 | ||
robkinyon | nothingmuch: you have received bcc email - you just don't know it | ||
nothingmuch | robkinyon: mailing lists etc don't count | ||
robkinyon | i'm not talking MLs | ||
99.5% probability that anyone with an email addy for at least a year has received at least one bcc'ed email | |||
Juerd | nothingmuch: The absence of mailing lists is what counts here. | 10:28 | |
nothingmuch | robkinyon: right | ||
i'm not saying it doesn't exist | |||
Juerd | The problem is that this measure is invented by someone, who like you, apparently doesn't think BCC mail is important | ||
nothingmuch | i'm saying that when it does happen, hashcash is prolly irrelevant | ||
Juerd | It may not be for hem | ||
In fact, perhaps he has indeed never received any that he liked | |||
robkinyon | i have no idea what hashcash is, but if it makes bcc harder, then it's near-worthless | ||
Juerd | But his ignorance made him design a "solution" that isn't applicable to all of the culture he tries to change | ||
nothingmuch | the issue is that hashcash is just one more tool in a big arsenal of things to tell apart ham from spam | ||
robkinyon | feh | 10:29 | |
gmail is all i need | |||
nothingmuch | robkinyon: it's not for the mail you read, it's for the mail you send | ||
robkinyon | gah | ||
why on earth would i want that? | |||
nothingmuch | so that your mail won't be trashed | ||
robkinyon | if everyone was on gmail, then spam wouldn't exist | ||
Juerd | robkinyon: The idea is that your mail bypasses all blacklists and filters, if you "paid" for it with your CPU time. | ||
gaal | robkinyon: because modulo the bcc problem, and the deployment problem, it more or less solves spam. | 10:30 | |
Juerd | Which, incidentally, is hard, because my CPU sucks a hell of a lot more than yours does. | ||
robkinyon | uhh ... no | ||
gaal | Juerd: weighted bypass, of course. | ||
Juerd | gaal: That's not what hashcash.org suggests | ||
nothingmuch | bah | ||
this is just like habeas | |||
Juerd | gaal: It explicitly mentions the case of a blacklisted open relay. | ||
robkinyon | so, if i have a quad-xeon, i can pay for all my spam with teraflops that i won't need? | ||
gaal | Juerd: like i said, i have to reread that FAQQ. | ||
nothingmuch | and having a good rev pointer | ||
and signing with PGP | |||
Juerd | robkinyon: Yea. | 10:31 | |
nothingmuch | spamassassin will see that info and score it better | ||
robkinyon | feh | ||
$20k and I can send all the spam i want, forever | |||
nothingmuch | it's really not that important | ||
Juerd | robkinyon: And if you have a Pentium 133, you'll have to wait a few minutes per mail, to pay equal bits. | ||
robkinyon | gah | ||
nothingmuch | if you have a pentium 133 find another solution | ||
Juerd | Indeed, the fact that spammers make a lot of money and don't mind investing is once again ignored. | ||
gaal | robkinyon: actually $20k will not be enough. | ||
robkinyon | That's a bad answer, nothingmuch | ||
Juerd | gaal: Oh, it will be. | ||
nothingmuch | robkinyon: my argument is, for the third time: this is just another measure | 10:32 | |
gaal | Juerd: I think not. | ||
nothingmuch | it's not the one true solution | ||
let's please stop bickering about this | |||
Juerd | gaal: feather cost me 400 euros | ||
gaal: 20k buys me 50 of those. | |||
robkinyon | gaal: Or, I could buy 20 $300 Dell machines which are 3GHz processors and beowulf them | ||
Juerd | gaal: Guess how many cashing hashes I can crunch out with such a cluster. | ||
And yeah, it doesn't need to be as solid as feather is | 10:33 | ||
robkinyon | $6k for, what, 60GHz throughput? | ||
Juerd | You can use cheap mainboards, cheap CPUs (AMD), no RAID. | ||
In fact, no hard drive is needed even | |||
10:33
wcting is now known as whiteg
|
|||
robkinyon | Heck, if you're any good at programming, you could link up all those 133's using Fialta (www.fialta.org) and be even stronger | 10:33 | |
nothingmuch | 60GHz is still not enough to send 24bits to 1 million addressees in reasonable time | ||
but this is soooo besides the point | 10:34 | ||
there is also the technical factor | |||
people who bother doing it are more credible | |||
Juerd | Spammers aren't stupid | ||
nothingmuch | but it's just another heuristic | ||
robkinyon | a random spammer could pay me $10k to set that up for him | ||
Juerd | Only half of them are. | ||
nothingmuch | and a pretty good one for some things | ||
robkinyon | I'd even host it | ||
for $10k | 10:35 | ||
Juerd | nothingmuch: We have spammers who want to use our data centre. They don't mind paying BIG money for "bullet proof" (no questions asked, no policies, open access no matter what) hosting | ||
gaal | robkinyon: don't lose your day job :) | ||
robkinyon | gaal: LOL | ||
Juerd | nothingmuch: They are rich. They have enough money to counteract most measures, including ones that don't do much like hashcash. | ||
nothingmuch | still, this is besides the point AS IT"S JUST ANOTHER HEURISTIC | ||
rafl_ | What's util/catalog_* ? | ||
Juerd | nothingmuch: The heuristic costs a lot, with very little benefit. | ||
nothingmuch | ffs, you don't have to use it | 10:36 | |
robkinyon | nothingmuch: It's a heuristic which is kind of like a gun-control law | ||
nothingmuch | but right now, no spammers use it | ||
robkinyon | all the law-abiding people are going to do it | ||
nothingmuch | if you use it, spamassassin will be nice to you | ||
that's it | |||
that's all i'm saying | |||
robkinyon | all the criminals (against whom the law is supposed to deal with) are going to ignore or bypass it | ||
Juerd | nothingmuch: The situation here is that I'm asked if I want it on feather | ||
10:36
rafl_ is now known as rafl
|
|||
nothingmuch | hell, you could write a virus that makes hashcashing a distributed computing thing | 10:36 | |
Juerd | nothingmuch: I find this hard to answer, because I think it's a waste of resources | 10:37 | |
nothingmuch | Juerd: then say no, and that's that | ||
gaal | also: some other messaging systems like IM, SMS, etc. can certainly benefit form it. If you ever find yourself designing such a system, please consider hashcash. | ||
Juerd | nothingmuch: On the other hand, its use will be so limited that *practically* it will not be a problem | ||
nothingmuch | anyway, i'm off to have lunch | ||
Juerd | nothingmuch: So I'm considering theory versus practice, and am thinking out loud, at the same time including your arguments in my thinking and responding to them. | ||
gaal | Juerd: never moose then, it's not important. | 10:38 | |
Juerd | gaal: I want you to know WHY I don't like it. You can use it, sure. | ||
As a sysadmin, I light the green light. | |||
As a fellow IRC user, I more or less think you're walking a useless path | 10:39 | ||
gaal | Juerd: ACK. I appreciate your objections -- they're new to me and interesting -- but if this is turning into an argument, I don | ||
't want to pursue it. | |||
Juerd | Neither do I | 10:40 | |
As said: I was just thinking aloud | |||
And other voices joined my thinking :) | |||
robkinyon | anyone here use Class::Roles (chromatic's version) ? | ||
gaal | Okay :) | ||
Happy birthday CPAN? | 10:42 | ||
nothingmuch | lisppaste3: ping | 11:52 | |
crap | |||
Liz: ping | |||
lisppaste3 | pong :) pasted "pong :)" at paste.lisp.org/display/12936 | 11:54 | |
Liz | pong | 11:55 | |
nothingmuch | can you add a raise_errors option to C::M::M? | 11:56 | |
Liz | hmmm... | ||
what kind of errors are you thinking about? | 11:57 | ||
nothingmuch | e.g. if i did $cache->set(...); | ||
Liz | C::M::M is supposed to be as silent as possible | ||
nothingmuch | and it didn't set | ||
exactly | |||
but when the fallbacks eventually snuff it, i will die anyway | |||
this way I don't have to remember | 11:58 | ||
Liz | I guess you would want this in C::M as well... | ||
nothingmuch | especially since errors are uncommon in practice | ||
in C::M there's just "worked" or "didn't work" | |||
Liz | well, if a memcached server has died, you'd want each and every set to scream? | ||
nothingmuch | if caching is not actually working i'd like that, yes | ||
Liz | hmmm... | 11:59 | |
patches welcome... ;-) | |||
nothingmuch | the situation I would like the user to know about is when I try to store, but I wouldn't be able to ->get afterwords | ||
Liz | but you're not sure you'll be able to get afterwards anyway | ||
it's a cache,, not a db! | |||
nothingmuch | i know | ||
but if i know that I'm 100% sure that I won't be able to | 12:00 | ||
because the server died | |||
Catalyst uses this stuff for session management | |||
it's not the end of the world if sessions are zapped as long as the user knows | |||
i'm rewriting the plugins now | |||
on the TODO list is also Session::Store::DBI which is a safer alternative | |||
but if the user wants to use memcached they should know when it's 100% not working | 12:01 | ||
Liz | I see... | ||
nothingmuch | if it works most of the time, and data loss happens, it's part of the deal | ||
Liz | I'll think about it... ;-) | ||
nothingmuch | if no server is available whatsoever, otoh | ||
okay, forget raise_error for a second | |||
in the current module, what is the most reliable way for me to check whether this is the case | |||
? | 12:02 | ||
Liz | C::M::M->inactive? | ||
no, more accurately: "dead" | 12:03 | ||
nothingmuch | so i should check for ->dead after i set? | ||
Liz | hmmm... if you want performance: no | 12:04 | |
nothingmuch | oh, no, that's a big check | ||
nothingmuch just read the source ;-) | |||
okay, screw it | |||
if the user wants reliablility, they can just use DBI | |||
i'm dying if ->set returns false, and that's it | |||
robkinyon | C::M::M? | ||
Liz | yep, that;s the idea... ;-) | ||
Cache::Memcached::Managed | 12:05 | ||
robkinyon | ahh | ||
so, completely unrelated to C::MM (both variations) or C::M or MM2.0 | |||
:-p | |||
Liz going out for some R & R... | |||
nothingmuch | =) | 12:06 | |
thanks for the advice | |||
12:07
Ikarus_ is now known as Ikarus
|
|||
gaal | clkao: ping | 13:08 | |
clkao | gaal: hi | 13:26 | |
raptorXXX | hi, test | 13:29 | |
gaal | clkao: hello. i'm getting an error in SVN::Web... | 13:30 | |
Revision.pm around line 41 | |||
raptorXXX | i have missed the latest activity on perl6..so some questions if possible.. | ||
clkao | uhm. i htink that's solved by nik | ||
gaal | apparently $self->{repos}->get_logs is failing | ||
oh! | |||
good :) | 13:31 | ||
raptorXXX | ~~ dosnt work ? isn't it.. i have to use p5-regex | ||
gaal | is there an sv{n,k} repo I can grab the latest sources from? | ||
kolibrie | raptorXXX: rules work, but are not yet stable, so p5 regexes are still recommended | 13:32 | |
gaal | raptorXXX: do you have parrot? | ||
raptorXXX | yep i'm on gentoo | ||
and there is pugs and parrot ebuilds | |||
6.2.9 and 02.3 | |||
gaal | raptorXXX: you need parrot 0.3.0 or even newer afaik | 13:33 | |
raptorXXX | next questions? does | ||
{ | |||
PRE {} | |||
NEXT {} | |||
BLAH {} | |||
} | |||
work | |||
gaal | generic answer: check out the smoke tests :) | ||
smoke.pugscode.org | |||
raptorXXX | aha..ok | 13:34 | |
i'm goin trought docs... and try different things.. | |||
:).. so rules are not here yet !? | 13:35 | ||
if i try : print 123 if "blah" ~~ /blah/; | |||
i get : | |||
Parrot VM: Can't locate PGE.pbc, code 2. | |||
Couldn't find PBC file | |||
#locate PGE.pbc | 13:36 | ||
/usr/lib/parrot-0.2.3/runtime/parrot/library/PGE.pbc | |||
gaal | 15:33 < gaal> raptorXXX: you need parrot 0.3.0 or even newer afaik | ||
raptorXXX | so it seems to be here, is there a way to point the path.....ok | ||
i will try to upgrade | |||
kolibrie | raptorXXX: you might want to upgrade pugs, too | 13:37 | |
raptorXXX | yep..is there big changes in the way they : parrot, pugs | ||
compilation changed | 13:38 | ||
if not i will be able to make .ebuild for them quickly | |||
13:40
xerox- is now known as xerox
|
|||
gaal | clkao: sooo, can i grab the latest sources from somewhere? I have a patch I want to work on. | 13:41 | |
raptorXXX | i see in examples that sometimes %hash<blah> | 13:43 | |
is used | |||
does this mean that <> and {} can be used intergangably | |||
theorbtwo | They aren't completely interchangable, but do more or less similar things. | 13:45 | |
<> takes a string, {} takes an expression. | |||
raptorXXX | i see, thanx | 13:46 | |
u do not need to use qoutes | |||
gaal | raptorXXX: if you use {} you do | 13:47 | |
<> *is* a form of quoting, {} isn't. | |||
so: %hash<mykey> vs. %hash{'mykey'} | |||
there are no barewords in Perl 6, so %hash{mykey} is wrong. | 13:48 | ||
clkao | gaal: uhm it's not in trunk yet. i should talk to nik | ||
raptorXXX | i see | ||
gaal | clkao: okay. i have to go now.. but can you give me the repo url for when i come back? :) | ||
gaal waves & | 13:49 | ||
clkao | it's in svn://svn.clkao.org/members... | ||
Juerd | 15:48 < raptorXXX> does this mean that <> and {} can be used intergangably | 14:00 | |
No, %foo<...> is like %foo{<...>} | 14:01 | ||
It's just a convenient shorthand :) | |||
eric256_ | morning all | 14:11 | |
raptorXXX | morning/afternoon :) | ||
rafl | I wonder if there will be modules for perl6 like those XS modules in perl6 which are unportable between architectures. | ||
Juerd | Thure will. | ||
s/u/e/ | |||
There will be platform specific modules, for instance to communicate with the platform :) | 14:12 | ||
xerox quotes "those xs modules" .. ;-) | 14:13 | ||
eric256_ | no communitcateing with the platform allowed!!! ;) | ||
hey Juerd looks like your rally for ^ might be catching on ;) | |||
Juerd | Yeah :) | 14:14 | |
My first sigil ;) | |||
xerox | What would it do? | ||
eric256_ | it lest you have kinda template types. sub x (^T $x) { }....now the type of the passed $x is in ^T | 14:15 | |
where type is not the right word according to powers that be. ;) | |||
autrijus | ;) | ||
rehi :) | 14:16 | ||
autrijus ponders "JavaScript as XS" and "PIR as XS" | |||
clkao | eek! | 14:17 | |
xerox | Oh, is xs something specific? | ||
autrijus | clkao: 1 EEK = 0.06 EUR | ||
xerox | I thought it was a pun to say "a bunch of things" as in: a list - xs :-) | 14:18 | |
clkao kicks autrijus | |||
autrijus | xerox: XS is this scary language perl5 is written in | ||
it's a language defined as a set of C macros. | |||
xerox | That's funnier. | ||
clkao | xs4all | ||
theorbtwo | The existance of XS is one reason that the perl6 project has the shape that it does. | 14:20 | |
autrijus | theorbtwo++ # acute observation | 14:22 | |
it is also why mugs were thrown ;) | 14:23 | ||
obra | autrijus: why XS not inline? | ||
theorbtwo | Inline is a layer around XS. | ||
autrijus | obra: sure, inline gens xs | ||
the idea is that instead of having a "single" xs | 14:24 | ||
p6 should just use whatever lower level language its runtime uses | |||
including but not limited to js, pir, p5 | |||
obra | nod | ||
theorbtwo | But that means you're stuck with a lower-level. | ||
autrijus | which is already an improvement from XS... | ||
theorbtwo | If I want to use a module that uses js and one that uses pir, I'm screwed. | ||
autrijus | theorbtwo: if gen native C | ||
then the XS in question would be C | |||
theorbtwo: why screwed? you are screwed only iff js<->pir | 14:25 | ||
is not there. | |||
theorbtwo | OK, gotcha. | ||
robkinyon | autrijus: Does this mean that there's going to be multiple runtimes installed?? | ||
or runtime translators ... ? | |||
autrijus | robkinyon: I suspect so, and I suspect for a while both parrot and p5 will be installed | ||
robkinyon: runtime translators is something else that probably can't be counted on to exist easily | 14:26 | ||
theorbtwo | Compiling perl6 to $whatever is hard enough, without making ourselves write $whatever to perl6 compilers as well. | ||
robkinyon | so, theorbtwo's concern is valid ... | 14:27 | |
autrijus | theorbtwo: yup. now any<->pir is the goal of parrot | ||
er | |||
robkinyon: yup. now any<->pir is the goal of parrot | |||
so there is really two layers: p6<->any and any<->pir | |||
robkinyon | igh | ||
autrijus | I used to think they clash unneccessarily | ||
robkinyon | ugh, even | ||
autrijus | now I think it's complementary, in a egg-basket sense as well as a common-libraries sense | 14:28 | |
theorbtwo | Don't we want p6->pir, and pir->whatever (with perl6 being a whatever)? | ||
autrijus | it's more like p6->* and *->pir, I think | 14:29 | |
pir->* is... kind of hard. | |||
(energy flows from higher level abstractions to lower level ones) | |||
pir->* amounts to disassembly. | |||
theorbtwo | Wasn't the point of pir to be easy to implement? | ||
autrijus | mm, I missed that note | ||
maybe. | 14:30 | ||
in which case it'd make sense :) | |||
theorbtwo | It's quite possible I'm simply wrong there -- the introduction of pir was about the time when I stopped knowing what was going on. | ||
Oh. Wait. | |||
I'm thinking of pil, not pir. | |||
autrijus | :D | ||
so yes. p6->pil (only), pil->*, *->pir | |||
raptorXXX | pil = pugs intermediate lang, pir = parrot.... ?! | 14:31 | |
autrijus | it is quite interesting to think about *->pil . | ||
robkinyon: parrot intermediate representation | |||
er | |||
s/robkinyon/raptorXXX/ | |||
stevan_ | hey autrijus ! | ||
14:31
stevan_ is now known as stevan
|
|||
autrijus | greetings stevan san! I'm back to sanity and life :) | 14:31 | |
clkao | from insanity and lifeless? | 14:32 | |
stevan | yes I read some of your links last night | ||
good to have you back :) | |||
autrijus | it's very fortunate that I didn't post it verbatim | ||
putter++ obra++ # sanity guard | |||
stevan | autrijus: I dont think they were that bad,.. but then I am not a good sanity guard | ||
autrijus | lol | ||
raptorXXX | p6->pil (only), pil->*, *->pir <--|| so this is how pugs work ?? | ||
autrijus | no it wasn't that bad, just the tone is wrong | ||
robkinyon: yes | |||
sigh | |||
raptorXXX: yes | |||
stevan | autrijus++ # using the right tools for the job :P | 14:33 | |
autrijus needs to tabcomplete with 2 | |||
nah, I never use people as tools :p | |||
frameworks, maybe | |||
stevan | :) | ||
autrijus | and I got (unsolicited) mail saying I should never turn down grants prematurely | ||
clkao | don't say the f-word! | 14:34 | |
autrijus | with lots of encouragement words | ||
raptorXXX | pil is Haskell?? | ||
autrijus | raptorXXX: PIL is abstract data structure | ||
raptorXXX: you can output that structure in JSON, Perl5, Haskell, PIR, whatever | |||
using pugs -C | |||
raptorXXX | pugs -CPUGS | ||
aa yeah | |||
i see :) | 14:35 | ||
stevan | autrijus: so what is the plan to do now that you are back "online" | ||
autrijus | stevan: anyway, I think my mind is back in shape and the guilt trip is over :) | ||
theorbtwo | Oh. pugs -CPerl5 only outputs the pil structure as perl5 code -- it doesn't actually include anything to /run/ it. | ||
autrijus | stevan: ok. the plan is that I finish delivering 4 talks to cph.pm tonight | 14:36 | |
theorbtwo: yup. that's what codegen and object space and runtime come in | |||
stevan | I mean for the 10 days at liz's :) | ||
stevan ponders a plane ticket to amsterdam | |||
autrijus | stevan: it depends on how long you'd be around | 14:37 | |
ooh, that would Absolutely Rock | |||
stevan is kidding,..but its a nice thought | |||
autrijus | :/ | ||
stevan | autrijus: $work is slow enough that I am at your disposal | ||
autrijus | but without flying here | ||
tsk tsk : | |||
:) | |||
anyway, I think we need to gobby a lot. | |||
stevan is still working off the YAPC::NA trip :) | 14:38 | ||
autrijus | lol | ||
I'm thinking first working out the (admittedly preliminary) object space model fully, based more on perl5/P6-MM | |||
stevan | ok, I have some of that started,.. I will commit it by this weekend | 14:39 | |
autrijus | wonderful | ||
and I think we ignore the p6l type/obj/class/foo thread for now. | |||
stevan | autrijus: yes, probably a good idea until it gets worked out | ||
autrijus | I tried working some of it in in amsterdam | ||
stevan | in fact,.. the object space might help work it out | 14:40 | |
autrijus | but that killed the short amount of productivity ;) | ||
mind you, that was during the introduction of the cent sign. | |||
stevan | I mush prefer the ^ to the Ā¢ | ||
autrijus | me too | 14:41 | |
anyway, so I think we focus on the far less ambitious goal of having roles Just Work. | |||
Jooon | ^foo Ā¢foo ... | ||
autrijus | and yes, spec out the objspace would help too | ||
(which will also generate new tshirt designs) | |||
stevan | roles working in the context of the current objects in Pugs? or with MM integration? | 14:42 | |
autrijus | with MMinteg | ||
but with the solid parts of MM | |||
may or may not include the eigenstuff | |||
stevan | I was just going to say that | ||
autrijus | my gut feeling is that it simplifies design | ||
but we'll see how much we keep during gobby | 14:43 | ||
the basic idea is to have t/oo/ pass reasonably and make dduncan and chromatic's OO workaround (due to lack of roles) go away | |||
stevan | ok | ||
autrijus | as well as come out with more precise questions to p6l / @Larry | ||
as you have been doing | 14:44 | ||
I think that is reasonable for 10 days. | |||
and I'd be happy to declare it 6.28.0 | |||
whatever type system thing does not belong to this milestone. | |||
stevan | sounds like a plan to me :) | ||
autrijus | thanks for your patience :) | ||
stevan | :) | ||
if I had wait any longer I would have started MM 3.0 ;) | 14:45 | ||
autrijus | oh we still do, just this time it's integed and I get to have the fun too | ||
stevan | :) | ||
autrijus | I have some $job (delayed for 2+month) to finish up; I think it'd take 2hr (but realistically more like 10), so tomorrow is dedicated to that | 14:46 | |
on the day after tomorrow I'll be at Liz's at afternoon. | |||
so we can start working a bit right then | |||
obra | autrijus: what are you and liz to be workign on? | ||
stevan sets his clock to .nl time | |||
autrijus | and then I'll be full time on this for 9 days :) | ||
obra | autrijus: I'd love to see you and liz get a rough spec for parrot/perl6 threads figured out | ||
autrijus | obra: object space... | 14:47 | |
obra: oh, threading. that is so not my forte :) | |||
obra | since I bet liz is one of the most qualified people to have ideas | ||
autrijus | but it is liz's | ||
yeah, I'd be happy to enlist her | |||
obra | we really, really need a perl6/parrot threading spec | ||
theorbtwo | That sounds like it's worthy of a "yey". (9 days of full time hacking.) | ||
autrijus | theorbtwo: and I won't go back juggling $job even after I return to .tw for a month | 14:48 | |
obra | autrijus: is this the end of $job{tw}? | ||
autrijus | obra: yes. | ||
still cleanup stuff to do | |||
obra | woot | ||
autrijus | but no active devs | ||
obra: do we have braindump of dan re thread? | |||
obra | I'm not sure. | ||
autrijus | mm, ask around? any bit would help | 14:49 | |
raptorXXX | i saw in examples async{} ?? is this a fork or thread or ? | ||
autrijus | it's raised today at perlmonks.org/?node_id=502347 | ||
raptorXXX: the idea is "you won't need to care" :) | |||
obra | I am asking around. as "any bit would help" and I've found none. | ||
autrijus | obra: (!) :-/ | ||
raptorXXX: it's conceptually a thread. | |||
obra | but yeah. magic autothreading to support multicore CPUs would be a win | ||
raptorXXX | that is good :) | ||
dwiming is good | 14:50 | ||
autrijus | raptorXXX: it's hardly new though -- see Liz's expert work | ||
raptorXXX | where ? | ||
autrijus | search.cpan.org/dist/forks/ | ||
threads on systems without threads. | |||
raptorXXX | thanx | ||
theorbtwo | I'd like for async {} to be pretty well gaurnteed to /not/ be terribly slow, so I can sprinkle around asyncs in my code whereever I think it might help without too much wondering if this purticular arch takes .3 seconds or 3 seconds to start one. | 14:52 | |
autrijus | yes. | ||
integral | n:m threading, like ghc-smp, then? | 14:54 | |
theorbtwo | I suppose that's a bit pie-in-the-sky to be a useful statement. | ||
autrijus | integral: yes, when running on ghc :D | ||
Parrot needs something like it and leo has a preliminary nonimplemented design | |||
and dan had more ideas and he declares he'd write it down for Cola. | 14:55 | ||
which is good, but seeing there's no public svn for Cola yet.. :) | |||
theorbtwo | As in there are always 2 OS-level threads on a dual-processor machine, and within those OS-level threads, there are as many POE-ish threads as the running program thinks there are? | ||
integral | yep. an async block then just has to push the closure onto a global STM-array, any OS thread without work will be blocked in a retry waiting for that array to change | 14:56 | |
theorbtwo | Sounds lovely. | 14:57 | |
integral | hmm, I suppose you also need to create the STM-var for the result too, hrm | ||
theorbtwo | Is for @foo -> $x {async {dosomethingon($x)}} still spelt that way, or operate-on-a-junction, or do we have a nice name for it? | 14:58 | |
integral | hmm, and I suppose infinite loops are a bit of a problem | ||
theorbtwo | My biggest question is what happens to variables that are in scope in multiple threads -- that's the difference between 5005 threads and ithreads, from a user perspective. | 15:00 | |
obra | would they become a junction of the two values? | 15:01 | |
autrijus | theorbtwo: explicit sharing is the way to go | ||
theorbtwo | I'd think that'd be both most-surprise and slowest. | ||
I agree, autrijus. | |||
PerlJam | theorbtwo: isn't the main difference that variables must be explicitly marked as shared in ithreads and that's it? | ||
s/main/only/ even | |||
integral | hmm, what I said above works fine for evaluating haskell's thunks, but for general threads you need your own scheduler too, since infinite loops are normal | 15:02 | |
theorbtwo | Yes -- variables that exist in both spaces when a thread splits in ithread-world need to be marked as shared, or they get cloned. | ||
This is both what makes ithreads easy, and what makes it slow. | |||
I'd like to be able to fire off an async every time I want to make a DNS request, for example. | 15:03 | ||
integral | if parrot as well as GHC has STM, it's much cheaper to essentially have a lock on every variable | ||
theorbtwo | If splitting threads is fast, this makes perfect sense. If splitting threads is slow, then I have to worry if just blocking on the DNS request would be faster then splitting off a thread to do it. | ||
I'd prefer a world, myself, where I have to mark as shared if I want it, but instead of cloning the world on thread split, we copy on write. | 15:05 | ||
integral | "splitting threads"? I thought async was more like CreateThread than fork, in that when the block gets to the end, the block's finished, and you get the block's value returned from the async? | ||
theorbtwo: what about recursive sharing? | 15:06 | ||
15:06
stevan_ is now known as stevan
|
|||
theorbtwo | The copy that just tried to modify the variable makes it's own copy; the other ones keep using what they have. | 15:06 | |
integral: I think it is... perhaps I'm barking up the wrong tree completely. | 15:07 | ||
I know enough about ithreads and 5005threads to dislike both of them, and I'm wondering how to have ithreadish semantics, and 5005threadlike speed. | 15:08 | ||
integral | to me, everything should be shared, and thread-local data should be created via closure: sub make_thread { my $local_data; async { ... } } | ||
plus then there's no confusing when you start passing referencing to variables between threads: there's always only one variable | |||
theorbtwo | Sounds like you're starting a subprocess and not a thread at all. | 15:09 | |
They live in completely different worlds, and there's no way of them interacting. | 15:10 | ||
autrijus | cph.pm meeting & | 15:11 | |
integral | they interact via the variables they share: my $a; async { atomic { if ($a) { say "done"; } else { retry } } }; async { sleep(5); $a = 1 }; | ||
xerox | Does it work in current pugs? | 15:12 | |
theorbtwo | Oh, wait, nevermind. | ||
theorbtwo shakes his head back and forth violently. | 15:13 | ||
xerox | STM? | ||
integral | xerox: I don't think atomic/retry are exposed to perl level, but all the internal mutable variables are TVars | 15:14 | |
?eval my $a; async { say "a: " ~ $a++ }; async { say "b: " ~ $b++ }; for (1..100) { 0; } | |||
evalbot_7748 | undef | ||
integral | ?eval my $a; async { say "a: " ~ $a++ }; async { say "b: " ~ $q++ }; for (1..100) { 0; } | ||
evalbot_7748 | a: 0 undef | ||
integral | ?eval my $a; async { say "a: " ~ $a++ }; async { say "b: " ~ $a++ }; for (1..100) { 0; } | ||
evalbot_7748 | a: 0 b: 1 undef | 15:15 | |
theorbtwo | ?eval time | ||
evalbot_7748 | 91870654257453/500000 | ||
integral | ooh, cool | ||
?eval atomic { say "test" } | |||
evalbot_7748 | Error: No compatible subroutine found: "&atomic" | ||
theorbtwo | ?eval my $a; async { say "a: " ~ $a++ }; async { say "b: " ~ $a++ }; my $starttime=time; while (time-$starttime < 3) { 0; } | 15:16 | |
evalbot_7748 | a: 0 b: 1 bool::false | ||
eric256_ | ?eval my $a; async { say "a: " ~ $a++ for (1..10)}; async { say "b: " ~ $a++ for (1..10)}; | ||
evalbot_7748 | a: 0 a: 1 a: 2 a: 3 a: 4 a: 5 b: 6 b: 7 b: 8 3 | ||
theorbtwo | Why are all these tries all a then all b? | 15:17 | |
eric256_ | why did it stop...it should have gotten to 19.. | ||
because async doesn't work yet? | |||
?eval my $a; do { say "a: " ~ $a++ for (1..10)}; do { say "b: " ~ $a++ for (1..10)}; | |||
evalbot_7748 | a: 0 a: 1 a: 2 a: 3 a: 4 a: 5 a: 6 a: 7 a: 8 a: 9 b: 10 b: 11 b: 12 b: 13 b: 14 b: 15 b: 16 b: 17 b: 18 b: 19 undef | ||
integral | because GHC isn't interrupting any of the threads to schedule another because it's so fast? | ||
eric256_ | ?eval my $a; async { for (0..10) { sleep 2; say "a: " ~ $a++}}; async { for (0..10) { sleep 1; say "b: " ~ $a++}}; | 15:18 | |
evalbot_7748 | 3 | ||
eric256_ | ummm....what? | ||
?eval my $a; async { for (0..10) { sleep 2; say "a: " ~ $a++}}; async { for (0..10) { sleep 1; say "b: " ~ $a++}}; sleep(10); | |||
evalbot_7748 | Error: No compatible subroutine found: "&sleep" | ||
eric256_ | ?eval my $a; async { for (0..10) { sleep 2; say "a: " ~ $a++}}; async { for (0..10) { sleep 1; say "b: " ~ $a++}}; sleep 10; | ||
evalbot_7748 | Error: No compatible subroutine found: "&sleep" | ||
integral | ?eval my $a = async { 5 }; $a | ||
evalbot_7748 | \2 | 15:19 | |
eric256_ scratches head | |||
xerox | ?eval async { say "hi"; sleep 1 } for (1..10) | ||
evalbot_7748 | hi hi hi hi hi hi hi hi hi hi undef | ||
eric256_ | ?eval sleep 5; | ||
evalbot_7748 | Error: No compatible subroutine found: "&sleep" | ||
eric256_ | does sleep only work inside async? or is async eating the error? | 15:20 | |
theorbtwo | You might want to try the " my $starttime=time; | ||
while (time-$starttime < 3) { 0; }" | |||
thing. | |||
I would expect async to eat errors -- where would it report them to? | |||
integral | ?eval die "foo" | ||
evalbot_7748 | Error: foo | ||
integral | ?eval async { die "foo" } | ||
evalbot_7748 | 2 | 15:21 | |
theorbtwo | WTF? | ||
?eval aync { die "foobar" } | |||
evalbot_7748 | Error: No compatible subroutine found: "&aync" | ||
theorbtwo | ?eval async { die "foobar" } | ||
evalbot_7748 | 2 | ||
xerox | ahah | ||
integral | hmm, I think async should return the value of the block, so if it dies, it would return an unthrown exception (undef) | ||
theorbtwo | ?eval async { try {die "foobar"}; return $@ } | ||
evalbot_7748 | Error: unexpected "$" expecting block construct, ":", "::", term postfix, operator, postfix conditional, postfix loop, postfix iteration, ";" or "}" | ||
xerox | It returns an increasing number in my pugs, heh | 15:22 | |
integral | (ie, if the thread hasn't finished yet, wait/join for it) | ||
it's the thread ID | |||
eric256_ | that obviolsly didn't take 10 secnods.... | ||
oh wait...it shouldn't. /me is confused by async | |||
woo.... asyn in interactive pugs does weird things | 15:23 | ||
realy realy weird things | |||
thats just a whole new way of looking at things. /me begins to plot and plan. ;) | 15:29 | ||
?eval sub sleep ($time) { my $start = time; 1 while (time < $start + $time) };my $a; async { for (0..4) { sleep 2; say "a: " ~ $a++}}; async { for (0..4) { sleep 1; say "b: " ~ $a++}};sleep 8; | 15:30 | ||
evalbot_7748 | b: 0 a: 1 b: 2 b: 3 a: 4 b: 5 b: 6 a: 7 a: 8 bool::false | ||
theorbtwo | Allo, Joshua. | ||
eric256_ | any reason not to implement a sleep like that in prelude? | ||
integral | because it's evil? 8) | 15:31 | |
theorbtwo | Sleep works from -e for me. | ||
integral | theorbtwo: the real sleep isn't a safe function. | ||
theorbtwo | I'd prefer sleep not eat CPU per default. | 15:32 | |
eric256_ | ahhh i just thought it wasn't implemented at all | 15:34 | |
but i just rechecked and it does work on the command line. nm ;) | 15:35 | ||
why isn't sleep safe? | |||
and where the heck is async documented? is that a pugs feature? lol | 15:37 | ||
Limbic_Region | geoffb (and anyone who likes puzzles/golfs/etc) - there are several at the Monastery today that were fun if interested | ||
gaal | eric256_: async isn't specced, the implementation is quite short (see Prim.hs:470) | 15:39 | |
eric256_ | and cryptic ;) | 15:40 | |
is there any join/wait that will wait for all async processes? | |||
maybe an async should return an id that you could later kill/join? | 15:41 | ||
cool there is a kill and join implemented, and asyn does return the thread. /me shuts up for now. ;) | 15:43 | ||
gaal | eric256_: the semantics are haskell's. haskell.org/ghc/docs/latest/html/li...rrent.html | 15:45 | |
eric256_ | we need a document that | ||
shows what pugs does that isn't in the spec. ;) | 15:46 | ||
theorbtwo | Eric: Start with a document that shows what functions there are that don't have any { L<...> } annotations? | ||
eric256_ | yea i'm working towards that. i also found a way to highlight passing/failing/todo tests. ;) | 15:47 | |
theorbtwo | Cool, but I meant in the source code. | ||
eric256_ | theorbtwo...so did i | ||
ohhh wait | |||
the source has L<> links? | 15:48 | ||
autrijus | rehi :) | ||
<- in a foodplace nearby cph.pm meeting | |||
theorbtwo | eric: It probably should... | 15:49 | |
eric256_ | we should tag autrijus with one of those gps tags.. hang it from his ear and we could play "where in the world is autrijus" | ||
obra | food++ | ||
theorbtwo | autrijus: Have a nice meeting? | ||
clkao | autrijus: enjoying cph? | ||
theorbtwo | Oh: Copenhagen! | ||
autrijus | clkao: yeah, defekt's place is neat | ||
theorbtwo: meeting starts in 10mins | 15:50 | ||
clkao | scary off by 2 abbr | ||
clkao grins | |||
autrijus | ;) | ||
autrijus practices marathon 4-talks-in-a-row skillz | |||
happily this is the last of my speaking tour this month... looking forward eagerly to code | 15:51 | ||
theorbtwo | Autrijus: What do you think of L<...> tags in the source? | ||
autrijus | theorbtwo: in hs src? p5 src? | ||
eric256_ | hs src | 15:52 | |
theorbtwo | Haskell. | ||
eric256_ | then code/tests/ and documenation would all be linked together | ||
one giant cross reference ;) | |||
theorbtwo | It should be noted that this isn't the first time this has come up... I don't remember why it hasn't happened, though. | 15:53 | |
autrijus | nodnod | ||
instead of L<> | |||
haddock just uses <> | |||
gaal | theorbtwo: fwiw, I'm not sure I like it if the emphasis is on coverage. In the tests sure, the more L<> the merrier | ||
autrijus | which is still greppable | ||
eric256_ | gaal .... ?? | ||
autrijus | theorbtwo: so L<> to Syns? | 15:54 | |
gaal | eric256_: sometimes "where is this implemented" doesn't have a point answer | ||
theorbtwo | That's my thinking, yeah. | ||
eric256_ | gaal. sure but, what is this implementing should have an answer | 15:55 | |
theorbtwo | gaal, even worse, sometimes "what does this implementing" doesn't. | ||
For some things, though, it's pretty clear, or indicates a documentation bug. | |||
autrijus | theorbtwo: I think it makes sense. | ||
eric256_ | it wouldn't be striving for 100% coverage. just some cross reference so everyone is on the same page | ||
we could even add a P01 or something like S for stuff pugs implements that isn't realy speced yet | 15:56 | ||
gaal | there's a P01 doc :) | ||
(is a P02 planned still?) | |||
eric256_ | whats P01? | ||
gaal | A Pugs Cryphon. | ||
eric256_ | ahh. hows taht for DWIM ;) | ||
gaal | apocrypha really, but well. | 15:57 | |
theorbtwo | There is something of a problem in that Haddock's <> expects a URL, not a whatever-it-is-we-want. | ||
gaal | theorbtwo++ nothingmuch++ # we want Xanadu! And we got the nice parts of it ;) | 15:58 | |
autrijus | gaal: PA02 ("architecture") is planned, but as you may have noticed, the architecture keeps changing ;) | 15:59 | |
gaal | hee :) | ||
Liz | Autrijus: could it be your email is bouncing? | 16:08 | |
gaal | boing! | 16:09 | |
autrijus | Liz: was bouncing for 24hr | ||
should be fine now | |||
Liz | it still now... | ||
autrijus | mm try [email@hidden.address] | ||
I'll fix it properly | |||
tonight | |||
Liz | okidoki | ||
autrijus | (actually fixing it now... sec) | 16:10 | |
oh wait | 16:11 | ||
I got the mail alright | |||
it's forwarding to both gmail and aut.dyndns.org | |||
the latter bounced | |||
so you got bounce | |||
but I did receive your mail | |||
Liz | well, Wendy's actually... no? | ||
autrijus | and yes, I arrive at 13:25 2005-10-29 | ||
oh, I got hers too | 16:12 | ||
no restriction whatsoever on dietary | |||
Liz | cool... so chocchip cookies are ok? ;-) | ||
autrijus | yup ;) | 16:13 | |
oh, diet coke, in large amount. | |||
gaal takes note also :) | |||
Liz | good to know: we usually don't have that... | ||
autrijus | leo bought huge 6pack glass for me | 16:14 | |
Liz | (in large amounts, that is) | ||
autrijus | I finished 3 boxes of glass bottles during the week or so of stay | ||
clkao | autrijus: go get uk visa in amsterdam | ||
autrijus | probably not going to be that overdosed now | ||
clkao: ;) | |||
obra | autrijus: what about diet decaf coke? | ||
clkao | i have a spared room mid november | ||
autrijus | obra: that works too | 16:15 | |
clkao: my plane backto .tw = 9nov | |||
gaal | i wonder how often autrijus needs to get new passports with all the stamps he goes through. | 16:21 | |
s/he/they/ | 16:22 | ||
theorbtwo | Presumably, he has a heavy-traveler's passport, with extra pages. | 16:27 | |
gaal | ah, so that's what air crew and diplomats use? i always wondered :) | 16:31 | |
eric256_ | if you are printing out a bunch of index files, is there any advantage to asyncing them so they happen in parrallel? i'm not realy versed on this type of programming.. | ||
i guess the question is realy: when will async{} benefit me? | |||
Liz | when stuff can be done in parallel | 16:32 | |
or when you don;t want to wait for external I/O (HD, socket. etc) | |||
eric256_ | Liz... but whats a simple yardstick for when things can be done in parrellel? for instance i'll be scanning 100+ files and doing regex on them. any concievable advantage of asyncing that? | ||
Liz | depends on your HD speed... | 16:33 | |
eric256_ | lol. so no simple yardstick then. try and see | ||
Liz | asyncing would maybe allow you to fetch the next file while doing the regex on the one you fetched already | 16:34 | |
theorbtwo | gaal: Air crew probably get real visas for the countries they are regularly in. Diplomats get special diplomatic passports. | ||
In general, if you expect CPU usage to /not/ be the slow bit, you could async and possibly get a benifit out of it. | 16:35 | ||
gaal | theorbtwo: do these special dimplomatic passports not need to be stamped? most places i know (except inside the EU and Canada <-> US) stamp entry/exit regardless of wether you have a visa. | ||
eric256_: I'd start by not worrying about async here :) | |||
theorbtwo | OTOH, if you are reading a bunch of files off of the same drive, doing them asynchronously will just make your drive thrash. | ||
gaal | and redoing the inner stuff if it's slow | ||
Juerd | Heh, our clock displays news messages. Because this is in an xterm (with a surprisingly simple perl script), the place that normally has news, says "This system is going down for reboot NOW" if you reboot the clock. Funny. | 16:36 | |
(It is a wall mounted TFT screen, with a wall mounted mini-ITX motherboard) | |||
gaal | find -name \*hs | wc => 242 242 7589 | 16:37 | |
if you're doing the haskell part, just read it all to memory :) | |||
theorbtwo | gaal: You might want an xargs there. | ||
gaal | er. | ||
oops :) | |||
that does make a leetel more sense | 16:38 | ||
64874 294988 3709092 total | |||
still RAMmable though. | |||
theorbtwo | Yeah. | 16:39 | |
No reason to do that, though, if you want to remain line-oriented anyaway, and there's little reason not to. | 16:40 | ||
eric256_ can't convert in his head but that number looks pretty big ;) | 16:41 | ||
gaal | sure. depends on how "cross" the "reference" is. :) | ||
3.7mb hs souce | |||
eric256_ | i'm not sure what the slow part is, its written in p5 right now anyawy. | ||
xinming | will there be a method which will get all attributes and values for a instance? | ||
hmm, in perl 6 certainly | 16:42 | ||
gaal | wheee! ndm++ | 16:43 | |
hoogle alpha 3 is up | |||
www-users.cs.york.ac.uk/~ndm/cgi-bi...52C+b%2529 | |||
rafl | autrijus: ping | ||
gaal | contains GHC libs :-) | ||
errrr, my find earlier up included blib by mistake. it's 2.8 without it. | 16:49 | ||
(which is weird, isn't it?) | |||
ooohh, this counted PreludePC.hs -- eric256_, please skip that one, it's 1-2mb of uninteresting code. | 16:51 | ||
eric256_ | yea i'm not starting on that yet. right now i'm working on tests and adding documentation for them | 16:52 | |
in a bit maybe i'll ad the ability to scan the hs code and build indexes to it to. might be nice to have webbased interfaces to all these ;) | |||
Limbic_Region | um - does the current pugs reflect the change on from + to : on parameters yet? | 16:55 | |
eric256_ | no | ||
Limbic_Region | okie dokie | 16:56 | |
eric256_ | ;) | ||
Limbic_Region doesn't have to worry about any of his examples not working then | |||
eric256_ | you could implement that change ;) | ||
Limbic_Region | eric256_ I am strictly hands off these days | 16:58 | |
Limbic_Region is still waiting to here back from $publisher | |||
eric256_ | booo...hisss | 16:59 | |
;) | |||
your publishing something? | |||
Limbic_Region | I am trying to | 17:03 | |
Juerd | Limbic_Region: What is it you're publishing? | ||
Limbic_Region | Juerd - nothing as of yet | 17:05 | |
I pitched an idea to $publisher | |||
Juerd | Ah | ||
Perl related? | |||
Limbic_Region | $publisher liked the idea and wanted a full outline | 17:06 | |
I provided outline to $publisher and heard an initial "we are still interested but we need time to digest" | |||
and that is where things are now | |||
yes, Perl related | |||
Juerd | 6? | ||
Limbic_Region | no | ||
Juerd | So you too think it'll be a long time before we have 6? ;) | 17:07 | |
Limbic_Region | well, not directly anyway | ||
Juerd - without going too much into it - the topic of the book would apply to perl1 .. perl6 | |||
eric256_ | L~R is being secretive ;) | 17:10 | |
Limbic_Region | it isn't so much that I am being secretive - it is that I haven't been told rules of engagement yet | 17:12 | |
svnbot6 | r7749 | eric256++ | Adding cross links to tests | ||
eric256_ | L~R i kinda figured. ;) | ||
Limbic_Region | without a signed contract, I really wouldn't want to jeapordize my chances | ||
eric256_ finds that many tests/ test undocumented features ;) | 17:14 | ||
Limbic_Region | undocumented or unspecced? | ||
eric256_ | since currently our specs are our documents...or vice versa.... | 17:15 | |
Juerd | Limbic_Region: That is nice | ||
Limbic_Region: And re not being open: that's entirely natural; don't worry :) | 17:16 | ||
Limbic_Region | Juerd - when/if it happens, don't hope to get much out of it | 17:17 | |
the intended target is for less intelligent people ;-) | |||
Liz | Hope it's not a "for dummies" book | 17:18 | |
eric256_ wonders if that will be on the cover. | |||
Juerd | Limbic_Region: That's me, in one year. | ||
Limbic_Region: Something has been eating brain cells | |||
Liz | in my experience, those books will make people only feel like dummies... | 17:19 | |
Juerd | Liz: Because of the title, perhaps? ;) | ||
gaal | Teach Yourself World Peace in Three Seconds (For Dummies) | 17:20 | |
Limbic_Region | Liz - oh no, more for the self-taught programmer that doesn't have the ability to get a CS degree equivalent education at the library by themself and for those system administrators that suddenly find themselves responsible for also being programmers | ||
Liz | goody! | 17:21 | |
Juerd isn't sure he would want "CS degree equivalent" knowledge | |||
clkao | win22 | ||
Liz | gaal: isn't that the book GWB has read? | ||
Juerd | So far, this CS thing I'm doing has mostly just been getting on my nerves | ||
gaal | Liz: no, the one he had ghost-written. | 17:22 | |
Juerd | The stupid thing is that I had expected it to be, and still wanted to try | ||
Limbic_Region | heh | ||
Liz | L~R: en.wikipedia.org/wiki/Autodidactism ? | 17:23 | |
Limbic_Region | that will be one of the main underlying principals Liz | ||
gaal | afk | ||
Liz | goody! | ||
Limbic_Region | the catch-22 is that some folks could be autodidacts if only someone taught them how | ||
Juerd | Damn | 17:24 | |
I thought I was an autodidact, but I don't quite fit that description | |||
Liz | bootstrapping is always difficult | ||
Limbic_Region | yep | ||
so in a nutshell, I want to bridge the gap between the beginner style books and the advanced books and at the end say that the journey has just begun | 17:25 | ||
eric256_ | anyone familar with the tests.yml file structure? its to big to load and data:dump and have anything usefull to learn from. i just want to be able to load it, lookup a test file and get the pass/fail/todo numbers | ||
Liz | Juerd: you don't fit the "has a high degree of self-motivation" description? | ||
Juerd | Liz: Indeed | ||
Liz | oh dear... ;-) | 17:26 | |
Juerd | Other than that it's a match | ||
Liz | Juerd: Isn't there anyone of you self motivated? | 17:27 | |
Juerd | Anyone of me? :) | ||
Liz | yep ;-) | 17:28 | |
Juerd | I sometimes refer to multiple instances of me, but never seriously | ||
gaal | eric256_: run util/yaml_harness.pl on just a few .t files | ||
instead of everything | |||
eric256_ | gaal... good idea, thanks | ||
Juerd | I'm not two doggies, or >1 anything :) | ||
gaal | util/yaml_harness.pl -o tmp.yml t/moose.t t/elk.t | 17:29 | |
afk really & | |||
Liz | ok, just checking ;-) undef @Juerd? | ||
Juerd | I don't know what @Juerd represents :) | ||
It could be multiple references to me | |||
I'm a singleton, I think :) | |||
Liz | well, that's better than: "we're all singletons, we think" ;-) | 17:30 | |
Juerd | Heheh | 17:31 | |
r0nny_ | re | 17:32 | |
eric256_ | juerd: on feather how do i add something to my crontab? | ||
Juerd | eric256_: crontab -e | ||
r0nny_ | i decided i want to contribute to c6pan | 17:33 | |
i got a nice idea for a number of chained projects will make it very nice | |||
i want to start with usefull extensions to the build-in types, then continue with a build system and end up with a simple, but complete perl6 module management system | 17:34 | ||
Juerd | r0nny_: Current spelling is sixpan :) | ||
r0nny_ | oh | 17:35 | |
;P | |||
Juerd | r0nny_: Consult sixpan.perl6.nl | ||
eric256_ | not 6pan? | ||
Juerd | eric256_: 6pan is an invalid identifier :) | 17:36 | |
r0nny_ | hmm | ||
can pms handle uninstalling stuff ? | |||
Juerd | I don't know what pms is :) | 17:37 | |
Khisanth | cp6n :) | ||
eric256_ | lol. only if you give her a pick axe | ||
Khisanth | Perl Modules? | ||
r0nny_ | i interpolated from, the brainstorming, that it is the sucessor of cpan | ||
Juerd | That's probably extrapolation | 17:38 | |
r0nny_ | hmm | ||
well - i allways mess with those 2 ;P | |||
obra is holding 6pan.{ com,net,org} in trust for TPF. But jhi and andk have indicated interest in having 6pan hosted as part of the cpan | |||
r0nny_ | my english has onoly the state of usable enought, to tell enough | ||
Juerd | obra: Don't worry. sixpan.perl6.nl is just a working (host)name | 17:39 | |
obra: It can be anything later | |||
obra | Juerd: sure. not worried. | ||
Juerd | You could point your hostnames to the same address, perhaps | ||
I'm not sure if that's a good or a bad idea | |||
r0nny_ | well - i think sixpan should be part of cpan - slowly replacing it while the modules get portet | 17:40 | |
theorbtwo | 6pan, BTW, /is/ a valid hostname component. | ||
Juerd | Or worth the trouble at all | ||
obra | I'll hang onto them pointing nowhere until things get settled | ||
Juerd | theorbtwo: Yes, but 6pan::Foo is not a valid class, and $6pan is not a valid scalar | ||
theorbtwo | Yeah, I do see the point. | ||
obra | theorbtwo: it's also a valid domain component, too. but ==juerd | ||
eric256_ | those seem like arbitrary language limitations | 17:41 | |
Juerd | I can get sixpan.* just to be sure, if you want | ||
eric256_: They're not. | |||
eric256_: Identifiers have to start with a non-digit, for several reasons. It can be done differently, but that would harm future expansion possibilities | |||
theorbtwo | I'd like for 6pan and sixpan dot whatever to be aliases, so people don't have to specify when speaking them. | ||
obra | I think there's merit in calling it CPAN | 17:42 | |
theorbtwo | So do I, obra. | ||
Juerd | obra: So do I | ||
obra | 6pan is a conveient shorthand as we design 'cpan for perl6' | ||
theorbtwo | There's also merit in not doing so, but I'm not sure there's much. | ||
Juerd | At the same time, I think it must be a new system | ||
r0nny_ | well - who is working on the sixpam utils ? | ||
Juerd | Designed from scratch | ||
Or at least, based on tools known to be Good | |||
obra | Juerd: why? | ||
design from scratch is...well, I think that can be dangerous | 17:43 | ||
Juerd | obra: Because altough CPAN *works*, it has a few annoying aspects that are hard to solve | ||
obra | evolution makes lots of sense. but starting from a clean slate means throwing away the good parts too | ||
eric256_ | coudl it be a new system that imports the old modules? or is that a Bad Idea? | ||
obra | so, before you come up with a whole new design, it'd be cool to enumerate what sucks about the current cpan | ||
and how a new one could do those bits better | 17:44 | ||
Juerd | obra: Its hierarchy, internal workings, APIs (both), web interfaces, path structure, internal workings like version and abstract extraction, all need improvement, IMO | ||
obra | leaving entirely alone the bits that work ;) | ||
improvement, agreed | |||
note that "web interfaces" is a set of very loosely coupled services | |||
urk must run | |||
Juerd | obra: It doesn't handle multiple authors with equally named modules, it doesn't handle version numbers too well, it doesn't allow re-uploading with the same version number (unless it's a non-module), it doesn't have a way to delete something without getting it into backpan | 17:45 | |
obra | I see the last as a huge feature | ||
Liz | indeed | ||
theorbtwo | I thought not being able to reupload with the same version number was a feature. | ||
r0nny_ | Juerd: i got some nice ideas - and i'd really like if my ideas for a build/pkg management system would find their way as the new system | ||
obra | and I think that larry's perl6 versioning doc addresses a lot of the others | ||
Juerd | r0nny_: Add your ideas to the wiki then! | ||
theorbtwo | I /do/ want good dependency management. | 17:46 | |
Juerd | theorbtwo: It is. | ||
theorbtwo: But there should be a way to do it, because this feature is annoying in the opinion of some. | |||
r0nny_ | Juerd: ok | ||
Juerd | Dependency management would be very nice for CPAN | 17:47 | |
obra | Juerd: having multiple things out there with the same version and different content strikes me as insanely bad | ||
Juerd | It has some, but that doesn't work too well for the complex situations | ||
obra: Depends. If only the spelling of documentation changed, I find it convenient to stay at .00 | |||
obra | uh | ||
Juerd | obra: Cultural pressure should avoid separate releases under equal names, not technical limitations | 17:48 | |
obra | but that would be two different copies of the same dist with different md5sums and sigs | ||
Juerd | obra: When the version number bumps, package managers and CPAN shells start suggesting upgrading. | ||
obra | dist versions should be unique if different | ||
so maybe you want to, i don't know, version packages differently than code | |||
Juerd | Which can be quite inconvenient, for example because of business policies that prescribe that different mutations of module releases must be tested before they are deployed | 17:49 | |
obra | and a new package version can contain the same version # of a module inside it. | ||
I've seen doc fixes break code ;) | |||
but I'm now late and will get a parking ticket if I don't vanish. sorry. | |||
Juerd | Also, the version number in the *file* and the version number in the *module* are allowed to differ. This I think is a bigger problem, because now, people without clue just change the filename without changing $VERSION, if they find that they can't upload again | ||
Oh, that'd be another great value. A way to indicate author clue ;) | 17:50 | ||
And bye :A) | |||
s/A// | |||
r0nny_ | btw - how about new extensions fpr perl6 modules ? | ||
theorbtwo | It'd be good if the uploader can check things, and issue warnings, and then allow the author to say "yep, really upload". | 17:51 | |
(Including checking if the distribution has the same version on the inside as on the label.) | 17:52 | ||
Juerd | r0nny_: pm suffices | ||
r0nny_ | Juerd: i would like to have a difference betwen source modules and binary modules | 17:53 | |
theorbtwo | You mean between pure-perl modules and C-required modules? | 17:55 | |
I'd like that to be part of the general dependency system: a build-dependency on a C compiler. | 17:56 | ||
r0nny_ | theorbtwo: i mena the difference betwen compiled modules for use with parrot, and source modules | ||
well - dont tell me now, they wont support ;O | |||
anyone ?? | 18:00 | ||
r0nny_ does some random pings | |||
theorbtwo | CPAN has never been in the busniess of distributing binary modules. | 18:01 | |
Perhaps it will do so now. | |||
Juerd | Is there any point? | ||
Compilation is supposed to be so fast that it can be done on the fly | |||
It can then be done during installation of a module | 18:02 | ||
^_AnticrisT_^ | /clonectcp #perl6 | ||
kuidao lamruz | |||
cajf | |||
r0nny_ | theorbtwo: WRONG | ||
^_AnticrisT_^ | orkfric | ||
Juerd | r0nny_: That is unfriendly. | 18:03 | |
^_AnticrisT_^ | d/petas en vinagro | ||
r0nny_ | theorbtwo: u should compile the modules to binary ones on your machine | ||
theorbtwo | r0nny_: Did I imply that you shouldn't? | ||
^_AnticrisT_^ | as /multiplikarporros | ||
#perl6 | |||
Juerd | Advice: ignore anticrist, don't respond | ||
theorbtwo | In any case, you are wrong. In many cases, there are. | ||
^_AnticrisT_^ | eso kes? | ||
no s ek decis | |||
r0nny_ | theorbtwo: kinda - u told cpans task was never to supply binaries | ||
^_AnticrisT_^ | soy espaōæ½xF1olo | ||
hablar espaōæ½xF1ol | 18:04 | ||
joder | |||
feos | |||
eric256_ | r0nny_ do you mean modules that you don't want to distribute the source so you compiled? if so then cpan probably isn't the right place to release it , since its OpenSource | 18:06 | |
r0nny_ | eric256_: no i mean getting the src from cpan, and then compiling the modules local for use with parrot | ||
eric256_ | then cpan wouldn't hold the binary portion at all | 18:07 | |
r0nny_ | but the utils used for cpan should be aware of the sw build process | ||
eric256_ | in which case you wouldn't distribure the "compiled" version, in which case its probably stored localy in some form | ||
r0nny_...wouldn't compiling the module be the users option not the modules choice at all? | 18:08 | ||
r0nny_ | eric256_: why not compile them by default - so loading will be lots faster afterwards | ||
eric256_ | then the utils don't need to be aware of anything because they compile everything. | 18:09 | |
r0nny_ | hmm | ||
they need to know what they do | |||
eric256_ | what do you mean? the module has no choice in the matter, so the util just asks the user what to do. | 18:10 | |
would be kinda fun, download modules and have them auto compiled. /me wonders if you can realy compile perl6 modules and it its realy that great of benefit | |||
r0nny_ | well - the user needs to decide | 18:11 | |
ingy | hola | ||
r0nny_ | and someone needs to support it | ||
theorbtwo | Allo, ingy. | ||
ingy | hey theorbtwo! | ||
r0nny_ | well - guess it should support "source"-installs, too | ||
eric256_ | r0nny_...i don't thinky our making any since | ||
theorbtwo | I would rather prefer that modules be more declarative about their context, rather then imperitive about how to compile them. | ||
raptorXXX | print 123 if "blah" ~~ /blah/; | ||
returns : | |||
*** Cannot parse PGE: blah | |||
*** Error: does not exist | |||
what is the problem? | |||
eric256_ | perlbot nopase | 18:12 | |
fyi for the the future. | |||
perlbot nopaste | |||
perlbot | Paste your code here and #<channel> will be able to view it: sial.org/pbot/<channel> | ||
xerox | lisppaste3: url | ||
lisppaste3 | To use the lisppaste bot, visit paste.lisp.org/new/perl6 and enter your paste. | ||
r0nny_ | fyi ? | ||
xerox | For Your Information | ||
r0nny_ | oh | ||
eric256_ | r0nny_ meant for raptorXXX not you. ;) | ||
r0nny_ | eric256_: well - after knowing what it meant it implyed the target person | 18:13 | |
eric256_ | raptorXXX i think you need parrot installed and in your path | ||
\nick eric256 | |||
hmm | 18:14 | ||
raptorXXX | which parrot | ||
/usr/bin/parrot | |||
theorbtwo | Forward slash, eric. | ||
eric256_ | theorbtwo...yea i tried both, but the server doesn't seem to be responding | ||
theorbtwo | That's because the real eric256 is still there. | 18:15 | |
eric256_ | there is a real one? /me should have registered | 18:16 | |
lisppaste3 | raptorXXX pasted "*** Cannot parse PGE: blah" at paste.lisp.org/display/12951 | ||
eric256_ | 04* eric256 is n=eric256_01 lol. it has me as being me...stupid irc server | 18:17 | |
raptorXXX: same code works fine on feather. must just be an issue with your parrot install | 18:19 | ||
Juerd | eric256_: Please don't spam bright colours into the channel :) | 18:22 | |
raptorXXX | /usr/bin/parrot -V | ||
PASM/PIR compiler version 0.3.0. | |||
what is feather | 18:23 | ||
Liz | feather.perl6.nl/ | 18:24 | |
Juerd | Liz: Frankly, that doesn't answer the question :) | 18:25 | |
Liz | indeed... | ||
r0nny_ | feature-wish list done - please comment | ||
sixpan.perl6.nl/sixpan/index.cgi?SixPanUtils | |||
Juerd | raptorXXX: It is a machine interested people can get access to, to do things for Perl 6, if even just testing. | ||
r0nny_: Run a spelingchecker. | |||
r0nny_ | Juerd: hmm | 18:26 | |
Juerd | I find pkg hard to pronounce, by the way | ||
raptorXXX | why not sexPan :)) | ||
Juerd | by suid (unsecure - maybe a perl6 modulemanager group will do the job) | 18:27 | |
Why would this be needed? | |||
r0nny_ | raptorXXX: cause we dont like jokes below the belt ? | ||
Juerd | A normal user is not a sysadmin. | ||
And must not be allowed to install software globally. | |||
Every OS already has a security model. This wheel may need reinvention, but not in a Perl package manager. | 18:28 | ||
r0nny_ | well - there are many end-user-systems where this is a nice help | ||
Juerd | They should install in their home directory, not system wide. | ||
theorbtwo | ...but, on the other hand, it should be easy for users to install into their home directory. | ||
Juerd | They MUST NOT be allowed to do so, unless the system indicates they have permission | ||
In which case they can just use the normal tools | |||
theorbtwo: Very easy, indeed | |||
theorbtwo: And there should be a standard @*INC entry for this | 18:29 | ||
r0nny_ | well - then all it needs is to take care the user is in the group | ||
theorbtwo | It'd be /really/ nice if the package manager says "you can't install this as the user you are running as -- would you like to try to install to your home directory, use sudo, or quit?" | ||
Juerd | r0nny_: This must be handled outside the perl module system. | ||
theorbtwo: That'd screw automated installs. I think a very simple and short command line switch is best | 18:30 | ||
It may even be better to default to home directory installation | |||
As developers are users, even though many of them also admin boxes | |||
r0nny_ | Juerd: i'd like if the module system is extensible enough, to have the possibility to use it like gentoos portage or apt if the modules for system-installing/administrating are installed | ||
Juerd | r0nny_: It will be. | 18:31 | |
r0nny_ | then everything will be fine (except my spelling;) | ||
Juerd | theorbtwo: If the user has root access, they better know how to become root without 6pan's help | ||
theorbtwo: Root isn't dumb, or at least shouldn't be. An interactive question from an end user shell if the user wants to become root is, imo, a teletubbyism | 18:32 | ||
theorbtwo | Juerd: you should compile as non-root and only install as root. | 18:33 | |
Juerd | That is besides the point. | ||
And I agree on that. | |||
That's about root dropping privileges | 18:34 | ||
r0nny_ | Juerd: i'd like the have a system config where i can select never,ask,userconf,allways and a userconf where it can set ask, allways or never | ||
Juerd | Not about non-root gaining them. | ||
r0nny_: It probably will. See CPANPLUS, please. | |||
r0nny_ | hmm | ||
Juerd | r0nny_: CPANPLUS's author, kane, is on board, and will probably make sure existing features will be present. | ||
r0nny_ | last time i tried it broke my perl | 18:35 | |
;P | |||
Juerd | Then don't run it as root. | ||
Ah, this explains something | |||
r0nny_ | what ? | ||
Juerd | You lack sysadmin fu, and WANT to be treated like a teletubby ;) | ||
Or, ignore that, as I don't feel like explaining today. | |||
r0nny_ | -_- | ||
well - it was repaired by deleting /usr/lib/perl5 and making portage reinstall perl and its modules | 18:36 | ||
theorbtwo | Ah. | 18:37 | |
r0nny_ | probably wont work for perl6 if the sys-mgmt needs it ;P | ||
well - i know my sys is a little mess | |||
xinming | if func $a, $b, $c { true... } else { false... } | 18:38 | |
r0nny_ | i just dont spend enough time into configuring it damn nice | ||
xinming | will this be valid in perl 6? | ||
Juerd | theorbtwo: ah re what? | ||
xinming | or, I have to use parenthesis to quote the function call | ||
Juerd | xinming: Yes. | ||
xinming: If you mean the Perl 6 equivalent of what in Perl 5 was: if (func $a, $b, $c) { true... } else { false... } | 18:39 | ||
r0nny_ | btw - when will stuff like "class fo does hash" work ? | ||
Juerd | .oO( true..Inf? :) ) |
||
r0nny_: When it's implemented. | |||
theorbtwo | Ah, r0nny is a really bad sysadmin. | ||
r0nny_ | theorbtwo: im just bad in using my good sysadmin knowdegde | 18:40 | |
xinming | Juerd: hmm, I don't mean the perl 5, I just wish to know if `if func $a, $b, $c { ... } else { ... }` will work, Just for confirmation, as pugs won't work on this. :-) | ||
theorbtwo | No, you really aren't. You managed to mess up your system trying to install a perl module, to the point where you had to reinstall perl. (And while I don't know gentoo well, I suspect there's a better way to do it then how you did.) | 18:41 | |
Juerd | xinming: Ah. Please write a test for pugs! | ||
r0nny_ | theorbtwo: it was the way where i needed only 4 small commands to have the sys live again | ||
raptorXXX | how can i check wich dir's Pugs searching for stuff ? | 18:42 | |
Juerd | raptorXXX: pugs -V | ||
raptorXXX: Just like with perl, which has perl -V | |||
PerlJam | raptorXXX: or look in @INC :) | ||
r0nny_ | btw - how do u guy's think about yaml ? | 18:43 | |
Juerd | r0nny_: It's great, but editing it still manages to scare me. I'm always I'll break indentation in indentation sensitive languages. | 18:44 | |
r0nny_ | hehe | ||
Juerd | <-- MARK | ||
(ordered spare ribs) | 18:45 | ||
timestamps++ | |||
raptorXXX | i dont seem to see parrot dir there.. probaly this is the problem | ||
Juerd | There should be no parrot dir there | ||
raptorXXX: Pugs only searches for *Perl modules* during runtime. | |||
raptorXXX | ahum...how it passes/invokes parrot | ||
r0nny_ | i still did not manage to find a propper rule of how to do yaml indentation | ||
Juerd | raptorXXX: Parrot support has to be built in. Also, what parrot searches isn't necessarily what pugs searches, even if parrot is compiled into pugs. | ||
PerlJam | raptorXXX: parrot is expected to be in your path unless you've compiled it in | 18:46 | |
raptorXXX | i yeah..it is not that parrot isnt in the path, 'cause other code works | ||
Juerd | use.perl.org/~TorgoX/journal/ | 18:51 | |
++, the rot quote | |||
r0nny_ | well - anyone got more comments for the build/pkg-mgmt system and stuff ? | 18:55 | |
Liz | spelling? | 18:56 | |
r0nny_ | Liz: please just correct it ;P - atm im incappable of doing ;P | 18:57 | |
Liz | well, atm I'm 2 busy | 18:58 | |
svnbot6 | r7750 | iblech++ | * Usual svn props. | 19:01 | |
r7750 | iblech++ | * Renamed t/oo/attributes/attribute_initialzement.t to | |||
r7750 | iblech++ | attribute_initializement.t and fixed a minor issue in the test. | |||
wolverian | initialisement :) | ||
r0nny_ | btw - i really start to think about putting binary modules to a extra module source | 19:04 | |
like having sixpan::Source and sixpan::Binary | 19:05 | ||
Khisanth | well in the end everything is in binary :) | 19:07 | |
svnbot6 | r7751 | yiyihu++ | Add another if statement parse fail test. | ||
xinming | hmm, Is there a way to use only the class name and attributes to generate an object? | 19:09 | |
r0nny_ | xinming: yes | 19:10 | |
there is a way with eval | 19:11 | ||
xinming | Just like, `class A { has $.b; method show { "$.b".say } }; A( b => 5 ).show;` | ||
hmm, without new, as It's too ugly sometimes. | |||
r0nny_ | hmm | ||
ask others ;P | |||
r0nny_ not knows | |||
eric256_ | ?eval sub rotd ($str) { $str.trans('a-z''=>"m-zn-a"); "hello".rotd; | 19:16 | |
evalbot_7751 | Error: unexpected "." expecting word character, "::", term postfix, operator, postfix conditional, postfix loop, postfix iteration, ";" or "}" | ||
eric256_ | ?eval sub rot13 ($str) { $str.trans('a-z''=>"m-zn-a") }; "hello".rot13; | 19:17 | |
evalbot_7751 | Error: unexpected "." expecting word character, "::", term postfix, operator, postfix conditional, postfix loop, postfix iteration, ";" or "}" | ||
eric256_ | ?eval sub rot13 ($str) { $str.trans(('a-z''=>"m-zn-a")) }; "hello".rot13; | ||
evalbot_7751 | Error: unexpected "." expecting word character, "::", term postfix, operator, postfix conditional, postfix loop, postfix iteration, ";" or "}" | ||
eric256_ | ?eval sub rot13 ($str) { $str.trans(('a-z''=>"m-zn-a")) }; rot13("hello"); | 19:18 | |
evalbot_7751 | Error: unexpected "." expecting word character, "::", term postfix, operator, postfix conditional, postfix loop, postfix iteration, ";" or "}" | ||
eric256_ | eval bot is kinda slow today | ||
xinming | ?eval multi sub rot13 ($str) { $str.trans(('a-z''=>"m-zn-a")) }; rot13("hello"); | 19:19 | |
evalbot_7751 | Error: unexpected "." expecting word character, "::", term postfix, operator, postfix conditional, postfix loop, postfix iteration, ";" or "}" | ||
xinming | ?eval multi sub rot13 (Str $str) { $str.trans(('a-z''=>"m-zn-a")) }; rot13("hello"); | ||
evalbot_7751 | Error: unexpected "." expecting word character, "::", term postfix, operator, postfix conditional, postfix loop, postfix iteration, ";" or "}" | ||
svnbot6 | r7752 | iblech++ | +$arg changed to :$arg, per Larry | 19:22 | |
r7752 | iblech++ | (www.nntp.perl.org/group/perl.perl6....ge/23820). | |||
r7752 | iblech++ | * examples, t, ext, docs, perl5, src/perl6: Changed +$arg to :$arg (and | |||
r7752 | iblech++ | related) -- I searched using egrep -r '\+\+?\s*[$@%]', hopefully I've found | |||
r7752 | iblech++ | all occurances... | |||
r7752 | iblech++ | * Pugs.Lexer: ":Foo" is not a valid type. | |||
r7752 | iblech++ | * Pugs.Parser: Parse :$arg, +:$arg etc. (but not :foo($bar) yet, as this | |||
r7752 | iblech++ | requires changes to the definition of VCode). | |||
r7752 | iblech++ | * Pugs.Parser: Adjustments to the rule which parses the | |||
r7752 | iblech++ | invocant-list-delimeter-colon -- | |||
r7752 | iblech++ | method foo (: $a) # positional $a, $a is not an inv param | 19:23 | ||
r7752 | iblech++ | method foo (:$a) # named $a | |||
r7752 | iblech++ | Note that I had to use lookAhead and try... | |||
r7752 | iblech++ | * Pugs.AST.Internals: Minor adjustment WRT the Pugs.Parser change. | |||
r7753 | iblech++ | t/pugsbugs/parsing_if.t: Minor test fix (eval_ok can't find lexicals). | |||
xinming | I found, Every test I wrote is buggy. :-P | 19:29 | |
eric256_ | it happens. important thing is to get the test there. then someone else can come along and fix it ;) | ||
Juerd | xinming: Then don't give up and keep trying till one's right | ||
xinming: We will help you if it does turn out to be buggy. | 19:30 | ||
xinming | well, I know this. That's what GPL's faith... :-P | ||
eric256_ | ?eval my $str = "hello"; $str.trans(("h"=>'H')); | 19:31 | |
evalbot_7751 | "Hello" | ||
eric256_ | ?eval sub x ($str) { $str.trans(("h"=>'H'))}; x("hello"); | ||
evalbot_7751 | "Hello" | ||
eric256_ | ?eval sub x ($str) { $str.trans(("a-z"=>'n-za-m'))}; x("hello"); | 19:32 | |
evalbot_7751 | "uryyb" | ||
eric256_ | ?eval sub rot ($str) { $str.trans(("h"=>'H'))}; rot("hello"); | ||
evalbot_7751 | "Hello" | ||
r0nny_ | so - fixes some of my spellings ;) | 19:33 | |
-s+d | |||
argh ;P | |||
eric256_ | ?eval sub rot13 ($str) { $str.trans(("h"=>'H'))}; rot13("hello"); | ||
evalbot_7751 | "Hello" | ||
r0nny_ | need a perl spell checker | ||
eric256_ | ?eval sub rot13 ($str) { $str.trans(('a-z''=>"m-zn-a")) }; rot13("hello"); | ||
evalbot_7751 | Error: unexpected "." expecting word character, "::", term postfix, operator, postfix conditional, postfix loop, postfix iteration, ";" or "}" | ||
eric256_ | ?eval sub rot13 ($str) { $str.trans(('a-z''=>"n-za-m")) }; rot13("hello"); | 19:34 | |
evalbot_7751 | Error: unexpected "." expecting word character, "::", term postfix, operator, postfix conditional, postfix loop, postfix iteration, ";" or "}" | ||
eric256_ | freaking quotes. /me slaps forhead | ||
r0nny_ | sub rot13 ($str) { $str.trans(('a-z'=>"n-za-m")) }; rot13("hello"); | 19:35 | |
eric256_ | ?eval sub rot13 ($str) { $str.trans(("a-z''=>"n-za-m")) }; rot13("hello"); | ||
evalbot_7751 | Error: unexpected "." expecting word character, "::", term postfix, operator, postfix conditional, postfix loop, postfix iteration, ";" or "}" | ||
eric256_ | ?eval sub rot13 ($str) { $str.trans(("a-z"=>"n-za-m")) }; rot13("hello"); | ||
evalbot_7751 | Can't exec "./pugs": Permission denied at examples/network/evalbot//evalhelper.p5 line 46. | ||
eric256_ | ?eval sub rot13 ($str) { $str.trans(("a-z"=>"n-za-m")) }; rot13("hello"); | 19:36 | |
evalbot_7751 | *** No compatible subroutine found: "&eval" at -e line 11, column 7-119 | ||
eric256_ | ?eval sub rot13 ($str) { $str.trans(("a-z"=>"n-za-m")) }; rot13("hello"); | ||
evalbot_7751 | *** No compatible subroutine found: "&eval" at -e line 11, column 7-119 | ||
r0nny_ | i wish for #perl6-bots where all the bosts throw their messages at | 19:38 | |
Juerd | Regardless, we should encourage people to use it for at most 3 lines | 19:39 | |
eric256_: Please find a command line :) | |||
theorbtwo | It used to be that most people used pugs -e most of the time, and evalbot for quick things and things they wanted other channel-lurkers to see. | ||
Juerd | theorbtwo: I honestly don't see the problem with that | 19:40 | |
Woo, new S02 and S06 | 19:44 | ||
svn.perl.org/perl6/doc/trunk/design/syn/ | 19:45 | ||
xinming | Juerd: hmm, could you please tell me why I shouldn't use class name to create an object? | 19:48 | |
eric256_ | juerd...ehh i figured no one was talking ;) | 19:49 | |
eric256_ hangs head in shame... and starts a third login to feather ;) | 19:50 | ||
Juerd | xinming: Simply because that is not how it is done in Perl 6 | 19:51 | |
Or Perl 5. | 19:52 | ||
Classes are not functions. | |||
eric256_ | mostly posted it here because i couldn't see the error and though someone else could | ||
wolverian | Juerd, didn't you suggest exactly that with the Int() thing? :) | ||
Juerd | Those are types, which aren't necessarily classes | 19:54 | |
wolverian | right | ||
Juerd | They share names though | ||
And explicit conversion(coersion) HAS been done in Perl that way, historically. | 19:55 | ||
hex() and oct() are reversed, though :) | |||
int() isn't new. I just suggested extending this to types | |||
This will put quotes around strings, square brackets around | 20:00 | ||
list values, curlies around hash values, constructors around objects, | |||
etc., such that standard Perl could reparse the result. | |||
eek. | |||
"list values" | |||
"hash values" | |||
"value" isn't handy, as it usually refers to a scalar's value | |||
and they are arrays, not lists :( | |||
r0nny_ | does a method have to be multi, if the overridden version of it needs to be ? | 20:11 | |
eric256_ | you want to over write one method with two multi methods? /me things r0nny_ might be a little crazy ;) | 20:13 | |
as the old adage says, try and see ;) interesting question though | |||
r0nny_ | eric256_: i have a class, then i inherit anoter class from it, wich gets a method with the same name but other signature | 20:14 | |
eric256_ | that isn't a very usefull use of inheritance. the point of inheriting methods is so that base code doesn't care weather you have x or y, now your code has to care if its given an x or a y, even though the both supposidly share the same base class. | 20:16 | |
not saying there isn't a use for such a construct, it just seems counterintuitive | 20:17 | ||
r0nny_ | i want a hash, where i can do array based deep access | ||
then i want to inherit a class from it, where i can use a separator sequence in the key instead of te array | |||
eric256_ | then why not name the method completely different? | 20:18 | |
PerlJam | r0nny_: it doesn't sound like you want inheritance. | 20:19 | |
r0nny_ | PerlJam: basically i do split, and then use deep-acces | ||
with arrays | |||
PerlJam | so you want to parameterize on the separator? | 20:20 | |
r0nny_ | parameter is set in the instance var | ||
soeh separator | 20:21 | ||
PerlJam | r0nny_: so you want a method that allows you to get/set the separator and an attribute the stored that value. I don't see where inheritance comes into play | 20:25 | |
r0nny_ | PerlJam: well - after the key is split wit the separator, it uses the deep array access | 20:26 | |
wich comes from the base class wich deep array access | 20:27 | ||
ajs_ | Isn't a multi not the same signature at all? I would not think that "multi method a() {}" would meet "method a() {}"'s signature, and thus there would be no conflict (also one would not satisfy the requirement for the other if an interfacish role required one of them) | 20:39 | |
r0nny_ | role'S wont work in pugs atm :/ | 20:40 | |
ajs_ | r0nny_: Well that's as may be, but the theory is all laid out in S05 and S12, so I don't think there's any ambiguity on how mutli and non-multi subs and methods interact. | 20:41 | |
s/5/6/ | 20:42 | ||
And S13 for that matter | |||
putter | hi all | 21:28 | |
Liz | hi | 21:32 | |
fglock__ | hi | 21:35 | |
putter | stevan: messing with fundamental stuff like Class not being an Object strikes me as a very not right thing. on further reflection (ouch, pun not intended), the right thing is to get signatures via reflection, and an have a confenience method to ask "create a method with this sig which just delegates to autoload". which I think I can fudge acceptably now (eg, non-reflected static method list, no multi-methods so name is a sufficient si | 21:38 | |
gnature, Proxy fails to delegate methods added to Object but not it a static ignore-this-one list, etc). | |||
hi Liz, fglock | |||
something to be happy about - when p6l does a spec change, requiring lots of code change, and ones thought is not for the work, but "oh, neat!" :) | 21:39 | ||
Juerd | Some people even think: oh neat, a big change that I can implement! | 21:41 | |
If my left arm wasn't red and itchy, and I would know Haskell (without the RSI, I'd certainly have tried learning it!), I would be one of those people. | 21:42 | ||
I'm sure there are more people here who have trouble resisting the urge. | |||
integral | the :: to !! was quite fun! Like discovering and killing an ancient !! binary operator :-) | ||
xerox | integral: what does :: and !! do? | 21:43 | |
Juerd | And because split keyboards suck for one handed typing, and I have completed the work that needed completion today | ||
integral | xerox: It's the "ternary operator" ??::, which became ??!! | ||
Juerd | I'm gonig home now. | ||
going | |||
integral | xerox: it's basically an if as an expression. | ||
xerox | Ah okay. | ||
integral | eg: my $x = $condition ?? $true !! $false; | ||
Juerd | heh, weird formatting would be: | 21:44 | |
PerlJam | And that's where people started saying that perl6 jumped the shark ;) | ||
Juerd | $condition ?? | ||
$true !! | |||
integral | they changed the second bit from :: to !!, so I spent an hour changing the compiler, and then most of the perl6 in the world ;-) | ||
Juerd | false; # :( | ||
xerox | hah. | ||
Juerd | integral: Cherish the convenience of having most of the Perl 6 code in the world all in one place :) | 21:45 | |
afk | |||
integral | it's ace. makes backwards compatability a total non-issue :-) | ||
eric256_ | PerlJam...hopefully we haven't jumped any sharks, of course i don't think the person doing the jumping knows it till later. ;) | 21:47 | |
eric256_ is amuzed that any saying like that can result from a TV show episode. ;) | |||
PerlJam | eric256_: When you're raised on a TV diet of Happy Days and MASH, what do you think happens? | 21:48 | |
eric256_ | lol MASH++ ;) | ||
didn't that show last longer than the actual war? | 21:49 | ||
Liz | yep | ||
12 seasons if I recall correctly | |||
putter | theorbtwo, autrijus: oh! you didn't mention my favorite, *->p6 !!! language implementation is hard. it will be much nicer to use full power p6, and a common set of tools, to do multiple *->p6's. and *->pil falls out trivially from there. | 21:50 | |
Liz | eric256_: en.wikipedia.org/wiki/M%2AA%2AS%2AH..._series%29 | ||
(11 seasons) | 21:51 | ||
putter | autrijus: re plans, hey, its an interesting city, and a chance to relax and recharge. how aoubt an objective of sleep, eat, work wrappup, conversation, sighseeing, and such hacking as fits with having a vacation. ? :) | 21:52 | |
re multiple runtimes, just a reminder that you can currently run all three runtimes simultaneously. piljs, p5, and pugs. with perl in the middle. there is eval in both directions (p5_eval p6_eval) out of raw perl. something crying out to be played with. | 21:55 | ||
just build a p5 linked pugs to get perl5<->pugs, use pilrun as a module, use pil2js as a module to create js to run with... what was it... | 21:59 | ||
JavaScripdt::SpiderMonkey. | |||
see pugs/perl5/PIL2JS/lib/Perl6/Run/JS.pm | 22:01 | ||
err, I suppose parrot is a fourth runtime. hasnt been working in a while. hmm, I wonder if there is a cpan module to run or link a parrot...? | 22:02 | ||
leo | putter: while parrot releases are on CPAN, it's not really a CPAN-like package | 22:05 | |
putter | gaal: NO, we really really dont want Xanadu. recent flamage aside, Ted Nelson has the record for persistent vaporware. It was already a longstanding joke _20 years_ ago. | 22:06 | |
leo: one of my suggestions on sixpan.perl6.nl/sixpan/index.cgi?BrainStorming - better support for binary packages. ;) | 22:07 | ||
leo | putter: it's not a binary package at all, but Configure/make is different | 22:08 | |
putter | r0nny_, whomever: I notice linewrapping on sixpan isnt quite working... | ||
leo: but it could be. regardless, back to parrot and cpan, there's no reason parrot couldnt get along with perl5 as well as say bin/js (JavaScripdt::SpiderMonkey) or swi-prolog (Language::Prolog::Yaswi). | 22:10 | ||
r0nny_ | putter: ??? | ||
buu | putter: What is xanadu? | ||
putter | r0nny_: lines at the bottom of sixpan.perl6.nl/sixpan/index.cgi?BrainStorming arent wrapped. page now very wide. template bug? | 22:11 | |
Liz | buu: en.wikipedia.org/wiki/Project_Xanadu | 22:14 | |
putter | buu: say www, but finer-grained (byte level addressing), better composition ("this 'document' is a combo of 'that one' and 'that' and ...), a micropayment scheme, and a few more bits. 1970's. Ted Nelson. But Ted's a bit of a flake, so its been under continuous development and RSN availability since then. | 22:15 | |
integral | the first bit sounds a bit like XLink + XPath... | 22:16 | |
putter | of course, there are other things, including other software, named "Xanadu" too. | ||
buu | Bummer. | ||
putter | www.xanadu.net/ | ||
There were a bunch of folks doing hypertext pre TimBL, but between trying to be commercial, not being... well, feynman pointed out how some subfields attracted the brightest folks the field, and some dont... it was left to Tim to do something on NeXtStep, and Mozaic to get it caught on. simplicity was a bit part of its catching on. easy document editing was even lost (still lost?) moving off NeXt to X and building a user base. and ri | 22:24 | ||
ch things like composable documents were never part of the model. and rather casually selecting a sgml-like format... has of course had all sorts of concequences for the direction in which things have evolved. folks observe that choosing the right sized objective, not too easy but not too difficult, appropriate for current capabiilities and environment, is the key to being maximally productive. hmm, or at least maximally credited wit | |||
h productivity. | |||
s/bit part/big part/ ;) | 22:25 | ||
Liz: ah, thanks for the wikipedia link. i looked for it but missed. | 22:28 | ||
re parrot and perl5, there is Inline::Parrot. dont know how well it works? i dont know of any use of p6 on parrot from p5, but it should be possible once parrot is again a working backend. | 22:34 | ||
hmmm, a p5 module Perl6::Run::Acme::Everyone ? ;) ::AFullHouseParty ? to date, the only runtime interop I know of has been a simple call chain $piljs->eval('p5_eval(\'p6_eval("say 3")\') so perl->piljs->perl->p5 | 22:38 | ||
but one can export perl(5) (gaaah, we need beter nomenclature) subs into piljs space, so one could easily do piljs<->pilrun. i havent really tried the pugs/hs<->perl glue. t/unspecced/p5/*.t | 22:41 | ||
pugs pugs/parse pugs/compile pugs/pil/hs pugs/pil/js pugs/pil/p5 pil/p5 p6onP5 p6o5 p6on5 p6onJS 6oJS ... pilrun atleast is a name I hope is going away soon. Perlt6::Run::OnPerl5::Mumble. | 22:43 | ||
oops, now running late. | 22:44 | ||
& | |||
rafl hates Debian servers being down.. :-( | |||
leo | rafl: svn.perl.org is up an running to debianize parrot ;-) | 22:45 | |
rafl | Well, at least buildd.d.o is up and tells me that pugs built fine on s390, alpha, ppc, ia64, i386 and hppa. | ||
leo: Right.. I was busy with other things the weeks after I requested a commiter bit and kind of forgot if afterwards. /me sync's his svk.. | 22:46 | ||
leo | next parrot release is due in a week (or a bit less) | 22:48 | |
so you have a few days or a month + a few days left ;-) | 22:49 | ||
rafl starts hacking | 22:50 | ||
I guess you would prefer doing a branch instead of breaking everything before the release, right? | 22:51 | ||
leo | branching sounds reasonable, yes | ||
otoh if you collect all inside a new /debian dir, there shouldn't be any impact on trunk | 22:52 | ||
rafl | I can't do that. The current build system isn't well suited to do clean packages for any distribution, imho. | 22:53 | |
leo | anyway - adding files needs also an update to MANIFEST | ||
ok - then a branch | |||
rafl | I'm not sure where to start, though. I could rewrite half of the build system or simply hack it up in cruel ways.. | ||
eric256_ starts feather autosmoking every 6 hours. though development is kinda slow right now that might be over kill. ;) | 22:54 | ||
leo | rafl: first over to #parrot | 22:55 | |
rafl | leo: How about all those branches? Not all of them are needed anymore. Is it OK to remove some of them? | ||
leo: Aye! | |||
leo | rafl: at irc.pobox.com | 22:56 | |
rafl | leo: Is that irc.perl.org? | 22:57 | |
leo | not afaik - dunno | ||
rafl | Well, I joined #parrot on irc.perl.org and there's a leo. | ||
leo | hmm, that's not that #parrot then | 22:58 | |
svnbot6 | r7754 | Darren_Duncan++ | /ext/Rosetta-Incubator : following iblech's named argument change, updated Locale::KeyedText to convert any ':$foo is required' to '+:$foo' | 23:06 | |
dduncan | there may be other code that needs the same change | 23:09 |