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

	* NEWS: Add entries for poke 3.3.
	* doc/gendocs_template (For version 3.3): Update version to 3.3.

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

	* configure.ac: Do not use AC_PROG_CC_C99 with autoconf >= 2.70.

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

	* liboke/ios.c (ios_write_int_common): Fix the function when `bits'
	is 16, 24, 32, 40, 48, 56, 64.
	* testsuite/poke.map/maps-uint-write-75.pk: New test.
	* testsuite/poke.map/maps-uint-write-76.pk: Likewise.
	* testsuite/poke.map/maps-uint-write-77.pk: Likewise.
	* testsuite/poke.map/maps-uint-write-78.pk: Likewise.
	* testsuite/poke.map/maps-uint-write-79.pk: Likewise.
	* testsuite/poke.map/maps-uint-write-80.pk: Likewise.
	* testsuite/poke.map/maps-uint-write-81.pk: Likewise.
	* testsuite/Makefile.am (EXTRA_DIST): Update.

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

	* doc/poke.texi (Integral Structs): Update.

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

	* doc/poke.texi (Scripts): Add missing `open' to example.

2023-07-15  Jose E. Marchesi  <jemarch@gnu.org>

	* poke/pk-cmd-ios.c (pk_cmd_sub): Avoid assert when no name is
	specified for the sub IO space.
	* testsuite/poke.cmd/sub-1.pk: New test.
	* testsuite/poke.cmd/sub-2.pk: Likewise.
	* testsuite/Makefile.am (EXTRA_DIST): Add new tests.

2023-07-12  David Faust  <david.faust@oracle.com>

	* pickles/btf.pk (BTF_KIND_ENUM64): New.
	(BTF_KIND_LAST): Update accordingly.
	(btf_kind_names): Add "enum64".
	(type BTF_Enum64): New type.
	(type BTF_Type): Support BTF_Enum64 here.
	* pickles/btf-dump.pk (btf_dump_enum64): New function.
	(btf_dump_type_vdata): Call it here.


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

	* libpoke/pkl-gen.pks (struct_mapper): Make sure `@field' is of
	type `PKL_AST_STRUCT_TYPE_FIELD' before using the field accessor.
	(struct_constructor): Likewise.

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

	* libpoke/pkl-ast.h (PKL_AST_DECL_PREV_DECL): New macro.
	(PKL_AST_DECL_REDECL_CHAIN): Likewise.
	(struct pkl_ast_decl): New fields.
	* libpoke/pkl-ast.c (pkl_type_append_to): Don't report re-declared
	names directly (because they contain the a dollar character and
	a generation number which are implementation details). Use
	user-defined name.
	(pkl_ast_node_free_1): Handle `prev_decl' field.
	(pkl_ast_print_1): Likewise.
	* libpoke/pkl-env.h (pkl_env_commit_renames): New function and
	comments.
	* libpoke/pkl-env.c (struct pkl_env): Add new field `redecls' to
	keep track of re-declarations.
	(decl_rollback): New static function.
	(env_redecls_free): Likewise.
	(register_decl): Add new param `env'.  Change the logic of re-naming
	for re-declarations.
	(pkl_env_free): Handle `redecls'.
	(pkl_env_register): Pass `env' to `register_decl'.
	(decl_redefined_p): New static function.
	(pkl_env_iter_begin): Updated to skip re-defined declarations.
	(pkl_env_iter_next): Likewise.
	(pkl_env_commit_renames): New function to commit new re-declarations
	in the environment.
	(pkl_env_rollback_renames): Rewrite to call `env_redecls_free'.
	* libpoke/pkl.c (pkl_execute_buffer): Add
	`pkl_env_{commit,rollback}_reanmes'.
	(pkl_execute_statement): Likewise.
	(pkl_compile_expression): Likewise.
	(pkl_execute_expression): Likewise.
	(pkl_execute_file): Likewise.
	* testsuite/poke.pkl/redef-4.pk: New test.
	* testsuite/poke.pkl/redef-5.pk: Likewise.
	* testsuite/poke.pkl/redef-6.pk: Likewise.
	* testsuite/poke.pkl/redef-7.pk: Likewise.
	* testsuite/poke.pkl/redef-diag-4.pk: Likewise.
	* testsuite/poke.pkl/redef-diag-5.pk: Likewise.
	* testsuite/poke.pkl/redef-diag-6.pk: Likewise.
	* testsuite/poke.pkl/deftype-2.pk: Likewise.
	* testsuite/Makefile.am (EXTRA_DIST): Update.

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

	* libpoke/pkl-env.h (pkl_env_new): Update comment to document
	behavior on failure (return `NULL').
	(pkl_env_push_frame): Likewise.
	(pkl_env_dup_toplevel): Likewise.
	* libpoke/pkl-env.c (xalloc.h): Remove include.
	(pkl_env_new): Use `calloc' instead of `xzalloc'.
	(pkl_env_push): Handle memory error.
	(pkl_env_dup_toplevel): Likewise.
	* libpoke/pkl.c (pkl_new): Handle memory failures related to
	`pkl_env'.
	(pkl_execute_buffer): Likewise.
	(pkl_execute_statement): Likewise.
	(pkl_compile_expression): Likewise.
	(pkl_execute_expression): Likewise.
	(pkl_execute_file): Likewise.

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

	* poke/pk-ios.c (pk_open_proc_maps): Fix access to uninitialized
	memory.

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

	* libpoke/ios-dev-stream.c (assert.h): Remove.
	(ios_dev_stream_flush): Call `fflush' only on `<stdout>'/`<stderr>'
	based on IOS flags.
	* testsuite/poke.pkl/flush-1.pk: New test.
	* testsuite/poke.pkl/flush-2.pk: Likewise.
	* testsuite/poke.pkl/flush-3.pk: Likewise.
	* testsuite/poke.pkl/flush-4.pk: Likewise.
	* testsuite/poke.pkl/flush-5.pk: Likewise.
	* testsuite/Makefile.am (EXTRA_DIST): Update.

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

	* libpoke/pkl-gen.pks (struct_constructor): Re-raise an E_conv
	from ATOA as an E_constraint.
	* testsuite/poke.pkl/ass-19.pk: New test.
	* testsuite/poke.pkl/ass-20.pk: Likewise.
	* testsuite/poke.pkl/ass-21.pk: Likewise.
	* testsuite/poke.pkl/scons-43.pk: Update test.
	* libpoke/pkl-asm.pks (asetc): Raise E_constraint instead of
	E_conv if the array type boundaries are violated.
	* testsuite/poke.pkl/array-siz-diag-1.pk: Update test accordingly.
	* testsuite/Makefile.am (EXTRA_DIST): Add new tests.

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

	* doc/poke.texi (From Bytes to Integers): Add missing word.

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

	* libpoke/pkl-asm.pks (asetc): Raise E_constraint and not E_conv
	if the new value makes the array to not fulfill its boundary.

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

	* libpoke/pkl-gen.c (pkl_gen_pr_ass_stmt): Perform a LMAP whenever
	necessary when assigning to struct fields within methods.
	* testsuite/poke.map/setter-1.pk: New test.
	* testsuite/poke.map/setter-2.pk: Likewise.
	* testsuite/Makefile.am (EXTRA_DIST): Add new tests.

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

	* libpoke/pkl-tab.y: Adjust hack that workarounds bison problem to
	field pre-conditions.
	* testsuite/poke.pkl/int-union-type-diag-9.pk: Fix test.

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

	* libpoke/pkl-gen.c (PKL_GEN_PUSH_CONTEXT): Emit error instead of
	aborting if maximum nesting level is reached.
	* libpoke/pkl-anal.c (PKL_ANAL_PUSH_CONTEXT): Likewise.
	* testsuite/poke.pkl/maxnest-diag-1.pk: New test.
	* testsuite/Makefile.am (EXTRA_DIST): Add new test.

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

	* libpoke/pkl-env.c (pkl_env_iter_next): Skip re-defined
	declarations.
	(pkl_env_iter_begin): Likewise.

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

	* libpoke/pkl-rt.pk: Fix return type of `iolist'.

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

	* libpoke/pkl-gen.pks (check_struct_field_constraint): Get STRICT
	as an argument in the stack and use it after executing the
	constraint.
	(handle_struct_field_constraints): Let
	check_struct_field_constraint handle STRICT.
	(struct_constructor): Pass a STRICT to
	check_struct_field_constraint.
	* testsuite/poke.map/nsmap-7.pk: New test.
	* testsuite/Makefile.am (EXTRA_DIST): Add new test.
	* doc/poke.texi (Working with Incorrect Data): Document new
	behavior.

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

	* libpoke/pkl-promo.c (promote_array): Fix bounded array fast
	path.
	* testsuite/poke.pkl/promo-array-return-6.pk: New test.
	* testsuite/poke.pkl/add-arrays-4.pk: Fix test.
	* testsuite/Makefile.am (EXTRA_DIST): Add new test.

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

	* libpoke/pkl-gen.pks (struct_constructor): Make sure the
	destination type of a cast to an array has a bounder.
	* libpoke/pkl-gen.c (pkl_gen_pr_type_array): Make sure the array
	type has a bounder in PKL_GEN_CTX_IN_TYPE context.
	* testsuite/poke.pkl/scons-72.pk: New test.
	* testsuite/Makefile.am (EXTRA_DIST): Add new test.

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

	* NEWS: Add entries for 3.2.
	* doc/gendocs_template (For version 3.2): Update version to 3.2.

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

	* libpoke/pkl-gen.c (pkl_gen_pr_ass_stmt): Fix check for non-null
	field name.
	* testsuite/poke.pkl/ass-18.pk: New test.
	* testsuite/Makefile.am (EXTRA_DIST): Add new test.

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

	* libpoke/libpoke.c (pk_load): Fix returned value.
	* poke/pk-cmd.c (pk_cmd_init): Fix call to pk_load.
	* poke/poke.c (initialize): Likewise.

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.
