2026-08-16  Mohammad-Reza Nabipoor  <mnabipoor@gnu.org>

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

2026-08-10  Mohammad-Reza Nabipoor  <mnabipoor@gnu.org>

	* NEWS: Update for 4.90 pre-release.
	* configure.ac: Use year interval in copyright.
	* doc/gendocs_template: Bump version to 4.90.

2026-08-10  Mohammad-Reza Nabipoor  <mnabipoor@gnu.org>

	* libpoke/libpoke.h (struct pk_term_if): Add `_reserved' field to
	have room for more pointers without breaking the ABI (changing the
	size of the struct).
	(struct pk_iod_if): Likewise.

2026-08-10  Mohammad-Reza Nabipoor  <mnabipoor@gnu.org>

	* libpoke/Makefile.am (LTV_CURRENT): Bump the version to 2.

2026-08-10  Mohammad-Reza Nabipoor  <mnabipoor@gnu.org>

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

2026-08-10  Mohammad-Reza Nabipoor  <mnabipoor@gnu.org>

	* libpoke/pkl-typify.c (pkl_typify1_ps_op_frela): Remove unused vars.

2026-08-10  Mohammad-Reza Nabipoor  <mnabipoor@gnu.org>

	* libpoke/libpoke.h (pk_alien_token_handler_fn): Add function
	parameter of type `pk_compiler'.
	(pk_alien_dtoken_handler_fn): Likewise.
	* libpoke/pkl.h (pk_alien_token_handler_fn): Likewise.
	(pk_alien_dtoken_handler_fn): Likewise.
	* poke/pkl-ios.c (pk_ios_alien_token_handler): Likewise.
	* libpoke/pkl-lex.l (Rule for lexical cuckolding) Pass compiler
	instance.

2026-08-10  Mohammad-Reza Nabipoor  <mnabipoor@gnu.org>

	* libpoke/libpoke.h (pk_register_thread): Add function parameter of
	type `pk_compiler'.
	(pk_unregister_thread): Likewise.
	* libpoke/libpoke.c (pk_register_thread): Likewise.
	(pk_unregister_thread): Likewise.
	* poke/pk-hserver.c (hserver_thread_worker): Pass `poke_compiler'
	to `pk_{,un}register_thread'.

2026-08-10  Mohammad-Reza Nabipoor  <mnabipoor@gnu.org>

	* libpoke/ios.h: Add new flag: IOS_F_TRUNCATE.
	* libpoke/ios-dev-file.c: Likewise.
	* libpoke/ios-dev-nbd.c: Likewise.
	* libpoke/libpoke.h: Likewise.
	* libpoke/pkl-rt.pk: Likewise.
	* doc/poke.texi (subsubsection open): Likewise.
	* etc/vim/syntax/poke.vim: Likewise.
	* testsuite/poke.pkl/open-4.pk: New test.
	* testsuite/Makefile.am (EXTRA_DIST): Update.

2026-08-09  Mohammad-Reza Nabipoor  <mnabipoor@gnu.org>

	* testsuite/poke.pkl/pow-f32-4.pk: Add one missing mask to
	floating-point result.

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

	* libpoke/pkl-fold.c (EMUL_III): Cast LHS to `uint64_t' to avoid
	UB by left shifting a int64_t number by 63.
	* libpoke/pvm.jitter (PVM_BINOP): Add `TYPECAST' argument to get
	the type to cast LHS operand.
	(instruction addi): Add cast.
	(instruction addiu): Likewise.
	(instrucction addl): Likewise.
	(instrucction addlu): Likewise.
	(instrucction subi): Likewise.
	(instrucction subiu): Likewise.
	(instrucction subl): Likewise.
	(instrucction sublu): Likewise.
	(instrucction muli): Likewise.
	(instrucction muliu): Likewise.
	(instrucction mull): Likewise.
	(instrucction mullu): Likewise.
	(instrucction divi): Likewise.
	(instrucction diviu): Likewise.
	(instrucction divl): Likewise.
	(instrucction divlu): Likewise.
	(instrucction modi): Likewise.
	(instrucction modiu): Likewise.
	(instrucction modl): Likewise.
	(instrucction modlu): Likewise.
	(instrucction bxori): Likewise.
	(instrucction bxoriu): Likewise.
	(instrucction bxorl): Likewise.
	(instrucction bxorlu): Likewise.
	(instrucction bori): Likewise.
	(instrucction boriu): Likewise.
	(instrucction borl): Likewise.
	(instrucction borlu): Likewise.
	(instrucction bandi): Likewise.
	(instrucction bandiu): Likewise.
	(instrucction bandl): Likewise.
	(instrucction bandlu): Likewise.
	(instrucction bsli): Likewise.
	(instrucction bsliu): Likewise.
	(instrucction bsll): Likewise.
	(instrucction bsllu): Likewise.
	(instrucction bsri): Likewise.
	(instrucction bsriu): Likewise.
	(instrucction bsrl): Likewise.
	(instrucction bsrlu): Likewise.
	* testsuite/poke.pkl/sl-integers-13.pk: New test.
	* testsuite/Makefile.am (EXTRA_DIST): Update

2026-08-02  Mohammad-Reza Nabipoor  <mnabipoor@gnu.org>

	BZ 34404
	* doc/poke.texi (subsection Shortening and Shifting Lines):
	Remove wrong code.

2026-07-31  Mohammad-Reza Nabipoor  <mnabipoor@gnu.org>

	BZ 34404
	* libpoke/pkl-asm.pks (macro array_conv_sel): Build a more expressive
	message field for `E_conv' exception.
	(macro array_conv_siz): Likewise.
	* testsuite/poke.pkl/array-bound-diag-2.pk: New test.
	* testsuite/poke.pkl/array-siz-diag-4.pk: Likewise.
	* testsuite/Makefile.am (EXTRA_DIST): Update.

2026-07-19  Mohammad-Reza Nabipoor  <mnabipoor@gnu.org>

	* doc/poke.texi (subsection GNOME Terminal): Add example for use
	of `gio'.
	(subsection Saving the Image): Fix typo.
	(subsection Shortening and Shifting Lines): Likewise.

2026-07-10  David Faust  <david.faust@oracle.com>

	* libpoke/pvm.jitter (popend): Check whether the new endianness is
	actually different from the old before marking values dirty.
	* testsuite/Makefile.am (EXTRA_DIST): Add new test.
	* testsuite/poke.map/maps-structs-endian-12.pk: New.

2026-07-09  David Faust  <david.faust@oracle.com>

	* libpoke/ios-ivtree.h (interval_mknode, ios_ivtree_destory)
	(ios_ivtree_destroy_sub): Use non-GC memory for the tree.
	* libpoke/ios-range.c (ios_rangetbl_create): Do not register the table
	as GC root.
	(ios_rangetbl_destroy): Do not de-register the table as GC root.

2026-06-17  Mohammad-Reza Nabipoor  <mnabipoor@gnu.org>

	* testsuite/poke.pkl/pow-f32-1.pk: Mask 3-LSB of results to prevent
	failure on OpenBSD (7.9).
	* testsuite/poke.pkl/pow-f32-2.pk: Likewise.
	* testsuite/poke.pkl/pow-f32-3.pk: Likewise.
	* testsuite/poke.pkl/pow-f32-4.pk: Likewise.

2026-06-17  Mohammad-Reza Nabipoor  <mnabipoor@gnu.org>

	* libpoke/pvm.h (pvm_ceilf): Wrapper for `ceilf'.
	(pvm_ceil): Wrapper for `ceil'.
	* libpoke/pvm.h (pvm_ceilf): New function.
	(pvm_ceil): Likewise.
	* libpoke/pvm.jitter (wrapped-functions): Remove `ceilf/ceil', and
	add `pvm_ceilf/pvm_ceil'.

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

	* poke/Makefile.am (poke_LDADD): Re-order `libgnu.la' and
	`libpoke.la' to have `-lm' after `libpoke'.

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

	* testsuite/poke.pkl/pow-f32-2.pk: Remove NaN.
	* testsuite/poke.pkl/pow-f32-4.pk: Likewise.

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

	* bootstrap.conf (gnulib_modules): Add `{ceil{,f},fmod{,f}}-ieee'
	* libpoke/pkl-lex.l: Recognize tokens for floating-point operators.
	* libpoke/pkl-ops.def: Add new floating-point operators.
	* libpoke/pkl-ast.h (struct pkl_ast_incrdecr): Add new field `float_p'.
	(PKL_AST_INCRDECR_FLOAT_P): New macro.
	(pkl_ast_make_incrdecr): Add new param `float_p'.
	(pkl_ast_type_incr_step): Likewise.
	* libpoke/pkl-ast.c (pkl_ast_make_incrdecr): Likewise.
	(pkl_ast_type_incr_step): Likewise.
	* libpoke/pkl-ast.c (pkl_ast_format_1): Handle `float_p' field.
	* libpoke/pkl-tab.y: Add new tokens for floating-point operators with
	new associativity.
	(expression): Add new rules.
	(primary): Likewise.
	* libpoke/pkl-trans.c (pkl_trans2_ps_incrdecr): Handle floating-point.
	* libpoke/pkl-typify.c (pkl_typify1_ps_op_fneg): Handle unary negation
	for floating-points.
	(pkl_typify1_ps_fbin): Handle binary floating-point operators.
	(pkl_typify1_ps_incrdecr): Handle floating-points.
	(pkl_phase_typify1): Likewise.
	(pkl_typify1_ps_op_frela): Handle floating-point relational operators.
	* libpoke/pkl-promo.c (pkl_promo_ps_op_frela): Likewise.
	(pkl_phase_promo): Likewise.
	* libpoke/pkl-insn.def: Add new instructions for floating-point
	operations.
	(addf32): New instruction.
	(subf32): Likewise.
	(mulf32): Likewise.
	(divf32): Likewise.
	(cdivf32): Likewise.
	(modf32): Likewise.
	(powf32): Likewise.
	(negf32): Likewise.
	(sqrtf32): Likewise.
	(ltf32): Likewise.
	(lef32): Likewise.
	(gtf32): Likewise.
	(gef32): Likewise.
	(eqf32): Likewise.
	(nef32): Likewise.
	(addf64): Likewise.
	(subf64): Likewise.
	(mulf64): Likewise.
	(divf64): Likewise.
	(cdivf64): Likewise.
	(modf64): Likewise.
	(powf64): Likewise.
	(negf64): Likewise.
	(sqrtf64): Likewise.
	(ltf64): Likewise.
	(lef64): Likewise.
	(gtf64): Likewise.
	(gef64): Likewise.
	(eqf64): Likewise.
	(nef64): Likewise.
	(addf): New macro instructions.
	(subf): Likewise.
	(mulf): Likewise.
	(divf): Likewise.
	(cdivf): Likewise.
	(modf): Likewise.
	(powf): Likewise.
	(negf): Likewise.
	(sqrtf): Likewise.
	(ltf): Likewise.
	(lef): Likewise.
	(gtf): Likewise.
	(gef): Likewise.
	(eqf): Likewise.
	(nef): Likewise.
	* libpoke/pvm.jitter (wrapped-functions): Add `pow{,f}`, `sqrt{,f}',
	`fmod{,f}', `ceil{,f}'.
	(early-c): Include `math.h'.
	(late-header-c): New macros: `PVM_FP_BINOP', `PVM_FP_DYOP',
	`PVM_FP_MOOP', `PVM_FP_CMP', `NOROUND', `NEGATION'.
	(addf32): New instruction.
	(subf32): Likewise.
	(mulf32): Likewise.
	(divf32): Likewise.
	(cdivf32): Likewise.
	(modf32): Likewise.
	(powf32): Likewise.
	(negf32): Likewise.
	(sqrtf32): Likewise.
	(ltf32): Likewise.
	(lef32): Likewise.
	(gtf32): Likewise.
	(gef32): Likewise.
	(eqf32): Likewise.
	(nef32): Likewise.
	(addf64): Likewise.
	(subf64): Likewise.
	(mulf64): Likewise.
	(divf64): Likewise.
	(cdivf64): Likewise.
	(modf64): Likewise.
	(powf64): Likewise.
	(negf64): Likewise.
	(sqrtf64): Likewise.
	(ltf64): Likewise.
	(lef64): Likewise.
	(gtf64): Likewise.
	(gef64): Likewise.
	(eqf64): Likewise.
	(nef64): Likewise.
	* libpoke/pkl-asm.c (pkl_asm_insn_fbinop): New function.
	(pkl_asm_insn_fcmp): Likewise.
	(pkl_asm_insn): Handle floating-point arithmetic and relational
	operations.
	and `powf' modules.
	* libpoke/pkl-gen.c (pkl_gen_ps_op_binexp): Handle `PKL_AST_OP_FNEG'.
	(pkl_gen_ps_op_fbin): Generate code for floating-point binary
	operators.
	(pkl_gen_ps_op_frela): Generate code for floating-point relational
	operators.
	(pkl_phase_gen): Handle floating-point operators.
	* libpoke/std.pk (sqrtf): New function.
	(sqrtd): Likewise.
	* testsuite/poke.std/std-test.pk: Add new tests for `sqrt{f,d}'.
	* testsuite/poke.pkl/add-f32-1.pk: New test.
	* testsuite/poke.pkl/add-f32-2.pk: Likewise.
	* testsuite/poke.pkl/add-f32-3.pk: Likewise.
	* testsuite/poke.pkl/add-f32-4.pk: Likewise.
	* testsuite/poke.pkl/add-f32-diag-1.pk: Likewise.
	* testsuite/poke.pkl/add-f32-diag-2.pk: Likewise.
	* testsuite/poke.pkl/add-f64-1.pk: Likewise.
	* testsuite/poke.pkl/add-f64-2.pk: Likewise.
	* testsuite/poke.pkl/add-f64-3.pk: Likewise.
	* testsuite/poke.pkl/add-f64-4.pk: Likewise.
	* testsuite/poke.pkl/add-f64-diag-1.pk: Likewise.
	* testsuite/poke.pkl/add-f64-diag-2.pk: Likewise.
	* testsuite/poke.pkl/cdiv-f32-1.pk: Likewise.
	* testsuite/poke.pkl/cdiv-f32-2.pk: Likewise.
	* testsuite/poke.pkl/cdiv-f32-3.pk: Likewise.
	* testsuite/poke.pkl/cdiv-f32-4.pk: Likewise.
	* testsuite/poke.pkl/cdiv-f32-diag-1.pk: Likewise.
	* testsuite/poke.pkl/cdiv-f32-diag-2.pk: Likewise.
	* testsuite/poke.pkl/cdiv-f64-1.pk: Likewise.
	* testsuite/poke.pkl/cdiv-f64-2.pk: Likewise.
	* testsuite/poke.pkl/cdiv-f64-3.pk: Likewise.
	* testsuite/poke.pkl/cdiv-f64-4.pk: Likewise.
	* testsuite/poke.pkl/cdiv-f64-diag-1.pk: Likewise.
	* testsuite/poke.pkl/cdiv-f64-diag-2.pk: Likewise.
	* testsuite/poke.pkl/div-f32-1.pk: Likewise.
	* testsuite/poke.pkl/div-f32-2.pk: Likewise.
	* testsuite/poke.pkl/div-f32-3.pk: Likewise.
	* testsuite/poke.pkl/div-f32-4.pk: Likewise.
	* testsuite/poke.pkl/div-f32-diag-1.pk: Likewise.
	* testsuite/poke.pkl/div-f32-diag-2.pk: Likewise.
	* testsuite/poke.pkl/div-f64-1.pk: Likewise.
	* testsuite/poke.pkl/div-f64-2.pk: Likewise.
	* testsuite/poke.pkl/div-f64-3.pk: Likewise.
	* testsuite/poke.pkl/div-f64-4.pk: Likewise.
	* testsuite/poke.pkl/div-f64-diag-1.pk: Likewise.
	* testsuite/poke.pkl/div-f64-diag-2.pk: Likewise.
	* testsuite/poke.pkl/eq-f32-1.pk: Likewise.
	* testsuite/poke.pkl/eq-f32-2.pk: Likewise.
	* testsuite/poke.pkl/eq-f32-3.pk: Likewise.
	* testsuite/poke.pkl/eq-f32-4.pk: Likewise.
	* testsuite/poke.pkl/eq-f32-5.pk: Likewise.
	* testsuite/poke.pkl/eq-f32-6.pk: Likewise.
	* testsuite/poke.pkl/eq-f32-7.pk: Likewise.
	* testsuite/poke.pkl/eq-f32-diag-1.pk: Likewise.
	* testsuite/poke.pkl/eq-f32-diag-2.pk: Likewise.
	* testsuite/poke.pkl/eq-f64-1.pk: Likewise.
	* testsuite/poke.pkl/eq-f64-2.pk: Likewise.
	* testsuite/poke.pkl/eq-f64-3.pk: Likewise.
	* testsuite/poke.pkl/eq-f64-4.pk: Likewise.
	* testsuite/poke.pkl/eq-f64-5.pk: Likewise.
	* testsuite/poke.pkl/eq-f64-6.pk: Likewise.
	* testsuite/poke.pkl/eq-f64-7.pk: Likewise.
	* testsuite/poke.pkl/eq-f64-diag-1.pk: Likewise.
	* testsuite/poke.pkl/eq-f64-diag-2.pk: Likewise.
	* testsuite/poke.pkl/ge-f32-1.pk: Likewise.
	* testsuite/poke.pkl/ge-f32-2.pk: Likewise.
	* testsuite/poke.pkl/ge-f32-3.pk: Likewise.
	* testsuite/poke.pkl/ge-f32-4.pk: Likewise.
	* testsuite/poke.pkl/ge-f32-5.pk: Likewise.
	* testsuite/poke.pkl/ge-f32-6.pk: Likewise.
	* testsuite/poke.pkl/ge-f32-7.pk: Likewise.
	* testsuite/poke.pkl/ge-f32-diag-1.pk: Likewise.
	* testsuite/poke.pkl/ge-f32-diag-2.pk: Likewise.
	* testsuite/poke.pkl/ge-f64-1.pk: Likewise.
	* testsuite/poke.pkl/ge-f64-2.pk: Likewise.
	* testsuite/poke.pkl/ge-f64-3.pk: Likewise.
	* testsuite/poke.pkl/ge-f64-4.pk: Likewise.
	* testsuite/poke.pkl/ge-f64-5.pk: Likewise.
	* testsuite/poke.pkl/ge-f64-6.pk: Likewise.
	* testsuite/poke.pkl/ge-f64-7.pk: Likewise.
	* testsuite/poke.pkl/ge-f64-diag-1.pk: Likewise.
	* testsuite/poke.pkl/ge-f64-diag-2.pk: Likewise.
	* testsuite/poke.pkl/gt-f32-1.pk: Likewise.
	* testsuite/poke.pkl/gt-f32-2.pk: Likewise.
	* testsuite/poke.pkl/gt-f32-3.pk: Likewise.
	* testsuite/poke.pkl/gt-f32-4.pk: Likewise.
	* testsuite/poke.pkl/gt-f32-5.pk: Likewise.
	* testsuite/poke.pkl/gt-f32-6.pk: Likewise.
	* testsuite/poke.pkl/gt-f32-7.pk: Likewise.
	* testsuite/poke.pkl/gt-f32-diag-1.pk: Likewise.
	* testsuite/poke.pkl/gt-f32-diag-2.pk: Likewise.
	* testsuite/poke.pkl/gt-f64-1.pk: Likewise.
	* testsuite/poke.pkl/gt-f64-2.pk: Likewise.
	* testsuite/poke.pkl/gt-f64-3.pk: Likewise.
	* testsuite/poke.pkl/gt-f64-4.pk: Likewise.
	* testsuite/poke.pkl/gt-f64-5.pk: Likewise.
	* testsuite/poke.pkl/gt-f64-6.pk: Likewise.
	* testsuite/poke.pkl/gt-f64-7.pk: Likewise.
	* testsuite/poke.pkl/gt-f64-diag-1.pk: Likewise.
	* testsuite/poke.pkl/gt-f64-diag-2.pk: Likewise.
	* testsuite/poke.pkl/le-f32-1.pk: Likewise.
	* testsuite/poke.pkl/le-f32-2.pk: Likewise.
	* testsuite/poke.pkl/le-f32-3.pk: Likewise.
	* testsuite/poke.pkl/le-f32-4.pk: Likewise.
	* testsuite/poke.pkl/le-f32-5.pk: Likewise.
	* testsuite/poke.pkl/le-f32-6.pk: Likewise.
	* testsuite/poke.pkl/le-f32-7.pk: Likewise.
	* testsuite/poke.pkl/le-f32-diag-1.pk: Likewise.
	* testsuite/poke.pkl/le-f32-diag-2.pk: Likewise.
	* testsuite/poke.pkl/le-f64-1.pk: Likewise.
	* testsuite/poke.pkl/le-f64-2.pk: Likewise.
	* testsuite/poke.pkl/le-f64-3.pk: Likewise.
	* testsuite/poke.pkl/le-f64-4.pk: Likewise.
	* testsuite/poke.pkl/le-f64-5.pk: Likewise.
	* testsuite/poke.pkl/le-f64-6.pk: Likewise.
	* testsuite/poke.pkl/le-f64-7.pk: Likewise.
	* testsuite/poke.pkl/le-f64-diag-1.pk: Likewise.
	* testsuite/poke.pkl/le-f64-diag-2.pk: Likewise.
	* testsuite/poke.pkl/lt-f32-1.pk: Likewise.
	* testsuite/poke.pkl/lt-f32-2.pk: Likewise.
	* testsuite/poke.pkl/lt-f32-3.pk: Likewise.
	* testsuite/poke.pkl/lt-f32-4.pk: Likewise.
	* testsuite/poke.pkl/lt-f32-5.pk: Likewise.
	* testsuite/poke.pkl/lt-f32-6.pk: Likewise.
	* testsuite/poke.pkl/lt-f32-7.pk: Likewise.
	* testsuite/poke.pkl/lt-f32-diag-1.pk: Likewise.
	* testsuite/poke.pkl/lt-f32-diag-2.pk: Likewise.
	* testsuite/poke.pkl/lt-f64-1.pk: Likewise.
	* testsuite/poke.pkl/lt-f64-2.pk: Likewise.
	* testsuite/poke.pkl/lt-f64-3.pk: Likewise.
	* testsuite/poke.pkl/lt-f64-4.pk: Likewise.
	* testsuite/poke.pkl/lt-f64-5.pk: Likewise.
	* testsuite/poke.pkl/lt-f64-6.pk: Likewise.
	* testsuite/poke.pkl/lt-f64-7.pk: Likewise.
	* testsuite/poke.pkl/lt-f64-diag-1.pk: Likewise.
	* testsuite/poke.pkl/lt-f64-diag-2.pk: Likewise.
	* testsuite/poke.pkl/mod-f32-1.pk: Likewise.
	* testsuite/poke.pkl/mod-f32-2.pk: Likewise.
	* testsuite/poke.pkl/mod-f32-3.pk: Likewise.
	* testsuite/poke.pkl/mod-f32-4.pk: Likewise.
	* testsuite/poke.pkl/mod-f32-diag-1.pk: Likewise.
	* testsuite/poke.pkl/mod-f32-diag-2.pk: Likewise.
	* testsuite/poke.pkl/mod-f64-1.pk: Likewise.
	* testsuite/poke.pkl/mod-f64-2.pk: Likewise.
	* testsuite/poke.pkl/mod-f64-3.pk: Likewise.
	* testsuite/poke.pkl/mod-f64-4.pk: Likewise.
	* testsuite/poke.pkl/mod-f64-diag-1.pk: Likewise.
	* testsuite/poke.pkl/mod-f64-diag-2.pk: Likewise.
	* testsuite/poke.pkl/mul-f32-1.pk: Likewise.
	* testsuite/poke.pkl/mul-f32-2.pk: Likewise.
	* testsuite/poke.pkl/mul-f32-3.pk: Likewise.
	* testsuite/poke.pkl/mul-f32-4.pk: Likewise.
	* testsuite/poke.pkl/mul-f32-diag-1.pk: Likewise.
	* testsuite/poke.pkl/mul-f32-diag-2.pk: Likewise.
	* testsuite/poke.pkl/mul-f64-1.pk: Likewise.
	* testsuite/poke.pkl/mul-f64-2.pk: Likewise.
	* testsuite/poke.pkl/mul-f64-3.pk: Likewise.
	* testsuite/poke.pkl/mul-f64-4.pk: Likewise.
	* testsuite/poke.pkl/mul-f64-diag-1.pk: Likewise.
	* testsuite/poke.pkl/mul-f64-diag-2.pk: Likewise.
	* testsuite/poke.pkl/ne-f32-1.pk: Likewise.
	* testsuite/poke.pkl/ne-f32-2.pk: Likewise.
	* testsuite/poke.pkl/ne-f32-3.pk: Likewise.
	* testsuite/poke.pkl/ne-f32-4.pk: Likewise.
	* testsuite/poke.pkl/ne-f32-5.pk: Likewise.
	* testsuite/poke.pkl/ne-f32-6.pk: Likewise.
	* testsuite/poke.pkl/ne-f32-7.pk: Likewise.
	* testsuite/poke.pkl/ne-f32-diag-1.pk: Likewise.
	* testsuite/poke.pkl/ne-f32-diag-2.pk: Likewise.
	* testsuite/poke.pkl/ne-f64-1.pk: Likewise.
	* testsuite/poke.pkl/ne-f64-2.pk: Likewise.
	* testsuite/poke.pkl/ne-f64-3.pk: Likewise.
	* testsuite/poke.pkl/ne-f64-4.pk: Likewise.
	* testsuite/poke.pkl/ne-f64-5.pk: Likewise.
	* testsuite/poke.pkl/ne-f64-6.pk: Likewise.
	* testsuite/poke.pkl/ne-f64-7.pk: Likewise.
	* testsuite/poke.pkl/ne-f64-diag-1.pk: Likewise.
	* testsuite/poke.pkl/ne-f64-diag-2.pk: Likewise.
	* testsuite/poke.pkl/neg-f32-1.pk: Likewise.
	* testsuite/poke.pkl/neg-f32-2.pk: Likewise.
	* testsuite/poke.pkl/neg-f32-diag-1.pk: Likewise.
	* testsuite/poke.pkl/neg-f64-1.pk: Likewise.
	* testsuite/poke.pkl/neg-f64-2.pk: Likewise.
	* testsuite/poke.pkl/neg-f64-diag-1.pk: Likewise.
	* testsuite/poke.pkl/neg-f64-diag-2.pk: Likewise.
	* testsuite/poke.pkl/neg-f64-diag-3.pk: Likewise.
	* testsuite/poke.pkl/postdecr-f32-1.pk: Likewise.
	* testsuite/poke.pkl/postdecr-f32-2.pk: Likewise.
	* testsuite/poke.pkl/postdecr-f64-1.pk: Likewise.
	* testsuite/poke.pkl/postdecr-f64-2.pk: Likewise.
	* testsuite/poke.pkl/postdecr-f64-diag-1.pk: Likewise.
	* testsuite/poke.pkl/postdecr-f64-diag-2.pk: Likewise.
	* testsuite/poke.pkl/postincr-f32-1.pk: Likewise.
	* testsuite/poke.pkl/postincr-f32-2.pk: Likewise.
	* testsuite/poke.pkl/postincr-f64-1.pk: Likewise.
	* testsuite/poke.pkl/postincr-f64-2.pk: Likewise.
	* testsuite/poke.pkl/postincr-f64-diag-1.pk: Likewise.
	* testsuite/poke.pkl/postincr-f64-diag-2.pk: Likewise.
	* testsuite/poke.pkl/pow-f32-1.pk: Likewise.
	* testsuite/poke.pkl/pow-f32-2.pk: Likewise.
	* testsuite/poke.pkl/pow-f32-3.pk: Likewise.
	* testsuite/poke.pkl/pow-f32-4.pk: Likewise.
	* testsuite/poke.pkl/pow-f32-diag-1.pk: Likewise.
	* testsuite/poke.pkl/pow-f32-diag-2.pk: Likewise.
	* testsuite/poke.pkl/pow-f64-1.pk: Likewise.
	* testsuite/poke.pkl/pow-f64-2.pk: Likewise.
	* testsuite/poke.pkl/pow-f64-3.pk: Likewise.
	* testsuite/poke.pkl/pow-f64-4.pk: Likewise.
	* testsuite/poke.pkl/pow-f64-diag-1.pk: Likewise.
	* testsuite/poke.pkl/pow-f64-diag-2.pk: Likewise.
	* testsuite/poke.pkl/predecr-f32-1.pk: Likewise.
	* testsuite/poke.pkl/predecr-f32-2.pk: Likewise.
	* testsuite/poke.pkl/predecr-f64-1.pk: Likewise.
	* testsuite/poke.pkl/predecr-f64-2.pk: Likewise.
	* testsuite/poke.pkl/predecr-f64-diag-1.pk: Likewise.
	* testsuite/poke.pkl/predecr-f64-diag-2.pk: Likewise.
	* testsuite/poke.pkl/preincr-f32-1.pk: Likewise.
	* testsuite/poke.pkl/preincr-f32-2.pk: Likewise.
	* testsuite/poke.pkl/preincr-f64-1.pk: Likewise.
	* testsuite/poke.pkl/preincr-f64-2.pk: Likewise.
	* testsuite/poke.pkl/preincr-f64-diag-1.pk: Likewise.
	* testsuite/poke.pkl/preincr-f64-diag-2.pk: Likewise.
	* testsuite/poke.pkl/sub-f32-1.pk: Likewise.
	* testsuite/poke.pkl/sub-f32-2.pk: Likewise.
	* testsuite/poke.pkl/sub-f32-3.pk: Likewise.
	* testsuite/poke.pkl/sub-f32-4.pk: Likewise.
	* testsuite/poke.pkl/sub-f32-diag-1.pk: Likewise.
	* testsuite/poke.pkl/sub-f32-diag-2.pk: Likewise.
	* testsuite/poke.pkl/sub-f64-1.pk: Likewise.
	* testsuite/poke.pkl/sub-f64-2.pk: Likewise.
	* testsuite/poke.pkl/sub-f64-3.pk: Likewise.
	* testsuite/poke.pkl/sub-f64-4.pk: Likewise.
	* testsuite/poke.pkl/sub-f64-diag-1.pk: Likewise.
	* testsuite/poke.pkl/sub-f64-diag-2.pk: Likewise.
	* testsuite/Makefile.am (EXTRA_DIST): Update.

2026-06-11  Mohammad-Reza Nabipoor  <mnabipoor@gnu.org>

	* libpoke/pvm.jitter (wrapped-functions): Add new functions.
	* cfg.mk (sc_pvm_wrappers): Fix regexp for `grep -v end' to not
	exclude function names containing `end' (like `ios_end').
	* libpoke/ios-ivtree.h: Replace TAB with SPACES. Remove empty line
	at the end.
	* libpoke/ios-range.c: Replace TAB with SPACES. Remove empty line
	at the end. Include <config.h>.
	* libpoke/ios-range.h: Replace TAB with SPACES.
	* libpoke/pvm-alloc.c: Likewise.
	* libpoke/pvm-val.h: Likewise.
	* libpoke/pkl-gen.c: Likewise.

2026-06-11  David Faust  <david.faust@oracle.com>

	* testsuite/poke.map/map-struct-fun-1.pk: Update with a write to
	trigger remap.

2026-06-11  David Faust  <david.faust@oracle.com>
            Jose E. Marchesi  <jemarch@gnu.org>

	* libpoke/pkl-asm.pks (RAS_MACRO_AREMAP): Push a new REMAPPED_P on
	the stack along with the NVAL to indicate whether or not the value
	was actually remapped.
	(RAS_MACRO_REMAP): Likewise. Skip remapping a value if its dirty
	flag is not set.
	* libpoke/pkl-gen.c (pkl_gen_ps_var): Replace old value in
	corresponding frame if it was remapped.
	(pkl_gen_pr_indexer): Likewise.
	(pkl_gen_ps_struct_ref): Likewise.
	(pkl_gen_ps_op_remap): Accomodate new value on stack after remap.
	* libpoke/pkl-gen.pks (RAS_MACRO_AOREF): Likewise. Correct
	macro-level comment on stack state at finish.

2026-06-11  David Faust  <david.faust@oracle.com>

	* libpoke/pkl-gen.pks (ATRIM): Set offset of new array before
	adding elements so the elements inherit the proper base offset.

2026-06-11  David Faust  <david.faust@oracle.com>

	* libpoke/pkl-gen.pks (RAS_FUNCTION_STRUCT_MAPPER): Mark newly
	mapped struct dirty if endianness changed while mapping its
	fields.
	* libpoke/pkl-rt.pk (dirty, dirty_ios): New.
	* libpoke/pvm.c (pvm_set_endian): Mark every mapped value in every
	ios dirty when the VM endianness changes.
	* libpoke/pvm.jitter (popend): Likewise.

2026-06-11  David Faust  <david.faust@oracle.com>

	* libpoke/pkl-gen.pks (RAS_FUNCTION_ARRAY_MAPPER)
	(RAS_FUNCTION_STRUCT_MAPPER, ATRIM): Register newly mapped value
	in the ios.
	* libpoke/pkl-insn.def (PKL_INSN_IOREGVAL): New instruction.
	* libpoke/pkl-rt.pk (ioregval): New.

2026-06-11  David Faust  <david.faust@oracle.com>

	* libpoke/Makefile.am (libpoke_la_SOURCES): Add ios-ivtree.h,
	ios-range.h and ios-range.c.
	* libpoke/ios-ivtree.h: New.
	* libpoke/ios-range.c: New.
	* libpoke/ios-range.h: New.
	* libpoke/ios.c: Include pvm-val.h instead of pvm.h directly.
	Include new ios-range.h.
	(struct ios): Add struct ios_rangetbl *ranges member.
	(ios_open): Allocate and initialize range table.
	(ios_close): Notify range table of close.  Deallocate range table.
	(ios_write_int, ios_write_uint): Mark affected range dirty.
	(ios_register_range, ios_deregister_range, ios_mark_dirty_range)
	(ios_mark_dirty_all): New functions.
	* libpoke/ios.h (ios_register_range, ios_deregister_range)
	(ios_mark_dirty_range, ios_mark_dirty_all): Prototypes for new
	functions.
	* libpoke/pvm-alloc.c (pvm_alloc_finalize_boxed, pvm_alloc_boxed):
	New allocator and finalizer for boxed structs and arrays.
	* libpoke/pvm-alloc.h (pvm_alloc_boxed): New proto.
	* libpoke/pvm-val.c (pvm_make_array, pvm_make_struct): Use new box
	allocator.
	(pvm_val_reloc): Ensure mapinfo ioslive_p is set after reloc.
	* libpoke/pvm.c (pvm_shutdown): Trigger a GC pass between
	finalizing values and ios_shutdown.
	* libpoke/pvm.jitter (ioregval, iodirtyall): New.

2026-06-11  David Faust  <david.faust@oracle.com>

	* libpoke/ios.c (ios_search): Initialize io pointer to NULL.
	* libpoke/pkl-asm.c (pkl_asm_insn_cmsetios): New.
	(pkl_asm_insn): Use it here.
	* libpoke/pkl-asm.pks (RAS_MACRO_CMSETIOS): New.
	* libpoke/pkl-gen.c (pkl_gen_pr_type_array)
	(pkl_gen_pr_type_struct): Issue cmsetios instead of msetios
	instruction.
	* libpoke/pkl-gen.pks (RAS_FUNCTION_ARRAY_MAPPER)
	(RAS_FUNCTION_STRUCT_MAPPER): Likewise.
	* libpoke/pkl-insn.def (PKL_INSN_CMSETIOS): New.
	* libpoke/pvm.jitter (msetios): Set mapinfo ios pointer.

2026-06-11  David Faust  <david.faust@oracle.com>

	* libpoke/pkl-insn.def (PKL_INSN_MGETD, PKL_INSN_MSETD)
	(PKL_INSN_MCLEARD): New instructions.
	* libpoke/pvm-val.h: Include pvm.h.
	(struct pvm_mapinfo): Add dirty_p, ioslive_p, and io.  Update comment.
	(PVM_MAPINFO_DIRTY_P, PVM_MAPINFO_IOSLIVE_P, PVM_MAPINFO_IOS)
	(PVM_VAL_ARR_DIRTY_P, PVM_VAL_ARR_IOSLIVE_P, PVM_VAL_ARR_IOS_PTR)
	(PVM_VAL_SCT_DIRTY_P, PVM_VAL_SCT_IOSLIVE_P, PVM_VAL_SCT_IOS_PTR)
	(PVM_VAL_SET_IOS_PTR, PVM_VAL_DIRTY_P, PVM_VAL_SET_DIRTY_P)
	(PVM_VAL_IOSLIVE_P, PVM_VAL_SET_IOSLIVE_P): New macros.
	* libpoke/pvm.jitter (mgetd, msetd, mcleard): New instructions.

2026-04-20  Mohammad-Reza Nabipoor  <mnabipoor@gnu.org>

	* poke/pk-hserver.c: Add missing include <sys/select.h>.

2026-04-20  Mohammad-Reza Nabipoor  <mnabipoor@gnu.org>

	* bootstrap.conf (gnulib_modules): Add netdb-h, listen and select
	modules to enable compilation on MinGW platform.

2026-04-20  Mohammad-Reza Nabipoor  <mnabipoor@gnu.org>

	* poke/pk-term.c (pk_term_init): Fix invocation of `tgetstr' to pass
	NULL as the 2nd arg.

2026-04-19  Mohammad-Reza Nabipoor  <mnabipoor@gnu.org>

	* bootstrap.conf (gnulib_modules): Add arpa_inet-h and netinet_in-h
	modules to enable compilation on MinGW platform.

2026-04-12  Jose E. Marchesi  <jemarch@gnu.org>

	* .x-sc_codespell: New file.
	* NEWS: Fix typos.
	* TODO: Likewise.

2026-04-12  Jose E. Marchesi  <jemarch@gnu.org>

	* libpoke/pkl-tab.y (expression): Remove START_STMT load rules.

2026-03-05  Brian Witte  <brianwitte@mailfence.com>

	pkl-gen: fix writes to nested integral struct fields.
	* libpoke/pkl-gen.c (pkl_gen_pr_ass_stmt): For unmapped integral
	structs, propagate modifications up the parent chain until a mapped
	ancestor is found, then integrate and poke directly.
	* testsuite/poke.map/ass-map-30.pk: New test.
	* testsuite/poke.map/ass-map-31.pk: Likewise.
	* testsuite/poke.map/ass-map-32.pk: Likewise.
	* testsuite/poke.map/ass-map-33.pk: Likewise.
	* testsuite/poke.map/ass-map-34.pk: Likewise.
	* testsuite/poke.map/ass-map-35.pk: Likewise.
	* testsuite/poke.map/ass-map-36.pk: Likewise.
	* testsuite/poke.map/ass-map-37.pk: Likewise.
	* testsuite/poke.map/ass-map-38.pk: Likewise.
	* testsuite/poke.map/ass-map-39.pk: Likewise.
	* testsuite/poke.map/ass-map-40.pk: Likewise.
	* testsuite/poke.map/ass-map-41.pk: Likewise.
	* testsuite/poke.map/ass-map-42.pk: Likewise.
	* testsuite/poke.map/ass-map-43.pk: Likewise.
	* testsuite/poke.map/ass-map-44.pk: Likewise.
	* testsuite/poke.map/ass-map-45.pk: Likewise.
	* testsuite/poke.map/ass-map-46.pk: Likewise.
	* testsuite/poke.map/ass-map-47.pk: Likewise.
	* testsuite/poke.map/ass-map-48.pk: Likewise.
	* testsuite/Makefile.am (EXTRA_DIST): Add new tests.

2026-02-21  Bruno Haible  <bruno@clisp.org>

	Update after gnulib changed.
	* bootstrap.conf (gnulib_modules, libpoke_modules): Use module streq-opt
	instead of streq.
	* libpoke/ios.c: Include streq-opt.h instead of streq.h.

2026-02-09  Darshit Shah  <darnir@gnu.org>

	* poke/poke.c (parse_args_1): Add a missing break statement and
	fix syntax for C11 compilers by not having a statement right
	after a label. Instead, use a sub-block as gnulib's coding style
	recommends

2026-02-02  Darshit Shah  <darnir@gnu.org>

	* poke/poke.c: Introduce new global to hold the Port that poke's
	Hyperlink Server will listen to. Also update the getopt
	options (long and short) to accept a new option.
	(initialize): Set the hserver port in the PK Compiler before
	starting the hyperlink server. Once this variable is set, the
	listening socket will be created with the port defined in the
	variable. However, if it is not defined / is 0, then a random
	port will be selected.

2026-02-02  Darshit Shah  <darnir@gnu.org>

	* poke/pk-cmd.c (pk_atoi, pk_atou): Move the functions from here ...
	* common/pk-utils.c: ... to here
	* pk-hserver.c (parse_int): Delete this function, we will use the method
	  in pk-utils
	* pk-hserver.c (read_from_client): Make the token an unsigned int. Poke will
	  never generate negative token values. Similarly, make the copy of buffer a
	  const pointer to satisfy the requirements in pk_atou()

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

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

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

	* pickles/time.pk (ptime_str): New function to return string instead of
	printing the time on stdout.  This function zero-pad two-digits numbers
	for `day', `hour', `minute' and `seconds'.
	(ptime): Update to use `ptime_str'.
	* testsuite/poke.pickles/time-test.pk: New test.
	* testsuite/Makefile.am (EXTRA_DIST): Update.
	* testsuite/poke.time/time32.pk: Update outputs accordingly.

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

	* libpoke/pkl-asm.c (pkl_asm_insn_binop): Use correct insn for
	converting UINT to ULONG.
	* libpoke/pkl-gen.pks (RAS_MACRO_TYPEOF): Fix value of `code' field
	to be of type UINT instead of INT.
	* libpoke/pvm.jitter (PVM_BOOL_BINOP): Add assertion for run-time type
	checking.

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

	* doc/poke.texi (Payloads): Fix example to use megabits instead of
	megabytes.

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

	* pickles/ustar.pk (USTAR_Sector.ustar): Change type to string
	and add constraint.
	(USTAR_Sector): Add 12#B of padding at the end.
	(USTAR_Sector.get_file_name): New helper method.
	(USTAR_Sector.get_owner_user_name): Likewise.
	(USTAR_Sector.get_owner_group_name): Likewise.
	* testsuite/poke.pickles/ustar-test.pk: Add tests.

2025-08-13  Paul Bolle <pebolle@tiscali.nl>

	* pickles/ustar.pk: Make get_last_mod_time() do what it was intended
	to do.

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

	* etc/pvm-wraps-whitelist: Add `__fprintf_chk'.

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

	* libpoke/ras (.end of .function): Use `function_name' variable as
	the name of closure (instead of `$2' which was wrong).
	* libpoke/pvm-val.c (pvm_print_val_1): Add name of closure when it's
	non-`PVM_NULL'.
	* libpoke/pkl-rt.pk (_pkl_print_format_any): Adapt to do the same as
	`pvm_print_val_1'.
	* testsuite/poke.pkl/array-bound-1.pk: Adapt output.

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

	* doc/poke.texi (Conditional Expressions): Fix indexing by replacing
	@code{@?} with @code{?}.

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

	* etc/pvm-wraps-whitelist: Adapt the list of allowed functions due
	to recent change in implementation of `jitter_fatal' macro.

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

	* libpoke/pvm-program.c (pvm_disassemble_program): Pass NULL as user data
	to jitter routine printer.
	* libpoke/pvm.jitter (pvm_literal_printer_cast): Add new (unused) param
	for user data.
	(pvm_literal_printer): Likewise.
	(pvm_literal_printer_hi): Likewise.
	(pvm_literal_printer_lo): Likewise.
	(popf_printer): Likewise.
	(bits_printer): Likewise.
	(endian_printer): Likewise.
	(nenc_printer): Likewise.

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

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

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

	* testsuite/poke.pkl/for-in-int-struct-4.pk (Foo): Fix the type to
	compile!

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-10  Mohammad-Reza Nabipoor  <mnabipoor@gnu.org>

	* libpoke/pvm-val.c (pvm_print_val_1): Fix printing of weird integers
	wider than 32-bits.

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-04  Mohammad-Reza Nabipoor  <mnabipoor@gnu.org>

	* pickles/btf.pk (BTF_Type::has_type_ref): Use `int<32>' instead of `int'.
	(BTF_Type::has_size): Likewise.

2025-03-03  David Faust  <david.faust@oracle.com>

	* doc/poke.texi (Object Formats): Add entry for BPF.
	(BPF): New node describing the various BPF-related pickles.
	* pickles/bpfcore.pk: New pickle for dealing with BPF CO-RE.
	* pickles/btf.pk (BTF_Type): Minor cleanup and modernization.
	(BTF_Section): Add several new utility methods.
	* pickles/btf-dump.pk (btf_dump_type, btf_dump): Small adaptations
	for above changes.
	* pickles/Makefile.am (dist_pickles_DATA): Add `bpfcore.pk'.
	* utils/Makefile.am (bin_SCRIPTS): Add `pk-bpfcoredump'.
	(EXTRA_DIST): Add `pk-bpfcoredump.in'.
	(pk-bpfcoredump): Add rule for `pk-bpfcoredump.in`.
	* utils/pk-bpfcoredump.in: New Poke script for dumping BPF CO-RE
	relocations.

2025-03-03  David Faust  <david.faust@oracle.com>

	* pickles/bpf.pk: Rewrite to support ISA v3 and v4 instruction
	formats.

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.

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.

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

	* libpoke/pkl.c (pkl_resolve_module): Add support for loading modules
	using absolute path.

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

	* libpoke/pvm.jitter (isios): New instruction to check validity of IOS
	ID.
	(popios): Assume that the given IOS ID is valid, and do not raise any
	exception.
	(ioflags): Likewise.
	(iosize): Likewise.
	(ionum): Likewise.
	(ioref): Likewise.
	(iohandler): Likewise.
	(iogetv): Likewise.
	(iogetb): Likewise.
	(iosetb): Likewise.
	(iotype): Assume that the given IOS ID is valid, and do not push any
	exception.
	(late-c): Tweak `ioref_callback'.
	* libpoke/pkl-rt.pk (set_ios): Add check for validity of given IOS.
	(iosize): Likewise.
	(iohandler): Likewise.
	(ioflags): Likewise.
	(iobias): Likewise.
	(iovolatile): Likewise.
	(iosetbias): Likewise.
	(iotype): Adapt.
	* libpoke/pkl-insn.def (isios): New instruction.
	* testsuite/poke.pvm/pvm-insns-test.pk (tests): Add new tests for
	`isios' instruction.

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-30  Mohammad-Reza Nabipoor  <mnabipoor@gnu.org>

	* libpoke/pkl-asm.h (pkl_asm_while_loop): Accept new parameter: AST
	type node for the loop condition.
	* libpoke/pkl-asm.c (pkl_asm_while_loop): Likewise.
	* libpoke/pkl-gen.c (pkl_gen_pr_loop_stmt): Pass type of condition to
	`pkl_asm_while_loop' invocation.
	* libpoke/pkl-promo.c (pkl_promo_ps_if_stmt): Removed. That cast is
	wrong due to possible truncation of wider integers.
	* libpoke/ras (.loop): Update `pkl_asm_while_loop' invocation.
	* testsuite/poke.pkl/while-4.pk: New test.
	* testsuite/poke.pkl/while-5.pk: New test.
	* testsuite/Makefile.am (EXTRA_DIST): Update.

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