Skip to content

Commit

Permalink
Update CHANGES.
Browse files Browse the repository at this point in the history
  • Loading branch information
bbannier committed Jun 14, 2023
1 parent 24f7fad commit 8727fa0
Show file tree
Hide file tree
Showing 4 changed files with 79 additions and 5 deletions.
6 changes: 5 additions & 1 deletion CHANGES
Original file line number Diff line number Diff line change
@@ -1,3 +1,7 @@
1.8.0 | 2023-06-14 08:53:34 +0200

* Release 1.8.0.

1.8.0-dev.176 | 2023-06-14 08:52:14 +0200

* Update Zeek docs for Zeek 6.0. (Robin Sommer, Corelight)
Expand Down Expand Up @@ -247,7 +251,7 @@

* Implement `View::data` with `Bytes::append`. (Benjamin Bannier, Corelight)

* GH-7: Avoid unneeded temporaries when appending `View` to `Bytes`. (Benjamin Bannier, Corelight)
* Avoid unneeded temporaries when appending `View` to `Bytes`. (Benjamin Bannier, Corelight)

We used `View::data` to constructs a new `Bytes` to append from. Since
we cannot reuse the temporary in the append but have to copy the data
Expand Down
74 changes: 72 additions & 2 deletions NEWS.rst
Original file line number Diff line number Diff line change
Expand Up @@ -2,17 +2,87 @@ This following summarizes the most important changes in recent Spicy releases.
For an exhaustive list of all changes, see the :repo:`CHANGES` file coming with
the distribution.

Version 1.8 (in progress)
=========================
Version 1.8
===========

.. rubric:: New Functionality

- Add new ``skip`` keyword to let unit items efficiently skip over uninteresting data.

For cases where your parser just needs to skip over some data, without
needing access to its content, Spicy provides a ``skip`` keyword to
prefix corresponding fields with:

.. spicy-code:: skip.spicy

module Test;

public type Foo = unit {
x: int8;
: skip bytes &size=5;
y: int8;
on %done { print self; }
};

``skip`` works for all kinds of fields but is particularly efficient
with ``bytes`` fields, for which it will generate optimized code
avoiding the overhead of storing any data.

``skip`` fields may have conditions and hooks attached, like
any other fields. However, they do not support ``$$`` in
expressions and hooks.

For readability, a ``skip`` field may be named (e.g., ``padding: skip
bytes &size=3;``), but even with a name, its value cannot be accessed.

``skip`` fields extend support for ``void`` with attributes fields which are now deprecated.

- Add runtime profiling infrastructure.

This add an option ``--enable-profiling`` to the HILTI and Spicy compilers. Use
of the option does two things: (1) it sets a flag enabling inserting
additional profiling instrumentation into generated C++ code, and (2) it
enables using instrumentation for recording profiling information during
execution of the compiled code, including dumping out a profiling report at
the end. The profiling information collected includes time spent in HILTI
functions as well as for parsing Spicy units and unit fields.

.. rubric:: Changed Functionality

- Optimizations for improved runtime performance.

This release contains a number of changes to improve the runtime performance
of generated parsers. This includes tweaks for generating more performant
code for parsers, low-level optimizations of types in to runtime support
library as well as fine-tuning of parser execution at runtime.


- Do not force locale on users of libhilti.
- Avoid expensive checked iterator for internal ``Bytes`` iteration.
- GH-1089: Allow to use ``offset()`` without enabling full random-access support.
- GH-1394: Fix C++ normalization of generated enum values.
- Disallow using ``$$`` with anonymous containers.

.. rubric:: Bug fixes

- GH-1386: Prevent internal error when passed invalid context.
- Fix potential use-after-move bug.
- GH-1390: Initialize ``Bytes`` internal control block for all constructors.
- GH-1396: Fix regex performance regression introduced by constant folding.
- GH-1399: Guard access to unit ``_filters`` member with feature flag.
- GH-1421: Store numerical offset in units instead of iterator for position.
- GH-1436: Make sure ``Bytes::sub`` only throws HILTI exceptions.
- GH-1447: Do not forcibly make ``strong_ref`` ``in`` function parameters immutable.
- GH-1452: Allow resolving of unit parameters before ``self`` is fully resolved.
- Make sure Spicy runtime config is initialized after ``spicy::rt::init``.
- Adjustments for building with GCC-13.

.. rubric:: Documentation

- Document how to check whether an ``optional`` value is set.
- Preserve indention when extracting comments in doc generation.
- Fix docs for long-form of ``-x`` flag to spicyc.

Version 1.7
===========

Expand Down
2 changes: 1 addition & 1 deletion VERSION
Original file line number Diff line number Diff line change
@@ -1 +1 @@
1.8.0-dev.176
1.8.0
2 changes: 1 addition & 1 deletion doc/conf.py
Original file line number Diff line number Diff line change
Expand Up @@ -27,7 +27,7 @@
author = u'Zeek Project'

version = open('../VERSION').readline()
release = "1.7.0" # most recent release version
release = "1.8.0" # most recent release version

# -- General configuration ---------------------------------------------------

Expand Down

0 comments on commit 8727fa0

Please sign in to comment.