public inbox for kawa@sourceware.org
 help / color / mirror / Atom feed
* [ANN] Some R7RS libraries
@ 2017-04-10 14:07 Peter Lane
  2017-04-10 17:21 ` Per Bothner
  0 siblings, 1 reply; 4+ messages in thread
From: Peter Lane @ 2017-04-10 14:07 UTC (permalink / raw)
  To: kawa

Hi list,

Recently I have been writing and repackaging a variety of Scheme 
libraries to work on R7RS implementations.  The collection is a work in 
progress, but is currently tested on Chibi, Kawa and
Larceny: with some exceptions, the included examples and tests work on 
all three implementations.

For details, installation, licensing etc, see:

* https://github.com/petercrlane/r7rs-libs

(There is a script provided for kawa to compile the collection into 
class files and bundle into a single jar file.  This can be added to 
your classpath or placed in kawa/lib for ease of use: see INSTALL for 
details.)

Documentation:

* in pdf   http://peterlane.info/downloads/r7rs.pdf
* or html  http://peterlane.info/r7rs/html/index.html

Currently, there are 7 sub-collections, with 165 libraries between them, 
and over 1700 exported functions/variables.

| Name      | Libraries | Exports
| autodiff  | 17        | 146
| nltk      | 6         | 76
| pfds      | 16        | 183
| rebottled | 9         | 305
| robin     | 9         | 113
| slib      | 91        | 713
| weinholt  | 17        | 190
| Total     | 165       | 1726

Robin is written by me and includes a statistics library, a text library 
with a stemmer, similarity measures and formatting functions, and, from 
Ruby, abbrev and logger libraries.

The remaining collections are repackaged from R6RS or earlier Scheme 
versions to work with R7RS and are from various sources and by various 
authors.

The main repackaged collection is SLIB, which includes a variety of data 
structures, functions to manipulate strings and arrays, a version of 
lisp's format command, various mathematical functions, an xml-parser, a 
database system, and a 3D modelling language, amongst many others.

The remaining collections include text processing (nltk), functional 
data structures (pfds), cryptographic functions (weinholt), pdf output 
and regular expressions (rebottled), and automatic differentiation 
(autodiff).

Health warning: As not all parts of the different collections came with 
test suites, and even those which have test suites are not necessarily 
rigorously tested, I may well have broken things in conversion.  All 
known problems are listed in the README.

Let me know of any problems via Github issues, here or email (see url 
below).

--
Peter Lane
http://peterlane.info

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

* Re: [ANN] Some R7RS libraries
  2017-04-10 14:07 [ANN] Some R7RS libraries Peter Lane
@ 2017-04-10 17:21 ` Per Bothner
  2017-04-10 18:45   ` Peter Lane
  0 siblings, 1 reply; 4+ messages in thread
From: Per Bothner @ 2017-04-10 17:21 UTC (permalink / raw)
  To: Peter Lane, kawa

On 04/10/2017 07:07 AM, Peter Lane wrote:
> Recently I have been writing and repackaging a variety of Scheme libraries to work on R7RS implementations.  The collection is a work in progress, but is currently tested on Chibi, Kawa and
> Larceny: with some exceptions, the included examples and tests work on all three implementations.

Cool.  Thanks!

Perhaps it would make sense to add SRFI-27 to Kawa itself.

You write: "Kawa uses the colon in symbol names specially to refer to Java method calls."
That's not quite right.  See https://www.gnu.org/software/kawa/Colon-notation.html

Kawa does have a "recovery" hack for identifiers with colons:

#|kawa:1|# (define foo:bar 12)
#|kawa:2|# foo:bar
12
#|kawa:3|# (define (foo:baz x) (list x foo:bar))
#|kawa:4|# (foo:baz 3)
(3 12)

To make this more robust, you can define foo as a namespace:
(define-namespace foo "foo-namespace")

Have you tested your library with the 'invoke' git branch?
That would be valuable, as the invoke branch will become Kawa 3.x
this year (the plan is to do so before JDK 9 is released).
There are a number of incompatible changes, most notably that by
default Kawa will follow SRFI-140, so most string procedures
will return immutable strings.
-- 
	--Per Bothner
per@bothner.com   http://per.bothner.com/

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

* Re: [ANN] Some R7RS libraries
  2017-04-10 17:21 ` Per Bothner
@ 2017-04-10 18:45   ` Peter Lane
  2017-04-10 19:11     ` Per Bothner
  0 siblings, 1 reply; 4+ messages in thread
From: Peter Lane @ 2017-04-10 18:45 UTC (permalink / raw)
  To: kawa


On 10/04/17 18:21, Per Bothner wrote:
> Perhaps it would make sense to add SRFI-27 to Kawa itself.
I will take another look at it first but yes, it would be convenient to 
add in to Kawa itself.
> Have you tested your library with the 'invoke' git branch?
> That would be valuable, as the invoke branch will become Kawa 3.x
> this year (the plan is to do so before JDK 9 is released).
I shall give that a try and let you know what happens.
> There are a number of incompatible changes, most notably that by
> default Kawa will follow SRFI-140, so most string procedures
> will return immutable strings.
That may need another cond-expand option in places.  I have a few such 
for strings already, as chibi does not support srfi 13.

--
Peter Lane
http://peterlane.info/scheme.html

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

* Re: [ANN] Some R7RS libraries
  2017-04-10 18:45   ` Peter Lane
@ 2017-04-10 19:11     ` Per Bothner
  0 siblings, 0 replies; 4+ messages in thread
From: Per Bothner @ 2017-04-10 19:11 UTC (permalink / raw)
  To: Peter Lane, kawa

On 04/10/2017 11:45 AM, Peter Lane wrote:
>> There are a number of incompatible changes, most notably that by
>> default Kawa will follow SRFI-140, so most string procedures
>> will return immutable strings.
> That may need another cond-expand option in places.  I have a few such for strings already, as chibi does not support srfi 13.

I expect you will need very few changes.  Kawa will still have string-set!,
and both make-string and string-copy will return mutable strings.
-- 
	--Per Bothner
per@bothner.com   http://per.bothner.com/

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

end of thread, other threads:[~2017-04-10 19:11 UTC | newest]

Thread overview: 4+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2017-04-10 14:07 [ANN] Some R7RS libraries Peter Lane
2017-04-10 17:21 ` Per Bothner
2017-04-10 18:45   ` Peter Lane
2017-04-10 19:11     ` Per Bothner

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).