Skip to content

Commit

Permalink
Prepare 0.3.1 release including new flussab-aiger 0.1.0
Browse files Browse the repository at this point in the history
  • Loading branch information
jix committed Nov 15, 2023
1 parent 033aa3d commit 2ee86dc
Show file tree
Hide file tree
Showing 9 changed files with 93 additions and 16 deletions.
9 changes: 9 additions & 0 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
@@ -1,5 +1,14 @@
# Changelog


## flussab 0.3.1 (2023-11-05)

* `flussab-cnf` is at version 0.3.1
* `flussab-aiger` is at version 0.1.0
* Add `advance_with_buf` to `DeferredReader`
* Changed some `#[inline]` and `#[cold]` attributes
* New flussab-aiger crate for AIGER files (binary and ASCII)

## flussab 0.3.0 (2022-03-06)

* Rename `ByteReader`/`ByteWriter` to `DeferredReader`/`DeferredWriter`
Expand Down
1 change: 1 addition & 0 deletions Cargo.toml
Original file line number Diff line number Diff line change
@@ -1,4 +1,5 @@
[workspace]
resolver = "2"
members = ["flussab", "flussab-cnf", "flussab-aiger"]

[profile.release]
Expand Down
1 change: 1 addition & 0 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -8,6 +8,7 @@ The Flussab repository contains the file format parsing related crates listed be

* [`flussab`](flussab) generic parsing utilities.
* [`flussab-cnf`](flussab-cnf) for the DIMACS CNF file format and variants.
* [`flussab-aiger`](flussab-aiger) (*preview release*) for the AIGER file format (binary and ASCII).

## License

Expand Down
16 changes: 9 additions & 7 deletions flussab-aiger/Cargo.toml
Original file line number Diff line number Diff line change
@@ -1,17 +1,19 @@
[package]
name = "flussab-aiger"
version = "0.1.0"
authors = ["Jannis Harder <me@jix.one>"]
edition = "2021"
description = "AIGER file format (binary and ASCII) parser and writer"
repository = "https://github.com/jix/flussab"
license = "0BSD"
readme = "README.md"
keywords = ["aig", "aiger", "and-inverter-graph", "parser", "writer"]
categories = ["parser-implementations", "encoding"]

# See more keys and their definitions at https://doc.rust-lang.org/cargo/reference/manifest.html

[dependencies]
flussab = { version = "0.3.0", path = "../flussab" }
thiserror = "1.0.30"
num-traits = "0.2.14"
thiserror = "1.0.50"
num-traits = "0.2.17"
zwohash = "0.1.2"

[dev-dependencies]
flussab-cnf = { version = "0.3.0", path = "../flussab-cnf" }
tempfile = "3.3.0"
duct = "0.13.6"
20 changes: 20 additions & 0 deletions flussab-aiger/LICENSE
Original file line number Diff line number Diff line change
@@ -0,0 +1,20 @@
Copyrights in this software are retained by their respective authors. See the
version control history for full authorship information.

Except as otherwise noted (below and/or in individual files), this software is
licensed under the following terms ("Zero-Clause BSD"):

Permission to use, copy, modify, and/or distribute this software for any
purpose with or without fee is hereby granted.

THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES
WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF
MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY
SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES
WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN
ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR
IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.

Unless you explicitly state otherwise, any contribution intentionally submitted
for inclusion in this software by you shall be under the terms and conditions
of the above license, without any additional terms or conditions.
43 changes: 43 additions & 0 deletions flussab-aiger/README.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,43 @@
# Flussab AIGER

[![github][github-badge]][github]
[![crates.io][crate-badge]][crate]
[![docs.rs][docs-badge]][docs]

Parsing and writing of the [AIGER file format][aiger] for combinational and
sequential boolean circuits represented as And-Inverter-Graphs (AIGs),
implemented using [`flussab`][flussab]. The goal of this library is to provide
a very efficient streaming parser for the AIGER file format. In addition to a
streaming parser, which allows parsing the AIG directly into application
specific data structures, this library also provides simple data structures to
represent the full contents of an AIGER file together with utility functions
for reading writing that are implemented on top of the streaming API. Finally
since the binary AIGER file format places more restrictions on the numbering of
literals, this library provides functions fo renumbering AIGs to allow
conversion from ASCII AIGER to binary AIGER.

**Note:** This is currently a preview release. It's mostly feature complete,
but it's lacking documentation and I might still restructure the API a bit
while prepareing this for a first proper release.

[aiger]:https://fmv.jku.at/aiger/
[flussab]:https://crates.io/crates/flussab

## License

This software is available under the Zero-Clause BSD license, see
[LICENSE](LICENSE) for full licensing information.

### Contribution

Unless you explicitly state otherwise, any contribution intentionally submitted
for inclusion in this software by you shall be licensed as defined in
[LICENSE](LICENSE).

[github]:https://github.com/jix/flussab
[crate]:https://crates.io/crates/flussab-cnf
[docs]:https://docs.rs/flussab-cnf/*/flussab_cnf

[github-badge]: https://img.shields.io/badge/github-jix/flussab-blueviolet?style=flat-square
[crate-badge]: https://img.shields.io/crates/v/flussab-aiger?style=flat-square
[docs-badge]: https://img.shields.io/badge/docs.rs-flussab_aiger-informational?style=flat-square
9 changes: 5 additions & 4 deletions flussab-aiger/src/token.rs
Original file line number Diff line number Diff line change
Expand Up @@ -389,10 +389,11 @@ pub fn remaining_line_content<'a>(input: &'a mut LineReader) -> Result<&'a str,

#[inline]
pub fn remaining_file_content<'a>(input: &'a mut LineReader) -> Result<&'a str, ParseError> {
while !matches!(
input.reader.request_byte_at_offset(input.reader.buf_len()),
None
) {}
while input
.reader
.request_byte_at_offset(input.reader.buf_len())
.is_some()
{}

let bytes = input.reader.buf();

Expand Down
6 changes: 3 additions & 3 deletions flussab-cnf/Cargo.toml
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
[package]
name = "flussab-cnf"
version = "0.3.0"
version = "0.3.1"
authors = ["Jannis Harder <me@jix.one>"]
edition = "2021"
description = "DIMACS CNF file format parser and writer"
Expand All @@ -12,8 +12,8 @@ categories = ["parser-implementations", "encoding"]

[dependencies]
flussab = { version = "0.3.0", path = "../flussab" }
thiserror = "1.0.30"
num-traits = "0.2.14"
thiserror = "1.0.50"
num-traits = "0.2.17"

[dev-dependencies]
assert_matches = "1.5.0"
4 changes: 2 additions & 2 deletions flussab/Cargo.toml
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
[package]
name = "flussab"
version = "0.3.0"
version = "0.3.1"
authors = ["Jannis Harder <me@jix.one>"]
edition = "2021"
description = "Utilities for writing parsers"
Expand All @@ -12,4 +12,4 @@ categories = ["parsing"]

[dependencies]
itoap = "1.0.1"
num-traits = "0.2.14"
num-traits = "0.2.17"

0 comments on commit 2ee86dc

Please sign in to comment.