Luca Saiu — projects
[still incomplete]
[FIXME: write this]
This page is not ready yet. The hacks page has a little
more information of some of these.
GNU Jitter
Jitter is a generator of efficient language virtual machines.
I started what became Jitter as an attempt to optimise
GNU epsilon.
Jitter has now evolved into an interesting project, useful on its own;
it has itself been approved as a separate GNU project in December 2021.
There used to be a web page for Jitter on this server, but I moved the
main web site for Jitter
to gnu.org. It is still written by me.
This web site still contains the master copy of two important Jitter
resources:
GNU epsilon
[FIXME: write this]
Of course there is a page about epsilon
on the GNU project web site.
My PhD thesis is not a
replacement for actual documentation (which I have not written
yet), but it may be a nice way of understanding the philosophy
behind epsilon.
Vaucanson
The Vaucanson project has
a web page at LRDE-EPITA;
its official web site
contains less information.
-
Started reference manual, including a script to seamlessly
include IPython notebooks from LaTeX.
[not on master]
-
Implemented functional interface vcsn.functional [not on master]
-
generalize is_deterministic into is_sequential; make
is_deterministic use is_sequential with an additional
precondition which causes failure (and not a false result)
on violation
[not on master]
-
rational series polynomials as a weightset
-
minimal quotient
- Moore's algorithm (only for lal DFAs)
- A variant based on state signatures, for any Boolean weightset
- A variant based on state signatures, for any weightset
-
Implement subset automaton decorator (later renamed
into partition automaton) for quotient results
-
automaton (programmatic) editing [not on master]
-
ratexpset: generalize by adding support for identities as
parameters; use this to implement series
-
is-isomorphic
- Efficient algorithm for the sequential case, O(|Q|)
- Non-sequential case, O((|Q|+1)!), optimised with
signatures and made efficient in many practical cases
-
misc: support for generic hashing and comparison, to be used
for STL containers with weights or labels as keys.
Generalize to tuplesets.
-
lal automaton product: major optimization, exploiting transition ordering in sort output
-
automaton sort
Don't renumber states when outputting an automaton. Add a new "sort"
algorithm to fo exactly that, on demand; numbering is breadth-first,
following label order when numbering the successors of the same state.
Update Tafkit to always sort printed automata; *don't* do that in the
C++ and Python interfaces. Fix expected results in the testsuite.
-
labelset: add size method to every labelset, particularly
for use in ratexp comparison; use syntactical complexity in
the ratexp case
-
improve ratexp printing, omitting some parens; out chosen
syntax doesn't allow printing a minimally-parenthesised expression
-
major (invasive) change in ratexp representation, turning
left and right weights into separate AST nodes.
-
istream input: factor common failure code
-
q weight parsing: bugfixes in a couple subtle cases
-
product: require is_commutative from the weightset
-
weightsets: define is_commutative_semiring
-
implement shuffle product and infiltration product; factor common code with product
[later renamed into conjunction]
-
miscellaneous minor changes or bugfixes:
- tupleset: add is_commutative_semiring 2abf27aa87627328d2b416b2ad77f4bb740972fb
- GCC bug workaround: dad7475d2c94830fe3b9059e28e9b3bc3367382b
- bin/vcsn-score: remove -u shebang option, unsupported by some shells c81f06c2bda1ba3c2fee18671d26938ea80dfcc5
- right-mult: implement correctly (reported by Jacques Sakarovitch); the implementation itself is quite trivial 69e70cac37c7aae7041c80bb5e2ce0fa06f77e7e
- remove tafkit scoresuite 86ba8c00a03ddbc545af18924a5aaae177b51fbf
- info in Python: correctly write boolean values e2df6ab5bfe120a58b6a7080ebe53ae5c5070b99
- add missing NEWS item d528b82a7f047795ffabd71ea603ce11c073a4e1
- wrap is_accessible and is_coaccessible in Python: c9da09d355273a10bc3d5ab0390827197451f1cb
- info: add a forgotten initialization 85f891a5b9adb28d6ed24f42350ede7457f84277
- fix configure buglet e36cae523e62cd5dda8230f4fb2b17dc6b83136d
- boolean weight parsing: bugfix and refactoring b7e88f623c2535f1df511bbafa0d74740674d1f5
- add more attribute macros 863e511107a1c2900c03e75e6bfd197ffd1ed227
- benchmark product 065ffd663b8f26b0253320b599fbb19b2de5d22d
Marionnet
Marionnet has its own web site.
The other co-author is Jean-Vincent Loddo.
[FIXME: write this]
2012 poster by Jean-Vincent Loddo (in French, PDF, 4.3MB).
Marionnet is now also packaged by debian, on jessie and sid.
A simple kernel hack: Ghostification
[FIXME: write this: history, and a link to the current version]
[2013-07-01]
Multi-runtime OCaml
[FIXME: write this]
I used to work at
INRIA Saclay,
under the supervision of Fabrice Le Fessant;
first in the ASAP team, then
in Gallium.
NAUSEA
There is a screenshot gallery of the
NAUSEA client.
[FIXME: write this: history, and a link to the current version.
With Dario Russo]
The home page, with very little information, is here.
NAUSEA Logos
A simple NAUSEA world. With Dario Russo.
The home page, also with little information and a couple of broken links to fix, is here.
Baroque
[FIXME: write this]
ICFPc
[FIXME: write this. In 2003 alone, in 2006 with Marco Righi]
Takeshi
[FIXME: write this]
Very early, likely lost
[FIXME: write this]
Other unmaintained hacks
I've collected some information on some of my old or minor hacks in
a subdirectory. Unmaintained.
Copyright © 2012, 2014, 2019, 2021, 2022 Luca Saiu
Verbatim copying and redistribution of this entire page are permitted provided this notice is preserved.