This is the mail archive of the
kawa@sourceware.org
mailing list for the Kawa project.
Re: features inconsistency
- From: Per Bothner <per at bothner dot com>
- To: Victor Anyakin <anyakin at bonustec dot com>
- Cc: kawa at sources dot redhat dot com
- Date: Thu, 22 Dec 2005 09:10:58 -0800
- Subject: Re: features inconsistency
- References: <20051222163514.GA15847@anyakin>
Victor Anyakin wrote:
Greetings to All,
I would like to share my experience using Kawa interpreter.
Everything seems fine, but, it seems to me somewhat odd, how strings
are processed. There are lots of cases, when strings returned from
java methods (of type <java.lang.String>) are not accepted by Kawa
routines (like string->number). Each time I pass or receive a
string, extra care has to be taken, in order to ensure, that it will
be normally processed.
Yes, this is annoying, but it is to some extent unavoidable, since
java.lang.String objects are immutable, and Scheme strings can be
modified.
I do hope to more automatically convert between the two types, but
I haven't worked out the details. Note automatically converting from
a Java string to a Scheme string is dangerous, because if someone
modifies the resulting string they may get non-obvious inconsistencies.
Adding a "non-modifioable Scheme string" type is probably the solution.
One more issue are plain java arrays. I find it inconvenient to
define (primitive-array-get <type>) and so forth every time I wish
to process plain java array.
Yep. The syntax is clunky. You might want to define some type-specific
macros for your application.
I have been thinking about an alternative syntax. I'm leaning towards
using function-call syntax, but that is a rather radical change:
(define my-arr (<int[]> length: 10))
(set! (my-arr 3) (my-arr 5))
--
--Per Bothner
per@bothner.com http://per.bothner.com/