[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Pre-release guile-r7rs 0.1.0 and guile-wiredtiger 0.8.0
From: |
amirouche |
Subject: |
Pre-release guile-r7rs 0.1.0 and guile-wiredtiger 0.8.0 |
Date: |
Fri, 03 May 2019 16:30:19 +0200 |
User-agent: |
Roundcube Webmail/1.3.8 |
Hello!
I am working toward releasing guile-r7rs 0.1.0 and guile-wiredtiger
0.8.0.
They are both available in the my guix channel. That you can use as
follow:
$ cat ~/.config/guix/channels.scm
(cons (channel
(name 'amz3)
(url "https://git.sr.ht/~amz3/guix-amz3-channel"))
%default-channels)
Then:
$ guix pull
...
guile-r7rs rely on a guile-pfds but the current guile-pfds available in
guix has a bug.
Anyway, to install everything you need to do the following:
$ guix package -i address@hidden address@hidden
address@hidden
It might ask you to remove any previous installation of one the those
packages.
The work-in-progress documentation of guile-r7rs is available at:
https://git.sr.ht/~amz3/guile-r7rs/tree/master/doc
The doc is mostly scrapped from r6rs, r7rs and srfis.
Here is the list of available modules:
scheme/assume.scm
scheme/base.scm
scheme/bitwise.scm
scheme/box.scm
scheme/bytevector.scm
scheme/case-lambda.scm
scheme/char.scm
scheme/charset.scm
scheme/comparator.scm
scheme/complex.scm
scheme/cxr.scm
scheme/eval.scm
scheme/file.scm
scheme/generator.scm
scheme/hash-table.scm
scheme/inexact.scm
scheme/lazy.scm
scheme/list.scm
scheme/load.scm
scheme/mapping/hash.scm
scheme/mapping.scm
scheme/process-context.scm
scheme/r5rs.scm
scheme/read.scm
scheme/repl.scm
scheme/set.scm
scheme/sort.scm
scheme/stream.scm
scheme/time.scm
scheme/write.scm
You can look in the tracker to know what is missing:
https://todo.sr.ht/~amz3/guile-r7rs
The source hut badge says the tests are failing, it is because
I did not fix the build specification since I added autotools.
guile-wiredtiger is gearing toward 0.8.0:
- raw bytevector key and values are supported, multiple columns
are still supported but it is recommend to rely on pack and
unpack procedures defined in (wiredtiger pack) see below.
- fix bug related to session-rollback which was bound to wiredtiger
transaction prepare.
- move wiredtiger/wiredtiger.scm to wiredtiger.scm which means to
access the procedures you need to import (wiredtiger) instead of
(wiredtiger wiredtiger)
- add `wiredtiger/pack.scm` which is based on foundationdb packing
algorithm.
The packing algorithm support more scheme types including bigint,
symbols, single and double precision floats (inexact). This is still
a work in progress. Do expect breaking changes as I might move away
from
foundationdb compatibility to better blend in Scheme. Review welcome:
https://framagit.org/a-guile-mind/guile-wiredtiger/blob/master/wiredtiger/pack.scm
- add `wiredtier/okvs.scm` which is a partial implementation of srfi
167,
that you can have look at here:
https://srfi.schemers.org/srfi-167/
- add `wiredtiger/nstore.scm` which is an implementation of srfi 168,
that
you can have look at here:
https://srfi.schemers.org/srfi-168/
Regarding srfi 168, the conversation is still happening. So chime in,
ask
questions, debate and help create the greatest database abstraction with
Scheme.
I already envision extensions to srfi-168 to support Xz-ordering [0]
that is
state-of-the-art space filling curve that allows to index
spatio-temporal
data. That will be done in a backward compatible way.
Happy hacking!
[0] http://citeseerx.ist.psu.edu/viewdoc/summary?doi=10.1.1.73.4894
- Pre-release guile-r7rs 0.1.0 and guile-wiredtiger 0.8.0,
amirouche <=