Re: Is Parrot 1.0 too late?

2007-04-25 Thread John Siracusa
On 4/24/07 6:31 PM, Nikolay Ananiev wrote:
> As we all know, parrot has been in development for 7 years now. That's a lot
> of time and many things have changed since then. From my point of view one of
> the biggest strengths of Parrot is that it's a target for many (and why not
> all?) dynamic languages and as I know there's no other VM like it. Well...
> since now.
> 
> Check this article: http://blogs.zdnet.com/microsoft/?p=404 Microsoft
> announces a dynamic layer for CLR, so they will be able to support dynamic
> languages on their VM. And JVM 1.6 already has this, plus it's opensource and
> has support for the mainstream platforms.
> 
> So, is one of parrot's biggest strengths gone? Are we too late?
> Why would the developers use Parrot instead of JVM/CLR/Mono?

I think the role Parrot aims to fill is remains unfilled, although it is
being approached from both sides.  Check out this LLVM presentation, for
example:

http://llvm.org/pubs/2007-03-12-BossaLLVMIntro.html

Look towards the ends of the slides:

http://llvm.org/pubs/2007-03-12-BossaLLVMIntro.pdf

An excerpt:

Call for help!

­ OSS community needs to unite work on various scripting languages
  ­ Common module to represent/type infer an arbitrary dynamic language
­ Who will provide this?  pypy? parrot? llvm itself someday ("hlvm")?

HLVM is actually in progress:

http://hlvm.org/

Judging by how fast LLVM has progressed since Apple's been backing it
(almost two years now) LLVM/HLVM may be something to watch (or work with...)

-John




Re: LLVM and HLVM

2006-08-23 Thread John Siracusa
On 8/23/06 4:09 PM, Aaron Sherman wrote:
> here's the problem with that: llvm is a very light layer, but it's yet another
> layer. To put it between parrot and hardware would mean that parrot is JITing
> to LLVM byte-code, which is JITing to machine code. Not really ideal.

...unless LLVM does a much better job of native code generation than the
existing Parrot code, that is.  Optimization seems to be LLVM's "thing."

-John




LLVM and HLVM

2006-08-22 Thread John Siracusa
Has anyone looked at LLVM lately?

http://llvm.org/

It seems to be making a lot of progress lately with the support of Apple
(which is using LLVM for its own purposes in Mac OS X).  Is there anything
there Parrot can steal?  Would it make sense for Parrot to target LLVM
bytecode and let LLVM do further optimization and native code generation?

There's also the predictably named HLVM:

http://hlvm.org/

which looks vaguely Parrot-ish.  Check out the comparison chart:

http://hlvm.org/docs/FAQ.html

Anyway, I'm just thinking out loud, here.  Sorry if it's all old news to the
Parrot dev gurus.

-John




Re: [off topic] an amusing side note

2004-11-24 Thread John Siracusa
On 11/24/04 7:27 PM, Tim Bunce wrote:
> I predict a burst of wild creativity from authors enjoying the
> exploration of all the wonderful tools in the perl6 toolbox.
> 
> Then, after a year or three of fun, sawn off limbs, and bloodied
> fingers (and after a few good books get published) most of us will
> converge towards a common subset of accepted good practice.

...much like what happened with Perl 5...although the last phase has been
hampered somewhat but the utility of some of those early, crazy efforts :)

-John




Re: [off topic] an amusing side note

2004-11-24 Thread John Siracusa
On 11/24/04 3:42 PM, Felix Gallo wrote:
> Well, it's the first time *I've* seen it.
> 
> http://otierney.net/images/perl6.gif
> 
> I find it difficult to disagree, at the perl6 language level.

I don't :)  Judging by the Perl 6 RFCs, I think that book cover would be
accurate if "the community" really did design Perl 6 in the absence of
Larry.  Fortunately, that's not the case.  I think Perl 6 is a lot cleaner
than Perl 5 in addition to being much more powerful.

-John




Re: No Autoconf, dammit!

2004-09-08 Thread John Siracusa
On Wed, 8 Sep 2004 15:46:17 +, Herbert Snorrason <[EMAIL PROTECTED]> wrote:
> I suggest we institute a "Rule One" for Dan. (And number two, too,
> while we're at it.) It'd be easier that way.

That rule already exists, but I think Dan still feels insecure about
it ;)  The Larry Way(tm) is to include the decision in the middle of a
mind-numbing, globe trotting spew of information.  That way, there are
plenty of jucier tidbits to distract people.  He also usually gives a
one or two sentence reason, which might help here too.  An example:

"No Autoconf because Autoconf assumes the existence of more things
than Parrot can.  Parrot has to build anywhere that has C89 support,
but Autoconf requires sh, among other things."

I don't even know if that's accurate, but in lieu of Larry's "Where's
Waldo Hidden Decree" technique, I think there needs to be something
more than "because I said so" to keep the natives from becoming
restless :)

-John


Re: Numeric semantics for base pmcs

2004-08-26 Thread John Siracusa


On Thu, 26 Aug 2004 11:10:59 -0400, Dan Sugalski <[EMAIL PROTECTED]> wrote:
> At 10:56 AM -0400 8/26/04, John Siracusa wrote:
> >Why make a stop in 32-bit land at all in that case?  If the system supports
> >64-bit ints, why not use them for everything right up until you promote to
> >BigNum?  Is it a memory bandwidth issue or something?
> 
> If you've built parrot to use 64 bit ints, it will.

Hm, but does that also mean that it'll expect "all" ints to be 64 bit?  I'm
thinking of "hybrid" situations like Mac OS X on a G5, where the OS and all
system libs are still 32-bit, but the CPU can handle 64-bit integers.

> We still have to generally address the whole 64 bit integer question.
> I've been avoiding it, but I'm not sure that's ultimately feasable.

Obviously someone needs to buy you a G5 in order to adequately motivate
you... ;)

-John




Re: Numeric semantics for base pmcs

2004-08-26 Thread John Siracusa
On Wed, 25 Aug 2004 07:48:03 +0200, Leopold Toetsch <[EMAIL PROTECTED]> wrote:
> John Siracusa <[EMAIL PROTECTED]> wrote:
> > On Tue, 24 Aug 2004 14:46:53 -0400, Dan Sugalski <[EMAIL PROTECTED]> wrote:
> >> The big question is whether being clever and producing the tightest
> >> type is worth the time to figure out what that type is, as well as
> >> the potentially uncertain output type.
> 
> > Tangentially related: will promotion be suitably delayed on systems with
> > support for 64-bit ints?  More generally, what is the state-of/plan-for
> > "64-bit support" (whatever that may mean) in Parrot?
> 
> I thought about that during BigInt hacking. It could be a nice
> optimization if we go:
> 
>   Int -> Int64 -> BigInt
> 
> on 32-bit systems that have 64-bit integer support. OTOH it makes type
> promotion a bit more complicated and dependent on configuration
> settings.

Why make a stop in 32-bit land at all in that case?  If the system supports
64-bit ints, why not use them for everything right up until you promote to
BigNum?  Is it a memory bandwidth issue or something?

Either way, it'll definitely be a boon to fast integer math if 64-bit ints
are used to stave off promotion to BigNum when possible.  This may be
especially true for languages like Perl 6 which (AFAIK) doesn't have an
"int64" native type specifier.  So either Perl 6's "int" type is 64-bit
where possible, or is a 32-to-64-auto-promoting type.

-John




Re: Numeric semantics for base pmcs

2004-08-24 Thread John Siracusa
On Tue, 24 Aug 2004 14:46:53 -0400, Dan Sugalski <[EMAIL PROTECTED]> wrote:
> The big question is whether being clever and producing the tightest
> type is worth the time to figure out what that type is, as well as
> the potentially uncertain output type.

Tangentially related: will promotion be suitably delayed on systems with
support for 64-bit ints?  More generally, what is the state-of/plan-for
"64-bit support" (whatever that may mean) in Parrot?

-John




Re: Load paths

2004-03-24 Thread John Siracusa
On 3/24/04 1:58 PM, Brent 'Dax' Royal-Gordon wrote:
> And I do think URIs aren't a horrible idea, although it doesn't matter
> since you disagree.  Ah well...

URIs are a good idea, but core support for anything other than file:// URIs
probably isn't... :)  Anyway, if you use URIs, then you can be like every
badly behaved OS vendor and start making up your own crazy URI schemes:
filehandle://, pmc://, sharedmem://

(Okay, maybe it's not such a good idea after all... :)
-John



Re: Dates and Times

2004-03-07 Thread John Siracusa
On 3/4/04 5:09 PM, Dan Sugalski wrote:
> If the local system returns localtime, I can see adjusting to GMT or UTC, or
> whatever, as that ought to be a trivial transform.

Er, I'm not so sure about that.  That means you'd have to be 100% sure that
you can determine the local timezone without any ambiguity.  That has not
proven to be the case if the DateTime.pm project is any indication...

-John



Re: DOS filename collisions

2002-12-04 Thread John Siracusa
On 12/4/02 2:16 PM, Michael G Schwern wrote:
> On Wed, Dec 04, 2002 at 02:03:06PM -0500, Dan Sugalski wrote:
 DOS isn't an intended compilation target, no.
>>> Not even djgpp?
>> 
>> Hadn't planned on it. What advantage does it give over windows?
> 
> It'll compile C programs on a 386/SX, 20M of disk, 4megs of RAM and some
> form of DOS.
> 
> Dunno if hardware that old is inside Parrot's scope.

Gah, it's like AutoLoader all over again!  Please, let's just forget about
building on systems that only support 8.3 or else we'll never be rid of
them! :)

-John




Re: Parrot Trooper

2002-02-08 Thread John Siracusa

On 2/8/02 1:44 PM, Wizard wrote:
> Try this. It's might be too 1970's, though.

Also too carcinogenic ;)

-John




Re: What happened at little languages?

2001-11-19 Thread John Siracusa

On 11/19/01 12:25 PM, Dan Sugalski wrote:
> Python's got a good shot at things, as it seems to be the 'dirty little
> secret' of the academic world--it's the practical language people admit to
> using when they're actually doing something.

Sounds familiar...

> I've reasonably good hope for Ruby, too, but nobody seemed to have heard of
> it. That's hopefully changed. (I made a point of mentioning it, as it is a
> really nice language and one of our targets)
> 
>> Or is this just the academic distaste for Perl syntax showing through?
> 
> Sort of.

How "academics" can dislike Perl's syntax aesthetics and yet like
Smalltalk's is beyond me.

-John




Re: Schedule of things to come

2001-10-27 Thread John Siracusa

On 10/27/01 10:34 PM, John Siracusa wrote:
> On 10/27/01 7:08 PM, Dan Sugalski wrote:
>> I think we're due out in reasonably good alpha/beta shape for the summer.
> 
> Heh, the phrase "suitable vague" springs to mind... :)

s/e v/y v/; # oops :)

-John




Re: Schedule of things to come

2001-10-27 Thread John Siracusa

On 10/27/01 7:08 PM, Dan Sugalski wrote:
> I think we're due out in reasonably good alpha/beta shape for the summer.

Heh, the phrase "suitable vague" springs to mind... :)

(which year is that again? ;)
-John




Re: Schedule of things to come

2001-10-27 Thread John Siracusa

On 10/27/01 4:22 PM, Dan Sugalski wrote:
> At 06:27 AM 10/27/2001 -0700, Ask Bjoern Hansen wrote:
>> [EMAIL PROTECTED] (Dan Sugalski) writes:
>> I think Robert and I are planning to get mod_parrot to work as soon as
>> parrot has some kind of I/O. :-)
> 
> Darned soon now.
> 
> So I know for the first-stage rollout, does Apache's module system support
> Apache managing filehandles and modules calling apache's I/O routines, or
> does it just do weird magic with I/O on normal filehandles?

Which apache module system would this be, 1.3 or 2.0?   What do the relative
"schedules" (heh? :) of Parrot/Perl 6 and apache 2.0 look like?  It'd be
nice not to end up with one or the other being out of step (e.g.
mod_perl6/parrot for apache 1.3 arriving long after apache 2.0 is the
established standard)

-John




Re: Revamping the build system

2001-10-23 Thread John Siracusa

On 10/23/01 8:16 AM, Paolo Molaro wrote:
> On 10/23/01 Simon Cozens wrote:
>> On Tue, Oct 23, 2001 at 12:16:04PM +0200, Paolo Molaro wrote:
>>> autoconf automake libtool
>> 
>> MVS, MacOS, cross-compilation.
> [...]
> MacOS: I guess any type of Makefile based build system would not work on
> MacOS. They can use a separate build setup with project files for the
> metrowerks compiler or whatever the compiler is going to be there.

As one of the few rabid Mac users on this list, let me just say that I
personally have no problem with classic Mac OS support being totally dropped
from Parrot if it'll get stuff out the door sooner :)  Classic Mac OS is
(somewhat sadly) a dead OS at this point.  By the time Parrot is "done",
Apple will probably be shipping hardware that won't even *boot* classic Mac
OS outside of a virtual machine in OS X.

(Also, I'd be much happier if those resources could be redirected to making
sure Perl 6, apache, mod_perl, etc. all builds as easily on OS X as they do
on, say, Solaris...but now I'm just whining ;)

(Apache::Request-less on OS X, 7 months and counting...)
-John




Re: The core platforms list

2001-09-19 Thread John Siracusa

On 9/19/01 11:51 AM, Randal L. Schwartz wrote:
> John> (HFS and HFS+ are indeed case-insensitive though)
> 
> Which they *could* have fixed from the Unix side in the same way that
> MachTen did it..., and I wish they would.  In MachTen, each
> case-folded collision on the HFS+ side is handled by adding \0 bytes
> until the names are distinct.  The finder has a bit of a mess renaming
> them, but at least you can see them as separate files.  And no
> collisions from the Unix side!
> 
> So, foo, Foo, and FOO would be stored as "foo" "Foo\0" and "FOO\0\0",
> effectively.

Ick.

> Is there anybody I can write at Apple to beg for this?

If you're going to beg, beg for an actual case-sensitive file system, not an
evil hack on top of HFS+ (the hard link hacking is bad enough ;)  Check
lists.apple.com for the relevant mailing list archive(s) to see how this
debate has gone so far.

On 9/19/01 11:49 AM, Robin Houston wrote:
> Dan Sugalski wrote:
>> I'd love to have Darwin there, [...]
>> 
>> If someone is willing to pitch in the time and effort, I'd be thrilled
>> to add it to the list.
> 
> I'm willing.

My hero! :)

-John




Re: The core platforms list

2001-09-19 Thread John Siracusa

On 9/19/01 10:35 AM, Randal L. Schwartz wrote:
> John> Someone will correct me if I'm wrong, but I don't think Darwin
> John> even installs on file systems that support anything less than
> John> 255 character file names (e.g. HFS).
> 
> My HFS+ drive held Darwin for at least a little while, and that's only
> 32-character, case-insensitive names.  Unless the Finder is hiding
> something from me.

HFS+ supports 255 character file names.  Yes, the (classic Mac OS) Finder is
hiding something from you, as are the rest of the classic Mac OS file access
APIs, which are limited to 32 characters and weren't updated when HFS+ was
introduced with Mac OS 8.1(?).  In Darwin and OS X on HFS+, feel free to:

touch thisfilenameismuchlongerthanthirtytwocharactersanditworks

(HFS and HFS+ are indeed case-insensitive though)
-John




Re: The core platforms list

2001-09-19 Thread John Siracusa

On 9/18/01 7:26 PM, Randal L. Schwartz wrote:
> I'd suggest you "Darwin" there to be sure you're thinking about
> case-insensitive-32-char filenames

Someone will correct me if I'm wrong, but I don't think Darwin even installs
on file systems that support anything less than 255 character file names
(e.g. HFS).

I'll probably try building Parrot on Darwin (well, OS X) from time to time,
but I don't have the skills (or time) to do much more than notice whether
it's broken or not, heh.  I hope someone does pick up the Darwin torch,
though.  I don't want a repeat of the Apache/Perl 5 situation on Darwin (I
*still* can't get mod_perl running correctly)

-John




Re: Math functions? (Particularly transcendental ones)

2001-09-09 Thread John Siracusa

On 9/9/01 11:47 AM, Dan Sugalski wrote:
>> http://www.allegedlyfunny.com/opcodes.html
>> I think DWIM might be a bit much, but HCF (Halt, Catch Fire) might be
>> fun :)
> 
> Far too many of those are tempting... :)

Hey, if the PPC can have EIEIO, I see no reason Parrot can't sneak a few fun
ones in... :)

-John




Re: Something to hash out

2001-08-25 Thread John Siracusa

On 8/25/01 10:37 AM, Dan Sugalski wrote:
> I'm currently thinking of using .pasm as the extension for parrot assembly
> code, and .pbc for precompiled bytecode. [...] Can anyone think of anything
> better? They seem rather lame.

I think they're just fine, actually.  I like them better than anything
proposed so far.  As for 8.3, come on, the madness has to end some time ;)

-John




Re: Modules, Versioning, and Beyond

2001-07-29 Thread John Siracusa

On 7/29/01 12:48 PM, Bryan C. Warnock wrote:
> Let's just arbitrarily assume that the
> major number of the version is equivalent to that version of the API.
> (In other words, Foo 1.05 gives us a promise that it uses the same API
> as 1.02 and 1.08.  Foo 2.01 would use a different (however slight) API
> from 1.99 and 3.10.

The major/minor version scheme is nice.  I've seen it used elsewhere, but I
often wonder what happens when I hit 1.99 and the API still isn't changing
in an incompatible way.  (Hey, it could happen...good planning! :)

> An alternate way of representing this is through a directory hierarchy,
> vaguely reminiscent of one Perl uses currently.  We can abstract both
> the API major version and the minor revision number to two layers of
> directories.  So now Foo.pm above could be found as:
> 
>   perllib/Foo.pm@  ->  1/02/Foo.pm
>   perllib/1/Foo.pm@  ->  02/Foo.pm
>   perllib/1/02/Foo.pm

Mac OS X (nee NeXT) Framework bundles spring to mind at this point.  They
allow for multiple simultaneous versions (using major/minor version
compatibility rules like those described earlier) and even multiple
architectures, all within a single structured directory.  More information
can be found here:

http://developer.apple.com/techpubs/macosx/CoreFoundation/BundleServices/Bun
dle_Services/

or in the relevant section of the System Overview document:

http://developer.apple.com/techpubs/macosx/SystemOverview/SystemOverview/Sys
temOverview.pdf

It may not be 100% applicable to Perl, but there are some good ideas in
there (many echoed in Brian's post).

-John




Re: Perl_foo() vs foo() etc

2001-04-11 Thread John Siracusa

On 4/11/01 4:38 PM, Dan Sugalski wrote:
> At 03:09 PM 4/11/2001 -0400, John Siracusa wrote:
>> On 4/11/01 10:55 AM, Dan Sugalski wrote:
>>> It does fix the link issues, though. perl6.so won't ever have an
>>> unqualified function in it--they'll all have either a Perl_ or _Perl_
>>> prefix on them, and all global data will have a PL_ prefix on it.
>> 
>> Remind me again why it's PL_ and not PERL_?
> 
> Well, Perl_ and PERL_ won't work, since that's relying on case-sensitivity
> in the various linkers, which is a Bad Thing.

D'oh!  Hadn't thought of that...

> Having Perl_ and PL_ to separate code and data is in there mainly to make
> separating things programmatically easier. We could, I suppose, make
> everything Perl_ and have a config file somewhere with the type
> (data/code/whatever) indicated.

Well, that does sound a bit harder.  Maybe I'm crazy, but I just keep seeing
that "PL" product/technology/language/dessert-topping/floor-wax coming along
and messing things up.  And its kind of like domain names: how many
two-letter combinations aren't already taken?

> That's probably the best thing--since we're exporting only a reasonably few
> things, and only explicitly, it ought to be OK.

Cool beans :)

 ;)

-John




Re: Perl_foo() vs foo() etc

2001-04-11 Thread John Siracusa

On 4/11/01 10:55 AM, Dan Sugalski wrote:
> It does fix the link issues, though. perl6.so won't ever have an
> unqualified function in it--they'll all have either a Perl_ or _Perl_
> prefix on them, and all global data will have a PL_ prefix on it.

Remind me again why it's PL_ and not PERL_?  It seems to me that PL_ has
*got* to be used somewhere in the wide world of code.  (Isn't it a country
code?)  Maybe I'm being too paranoid, but Perl has basically staked out the
letters "p e r l", whereas "PL" is probably still up for grabs.  The last
thing we need is some whizzy new product exploding into the "PL" moniker in
2003 and creating weird new embedding problems.  PERL_ also matches  up
nicely with _Perl_ and Perl_, of course.  What are two characters worth? ;)

-John




Re: Chip's topaz slides

2001-04-05 Thread John Siracusa

On 4/5/01 6:36 PM, Nathan Torkington wrote:
> Better late than never!  Chip's provided the slides for last year's
> Topaz talk at TPC5.

Ah, the speed of the Internet age! ;)

(but you're right, so thanks :)
-John