unofficial mirror of guile-user@gnu.org 
 help / color / mirror / Atom feed
From: Stefan Israelsson Tampe <stefan.itampe@gmail.com>
To: Zelphir Kaltstahl <zelphirkaltstahl@posteo.de>,
	Guile User <guile-user@gnu.org>,
	guile-devel <guile-devel@gnu.org>
Subject: Re: Announcement stis-engine
Date: Thu, 19 Aug 2021 01:37:02 +0200	[thread overview]
Message-ID: <CAGua6m3vD8Lvu2Sn0txBuk4ebib=PBMjw7qjb_uoNrrCPA+GVQ@mail.gmail.com> (raw)
In-Reply-To: <CAGua6m1-vUgEk18Zb7cUw-Rp5kAz+Rg=LDF+0c26JBMghC2-zQ@mail.gmail.com>

[-- Attachment #1: Type: text/plain, Size: 2279 bytes --]

HI all,

I added a new gem, it' a c based serializer and deserializer of guile data
which is relative feature rich and will ping pong
between scheme and c-land in order to be able to be fiber friendly. So
currently the benchmarks are for the following copy
operations,

,time (load (dump (make-bytevector N 1))
1s for ~ 1GB (test of memcpy)

,time (load (dump (make-vector N 1))
1s for ~ 100MB (will be less pipelined)

,time (load (dump (iota N))
1s for ~ 50MB (will create in total N cons cells with 5 bytes)

The scheme based version of these serializers and deserializers was able to
perform 5MB per second, but thats with much higher allocation overhead

This means that we match pythons dump and load functions. I will add those
to my fibers piping tool

Currently supported data structures
all numbers yes even bignums
all immediates  ('(), booleans characters and whatnot)
bytevectors
strings (wide strings and narrow strings)
symbols
keywords
pairs
vectors

the location of the c-code is in
guile-persist:   https://gitlab.com/tampe/guile-persist

(use-modules (persist persistance)) => atom-load-bv and atom-dump-bv is
defined.

This library is used by python-on-guile and I will replace the current dump
and load with this in the end. Also this tool
will be added to the fiber piping system I am working with in stis-engine.
















On Sat, Aug 14, 2021 at 2:07 PM Stefan Israelsson Tampe <
stefan.itampe@gmail.com> wrote:

> Next is to add support for
> 1. self referential data structures like #1 = '(1 2 3 #1), string
> compression
> 2. Structs
> 3 .Goops Classes and Objects
>
> Then I will add
> 1. Lambdas
> and then Continuations to be able to serialize (if you turn off unboxing
> optimizationsas in guile)
>
> After that a toolbox to customize tserializing just as with python
>
> Note all this is supported in python-on-guile, just that the new code is
> better suited for proper streaming
> and the code is much nicer in my personal view so you do have all these
> features already if you use pythons
> dumps and loads commands together with string->fpipe and fpipe->string.
>
> The new thing is essentially stream compression and streams to zmq's.
> Stream compression wll come to
> python as well as the zlib python module is very rudementary
>
>

[-- Attachment #2: Type: text/html, Size: 3536 bytes --]

  parent reply	other threads:[~2021-08-18 23:37 UTC|newest]

Thread overview: 4+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2021-08-08 20:27 Announcement stis-engine Stefan Israelsson Tampe
2021-08-14  4:09 ` Stefan Israelsson Tampe
     [not found]   ` <c8cec86b-0c32-ce1d-106c-367f2ed7bf6e@posteo.de>
     [not found]     ` <CAGua6m1-vUgEk18Zb7cUw-Rp5kAz+Rg=LDF+0c26JBMghC2-zQ@mail.gmail.com>
2021-08-18 23:37       ` Stefan Israelsson Tampe [this message]
2021-08-23 17:31 ` Stefan Israelsson Tampe

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

  List information: https://www.gnu.org/software/guile/

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to='CAGua6m3vD8Lvu2Sn0txBuk4ebib=PBMjw7qjb_uoNrrCPA+GVQ@mail.gmail.com' \
    --to=stefan.itampe@gmail.com \
    --cc=guile-devel@gnu.org \
    --cc=guile-user@gnu.org \
    --cc=zelphirkaltstahl@posteo.de \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
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).