Account Options

  1. Sign in
The old Google Groups will be going away soon, but your browser is incompatible with the new version.
Google Groups Home
« Groups Home
New commercial product written in Lisp looks like a winner.
There are currently too many topics in this group that display first. To make this topic appear first, remove this option from another topic.
There was an error processing your request. Please try again.
flag
  Messages 26 - 45 of 45 - Collapse all  -  Translate all to Translated (View all originals) < Older 
The group you are posting to is a Usenet group. Messages posted to this group will make your email address visible to anyone on the Internet.
Your reply message has not been sent.
Your post was successful
 
From:
To:
Cc:
Followup To:
Add Cc | Add Followup-to | Edit Subject
Subject:
Validation:
For verification purposes please type the characters you see in the picture below or the numbers you hear by clicking the accessibility icon. Listen and type the numbers you hear
 
Juliusz Chroboczek  
View profile  
 More options Aug 25 1998, 3:00 am
Newsgroups: comp.lang.lisp
From: Juliusz Chroboczek <j...@dcs.ed.ac.uk>
Date: 1998/08/25
Subject: Re: New commercial product written in Lisp looks like a winner.
JC> knowing that addition is associative --- which is only true of bignums.

David Bakhash <ca...@bu.edu>:

DB> It's this last line that is troubling me.

By bignum, i meant potential bignum, i.e. what Common Lisp calls INTEGER.

Flonum addition is not associative:

* (setq one (coerce 1.0 'single-float)
        eps2 (coerce (/ single-float-epsilon 2.0) 'single-float))
* (+ (+ eps2 one) (- one))   => zero (more or less)
* (+ eps2 (+ one (- one)))   => eps2 (more or less)

Fixnum addition is not associative, assuming that 1 is a fixnum:

* (defmacro +% (x y) `(the fixnum (+ (the fixnum ,x) (the fixnum ,y))))
* (+% most-positive-fixnum (+% 1 -1))  => most-positive-fixnum
* (+% (+% most-positive-fixnum 1) -1)     `is an error'

(But this last example will typically fail to show anything
interesting, as most implementations either ignore declarations or
compute modulo MOST-POSITIVE-FIXNUM.)

Even fixnum addition with automatic promotion to bignums is not really
associative, if you care about consing:

* (+ most-positive-fixnum (+ 1 -1)) => most-positive-fixnum (no side-effect)
* (+ (+ most-positive-fixnum 1) -1) => most-positive-fixnum (consing)

Sincerely,

                                        J. Chroboczek


 
You must Sign in before you can post messages.
To post a message you must first join this group.
Please update your nickname on the subscription settings page before posting.
You do not have the permission required to post.
Discussion subject changed to "High performance lisp requirements [was: New commercial product ...]" by Duane Rettig
Duane Rettig  
View profile  
 More options Aug 25 1998, 3:00 am
Newsgroups: comp.lang.lisp
From: Duane Rettig <du...@franz.com>
Date: 1998/08/25
Subject: Re: High performance lisp requirements [was: New commercial product ...]

Yes, I do, and have listened in for many years.

> Isn't this enough?

Sometimes it is, and sometimes it isn't.

As an example of times when listening to c.l.l directly affects
the product, I was watching a thread a year or two ago about multiple-
value-returns, and at some point in the conversation I asked myself
why the first few values returned couldn't be returned in registers
(in the same way arguments are passed in registers).  As a result,
all architectures except for the sparc (whose register-windows
architecture makes this problematic) will now return up to the same
number of values as they can pass as arguments.  This makes code
smaller, faster, and allows tail-call merging.

I will only describe times when c.l.l is not appropriate for technical
interaction:  Many times, by the time a suggestion gets to c.l.l,
it has been been transformed from an "It would be nice if ..." type
of comment to a "Why doesn't this product do this ridiculously
obvious thing ...?"  I would much rather answer an individual
customer, even with a potentially negative answer that includes a time
scale or a "we'll look into it" or a "we're already working on it" than
to try to sort through the many frustrations that individual may have
had silently.  We are not mind readers, and rely on user's suggestions
to help us to know what is wanted.

> And yes! I am registred as a "customer" in your databases.

I looked through our SPR database (i.e. Software Problem Reports, the
database that logs interactions with any customer, including linux
users, that send mail to the bugs mailing list).  At first I failed
to find your name.  But when I did an exhaustive textual search, I
found you in two sprs, in both of which you had been quoted on a news
or mailing group.  Now, there may have been other emails to us, but
we are not mind readers; if you don't tell us what your problems are
with the product, how will we know?  (Of course, I would love to hear
"I don't have any problems with it", but I suspect that that is not
the case :-)

> Now answer this. How many times did a thread like "why doesn't CL
> provide a common FFI?" show up in this (and related newsgroups?)

Of course I haven't logged all of the newsgroup proceedings, so I
will venture a qualitative guess and say "many times".  I would have
also asked you what your point was, but it is clear that the point is
coming up next:

> Second question.

> Why don't Franz and Harlequin (and Digitool) come up with a common FFI
> interface and be done with it?  It will not be an ANSI standard but it
> will be an "industry standard"?

I can't speak for Harlequin or Digitool, and I'll even take off my Franz
hat for this one:

From previous definitions in this thread about what constitutes an "industry
standard" (or "de facto standard"), I personally don't like them; they are
usually more trouble than a formal standard and provide less benefits.

I should qualify this by adding that de facto standards are appropriate
where a formal standard is non-existant or has failed.  And although the
CL standard is not perfect, I don't think it has failed.  It hasn't
provided a FFI yet, but it has only been through one iteration, and
I presume others are possible, if there is enough interest.

No, I think you'll see us fully immersed in the CL market for a long
time.

> PS. IMHO, the CLIM case is an example of *bad cooperation* among
> vendors.

Interesting statement.  Well, from what I know about CLIM's history,
I would characterize it as a "de facto" or "industry" standard.
If you believe CLIM to be a Bad Thing, then perhaps what you believe
about it that is bad can be attributed to the de facto standardization
process.

> --
> Marco Antoniotti ===========================================
> PARADES, Via San Pantaleo 66, I-00186 Rome, ITALY
> tel. +39 - (0)6 - 68 80 79 23, fax. +39 - (0)6 - 68 80 79 26
> http://www.parades.rm.cnr.it

--
Duane Rettig          Franz Inc.            http://www.franz.com/ (www)
1995 University Ave Suite 275  Berkeley, CA 94704
Phone: (510) 548-3600; FAX: (510) 548-8253   du...@Franz.COM (internet)

 
You must Sign in before you can post messages.
To post a message you must first join this group.
Please update your nickname on the subscription settings page before posting.
You do not have the permission required to post.
Discussion subject changed to "New commercial product written in Lisp looks like a winner." by Paul Dietz
Paul Dietz  
View profile  
 More options Aug 25 1998, 3:00 am
Newsgroups: comp.lang.lisp
From: Paul Dietz <di...@interaccess.com>
Date: 1998/08/25
Subject: Re: New commercial product written in Lisp looks like a winner.

> How about another hint, who requires high productivity
> from their developers/programmers?

These days, just about everyone.

        Paul


 
You must Sign in before you can post messages.
To post a message you must first join this group.
Please update your nickname on the subscription settings page before posting.
You do not have the permission required to post.
Discussion subject changed to "High performance lisp requirements [was: New commercial product ...]" by Hannu Koivisto
Hannu Koivisto  
View profile  
 More options Aug 25 1998, 3:00 am
Newsgroups: comp.lang.lisp
From: Hannu Koivisto <az...@iki.fi.ns>
Date: 1998/08/25
Subject: Re: High performance lisp requirements [was: New commercial product ...]

Duane Rettig <du...@franz.com> writes:

[I was somewhat vague at some points, I'll try to clarify at the
same time I comment on your response, for which I thank you.]

| The reasons below do seem like a tall order, especially for one
| who is not any CL vendor's customer :-)  In reality, I can't

True :) I have just started to consider CL as an alternative for
Scheme just because it's another potential source for suitable
implementations. Although I mentioned Scheme as my preferred
Lispish language (to which you commented (*)), it too has some
weak points or points that I don't like. OTOH, actually (with my
current knowledge of CL) the only big point why I don't like CL
is its separate namespaces for variables and functions. So
basically, if I find some great CL implementation first, then I
would probably lean on CL as my primary language. On the other
hand, if I find some suitable Scheme implementation first, then
Scheme might turn out to become my primary language. In
practise, I think that I will eventually apply Scheme for some
applications and CL for others. Currently the situation is
simply that I know Scheme better (and so do my colleagues, so I
have better chances to push Scheme for 'real' projects) and
Scheme implementations have suited better for my personal work
in which I have been able to use some Lispish language, so I
have ended up using the available Schemes instead of becoming a
customer of any CL vendor (or user of some free implementation).

| I do suggest that you use those CLs that you have installed and
| actually do some experimenting. However, I must first discuss

I'll try to do that.

| This will become a self-fullfilling prophecy.  There are so
| many requirements and good suggestions for enhancements for
| lisps, especially for CL, that there is no way that we lisp
| vendors can or will move our products toward requirement sets
| that do not match our customer base (or what we perceive to be
| our potential future customer base).  If you don't assert
| yourself as a potential future customner, or if we don't find
| out about you through marketing search efforts, then how can
| anything possibly happen to move CL toward your goals?

I'll comment on this below. (**)

| > Currently the Lisp people seem to write software that
| > has much lower requirements (regarding these problematic-for-me
|
| I think it is unduly judgemental to characterize those requirements
| as "lower"; I would prefer to call them "different".  As lisp vendors

I know, when I first wrote that sentence it didn't say _at all_
what I meant so I tried to fix it with that adjustion in parens
but it didn't really make it better :) Different them shall be.

| (as is the case for other vendors) we try to satisfy as many
| requirements as it makes business sense for us to satisfy.  But
| if you don't state those requirements, we can't incorporate
| them into our thinking.

(**)
I know that you would satisfy everyone if you just could (don't
we all :), but like you say, you have to think business-wise
too. I'm just very sceptic about the number of other Lisp
developers or potential Lisp developers with as high performance
or other requirements than I have. And this leads to the
suspicion that satisfying those requirements doesn't make
business sense to you and thus the situation won't
change.

If I 'forced' our development team to use Lisp (and thus
become a CL vendor's customer) for some project with, say, high
performance requirements, then I would have to have some
guarantee that it will succeed from this language (plus
implementation) choice's part. And naturally you can't guarantee
(of course, feel free to say I'm wrong about this :) that you'll
improve, say, some optimizations during our short project time
(our projects are usually not very long-term ones excluding few
exceptions) to the extend we would need them to be.

So I cannot do this (of course, I cannot do it because of other
reasons too; I was somewhat exaggerating above, don't take that
literally), but what I _can_ do is that I start using Lisp in my
personal projects and suitable single-person project-team
projects for our company that don't need to be on the bleeding
edge in terms of performance or some other problematic
aspect. Then I can gradually move into more and more demanding
stuff. The only problem is that although this would be an ideal
way to gradually start providing feedback for you or some other
commercial Lisp vendor, I cannot afford to buy a commercial Lisp
lisence for my personal 'hacks' just to be able to provide
feedback for you. [I can always try to make our company buy ACL
or similar in some phase whether or not it will be used for any
real work or by anyone else but me ;)] For now, I continue using
Scheme (except when I feel adventurous, I'll do that mentioned
experimenting with cmucl or acl).

The possibilities for Scheme just got new light when I received
a very interesting mail from Jeffrey Mark Siskind, the author of
Stalin. He told me that he has been using Scheme for audio and
video processing for a long time and is developing Stalin, which
has zero-overhead FFI, possibility to make it support
multithreading and it should generate pretty much equivalent
floating point code (in terms of performance) as one can do by
writing C directly. I'll know more after I get the latest
development version he promised and experiment with it. Yes,
it's a Scheme->C compiler (although he mentioned that there are
plans for a native code backend), but it's a promising step in
this gradual movement towards using Lisp/Scheme in applications
with more and more "different" :) requirements.

| > every day and do some minor stuff with Scheme. I _would_ like to
| > use Scheme for almost all programming, including multimedia
...
(*) | OK, I am forewarned that CL is not your language of choice.

| only supports this on NT and Windows).  I may get it wrong,
| but our multiprocessing team tells me that the problem on
| Linux is that it uses a `clone'-based implementation, instead of
| moving toward Posix-compliance at the implementation level,
| and that this causes problems for our own special needs for
| OS-threads support.

Hmm, I cannot comment based on that information. Have you
considered asking help from the developers of Posix-thread
interface or kernel developers? What you said about that
clone-based implementation really needs a bit more clarification
-- after all, it's simply how _kernel_ exposes generic
functionality for threads and it should be transparent to the
user of Posix-compliant threads implemented as a library. Of
course, that library may still have some problems with
Posix-compliance, but I'm sure that the developers are willing
to try to fix such problems that affect you. And if it turns out
that these problems simply cannot be fixed because of some
limitation in the kernel's clone()-based interface, then the
issue should be brought into attention of kernel
developers. Posix-threads are, after all, the only sensible way
to use threads at application level, so if they cannot be
implemented properly, then the situation must be fixed.

| Yes, but if it is an interpreter, then you won't get the kinds
| of optimizations you are asking for (unless the implementation
| introduces a compiler as well).

True, it is an interpreter and cannot provide such
optimizations. This far it has been the best
Scheme-implementation for non-speed-critical programs, though.

| There is nothing about CL which precludes such efficient
| compilation.  Show me some C++ code with attending disassembled
| output, and I could likely get to the same range of execution
| speed as any C++ compiler.  Note, however, that this is much

I'll do that. I will have to reproduce the assembly output of
that mentioned IDCT routine so that I can compare it to what
Stalin + {pgcc, egcs} can do.

| easier to accomplish on RISC architectures, because of the
| different nature of the x87/Pentium stack-based floating-point
| architecture.

I know. Exactly that's why our performance requirements may be
harder to achieve with a compiler that is not well tuned for the
x86 architecture (which _some_ C++ compilers are _beginning_ to
be). x86 is the primary target for most of the software we've
been making, so we cannot make that RISC excuse -- either some
compiler does good enough job or we'll write the speed-critical
parts by hand.

| You can, although it is not documented.  In your ACL-5.0beta/linux,
| set the variable comp::*hack-compiler-output* to a list of functions
| which you want to hack in lisp pseudo-assembler code; then when
| you compile the function, follow the directions at the break prompt
| and experiment to your heart's content.
|
| This hacking can be done on all architectures, and although
| it is not recommended for normal code generation, it can be
| used to experiment with.

Sounds like a nice feature. I didn't expect something like this
or inline-assembly of MCL that Rainer Joswig mentioned. I'll
definitely try it.

| > coding (slow) wrappers. I have understood that at least cmucl
| > and Allegro CL have this kind of FFI. Am I right?
|
| Yes, of course, but perhaps Foreign Functions is not the
| best way to go if you need such speed.  Hacking the assembler
| code as mentioned above might help.

FFI is still needed for interfacing to GUI toolkits and
such. Naturally not _all_ of our code is insanely speed-critical :)

| Some wrapper libraries are available, and in the past many
| individual CL users created and maintained their own.  I think
| that the new trend is to use a C/C++ to lisp translator to read
| the .h files and to create such wrapper libraries
| automatically.

Do you have some translator in mind? Perhaps even such that
has 'back ends' for generating wrappers for different Lisp
vendors' FFIs?

| But I think, from the rest of your post, that this isn't really
| what you want anyway; if you are looking for blazing speed at
| a low level, it shouldn't
...

read more »


 
You must Sign in before you can post messages.
To post a message you must first join this group.
Please update your nickname on the subscription settings page before posting.
You do not have the permission required to post.
Discussion subject changed to "New commercial product written in Lisp looks like a winner." by Rainer Joswig
Rainer Joswig  
View profile  
 More options Aug 26 1998, 3:00 am
Newsgroups: comp.lang.lisp
From: jos...@lavielle.com (Rainer Joswig)
Date: 1998/08/26
Subject: Re: New commercial product written in Lisp looks like a winner.
In article <35E32DFF.32997...@IntelliMarket.Com>, Kelly Murray

<k...@IntelliMarket.Com> wrote:
> One needs to look at what are the key strengths of a product/language
> (e.g. LISP), and what type of market/customer cares the most
> about those strenghs.
> And look honestly at its weaknesses, and avoid trying to sell/compete
> to customers that value those weaknesses.
> Numeric/floating point is a particularly weak aspect of CL.
> So is the relatively large disk and memory footprint,
> and slow startup times.

Why should there be no progress?

> What applications have very large footprints/data sets
> and/or keep applications running so startup time is not relevant,
> and don't run on lowest-end hardware?

You are talking about the typical PC/Mac productivity application
(Xpress, Freehand, Word, Excel, Photoshop, Cyberstudio,
FrameMaker, Illustrator, AutoCAD, ...)?

I guess MCL starts faster than most of those. ACL actually
starts pretty fast on a Unix box, too.

We have seen an incredible speed up lately. One
of our customers has a large network of graphics systems
(SUNs, Scitex, Macs, SGIs, ...). Typical transfer
rates (not those on sundays where few were working)
from a server three years ago were 300kb/sec.
Currently they have copy rates from Ethershare
servers to Macs of 8MB/sec (Switches everywhere, UW2 SCSI disks,
100 BaseT, IP, ...). 100MB size print jobs will
be spooled in a few seconds. Who cares about start up
speed of a 3 MB app versus startup speed of a 10 MB
app? You can get laptops with >200 MIPS and >100 MB
RAM for around $3000. What will you do with fast networks
(and ultra-fast networks soon) and really fast computers?
Be prepared to have demand for network server applications that either
work in the intranet with very complex data or are able
to handle large crowds in the Internet providing sophisticated
services.

A question is, who will give you the tools
to handle the complexity and will help you to come with
cool apps on the market in time? What tool will let you
develop in your language and will make sure
that you are not slowed down by stupid problems
(low level bugs, speed traps, debugging nightmares, ...).
The customer really often will not care - the solution
counts.

My current bet is on CL/CLIM/CL-HTTP. Well, I could be wrong... ;-)
A good OODB is still missing.

> How about another hint, who requires high productivity
> from their developers/programmers?

Small companies like ours? ;-)

 
You must Sign in before you can post messages.
To post a message you must first join this group.
Please update your nickname on the subscription settings page before posting.
You do not have the permission required to post.
Jeff Dalton  
View profile  
 More options Aug 26 1998, 3:00 am
Newsgroups: comp.lang.lisp
From: j...@interactive.co.uk (Jeff Dalton)
Date: 1998/08/26
Subject: Re: New commercial product written in Lisp looks like a winner.
In article <z9XD1.2$Sm5.176...@burlma1-snr1.gtei.net>,
Barry Margolin  <bar...@bbnplanet.com> wrote:

>Lisp is probably one of the easiest languages to interpret (in many ways,
>the internal representation of source code is similar to threaded languages
>like Forth).  Its main problem has been that it has a large runtime
>environment that often needs to be initialized before it can start
>interpreting the application.

There can be pretty small Lisps, though.  The run-time env doesn't
have to be large.

Anyway, the ease of implementing Lisp is an important point.
I can't think of any other "language" with more implementations.

Indeed, even confining myself to Common Lisp, at work I have
a choice between 2 C implementations (gcc and one from Sun)
but 4 Common Lisps, and more if I wanted them.

-- jd


 
You must Sign in before you can post messages.
To post a message you must first join this group.
Please update your nickname on the subscription settings page before posting.
You do not have the permission required to post.
Marco Antoniotti  
View profile  
 More options Aug 26 1998, 3:00 am
Newsgroups: comp.lang.lisp
From: Marco Antoniotti <marc...@galileo.parades.rm.cnr.it>
Date: 1998/08/26
Subject: Re: New commercial product written in Lisp looks like a winner.

Raymond Toy <t...@rtp.ericsson.se> writes:
> CMUCL can for some functions produce code as good as C/C++.  Using a
> straight-forward implementation of the code from Oppenheim and
> Schafer, a 64K-point complex radix-2 FFT in CMUCL takes 0.33 sec.
> Matlab takes 0.16 sec.  Matlab may be using more sophisticated
> algorithms than my simple FFT.  Perhaps a radix-8, radix-4 algorithm
> would produce similar results as Matlab.  Then the IDCT could be as
> fast as C.  Maybe.

AFAIK, and I may be wrong, the core of Matlab is written in FORTRAN.

--
Marco Antoniotti ===========================================
PARADES, Via San Pantaleo 66, I-00186 Rome, ITALY
tel. +39 - (0)6 - 68 80 79 23, fax. +39 - (0)6 - 68 80 79 26
http://www.parades.rm.cnr.it


 
You must Sign in before you can post messages.
To post a message you must first join this group.
Please update your nickname on the subscription settings page before posting.
You do not have the permission required to post.
Discussion subject changed to "High performance lisp requirements [was: New commercial product ...]" by Pierre Mai
Pierre Mai  
View profile  
 More options Aug 26 1998, 3:00 am
Newsgroups: comp.lang.lisp
From: Pierre Mai <d...@dent.isdn.cs.tu-berlin.de>
Date: 1998/08/26
Subject: Re: High performance lisp requirements [was: New commercial product ...]

Hannu Koivisto <az...@iki.fi.ns> writes:
> | Some wrapper libraries are available, and in the past many
> | individual CL users created and maintained their own.  I think
> | that the new trend is to use a C/C++ to lisp translator to read
> | the .h files and to create such wrapper libraries
> | automatically.

> Do you have some translator in mind? Perhaps even such that
> has 'back ends' for generating wrappers for different Lisp
> vendors' FFIs?

There are several points to start from, although most that I'm aware
of are for Scheme rather than CL:

- One of the IMHO most versatile Generators is SWIG (the Simplified
  Wrapper and Interface Generator), which currently supports wrapping
  C/C++/Obj-C Libs for Perl, Python, Tcl and Guile (GNU's SCM-based
  Scheme interpreter) at the least.  I think it would be _very_ useful,
  to adapt this to support the FFI's of current CLs.

  The only problem that I see with this adaption, is that GUILE -- like
  most Scheme interpreters nowadays -- uses Boehm Conservative GC, which
  simplifies interfacing to C/C++ at the cost of less-than-optimal GC
  performance, whereas most CLs don't.

  OTOH there is much to be gained, as SWIG really makes wrapping C
  libs very unproblematic, and is easily adaptable, with a very
  supportive and cooperative author, David Beazley.  For further
  information, see http://www.swig.org/

- Many Scheme implementations include their own wrapper generators,
  like e.g. MzScheme, as do many modern functional languages nowadays.

- If speed is even less of an issue, going through CORBA is another
  course of action open.
  ILU at ftp://ftp.parc.xerox.com/pub/ilu/ilu.html supports Common Lisp
  (ACL I think), and there is work beign done at http://www.gnome.org/
  (with support from RedHat) for a small, fast implementation of a
  CORBA 2.0 ORB, which will support GUILE at the least.

Regs, Pierre.

--
Pierre Mai <d...@cs.tu-berlin.de>     http://home.pages.de/~trillian/
  "Such is life." -- Fiona in "Four Weddings and a Funeral" (UK/1994)


 
You must Sign in before you can post messages.
To post a message you must first join this group.
Please update your nickname on the subscription settings page before posting.
You do not have the permission required to post.
Duane Rettig  
View profile  
 More options Aug 26 1998, 3:00 am
Newsgroups: comp.lang.lisp
From: Duane Rettig <du...@franz.com>
Date: 1998/08/26
Subject: Re: High performance lisp requirements [was: New commercial product ...]

I have snipped out a large portion of your post, for which I
agree and have no further comment.

Hannu Koivisto <az...@iki.fi.ns> writes:
> I know that you would satisfy everyone if you just could (don't
> we all :), but like you say, you have to think business-wise
> too. I'm just very sceptic about the number of other Lisp
> developers or potential Lisp developers with as high performance
> or other requirements than I have. And this leads to the
> suspicion that satisfying those requirements doesn't make
> business sense to you and thus the situation won't
> change.

Those suspicions are unfounded in fact.  Lisp is very much in
the high-performance game, and while implementations aren't as
far as they could be, they are progressing.

> If I 'forced' our development team to use Lisp (and thus
> become a CL vendor's customer) for some project with, say, high
> performance requirements, then I would have to have some
> guarantee that it will succeed from this language (plus
> implementation) choice's part.

This is correct; there can be no guarantees (except, I suppose,
for contractual ones, where the consequences are spelled out)
for _any_ language.  This includes C++ (Along with lisp-to-C++
conversion success stories, I have also heard horror stories
where projects fail simply because the programming wouldn't
scale due to the size/complexity of the software).

>  And naturally you can't guarantee
> (of course, feel free to say I'm wrong about this :) that you'll
> improve, say, some optimizations during our short project time
> (our projects are usually not very long-term ones excluding few
> exceptions) to the extend we would need them to be.

Well, one thing about lisps and other dynamic languages that
you'll need to get used to: it is incredibly easy to patch them.
And, given a responsive support team, you can get solutions to your
problems in days or weeks, instead of months or years.

> ... I cannot afford to buy a commercial Lisp
> lisence for my personal 'hacks' just to be able to provide
> feedback for you.

This is exactly why we lisp vendors provide free implementations.

> The possibilities for Scheme just got new light when I received
> a very interesting mail from Jeffrey Mark Siskind, the author of
> Stalin. He told me that he has been using Scheme for audio and
> video processing for a long time and is developing Stalin, which
> has zero-overhead FFI, possibility to make it support
> multithreading and it should generate pretty much equivalent
> floating point code (in terms of performance) as one can do by
> writing C directly. I'll know more after I get the latest
> development version he promised and experiment with it. Yes,
> it's a Scheme->C compiler (although he mentioned that there are
> plans for a native code backend), but it's a promising step in
> this gradual movement towards using Lisp/Scheme in applications
> with more and more "different" :) requirements.

This is good; it represents a shattering of a myth (that lisp doesn't
do numbers fast) in at least one person's mind.  Hopefully you'll
be successful with this package.

> | only supports this on NT and Windows).  I may get it wrong,
> | but our multiprocessing team tells me that the problem on
> | Linux is that it uses a `clone'-based implementation, instead of
> | moving toward Posix-compliance at the implementation level,
> | and that this causes problems for our own special needs for
> | OS-threads support.

>  ...  What you said about that
> clone-based implementation really needs a bit more clarification

In resonding to some personal mail, our multiprocessing
expert said:

 The "every thread has its own pid in Linux" is the major problem.
 Signals are a big deal, as are thread exiting protocols and
 interaction with exit().  As long as this situation continues,
 it almost doesn't matter that Linux POSIX thread "wrapping"
 exists - a significant portion of our code has to be rewritten
 to deal with this behavior.

It is heartening to hear that Linux is moving toward Posix
compliance.  We'll see what happens.

> | easier to accomplish on RISC architectures, because of the
> | different nature of the x87/Pentium stack-based floating-point
> | architecture.

> I know. Exactly that's why our performance requirements may be
> harder to achieve with a compiler that is not well tuned for the
> x86 architecture (which _some_ C++ compilers are _beginning_ to
> be). x86 is the primary target for most of the software we've
> been making, so we cannot make that RISC excuse -- either some
> compiler does good enough job or we'll write the speed-critical
> parts by hand.

You've hit the nail on the head: it really is "that RISC excuse"
(although it's really "that x86 excuse", because the 68k floating
point hardware didn't have this problem ...)  The floating point
code is written to assume that float registers can be identified
and operated on in random-access fashion, rather than on a stack-based
fashion.  I assume that there is specialized code generation
in those compilers that you allude to, which specifically generate
stack-based floating-point operations. The x87/486/Pentium) floating
hardware has only 8 registers arranged on a stack-access basis,
and if compilers want to compile specifically for them, they must
also deal specifically with overflow/spill code that doesn't have to
be dealt with for random-access code generation.  We currently punt
on the situation by holding the stack fast and generating instructions
to simulate random-access.  It is, presumably, slightly slower.
So far nobody has complained.  Maybe you'll be the first :-)

Now if you were on an Alpha, (or even a 68K), we could easily hold
our own in code genberation for floating point.

> | > coding (slow) wrappers. I have understood that at least cmucl
> | > and Allegro CL have this kind of FFI. Am I right?
> |
> | Yes, of course, but perhaps Foreign Functions is not the
> | best way to go if you need such speed.  Hacking the assembler
> | code as mentioned above might help.

> FFI is still needed for interfacing to GUI toolkits and
> such. Naturally not _all_ of our code is insanely speed-critical :)

Thanks; this was a point I had missed on your previous post.

> | Some wrapper libraries are available, and in the past many
> | individual CL users created and maintained their own.  I think
> | that the new trend is to use a C/C++ to lisp translator to read
> | the .h files and to create such wrapper libraries
> | automatically.

> Do you have some translator in mind? Perhaps even such that
> has 'back ends' for generating wrappers for different Lisp
> vendors' FFIs?

There is a free one at ftp.franz.com/pub/cbind/5.0.beta/*
There are versions that will run on SGI, Sparc, or Windows,
but I think you can actually send other architectures' files
through if you set up the predefined macros correctly.  And
certainly you should be able to use the output in any 5.0.beta,
including Linux.

I am also told that the cbind package will be included in the 5.0
distribution.

> Thanks for the interesting information,

Thanks for the interest.

> --
> Hannu Koivisto | What you see is all you get.
> NOYB           |                            - Brian Kernighan
> -------------------------------------------------------------

--
Duane Rettig          Franz Inc.            http://www.franz.com/ (www)
1995 University Ave Suite 275  Berkeley, CA 94704
Phone: (510) 548-3600; FAX: (510) 548-8253   du...@Franz.COM (internet)

 
You must Sign in before you can post messages.
To post a message you must first join this group.
Please update your nickname on the subscription settings page before posting.
You do not have the permission required to post.
Discussion subject changed to "New commercial product written in Lisp looks like a winner." by Barry Margolin
Barry Margolin  
View profile  
 More options Aug 26 1998, 3:00 am
Newsgroups: comp.lang.lisp
From: Barry Margolin <bar...@bbnplanet.com>
Date: 1998/08/26
Subject: Re: New commercial product written in Lisp looks like a winner.
In article <dh37lzx316l....@iolla.dcs.ed.ac.uk>,
Juliusz Chroboczek  <j...@dcs.ed.ac.uk> wrote:

>In article <6rsk17$...@pravda.cc.gatech.edu>,
>  ly...@cc.gatech.edu (Lyman S. Taylor) writes:

>LST> Ha!  MCL can remove the recursion from the "naive" fibonacci. :-)
>LST> [ Although, much more of a special case due to the fact numbers are
>LST>   involved. ]

>I have some trouble believing that.  Doing that requires knowing that
>addition is associative --- which is only true of bignums.

Note that Common Lisp permits implementations to reorder argument
processing based on the mathematical associativity rules, even though the
computer operations are not necessarily associative.  But this only applies
to multiple arguments to the same function, e.g. (+ a b c), and not
multiple function calls, i.e. (+ a (+ b c)) cannot be implemented as (+ (+
a b) c) unless they're guaranteed to be equivalent.

In any case, a typical fibonacci function is likely to be defined only for
integers, so the optimization LST described should be valid.

--
Barry Margolin, bar...@bbnplanet.com
GTE Internetworking, Powered by BBN, Cambridge, MA
*** DON'T SEND TECHNICAL QUESTIONS DIRECTLY TO ME, post them to newsgroups.


 
You must Sign in before you can post messages.
To post a message you must first join this group.
Please update your nickname on the subscription settings page before posting.
You do not have the permission required to post.
Discussion subject changed to "High performance lisp requirements [was: New commercial product ...]" by Robert Swindells
Robert Swindells  
View profile  
 More options Aug 26 1998, 3:00 am
Newsgroups: comp.lang.lisp
From: r...@stimpy.rjs.net (Robert Swindells)
Date: 1998/08/26
Subject: Re: High performance lisp requirements [was: New commercial product ...]

> Duane Rettig <du...@franz.com> writes:
> > Marco Antoniotti <marc...@galileo.parades.rm.cnr.it> writes:
> > PS. IMHO, the CLIM case is an example of *bad cooperation* among
> > vendors.
>Interesting statement.  Well, from what I know about CLIM's history, I
>would characterize it as a "de facto" or "industry" standard.  If you
>believe CLIM to be a Bad Thing, then perhaps what you believe about it
>that is bad can be attributed to the de facto standardization process.

The biggest problem with CLIM is the lack of a public domain reference
implementation.

IMHO, CLOS took off quickly because enough of it could be provided by
PCL for potential users to try it out. Once they were hooked, they
would want to buy a higher performance/better featured implementation
from a commercial vendor.

I don't care if a PD CLIM is slow, ugly and a memory hog, it would make
proof of concept work easier for me.

Robert Swindells
-------------------------------------
Robert Swindells     - GenRad Ltd
r...@genrad.co.uk     - Work
r...@fdy2.demon.co.uk - Home


 
You must Sign in before you can post messages.
To post a message you must first join this group.
Please update your nickname on the subscription settings page before posting.
You do not have the permission required to post.
Michael Harper  
View profile  
 More options Aug 26 1998, 3:00 am
Newsgroups: comp.lang.lisp
From: Michael Harper <michael.har...@alcoa.com>
Date: 1998/08/26
Subject: Re: High performance lisp requirements [was: New commercial product ...]
It would be very interesting and useful if the various vendors (at least
Franz and Harlequin) could provide a "free" version of CLIM 2.1 for
Linux to go along with the "free" CL implementation. Perhaps they just
cannot spare the resources to maintain such a port. But this would be a
partial solution to the PD reference version mentioned below.

Mike Harper
michael.har...@alcoa.com


 
You must Sign in before you can post messages.
To post a message you must first join this group.
Please update your nickname on the subscription settings page before posting.
You do not have the permission required to post.
Discussion subject changed to "New commercial product written in Lisp looks like a winner." by Erik Naggum
Erik Naggum  
View profile  
 More options Aug 27 1998, 3:00 am
Newsgroups: comp.lang.lisp
From: Erik Naggum <cle...@naggum.no>
Date: 1998/08/27
Subject: Re: New commercial product written in Lisp looks like a winner.
* Barry Margolin <bar...@bbnplanet.com>
| Note that Common Lisp permits implementations to reorder argument
| processing based on the mathematical associativity rules, even though the
| computer operations are not necessarily associative.

  I thought Common Lisp had strict left-to-right evaluation rules, as per
  3.1.2.1.2.3 Function Forms.  where does the standard say what you say?

#:Erik
--
  http://www.naggum.no/spam.html is about my spam protection scheme and how
  to guarantee that you reach me.  in brief: if you reply to a news article
  of mine, be sure to include an In-Reply-To or References header with the
  message-ID of that message in it.  otherwise, you need to read that page.


 
You must Sign in before you can post messages.
To post a message you must first join this group.
Please update your nickname on the subscription settings page before posting.
You do not have the permission required to post.
Discussion subject changed to "High performance lisp requirements [was: New commercial product ...]" by Rainer Joswig
Rainer Joswig  
View profile  
 More options Aug 28 1998, 3:00 am
Newsgroups: comp.lang.lisp
From: jos...@lavielle.com (Rainer Joswig)
Date: 1998/08/28
Subject: Re: High performance lisp requirements [was: New commercial product ...]

In article <4ww7vbmuh....@beta.franz.com>, Duane Rettig <du...@franz.com> wrote:
> Those suspicions are unfounded in fact.  Lisp is very much in
> the high-performance game, and while implementations aren't as
> far as they could be, they are progressing.

Minus supporting threads on multiple processors
for SMP machines (SMP Linux PCs, SUNs, ...).

 
You must Sign in before you can post messages.
To post a message you must first join this group.
Please update your nickname on the subscription settings page before posting.
You do not have the permission required to post.
Discussion subject changed to "New commercial product written in Lisp looks like a winner." by Barry Margolin
Barry Margolin  
View profile  
 More options Aug 28 1998, 3:00 am
Newsgroups: comp.lang.lisp
From: Barry Margolin <bar...@bbnplanet.com>
Date: 1998/08/28
Subject: Re: New commercial product written in Lisp looks like a winner.
In article <3113247040185...@naggum.no>, Erik Naggum  <cle...@naggum.no> wrote:

>* Barry Margolin <bar...@bbnplanet.com>
>| Note that Common Lisp permits implementations to reorder argument
>| processing based on the mathematical associativity rules, even though the
>| computer operations are not necessarily associative.

>  I thought Common Lisp had strict left-to-right evaluation rules, as per
>  3.1.2.1.2.3 Function Forms.  where does the standard say what you say?

The above wasn't referring to evaluation of argument forms (which is
left-to-right, as you say), but to how the function processes the arguments
that were passed to it.

See
<http://www.harlequin.com/education/books/HyperSpec/Body/sec_12-1-1-1....>
for the standard's wording.

--
Barry Margolin, bar...@bbnplanet.com
GTE Internetworking, Powered by BBN, Cambridge, MA
*** DON'T SEND TECHNICAL QUESTIONS DIRECTLY TO ME, post them to newsgroups.


 
You must Sign in before you can post messages.
To post a message you must first join this group.
Please update your nickname on the subscription settings page before posting.
You do not have the permission required to post.
Tim Bradshaw  
View profile  
 More options Aug 28 1998, 3:00 am
Newsgroups: comp.lang.lisp
From: Tim Bradshaw <t...@aiai.ed.ac.uk>
Date: 1998/08/28
Subject: Re: New commercial product written in Lisp looks like a winner.
* Erik Naggum wrote:

* Barry Margolin <bar...@bbnplanet.com>

> | Note that Common Lisp permits implementations to reorder argument
> | processing based on the mathematical associativity rules, even though the
> | computer operations are not necessarily associative.
>   I thought Common Lisp had strict left-to-right evaluation rules, as per
>   3.1.2.1.2.3 Function Forms.  where does the standard say what you say?

It does.  You need to evaluate the args left-to-right, but you can
*process* them in a different order.  For instance if I had:

        (+ 1 1.0 1 1.0)

I can arrange to do the integer addition, a coercion and then two FP
additions, rather than coercion, fp-add, coercion, fp-add, fp-add.

--tim


 
You must Sign in before you can post messages.
To post a message you must first join this group.
Please update your nickname on the subscription settings page before posting.
You do not have the permission required to post.
Discussion subject changed to "High performance lisp requirements [was: New commercial product ...]" by Tim Bradshaw
Tim Bradshaw  
View profile  
 More options Aug 28 1998, 3:00 am
Newsgroups: comp.lang.lisp
From: Tim Bradshaw <t...@aiai.ed.ac.uk>
Date: 1998/08/28
Subject: Re: High performance lisp requirements [was: New commercial product ...]

* Rainer Joswig wrote:
> Minus supporting threads on multiple processors
> for SMP machines (SMP Linux PCs, SUNs, ...).

It would be interesting to know what implementations are addressing
this.  Franz seem to be aware of the problem at least, which is a good
sign.

--tim


 
You must Sign in before you can post messages.
To post a message you must first join this group.
Please update your nickname on the subscription settings page before posting.
You do not have the permission required to post.
Discussion subject changed to "New commercial product written in Lisp looks like a winner." by Erik Naggum
Erik Naggum  
View profile  
 More options Aug 29 1998, 3:00 am
Newsgroups: comp.lang.lisp
From: Erik Naggum <cle...@naggum.no>
Date: 1998/08/29
Subject: Re: New commercial product written in Lisp looks like a winner.
* Barry Margolin <bar...@bbnplanet.com>
| The above wasn't referring to evaluation of argument forms (which is
| left-to-right, as you say), but to how the function processes the
| arguments that were passed to it.
|
| See
| <http://www.harlequin.com/education/books/HyperSpec/Body/sec_12-1-1-1....>
| for the standard's wording.

  oh, OK, it's the fine line between "argument" and "parameter", again.
  12.1.1.1 is very clear.  thanks for the pointer.

#:Erik
--
  http://www.naggum.no/spam.html is about my spam protection scheme and how
  to guarantee that you reach me.  in brief: if you reply to a news article
  of mine, be sure to include an In-Reply-To or References header with the
  message-ID of that message in it.  otherwise, you need to read that page.


 
You must Sign in before you can post messages.
To post a message you must first join this group.
Please update your nickname on the subscription settings page before posting.
You do not have the permission required to post.
Erik Naggum  
View profile  
 More options Aug 29 1998, 3:00 am
Newsgroups: comp.lang.lisp
From: Erik Naggum <e...@naggum.no>
Date: 1998/08/29
Subject: Re: New commercial product written in Lisp looks like a winner.
* Barry Margolin <bar...@bbnplanet.com>
| The above wasn't referring to evaluation of argument forms (which is
| left-to-right, as you say), but to how the function processes the
| arguments that were passed to it.
|
| See
| <http://www.harlequin.com/education/books/HyperSpec/Body/sec_12-1-1-1....>
| for the standard's wording.

  oh, OK, it's the fine line between "argument" and "parameter", again.
  12.1.1.1 is very clear.  thanks for the pointer.

#:Erik
--
  http://www.naggum.no/spam.html is about my spam protection scheme and how
  to guarantee that you reach me.  in brief: if you reply to a news article
  of mine, be sure to include an In-Reply-To or References header with the
  message-ID of that message in it.  otherwise, you need to read that page.


 
You must Sign in before you can post messages.
To post a message you must first join this group.
Please update your nickname on the subscription settings page before posting.
You do not have the permission required to post.
Raymond Toy  
View profile  
 More options Sep 8 1998, 3:00 am
Newsgroups: comp.lang.lisp
From: Raymond Toy <t...@rtp.ericsson.se>
Date: 1998/09/08
Subject: Re: New commercial product written in Lisp looks like a winner.

>>>>> "Raymond" == Raymond Toy <t...@rtp.ericsson.se> writes:

    Raymond> CMUCL can for some functions produce code as good as C/C++.  Using a
    Raymond> straight-forward implementation of the code from Oppenheim and
    Raymond> Schafer, a 64K-point complex radix-2 FFT in CMUCL takes 0.33 sec.
    Raymond> Matlab takes 0.16 sec.  Matlab may be using more sophisticated
    Raymond> algorithms than my simple FFT.  Perhaps a radix-8, radix-4 algorithm
    Raymond> would produce similar results as Matlab.  Then the IDCT could be as
    Raymond> fast as C.  Maybe.

Just wanted to post a correction that just occurred to me.  In the
matlab test that I did, I essentially timed fft(ones(65536,1)).
However, if I try something like fft(ones(65536,1)*(1+j)), I get 0.33
sec, the same as CMUCL.  I guess that, with the previous call, matlab
realized that the data was real and used a simpler and shorter real
transform instead to get the desired complex-valued transform.  The
correct comparison, of course, is the complex-valued transform since
that's what the Lisp version assumed.

So with this result, I see no reason at all why Lisp needs to be
slower than Fortran or C.

Ray


 
You must Sign in before you can post messages.
To post a message you must first join this group.
Please update your nickname on the subscription settings page before posting.
You do not have the permission required to post.
End of messages < Older 
« Back to Discussions « Newer topic     Older topic »