* Wed Jan 25 2023 Antoine Belvire <antoine.belvire@opensuse.org>
- Update to 3.0:
* User interface updates
+ A screen pager has been added to the poke application.
+ A tracer has been added to libpoke and the poke application.
+ A new command sdiff (for "structured diff") has been added to the
poke application, that provides a way to generate patchable diffs
of mapped structured Poke values.
+ When no name is passed to the .mem command, an unique name for the
memory IOS with the form *N* will be used automatically, where N
is a positive integer.
+ auto-completion of 'attributes is now available in the poke
application.
+ Constraint errors now contain details on the location (which
field) where the constraint error happens, along with the
particular expression that failed.
+ Inline assembler expressions and statements are now supported.
+ Both =printf= and =format= now support printing values of type
=any=.
+ Both =printf= and =format= now support printing integral values
interpreted as floating-point values encoded in IEEE 754.
+ Pre-conditional optional fields are added to complement the
currently supported post-conditional optional fields.
+ A new option =.set autoremap no= can be used in order to tell poke
to not remap mapped values automatically.
+ The :to argument to the =extract= command is now optional, and
defaults to the empty string.
+ ${XDG_CONFIG_HOME:-$HOME/.config} is now preferred to
XDG_CONFIG_DIRS.
* Poke Language updates
+ Array and struct constructors are now primaries in the Poke
syntax.
+ Bit-concatenation is now supported in l-values.
+ Arrays can now be indented by size, by specifying an offset as an
index.
+ Union types can now be declared as "integral".
+ Support for "computed fields" has been added to struct and union
types.
+ This version introduces three new Poke attributes that work on
values of type =any=.
+ Two new operators have been introduced to facilitate operating
Poke array as stacks in an efficient way: apush and apop.
+ Poke programs can now hook in the IO subsystem by installing
functions that will be invoked when certain operations on IO
spaces are being performed.
+ The 'length attribute is now valid in values of type =any=.
+ Poke declarations can now be annotated as =immutable=.
+ A new compiler built-in =iolist= has been introduced, that returns
an array with the IO space identifiers of currently open IOS.
+ We have changed the logic of the EXCOND operator ?!. It now
evaluates to 1 (true) if the execution of the first operand raises
the specified exception, and to 0 (false) otherwise.
+ The containing struct or union value can now be refered as SELF in
the body of methods. SELF is of type =any=.
+ Integer literal suffixes (B, H, U, etc) are case-insensitive.
+ Casting to union types now raise a compile-time error.
+ If no explicit message is specified in calls to =assert=, a
default one showing the source code of the failing condition is
constructed and used instead.
+ An operator =remap= has been used in order to force a re-map of
some mapped Poke value.
+ Signed integral types of one bit are not allowed.
+ The built-in function get_time has been renamed to gettime, to
follow the usual naming of the corresponding standard C function.
* Standard Poke Library updates
+ New standard functions.
+ libpoke updates
- New API function pk_struct_ref_set_field_value.
- New API function pk_type_name.
* Pickles updates
+ New pickles.
+ The ELF pickle now provides functions implementing ELF hashing.
* Build system updates
+ It is now supported to configure the poke sources with
- -disable-hserver.
* Documentation updates
+ Documentation for the =format= language construction has been
added to the poke manual.
* Other updates
+ A new program poked, for "poke daemon", has been contributed to
the poke distribution. poked links with libpoke and uses Unix
sockets to act as a broker to communicate with an instance of a
Poke incremental compiler.
+ The machine-interface subsystem has been removed from poke, in
favor of the poked approach.
+ The example GUI that was intended to be a test tool for the
machine interface has been removed from the poke distribution.
+ Many bugs have been fixed.
- Remove jitter-0.9.284-noexec-stack-arm-i586.patch: Fixed upstream.
- Drop json-c dependency: Machine-interface has been removed.
* Wed Sep 07 2022 Antoine Belvire <antoine.belvire@opensuse.org>
- Update to 2.4:
* Lot of changes since 1.4, see packaged NEWS for details.
- Add jitter-0.9.284-noexec-stack-arm-i586.patch: Make sure the stack
is defined as non-executable in jitter on arm and i586.
- Trim not strictly needed build requirements.
- Recommend a handler for opening app:// hyperlinks.
- Move Emacs support from poke to emacs-poke.
- Package new vim support in vim-poke.
- Enable tests.
* Thu Aug 11 2022 Dirk Müller <dmueller@suse.com>
- remove unused lua53 buildrequires
* Fri Dec 03 2021 Andreas Stieger <andreas.stieger@gmx.de>
- update to 1.4
* Operating with arrays now much faster
* Some of the compiler diagnostics have been made more readable
and helpful
* Limitations in the values of the odepth, oindent and oacutoff
have been removed
- includes changes from 1.3:
* The `dump' command now remembers and re-uses the last used
offset per IO space
* The text accompanying constraint violation exceptions now
indicate the type and the field whose constraint failed.
- update licence to GPL-3.0-or-later
- add upstream signing key and validate source signature
* Thu May 13 2021 Wang Jun <jgwang@suse.com>
- Update to version 1.2
* User visible changes
- The .file dot-command now supports a /c flag for creating new,
empty files.
- A new compiler built-in `ioflags' is available, that returns
the flags of some given IO space.
- Certain operations now raise a E_perm exception, instead of the
more generic E_io.
- A new kind of IO device is now supported: the `zero' IOD.
Opening "<zero>" will result in an IO space covering the full
64-bit byte range, that always returns zero on reads and that
ignores writes.
- Function values (closures) can now be compared at language-level.
They are compared by pointer.
- The compiler now rejects casts from `any' to function types
instead of ICEing.
- The `dump' command now doesn't try to print anything if the
current IOS is not readable.
- The `dump' command now prints ?? for "unknown" bytes, i.e. for bytes
in addresses that are not readable in the underlying IO space.
- The standard function `ltos' now gets an additional optional
argument `base', that defaults to 10.
- The `big' and `little' annotations can now be used in any struct
type field, regardless of its type.
* Bug fixes
- A very nasty performance bottleneck in pvm_array_insert has been
fixed.
- Fix the opening mode of write-only files when the user doesn't
specify explicit flags in `open'.
- Avoid spurious EOF exceptions when writing weird integers past
the end of an IOS.
- Fix method `value' in leb128.pk
- Fix ICE while compiling for-statements with several declarations.
- Properly print > 2^32 addresses in `dump'
- Other minor fixes.
* Other changes
- The JSON MI machinery has been rewriten and much improved.
- More tests in several areas.
* Tue Mar 23 2021 Anton Smorodskyi <asmorodskyi@suse.com>
- Update to version 1.1
* User visible changes
- The IOS_F_TRUNCATE `open' flag has been removed.
- Constraint expressions and initializers can be now
used together in struct fields.
* Bug fixes
- The infamous bug preventing poke work on 32-bit systems is now
fixed.
- Better handling of open modes in the file IOD.
- Improve some translatable strings.
- poke won't raise an exception when starting if HOME
is not defined in the environment.
- The compiler now emits an error if it sees un-map-able
fields in a struct type.
- Properly handle the absence of current IOS in the map command.
- Install Emacs modes.
- Portability fixes for:
+ Mac OS X 10.5.
+ GNU/Hurd.
+ Solaris 11 OpenIndiana.
+ AIX.
+ mingw.
* Manual
- Relicensed to GPLv3+.
- Expand section on struct methods.
- New section on data padding and alignment.
- Document the Emacs modes provided by poke.
- Provide a recommended pokerc configuration for beginners.
- Other minor fixes based on user feedback.
-
* Fri Feb 26 2021 Matthias Mailänder <mailaender@opensuse.org>
- Update to version 1.0
- Disable the static library
* Wed Jan 22 2020 Dan Čermák <dcermak@suse.com>
- Initial package version