guile-user
[Top][All Lists]
Advanced

[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



reply via email to

[Prev in Thread] Current Thread [Next in Thread]