Re: A sketch of the security model

2005-04-16 Thread Michael Walter
On 4/15/05, Shevek [EMAIL PROTECTED] wrote:
  How can dropping a privilege for the duration of a (dynamic) scope be
  implemented? Does this need to be implemented via a parrot intrinsic,
  such as:
 
without_privs(list_of_privs, code_to_be_run_without_these_privs);
 
  ..or is it possible to do so with the primitives you sketched out above?
 
 This is usually done by creating a function f(code) { code() } without
 any static privileges in list_of_privs.

 To evaluate a function g()
 without those privileges, evaluate f(g), and the natural mechanisms of
 the interpreter will ensure that these privileges are not held during
 g().

I understand, thanks.
Michael


Re: VTABLE methods and interfaces

2005-04-16 Thread Kevin Tew
Sam,
Just wondering what the status is on python/parrot/pirate/pyrate.
These both look outdated.
http://www.intertwingly.net/stories/2004/10/05/pyrate.zip
http://pirate.versionhost.com/viewcvs.cgi/pirate/
Is there a up to date cvs repo?
Can we get this code checked into the parrot svn repo?
Kevin Tew


Python on parrot

2005-04-16 Thread Kevin Tew
Sam,
Just wondering what the status is on python/parrot/pirate/pyrate.
These both look outdated.
http://www.intertwingly.net/stories/2004/10/05/pyrate.zip
http://pirate.versionhost.com/viewcvs.cgi/pirate/
Is there a up to date cvs repo?
Can we get this code checked into the parrot svn repo?
Kevin Tew


Re: [perl #34959] config/auto/gmp/gmp.in returns 1 instead of 0

2005-04-16 Thread Adrian Lambeck
Am Donnerstag, 14. April 2005 09:04 schrieb Leopold Toetsch via RT:
 Lambeck [EMAIL PROTECTED] wrote:
  Hi all,
  Configure.pl failed to find the GNU Math Lib (GMP) on my system
  eventhough it is installed properly (version 4.1.4) .
  I compiled  config/auto/gmp/gmp.in by hand and it returned:
  4950 1 but expected was:
  4950 0
 
  Everything seems to be right, except that mpz_fits_slong_p(k) returned
  1 instead of 0. Could not find anything usefull to explain what it
  means. I am on amd64 running Linux.

   ^

 Yeah. The test is bogus for 64-bit systems. The tested number fits
 within a 64-bit long. Could you please patch gmp.in and gmp.pl to use
 some bigger numbers  64 bit.

Why do you test for that after all ?
I never used gmp - it came up when I noticed that the config failed. gmp 
provides a test suite to test all this. Of course you can expect the user did 
not run it but why write your own tests if there are already tests? 

I would only check if gmp is installed and that`s it. If the user did not run 
make check (strongly advised on the gmp website) then that should not be the 
problem of parrot. 

Anything against this standpoint ?

Adrian Lambeck


pgpjlpg0MKhs0.pgp
Description: PGP signature


Re: [RFC] some doubtable MMDs?

2005-04-16 Thread Leopold Toetsch
Larry Wall [EMAIL PROTECTED] wrote:
 On Fri, Apr 15, 2005 at 02:38:36PM +0200, Leopold Toetsch wrote:
: I'm not quite sure, but it seems that some of the MMD functions may
: better be vtable methods:
:
: - bitwise_sh[rl]*shift by anything other then int?
: - bitwise_lsris missing generally
:
: or even just a plain opcode only:
:
: - logical_{or,and,xor}  return a PMC depending on the boolean value
:
: What are HLLs expecting of these infix operations?

 Perl 6 tends to distinguish these as different operators, though Perl 5
 did overload the bitwise ops on both strings and numbers, which newbies
 found confusing in ambiguous cases, which is why we changed it.

We have distinct functions for bitwise shift int and string. That's no
prblem. But can the right operand be anything different then a plain
integer?

: OTOH it might be useful that the current get_type_keyed operations
: (postcircumfix:[]) become MMD subroutines:
:
:   Px = Py[Pz]Pz = String, Int, Key, Slice, ...

 At the moment, the Perl 6 optimizer is explicitly allowed to optimize
 array indices with the assumption that the subscript is a scalar
 (or slice) of integer, or something that converts to integer.  I'd be
 interested to know if that policy will actually buy us any performance.
 If it always has to go through MMD anyway, maybe it doesn't.  But
 array indexing code tends to be pretty hot, so if we can keep it
 somewhat optimizable and/or jittable, that'd be nice.

Above are only the PMC variants. There are optimized forms for array and
hash lookup by native types:

  Px = Py[Iz]
  Px = Py[Sz]

But with PMCs we seem to have a bunch of different key-ish PMCs,
including a BigInt PMC for bitarrays.

With MMD we'd have one function per key. Without the usual cascaded if
statements:

  if key.type == Int
 ...
  elsif key.type == Slice
 ...

From a performance POV, MMD is faster with optimizing run cores that can
rewrite the opcode and about the same speed with a plain MMD function cache.

 Larry

leo


Re: nbsp in \s, ?ws and

2005-04-16 Thread Leopold Toetsch
Larry Wall [EMAIL PROTECTED] wrote:
 On Fri, Apr 15, 2005 at 11:44:03PM +0200, Juerd wrote:
: Is there a ?ws-like thingy that is always \s+?

 Not currently, since \s+ is there.  ?ws used to be that, but
 currently is defined as the magical whitespace matcher used by :words.

: Do \s and ?ws match non-breaking whitespace, U+00A0?

 Yes.

 Yes, any Unicode whitespace, but you seem to have a different list than
 I do.

Well there are three different whitespace lists. The Parrot program [1]
below shows all, including space and blank.

$ ./parrot ws.imc
charuws ws  jws sp  bl
U+0008  0   0   0   0   0
U+0009  1   1   0   1   1
U+000a  1   1   0   1   0
U+000b  1   1   0   1   0
U+000c  1   1   0   1   0
U+000d  1   1   0   1   0
U+0020  1   1   1   1   1
U+0085  1   1   0   1   0
U+00a0  1   0   1   1   1
U+1680  1   1   1   1   1
U+180e  1   1   1   1   1
U+2000  1   1   1   1   1
U+2001  1   1   1   1   1
U+2002  1   1   1   1   1
U+2003  1   1   1   1   1
U+2004  1   1   1   1   1
U+2005  1   1   1   1   1
U+2006  1   1   1   1   1
U+2007  1   0   1   1   1
U+2008  1   1   1   1   1
U+2009  1   1   1   1   1
U+200a  1   1   1   1   1
U+2028  1   1   1   1   0
U+2029  1   1   1   1   0
U+202f  1   0   1   1   1
U+205f  1   1   1   1   1
U+2060  0   0   0   0   0
U+3000  1   1   1   1   1
U+feff  0   0   0   0   0

 So I make it:

which seems to match Parrot_char_is_JavaSpaceChar

leo

[1]

Needs some additions, which I'll ci in a minute, and the ICU lib installed.
There isn't an interface for these functions yet, so they are looked up
via dlsym(3) inside parrot itself.

$ cat ws.imc
.sub main @MAIN
.local pmc chars, uws, ws, jws, sp, bl, nul, fmt
.local int i, n, is, c
chars = new ResizableIntegerArray
push chars, 0x8
push chars, 0x9
push chars, 0xa
push chars, 0xb
push chars, 0xc
push chars, 0xd
push chars, 0x20
push chars, 0x85
push chars, 0xA0
push chars, 0x1680
push chars, 0x180e
i = 0x2000
pl:
push chars, i
inc i
if i = 0x200a goto pl
push chars, 0x2028
push chars, 0x2029
push chars, 0x202f
push chars, 0x205f
push chars, 0x2060
push chars, 0x3000
push chars, 0xfeff

null nul
uws = dlfunc nul, Parrot_char_is_UWhiteSpace, IJI
ws  = dlfunc nul, Parrot_char_is_Whitespace, IJI
jws = dlfunc nul, Parrot_char_is_JavaSpaceChar, IJI
sp  = dlfunc nul, Parrot_char_is_space, IJI
bl  = dlfunc nul, Parrot_char_is_blank, IJI

n = elements chars
i = 0
print char uws ws  jws sp  bl\n
loop:
fmt = new ResizableIntegerArray
c = chars[i]
push fmt, c
is = uws(c)
push fmt, is
is = ws(c)
push fmt, is
is = jws(c)
push fmt, is
is = sp(c)
push fmt, is
is = bl(c)
push fmt, is
$S0 = sprintf U+%04x\t%d\t%d\t%d\t%d\t%d\n, fmt
print $S0
inc i
if i  n goto loop
.end


Re: Various questions

2005-04-16 Thread Leopold Toetsch
Philip Taylor [EMAIL PROTECTED] wrote:
 I've been working on a C-to-Parrot compiler (actually an IMC backend
 for the LCC compiler), tentatively named Carrot, over the past week. It
 can currently do some reasonably useful things, like running the Cola
 compiler (with only a very small amount of cheating), but it has raised
 a few queries:

Wow.

 * I can usually handle unsigned numbers by pretending they're signed and
 using 'I' registers, but some things appear to be awkward without new
 ops - in particular, div and cmod, and le/lt/ge/gt comparisons. (As far
 as I can tell, those are the only ones C would need; everything else
 should work fine with the signed variants).

 I've added divu/leu/etc ops to math.ops/cmp.ops (and just made them cast
 their operands into UINTVALs) - is that a reasonable thing to do? Would
 they be better in a new .ops file?

No, keeping the ops in their categories is fine.

 * Should there be an 'isatty' op/method? (or is there something else
 that isatty(fileno(file)) (which Cola's lexer uses) should do, in
 order to return a reasonable answer?)

A method, like e.g. Ceof, see classes/parrotio.pmc

  $P0 = getstding
  $I0 = $P0.__isatty()

  METHOD INTVAL __isatty() ...

(we'll create the mangled version with two underscores automagically
soon)

 * Is it possible to merge PBC files together, like load_bytecode but at
 compile-time?

Not really. But you might have a look at src/pbc_info.c, which
demonstrates some of the packfile manipulations. Such a utility would be
really great.

 * How efficient are PMC method calls? (And are performance concerns
 documented anywhere, like op calls are roughly n times faster than
 methods, so compiler-writers could avoid implementing things in stupid
 ways, or is it too early to be doing that?)

It's a bit early still, but a general rule of thumb is:
- if you have native I or N types, make it an opcode
- everything else is at least a function call already and will be
  optimized like hell and will be fast enough ;)

 I've been using [gs]et_integer_keyed_int on a PMC to allow pointer
 access. Since it reads whole ints, it probably crashes unnecessarily
 when e.g. reading chars at unlucky addresses - but IMC code like val =
 mem.read_i1(ptr) feels unpleasantly inefficient, particularly in
 string-processing loops.

That (but not only) seems to warrant new {Fixed,Resizable}ByteArray
PMCs. See e.g. the *BooleanArray PMCs.

 Hmm... Should I just accept that C-on-Parrot will always be relatively
 slow, since its concept of memory is slightly incompatible with
 Parrot's, and anybody who wants speed can use a native C compiler, so I
 can stop worrying about it? :-)

WRT memory access probably yes. When it comes to raw calculation speed
with INTVALs, Parrot can reach the speed of optimized C.

 Thanks,

Welcome,
leo


[FYI] possibly incompatible string change - rev 7851

2005-04-16 Thread Leopold Toetsch
Yesterday on IRC was some discussion [1] about the default string 
representation. The consensus was that strings should by default have 
ascii charset and not iso-8859-1 as it was for some weeks.

Autrijus has prepared a patch parrot-broken-ascii.patch, which did 
parts of this change. I've completed and extended the patch now. But 
it's probably still a bit rough. Tests succeed though.

There are a lot of string_make calls in the interpreter. I've replaced 
most explicit charsets by NULL, which uses the default ascii now. But 
for correctness, in the absence of a charset, the strings should be 
inspected, if it's ascii or not.

Mixed operations like append, substr, or bitwise_{and,or,xor} on 
fixed8-encoded strings should also be ok now, but there are no tests yet 
- these are very welcome.

Please folks grep through the sources and have a look at each string 
creation, whether it's plain ascii or not.

Thanks,
leo
[1] I missed the first part of it - would be great if such discussions 
could be brought forth to the list.



Re: [perl #34959] config/auto/gmp/gmp.in returns 1 instead of 0

2005-04-16 Thread Leopold Toetsch
Adrian Lambeck wrote:
Am Donnerstag, 14. April 2005 09:04 schrieb Leopold Toetsch via RT:
Lambeck [EMAIL PROTECTED] wrote:
Hi all,
Configure.pl failed to find the GNU Math Lib (GMP) on my system
eventhough it is installed properly (version 4.1.4) .
I compiled  config/auto/gmp/gmp.in by hand and it returned:
4950 1 but expected was:
4950 0
Everything seems to be right, except that mpz_fits_slong_p(k) returned
1 instead of 0. Could not find anything usefull to explain what it
means. I am on amd64 running Linux.
 ^
Yeah. The test is bogus for 64-bit systems. The tested number fits
within a 64-bit long. Could you please patch gmp.in and gmp.pl to use
some bigger numbers  64 bit.

Why do you test for that after all ?

I would only check if gmp is installed and that`s it.
I'm not trying to replace gmp's make check here, just test if it's 
working. The second test for mpz_fits_slong was included, because on 
some BSD there was an old GMP installed, which didn't have this feature.

Obviously this one is wrong for 64-bit systems, so using just bigger 
numbers is the way to fix it.

leo


Re: [perl #34984] [PATCH] Fix segfault with const

2005-04-16 Thread Nick Glencross
Nicholas Clark wrote:
On Fri, Apr 15, 2005 at 07:26:56PM +0100, Nick Glencross wrote:
 

+// Forbid assigning a string to anything other than a string const
+// for now
   

In future, please don't use C99 comments.
(apart from that, I don't have the knowledge to comment on this patch)
 

Ahh! I always sigh when I see people do it, but it's hard to juggle C 
and C++ comments!

Thanks for pointing that out. Probably best to resubmit patch...
Well spotted,
Nick


Re: [perl #34984] [PATCH] Fix segfault with const

2005-04-16 Thread Leopold Toetsch
Nick Glencross [EMAIL PROTECTED] wrote:

 Leopold Toetsch via RT wrote:


I think, we could be a bit more graceful here for I/N mismatch and set
for the above case the constant val-set to 'N'.


 Let me redo that...  I've just sent the wrong attachment which had a
 typo in it ...

Similar patch is in now, capable of handling PMC constants too:

  .const Integer = 42

and with C99 comment style removed.

 [This should really address rare but possible Unicode strings, shouldn't
 it?]

Yep.

 Nick

Thanks,
leo


Maybe I'm back

2005-04-16 Thread Michael Scott
Hello all,
Maybe some of you remember how I used to have endless hours in Berlin 
to fiddle with Parrot documentation. Then I got a job, moved back to 
London, and disappeared.

I can't say I have been following the list closely, but I have read the 
occasional summary from time to time. I'm out of touch, but curious 
again.

Now I know, promises are worthless, but I have been thinking of putting 
a Getting Started Guide together again.

In the process of poking around in the subversion checkout I noticed 
that write_docs.pl was broken. I fixed it. (What is a .bundle file 
anyway?)

Maybe some kind soul could shortcut me to how/where I check in the 
changes.

Mike


Re: [RFC] some doubtable MMDs?

2005-04-16 Thread Larry Wall
On Fri, Apr 15, 2005 at 11:11:00PM -0400, Bob Rogers wrote:
: By the same token, couldn't one reasonably ask for a boolean array that
: required BigInt subscripts, even on said 32-bit machine?  (Once boolean
: arrays actually store one element per bit, that is.)  Or are subscripts
: this large ruled out?

It's certainly reasonable to have some way of allocating a bit array
that big.  If you have to turn you're entire memory into a bit array,
that's fine by me.  I've never been much into arbitrary limits.

But my question as a language designer then has to be:  What do you
mean by ask for, and is merely asking for any bit array the same
thing as asking for one that big?

:Or are you using integer conceptually to include both Integer and
: BigInt?

Whether I am or not depends on whether I take a big speed hit for
the generality.  I like generality, but I also want Perl 6 to be
fast in the common case, as long as it is not too difficult for
the compiler to figure out which cases are not the common ones.
Syntactically speaking, Perl 6 can easily distinguish

my bit @array is shape(int);# native int subscript

from

my bit @array is shape(Int);# big int subscript

but I'm just wondering which I should be thinking of as the default for

my bit @array;

It seems to me that assuming shape(int) is not generally going to
be a hardship on people, especially once 64-bit machines get to be
the norm.  And if it means that the optimizer can do tricks and eek
some more speed out, then I'm willing to force the occasional user
to declare shape(Int) when they want the generality.

Larry


Re: [RFC] some doubtable MMDs?

2005-04-16 Thread Larry Wall
On Sat, Apr 16, 2005 at 10:36:37AM +0200, Leopold Toetsch wrote:
: Larry Wall [EMAIL PROTECTED] wrote:
:  Perl 6 tends to distinguish these as different operators, though Perl 5
:  did overload the bitwise ops on both strings and numbers, which newbies
:  found confusing in ambiguous cases, which is why we changed it.
: 
: We have distinct functions for bitwise shift int and string. That's no
: prblem. But can the right operand be anything different then a plain
: integer?

I don't think Perl cares.  (Can't speak for other languages.)  I do think
bit shifts tend to be in very hot code for crypto routines, so any hints
we can give the optimizer would help those apps.

: Above are only the PMC variants. There are optimized forms for array and
: hash lookup by native types:
: 
:   Px = Py[Iz]
:   Px = Py[Sz]

Is there a bitarray lookup by native int?

: But with PMCs we seem to have a bunch of different key-ish PMCs,
: including a BigInt PMC for bitarrays.

I don't mind the general MMDish cases, as long as they don't get
in the way of a writing a devilish fast LINPACK in Perl 6 without
too many contortions.  And we can certainly contort Perl 6 to our
hearts' content, but I'm just trying to figure out whether ordinary
arrays default to shape(int) or shape(Int).  My gut feeling is that
defaulting to shape(int) is going to buy the optimizer something, but
it's just that, a gut feeling.  (That, and the fact that plural slice
subscripts are generally visible to the compiler, because we don't
automatically interpolate $foo into a list even if it's a sublist.
So we generally know when we're doing a singular subscripting op.)

: With MMD we'd have one function per key. Without the usual cascaded if
: statements:
: 
:   if key.type == Int
:  ...
:   elsif key.type == Slice
:  ...
: 
: From a performance POV, MMD is faster with optimizing run cores that can
: rewrite the opcode and about the same speed with a plain MMD function cache.

Yes, but there's still got to be some internal overhead in deciding
whether the run-time Int object is representing the integer in some
kind of extended bigint form.  (Or are you meaning Int as Parrot's
native integer there?)  Plus if you're optimizing based on run-time
typing, there has to be some check somewhere to see if you're
assumptions are violated so you can pessimize.  That sort of check
can be factored out to some extent, but not to the same extent that a
compiler can factor it out with sufficient advance type information,
either direct or inferred.  (At least, that's my assumption.  I don't
claim to up-to-date on the latest in optimizing run cores.)

Basically, Perl[1-5] got a lot of performance out of assuming IEEE
floats were available and sufficiently accurate, whereas earlier
languages like REXX has to roll their own numerics to achieve accuracy.
I'd like to think that native integers will (soon) always be big
enough for most purposes, and am wondering how much it buys us to
stay close to the metal here.  (And whether the answer is different
for 32-bit and 64-bit machines, but that feels like a hack.)

Larry


Re: nbsp in \s, ?ws and

2005-04-16 Thread Larry Wall
On Sat, Apr 16, 2005 at 10:22:45AM +0200, Leopold Toetsch wrote:
: Well there are three different whitespace lists. The Parrot program [1]
: below shows all, including space and blank.

I suspect we'll end up with about as many whitespace definitions
as there are computer languages, or maybe as many as there are
programmers.  Or maybe the cross product of those...

The basic problem is that as we get off into the land of pragmatics, a
term like whitespace becomes extremely context dependent.  And things
like zero-width spaces and non-breaking spaces can have meanings that
depend contextually on the actual human language you're dealing with.

The job for a language designer is to decide whether any of the default
standards are good enough to serve as the default for the language,
or whether we need yet another standard to choose from.  :-)

The other job is to make sure that, regardless of the default, it's
possible to make any other choice *look* like the default within a
particular lexical scope, and to cajole the language implementer into
making sure it's not too much overhead to support other character
classes.

Larry


Re: [perl #34959] config/auto/gmp/gmp.in returns 1 instead of 0

2005-04-16 Thread Juergen Boemmels
On Thursday 14 April 2005 08:36, Leopold Toetsch wrote:
 Lambeck [EMAIL PROTECTED] wrote:
  Hi all,
  Configure.pl failed to find the GNU Math Lib (GMP) on my system
  eventhough it is installed properly (version 4.1.4) .
  I compiled  config/auto/gmp/gmp.in by hand and it returned:
  4950 1 but expected was:
  4950 0
 
  Everything seems to be right, except that mpz_fits_slong_p(k) returned
  1 instead of 0. Could not find anything usefull to explain what it
  means. I am on amd64 running Linux.
   ^

 Yeah. The test is bogus for 64-bit systems. The tested number fits
 within a 64-bit long. Could you please patch gmp.in and gmp.pl to use
 some bigger numbers  64 bit.

I changed the test to calculate a mersenne prime number. I have tested it
on amd 64 and it finds amd64.

Ok to commit?
boe
Index: config/auto/gmp/gmp.in
===
--- config/auto/gmp/gmp.in	(revision 7853)
+++ config/auto/gmp/gmp.in	(working copy)
@@ -7,21 +7,17 @@
 
 int main(int argc, char *argv[])
 {
-mpz_t i, j, k;
+mpz_t prime;
 char *s; int y;
 
-mpz_init(i);
-mpz_set_si(i, 99);
-mpz_init(j);
-mpz_set_si(j, 100);
-mpz_init(k);
-mpz_mul(k, i, j);
-mpz_set_si(i, 2);
-mpz_div(k, k, i);
+/* Calculate the 13th Mersenne prime 2^521 - 1 */
+mpz_init(prime);
+mpz_ui_pow_ui(prime, 2, 521);
+mpz_sub_ui(prime, prime, 1);
 
-y = mpz_fits_slong_p(k);
+y = mpz_fits_slong_p(prime);
 
-s = mpz_get_str(NULL, 10, k);
+s = mpz_get_str(NULL, 10, prime);
 printf(%s %d\n, s, y);
 free(s);
 return 0;
Index: config/auto/gmp.pl
===
--- config/auto/gmp.pl	(revision 7853)
+++ config/auto/gmp.pl	(working copy)
@@ -55,7 +55,7 @@
 my $has_gmp = 0;
 if (! $@) {
 	my $test = cc_run();
-	if ($test eq 4950 0\n) {
+	if ($test eq 6864797660130609714981900799081393217269435300143305409394463459185543183397656052122559640661454554977296311391480858037121987999716643812574028291115057151 0\n) {
 $has_gmp = 1;
 	print  (yes)  if $verbose;
 $Configure::Step::result = 'yes';


Re: Python on parrot

2005-04-16 Thread Sam Ruby
Kevin Tew wrote:
Sam,
Just wondering what the status is on python/parrot/pirate/pyrate.
These both look outdated.
http://www.intertwingly.net/stories/2004/10/05/pyrate.zip
http://pirate.versionhost.com/viewcvs.cgi/pirate/
I haven't looked at it for a few months now.  I do plan to revisit it 
enough to get the Pie-thon tests completed by the time of OSCON (in August).

Is there a up to date cvs repo?
http://pirate.tangentcode.com/
Can we get this code checked into the parrot svn repo?
Unfortunately, no.  Much of this code is copyright Michal Wallace.
The good news is that the good stuff is in the parrot repo already. 
What is left - a simple translator - can and should, IMHO, be recoded 
into Perl6 once enough of that is running.

- Sam Ruby


Re: Python on parrot

2005-04-16 Thread Sam Ruby
[I hope you don't mind me putting this back on the list - I would prefer 
that everybody who is interested can follow along and/or participate]

Kevin Tew wrote:
Sam Ruby wrote:
Kevin Tew wrote:
Sam,
Just wondering what the status is on python/parrot/pirate/pyrate.
These both look outdated.
http://www.intertwingly.net/stories/2004/10/05/pyrate.zip
http://pirate.versionhost.com/viewcvs.cgi/pirate/
I haven't looked at it for a few months now.  I do plan to revisit it 
enough to get the Pie-thon tests completed by the time of OSCON (in 
August).

Is there a up to date cvs repo?
http://pirate.tangentcode.com/
Can we get this code checked into the parrot svn repo?
Unfortunately, no.  Much of this code is copyright Michal Wallace.
The good news is that the good stuff is in the parrot repo already. 
What is left - a simple translator - can and should, IMHO, be recoded 
into Perl6 once enough of that is running.

- Sam Ruby
So why won't Michal Wallace sign over the copyright?
I talked to Michal briefly about this a while back.  My impression was 
that he wanted to sign over the copyright to the Python foundation. 
Which makes a bit of sense - the goal of having everything run on a 
single runtime does not necessarily imply that everything has to be 
owned by a single organization and put into a single repository.

My own opinions is that Michal thinks too much.  ;-)
My impression is that everybody here is reasonable, and if it made sense 
for further development to be transferred to another organization, then 
some reasonable arrangement would be made.

Also, I believe that much of the initial work is throwaway work anyway. 
 Build one to throw away, and all that.

Cool I did notice all the python pmcs.
By translator  I assume you mean a interpreter/compiler to parrot byte 
code.
At the moment, it is to Python to IMC, but eventually going directly to 
bytecode would be a good idea.

Why would you do it in Perl6, why not self hosted in python?
Self hosted in Python is a good idea, once it can be bootstrapped.
Overview of the current process:
1) Leverage python's compiler class to convert source to AST
2) Pirate converts AST to IMC
3) Parrot converts IMC to bytecode
I'm thinking of toying around with python and just want to leverage all 
the previous work.
Excellent.  In the meantime, if you are interested in getting commit 
access to the Pirate repository, I'm confident that that can be arranged.

My feeling, for what it is worth, the translator is known to be a 
solvable problem.  Determining the proper mapping of Python semantics to 
Parrot is the research problem.  The overwhelming majority of that work 
is in getting the PMCs right.  Not having to worry about the syntax of 
python or the conversion to bytecodes allows one to focus on just that 
aspect of the problem.

But, as with all open source projects, feel free to scratch your own itches.
Looks like I'll start with a translator and some new test cases so they 
can be contributed copyright free.
There also are a fair amount of python test cases in the parrot 
repository.  parrot/languages/python/*/*.t and t/dynclass/python/*.t.

When I last looked, these were not complete.  Undoubtably, there is 
likely to be some minor regressions as I have not kept up with the 
latest Parrot changes.  If past history is any guide, this is not much 
of a problem.

- Sam Ruby


Re: [perl #34988] [PATCH] Fix a few more typos

2005-04-16 Thread chromatic
On Thu, 2005-04-14 at 12:28 -0700, Nick Glencross wrote:

 This patch fixes a few more typos. I'll leave it a few months before 
 doing this again.

 I'm assuming that 'heisenbugs' is for real, that made me chuckle

It's a real term, for as real as programmer neologisms can be.

Thanks, applied.

-- c



Re: [perl #34989] [PATCH] Fix a few more typos

2005-04-16 Thread chromatic
On Thu, 2005-04-14 at 12:29 -0700, Nick Glencross wrote:

 This patch fixes a few more typos. I'll leave it a few months before 
 doing this again.

This looks like a duplicate of #34988, which I've applied, so
queuemasters please close.

Nick, I've changed at least one occurrence of 'uninitialized' back to
'initialized'.  Please check the other and ensure that I caught it all.

-- c



forced manifest check

2005-04-16 Thread Robert Spier
 
 Well, it always depends, how responds looks like:
 
 Committed revision 1234
 
 *
 ATT MAINFEST ERROR
 missing bla.bla ...
 *

This is very similar to what it did under CVS, although maybe not
quite as big.

Anyway, if this is something the community wants, if someone could
implement a first pass at the hook script, we can run it.  It'll need
to use svnlook cat to look at the Manifest, svnlook changed to detect
new files or removed files, and then compare.  Actual details are up
to the implementer.

Many thanks to Garrett Goebel who created our CVS implementation.

-R