spot/iface/nips/nips_vm/ChangeLog
Alexandre Duret-Lutz 0785d729d5 [iface/nips/nips_vm]
Fix compilation with Clang.

* state.c: Do not include state_inline.h twice with different
value of STATE_INLINE.  It was included once via state.h with
STATE_INLINE = "extern inline", and another time directly with
STATE_INLINE = "extern". Now...
* state.h: ... only include it once here with STATE_INLINE =
"static inline".
2010-11-27 14:31:04 +01:00

249 lines
8 KiB
Text

2010-11-27 Alexandre Duret-Lutz <adl@lrde.epita.fr>
Fix compilation with Clang.
* state.c: Do not include state_inline.h twice with different
value of STATE_INLINE. It was included once via state.h with
STATE_INLINE = "extern inline", and another time directly with
STATE_INLINE = "extern". Now...
* state.h: ... only include it once here with STATE_INLINE =
"static inline".
2010-01-21 Alexandre Duret-Lutz <adl@lrde.epita.fr>
Kill a warning on Ubuntu.
* interactive.c (interactive_simulate): Explicitly ignore the
return of scanf to kill a warning.
2007-03-27 Michael Weber <michaelw@foldr.org>
* Released version 1.2.7
2007-03-26 Michael Weber <michaelw@foldr.org>
* nipsvm.c (simple_error_cb): added, fixes segfault in
error callback which received the wrong context;
reported by <timo.lindfors@iki.fi>
2007-03-10 Michael Weber <michaelw@foldr.org>
* Released version 1.2.6
* search.c (search): silenced warning on MacOS X
* instr_step.c (instr_succ): code cleanup:
p_monitor
* Makefile (LDFLAGS_LIB): MacOS X support
2006-07-06 Michael Weber <michaelw@foldr.org>
* nips_disasm.pl: emit !modflags only of non-empty
* nips_asm.pl: if set, use NIPS_HOME to locate *.pl files
2006-06-27 Michael Weber <michaelw@foldr.org>
* main.c: adjusted version
* search.c: initialize n_atomic_steps to zero (lost in last commit)
2006-06-06 Michael Weber <michaelw@foldr.org>
* Released version 1.2.5
* search.c: count and print number of atomic steps.
2006-05-19 Michael Weber <michaelw@foldr.org>
* nipsvm.c (nipsvm_default_error_cb): removed extra comment
* tests/spin/pftp: commented out unused variable
* bytecode.h, bytecode.c (bytecode_str_inf): added interface to
query structure information.
TODO: use binary search to find record.
TODO: adapt interface for bytecode_src_loc
2006-03-14 Michael Weber <michaelw@foldr.org>
* instr.c (instr_load_special_timeout): renamed to instr_lds_timeout
(instr_load_special_pid): renamed to instr_lds_pid
(instr_load_special_nrpr): renamed to instr_lds_nrpr
(instr_load_special_last): renamed to instr_lds_last
(instr_load_special_np): renamed to instr_lds_np
(instr_lrun): fixed storage size bug
(instr_run_intern): fixed storage size bug
2006-03-13 Michael Weber <michaelw@foldr.org>
* Makefile (MACHINE): set MACHINE if compiler target
architecture cannot be worked out from ``gcc -dumpmachine'', e.g.
``make MACHINE=x86_64-linux''
(CFLAGS): use -m64 for x86_64
(CFLAGS_LIB): use -fPIC by default on x86, except for win32
2006-03-11 Michael Weber <michaelw@foldr.org>
* state.c (channel_to_str): more unsignedness fixes
* instr.c (instr_chnew): more unsignedness fixes
* hashtab.c (hashtab_get_pos): more unsignedness fixes
* Makefile: changed way to detect mingw32 compiler to make it work
with ming32 cross compiler, use -DSMALLSTACK by default in windows
(TARGET): set TARGET to cross compile, e.g.:
``make TARGET=i586-mingw32msvc all''
* search.c: use #ifdef WIN32 ... #endif for windows specific
sections
* timeval.h: shift platform specifics here, just include if needed
* instr_step.c: conditionalize on SMALLSTACK
2006-03-09 Michael Weber <michaelw@foldr.org>
* hashtab.c (hashtab_hash): fixed signedness oversight
2006-02-23 Michael Weber <michaelw@foldr.org>
* BUGS: Added Bug#2.
* instr_step.c (instr_succ): extension of finite paths only if
monitor is present.
* state_inline.h (global_state_compare): add type cast so that
C++ compilers don't choke. Note, that this function is
deprecated, still.
* nipsvm.h: comment cosmetics
2006-02-17 Michael Weber <michaelw@foldr.org>
* nips_disasm.pl: very simple bytecode-to-C stub generator.
The generated function must be inserted manually into the VM
currently. Also, giving such a specialized VM a different
bytecode file than was used for generating the C stub results
in hilarious behavior. Not recommended.
Speedup: yes, but not very large. Much is eaten by complicated
PC handling. Possible optimizations: move instruction decoding
out of execution loop (requires quite some surgery)
* nips_asm_instr.pl (get_instructions): tag instructions whether
they change control-flow or yield errors.
(instruction_cfun): bytecode to C-function name mapping
* instr.c (instr_ldc): renamed from instr_load_constant to match
functions names generated by disassembler script
(instr_trunc): renamed from instr_truncate
(instr_exec): replaced occurrences of renamed functions
2006-02-15 Michael Weber <michaelw@foldr.org>
* nips_asm.pl: collate flags for the same address instead of
emitting them individually. Happens, if the compiler generates
several labels for the same code address each of which has flags
set. I am not sure that was a real problem for the current VM
implementation.
2006-02-11 Michael Weber <michaelw@foldr.org>
* state.c (global_state_to_str): output flags (accepting,
terminated) if monitor is present
2006-02-06 Michael Weber <michaelw@foldr.org>
* search.c (search_succ_cb): fixed type of succ_sz (size_t)
* state.c (global_state_to_str): fixed format arg mismatch for
64-bit systems.
2006-02-03 Michael Weber <michaelw@foldr.org>
* Released version 1.2.3
2006-02-02 Michael Weber <michaelw@foldr.org>
* search.c (t_search_context, search, search_succ_cb): count
transitions
* nipsvm.h (nipsvm_state_monitor_accepting)
(nipsvm_state_monitor_terminated)
(nipsvm_state_monitor_acc_or_term): added
* state.c, state.h (global_state_monitor_accepting)
(global_state_monitor_terminated)
(global_state_monitor_acc_or_term): deprecated
2006-02-01 Michael Weber <michaelw@foldr.org>
* hashtab.c: faster hash collision resolution using (very simple)
double hashing, speeding up almost-filled hash table insertions.
I measured a speedup of 1.35 when filling hash table to 93%.
API CHANGES AHEAD
Old API functions are still there, but will be be phased out
eventually.
* nipsvm.c, nipsvm.h : beginnings of a new interface: nipsvm_*
equivalents of the most used global_* methods
* simpler and less fragile callback interface, all extra
information is stashed away in
nipsvm_transition_information_t (can be extended without visibly
changing the API)
* converted some of the internals to the new API (work in
progress)
* some state handling functions have grown an extra size_t
argument, instead of calculating the state size themselves
* search.c (search): added initial state to hash table to
eliminate off-by-one difference between visited states and
states in table
* Makefile: added -g option by default, removed rt_err.o from
libnips_vm (not needed)
2005-10-11, 2005-10-12
----------------------
added range errors in assembler
changed maximum size of global variables to 65535
- access to global variables 256..65535 not possible using LDVA / STVA
use LDC <address> ; LDV / STV instead
added instructions
- GLOBSZX <size of global variables (0..65535)>
set size of global variables using 2 byte constant
- LDB [L|G]
load bit from local / global memory
stack:<addr>:<bit> ---> stack:<value>
only last 3 bits of <bit> are used
- STB [L|G]
store bit into local / global memory
stack:<value>:<addr>:<bit> ---> stack
<value> must be 0 or 1 (other values are treated as 1)
- LDV / STV [L|G] [2u|2s|4] LE
load / store variable in little endian format
works as version without LE at end (but in little endian format)
- BGET /BSET r_i, b for bit access to registers
behaviour is as FGET b / FSET b (but for r_i instead of r_F)
1.2.2 2005-09-30
----------------
tried to fix unalign errors on alpha
tried to fix left unalign errors on alpha
fixed byte order bug in LVAR instructions (remote ref)
added global_state_initial_size
added string output of states
1.2.1 2005-09-21
----------------
now forcing cycle in case of blocking system
- needed in most LTL model checkers to recognize
invalid states in which system blocks
- added INSTR_SUCC_CB_FLAG_SYS_BLOCK flag (successor callback)
1.2 2005-09-06
--------------
first public release