From: Raffael Cavallaro on
On 2009-12-04 23:44:30 -0500, Spiros Bousbouras <spibou(a)gmail.com> said:

> Well things change. Memory and disks get bigger while the standard
> stays the same.

This is purely an implementation issue. When memory and disks get
bigger, then implementations need to increase the size of fixnums. An
implementation with small fixnums needs to change, not the standard.
--
Raffael Cavallaro

From: Kaz Kylheku on
On 2009-12-05, Spiros Bousbouras <spibou(a)gmail.com> wrote:
> On 04 Dec 2009 10:01:06 -0800
> tar(a)sevak.isi.edu (Thomas A. Russ) wrote:
>> Spiros Bousbouras <spibou(a)gmail.com> writes:
>>
>> > > > 2. Why the requirement that the dimensions of an array are fixnums ?
>> > >
>> > > Why not? This is not a big restriction, if an implementation wants
>> > > bigger arrays, it only has to provide bigger fixnums.
>> >
>> > fixnums are supposed to be efficient , that's the criterion for
>> > choosing the size of fixnums not the maximum size of arrays.
>>
>> Yes. And you want to make sure array access is efficient. Thus the
>> limitation on only allowing fixnums as indicies
>
> No , you want to make sure that the programmer has the freedom to
> choose the trade-off which is most appropriate for his application. If
> he is willing to sacrifice some speed in order to gain larger arrays he
> should have that choice.

The trade off is there. You are perfectly free to ask your Lisp for
an array biger than array-dimension-limit, and your implementation
is free to provide it to you.

In this case, you merely can't use the ANSI standard as a negotiation
tool.
From: Raffael Cavallaro on
On 2009-12-04 23:44:38 -0500, Spiros Bousbouras <spibou(a)gmail.com> said:

> On the other hand it makes sense to expect that the maximum
> array size would depend on the actual amount of physical RAM installed
> in a computer so the standard is at fault for creating a connection
> between fixnum size and array size.

Again, this is an *implementation* issue, not an issue with the
standard. Implementors are responsible for assuring that their fixnums
are large enough to address arrays that are reasonable on the platform.
The standard gives them the flexibility to do that, so any failure to
provide fixnums large enough to address reasonable sized arrays on that
platform is a failure of that specific implementation, not a flaw in
ANSI common lisp.
--
Raffael Cavallaro

From: Pascal J. Bourguignon on
Spiros Bousbouras <spibou(a)gmail.com> writes:
> I'm not sure what the "at a word level" part means but I believe I
> understand your overall gist. So what about those lisp systems which
> can't index their entire address space using their fixnums ? From what
> Pillsy said CLisp probably can't.

More probably you will implement a bigarray data abstraction using an
array of arrays to store the data.

Remember that ARRAY-TOTAL-SIZE-LIMIT may be as low as 1024, so if you
want to write a portable program you will have to implement this
bigarray abstraction anyway.

--
__Pascal Bourguignon__
From: Barry Margolin on
In article <OylSm.7781$6p6.1940(a)newsfe05.ams2>,
Spiros Bousbouras <spibou(a)gmail.com> wrote:

> The problem here is that the standard does not allow a Lisp
> implementation to do this on the computer I'm using.

The standard doesn't prevent Lisp implementations from allowing bignum
array indices. It just doesn't require it, so portable applications
can't depend on it.

--
Barry Margolin, barmar(a)alum.mit.edu
Arlington, MA
*** PLEASE post questions in newsgroups, not directly to me ***
*** PLEASE don't copy me on replies, I'll read them in the group ***