Re: more advanced bytevector => supervectors

2021-09-14 Thread Stefan Israelsson Tampe
hi, I think I am happe now with the API for binary operators, To see where I am heading, consider the bitvector implementation. Here is e.g. how logxor is implemented s1 logior s2 -> s2 (define (supervector-logxor! s1 s2) (supervector-binary ;; The general case logxor ;; The s1 part

Re: more advanced bytevector => supervectors

2021-09-11 Thread lloda
A problem is that Guile doesn't really provide a god set of fast rank 1 ops. None of them have strides!=1 for example (this is ok for regular vectors, but it hurts for general arrays), and some are missing start/end or you have to write wrappers yourself, like for the typed vectors (other than

Re: more advanced bytevector => supervectors

2021-09-11 Thread Stefan Israelsson Tampe
I did some test ands wingo's superb compiler is about equally fast for a hand made scheme loop as the automatic dispatch for getter and setter. It e.g. can copy from e.g. u8 to i16 in about 100 op's / second using native byte order. However compiling it in C lead to nasty 2 Go ops / second. So for

Re: more advanced bytevector => supervectors

2021-09-08 Thread Stefan Israelsson Tampe
When I made this code work I will start examine the impact of the design. I suspect that it will, for complex cases if not compiled be way slower then the compiled part and this is really the hot path. For one thing, we will create 2 closures that allocates memory at each iteration if not inlined.

Re: more advanced bytevector => supervectors

2021-09-08 Thread lloda
> On 8 Sep 2021, at 04:04, Stefan Israelsson Tampe > wrote: > ... > So using get-setter typically means > ((get-setter #f bin1 #f >(lambda (set) (set v 2 val))) > >#:is-endian 'little ;; only consider little endian setters like I > know >#:is-unsigned #t ;;

Re: more advanced bytevector => supervectors

2021-09-07 Thread Stefan Israelsson Tampe
Today I added structure to support supervectors of scheme values and refactored the code with a nice macrology. So now we have an infrastructure that the compiler can compile to very efficient code. All loop must be dispatched to the type of ref and set operations. But the good part is that this se

Re: more advanced bytevector => supervectors

2021-09-05 Thread Stefan Israelsson Tampe
Further developments are now in, features are (guided somewhat by how the memory in linux/unix is managed and current guile strings) 1. chunked vectors e.g. we dived the vector in areas with different properties 2. optionally typed e.g. we consider a vector of u32 etc of data so there is a not

Re: more advanced bytevector => supervectors

2021-09-02 Thread tomas
On Thu, Sep 02, 2021 at 12:11:12PM -0700, Matt Wette wrote: > maybe guile could consider regexp's in scheme > seeĀ  https://ds26gte.github.io/pregexp/index.html This would have other advantages (e.g. suspendable match off a port), right? Cheers - t signature.asc Description: Digital signature

Re: more advanced bytevector => supervectors

2021-09-02 Thread Matt Wette
maybe guile could consider regexp's in scheme seeĀ  https://ds26gte.github.io/pregexp/index.html On 9/2/21 8:45 AM, Stefan Israelsson Tampe wrote: Hi guilers! My next project is to explore a more advanced bytevector structure than today's bytevectors. I think that having this infrastructure in

Re: more advanced bytevector => supervectors

2021-09-02 Thread Stefan Israelsson Tampe
Oh I just created the project, you can follow it here: https://gitlab.com/tampe/stis-supervectors On Thu, Sep 2, 2021 at 5:45 PM Stefan Israelsson Tampe < stefan.ita...@gmail.com> wrote: > Hi guilers! > > My next project is to explore a more advanced bytevector structure than > today's bytevecto