Some comments relating to ICFP contest Andre van Tonder (25 Jul 2006 20:25 UTC)
|
Re: Some comments relating to ICFP contest
Alex Shinn
(26 Jul 2006 02:04 UTC)
|
Re: Some comments relating to ICFP contest
Michael Sperber
(26 Jul 2006 05:03 UTC)
|
Re: Some comments relating to ICFP contest
Alan Watson
(26 Jul 2006 08:40 UTC)
|
Re: Some comments relating to ICFP contest
Michael Sperber
(26 Jul 2006 09:02 UTC)
|
Re: Some comments relating to ICFP contest
bear
(04 Sep 2006 17:31 UTC)
|
Re: Some comments relating to ICFP contest
Andre van Tonder
(26 Jul 2006 15:12 UTC)
|
Re: Some comments relating to ICFP contest
Michael Sperber
(26 Jul 2006 15:35 UTC)
|
Re: Some comments relating to ICFP contest
Andre van Tonder
(26 Jul 2006 16:23 UTC)
|
Re: Some comments relating to ICFP contest
Michael Sperber
(27 Jul 2006 15:51 UTC)
|
Some comments relating to ICFP contest Andre van Tonder 25 Jul 2006 20:24 UTC
I have a few comments based on my experience in trying to implement the ICFP contest virtual machine specification using Scheme. I found that most Schemes were pretty much useless for this particular application, being severely handicapped by the following issues. - No support for 32-bit or 64-bit integers. - No support for unsigned 32-bit/64-bit arithmetic, including unsigned division. - No support for bit operations on 32-bit or 64-bit quantities. - No support for uniform unboxed arrays. I was surprised that these types are not more commonly represented, since their implementation would come almost for free in many architectures. They are awkward and expensive to simulate otherwise, and their absence inhibits communication with languages that have them. Also, I would imagine that many practical applications of bit-twiddling are most useful on multiples of 8 bits. I see little point in even having these operations on fixnums with a non-portable range. I think portability would be greatly aided by requiring these specific types, perhaps in addition to the fixnum types required by the SRFI. As for the latter, I do understand the reason for their having less than 32 bits on most implementations, but given this, in the absence of a precise specification of their range (as opposed to the current lower bound), it is unclear to me how the specification will contribute to portability, not to mention issues of formal semantics and correctness, when the meaning of a fragment of numeric code is allowed to be implementation-dependent. Another comment: - I see <digit-16> admits only lowercase a to f. This is not a problem when writing new code, but may be a pain when inputting or copying existing hex numbers. Many (most?) hex numbers out there are in uppercase.