- 1 minor bug fix in vampir extraction
- minor naming changes in vampir dump
- This release focuses mainly on a new cli feature
test
andlibrary
test
adds a simple test call in vampirlibrary
dumps the standard library along with the desired data
to-circuit
inseqn
has it’s arguments reversed- various vampir library functions have changed
mod_32
changed tomod_n
nth
changed ton_th
mgl-pax
updated on us causing build failures- Fix bug where the optimized Vampir output would produce incorrect code
- Natural Numbers have been added to the pipeline, from lambda down to
vampir generation
- Added
modulo
logic down the pipeline as well
- Added
- The Lambda Pipeline into Geb now Assumes
24
bits of precision - We now have a new intermediate layer, the
seqn
layer replaces thebitc
layer as the default, hopefully ending in more optimal code - Made some optimization passes to the vampir backend, along with breaking those changes into passes
- Improved optional value compilation from the lambda level
- Moved the following generic functions to the generic package
so-eval
width
so-hom=obj
- Fixed a bug where
obj-equalp
would compute equality incorrectly
- Previously we used
asdf:system-version
which is not defined in older asdf versions, thus we have moved it to the more commonasdf:component-version
- Binary
- Binary now has a
-v
flag for version - the old vampir
-v
has been moved to-p
- Binary now has a
- GUI
- The gui can now generate out
svg
files, read the docs to find out more!
- The gui can now generate out
- Libraries
- The tri module has been moved to the
geb-decision
module, with properly exported functions
- The tri module has been moved to the
- There is now a maintainers guide.
- Documentation has been fixed to recreate the old behavior of mgl-pax. More can be read here.
- More testing of BITC.
- Better Vampir generation
- Namely we can generate lists and exponentials
- Revision fixup
- MGL-pax had a regression where @documentation is not exported, we work around this by exporting every library, this issue can be tracked here.
- Lambda Changes
- Added an error node so that users can express failure
- This is translated into a maybe type internally for now, and affects the compilation downwards.
- Added an error node so that users can express failure
Gapply
(the interpreter) now works correctly for the BITC in theSWAP
case.- Fix an issue where higher order functions in the Lambda frontend would generate incorrect logic when extracting to the core category
- The pipeline extractor now properly takes the input stream given to it
- The Vamp-IR extractor function now properly accepts null streams
- A maybe function now exists generically throughout the codebase, allowing one to maybe any object type. See Maybe in the Generics section of the documentation.
- Lambda to geb should now work, we fixed a bug with how case was translated, and created some tests
- Lambda Changes
- Types are no longer required on all terms
- Application and Lambda now take multiple arguments, and expect arguments uncurried
- Core Category Changes
- Opaque types now extend the core category
- An interpreter now can be used from any category of the codebase
- Cleaner Code generation, through the new BITC backend.
- Geb to Poly had a few bugs fixed in injection, and pair representations
- Geb no longer exhausts the stack when trying to generate out vampir for basic circuits.
- Reference extensions allow factoring out common parts, not used outside of poly.
- We now have the following generic modules
GEB.GENERICS
- which hosts all generic transformationsGEB.EXTENSION
- which holds all extensions
- We have streamlined the package loading order.
- Change the graphing from a box and line diagram, to a proper graph diagram.
- We now utilize clim-dot to draw the graph.
- The drawing algorithm improved, new algorithms to optimize the graphing diagram.
- Change design of the codebase to use mixin based extension to the core category instead of extending substmorph/substobj.
- Removed the alias tag, instead it’s now stored on each separate allocation!
- Fixups
- Vamp-IR name dumping when using CL variable name convention ignores *’s.
- Minor issue with the docs on unresolved references and unneeded aliases preventing stock SBCL from loading the codebase.
- Fixup Vamp-IR library dump, by having range generate proper code.
- First release