2024-06-30  Mohammad-Reza Nabipoor  <mnabipoor@gnu.org>

	* NEWS: Update.
	* doc/gendocs_template: Update version to `4.2'.

2024-06-30  Mohammad-Reza Nabipoor  <mnabipoor@gnu.org>

	* libpoke/pkl-ast.c (pkl_ast_format_1): Show `nframes' and
	`npopes' fields of `PKL_AST_BREAK_CONTINUE_STMT' node.

2024-06-30  Mohammad-Reza Nabipoor  <mnabipoor@gnu.org>

	* testsuite/poke.pkl/break-while-3.pk: Use explicit
	output base 10.

2024-06-30  Mohammad-Reza Nabipoor  <mnabipoor@gnu.org>

	* libpoke/pkl-trans.c (PKL_TRANS_PUSH_ESCAPABLE): Initialize
	`npopes' field.

2024-06-30  Mohammad-Reza Nabipoor  <mnabipoor@gnu.org>

	* libpoke/pkl-trans.c (pkl_trans1_pr_try_stmt_handler): Fix
	`nframes' tracking to only change iff we're using try-catch
	with argument form: `try {...} catch (Exception ex) {...}'.
	* (pkl_trans1_ps_try_stmt_handler): Likewise.
	* testsuite/poke.pkl/break-while-4.pk: New test.
	* testsuite/poke.pkl/break-while-5.pk: Likewise.
	* testsuite/poke.pkl/break-while-6.pk: Likewise.
	* testsuite/Makefile.am (EXTRA_DIST): Update.

2024-06-16  Mohammad-Reza Nabipoor  <mnabipoor@gnu.org>

	* pickles/diff.pk (diff_structured): Fix `elem_simple_p'
	to detect "simple" types correctly.
	* testsuite/Makefile.am (EXTRA_DIST): Add new test.
	* testsuite/poke.cmd/sdiff-13.pk: New test.

2024-06-15  Mohammad-Reza Nabipoor  <mnabipoor@gnu.org>

	* libpoke/pkl-tab.y (pushlevel_args): Call `assert' on
	the result of `pkl_register_arg' function instead of the
	whole function call expression.

2024-06-13  Mohammad-Reza Nabipoor  <mnabipoor@gnu.org>

	* libpoke/pkl-diag.c (pkl_detailed_location): Remove extra empty
	line.
	(pkl_loc_to_source): Handle compilation from buffer.

2024-06-13  Jose E. Marchesi  <jemarch@gnu.org>

	* poke/pk-cmd-ios.c (expr_to_ios): Emit diagnostics in all failing
	cases.
	(pk_cmd_ios): Adjust accordingly.
	(pk_cmd_close): Likewise.

2024-06-10  Jose E. Marchesi  <jemarch@gnu.org>

	* libpoke/pvm.jitter (iogetb): Do not convert units to bytes.
	* testsuite/poke.pkl/iobias-1.pk: Update test accordingly.
	* testsuite/poke.pkl/iobias-2.pk: Likewise.
	* testsuite/poke.pkl/iosetbias-2.pk: Likewise.
	* testsuite/poke.pkl/iosetbias-3.pk: Likewise.
	* testsuite/poke.pkl/iosetbias-4.pk: Likewise.

2024-06-10  Jose E. Marchesi  <jemarch@gnu.org>

	* libpoke/pkl-typify.c (INVALID_CAST): Remove.
	(pkl_typify1_ps_cast): Mention types in invalid cast error
	diagnostic.

2024-06-10  Jose E. Marchesi  <jemarch@gnu.org>

	* libpoke/pkl-ast.h (PKL_AST_COMP_STMT_BUILTIN): Remove.
	(struct pkl_ast_comp_stmt): Remove field `builtin'.
	(PKL_AST_BUILTIN_NONE): Remove.
	* libpoke/pkl-ast.c (pkl_ast_make_comp_stmt): Do not initialize
	PKL_AST_COMP_STMT_BUILTIN.
	(pkl_ast_make_builtin): Remove.
	(pkl_ast_format_1): Do not print the `builtin' field.
	* libpoke/pkl-anal.c (pkl_anal1_ps_comp_stmt): Remove handler.
	* libpoke/pkl-gen.c (pkl_gen_pr_comp_stmt): Do not handle
	builtins.
	(pkl_gen_ps_comp_stmt): Likewise.

2024-06-09  Jose E. Marchesi  <jemarch@gnu.org>

	* testsuite/poke.pkl/array-bound-8.pk: New test.
	* testsuite/Makefile.am (EXTRA_DIST): Add new test.

2024-06-08  Jose E. Marchesi  <jemarch@gnu.org>

	* libpoke/pkl-trans.c (pkl_trans1_pr_try_stmt_body): increase
	npopes only if not try-until.
	(pkl_trans1_ps_try_stmt_body): Likewise.

2024-06-07  Jose E. Marchesi  <jemarch@gnu.org>

	* libpoke/pkl-trans.c (pkl_trans1_pr_try_stmt_body): Increase
	npopes in escapable.
	(pkl_trans1_ps_try_stmt_body): Decrease npopes in escapable.
	* testsuite/poke.pkl/break-while-6.pk: New test.
	* testsuite/Makefile.am (EXTRA_DIST): Add new test.

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

	* libpoke/pkl-trans.c (PKL_TRANS_PUSH_UNESCAPABLE): Define.
	(pkl_trans1_pr_type_struct): Push unescapable context.
	(pkl_trans1_ps_type_struct): Pop uescapable context.
	(pkl_trans1_pr_type_array): Push unescapable context.
	(pkl_trans1_ps_type_array): Pop uescapable context.
	(pkl_trans1_pr_func): Push unescapable context.
	(pkl_trans1_ps_func): Pop uescapable context.
	* libpoke/pkl-trans.h (PKL_TRANS_MAX_COMP_STMT_NEST): Bump
	to 120.
	* testsuite/poke.pkl/break-diag-2.pk: New test.
	* testsuite/poke.pkl/break-diag-3.pk: Likewise.
	* testsuite/poke.pkl/break-diag-4.pk: Likewise.
	* testsuite/poke.pkl/break-diag-5.pk: Likewise.
	* testsuite/Makefile.am (EXTRA_DIST): Add new tests.

2024-06-03  Mohammad-Reza Nabipoor  <mnabipoor@gnu.org>

	* doc/poke.texi (Dot-Commands): Fix the example to use
	`.vm disa' instead of `.vm dis'.
	(.vm disassemble): Remove non-existent sub-commands.

2024-06-03  Mohammad-Reza Nabipoor  <mnabipoor@gnu.org>

	* testsuite/poke.pokefmt/pokefmt.exp (pokefmt_run): Catch
	exceptional returns of `exec'.

2024-06-03  Mohammad-Reza Nabipoor  <mnabipoor@gnu.org>

	* libpoke/pkl-ast.h (enum pkl_ast_code): Remove `PKL_AST_GCD'.

2024-06-03  Mohammad-Reza Nabipoor  <mnabipoor@gnu.org>

	* libpoke/pkl-ast.c (pkl_struct_type_traverse): s/strtok/strtok_r/.

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

	* libpoke/pkl-ast.c (pkl_struct_type_traverse): Exclude unnamed
	fields.

2024-05-31  Mohammad-Reza Nabipoor  <mnabipoor@gnu.org>

	* libpoke/ios-dev-mmap.c (ios_dev_mmap_open): Fix error handling
	of `strdup'.

2024-05-30  Mohammad-Reza Nabipoor  <mnabipoor@gnu.org>

	* NEWS: Update.
	* doc/gendocs_template: Update version to `4.1'.

2024-05-15  Jose E. Marchesi  <jemarch@gnu.org>

	* libpoke/pkl-pass.c (pkl_do_pass_1): Avoid accessing
	uninitialized memory.

2024-05-01  Mohammad-Reza Nabipoor  <mnabipoor@gnu.org>

	* utils/pk-jojopatch.in: Disable auto-remap to improve speed.

2024-04-26  Mohammad-Reza Nabipoor  <mnabipoor@gnu.org>

	* poke/pk-cmd-vm.c (vm_cmd): Update usage string to also mention
	`profile' and `dispatch' sub-commands.

2024-04-26  Mohammad-Reza Nabipoor  <mnabipoor@gnu.org>

	* libpoke/pkl-ast.h (PKL_AST_BREAK_CONTINUE_STMT_NPOPES): New
	macro.
	(struct pkl_ast_break_continue_stmt): New field `npopes' to keep
	track of number of `pope' instructions.
	* libpoke/pkl-trans.h (struct pkl_trans_escapable_ctx): Add new
	field `npopes'.
	* libpoke/pkl-trans.c (pkl_trans1_pr_comp_stmt): For EXCOND
	expression statements, only keep track of number of `pope' insns.
	(pkl_trans1_ps_comp_stmt): Likewise.
	(pkl_trans1_ps_break_continue_stmt): Update the node with the number
	of `pope' insns.
	* libpoke/pkl-gen.c (pkl_gen_ps_break_continue_stmt): Emit `pope'
	instruction(s).
	(pkl_gen_pr_op_excond): Push the failure result after evaluation
	of the EXCOND's LHS.
	* testsuite/poke.pkl/excond-6.pk: New test.
	* testsuite/poke.pkl/excond-7.pk: Likewise.
	* testsuite/poke.pkl/excond-8.pk: Likewise.
	* testsuite/Makefile.am (EXTRA_DIST): Update.

2024-04-09  Mohammad-Reza Nabipoor  <mnabipoor@gnu.org>

	* libpoke/pkl-diag.c (pkl_detailed_location): Handle the failure
	of `fseeko'.

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

	* doc/poke.texi (Poke Scripts): Document poke_interactive_p.

2024-04-01  Sergio Durigan Junior  <sergiodj@sergiodj.net>

	* man/Makefile.am: Generate manpage for pokefmt.

2024-04-01  Sergio Durigan Junior  <sergiodj@sergiodj.net>

	* pokefmt/pokefmt.l (poke_stmt): Fix typo.
	(poke_expr): Likewise.

2024-003-31  Jose E. Marchesi  <jemarch@gnu.org>

	* libpoke/pkl-ast.c (pkl_type_append_to): Include itype in
	integral struct type string representations.

2024-03-31  Jose E. Marchesi  <jemarch@gnu.org>

	* libpoke/pkl-pass.c (pkl_do_pass_1): Do not increase reference
	counter automatically in substituted PKL_PASS_NODE.  Let the
	handlers do it instead.
	* libpoke/pkl-fold.c (OP_UNARY_II): Increase reference counting in
	PKL_PASS_NODE.
	(OP_UNARY_OO): Likewise.
	(OP_BINARY_OOI): Likewise.
	(OP_BINARY_OOO): Likewise.
	(OP_BINARY_SIS): Likewise.
	(OP_BINARY_OIO): Likewise.
	(OP_BINARY_III): Likewise.
	(OP_BINARY_SSS): Likewise.
	(OP_BINARY_SSI): Likewise.
	(OP_BINARY_AAA_ADD): Likewise.
	(pkl_fold_pow): Likewise.
	(pkl_fold_bconc): Likewise.
	(pkl_fold_ps_cast): Likewise.
	* libpoke/pkl-typify.c (pkl_typify1_ps_isa): Likewise.
	* libpoke/pkl-trans.c (pkl_trans1_ps_var): Likewise.
	(pkl_tarns2_ps_struct_ref): Likewise.
	(pkl_trans3_ps_op_sizeof): Likewise.

2024-03-31  Jose E. Marchesi  <jemarch@gnu.org>

	* libpoke/pkl-ast.c (pkl_ast_handle_bconc_ass_stmt_1): Fix
	reference counting in synthetized compount statement.

2024-03-30  Jose E. Marchesi  <jemarch@gnu.org>

	* libpoke/ios-dev-mmap.c (ios_dev_mmap_open): Avoid using variable
	fd uninitialized.

2024-03-30  Jose E. Marchesi  <jemarch@gnu.org>

	* NEWS: Update for 4.0.
	* doc/gendocs_template: Likewise.

2024-03-30  Jose E. Marchesi  <jemarch@gnu.org>

	* pickles/ios.pk: fix print :val.

2024-03-24  Mohammad-Reza Nabipoor  <mnabipoor@gnu.org>

	* libpoke/pkl-fold.c (pkl_fold_ps_cast): Fix integer cast by
	adding missing conditional sign-extension operation.
	Also fix offset casting to work with negative magnitudes by
	using signed division, masking and conditional sign extension.
	* libpoke/pkl-gen.pks (offset_cast): Likewise.
	* testsuite/Makefile.am (EXTRA_DIST): Add new tests.
	* testsuite/poke.pkl/cast-integers-20.pk: New test.
	* testsuite/poke.pkl/cast-integers-21.pk: Likewise.
	* testsuite/poke.pkl/cast-integers-22.pk: Likewise.
	* testsuite/poke.pkl/cast-offsets-6.pk: Likewise.
	* testsuite/poke.pkl/cast-offsets-7.pk: Likewise.

2024-03-16  Mohammad-Reza Nabipoor  <mnabipoor@gnu.org>

	* libpoke/ios-dev-mmap.c (ios_dev_mmap_open): Close the opened
	file, in case of error.

2024-03-16  Mohammad-Reza Nabipoor  <mnabipoor@gnu.org>

	* testsuite/Makefile.am (check-DEJAGNU): Set `HOST_OS' env var.
	* testsuite/lib/poke-dg.exp (dg-require): Add "no-darwin"
	requirement.
	* testsuite/poke.cmd/mmap-1.pk: Disable the test on Darwin.

2024-03-15  Andreas Klinger  <ak@it-klinger.de>

	* testsuite/poke.pickles/jpeg-test.pk: Fix trailing blank.

2024-03-15  Andreas Klinger  <ak@it-klinger.de>

	* pickles/jpeg.pk: New pickle for jpeg files.
	* pickles/Makefile.am (dist_pickles_DATA): Add jpeg.pk.
	* testsuite/poke.pickles/jpeg-test.pk: New test.
	* testsuite/Makefile.am (EXTRA_DIST): Add jpeg-test.pk.

2024-03-15  Mohammad-Reza Nabipoor  <mnabipoor@gnu.org>

	* pickles/jojodiff.pk (Jojo_Length2): Add initializer to
	constraint.
	(Jojo_Length2): Likewise.
	(Jojo_Length3): Likewise.
	(Jojo_Length5): Likewise.
	(Jojo_Length9): Likewise.
	(jojo_length_encode): New function to encode length according to
	the Jojo format.
	(Jojo_EscapedByte): Remove.
	(Jojo_Datum): Auxiliary type for `Jojo_Bytes'.
	(Jojo_Bytes): Type to describe sequence of data bytes in Jojo
	format.
	(Jojo_Bytes_Callback): Auxiliary type for `jojo_bytes_map' function.
	(jojo_bytes_map): Add function to run the provided callback
	for each decoded byte in `Jojo_Bytes'.
	(jojo_bytes): Add function to encode bytes as `Jojo_Bytes'.
	(Jojo_MOD): Use `Jojo_Bytes' instead of `Jojo_Byte[]'.
	(Jojo_INS): Likewise.
	(Jojo_MOD.get_count): Update accordingly.
	(Jojo_INS.get_count): Likewise.
	(Jojo_Hunk): Add `Jojo_Bytes' field to comply with the latest
	version of JojoDiff generator.
	(Jojo_Hunk_Orig): Add type to describe original format of JojoDiff.
	(jojo_patch_from_orig): Add conversion function to transform
	from `Jojo_Patch_Orig' to `Jojo_Patch'.
	(jojo_patch_apply): Update to support new `Jojo_Patch' and make
	verbosity more fine-grained.
	* testsuite/poke.pickles/jojodiff-test.pk: Add tests for JojoDiff
	pickle.
	* testsuite/Makefile.am (EXTRA_DIST): Add new test.

2024-03-05  Mohammad-Reza Nabipoor  <mnabipoor@gnu.org>

	* autogen.sh: Updated by `./bootstrap --bootstrap-sync'.
	* autopull.sh: Likewise.
	* bootstrap: Likewise.
	* bootstrap-funclib.sh: Likewise.

2024-02-27  Mohammad-Reza Nabipoor  <mnabipoor@gnu.org>

	* testsuite/lib/poke-unit.h (wait): Rename to `deja_wait'.

2024-02-27  Jose E. Marchesi  <jemarch@gnu.org>

	* testsuite/poke.libpoke/values.c: Use EXIT_FAILURE instead of 1
	as exit status in case of error.

2024-02-27  Hannes Domani  <ssbssa@yahoo.de>

	* testsuite/poke.libpoke/Makefile.am (COMMON_LDADD): Put
	libpoke.la before libgnu.la.

2024-02-27  Jose E. Marchesi  <jemarch@gnu.org>

	* poke/poke.c (initialize_user): Only use xdg_config_home if it is
	not NULL.

2024-02-27  Jose E. Marchesi  <jemarch@gnu.org>

	* testsuite/poke.libpoke/values.c: Get rid of err.h.

2024-02-27  Jose E. Marchesi  <jemarch@gnu.org>

	* configure.ac: Check for runtest instead of dejagnu.h.
	* testsuite/lib/poke-uni.h: New file adapted rom dejagnu.h.
	* testsuite/Makefile.am (EXTRA_DIST): Add lib/poke-unit.h.
	* testsuite/poke.libpoke/Makefile.am (COMMON_CPPFLAGS): Add
	$(top_srcdir)/testsuite/lib to the include path.
	(COMMON_CFLAGS): It is no more needed to use -fgnu89-inline.
	(check_PROGRAMS): These are now built unconditionally.
	* testsuite/poke.libpoke/api.c: Include poke-unit.h instead of dejagnu.h.
	* testsuite/poke.libpoke/decls.c: Likewise.
	* testsuite/poke.libpoke/foreign-iod.c: Likewise.
	* testsuite/poke.libpoke/values.c: Likewise.

2024-02-25  Mohammad-Reza Nabipoor  <mnabipoor@gnu.org>

	* libpoke/pkl.c (pkl_resolve_module): Handle failure of `asprintf'.

2024-02-25  Bruno Haible  <bruno@clisp.org>

	libpoke: Fix compiler warnings re [v]asprintf on AIX (regr. 2024-02-23).
	* bootstrap.conf (libpoke_modules): Add back 'vasprintf-posix'.

2024-02-25  Jose E. Marchesi  <jemarch@gnu.org>

	* NEWS: Update entry for 3.90.4.
	* doc/gendocs_template: Update version to 3.90.4.

2024-02-25  Jose E. Marchesi  <jemarch@gnu.org>

	* common/pk-utils.c (pk_str_concat): Assert that first argument
	shall not be NULL.
	* poke/poke.c (initialize_user): Take care to not use HOME if it
	is not defined.
	* libpoke/pvm.c: Include assert.h.
	* libpoke/ios-dev-sub.c: Likewise.
	* poke/pk-ios.c: Likewise.

2024-02-23  Jose E. Marchesi  <jemarch@gnu.org>

	* configure.ac: Support --{enable,disable}-{poked,pokefmt} and
	print summary at end.
	* pokefmt/Makefile.am: Build pokefmt only if ENABLE_POKEFMT.
	* poked/Makefile.am: Build poked only if ENABLE_POKED
	* man/Makefile.am: Build poked manpages only if ENABLE_POKED.
	* etc/hacking.org (Disabling building some components): New
	section.
	* HACKING: Regenerate.

2024-02-24  Mohammad-Reza Nabipoor  <mnabipoor@gnu.org>

	* run.in (PATH): Add pokefmt/ and poked/ to PATH env var.

2024-02-24  Mohammad-Reza Nabipoor  <mnabipoor@gnu.org>

	* poked/usock.c (usock_handler_srv): Do F_GETFL before F_SETFL
	on client sockets.

2024-02-23  Mohammad-Reza Nabipoor  <mnabipoor@gnu.org>

	* poked/usock.c (errorf): Remove.
	(usock_errorf): Adapt `errorf' to accept `struct usock *'
	to make the buffer usage implicit.  Add more comments.
	(usock_handle_srv): Replace `errorf' with `usock_errorf'.
	(usock_handle_notif): Likewise.
	(usock_serve): Likewise.

2024-02-23  Jose E. Marchesi  <jemarch@gnu.org>

	* bootstrap.conf (libpoke_modules): Add c-vasprintf and
	c-vsnprintf gnulib modules.
	* libpoke/pvm-wrappers.c: Use c_vaspritnf and c_vsnprintf.

2024-02-22  Jose E. Marchesi  <jemarch@gnu.org>

	* testsuite/lib/poke-dg.exp (dg-require): New procedure.
	* testsuite/poke.cmd/file-mode.pk: Do not use /etc/passwd and
	dg-require devnull.

2024-02-22  Jose E. Marchesi  <jemarch@gnu.org>

	* bootstrap.conf (libpoke_modules): Import modules c-strtof and
	c-strtod.
	* libpoke/pvm.c (pvm_stof): Use c_strtof.
	(pvm_stod): Use c_strtod.

2024-02-22  Jose E. Marchesi  <jemarch@gnu.org>

	* libpoke/pvm.h: Move prototypes for pvm_stof and pvm_stod from
	common/pk-utils.h.
	* libpoke/pvm.c (pvm_stof): Move from common/pk-utils.c.
	(pvm_stod): Likewise.

2024-02-22  Hannes Domani  <ssbssa@yahoo.de>

	* libpoke/ios-dev-file.c (ios_dev_file_open): Open files in
	binary mode on windows.

2024-02-22  Hannes Domani  <ssbssa@yahoo.de>

	* poke/pk-repl.c (poke_sigint_handler, pk_repl): Use pthread
	functions only if available.

2024-02-21  Hannes Domani  <ssbssa@yahoo.de>

	* libpoke/pvm.jitter: Undef raise on windows.

2024-02-21  Jose E. Marchesi  <jemarch@gnu.org>

	* AUTHORS: Add Hannes Domani.

2024-02-20  Hannes Domani  <ssbssa@yahoo.de>

	* poke/pk-term.c (pk_term_init): Set erase_line_str.
	(pk_puts_paged): Use console functions on windows.

2024-02-17  Mohammad-Reza Nabipoor  <mnabipoor@gnu.org>

	* bootstrap.conf (gnulib_modules): s/strerror/strerror_r-posix/.
	* pokefmt/pokefmt.l (err): Use `strerror_r'.
	* poked/poked.c (err): Likewise.
	* poked/usock.c (errorf): New function.
	(usock_handle_srv): Use `errorf' to make the buffer.
	(usock_handle_notif): Likewise.
	(usock_serve): Likewise.

2024-02-17  Hannes Domani  <ssbssa@yahoo.de>

	* poke/poke.c: Don't include <arpa/inet.h> on windows.

2024-02-17  Hannes Domani  <ssbssa@yahoo.de>

	* poke/pk-term.c (update_screen_dimensions): Define if not availbale.

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

	* libpoke/ras: Ignore '\r' of windows line endings.

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

	* doc/poke.texi: Mention colon characters in windows drives.
	* libpoke/pkl.c: Don't use ':' of windows drives as path separator.

2024-02-15  Bruno Haible  <bruno@clisp.org>

	Provide an easy way to generate the monolithic HTML-formatted manual.
	* doc/Makefile.am (html-monolithic, poke-manual.html): New targets.
	(MOSTLYCLEANFILES): Add poke-manual.html.

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

	* bootstrap.conf (gnulib_modules): Import regex module from
	gnulib.

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

	* doc/poke.texi (Struct Methods): Entry for SELF in concept index.
	(Methods): Likewise.

2024-02-11  Mohammad-Reza Nabipoor  <mnabipoor@gnu.org>

	* poked/poked.c: Fix GNU code style.
	* pokefmt/pokefmt.l: Likewise.

2024-02-11  Mohammad-Reza Nabipoor  <mnabipoor@gnu.org>

	* poked/poked.c (#include <err.h>): Remove.
	(#include <stdarg.h>): Add.
	(err): New function.
	(errx): Likewise.
	* pokefmt/pokefmt.l (#include <err.h>): Remove.
	(#include <stdarg.h>): Add.
	(err): New function.
	(errx): Likewise.

2024-02-11  Mohammad-Reza Nabipoor  <mnabipoor@gnu.org>

	* poked/usock.c (usock_handle_notif): Handle `EWOULDBLOCK'
	errno.
	(usock_serve): Likewise.

2024-02-10  Mohammad-Reza Nabipoor  <mnabipoor@gnu.org>

	* bootstrap.conf (gnulib_modules): Update comment to mention
	`pokefmt'.

2024-02-10  Mohammad-Reza Nabipoor  <mnabipoor@gnu.org>

	* bootstrap.conf (gnulib_modules): Add `strerror'.
	* poked/usock-buf.c (#include <err.h>): Remove.
	* poked/usock.h (USOCK_SERVE_OK): New macro.
	(USOCK_SERVE_NOK): Likewise.
	(usock_serve): Change signature to return status (success/failure).
	(usock_serve_error): New function to retrieve content of error
	buffer (`errbuf').
	(usock_out_printf): Change return type to `int' and return number
	of sent bytes or -1 in case of error.
	* poked/usock.c (#include <err.h>): Likewise.
	(USOCK_ERRBUF_SIZE): New macro.
	(USOCK_HANDLE_SRV_OK): Likewise.
	(USOCK_HANDLE_SRV_NOK): Likewise.
	(USOCK_HANDLE_NOTIF_OK): Likewise.
	(USOCK_HANDLE_NOTIF_NOK): Likewise.
	(struct usock): Add new field `errbuf' to save error messages.
	(usock_handle_srv): Do not call `err'; fill `errbuf' and return
	error.
	(usock_handle_notif): Likewise.
	(usock_serve): Adapt new signature and in case of error, fill
	the `errbuf' and return `USOCK_SERVE_NOK'.
	(usock_serve_error): New function.
	* poked/poke.c (srvthread): Handle failure of `usock_serve'.
	(poked_disas_send): Handle failure of `usock_out_printf'.

2024-02-10  Jose E. Marchesi  <jemarch@gnu.org>

	* utils/Makefile.am (bin_SCRIPTS): Remove pk-elfextractor.
	(EXTRA_DIST): Remove pk-elfextractor.in.

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

	* configure.ac (gl_HOST_CPU_ABI_32BIT): Emit an error instead of
	warning when the result is "unknown".

2024-01-26  Mohammad-Reza Nabipoor  <mnabipoor@gnu.org>

	* poke/pk-term.h (pk_compiler): Don't re-typedef `pk_compiler'.
	Include "libpoke.h".

2024-01-25  Andreas Klinger  <ak@it-klinger.de>

	* poke/pk-cmd.h: New command arg type PK_CMD_ARG_UINT
	* poke/pk-cmd.c (pk_atou): New function
	* poke/pk-cmd-ios.c (pk_cmd_mmap, pk_cmd_sub):
				Change base and size to PK_CMD_ARG_UINT

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

	* poke/poke.c (pk_print_version): Update --version copyright to
	2024.

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

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

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

	* libpoke/Makefile.am (LTV_CURRENT): Bump to 1.

2024-01-20  Mohammad-Reza Nabipoor  <mnabipoor@gnu.org>

	* testsuite/Makefile.am (EXTRA_DIST): Add `poke.pvm/pvm.exp'.

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

	* doc/poke.texi (open): Document that IO space identifiers are
	allocated sequentially and consistently reused.

2024-01-07  Mark Wielaard  <mark@klomp.org>

    * etc/pvm-wraps-whitelist: Add __stack_chk_guard.

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

	* libpoke/pkl-ast.c (pkl_ast_handle_bconc_ass_stmt): Add location
	info to synthesized BCONC assignment statements.

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

	* libpoke/pkl-trans.c (pkl_trans1_ps_asm_stmt): Add location info
	to ass-stmt.
	(pkl_trans2_ps_incrdecr): Likewise.

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

	* libpoke/pkl-tab.y (pkl_make_assertion): Fix typo.
	(expression): Fix location for unary/binary/ternary
	expressions.

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

	* libpoke/pkl-ast.h (pkl_ast_format_loc): Change first input
	param from `pkl_ast' to `const char *'.  Pass filename
	directly.
	* libpoke/pkl-ast.c (pkl_ast_format_loc): Use the provided
	filename and remove the extra ": ".
	* libpoke/pkl-gen.c (pkl_gen_ps_func): Adapt.

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

	* libpoke/pkl-gen.h (struct pkl_gen_payload): Add new field
	`filename'.
	* libpoke/pkl-gen.c (pkl_gen_ps_src): Populate `filename'
	field.
	(pkl_gen_pr_program): Likewise.

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

	* libpoke/pkl-ast.h: Fix comment:
	s/PKL_AST_COMPOUND_STMT/PKL_AST_COMP_STMT/.
	* libpoke/pkl-trans.h (struct pkl_trans_function_ctx): Remove
	unnecessary field `next'.
	* poke/pk-help.pk (Poke_HelpEntry::is_line_p): Remove extra
	semi-colon.

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

	* utils/Makefile.am (bin_SCRIPTS): Add `pk-jojopatch'.
	(EXTRA_DIST): Add `pk-jojopatch.in'.

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

	* pickles/jojodiff.pk: New pickle for JojoDiff utility.
	* pickles/Makefile.am (dist_pickles_DATA): Add `jojodiff.pk'.
	* utils/pk-jojopatch.in: New Poke script to apply JojoDiff patches
	to files.
	* utils/Makefile.am (pk-jojopatch): Add rule for `pk-jojopatch'.

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

	* libpoke/pkl-ast.c (pkl_ast_print): Change `fprintf' with `fputs'.

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

	* libpoke/libpoke.h (struct pk_iod_if): Fix comments by referring to
	`PK_IOD_*' return values instead of `IOD_*'.

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

	* libpoke/libpoke.h (pk_make_int): Add new param of type `pk_compiler'.
	(pk_make_uint): Likewise.
	(pk_make_string): Likewise.
	(pk_make_offset): Likewise.
	(pk_make_struct): Likewise.
	(pk_make_array): Likewise.
	(pk_make_integral_type): Likewise.
	(pk_make_string_type): Likewise.
	(pk_make_any_type): Likewise.
	(pk_make_offset_type): Likewise.
	(pk_make_struct_type): Likewise.
	(pk_make_array_type): Likewise.
	* libpoke/pk-val.c (pk_make_int): Likewise.
	(pk_make_uint): Likewise.
	(pk_make_string): Likewise.
	(pk_make_offset): Likewise.
	(pk_make_struct): Likewise.
	(pk_make_array): Likewise.
	(pk_make_integral_type): Likewise.
	(pk_make_string_type): Likewise.
	(pk_make_any_type): Likewise.
	(pk_make_offset_type): Likewise.
	(pk_make_struct_type): Likewise.
	(pk_make_array_type): Likewise.
	(pk_val_offset): Update.
	* poke/pk-cmd-help (pk_cmd_help): Likewise.
	(pk_cmd_set): Likewise.
	* poke/pk-hserver.c (pk_hserver_token_p): Likewise.
	(pk_hserver_token_kind): Likewise.
	(pk_hserver_cmd): Likewise.
	(pk_hserver_function): Likewise.
	(pk_hserver_init): Likewise.
	(pk_hserver_start): Likewise.
	(pk_hserver_make_hyperlink): Likewise.
	* poke/poke.c (pk_set_var_int): Likewise.
	(set_script_args): Likewise.
	(initialize): Likewise.
	* poked/poked.c (poked_init): Likewise.
	* pokefmt/pokefmt.l (poke_init): Likewise.
	* testsuite/poke.libpoke/values.c (test_simple_values): Likewise.
	(test_simple_values_mapping): Likewise.
	(test_pk_typeof): Likewise.
	(main): Pass `pk_compiler' to `test_simple_values',
	`test_simple_values_mapping' and `test_pk_typeof'.

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

	* libpoke/pvm.jitter (endhl): Do not raise exceptions.
	(endsc): Likewise.
	(pvm_literal_nohyperlink): Remove variable.
	* libpoke/pkl-rt.pk (term_end_hyperlink): Adapt accordingly.
	(term_end_class): Likewise.

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

	* libpoke/pkl-typify.c (pkl_typify2_ps_type_array): Sanity check
	fixed size bounds.
	* testsuite/poke.map/maps-unions-14.pk: Adapt test.
	* testsuite/poke.map/maps-unions-15.pk: Likewise.
	* testsuite/poke.map/maps-unions-16.pk: Likewise.
	* testsuite/poke.pkl/scons-union-14.pk: Likewise.
	* testsuite/poke.pkl/scons-union-13.pk: Likewise.
	* testsuite/poke.pkl/scons-union-12.pk: Likewise.
	* testsuite/poke.pkl/array-siz-diag-2.pk: New test.
	* testsuite/poke.pkl/array-siz-diag-3.pk: Likewise.
	* testsuite/poke.pkl/array-siz-2.pk: Likewise.
	* testsuite/poke.pkl/array-siz-3.pk: Likewise.
	* testsuite/poke.pkl/cast-array-siz-diag-1.pk: Likewise.
	* testsuite/Makefile.am (EXTRA_DIST): Add new tests.

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

	* pickles/orc.pk: New file.
	* pickles/Makefile.am (dist_pickles_DATA): Add orc.pk.

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

	* poke/pk-hserver.c (hserver_thread_worker): Call
	pk_unregister_thread before pthread_exit.

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

	* pickles/srec.pk (srec_encode): Create start address records.

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

	* pickles/btf.pk (BTF_Array): Use BTF_Type_Id for index_type.

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

	* libpoke/libpoke.h (struct pk_term_if): Add `pk_compiler' parameter
	to all function pointers.
	* libpoke/libpoke.c (include "libpoke.h"): Move to the top.
	(libpoke_term_if): Change the type to `struct pk_term_if_internal'.
	(pk_compiler_new_with_flags): Populate `libpoke_term_if'.
	* libpoke/pkt.h (PKT_IF): New macro to convey the terminal interface
	function pointers.
	(PK_PKC): New macro to convey the instance of current incremental
	compiler.
	(pk_*): Re-write the macro definitions to new paradigm.
	(struct pk_term_if_internal): New data type.
	(libpoke_term_if): Change the type of the variable.
	* poke/pk-term.h (pk_puts): Define as a macro.
	(pk_term_indent): Likewise.
	(pk_term_class): Likewise.
	(pk_term_end_class): Likewise.
	(pk_term_hyperlink): Likewise.
	(pk_term_end_hyperlink): Likewise.
	(pk_term_get_color): Likewise.
	(pk_term_get_bgcolor): Likewise.
	(pk_term_set_color): Likewise.
	(pk_term_set_bgcolor): Likewise.
	(pk_term_flush_1): New terminal interface function with `pk_compiler'
	parameter.
	(pk_puts_1): Likewise.
	(pk_printf_1): Likewise.
	(pk_term_indent_1): Likewise.
	(pk_term_class_1): Likewise.
	(pk_term_end_class_1): Likewise.
	(pk_term_hyperlink_1): Likewise.
	(pk_term_end_hyperlink_1): Likewise.
	(pk_term_get_color_1): Likewise.
	(pk_term_get_bgcolor_1): Likewise.
	(pk_term_set_color_1): Likewise.
	(pk_term_set_bgcolor_1): Likewise.
	* poke/pk-term.c (pk_term_flush_1): Likewise.
	(pk_puts_1): Likewise.
	(pk_printf_1): Likewise.
	(pk_term_indent_1): Likewise.
	(pk_term_class_1): Likewise.
	(pk_term_end_class_1): Likewise.
	(pk_term_hyperlink_1): Likewise.
	(pk_term_end_hyperlink_1): Likewise.
	(pk_term_get_color_1): Likewise.
	(pk_term_get_bgcolor_1): Likewise.
	(pk_term_set_color_1): Likewise.
	(pk_term_set_bgcolor_1): Likewise.
	(pk_term_flush_1): Likewise.
	(pk_puts): Remove.
	(pk_term_indent): Likewise.
	(pk_term_class): Likewise.
	(pk_term_end_class): Likewise.
	(pk_term_hyperlink): Likewise.
	(pk_term_end_hyperlink): Likewise.
	(pk_term_get_color): Likewise.
	(pk_term_get_bgcolor): Likewise.
	(pk_term_set_color): Likewise.
	(pk_term_set_bgcolor): Likewise.
	* poked/poked.c (tif_flush): Add `pk_compiler' parameter.
	(tif_puts): Likewise.
	(tif_printf): Likewise.
	(tif_indent): Likewise.
	(tif_class): Likewise.
	(tif_class_end): Likewise.
	(tif_hlink): Likewise.
	(tif_hlink_end): Likewise.
	(tif_color): Likewise.
	(tif_bgcolor): Likewise.
	(tif_color_set): Likewise.
	(tif_bgcolor_set): Likewise.
	* pokefmt/pokefmt.l (tif_flush): Likewise.
	(tif_puts): Likewise.
	(tif_printf): Likewise.
	(tif_indent): Likewise.
	(tif_class): Likewise.
	(tif_class_end): Likewise.
	(tif_hlink): Likewise.
	(tif_hlink_end): Likewise.
	(tif_color): Likewise.
	(tif_bgcolor): Likewise.
	(tif_color_set): Likewise.
	(tif_bgcolor_set): Likewise.
	* testsutie/poke.libpoke/term-if.h (pk_term_flush): Likewise.
	(pk_puts): Likewise.
	(pk_printf): Likewise.
	(pk_term_indent): Likewise.
	(pk_term_class): Likewise.
	(pk_term_end_class): Likewise.
	(pk_term_hyperlink): Likewise.
	(pk_term_end_hyperlink): Likewise.
	(pk_term_get_color): Likewise.
	(pk_term_get_bgcolor): Likewise.
	(pk_term_set_color): Likewise.
	(pk_term_set_bgcolor): Likewise.

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

	* common/pk-utils.h (PK_INTEGRAL_SUFFIX): New macro.
	(pk_integral_suffix): Remove function declaration.
	(PK_PRINT_BINARY): Remove `use_suffix_p' parameter. And don't print
	the suffix.
	* common/pk-utils.c (PK_INTEGRAL_SUFFIX): Remove function definition.
	* libpoke/pvm-val.c (pvm_print_val_1): Update use of `PK_PRINT_BINARY'
	and use `PK_INTEGRAL_SUFFIX'.
	* libpoke/pvm.jitter (wrapped-functions): Remove `pk_integral_suffix'.
	(PVM_PRINTI): Update use of `PK_PRINT_BINARY'.
	(PVM_PRINTL): Likewise.

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

	* common/pk-utils.h (pk_print_binary): Remove function decl.
	(PK_PRINT_BINARY): New macro for printing in base 2 to make use of
	`pk_puts' macro easier.
	* common/pk-utils.c (pk_print_binary): Remove function.
	(pk_integral_suffix): New function.
	* libpoke/pvm-val.c (pvm_print_val_1): Change `pk_print_binary' to
	`PK_PRINT_BINARY'.
	* libpoke/pvm.jitter (wrapped-functions):
	s/pk_print_binary/pk_integral_suffix/.
	(PVM_PRINTI): s/pk_print_binary/PK_PRINT_BINARY/.
	(PVM_PRINTL): Likewise.

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

	* libpoke/libpoke.h (pk_set_user_data): New function to register an
	opaque data pointer.
	(pk_get_user_data): New function to retrieve the registered opaque
	data pointer.
	* libpoke/libpoke.c (struct _pk_compiler): Add new field `user_data'.
	(pk_set_user_data): New function impl.
	(pk_get_user_data): Likewise.
	* testsuite/poke.libpoke/api.c (main): Add tests for new functions.

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

	* libpoke/pkl-gen.c (pkl_gen_ps_var): Fix detection of
	non-methods.
	* testsuite/poke.pkl/optcond-pre-13.pk: New test.
	* testsuite/poke.pkl/optcond-pre-14.pk: Likewise.
	* testsuite/Makefile.am (EXTRA_DIST): Add new tests.
	* pickles/Makefile.am (dist_pickles_DATA): Distribute srec.pk.
	* testsuite/poke.pickles/srec-test.pk: New file.
	* testsuite/Makefile.am (EXTRA_DIST): Add new tests.

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

	* poke/poke.pk (pk_exception_handler): Fix styling.

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

	* poke/pk-cmd-ios.c (ios_cmd): The option to .ios is optional.
	(pk_cmd_ios): Avoid crash when no IO space is
	(pk_cmd_file): Fix string.

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

	* poke/pk-cmd-ios.c: Prepend . to dot-command Usage messages.
	* poke/pk-cmd-compiler.c: Likewise.
	* poke/pk-cmd-def.c: Likewise.
	* poke/pk-cmd-set.c: Likewise.
	* poke/pk-cmd-map.c: Likewise.
	* poke/pk-cmd-vm.c: Likewise.

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

	* poke/pk-cmd-ios.c (sub_cmd): Use poke_completion_function.

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

	* doc/poke.texi (Files as IO Spaces): Document that $<...>
	supports specifying a non ambiguous non-empty substring.

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

	* libpoke/ios.h: Prototype for ios_get_handler.
	* libpoke/ios.c (ios_get_handler): New function.
	* libpoke/libpoke.h: Update description of
	pk_ios_completion_function.
	* libpoke/libpoke.c (pk_ios_completion_function): Complete on IOS
	handlers/names, not ids.
	* poked/poked.c (poked_autocmpl_send_one): Adapt to new
	pk_ios_completion_function.
	* poke/pk-repl.c (poke_completion_function): Complete IO space
	names.
	* testsuite/poke.repl/repl.exp: Update test
	tab-completion-subcommand-3.

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

	* poke/pk-cmd-ios.c (ios_completion_function): Remove.
	(ios_cmd): Use poke_completion_function.
	(close_cmd): Likewise.
	* poke/pk-cmd-map.c (info_maps_completion_function): Remove.
	(info_maps_cmd): Use poke_completion_function.

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

	* poke/poke.pk (pk_prompt): New function.
	(pk_prompt_commented_p): Remove.
	* poke/pk-repl.c (pk_prompt): Call the Poke function pk_prompt to
	get the prompt string.
	* poke/pk-settings.pk (Example): Remove the prompt-commented
	setting.
	* doc/poke.texi (Changing the Prompt): New sectino

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

	* poke/pk-cmd-editor.c (pk_cmd_editor): Stylize the prompt.

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

	* libpoke/libpoke.h (pk_ios_search): Add new param: FLAGS to support
	partial match of handlers.
	* libpoke/libpoke.c (pk_ios_search): Likewise.
	* libpoke/ios.h (ios_search): Likewise.
	* libpoke/ios.c (ios_search): Likewise.
	* poke/pk-ios.c (pk_ios_alien_token_handler): Update to do partial
	search for IOS handlers.
	* poke/pk-cmd-ios.c (pk_cmd_file): Call `pk_ios_search' with
	`PK_IOS_SEARCH_F_EXACT' flag.
	(pk_cmd_mem): Likewise.
	(pk_cmd_nbd): Likewise.
	* testsuite/poke.libpoke/api.c (STREQ): New macro.
