<feed xmlns='http://www.w3.org/2005/Atom'>
<title>sail/test/c, branch sail2</title>
<subtitle>Formal specification language for ISAs</subtitle>
<link rel='alternate' type='text/html' href='https://git.0x7felf.com/sail/'/>
<entry>
<title>Fix some cases when monomorphising vectors containing variable-length bitvectors</title>
<updated>2021-01-05T14:36:21+00:00</updated>
<author>
<name>Alasdair</name>
</author>
<published>2021-01-05T14:36:21+00:00</published>
<link rel='alternate' type='text/html' href='https://git.0x7felf.com/sail/commit/?id=1ac7d1b3ddb0cc1aeff4964559dbf92e0addf057'/>
<id>1ac7d1b3ddb0cc1aeff4964559dbf92e0addf057</id>
<content type='text'>
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
</pre>
</div>
</content>
</entry>
<entry>
<title>Fix interpreter pattern matching bug</title>
<updated>2020-11-01T15:01:05+00:00</updated>
<author>
<name>Alasdair</name>
</author>
<published>2020-11-01T15:00:11+00:00</published>
<link rel='alternate' type='text/html' href='https://git.0x7felf.com/sail/commit/?id=12edcd22c20f480ca73bcfdfb08477fb0480657d'/>
<id>12edcd22c20f480ca73bcfdfb08477fb0480657d</id>
<content type='text'>
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
</pre>
</div>
</content>
</entry>
<entry>
<title>Fix a C backend bug with letbindings in guards shadowing body definitions</title>
<updated>2020-08-10T19:24:21+00:00</updated>
<author>
<name>Alasdair</name>
</author>
<published>2020-08-10T19:09:39+00:00</published>
<link rel='alternate' type='text/html' href='https://git.0x7felf.com/sail/commit/?id=2736af39811331502c7f5bc7e2bd8f590f1f9b2a'/>
<id>2736af39811331502c7f5bc7e2bd8f590f1f9b2a</id>
<content type='text'>
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
</pre>
</div>
</content>
</entry>
<entry>
<title>Fix bug with duplicate enum identifiers in patterns</title>
<updated>2020-06-23T21:49:31+00:00</updated>
<author>
<name>Alasdair</name>
</author>
<published>2020-06-23T21:46:19+00:00</published>
<link rel='alternate' type='text/html' href='https://git.0x7felf.com/sail/commit/?id=df8429663a598d75853195d6552dda0e279e711f'/>
<id>df8429663a598d75853195d6552dda0e279e711f</id>
<content type='text'>
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
</pre>
</div>
</content>
</entry>
<entry>
<title>Merge branch 'sail2' into mono-tweaks</title>
<updated>2020-05-21T14:30:43+00:00</updated>
<author>
<name>Alasdair</name>
</author>
<published>2020-05-21T14:30:43+00:00</published>
<link rel='alternate' type='text/html' href='https://git.0x7felf.com/sail/commit/?id=8320ddc4b19d622f8ab5ab8625dde45fccbf383b'/>
<id>8320ddc4b19d622f8ab5ab8625dde45fccbf383b</id>
<content type='text'>
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
</pre>
</div>
</content>
</entry>
<entry>
<title>Merge remote-tracking branch 'origin' into codegen</title>
<updated>2020-05-14T09:25:33+00:00</updated>
<author>
<name>Alasdair</name>
</author>
<published>2020-05-14T09:25:33+00:00</published>
<link rel='alternate' type='text/html' href='https://git.0x7felf.com/sail/commit/?id=a6c52e67303b9180c6925d0538769304883e6cae'/>
<id>a6c52e67303b9180c6925d0538769304883e6cae</id>
<content type='text'>
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
</pre>
</div>
</content>
</entry>
<entry>
<title>Re-activate some tests</title>
<updated>2020-05-14T09:25:18+00:00</updated>
<author>
<name>Alasdair</name>
</author>
<published>2020-05-14T09:25:18+00:00</published>
<link rel='alternate' type='text/html' href='https://git.0x7felf.com/sail/commit/?id=3f217002bd732d4c408af6bd34fafbb8bdd4404e'/>
<id>3f217002bd732d4c408af6bd34fafbb8bdd4404e</id>
<content type='text'>
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
</pre>
</div>
</content>
</entry>
<entry>
<title>Functorise and refactor C code generator</title>
<updated>2020-05-11T18:00:53+00:00</updated>
<author>
<name>Alasdair</name>
</author>
<published>2020-04-28T16:24:04+00:00</published>
<link rel='alternate' type='text/html' href='https://git.0x7felf.com/sail/commit/?id=199e10df8e776e4b27f9cfd2357db6babf674ed1'/>
<id>199e10df8e776e4b27f9cfd2357db6babf674ed1</id>
<content type='text'>
Currently uses the -c2 option

Now generates a sail_state struct which is passed as a pointer to all
generated functions. This contains all registers, letbindings, and the
exception state. (Letbindings must be included as they can contain
pointers to registers). This should make it possible to use sail models
in a multi-threaded program by creating multiple sail_states, provided a
suitable set of thread-safe memory builtins are provided. Currently the
sail_state cannot be passed to the memory builtins.

For foo.sail, now generate a foo.c, foo.h, and (optionally) a foo_emu.c.
foo_emu.c wraps the generated library into an emulator that behaves the
same as the one we previously generated.

The sail_assert and sail_match_failure builtins are now in a separate
file, as they must exist even when the RTS is not used.

Name mangling can be controlled via the exports and exports_mangled
fields of the configuration struct (currently not exposed outside of
OCaml). exports allows specifying a name in C for any Sail identifier
(before name mangling) and exports_mangled allows specifiying a name for
a mangled Sail identifier - this is primarily useful for generic
functions and data structures which have been specialised.
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Currently uses the -c2 option

Now generates a sail_state struct which is passed as a pointer to all
generated functions. This contains all registers, letbindings, and the
exception state. (Letbindings must be included as they can contain
pointers to registers). This should make it possible to use sail models
in a multi-threaded program by creating multiple sail_states, provided a
suitable set of thread-safe memory builtins are provided. Currently the
sail_state cannot be passed to the memory builtins.

For foo.sail, now generate a foo.c, foo.h, and (optionally) a foo_emu.c.
foo_emu.c wraps the generated library into an emulator that behaves the
same as the one we previously generated.

The sail_assert and sail_match_failure builtins are now in a separate
file, as they must exist even when the RTS is not used.

Name mangling can be controlled via the exports and exports_mangled
fields of the configuration struct (currently not exposed outside of
OCaml). exports allows specifying a name in C for any Sail identifier
(before name mangling) and exports_mangled allows specifiying a name for
a mangled Sail identifier - this is primarily useful for generic
functions and data structures which have been specialised.
</pre>
</div>
</content>
</entry>
<entry>
<title>Fix try in exception handler jib bug</title>
<updated>2020-04-27T16:20:46+00:00</updated>
<author>
<name>Brian Campbell</name>
</author>
<published>2020-04-27T16:20:46+00:00</published>
<link rel='alternate' type='text/html' href='https://git.0x7felf.com/sail/commit/?id=ba2e8265c99bc31c9d1eb8829c4b63d7e2ccf3f4'/>
<id>ba2e8265c99bc31c9d1eb8829c4b63d7e2ccf3f4</id>
<content type='text'>
The have_exception flag wasn't being cleared until after the handler,
resulting in false exception reporting.
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
The have_exception flag wasn't being cleared until after the handler,
resulting in false exception reporting.
</pre>
</div>
</content>
</entry>
<entry>
<title>Add more intuitive defaults to interactive toplevel</title>
<updated>2020-04-15T14:57:38+00:00</updated>
<author>
<name>Alasdair</name>
</author>
<published>2020-04-15T14:57:38+00:00</published>
<link rel='alternate' type='text/html' href='https://git.0x7felf.com/sail/commit/?id=b727e02d59c130b6b6d1eb969a0e4fa8cc156e51'/>
<id>b727e02d59c130b6b6d1eb969a0e4fa8cc156e51</id>
<content type='text'>
sail -i now starts an interactive toplevel with a few additional
options set by default:

- It applies the "interpreter" rewrites to any files passed on the command
line.

- It also applies those rewrites after the :l/:load command

- Registers previously started in a disabled state, as the interactive shell
made no default decision as to how to handle undefined (which is the initial
value for all registers). Now -i implies -undefined_gen

- Better help text for :fix_registers

- Nullary interactive actions generate Sail functions that round-trip through pretty
  printing and parsing (bugfix)

The -interact_custom flag has the same behavior as the previous -i flag

This commit also improves the c/ocaml/interpreter test harness so it
cleans up temporary files which could cause issues with stale files
when switching ocaml versions
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
sail -i now starts an interactive toplevel with a few additional
options set by default:

- It applies the "interpreter" rewrites to any files passed on the command
line.

- It also applies those rewrites after the :l/:load command

- Registers previously started in a disabled state, as the interactive shell
made no default decision as to how to handle undefined (which is the initial
value for all registers). Now -i implies -undefined_gen

- Better help text for :fix_registers

- Nullary interactive actions generate Sail functions that round-trip through pretty
  printing and parsing (bugfix)

The -interact_custom flag has the same behavior as the previous -i flag

This commit also improves the c/ocaml/interpreter test harness so it
cleans up temporary files which could cause issues with stale files
when switching ocaml versions
</pre>
</div>
</content>
</entry>
</feed>
