NIPS VM added to the SPOT distribution.
2008-05-29 Guillaume SADEGH <sadegh@lrde.epita.fr> * iface/nips/nips.cc, iface/nips/nips.hh, iface/nips/common.cc, iface/nips/common.hh, iface/nips/Makefile.am: TGBA implementation with the NIPS library. * iface/nips/emptiness_check.cc: Emptiness check on a Promela interface. * iface/nips/dottynips.cc: Dot printer on the NIPS interface. * iface/nips/compile.sh: Add. Wrapper around nips compiler to compile Promela to NIPS bytecode. * iface/nips/nips_vm,iface/nips/nips_vm/bytecode.h, iface/nips/nips_vm/ChangeLog, iface/nips/nips_vm/COPYING, iface/nips/nips_vm/hashtab.c, iface/nips/nips_vm/hashtab.h, iface/nips/nips_vm/INSTALL, iface/nips/nips_vm/instr.c, iface/nips/nips_vm/instr.h, iface/nips/nips_vm/instr_step.c, iface/nips/nips_vm/instr_step.h, iface/nips/nips_vm/instr_tools.c, iface/nips/nips_vm/instr_tools.h, iface/nips/nips_vm/instr_wrap.c, iface/nips/nips_vm/instr_wrap.h, iface/nips/nips_vm/interactive.c, iface/nips/nips_vm/interactive.h, iface/nips/nips_vm/main.c, iface/nips/nips_vm/Makefile, iface/nips/nips_vm/Makefile.am, iface/nips/nips_vm/nips_asm_help.pl, iface/nips/nips_vm/nips_asm_instr.pl, iface/nips/nips_vm/nips_asm.pl, iface/nips/nips_vm/nips_disasm.pl, iface/nips/nips_vm/nipsvm.c, iface/nips/nips_vm/nipsvm.h, iface/nips/nips_vm/README, iface/nips/nips_vm/rt_err.c, iface/nips/nips_vm/rt_err.h, iface/nips/nips_vm/search.c, iface/nips/nips_vm/search.h, iface/nips/nips_vm/split.c, iface/nips/nips_vm/split.h, iface/nips/nips_vm/state.c, iface/nips/nips_vm/state.h, iface/nips/nips_vm/state_inline.h, iface/nips/nips_vm/state_parts.c, iface/nips/nips_vm/state_parts.h, iface/nips/nips_vm/timeval.h, iface/nips/nips_vm/tools.h: NIPS VM added to the SPOT distribution. * configure.ac, iface/Makefile.am: Build system updated for the NIPS front-end.
This commit is contained in:
parent
543190f2bc
commit
bc5f13bb4e
57 changed files with 11464 additions and 3 deletions
231
iface/nips/nips_vm/ChangeLog
Normal file
231
iface/nips/nips_vm/ChangeLog
Normal file
|
|
@ -0,0 +1,231 @@
|
|||
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
|
||||
Loading…
Add table
Add a link
Reference in a new issue