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