public inbox for cgen@sourceware.org
 help / color / mirror / Atom feed
* Implementation Language
@ 2000-07-29  9:26 Doug Evans
  2000-07-31 18:31 ` Frank Ch. Eigler
  0 siblings, 1 reply; 15+ messages in thread
From: Doug Evans @ 2000-07-29  9:26 UTC (permalink / raw)
  To: Ben Elliston; +Cc: cgen

Ben Elliston writes:
 > We've been running CGEN purely interpeted for several months now and no one
 > is finding the speed to be a problem at all.

The smob class implementation is gone too though.
Debugging was much easier with it.
[Of course, for those tuning in late, should the implementation
remain in Guile, yes, we'll want to switch to goops (IMO of course).]

That's probably the first decision we need to reach:
do we stick with Guile?  There's no other politically correct
choice for a Scheme implementation. Or do we switch to C? (/C++?).
[I can here the cackles now ...]

I think speed of code generation is important, but I also think
there's no reason why a Scheme implementation can't satisfy that.
However, I think the current Guile implementation has a _long_ way to go
in this regard, and I'm not convinced it will ever get there.

^ permalink raw reply	[flat|nested] 15+ messages in thread

* Re: Implementation Language
  2000-07-29  9:26 Implementation Language Doug Evans
@ 2000-07-31 18:31 ` Frank Ch. Eigler
  2000-08-01  1:00   ` Ben Elliston
  0 siblings, 1 reply; 15+ messages in thread
From: Frank Ch. Eigler @ 2000-07-31 18:31 UTC (permalink / raw)
  To: Doug Evans; +Cc: cgen

Hi -

On Sat, Jul 29, 2000 at 09:25:26AM -0700, Doug Evans wrote:
> [...]
> That's probably the first decision we need to reach:
> do we stick with Guile?  

I would like to keep Scheme, especially if some of the code
is reorganized.  The halfhearted O-O structures (not cos.scm,
but its uses) particularly bug me.

> There's no other politically correct
> choice for a Scheme implementation.

We don't need to be dependent on any particular Scheme
implementation.  We could assume R5RS, and add only
essential minimal interpreter-specifics.

> [...]
> However, I think the current Guile implementation has a _long_ way to go
> in this regard, and I'm not convinced it will ever get there.

It's a good operational starting point.


- FChE
-- 
-----BEGIN PGP SIGNATURE-----
Version: GnuPG v1.0.0 (GNU/Linux)
Comment: For info see http://www.gnupg.org

iD4DBQE5hihXVZbdDOm/ZT0RASjFAJ90pEcERwusDsYZzMpymrgJtibAaACXd5Wm
kVLatHWLALK5LuFAGfih4g==
=zsmJ
-----END PGP SIGNATURE-----

^ permalink raw reply	[flat|nested] 15+ messages in thread

* Re: Implementation Language
  2000-07-31 18:31 ` Frank Ch. Eigler
@ 2000-08-01  1:00   ` Ben Elliston
  2000-08-02 17:10     ` Frank Ch. Eigler
  0 siblings, 1 reply; 15+ messages in thread
From: Ben Elliston @ 2000-08-01  1:00 UTC (permalink / raw)
  To: Frank Ch. Eigler; +Cc: Doug Evans, cgen

   I would like to keep Scheme, especially if some of the code is
   reorganized.  The halfhearted O-O structures (not cos.scm, but its
   uses) particularly bug me.

Likewise.  R5RS has no object system, right?  Is GOOPS a risky proposition?

   We don't need to be dependent on any particular Scheme implementation.  
   We could assume R5RS, and add only essential minimal
   interpreter-specifics.

I'm all for this.

   > However, I think the current Guile implementation has a _long_ way to go
   > in this regard, and I'm not convinced it will ever get there.
   
   It's a good operational starting point.

Is it likely that we can have any influence over the Guile crowd to get the
things from Guile that we want?  What's wrong exactly with the Guile
implementation--if considered as simply an implementation of R5RS?

Ben

^ permalink raw reply	[flat|nested] 15+ messages in thread

* Re: Implementation Language
  2000-08-01  1:00   ` Ben Elliston
@ 2000-08-02 17:10     ` Frank Ch. Eigler
  2000-08-03  0:03       ` Ben Elliston
  0 siblings, 1 reply; 15+ messages in thread
From: Frank Ch. Eigler @ 2000-08-02 17:10 UTC (permalink / raw)
  To: Ben Elliston; +Cc: cgen

Hi -

bje wrote:
>    I would like to keep Scheme, especially if some of the code is
>    reorganized.  The halfhearted O-O structures (not cos.scm, but its
>    uses) particularly bug me.
> 
> Likewise.  R5RS has no object system, right?  

That's right.

> Is GOOPS a risky proposition?

Well, a little, since it's not purely implemented in Scheme, but partly
in C, and is therefore not portable elsewhere.  Other Scheme OO packages
are pure Scheme (but probably perform less well, or whatever).  I would
not mind adopting a different pure-Scheme OO package, or even tightening
up Doug's current `cos.scm'.

But before any of that, we should sketch out a more ideal object hierarchy
for all the various little devilish types currently used in cgen.


> [...] What's wrong exactly with the Guile implementation--if considered
> as simply an implementation of R5RS?

Nothing big AFAIK --- it's just tempting to depend on its extensions rather
than using standard libraries like SLIB.


- FChE
-- 
-----BEGIN PGP SIGNATURE-----
Version: GnuPG v1.0.0 (GNU/Linux)
Comment: For info see http://www.gnupg.org

iD8DBQE5iLh9VZbdDOm/ZT0RAcmVAJ9wrrfFflcK+OCJ+kmRu43MaX/XrACeLynu
56kJExjP282R+GAbjFzER0U=
=+Qas
-----END PGP SIGNATURE-----

^ permalink raw reply	[flat|nested] 15+ messages in thread

* Re: Implementation Language
  2000-08-02 17:10     ` Frank Ch. Eigler
@ 2000-08-03  0:03       ` Ben Elliston
  2000-08-03  7:07         ` matthew green
  2000-08-03  9:31         ` Doug Evans
  0 siblings, 2 replies; 15+ messages in thread
From: Ben Elliston @ 2000-08-03  0:03 UTC (permalink / raw)
  To: Frank Ch. Eigler; +Cc: cgen

   > [...] What's wrong exactly with the Guile implementation--if considered
   > as simply an implementation of R5RS?
   
   Nothing big AFAIK --- it's just tempting to depend on its extensions rather
   than using standard libraries like SLIB.

I think it's simple: we need to resist such temptations and write in
portable Scheme.  Do we have any performance issues with Guile?  

Personally, I'd like to see us keep it and refine what we have.  As we know,
rewrites are rarely a panacea. :-)

Ben

^ permalink raw reply	[flat|nested] 15+ messages in thread

* re: Implementation Language
  2000-08-03  0:03       ` Ben Elliston
@ 2000-08-03  7:07         ` matthew green
  2000-08-03  9:31         ` Doug Evans
  1 sibling, 0 replies; 15+ messages in thread
From: matthew green @ 2000-08-03  7:07 UTC (permalink / raw)
  To: cgen

for what my opinion is worth, i like the fact that cgen is written in scheme.


i also pretty much concur with what others have said beyond this point.

^ permalink raw reply	[flat|nested] 15+ messages in thread

* Re: Implementation Language
  2000-08-03  0:03       ` Ben Elliston
  2000-08-03  7:07         ` matthew green
@ 2000-08-03  9:31         ` Doug Evans
  2000-08-03  9:49           ` Doug Evans
  2000-08-03 16:22           ` Ben Elliston
  1 sibling, 2 replies; 15+ messages in thread
From: Doug Evans @ 2000-08-03  9:31 UTC (permalink / raw)
  To: Ben Elliston; +Cc: Frank Ch. Eigler, cgen

Ben Elliston writes:
 >    > [...] What's wrong exactly with the Guile implementation--if considered
 >    > as simply an implementation of R5RS?
 >    
 >    Nothing big AFAIK --- it's just tempting to depend on its extensions rather
 >    than using standard libraries like SLIB.
 > 
 > I think it's simple: we need to resist such temptations and write in
 > portable Scheme.

Modulo: we can write in C those parts we wish to
as long as a portable Scheme version also exists [e.g. cos.c,
not that I necessarily want to keep it in the long run,
but rather as an example of what I mean here.]

 > Do we have any performance issues with Guile?  

Yes!!!

 > Personally, I'd like to see us keep it and refine what we have.  As we know,
 > rewrites are rarely a panacea. :-)

But they're fun. :-)
And after we have at least one more big usage under our belt
[dynamic compilation?] and we have a proper function unit description
[plus related paraphenalia] I think we should take a step back
and review everything from the ground up.

^ permalink raw reply	[flat|nested] 15+ messages in thread

* Re: Implementation Language
  2000-08-03  9:31         ` Doug Evans
@ 2000-08-03  9:49           ` Doug Evans
  2000-08-03 16:23             ` Ben Elliston
  2000-08-03 16:22           ` Ben Elliston
  1 sibling, 1 reply; 15+ messages in thread
From: Doug Evans @ 2000-08-03  9:49 UTC (permalink / raw)
  To: Ben Elliston, Frank Ch. Eigler, cgen

Doug Evans writes:
 > But they're fun. :-)
 > And after we have at least one more big usage under our belt
 > [dynamic compilation?] and we have a proper function unit description
 > [plus related paraphenalia] I think we should take a step back
 > and review everything from the ground up.

Oh ya, I also want to finish up the `insn frame' section
of define-isa. [I'm sure there's more, I'll mention them
as I think of them.]

^ permalink raw reply	[flat|nested] 15+ messages in thread

* Re: Implementation Language
  2000-08-03  9:31         ` Doug Evans
  2000-08-03  9:49           ` Doug Evans
@ 2000-08-03 16:22           ` Ben Elliston
  2000-08-05 10:16             ` Doug Evans
  1 sibling, 1 reply; 15+ messages in thread
From: Ben Elliston @ 2000-08-03 16:22 UTC (permalink / raw)
  To: Doug Evans; +Cc: Frank Ch. Eigler, cgen

   Modulo: we can write in C those parts we wish to as long as a portable
   Scheme version also exists [e.g. cos.c, not that I necessarily want to
   keep it in the long run, but rather as an example of what I mean
   here.]

So does Guile follow a similar philosophy to Tcl -- to write performance
critical aspects in C and provide hooks into Scheme?
   
    > Do we have any performance issues with Guile?  
   Yes!!!

Can you expand?  I don't really consider the performance of code generation
to be that critical -- look at G++ these days.

   But they're fun. :-)

I envy your energy, Doug.

   And after we have at least one more big usage under our belt [dynamic
   compilation?] and we have a proper function unit description [plus
   related paraphenalia] I think we should take a step back and review
   everything from the ground up.

Sounds reasonable.  Post-evaluation is an important exercise.

Ben

^ permalink raw reply	[flat|nested] 15+ messages in thread

* Re: Implementation Language
  2000-08-03  9:49           ` Doug Evans
@ 2000-08-03 16:23             ` Ben Elliston
  2000-08-03 18:31               ` Doug Evans
  0 siblings, 1 reply; 15+ messages in thread
From: Ben Elliston @ 2000-08-03 16:23 UTC (permalink / raw)
  To: Doug Evans; +Cc: Frank Ch. Eigler, cgen development

   Oh ya, I also want to finish up the `insn frame' section of
   define-isa. [I'm sure there's more, I'll mention them as I think of
   them.]

What's that?   

Ben

^ permalink raw reply	[flat|nested] 15+ messages in thread

* Re: Implementation Language
  2000-08-03 16:23             ` Ben Elliston
@ 2000-08-03 18:31               ` Doug Evans
  0 siblings, 0 replies; 15+ messages in thread
From: Doug Evans @ 2000-08-03 18:31 UTC (permalink / raw)
  To: Ben Elliston; +Cc: Frank Ch. Eigler, cgen development

Ben Elliston writes:
 >    Oh ya, I also want to finish up the `insn frame' section of
 >    define-isa. [I'm sure there's more, I'll mention them as I think of
 >    them.]
 > 
 > What's that?   

Grep for `frame' in m32r.cpu.
What's there now is just to get some thoughts down on paper
and begin a prototype.

^ permalink raw reply	[flat|nested] 15+ messages in thread

* Re: Implementation Language
  2000-08-03 16:22           ` Ben Elliston
@ 2000-08-05 10:16             ` Doug Evans
  2000-08-06 14:52               ` Frank Ch. Eigler
  0 siblings, 1 reply; 15+ messages in thread
From: Doug Evans @ 2000-08-05 10:16 UTC (permalink / raw)
  To: Ben Elliston; +Cc: Frank Ch. Eigler, cgen

Ben Elliston writes:
 > So does Guile follow a similar philosophy to Tcl -- to write performance
 > critical aspects in C and provide hooks into Scheme?

Dunno in general, but that's certainly not excluded.  The hooks are
there, it's up to each app to use them or not.

 >     > Do we have any performance issues with Guile?  
 >    Yes!!!
 > 
 > Can you expand?  I don't really consider the performance of code generation
 > to be that critical -- look at G++ these days.

Also look at how long cgen takes to run vs the gen* fns in gcc.
I don't mind the wait (much), but for the general audience I think
that there's an order of magnitude speed up to be had
and one way or another, I think it'll be thrust upon us.
I'd rather the end result still be Scheme.
[The Guile powers-that-be now believe (I think) that the current
implementation isn't the best way to go and someone is writing
a faster engine.  Dunno how much of a speed up we'll get.]

btw, I'm playing with Rscheme a lot these days.
http://www.rscheme.org
This is a Scheme implementation that rocks! (IMO)
Speed-wise I think it also has a way to go, but
the internals and design appeal to my aesthetic tastes (ymmv)
in a way that Guile probably never will.

^ permalink raw reply	[flat|nested] 15+ messages in thread

* Re: Implementation Language
  2000-08-05 10:16             ` Doug Evans
@ 2000-08-06 14:52               ` Frank Ch. Eigler
  2000-08-06 15:27                 ` Ben Elliston
  2000-08-07 14:01                 ` Doug Evans
  0 siblings, 2 replies; 15+ messages in thread
From: Frank Ch. Eigler @ 2000-08-06 14:52 UTC (permalink / raw)
  To: cgen

Hi -

dje wrote:

>  > Can you expand?  I don't really consider the performance of code generation
>  > to be that critical -- look at G++ these days.
> 
> Also look at how long cgen takes to run vs the gen* fns in gcc. [...]

Right, though continuing to keep generated files cached
in CVS at least limits the pain to active developers
instead of everyone.


> btw, I'm playing with Rscheme a lot these days.  [...]

Looks nice, but them nonstandard extensions sure look addictive.


- FChE
-- 
-----BEGIN PGP SIGNATURE-----
Version: GnuPG v1.0.0 (GNU/Linux)
Comment: For info see http://www.gnupg.org

iD8DBQE5jd4hVZbdDOm/ZT0RAYeGAJ4501afmc/aM1XQKD6O5BzQMLJ0AQCfYvrc
lWW5l1DyBsq4NXrBgvZ6UoA=
=HCrF
-----END PGP SIGNATURE-----

^ permalink raw reply	[flat|nested] 15+ messages in thread

* Re: Implementation Language
  2000-08-06 14:52               ` Frank Ch. Eigler
@ 2000-08-06 15:27                 ` Ben Elliston
  2000-08-07 14:01                 ` Doug Evans
  1 sibling, 0 replies; 15+ messages in thread
From: Ben Elliston @ 2000-08-06 15:27 UTC (permalink / raw)
  To: Frank Ch. Eigler; +Cc: cgen

   Right, though continuing to keep generated files cached in CVS at
   least limits the pain to active developers instead of everyone.

True.

   > btw, I'm playing with Rscheme a lot these days.  [...]
   
   Looks nice, but them nonstandard extensions sure look addictive.

Can someone provide some references to Rscheme on the Web?

Ben


^ permalink raw reply	[flat|nested] 15+ messages in thread

* Re: Implementation Language
  2000-08-06 14:52               ` Frank Ch. Eigler
  2000-08-06 15:27                 ` Ben Elliston
@ 2000-08-07 14:01                 ` Doug Evans
  1 sibling, 0 replies; 15+ messages in thread
From: Doug Evans @ 2000-08-07 14:01 UTC (permalink / raw)
  To: Frank Ch. Eigler; +Cc: cgen

Frank Ch. Eigler writes:
 > > btw, I'm playing with Rscheme a lot these days.  [...]
 > 
 > Looks nice, but them nonstandard extensions sure look addictive.

So are computed gotos yet people manage to use them portably ...

^ permalink raw reply	[flat|nested] 15+ messages in thread

end of thread, other threads:[~2000-08-07 14:01 UTC | newest]

Thread overview: 15+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2000-07-29  9:26 Implementation Language Doug Evans
2000-07-31 18:31 ` Frank Ch. Eigler
2000-08-01  1:00   ` Ben Elliston
2000-08-02 17:10     ` Frank Ch. Eigler
2000-08-03  0:03       ` Ben Elliston
2000-08-03  7:07         ` matthew green
2000-08-03  9:31         ` Doug Evans
2000-08-03  9:49           ` Doug Evans
2000-08-03 16:23             ` Ben Elliston
2000-08-03 18:31               ` Doug Evans
2000-08-03 16:22           ` Ben Elliston
2000-08-05 10:16             ` Doug Evans
2000-08-06 14:52               ` Frank Ch. Eigler
2000-08-06 15:27                 ` Ben Elliston
2000-08-07 14:01                 ` Doug Evans

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).