Re: socket addresses (was Re: early draft of I/O PDD)

2006-03-05 Thread Yuval Kogman
On Sun, Mar 05, 2006 at 18:34:26 +, Nicholas Clark wrote:
 On Fri, Mar 03, 2006 at 05:54:43PM -0600, Joshua Isom wrote:
 
  I don't think it's really been addressed, at least not recently, but 
  what about IPv6?  By the time perl6 becomes commonplace and used 
  often(and thus, parrot), IPv6 will be common enough that problems could 
  occur.  Currently it's not speced or stated, aside from a comment in 
  PIO_sockaddr_in.
 
 The draft has:
 
   =item * 
  
   Csockaddr returns a string representing a socket address, generated 
   from a port number (integer) and an address (string). 
 
 
 I don't think that this is appropriate. It's IPv4 specific. It doesn't cover
 AF_UNIX (er, AF_LOCAL), IPv6, or any of the other address formats (of which
 I'm not sure if any other than IPX are still commonly used.
 
 I'm not sure how to make an appropriate interface, partly as I have little
 idea if it's possible to make a sufficiently flexible abstraction for
 address names. IPv4 and IPv6 both use addresses and port numbers. AF_LOCAL
 just uses a string, which is a file system path. But I think that specifying
 an op for just one address format is too narrow.

Objects that stringify! Objects that stringify!

-- 
 ()  Yuval Kogman [EMAIL PROTECTED] 0xEBD27418  perl hacker 
 /\  kung foo master: /me whallops greyface with a fnord: neeyah!!!



pgphbbpsYmEFw.pgp
Description: PGP signature


Re: early draft of I/O PDD

2006-03-03 Thread Yuval Kogman
With respect to async IO (regretfully I get to see a lot of this at
$job):

Each operation can be async, or sync, with a similar API. There
should be enough hooks to be able to wait on a specific operation
happenning on a stream, any operation on a stream, any operation on
a group of streams, and any operation on any stream.

The resulting set of operations should be optionally available, as
this is one of the biggest sources of boilerplate in posix aio in C.

aio_suspend (or a wrapper on top of it) should probably be the
event loops default idle loop, and it should keep a flag raised such
that if the aio event loop wrapper knows that an event that was not
waited on finished, the user code can check on that easily.

A possiblity for a unified AIO/SIO interface could be that each IO
op returns an operation handle, and you can ask that handle about
it's status (running, finished, error), get it's results from the
handle, and also ask it to block. This could have a high overhead
due to storage creation, but it's generally a pretty flexible and
portable abstraction.


On Fri, Mar 03, 2006 at 11:27:05 -0800, Allison Randal wrote:
 We're going to try something a little different. With Chip's blessing  I've 
 written a very early draft of the PDD for I/O (not numbered  yet). The 
 attached PDD isn't 
 a completed document with Chip's seal of  approval, it's a seed for 
 discussion.
 
 What I need from you all is comments. What's missing? What's  inaccurate? 
 What's accurate for the current state of Parrot, but is  something you always 
 intended to 
 write out later? What thoughts have  you had on how the I/O subsystem should 
 work? All contributions  cheerfully welcomed, from a single sentence to 
 several pages of 
 text.
 
 Chip won't be making design decisions during the conversation. He may  not 
 even participate much, since part of the point is to split the  work into 
 parallel tasks so 
 we can get more done than is humanly  possible for one person. I'll use the 
 discussion to write up a more  complete PDD (probably with a few alternatives 
 written in), 
 and then  work with Chip to review/revise it.
 
 Thanks,
 Allison
 




-- 
 ()  Yuval Kogman [EMAIL PROTECTED] 0xEBD27418  perl hacker 
 /\  kung foo master: /me sushi-spin-kicks : neeyah



pgpZFo6ugJnYZ.pgp
Description: PGP signature


Re: parrot tests failing on Darwin

2005-10-10 Thread Yuval Kogman
On Sun, Oct 09, 2005 at 14:15:08 -0700, chromatic wrote:
 On Sun, 2005-10-09 at 17:25 +0200, Yuval Kogman wrote:
 
  Odd, I wonder why diagnosis are emitted on STDERR (or something else
  maybe).
 
 That's where Test::Builder emits them.  Test::Harness never collected
 them or parsed them until recently.
 
 It's fairly difficult to decide whether a diagnostic is part of a
 specific test, so my guess is that writing them to a separate filehandle
 avoided that issue.

/me didn't realize that...

Pug's Test.pm emits to STDOUT, and since I saw the handles in Straps
I used them like that.

In TTH any diag after a test case is glued on to that test, and
any diag happening before any test has it's own little grey block.

I guess I thought that was Good Enough(tm)

 I think it would be useful in general, but it's not a guarantee that all
 of the information is useful or that any heuristic to identify the
 utility of any specific diagnostic would be correct.

Arguably it's a good idea if the test writers keep in mind that
emitting silly diags is not a good practice if they don't have to do
with why a test fails.

I'd like to request a feature for Test::Builder to make diag
optionally go to STDOUT, controlled via an environment variable as
well as a global var or method call to the builder singleton, since
it's the behavior I expect in all the tests I write. Right now you
can set the failure_output handle (right?) but there is no easy way
to say diag_to_stdout.

-- 
 ()  Yuval Kogman [EMAIL PROTECTED] 0xEBD27418  perl hacker 
 /\  kung foo master: /me dodges cabbages like macalypse log N: neeyah!



pgpM4RJ2r9I2o.pgp
Description: PGP signature


Re: parrot tests failing on Darwin

2005-10-09 Thread Yuval Kogman
On Sat, Oct 08, 2005 at 14:44:48 +0100, Alberto Simes wrote:
 I submitted a smoke test, but I think the graphics doesn't show enough 
 information, so, here is the output of make smoke, on Darwin, Tiger.

Odd, I wonder why diagnosis are emitted on STDERR (or something else
maybe).

If they would go to STDOUT they would be visible by mouse-overing
the failing tests in Test::TAP::HTMLMatrix's output.

Perhaps Parrot::Test is doing this change? If it is maybe it should
be changed via an env variable or something for the smokes?

-- 
 ()  Yuval Kogman [EMAIL PROTECTED] 0xEBD27418  perl hacker 
 /\  kung foo master: /me tips over a cow: neeyah!!



pgpfhXB2XlJSL.pgp
Description: PGP signature


Re: This week's summary

2005-09-26 Thread Yuval Kogman
On Mon, Sep 26, 2005 at 18:12:23 +0100, The Perl 6 Summarizer wrote:
   Allomopherencing
 Not satisfied with inventing Exceptuations, Yuval invented
 Allomopherencing as well. Just don't ask me what it means because I
 don't know.

It was just a bad joke on Exceptuation's expense ;-)

The thread asks whether disabling strong and compile-time-angry type
ineferencing should ever be disabled, since we have much better
allomorphism-oriented support for typing and introspection.

-- 
 ()  Yuval Kogman [EMAIL PROTECTED] 0xEBD27418  perl hacker 
 /\  kung foo master: /me spreads pj3Ar using 0wnage: neeyah!!!



pgp1OJAfuThO2.pgp
Description: PGP signature


Re: Perl 6 and Parrot VM presentation slides

2005-05-25 Thread Yuval Kogman
 However, I'm completely unfamiliar with the .spork format, and I'm
 fraid of what google will tell me it is.

Spork is 'slide presentation (only really kwiki)'.

What it does is let you write slides in a kwiki like language.

A quick introduction would be to get it from the CPAN, do 'spork
-make' and then 'spork -start', fudging the config.yaml so that the
'spork -start' command works OK, and then looking at the default
presentation. It's a quick intro to spork.

 From there on it's really just editing the Spork.slides file, which
 is really very simple, and playing around with plugin classes.

-- 
 ()  Yuval Kogman [EMAIL PROTECTED] 0xEBD27418  perl hacker 
 /\  kung foo master: *shu*rik*en*sh*u*rik*en*s*hur*i*ke*n*: neeyah



pgpqq4tV9kFs4.pgp
Description: PGP signature