Giter Club home page Giter Club logo

bit-smasher's Issues

Some systems failed to build for Quicklisp dist

Building with SBCL 2.2.3 / ASDF 3.3.5 for quicklisp dist creation.

Trying to build commit id 78144ca

bit-smasher-test fails to build because of a failure in bit-smasher.

bit-smasher fails to build with the following error:

; caught ERROR:
;   READ error during COMPILE-FILE: Package BIT-SMASHER-ASD does not exist. Line: 29, Column: 75, File-Position: 969 Stream: #<SB-INT:FORM-TRACKING-STREAM for "file /home/quicklisp/quicklisp-controller/dist/build-cache/bit-smasher/be8e97d25483ed8f0d7bc470584ba5dc30ef356e/bit-smasher-20220707-git/src/packages.lisp" {1005F985C3}>
...
Unhandled UIOP/LISP-BUILD:COMPILE-FILE-ERROR in thread #<SB-THREAD:THREAD "main thread" RUNNING {1001BF0003}>: COMPILE-FILE-ERROR while compiling #<CL-SOURCE-FILE "bit-smasher" "packages">

Full log here

bits->octets order parameter

I used the library before the order parameter was removed from the bits->octets function and just maintained a local small patch to add it back - I can see how it's complicating the interface, so I could probably just use ironclad:integer-to-octets and supply the value myself. That said, the docstring still mentions the parameter.

Support for signed-bytes and endianess

The BIT-SMASHER library would be more generally useful, and less naive, if it supported handling of signed-bytes, the option of converting between little- and big-endian, and direct bit-shifting implementations of all arithmetic operations.

There are a few libraries already available in Quicklisp that will make this enhancement more or less painless.

Constantify *BIT-MAP*

(declaim (type (simple-array (simple-bit-vector 4) (16)) *bit-map*))
(defvar *bit-map* #(#*0000
#*0001
#*0010
#*0011
#*0100
#*0101
#*0110
#*0111
#*1000
#*1001
#*1010
#*1011
#*1100
#*1101
#*1110
#*1111))

Perhaps you could try to use ALEXANDRIA:DEFCONSTANT with :TEST #'EQUALP to turn this into a constant, in order to avoid (dynamic) variable lookup at runtime.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.