2023-04-17  Jose E. Marchesi  <jemarch@gnu.org>

	* NEWS: Add entries for 3.1.
	* doc/gendocs_template (For version 3.1): Bump version to 3.1.
	* libpoke/Makefile.am (pvm-vm.h): Remove dependency on $(JITTER).

2023-03-05  Jose E. Marchesi  <jemarch@gnu.org>

	* libpoke/pkl-gen.c (pkl_gen_pr_cast): Fix memory leak.

2023-03-04  Jose E. Marchesi  <jemarch@gnu.org>

	* libpoke/pkl-gen.c (pkl_gen_ps_type_any): Construct a value 0 for
	values of type `any'.
	* testsuite/poke.pkl/scons-71.pk: New test.
	* testsuite/Makefile.am (EXTRA_DIST): Add new test.

2023-03-04  Jose E. Marchesi  <jemarch@gnu.org>

	* libpoke/pkl-fold.c (OP_BINARY_OIO): Support units 0.
	* testsuite/poke.pkl/mul-offsets-11.pk: New test.
	* testsuite/Makefile.am (EXTRA_DIST): Add new test.

2023-02-27  Frederic Cambus <fred@statdns.com>

	* INSTALL: Remove section about building the GUI.

2023-02-20  Jose E. Marchesi  <jemarch@gnu.org>

	* libpoke/pvm.jitter: Use pvm_strcat instead of strcat.

2023-02-19  Bruno Haible  <bruno@clisp.org>

	build: Regenerate pvm-vm.h, pvm-vm1.c, pvm-vm2.c when jitter has changed.
	* libpoke/Makefile.am (generate-vm-files): When cross-compiling, don't
	fail, just emit a warning.
	(pvm-vm.h): Depend also on $(JITTER).

2023-02-19  Bruno Haible  <bruno@clisp.org>

	Allow accessing the installed files in a Cygwin-based mingw environment.
	* bootstrap.conf (gnulib_modules, libpoke_modules): Add configmake.
	* libpoke/Makefile.am (libpoke_la_CPPFLAGS): Don't define PKGDATADIR.
	* libpoke/libpoke.c: Instead, include configmake.h.
	* libpoke/pkl.c: Likewise.
	* poke/Makefile.am (poke_CPPFLAGS): Don't define PKGDATADIR.
	* poke/pk-map.c: Instead, include configmake.h.
	* poke/pk-term.c: Likewise.
	* poke/poke.c: Likewise.
	* poked/Makefile.am (poked_CPPFLAGS): Remove useless -I options. Don't
	define PKGDATADIR. Add -I options to find the common gl/ directories.
	* poked/poked.c: Include configmake.h.
	* testsuite/poke.libpoke/Makefile.am (COMMON_CPPFLAGS): Don't define
	PKGDATADIR.

2023-02-18  Mohammad-Reza Nabipoor  <mnabipoor@gnu.org>

	* libpoke/pkl-asm.c (pkl_asm_insn_atoa): Do not use `PVM_NULL' as
	the bounder in the type of array.  Use a closure that returns
	`PVM_NULL'.
	* testsuite/poke.pkl/cast-array-8.pk: New test.
	* testsuite/Makefile.am (EXTRA_DIST): Update.

2023-02-15  Hannes Domani  <ssbssa@yahoo.de>

	* poke/pk-map-lex.l: Rename ERROR to ERR.
	* poke/pk-map-tab.y: Likewise.

2023-02-14  Jose E. Marchesi  <jemarch@gnu.org>

	* libpoke/pkl-parser.h (struct pkl_parser): New field `toplevel'.
	* libpoke/pkl-parser.c (pkl_parse_buffer): Set a longjmp return
	point for out-of-memory and other recoverable error conditions.
	(pkl_parse_file): Likewise.
	* libpoke/pkl-lex.l (YY_FATAL_ERROR): Longjump to parser->toplevel
	instead of aborting.

2023-02-14  Jose E. Marchesi  <jemarch@gnu.org>

	* libpoke/pkl-asm.pks (ais): Rewrite.
	(eqa): Do not revert argument arrays.
	* testsuite/poke.pkl/in-10.pk: New test.
	* testsuite/poke.pkl/in-11.pk: Likewise.
	* testsuite/Makefile.am (EXTRA_DIST): Add new tests.

2023-02-12  Jose E. Marchesi  <jemarch@gnu.org>

	* common/pk-utils.h: Include assert.h.
	* libpoke/libpoke.c: Do not include assert.h.
	* poke/pk-cmd.c: Likewise.
	* poke/pk-ios.c: Likewise.

2023-02-06  Mohammad-Reza Nabipoor  <mnabipoor@gnu.org>

	* pickles/search.pk (search_type): Fix `mapper' invocation.
	* testsuite/poke.pickles/search-test.pk: New test.
	* testsuite/Makefile.am (EXTRA_DIST): Add new test.

2023-02-06  Jose E. Marchesi  <jemarch@gnu.org>

	* libpoke/pvm-alloc.c (pvm_alloc_initialize): Do not initialize
	the boehm GC if it has been already initialized.

2023-02-06  Jose E. Marchesi  <jemarch@gnu.org>

	* doc/poke.texi: Update examples to new semantics of FNAME ==
	EXPR.

2023-02-04  Jose E. Marchesi  <jemarch@gnu.org>

	* libpoke/pkl.c (pkl_constant_fold): Get an ast argument and avoid
	duplicating ast node uids.
	* libpoke/pkl-gen.pks (aoref): Update call accordingly.

2023-02-04  Jose E. Marchesi  <jemarch@gnu.org>

	* libpoke/pkl-ast.c: Add note to pkl_ast_sizeof_type comment.
	* libpoke/pkl.h: Prototype for pkl_constant_fold.
	* libpoke/pkl.c (pkl_constant_fold): New function.
	* testsuite/poke.pkl/arrays-index-17.pk: New test.
	* testsuite/Makefile.am (EXTRA_DIST): Add new test.

2023-02-04  Jose E. Marchesi  <jemarch@gnu.org>

	* libpoke/pkl-gen.c (pkl_gen_pr_asm_stmt): Emit error whenever
	necessary.
	(pkl_gen_pr_asm_exp): Likewise.

	* libpoke/pvm-program.c (pvm_program_parse_from_string): Return an
	error status in the form of an error message.
	* libpoke/pkl-asm.c (pkl_asm_from_string): Likewise.

2023-02-03  Jose E. Marchesi  <jemarch@gnu.org>

	* libpoke/pkl-tab.y (declaration): improve error message.

2023-02-03  Mohammad-Reza Nabipoor  <mnabipoor@gnu.org>

	* libpoke/ios-dev-stream.c: Include `<assert.h>'.
	(ios_dev_stream_flush): Call `fflush' when user calls `flush'
	on output streams.

2023-02-01  Mohammad-Reza Nabipoor  <mnabipoor@gnu.org>

	* poked/poked.c: Include `<unistd.h>' for `getuid'.
	(poked_options): Remove const-qualifier from `socket_path'.
	(poked_options_init): Change the default socket path to have
	UID in the path.
	(main): Adapt.

2023-01-31  Mohammad-Reza Nabipoor  <mnabipoor@gnu.org>

	* poked/usock.c: Include `<sys/stat.h>' for `umask'.
	(usock_new): use `umask' to create the unix
	socket with the right permissions.

2023-01-31  Mohammad-Reza Nabipoor  <mnabipoor@gnu.org>

	* poked/usock.c (usock_new): use `pipe2' instead of `pipe'.
	do a F_GETFL before F_SETFL to keep the current flags.

2023-01-31  Jose E. Marchesi  <jose.marchesi@oracle.com>

	* poked/poked.c (poked_options_init): Fix getopt_long to recognize
	-S.

2023-02-12  Arsen Arsenović  <arsen@aarsen.me>

	Fix -Wreturn-type warnings on -DNDEBUG
	* common/pk-utils.h (PK_UNREACHABLE): New macro.  Diagnoses
	reaching unreachable code and aborts.
	* libpoke/ios.c: Use PK_UNREACHABLE.
	* libpoke/libpoke.c: Ditto.
	* libpoke/pkl-anal.c: Ditto.
	* libpoke/pkl-asm.c: Ditto.
	* libpoke/pkl-ast.c: Ditto.
	* libpoke/pkl-diag.c: Ditto.
	* libpoke/pkl-env.c: Ditto.
	* libpoke/pkl-fold.c: Ditto.
	* libpoke/pkl-gen.c: Ditto.
	* libpoke/pkl-lex.l: Ditto.
	* libpoke/pkl-parser.c: Ditto.
	* libpoke/pkl-pass.c: Ditto.
	* libpoke/pkl-promo.c: Ditto.
	* libpoke/pkl-tab.y: Ditto.
	* libpoke/pkl-trans.c: Ditto.
	* libpoke/pkl-typify.c: Ditto.
	* libpoke/pkl.c: Ditto.
	* libpoke/pvm-val.c: Ditto.
	* poke/pk-cmd-help.c: Ditto.
	* poke/pk-cmd-set.c: Ditto.
	* poke/pk-cmd-vm.c: Ditto.
	* poke/pk-cmd.c: Ditto.
	* poke/pk-ios.c: Ditto.
	* poke/pk-map-tab.y: Ditto.
	* poke/poke.c: Ditto.

2023-01-31  Jose E. Marchesi  <jemarch@gnu.org>

	* libpoke/std.pk (Pk_Version): Add control fields.
	(Pk_Version.to_string): New method.
	(Pk_Version._print): Likewise.
	* doc/poke.texi (Version Tools): Reflect new contents of
	Pk_Version.
	* testsuite/poke.std/std-test.pk: Add tests for
	Pk_Version.to_string.

2023-01-31  Arsen Arsenović  <arsen@aarsen.me>

	* libpoke/std.pk (raise_exception): New function, takes an
	exception and augments it with more context, to create a new
	exception.  Intended as a helper for errors during parsing.
	(pk_parse_version): Use new raise_exception facility.
	* doc/poke.texi (strtok): Document raise_exception.

2023-01-31  Arsen Arsenović  <arsen@aarsen.me>

	pk_vercmp: Allow passing and automatically parsing strings
	* libpoke/std.pk (pk_vercmp): Allow passing strings.
	* doc/poke.texi (Version Tools): Document the new flexibility of
	pk_vercmp.

2023-01-31  Arsen Arsenović  <arsen@aarsen.me>

	pk_parse_version: Provide more context on parse failure
	* libpoke/std.pk (raise_exception): New function, takes an
	exception and augments it with more context, to create a new
	exception.  Intended as a helper for errors during parsing.
	(pk_parse_version): Use new raise_exception facility.
	* doc/poke.texi (strtok): Document raise_exception.

>>>>>>>
2023-01-30  Arsen Arsenović  <arsen@aarsen.me>

	poke.texi: Remedy syntax-check fails
	* doc/poke.texi (strtoi): Remove ``lets''.
	(strtok): Italicize usages of ``i.e.''.

2023-01-29  Arsen Arsenović  <arsen@aarsen.me>

	std.pk: Implement pk_version_parse, pk_vercmp
	* doc/poke.texi (Other Functions): New node and section.
	Documents miscellaneous functions.
	(Concept Index): Merge the variable index into the concept index.
	(Version Tools): New node.  Documents pk_version,
	pk_version_parse, Pk_Version, pk_vercmp and the version string
	format.
	* libpoke/std.pk (pk_vercmp): New function.  Compares a pair of
	Pk_Version structs.
	(pk_version_parse): New function.  Parses a version string into a
	new Pk_Version struct.
	* testsuite/poke.std/std-test.pk: Add pk_version_parse, pk_vercmp
	tests.
	* autoconf/poke.m4 (PK_PROG_POKE): Update to use pk_vercmp.

2023-01-29  Arsen Arsenović  <arsen@aarsen.me>

	std.pk: Implement strtok
	* doc/poke.texi (strtok): Document the strtok API.
	(String Functions): Add strtok to menu.
	(Concept Index): Merge fn -> cp, as there's not enough use of the
	function index to justify separate section currently.
	* libpoke/std.pk (String_Tokenizer): New type.  Holds the persistent
	state of the strtok-like operation.
	(strtok): New function.  Returns a new String_Tokenizer.
	(String_Tokenizer): New type.  Holds tokenization state.
	* testsuite/poke.std/std-test.pk: Add strtok test.

2023-01-29  Arsen Arsenović  <arsen@aarsen.me>

	std.pk: Refactor atoi into strtoi
	* libpoke/std.pk (Strtoi_Result): New type.  Stores the result of
	a strtoi call.
	(strtoi): New function.  Parses a numeric prefix on a string and
	returns the result and the number of parsed characters.
	(atoi): Refactor to wrap strtoi.
	* doc/poke.texi (strtoi): New node.
	(atoi): Refer to strtoi for a list of bases.
	* testsuite/poke.std/std-test.pk: Add tests for strtoi
	offset-returning semantics.

2023-01-28  Arsen Arsenović  <arsen@aarsen.me>

	std.pk: Implement strrchr
	* libpoke/std.pk (strrchr): New function.  Finds the last
	occurrence of a character in a string and returns its index, or
	-1.
	* doc/poke.texi (strrchr): Document new standard library function.
	(String Functions): Add strrchr to menu, disambiguate menu entries
	of strchr and strrchr.
	* testsuite/poke.std/std-test.pk: Add strrchr test.

2023-01-28  Mohammad-Reza Nabipoor  <mnabipoor@gnu.org>

	* libpoke/std.pk (isdigit): New function.
	(isxdigit): Likewise.
	* testsuite/poke.std/std-test.pk (tests): Add tests for `isdigit'
	and `isxdigit'.
	* doc/poke.texi (The Standard Library): Add doc.

2023-01-28  Jose E. Marchesi  <jemarch@gnu.org>

	* configure.ac: Use tar-ustar option in Automake.

2023-01-28  Jose E. Marchesi  <jemarch@gnu.org>

	* autoconf/poke.m4 (PK_PROG_POKE): Simplify regexp.

2023-01-28  Jose E. Marchesi  <jemarch@gnu.org>

	* libpoke/pkl-config.pk.in: Make pk_version immutable.

2023-01-27  Arsen Arsenović  <arsen@aarsen.me>

	* run.in (setup to run uninstalled poke): Replace fragile export
	listings with set -a/set +a block.

2023-01-27  Jose E. Marchesi  <jemarch@gnu.org>

	* autoconf/poke.m4: New file.
	* autoconf/Makefile.am: Likewise.
	* libpoke/pkl-config.pk.in: Likewise.
	* run.in (POKECONFIGDIR): Define POKECONFIGDIR.
	* testsuite/Makefile.am (check-DEJAGNU): Likewise.
	* libpoke/pkl.c (pkl_new): Load pkl-config.pk as part of the
	compiler bootstrapping.
	* Makefile.am (SUBDIRS): Add autoconf.
	* configure.ac (AC_CONFIG_FILES): Add autoconf/Makefile.
	Add pkl-config.pk.
	Turn / into _ in poke_branch.
	* libpoke/Makefile.am (dist_pkgdata_DATA): Add pkl-config.pk.

2023-01-27  Arsen Arsenović  <arsen@aarsen.me>

	* configure.ac (poke_branch): Fix grep -q portability issue.
	* .x-sc_two_space_separator_in_usage: New file.  Exclude
	configure.ac.

2023-01-30  Jose E. Marchesi  <jemarch@gnu.org>

	* poke/pk-info.pk (pk_info_type): Do not print a header for
	Computed Fields if there are no computed fields.

2023-01-27  Arsen Arsenović  <arsen@aarsen.me>

	* configure.ac: Add git-version-gen reminder.

2023-01-27  Jose E. Marchesi  <jemarch@gnu.org>

	* libpoke/pkl-typify.c (pkl_typify1_ps_decl): Do not validate
	signature of _print* functions, as opposed to methods.
	* testsuite/poke.pkl/struct-types-defun-4.pk: New test.
	* testsuite/poke.pkl/struct-pretty-print-diag-1.pk: Likewise.
	* testsuite/poke.pkl/struct-pretty-print-diag-2.pk: Likewise.

2023-01-26  Jose E. Marchesi  <jemarch@gnu.org>

	* doc/poke.texi: get_time is now gettime.

2023-01-26  Jose E. Marchesi  <jemarch@gnu.org>

	* libpoke/pkl-lex.l (pkl_lex_get_base): Handle 0[Bb] literals
	properly.
	* testsuite/poke.pkl/integers-11.pk: New test.
	* testsuite/poke.pkl/integers-12.pk: Likewise.
	* testsuite/Makefile.am (EXTRA_DIST): Add new tests.

2023-01-25  Jose E. Marchesi  <jemarch@gnu.org>

	* configure.ac: Bump version number to 3.0.
	* NEWS: Likewise.

2023-01-24  Jose E. Marchesi  <jemarch@gnu.org>

	* configure.ac: Bump version number to 2.90.1.
	* NEWS: Likewise.

2023-01-24  Jose E. Marchesi  <jose.marchesi@oracle.com>

	* libpoke/Makefile.am (uninstall-sources): New rule.
	(uninstall-local): Likewise.
	(install-data-local): Likewise.

2023-01-24  Mohammad-Reza Nabipoor  <mnabipoor@gnu.org>

	* poked/usock.c (usock_new): Don't blindly set FD_CLOEXEC; first
	get the flags, enable the FD_CLOEXEC flag and set new the flag.

2023-01-24  Mohammad-Reza Nabipoor  <mnabipoor@gnu.org>

	* libpoke/pkl-rt.pk (get_time): Renamed to `gettime'.
	* pickles/time.pk (gettimeofday): s/get_time/gettime/.
	* testsuite/poke.pkl/get-time-1.pk: Removed.
	* testsuite/poke.pkl/gettime-1.pk: Added.
	* testsuite/Makefile.am (EXTRA_DIST): Update.

2023-01-24  Mohammad-Reza Nabipoor  <mnabipoor@gnu.org>

	* testsuite/poke.pkl/apop-diag-2.pk: Fixed.
	* testsuite/poke.pkl/apop-diag-3.pk: Likewise.
	* testsuite/poke.pkl/apush-diag-4.pk: Likewise.
	* testsuite/poke.pkl/apush-diag-5.pk: Likewise.

2023-01-23  Mohammad-Reza Nabipoor  <mnabipoor@gnu.org>

	* libpoke/pkl-anal.c (pkl_anal2_ps_op_apush_apop): New phase for
	compile-time check of `apush' and `apop' operations on arrays;
	emit compile-time error unless the array is unbounded.
	(pkl_phase_anal2): Add new phases for `PKL_AST_OP_A{PUSH,POP}'.
	* testsuite/poke.pkl/apush-diag-4.pk: New test.
	* testsuite/poke.pkl/apush-diag-5.pk: Likewise.
	* testsuite/poke.pkl/apop-diag-2.pk: Likewise.
	* testsuite/poke.pkl/apop-diag-3.pk: Likewise.
	* testsuite/poke.pkl/apop-1.pk: Adapt.
	* testsuite/poke.pkl/apush-1.pk: Likewise.
	* testsuite/poke.pkl/apush-2.pk: Likewise.
	* testsuite/Makefile.am (EXTRA_DIST): Add new tests.

2023-01-23  Mohammad-Reza Nabipoor  <mnabipoor@gnu.org>

	* libpoke/pvm.jitter (time): Change the instruction to push
	SEC and NSEC to the stack (instead of creating an array and
	pushing the array to the stack).
	* libpoke/pkl-rt.pk (get_time): Adapt.
	* testsuite/poke.pkl/get-time-1.pk: New test.
	* testsuite/Makefile.am (EXTRA_DIST): Add new test.

2023-01-23  Mohammad-Reza Nabipoor  <mnabipoor@gnu.org>

	* libpoke/pkl-typify.c (pkl_typify1_ps_type_integral): Reject
	`int<1>' as invalid type.
	* testsuite/poke.cmd/sdiff-10.pk: s/int<1>/uint<1>/.
	* testsuite/poke.map/maps-int-structs-6.pk: Likewise.
	* testsuite/poke.map/maps-int-structs-11.pk: Likewise.
	* testsuite/poke.pkl/cast-integers-12.pk: Likewise.
	* testsuite/poke.pkl/eq-integers-5.pk: Likewise.
	* testsuite/poke.pkl/eq-offsets-8.pk: Likewise.
	* testsuite/poke.pkl/mod-offsets-3.pk: Likewise.
	* testsuite/poke.pkl/mod-offsets-4.pk: Likewise.
	* testsuite/poke.pkl/int-type.pk: Remove `int<1>'.
	* testsuite/poke.pkl/int-type-diag-4.pk: New test.
	* testsuite/Makefile.am (EXTRA_DIST): Add new test.

2023-01-23  Mohammad-Reza Nabipoor  <mnabipoor@gnu.org>

	* poked/poked.c (poked_version): Don't use year range.

2023-01-24  Arsen Arsenović  <arsen@aarsen.me>

	Integrate git-version-gen.
	* etc/hacking.org (Building Release Tarballs): Add some notes
	about how to get correct versioning information.
	* configure.ac: Invoke git-version-gen to compute version value.
	* bootstrap.conf (gnulib_modules): Add git-version-gen.
	* Makefile.am (EXTRA_DIST): Add ``.version''.
	(BUILT_SOURCES): Ditto.
	($(top_srcdir)/.version): store current $(VERSION) value.
	(dist-hook): Store version as .tarball-version.
	* .gitignore: Ignore .version
	* HACKING: Regenerate.

2023-01-23  Jose E. Marchesi  <jemarch@gnu.org>

	* libpoke/pvm.jitter (PVM_BINOP_SL): Do not trigger left-shit UB.

2023-01-23  Jose E. Marchesi  <jemarch@gnu.org>

	* libpoke/pkl-fold.c (pkl_phase_fold): Remove duplicated handler
	entry.
	* libpoke/pkl-trans.c (pkl_phase_trans1): Likewise.

2023-01-23  Jose E. Marchesi  <jemarch@gnu.org>

	* libpoke/ios.c (ios_read_int): Avoid UB in signed left shifts,
	and overflows in unsigned left shifts.
	* libpoke/pvm-val.h (PVM_VAL_INT): Likewise.
	(PVM_MAKE_INT): Likewise.
	(PVM_MAKE_UINT): Likewise.
	(PVM_VAL_LONG): Likewise.
	* libpoke/pvm.jitter (PVM_ADD_SIGNED): Likewise.
	(PVM_SUB_SIGNED): Likewise.
	(PVM_MUL_SIGNED): Likewise.

2023-01-23  Arsen Arsenović  <arsen@aarsen.me>

	* libpoke/pvm.jitter (sleep): Push an error code rather than
	raising an exception.  Do a range check on the passed seconds and
	nanoseconds value, to reconcile differences between platforms.
	* libpoke/pkl-rt.pk (sleep): Translate error codes pushed by the
	sleep instruction into exceptions.

2023-01-23  Arsen Arsenović  <arsen@aarsen.me>

	* doc/poke.texi (Exceptions): Fix typo in the E_no_return
	description (end of a void function -> end of a non-void
	function).

2023-01-23  Jose E. Marchesi  <jemarch@gnu.org>

	* libpoke/pkl-rt.pk (iolist): Use array indexing instead of
	`apush'.

2023-01-23  Jose E. Marchesi  <jemarch@gnu.org>

	* testsuite/poke.pkl/typeof-struct-2.pk: Likewise.

	* testsuite/poke.pkl/typeof-struct-1.pk: Update test.

	* libpoke/pkl-gen.pks (typeof): Initialize integral_p.

2023-01-22  Jose E. Marchesi  <jemarch@gnu.org>

	* poke/poke.c (pk_print_version): Bump copyright year to 2023 and
	do not use a year range.

2023-01-22  Jose E. Marchesi  <jemarch@gnu.org>

	* libpoke/pkl-gen.pks (typifier_mapper_wrapper): New function.
	(array_typifier): Use typifier_mapper_wrapper.
	(struct_typifier): Likewise.
	* libpoke/pkl-rt.pk (Pk_type): Do not expose ebound and sbound in
	the mapper closure.
	* doc/poke.texi (typeof): Update accordingly.
	* testsuite/poke.pkl/typeof-27.pk: New test.
	* testsuite/Makefile.am (EXTRA_DIST): Add new test.

2023-01-22  Jose E. Marchesi  <jemarch@gnu.org>

	* doc/poke.texi (typeof): New section.

2023-01-22  Jose E. Marchesi  <jemarch@gnu.org>

	* libpoke/pkl-ast.h: Prototype for pkl_asm_struct_type_method_p.
	Prototype for pkl_asm_get_struct_type_field.
	* libpoke/pkl-ast.c (pkl_asm_get_struct_type_method): New
	function.
	(pkl_asm_get_struct_type_field): Likewise.
	* libpoke/pkl-anal.c (pkl_anal2_ps_struct_ref): New handler.
	(pkl_anal2_ps_ass_stmt): Likewise.
	(pkl_phase_anal2): Register handlers.
	* libpoke/pkl-typify.c (pkl_typify1_ps_type_struct): Do no force
	to define getter and setter methods for computer fields.
	* libpoke/pkl-gen.c (pkl_gen_ps_struct_ref): Raise an exception
	when referring to a computed field with no getter.
	(pkl_gen_pr_ass_stmt): Likewise for the setter.
	* testsuite/poke.pkl/sref-diag-3.pk: New test.
	* testsuite/poke.pkl/computed-19.pk: Likewise.
	* testsuite/poke.pkl/computed-diag-5.pk: Remove.
	* testsuite/poke.pkl/computed-diag-6.pk: Likewise.
	* testsuite/poke.pkl/computed-diag-7.pk: Likewise.
	* testsuite/poke.pkl/ass-diag-10.pk: Likewise.

2023-01-22  Jose E. Marchesi  <jemarch@gnu.org>

	* testsuite/poke.pkl/acons-20.pk: New test.
	* testsuite/poke.pkl/acons-21.pk: Likewise.
	* testsuite/poke.pkl/acons-22.pk: Likewise.
	* testsuite/Makefile.am (EXTRA_DIST): Add new tests.

2023-01-22  Jose E. Marchesi  <jemarch@termi>

	* libpoke/pkl-gen.pks (array_constructor): Support element types
	of size 0 with sbound > 0.
	* testsuite/poke.pkl/acons-15.pk: New test.
	* testsuite/poke.pkl/acons-16.pk: Likewise.
	* testsuite/poke.pkl/acons-17.pk: Likewise.
	* testsuite/poke.pkl/acons-18.pk: Likewise.
	* testsuite/poke.pkl/acons-19.pk: Likewise.
	* testsuite/Makefile.am (EXTRA_DIST): Add new tests.

2023-01-22  Jose E. Marchesi  <jemarch@gnu.org>

	* libpoke/pkl-gen.pks (array_constructor): Get an argument with
	the initial value to put in constructed arrays.
	* libpoke/pkl-gen.c (pkl_gen_pr_type_array): Pass initial value
	to the constructor.
	(pkl_gen_ps_cons): Likewise.

2023-01-22  Jose E. Marchesi  <jemarch@gnu.org>

	* libpoke/pkl-anal.c (pkl_anal1_ps_cons): Constructing non-empty
	arrays of `any' without initial values is not supported.
	* testsuite/poke.pkl/acons-diag-9.pk: New test.
	* testsuite/poke.pkl/acons-diag-10.pk: Likewise.
	* testsuite/poke.pkl/acons-13.pk: Likewise.
	* testsuite/poke.pkl/acons-14.pk: Likewise.
	* testsuite/Makefile.am (EXTRA_DIST): Add new tests.

2023-01-22  Mohammad-Reza Nabipoor  <mnabipoor@gnu.org>

	* poke/pk-cmd.c (pk_cmd_exec): Add support for `immutable'.

2023-01-21  Jose E. Marchesi  <jemarch@gnu.org>

	* configure.ac: Change version to 2.90.0.
	* NEWS: Add entries for 2.90.0.

2023-01-21  Mohammad-Reza Nabipoor  <mnabipoor@gnu.org>

	* libpoke/pvm-val.c (pvm_sizeof): Add case for `PVM_NULL'.
	* libpoke/pvm.jitter (siz): Add a comment describing special
	cases.

2023-01-20  Jose E. Marchesi  <jemarch@gnu.org>

	* configure.ac: Report missing gensub-capable awk at configure
	time.

2023-01-19  Mohammad-Reza Nabipoor  <mnabipoor@gnu.org>

	* man/Makefile.am (man_MANS): Add poked.
	(poked.1): New rule to generate man page for poked.

2023-01-19  Mohammad-Reza Nabipoor  <mnabipoor@gnu.org>

	* pickles/pdap.pk: New pickle for "PokeD Application Protocol".
	* testsuite/poke.pickles/pdap-test.pk: New test.
	* testsuite/Makefile.am (EXTRA_DIST): Update.

2023-01-19  Mohammad-Reza Nabipoor  <mnabipoor@gnu.org>

	* doc/poke.texi (poked): Add new chapter.

2023-01-19  Arsen Arsenović  <arsen@aarsen.me>

	* poke/pk-repl.c (space_substitute_display_matches): Force
	redisplay after displaying match list, to match GNU Readline
	behavior.

2023-01-18  Mohammad-Reza Nabipoor  <mnabipoor@gnu.org>

	* poked/poked.c (VUCMD_*): Re-enumerate the view (vu) commands.
	* poked/poked.pk (plet_vu): Simplify the dump format. We can
	make it more flexible again later.
	(plet_vu_highlight): Simplify array allocation.

2023-01-18  Jose E. Marchesi  <jemarch@gnu.org>

	* cfg.mk (sc_pvm_wrappers): Remove empty lines.

2023-01-18  Jose E. Marchesi  <jemarch@gnu.org>

	* etc/pvm-wraps-whitelist: Add rpl_printf, __stpcpy_chk, memcpy,
	rpl_memcpy and __strcpy_chk.

2023-01-18  Jose E. Marchesi  <jemarch@gnu.org>

	* libpoke/Makefile.am (libpoke_la_SOURCES): Add pvm-wrappers.c and
	pvm-wrappers.h.
	* libpoke/pvm-wrappers.c: New file.
	* libpoke/pvm-wrappers.h: Likewise.
	* libpoke/pvm.jitter: Move pvm_* wrappers to pvm-wrappers.c.
	* etc/pvm-wraps-whitelist: Remove entries for functions called
	from pvm_* wrappers.
	* etc/pvm-wraps-static-whitelist: Remove functions no longer
	defined in pvm.jitter.

2023-01-18  Jose E. Marchesi  <jemarch@gnu.org>

	* etc/pvm-wraps-whitelist: Add printf and rpl_printf.

2023-01-18  Jose E. Marchesi  <jemarch@gnu.org>

	* libpoke/pvm.jitter: Wrap pvm_free.

2023-01-17  Mohammad-Reza Nabipoor  <mnabipoor@gnu.org>

	* libpoke/pvm.jitter (FORMATF): Rename the macro to `PVM_FORMATF'
	and s/memcpy/pvm_memcpy/.
	(formatf32): s/FORMATF/PVM_FORMATF/.
	(formatf64): Likewise.

2023-01-17  Arsen Arsenović  <arsen@aarsen.me>

	* doc/poke.texi (Top): Include the introductory paragraph from
	<https://jemarch.net/poke.html>, and a brief elaboration on the
	contents of the manual.
	* doc/Makefile.am (html-local): Remove outdated workaround for bug
	in older Texinfo versions.

2023-01-17  Jose E. Marchesi  <jemarch@termi>

	* libpoke/pkl-anal.c (pkl_anal_ps_default): Remove handler.
	(pkl_phase_anal1): And do not use it.
	(pkl_phase_anal2): Likewise.

2023-01-16  Arsen Arsenović  <arsen@aarsen.me>

	* cfg.mk (sc_tests_listed_in_makefile_am): Modernize egrep
	invocation into grep -E, as the former was deprecated.

2023-01-14  Jose E. Marchesi  <jemarch@gnu.org>

	* libpoke/pvm.jitter (wrapped-functions): Wrap pvm_random,
	pvm_srandom, pvm_gettime and pvm_secure_getenv.
	(pvm_random): New function.
	(pvm_srandom): Likewise.
	(pvm_gettime): Likewise.
	(pvm_secure_getenv): Likewise.
	(rand): Use pvm_srandom, pvm_random and pvm_gettime.
	(time): Use pvm_gettime.
	(getenv): Use pvm_secure_getenv.
	* etc/pvm-wraps-static-whitelist: Add pvm_random, pvm_srandom,
	pvm_gettime and pvm_secure_getenv.
	* etc/pvm-wraps-whitelist: Add random, rpl_random, srandom,
	rpl_srandom, gettime, rpl_gettime, secure_getenv and
	rpl_secure_getenv.

2023-01-14  Jose E. Marchesi  <jemarch@gnu.org>

	* bootstrap.conf (libpoke_modules): Import module vsnprintf-posix.
	* libpoke/pvm.jitter (wrapped-functions): Add pvm_snprintf.
	(pvm_snprintf): New function.
	(FORMATF): Use pvm_snprintf.
	(PVM_FORMATI): Likewise.
	(PVM_FORMATL): Likewise.
	* etc/pvm-wraps-static-whitelist: Add pvm_snprintf.
	* etc/pvm-wraps-whitelist: Add vsnprintf and rpl_vsnprintf.

2023-01-13  Jose E. Marchesi  <jemarch@gnu.org>

	* libpoke/pvm.jitter (FORMATF): Use pvm_asprint.
	(wrapped-functions): Add pvm_asprintf.
	(pvm_asprintf): New function.
	* etc/pvm-wraps-static-whitelist: Add pvm_asprintf.
	* etc/pvm-wraps-whitelist: Add asprintf and rpl_asprintf.

2023-01-12  Jose E. Marchesi  <jemarch@gnu.org>

	* libpoke/pvm.jitter (pvm_free): New function.
	(formatf32): Use pvm_free.
	(formatf64): Likewise.
	Remove rpl_free from wrapped-functions.
	* etc/pvm-wraps-whitelist: Whitelist rpl_free and free.
	* etc/pvm-wraps-static-whitelist: Whitelist pvm_free.

2023-01-12  Jose E. Marchesi  <jemarch@gnu.org>

	* libpoke/pvm.jitter: Add rpl_free and asprintf to
	wrapped-functions.
	* etc/pvm-wraps-static-whitelist: Add pvm_literal_dispatch_name,
	pvm_literal_formatf_fmt and pvm_literal_formatf_styles.

2023-01-12  Mohammad-Reza Nabipoor  <mnabipoor@gnu.org>

	* doc/poke.texi (.vm dispatch): Fix menu.

2023-01-11  Mohammad-Reza Nabipoor  <mnabipoor@gnu.org>

	* poked/poked.pk (__dots): Renamed to `__poked_dots'.
	(__PokedDotUpdateFunc): Removed.
	(__PokedDotUpdateFuncEntry): Removed.
	(dots): Renamed to `plet_vu_dots'.
	(dot): Renamed to `plet_vu_dot'.
	(dot2): Renamed to `plet_vu_dot2'.
	(dots_set): Renamed to `plet_vu_dots_set'.
	(dot_set_txtcoord): Renamed to `plet_vu_dot_set_txtcoord'.
	(__vu_Args): Renamed to `__Poked_VuArgs'.
	(__vu_do_p): Renamed to `__plet_vu_do_p'.
	(__vu_args): Renamed to `__plet_vu_args'.
	(__vu_filter): Renamed to `__plet_vu_filter'.
	(__vu_dump): Renamed to `__plet_vu_dump'.
	(plet_vu): Adapt.
	(plet_vu_highlight): Adapt.
	(treevu): Remove treevu pokelet code.  Needs more work.
	(__Disasm): Renamed to `__Poked_Disasm'.
	* poked/poked.c (poked_init): Adapt.
	(poked_compile): Likewise.

2023-01-11  Mohammad-Reza Nabipoor  <mnabipoor@gnu.org>

	* libpoke/pvm.jitter (wrapped-globals): Add
	pvm_literal_dispatch_name.
	(pvm_literal_dispatch_name): New global constant.
	(vmdisp): New instruction for pushing the name of current
	dispatching strategy to the stack.
	* libpoke/pkl-rt.pk (vm_dispatch): New function.
	* doc/poke.texi (.vm dispatch): Add new subsection.
	* poke/pk-cmd-vm.c (pk_cmd_vm_dispatch): New function.
	(vm_dispatch_cmd): New variable.
	(vm_cmds): Add `vm_dispatch_cmd' command.
	* poke/pk-help.pk (.vm topic): Add `.vm dispatch'.
	* poke/poke.pk (pk_print_vm_dispatch): New function.
	* testsuite/poke.repl/repl.exp (tab-completion-3): Adapt.
	(tab-completion-4): Likewise.
	(tab-completion-6): Likewise.
	(tab-completion-5): New test for tab completion of
	`.vm dispatch'.

2023-01-11  Mohammad-Reza Nabipoor  <mnabipoor@gnu.org>

	* libpoke/pvm.jitter (wrapped-globals): Add
	pvm_literal_formatf_{fmt,styles} to the list.
	(pvm_literal_formatf_fmt): Define global variable for wrapping
	format string in `formatf{32,64}' (we cannot directly use string
	literals in advanced modes).
	(pvm_literal_formatf_styles): Likewise.
	(FORMATF): Use new wrapped globals.  Remove % operator.

2023-01-11  Mohammad-Reza Nabipoor  <mnabipoor@gnu.org>

	* poked/poked.c (poked_version): Add new function to print version
	in GNU style.
	(poked_options_init): Use `poked_version'.
	(poked_help): Make it GNU-compatible.

2023-01-11  Mohammad-Reza Nabipoor  <mnabipoor@gnu.org>

	* libpoke/pvm.jitter (formatf32): Add literal parameter to the
	instruction's doc.
	(formatf64): Likewise.

2023-01-11  Mohammad-Reza Nabipoor  <mnabipoor@gnu.org>

	* pickles/riscv.pk (RV_Opcode): Remove the re-definition.
	(RV32_OPCODE_*): Change the type from `RV_Opcode' to `uint<7>'.
	(RV32_InsnFmt_I): Adapt.
	(RV32_InsnFmt_S): Likewise.
	(RV32_InsnFmt_B): Likewise.
	(RV32_InsnFmt_U): Likewise.
	(RV32_InsnFmt_J): Likewise.
	(rv32_lui): Likewise.
	(rv32_auipc): Likewise.
	(rv32_jal): Likewise.
	(_rv32_branch): Likewise.
	(rv32_jalr): Likewise.
	(rv32_lb): Likewise.
	(rv32_lh): Likewise.
	(rv32_lw): Likewise.
	(rv32_lbu): Likewise.
	(rv32_lhu): Likewise.
	(rv32_addi): Likewise.
	(rv32_slti): Likewise.
	(rv32_sltiu): Likewise.
	(rv32_xori): Likewise.
	(rv32_ori): Likewise.
	(rv32_andi): Likewise.
	(rv32_slli): Likewise.
	(rv32_srli): Likewise.
	(rv32_srai): Likewise.
	(rv32_fence): Likewise.
	(rv32_ecall): Likewise.
	(rv32_ebreak): Likewise.
	(_rv32_op): Likewise.
	(_rv32_s): Likewise.

2023-01-11  Mohammad-Reza Nabipoor  <mnabipoor@gnu.org>

	* pickles/ieee754.pk: New pickle for IEEE 754 floating-point
	numbers based on initial code from apache2.
	* pickles/Makefile.am (dist_pickles_DATA): Add new pickle.
	* testsuite/poke.pickles/ieee754-test.pk: New test.
	* testsuite/Makefile.am (EXTRA_DIST): Update.

2023-01-11  Mohammad-Reza Nabipoor  <mnabipoor@gnu.org>

	* libpoke/pkl-insn.def (formatf32): Add new instruction.
	(formatf64): Likewise.
	* libpoke/pvm.jitter (FORMATF): New macro for formatting
	floating-point numbers.
	(formatf32): New instruction for formatting floating-point
	numbers.
	(formatf64): Likewise.
	* libpoke/pkl-ast.h (PKL_AST_FORMAT_ARG_FLOATING_POINT_P): New macro.
	(PKL_AST_FORMAT_ARG_FLOATING_POINT_STYLE): Likewise.
	(PKL_AST_FORMAT_ARG_FLOATING_POINT_PREC): Likewise.
	(PKL_AST_FORMAT_ARG_FLOATING_POINT_WIDTH): Likewise.
	(PKL_AST_FORMAT_ARG_FLOATING_POINT_WIDTH_SINGLE): Likewise.
	(PKL_AST_FORMAT_ARG_FLOATING_POINT_WIDTH_DOUBLE): Likewise.
	(struct pkl_ast_format_arg): Add new fields for floating-points.
	* libpoke/pkl-trans.c (pkl_trans1_ps_format): Handle new specifiers
	for floating-point numbers (f, e, g).
	* libpoke/pkl-gen.c (pkl_gen_pr_format): Add support for formatting
	and printing floating-point numbers.
	* doc/poke.texi (Printing): Add new format specifiers to the table.
	* testsuite/poke.pkl/format-43.pk: New test.
	* testsuite/poke.pkl/format-44.pk: Likewise.
	* testsuite/poke.pkl/format-45.pk: Likewise.
	* testsuite/poke.pkl/format-46.pk: Likewise.
	* testsuite/poke.pkl/format-47.pk: Likewise.
	* testsuite/poke.pkl/format-48.pk: Likewise.
	* testsuite/poke.pkl/format-49.pk: Likewise.
	* testsuite/poke.pkl/format-50.pk: Likewise.
	* testsuite/poke.pkl/format-51.pk: Likewise.
	* testsuite/poke.pkl/format-52.pk: Likewise.
	* testsuite/poke.pkl/format-53.pk: Likewise.
	* testsuite/poke.pkl/format-54.pk: Likewise.
	* testsuite/poke.pkl/format-55.pk: Likewise.
	* testsuite/poke.pkl/format-56.pk: Likewise.
	* testsuite/poke.pkl/format-57.pk: Likewise.
	* testsuite/poke.pkl/format-58.pk: Likewise.
	* testsuite/poke.pkl/format-59.pk: Likewise.
	* testsuite/poke.pkl/format-60.pk: Likewise.
	* testsuite/poke.pkl/format-61.pk: Likewise.
	* testsuite/poke.pkl/format-62.pk: Likewise.
	* testsuite/poke.pkl/format-63.pk: Likewise.
	* testsuite/poke.pkl/format-64.pk: Likewise.
	* testsuite/poke.pkl/format-65.pk: Likewise.
	* testsuite/poke.pkl/format-66.pk: Likewise.
	* testsuite/poke.pkl/format-67.pk: Likewise.
	* testsuite/poke.pkl/format-68.pk: Likewise.
	* testsuite/poke.pkl/format-69.pk: Likewise.
	* testsuite/poke.pkl/format-70.pk: Likewise.
	* testsuite/poke.pkl/format-71.pk: Likewise.
	* testsuite/poke.pkl/format-72.pk: Likewise.
	* testsuite/poke.pkl/format-73.pk: Likewise.
	* testsuite/poke.pkl/format-diag-2.pk: Likewise.
	* testsuite/poke.pkl/format-diag-3.pk: Likewise.
	* testsuite/poke.pkl/format-diag-4.pk: Likewise.
	* testsuite/poke.pkl/format-diag-5.pk: Likewise.
	* testsuite/poke.pkl/format-diag-6.pk: Likewise.
	* testsuite/poke.pkl/format-diag-7.pk: Likewise.
	* testsuite/poke.pkl/format-diag-8.pk: Likewise.
	* testsuite/poke.pkl/format-diag-9.pk: Likewise.
	* testsuite/poke.pkl/printf-41.pk: Likewise.
	* testsuite/poke.pkl/printf-42.pk: Likewise.
	* testsuite/poke.pkl/printf-43.pk: Likewise.
	* testsuite/poke.pkl/printf-44.pk: Likewise.
	* testsuite/poke.pkl/printf-45.pk: Likewise.
	* testsuite/poke.pkl/printf-46.pk: Likewise.
	* testsuite/poke.pkl/printf-47.pk: Likewise.
	* testsuite/poke.pkl/printf-48.pk: Likewise.
	* testsuite/poke.pkl/printf-49.pk: Likewise.
	* testsuite/poke.pkl/printf-50.pk: Likewise.
	* testsuite/poke.pkl/printf-51.pk: Likewise.
	* testsuite/poke.pkl/printf-52.pk: Likewise.
	* testsuite/poke.pkl/printf-53.pk: Likewise.
	* testsuite/poke.pkl/printf-54.pk: Likewise.
	* testsuite/poke.pkl/printf-55.pk: Likewise.
	* testsuite/poke.pkl/printf-56.pk: Likewise.
	* testsuite/poke.pkl/printf-57.pk: Likewise.
	* testsuite/poke.pkl/printf-58.pk: Likewise.
	* testsuite/poke.pkl/printf-59.pk: Likewise.
	* testsuite/poke.pkl/printf-60.pk: Likewise.
	* testsuite/poke.pkl/printf-61.pk: Likewise.
	* testsuite/poke.pkl/printf-62.pk: Likewise.
	* testsuite/poke.pkl/printf-63.pk: Likewise.
	* testsuite/poke.pkl/printf-64.pk: Likewise.
	* testsuite/poke.pkl/printf-65.pk: Likewise.
	* testsuite/poke.pkl/printf-66.pk: Likewise.
	* testsuite/poke.pkl/printf-67.pk: Likewise.
	* testsuite/poke.pkl/printf-68.pk: Likewise.
	* testsuite/poke.pkl/printf-69.pk: Likewise.
	* testsuite/poke.pkl/printf-70.pk: Likewise.
	* testsuite/poke.pkl/printf-71.pk: Likewise.
	* testsuite/poke.pkl/printf-diag-19.pk: Likewise.
	* testsuite/poke.pkl/printf-diag-20.pk: Likewise.
	* testsuite/poke.pkl/printf-diag-21.pk: Likewise.
	* testsuite/poke.pkl/printf-diag-22.pk: Likewise.
	* testsuite/poke.pkl/printf-diag-23.pk: Likewise.
	* testsuite/poke.pkl/printf-diag-24.pk: Likewise.
	* testsuite/poke.pkl/printf-diag-25.pk: Likewise.
	* testsuite/poke.pkl/printf-diag-26.pk: Likewise.
	* testsuite/Makefile.am (EXTRA_DIST): Update.

2023-01-11  Jose E. Marchesi  <jemarch@gnu.org>

	* utils/pk-elfextractor.in: Update to new semantics of `in'
	operator.

2023-01-11  Jose E. Marchesi  <jemarch@gnu.org>

	* pickles/btf.pk (BTF_KIND_LAST): Define.
	(BTF_Type): Add constraint to info.kind.

2023-01-11  Jose E. Marchesi  <jemarch@gnu.org>

	* libpoke/pkl-ast.c (pkl_ast_print_1): Fix names in
	PRINT_AST_SUBAST.

2023-01-10  Jose E. Marchesi  <jemarch@gnu.org>

	* poke/poke.c (set_script_args): Fix check for -L in argv.

2023-01-08  Jose E. Marchesi  <jemarch@gnu.org>

	* libpoke/pkl-rt.pk (getenv): Avoid calling the `gettenv'
	instruction twice.

2023-01-08  Jose E. Marchesi  <jemarch@gnu.org>

	* libpoke/pkl-rt.pk (_pkl_stroref): Make immutable.
	(_pkl_aoref): Likewise.
	(_pkl_aoref_complete): Likewise.

2023-01-08  Jose E. Marchesi  <jemarch@gnu.org>

	* libpoke/pkl-gen-builtins.pks (builtin_iohandler): Remove.
	* libpoke/pkl-tab.y (builtin): Remove rule for BUILTIN_IOHANDLER.
	* libpoke/pkl-gen-builtins.pks (builtin_unsafe_string_set): Remove.
	* libpoke/pkl-tab.y (builtin): Remove rule for BUILTIN_UNSAFE_STRING_SET.
	* libpoke/pkl-ast.h (PKL_AST_BUILTIN_GETENV): Remove.
	* libpoke/pkl-gen.c (pkl_gen_ps_comp_stmt): Remove case for
	PKL_AST_BUILTIN_GETENV.
	* libpoke/pkl-lex.l: Remove rule for __PKL_BUILTIN_GETENV__.
	* libpoke/pkl-tab.y (builtin): Remove rule for BUILTIN_GETENV.
	* libpoke/pkl-gen-builtins.pks (builtin_getenv): Remove.
	* libpoke/pkl-rt.pk (getenv): Rewrite as a normal function.

2023-01-08  Jose E. Marchesi  <jemarch@gnu.org>
