2025-03-10  Mohammad-Reza Nabipoor  <mnabipoor@gnu.org>

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

2025-03-10  Mohammad-Reza Nabipoor  <mnabipoor@gnu.org>

	* libpoke/pkl-asm.h (pkl_asm_for_loop): Add new parameter for type of
	loop's condition.
	* libpoke/pkl-asm.c (pkl_asm_for_loop): Use new parameter to generate
	appropriate variant of BZ insn when available.
	* libpoke/pkl-promo.c (pkl_promo_ps_loop_stmt): New phase for loops to
	promote loop's condition if the condition is of type integral struct.
	(pkl_phase_promo): Register new phase.
	* libpoke/pkl-gen.c (pkl_gen_pr_loop_stmt): Pass type of condition
	to `pkl_asm_for_loop' when available.
	* testsuite/poke.pkl/for-in-int-struct-1: Fix the test to actually
	verify correctness of codegen.  Test was unable to catch the bug due
	to "sub-string match" behavior of `dg-output'.
	* testsuite/poke.pkl/for-in-int-struct-2: New test.
	* testsuite/poke.pkl/for-in-int-struct-3: Likewise.
	* testsuite/poke.pkl/for-in-int-struct-4: Likewise.
	* testsuite/poke.pkl/for-in-6.pk: Likewise.
	* testsuite/poke.pkl/for-diag-3.pk: Likewise.
	* testsuite/Makefile.am (EXTRA_DIST): Update.

2025-03-09  Mohammad-Reza Nabipoor  <mnabipoor@gnu.org>

	* poke/pk-term.c (pk_term_hyperlink_1): Only keep invocation of
	`styled_ostream_set_hyperlink' under
	`ifdef HAVE_TEXTSTYLE_HYPERLINK_SUPPORT' guard.
	(pk_term_end_hyperlink_1): Likewise.

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

	* libpoke/pkl-gen.c (pkl_gen_pr_decl): Compile constructor/mapper/
	comparator/integrator/deintegrator/typifier for alias types to have
	the correct names.
	* testsuite/Makefile.am (EXTRA_DIST): Update.
	* testsuite/poke.map/type-alias-1.pk: New test.
	* testsuite/poke.pkl/type-alias-1.pk: Likewise.

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

	* libpoke/pkl-gen.pks (struct_constructor): Set name of PVM struct
	type to provided non-null compile-time name.

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

	* libpoke/pkl-gen.c (pkl_gen_pr_type_struct): Add assertion to verify
	that we're generating constructor for an unnamed struct.

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

	* libpoke/pkl-pass.c (pkl_call_node_handlers): Use
	PKL_AST_TYPE_CODE2 instead of PKL_AST_TYPE_CODE.
	(pkl_do_pass_1): Likewise.
	* libpoke/pkl-tab.y: Pass the ast to pkl_env_register.
	(TYPENAME): Add a type alias node instead of the aliased type to
	the AST.
	* libpoke/pkl-typify.c (pkl_typify1_ps_op_typeof): Create a named
	type.
	* libpoke/pkl.c (pkl_defvar): Pass the ast to pkl_env_register.
	* libpoke/pvm-val.c (pvm_make_struct_type): Do not get a `name' argument.
	(pvm_type_equal_p): Struct types may have PVM_NULL as name.
	(pvm_make_exception): Set struct type name explicitly.
	* libpoke/pvm.jitter (mktysct): Do not get a type name argument.
	(tysctsetn): New instruction.
	* testsuite/poke.pkl/redef-diag-7.pk: New test.
	* testsuite/Makefile.am (EXTRA_DIST): Add new test.
	* libpoke/pkl-insn.def: New instruction tysctsetn.
	* libpoke/pkl-gen.pks (field_location_str): Get the name of the
	struct type in an argument.
	(check_struct_field_constraint): Likewise.
	(handle_struct_field_constraints): Likewise.
	(struct_field_extractor): Likewise.
	(struct_field_mapper): Likewise.
	(struct_mapper): Likewise.
	(struct_constructor): Likewise.
	(struct_deintegrator): Likewise.
	(typifier_any_any_wrapper): Likewise.
	(typifier_any_any_int_wrapper): Likewise.
	(struct_typifier): Likewise.
	(typeof): Set the name of the Pk_Type struct explicitly.
	(common_typifier): Do not set the field `name' of Pk_Type.
	* libpoke/pkl-gen.c (pkl_gen_pr_decl): Pass type names to RAS
	macros requiring it.
	(pkl_gen_pr_ass_stmt): Use PKL_AST_TYPE_NAMED_P instead of
	PKL_AST_TYPE_NAME to query whether a type is aliased.
	(pkl_gen_pr_func): Likewise.
	(pkl_gen_pr_func_arg): Likewise.
	(pkl_gen_pr_cast): Likewise.
	(pkl_gen_pr_type_array): Likewise.
	(pkl_gen_pr_type_struct): Likewise.
	(pkl_gen_pr_type_alias): New handler.
	* libpoke/pkl-env.c (register_decl): Get an ast argument.
	(register_decl): Invoke pkl_ast_rename_decl to rename
	declarations.
	(pkl_env_register): Get an ast argument.
	* libpoke/pkl-env.h: Change prototype of pkl_ast_rename_decl
	accordingly.
	* libpoke/pkl-ast.h (enum pkl_ast_type_code): New value
	PKL_TYPE_ALIAS.
	(PKL_AST_TYPE_NAME): Redefine to support type aliases nodes.
	(PKL_AST_TYPE_CODE2): Define.
	(struct pkl_ast_type): Remove field name, new field named_p, and
	add fields for type aliases.
	(PKL_AST_DECL_TYPE_NAMES): Define.
	(struct pkl_ast_decl): New field type_names.
	* libpoke/pkl-ast.c (pkl_ast_make_type): Do not initialize name.
	(pkl_ast_type_resolv): New function.
	(pkl_ast_make_named_type): Likewise.
	(pkl_ast_add_type_name_to_decl): Likewise.
	(pkl_ast_rename_decl): Likewise.
	(pkl_ast_node_free_1): Support type aliases nodes.
	(pkl_ast_format_1): Likewise.
	* libpoke/pk-val.c (pk_make_struct_type): Do not pass name to
	pvm_make_struct_type.

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

	* libpoke/pvm-val.c (pvm_allocate_struct_attrs): Do not over-allocate.
	`fnames' and `ftypes' only need `nfields' number of elements.
2025-01-03  Mohammad-Reza Nabipoor  <mnabipoor@gnu.org>

	* libpoke/pkl-gen.pks (RAS_MACRO_PUSHIOS): New macro to extend
	`pushios' insn to raise exception if there's no IOS.
	* libpoke/pkl-gen.c (pkl_gen_pr_map): Replace `pushios' insn with
	`RAS_MACRO_PUSHIOS'.
	* testsuite/poke.pkl/map-diag-1.pk: New test.
	* testsuite/Makefile.am (EXTRA_DIST): Update.

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

	* libpoke/pvm-alloc.c (pvm_alloc_register_thread): Move side-effects out of
	`assert'.
	(pvm_alloc_unregister_thread): Likewise.

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

	* libpoke/pvm.jitter (bzl): Normalize branch condition to prevent
	loss of information due to casting to `jitter_uint' on 32-bit systems.
	(bzlu): Likewise.
	(bnzl): Likewise.
	(bnzlu): Likewise.

2024-12-29  Mohammad-Reza Nabipoor  <mnabipoor@gnu.org>

	* libpoke/pvm.h (pvm_make_integral): New function declaration.
	* libpoke/pvm-val.c (pvm_make_integral): New function moved from
	`libpoke/pvm-val.c'.
	* libpoke/pkl-asm.c (pvm_make_integral): Removed.
	* libpoke/pkl-promo.c (pkl_promo_ps_op_binary): Do not cast to `int<32>'
	for the following operators: `&&', `||' and `=>' to prevent loss of
	information due to possible truncation.
	(pkl_promo_ps_op_unary): Likewise for `!' unary operator.
	* libpoke/pkl-gen.c (pkl_gen_pr_op_and): Change codegen to work correctly
	with operands wider than `int<32>'.
	(pkl_gen_pr_op_or): Likewise.
	(pkl_gen_pr_op_impl): Likewise.
	(pkl_gen_pr_op_not): Likewise.
	* testsuite/Makefile.am (EXTRA_DIST): Update.
	* testsuite/poke.pkl/and-16.pk: New test.
	* testsuite/poke.pkl/and-17.pk: Likewise.
	* testsuite/poke.pkl/and-18.pk: Likewise.
	* testsuite/poke.pkl/and-int-struct-4.pk: Likewise.
	* testsuite/poke.pkl/impl-6.pk: Likewise.
	* testsuite/poke.pkl/or-6.pk: Likewise.
	* testsuite/poke.pkl/or-7.pk: Likewise.
	* testsuite/poke.pkl/or-int-struct-4.pk: Likewise.

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

	* libpoke/pkl-lex.l: Fix pattern for matching delimited alien token
	to not use name definitions inside character class.
	(NOT_GT): New name definition.
	* testsuite/poke.cmd/ios-4.pk: New test.
	* testsuite/Makefile.am (EXTRA_DIST): Update.

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

	* libpoke/pkl-gen.c (pkl_gen_ps_op_add): Install a writer for the
	result of array concatenation.
	* testsuite/poke.map/ass-map-29.pk: New test.
	* testsuite/Makefile.am (EXTRA_DIST): Update.

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

	* libpoke/pkl-gen.pks (atrim): Install a writer when the original
	original is not mapped.
	* testsuite/poke.map/ass-map-28.pk: New test.
	* testsuite/Makefile.am (EXTRA_DIST): Update.

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

	* doc/learn-poke-language-in-y-minutes.pk: Update and add a few
        more examples.

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

	* etc/poke-ras-mode.el: Replace FSF's address with URL.
	* testsuite/poke.cmd/cmd.exp: Likewise.
	* testsuite/poke.map/map.exp: Likewise.
	* testsuite/poke.pickles/pickles.exp: Likewise.
	* testsuite/poke.pkl/pkl.exp: Likewise.
	* testsuite/poke.pktest/pktest.exp: Likewise.
	* testsuite/poke.pvm/pvm.exp: Likewise.
	* testsuite/poke.repl/repl.exp: Likewise.
	* testsuite/poke.std/std.exp: Likewise.
	* testsuite/poke.time/time.exp: Likewise.

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

	* poke/pk-cmd.c (pk_cmd_exec): Clear lexical cuckolding if
	pk_compile_statement_with_loc fails.

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

	* bootstrap.conf (bootstrap_epilogue): Define.

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

	* poke/pk-cmd-editor.c (pk_cmd_editor): Do not print a dot at the
	end of error messages.

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

	* libpoke/pkl-fold.c (OP_BINARY_SIS): Signal out of memory.
	(EMUL_SIS): Use malloc instead of xmalloc.
	(OP_BINARY_SSS): Call PKL_PASS_ERROR after PKL_ICE.
	* libpoke/pkl-trans.c (pkl_trans1_ps_format): Likewise.
	(pkl_trans2_ps_incdecr): Likewise.
	* libpoke/pkl-trans.c (XSTRDUP): Likewise.
	(XMALLOC): Likewise.
	* libpoke/pkl-gen.c (pkl_gen_ps_func): Likewise.

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

	* libpoke/pkl-ast.c: Likewise.

	* libpoke/pkl-fold.c: Do not include xalloc.h.

	* libpoke/pkl-tab.y: Do not include xalloc.h.
	* libpoke/pkl-trans.c: Do not include xalloc.h.
	(XSTRDUP): Define.
	(XMALLOC): Likewise.

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

	* pickles/btf-ext.pk (BTF_Ext_Header): Improve constraint for
	`magic' so it handles endianness better.

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

	* poke/pk-cmd-help.pk: Add missing "dispatch" in synopsis for .vm.

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

	* libpoke/pvm.jitter (dup-wap-to-dup): New rewrite.
	(swap-tuck-to-over): Likewise.

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

	* libpoke/pkl-typify.c (pkl_typify1_ps_struct_type_field): Fix
	memory leak.

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

	* testsuite/poke.cmd/set-oacutoff-2.pk: Escape dots in regexps.
	* testsuite/poke.pkl/printf-25.pk: Likewise.
	* testsuite/poke.pkl/format-28.pk: Likewise.
	* testsuite/poke.pkl/format-20.pk: Likewise.
	* testsuite/poke.pkl/format-19.pk: Likewise.
	* testsuite/poke.cmd/set-oindent.pk: Likewise.
	* testsuite/poke.cmd/set-odepth-1.pk: Likewise.

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

	* libpoke/pvm-val.h: Remove spurious definition of
	pvm_make_mapinfo.

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

	* poke/pk-cmd-ios.c (file_cmd): Add flags to command synopsis.
	(proc_cmd): Likewise.

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

	* doc/poke.texi (Write-only Partial Bytes): New section.

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

	* testsuite/poke.pkl/break-while-7.pk: New test.
	* testsuite/Makefile.am (EXTRA_DIST): Update.

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.
[--snip--]
