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

	* pickles/ieee754.pk (ieee754_16to32): New function to convert
	`IEEE754_binary16' to `IEEE754_binary32'.
	(ieee754_32to64): New function to convert `IEEE754_binary32'
	to `IEEE754_binary64'.
	* testsuite/poke.pickles/ieee754-test.pk: Add new tests for
	conversion of binary16 to binary 32, and binary32 to binary64.

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

	* pickles/ieee754.pk (IEEE754_binary64.is_qnan_p): Use explicit
	equality/inequality operator to generate correct code.
	(IEEE754_binary32.is_qnan_p): Likewise.
	(IEEE754_binary16.is_qnan_p): Likewise.
	(IEEE754_binary64.is_snan_p): Likewise.
	(IEEE754_binary32.is_snan_p): Likewise.
	(IEEE754_binary16.is_snan_p): Likewise.
	(IEEE754_binary64.is_zero_p): New function.
	(IEEE754_binary32.is_zero_p): Likewise.
	(IEEE754_binary16.is_zero_p): Likewise.
	(IEEE754_binary64.is_subnormal_p): Likewise.
	(IEEE754_binary32.is_subnormal_p): Likewise.
	(IEEE754_binary16.is_subnormal_p): Likewise.
	* testsuite/poke.pickles/ieee754-test.pk: Update tests for
	quiet/signalling/signed/unsigned NaNs, and for subnormals.

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>

	* doc/poke.texi: Replace old representation of weird integers
	with the new one.

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

	* libpoke/pkl-rt.pk (_pkl_print_format_any): Emit
	`NUMBER as INTEGRAL_TYPE' for printing of weird integers which is
	a valid Poke syntax instead of `(INTEGRAL_TYPE) NUMBER'.
	* libpoke/pvm-val.c (pvm_print_val_1): Likewise.
	* testsuite/poke.map/ass-map-20.pk: Update to match the new output.
	* testsuite/poke.map/maps-int-05.pk: Likewise.
	* testsuite/poke.map/maps-int-09.pk: Likewise.
	* testsuite/poke.map/maps-int-11.pk: Likewise.
	* testsuite/poke.map/maps-int-13.pk: Likewise.
	* testsuite/poke.map/maps-int-18.pk: Likewise.
	* testsuite/poke.map/maps-int-19.pk: Likewise.
	* testsuite/poke.map/maps-int-20.pk: Likewise.
	* testsuite/poke.map/maps-int-21.pk: Likewise.
	* testsuite/poke.map/maps-int-22.pk: Likewise.
	* testsuite/poke.map/maps-int-23.pk: Likewise.
	* testsuite/poke.map/maps-int-24.pk: Likewise.
	* testsuite/poke.map/maps-int-26.pk: Likewise.
	* testsuite/poke.map/maps-int-30.pk: Likewise.
	* testsuite/poke.map/maps-int-32.pk: Likewise.
	* testsuite/poke.map/maps-int-34.pk: Likewise.
	* testsuite/poke.map/maps-int-35.pk: Likewise.
	* testsuite/poke.map/maps-int-36.pk: Likewise.
	* testsuite/poke.map/maps-int-38.pk: Likewise.
	* testsuite/poke.map/maps-int-39.pk: Likewise.
	* testsuite/poke.map/maps-int-40.pk: Likewise.
	* testsuite/poke.map/maps-int-42.pk: Likewise.
	* testsuite/poke.map/maps-int-43.pk: Likewise.
	* testsuite/poke.map/maps-int-44.pk: Likewise.
	* testsuite/poke.map/maps-int-46.pk: Likewise.
	* testsuite/poke.map/maps-int-47.pk: Likewise.
	* testsuite/poke.map/maps-int-49.pk: Likewise.
	* testsuite/poke.map/maps-int-structs-11.pk: Likewise.
	* testsuite/poke.map/maps-int-structs-2.pk: Likewise.
	* testsuite/poke.map/maps-int-structs-5.pk: Likewise.
	* testsuite/poke.map/maps-int-structs-6.pk: Likewise.
	* testsuite/poke.map/maps-int-union-3.pk: Likewise.
	* testsuite/poke.map/maps-int-union-4.pk: Likewise.
	* testsuite/poke.map/maps-int-union-5.pk: Likewise.
	* testsuite/poke.map/maps-uint-19.pk: Likewise.
	* testsuite/poke.pkl/add-offsets-8.pk: Likewise.
	* testsuite/poke.pkl/array-integ-10.pk: Likewise.
	* testsuite/poke.pkl/array-integ-11.pk: Likewise.
	* testsuite/poke.pkl/array-integ-14.pk: Likewise.
	* testsuite/poke.pkl/array-integ-15.pk: Likewise.
	* testsuite/poke.pkl/array-integ-16.pk: Likewise.
	* testsuite/poke.pkl/array-integ-17.pk: Likewise.
	* testsuite/poke.pkl/array-integ-18.pk: Likewise.
	* testsuite/poke.pkl/array-integ-19.pk: Likewise.
	* testsuite/poke.pkl/array-integ-20.pk: Likewise.
	* testsuite/poke.pkl/array-integ-22.pk: Likewise.
	* testsuite/poke.pkl/array-integ-24.pk: Likewise.
	* testsuite/poke.pkl/array-integ-29.pk: Likewise.
	* testsuite/poke.pkl/array-integ-30.pk: Likewise.
	* testsuite/poke.pkl/array-integ-31.pk: Likewise.
	* testsuite/poke.pkl/array-integ-32.pk: Likewise.
	* testsuite/poke.pkl/array-integ-34.pk: Likewise.
	* testsuite/poke.pkl/array-integ-6.pk: Likewise.
	* testsuite/poke.pkl/array-integ-7.pk: Likewise.
	* testsuite/poke.pkl/ass-2.pk: Likewise.
	* testsuite/poke.pkl/ass-3.pk: Likewise.
	* testsuite/poke.pkl/bconc-4.pk: Likewise.
	* testsuite/poke.pkl/bconc-6.pk: Likewise.
	* testsuite/poke.pkl/bconc-7.pk: Likewise.
	* testsuite/poke.pkl/bconc-lvalue-6.pk: Likewise.
	* testsuite/poke.pkl/cast-integers-10.pk: Likewise.
	* testsuite/poke.pkl/cast-integers-11.pk: Likewise.
	* testsuite/poke.pkl/cast-integers-17.pk: Likewise.
	* testsuite/poke.pkl/cast-integers-18.pk: Likewise.
	* testsuite/poke.pkl/cast-integers-19.pk: Likewise.
	* testsuite/poke.pkl/cast-integers-21.pk: Likewise.
	* testsuite/poke.pkl/cast-integers-4.pk: Likewise.
	* testsuite/poke.pkl/cast-integers-5.pk: Likewise.
	* testsuite/poke.pkl/cast-offsets-6.pk: Likewise.
	* testsuite/poke.pkl/cast-offsets-7.pk: Likewise.
	* testsuite/poke.pkl/int-struct-dyn-2.pk: Likewise.
	* testsuite/poke.pkl/scons-int-struct-4.pk: Likewise.
	* testsuite/poke.pkl/sub-offsets-1.pk: Likewise.

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

	* poke/pk-cmd-misc.c ("pk-repl.h"): New include for
	`poke_completion_function'.
	(pk_cmd_bases): New function to implement
	`.bases' dot-command.
	(bases_cmd): New variable.
	* poke/pk-cmd-misc.pk (pk_cmd_bases): New Poke function.
	* poke/pk-cmd.c (dot_cmds): Register the new dot-command.
	* testsuite/poke.cmd/bases-1.pk: New test.
	* testsuite/poke.cmd/bases-2.pk: Likewise.
	* testsuite/poke.cmd/bases-3.pk: Likewise.
	* testsuite/poke.cmd/bases-4.pk: Likewise.
	* testsuite/Makefile.am (EXTRA_DIST): Update.
	* doc/poke.texi (Dot-Commands): Add doc for new dot-command.
	* poke/pk-cmd-help.pk: Document new dot-command.

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-ios.pk (pk_cmd_nbd): Validate URI.

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

	* TODO (Support specifying strict mapping in referring offsets):
	New entry.
	(Print referred values in value printer): Likewise.

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

	* poke/pk-cmd-ios.c (expr_to_ios): Print IO space identifier in
	decimal, not hexadecimal.

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

	* libpoke/ios-dev-mmap.c (ios_dev_mmap_open): Improve error codes
	and do not print in terminal.
	(ios_dev_mmap_flush): Likewise.
	* libpoke/pkl-rt.pk (open): Fix exception msg for IOD_EMMAP.

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>

	* HACKING: Simplify contents.
	* etc/hacking.org: Remove
	* Makefile.am (update-hacking): Remove rule.
	* doc/pokeint.texi (Maintenance targets): New section.
	(Picking something to work on): Likewise.
	(The Poke compiler): New chapter.
	(The Poke Virtual Machine): Likewise.
	(Memory management): Likewise.

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

	* etc/Makefile.am (EXTRA_DIST): Do not distribute poke.rec.
	* configure.ac: Do not check for recfix.
	* cfg.mk (sc_recfix_poke_rec): Remove rule.
	* etc/poke.rec: Remove.
	* TODO (Array deintegrators): New entry.
	(Document poked in the poke manual): Likewise.
	(Add a testsuite for poked): Likewise.
	(Struct patterns and matching operators): Likewise.
	(Support more than one constraint per struct field): Likewise.
	(Named annotations in struct types): Likewise.
	(Pipe IOS): Likewise.
	(Make endianness a type quality): Likewise.
	(Variable-length integral types): Likewise.
	(Support for big numbers): Likewise.
	(Auto-complete $<...> in the prompt): Likewise.
	(Support arguments in type constructors): Likewise.
	(Add error recovery support to the compiler): Likewise.
	(Constant-fold array trims): Likewise.
	(Constant-fold array casts): Likewise.
	(Constant-fold `isa' expressions): Likewise.
	(Constant-fold array concatenation): Likewise.
	(Constant-fold struct references): Likewise.
	(Constant-fold struct integrations): Likewise.
	(Constant-fold operations with integral structs): Likewise.
	(Support lazy mapping): Likewise.
	(Support for string properties): Likewise.
	(Location tracking in PVM): Likewise.
	(Make the PVM aware of units): Likewise.
	(Support IO transactions): Likewise.
	(RFC 8794 EBML pickle): Likewise.
	(Parallelize the dg testsuite): Likewise.
	(Document poke CSS classes in the manual): Likewise.
	(Add mutex to avoid concurrency crash with hyperlinks): Likewise.

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

	* bootstrap.conf (bootstrap_epilogue): Define.

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

	* TODO: New contents.

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>

	* HACKING: Regenerate.
	* etc/poke-gdb.scm: Remove file.
	* doc/pokeint.texi (Using GDB extensions): Remove section.

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-22  Jose E. Marchesi  <jemarch@gnu.org>

	* libpoke/pkl-ast.h (struct pkl_type): Remove unused field `name'
	from the `fun' struct.

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

	* libpoke/pkl-ast.c (pkl_ast_handle_bconc_ass_stmt): There is no
	more need to mark compound statement as frameless.

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

	* libpoke/pkl-gen.c (struct pkl_gen_payload): Remove pasm2 and
	cur_pasm2 fields.
	(PKL_GEN_ASM2): Remove.
	(PKL_GEN_PUSH_ASM2): Likewise.
	(PKL_GEN_POP_ASM2): Likewise.

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-20  Jose E. Marchesi  <jemarch@gnu.org>

	* poke/poke.c (initialize): Enable pretty-printing, tree output
	mode and pager by default if no quiet mode.
	* doc/poke.texi (Simple Init File): Update accordingly.

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

	* libpoke/pvm-alloc.c (pvm_alloc_gc): Define.
	* libpoke/pkl-insn.def (PKL_INSN_GC): Define.
	* libpoke/pvm.jitter (gc): New instruction.
	* testsuite/poke.pvm/pvm-insns-test.pk: Add test for gc instruction.

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

	* poke/pk-cmd-ios.c (PK_FILE_F_RDONLY): Define.
	(pk_cmd_file): Acknowledge /r flag in file dot-command.
	* poke/pk-cmd-ios.pk (pk_cmd_file): Likewise.
	* poke/pk-cmd-help.pk: Document /r flag in online documentation.
	* testsuite/poke.cmd/file-rdonly-1.pk: New test.
	* testsuite/Makefile.am (EXTRA_DIST): Add new test.
	* doc/poke.texi (Files as IO Spaces): Document /r.
	(file command): Likewise.

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

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

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

	* libpoke/ras: Support IOS_F_* constants as RAS values.
	* libpoke/pkl-asm.pks (remap): Do not remap in non-volatile
	read-only IO spaces.

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

	* testsuite/poke.pvm/pvm-insns-test.pk: Add test for iovolatile.

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

	* poke/pk-cmd-info.pk (pk_info_ios): Fix printing of the type of
	IO spaces in table.

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

	* libpoke/ios-dev.h (struct ios_dev_if): New field
	volatile_by_default.
	* libpoke/libpoke.h (struct pk_iod_if): Likewise.
	* libpoke/ios.c (struct ios): New field volatile_p.
	(ios_open): Initialize volatile_p in newly opened IO space.
	(ios_volatile_p): Define.
	* libpoke/ios-dev-file.c (ios_dev_file_volatile_by_default):
	Define.
	(ios_dev_file): Set volatile_by_default.
	(ios_dev_file_convert_flags): Ignore IOS_F_VOLATILE.
	* libpoke/ios-dev-mem.c (ios_dev_mem_volatile_by_default): Define.
	(ios_dev_mem): Set volatile_by_default.
	* libpoke/ios-dev-mmap.c (ios_dev_mmap_volatile_by_default):
	Define.
	(ios_dev_mmap): set volatile_by_default.
	* libpoke/ios-dev-nbd.c (ios_dev_nbd_volatile_by_default): Define.
	(ios_dev_nbd): Set volatile_by_default.
	* libpoke/ios-dev-proc.c (ios_dev_proc_volatile_by_default):
	Define.
	(ios_dev_proc): Set volatile_by_default.
	* libpoke/ios-dev-stream.c (ios_dev_stream_volatile_by_default):
	Define.
	(ios_dev_stream): Set volatile_by_default.
	* libpoke/ios-dev-sub.c (ios_dev_sub_volatile_by_default): Define.
	(ios_dev_sub): Set volatile_by_default.
	* libpoke/ios-dev-zero.c (ios_dev_zero_volatile_by_default):
	Define.
	(ios_dev_zero): Define volatile_by_default.
	* libpoke/pvm.jitter (iogetv): New instruction.
	* libpoke/pkl-rt.pk (ioisvolatile): New function.
	(IOS_F_VOLATILE): Define.
	* poke/pk-cmd-info.pk (pk_info_ios): Add column "Volatile".
	* libpoke/ios.h (IOS_F_VOLATILE): Define.
	* testsuite/poke.libpoke/foreign-iod.c (iod_volatile_by_default):
	New function.
	(iod_if): Initialize volatile_by_default.
	* libpoke/libpoke.c (pk_register_iod): Update to handle
	volatile_by_default.
	* testsuite/poke.pkl/open-volatile-1.pk: New test.
	* testsuite/poke.pkl/open-volatile-2.pk: Likewise.
	* testsuite/poke.pkl/iovolatile-1.pk: Likewise.
	* testsuite/poke.cmd/file-bias-1.pk: Update test.
	* testsuite/poke.cmd/file-relative.pk: Likewise.
	* testsuite/poke.cmd/file-mode.pk: Likewise.
	* testsuite/poke.cmd/file-bias-2.pk: Likewise.
	* testsuite/Makefile.am (EXTRA_DIST): Add new tests.
	* doc/poke.texi (Files as IO Spaces): Update to reflect volatile
	attribute of IO spaces.
	(Buffers as IO Spaces): Likewise.
	(info command): Likewise.
	(iovolatile): New section.
	(Auto-Remapping): Update.

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-09-16  Jose E. Marchesi  <jemarch@gnu.org>

	* poke/pk-cmd-info.pk (pk_info_type): Print whether struct fields
	are optional or not.
	* doc/poke.texi (Pickles): Update accordingly.

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

	* libpoke/pkl-rt.pk: New field `foptional'.
	* libpoke/pkl-gen.pks (struct_typifier): Initialize the value of
	foptional in Pk_Type struct.
	* testsuite/poke.pkl/typeof-struct-5.pk: New test.
	* testsuite/Makefile.am (EXTRA_DIST): Add new test.

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

	* pickles/Makefile.am (dist_pickles_DATA): Add `crc16.pk'.

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

	* pickles/crc16.pk: New pickle for 16-bit CRCs.
	* testsuite/poke.pickles/crc16-test.pk: New file.
	* testsuite/Makefile.am (EXTRA_DIST): Update.

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

	* Add missing section ("Bitwise Operation Functions") to "The
	Standard Library" chapter's menu.

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

	* bootstrap.conf (libpoke_modules): Add `count-one-bits'.
	* libpoke/pkl-insn.def (popcountiu): New instruction.
	(popcountlu): Likewise.
	* libpoke/pvm.jitter (popcountiu): Likewise.
	(popcountlu): Likewise.
	(wrapped-functions): Add `pvm_popcount' function to the list.
	* libpoke/pvm-wrappers.c: Include <count-one-bits.h>.
	(pvm_popcount): New function.
	* libpoke/pvm-wrappers.h (pvm_popcount): Likewise.
	* libpoke/std.pk (popcount): New function to count one bits in an
	integer or magnitude of an offset.
	* testsuite/poke.pkl/popcount-1.pk: New test.
	* testsuite/poke.pkl/popcount-2.pk: New test.
	* testsuite/poke.pkl/popcount-3.pk: New test.
	* testsuite/poke.pkl/popcount-4.pk: New test.
	* testsuite/poke.pkl/popcount-5.pk: New test.
	* testsuite/poke.pkl/popcount-6.pk: New test.
	* testsuite/Makefile.am (EXTRA_DIST): Update.
	* doc/poke.texi (The Standard Library): Add a new section for
	bitwise functions.
	(Bitwise Operation Functions): New section which documents
	`popcount'.

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

	* poke/pk-cmd-save.pk: Fix documentation of the `save' command.

2024-07-11  Emanuele Torre  <torreemanuele6@gmail.com>

	* MAINTAINERS: fix typo.

2024-07-11  Emanuele Torre  <torreemanuele6@gmail.com>

	* MAINTAINERS: add Emanuele Torre.
	* etc/poke.rec: add Emanuele Torre.

2024-07-08  Emanuele Torre  <torreemanuele6@gmail.com>

	* pickles/pe.pk (PE_Opt_Hdr): loader_flags is not zero in many
	instances.  Adapt constraint accordingly.

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

	* libpoke/pkl-parser.c (pkl_parse_file): Change the assertion
	to not check for top-level env.
	* libpoke/pkl-tab.y (program_elem): Remove `load'.
	(stmt): Define `load' as a statement.
	* libpoke/pkl-gen.c (pkl_gen_ps_src): Change the `in_file_p'
	logic to string comparison against `"<stdin>"', instead of
	comparing against `NULL'.
	(pkl_gen_ps_program): Fix comment.
	* testsuite/Makefile.am (EXTRA_DIST): Update.
	* testsuite/poke.pkl/load-6.pk: New test.
	* testsuite/poke.pkl/load-diag-3.pk: Likewise.
	* doc/poke.texi (Modules): Add a new paragraph and example.

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>

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

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

	* testsuite/poke.libpoke/api.c (include "read-file.h"): Remove
	unused header file.

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-14  Jose E. Marchesi  <jemarch@gnu.org>

	* pickles/ios.pk (ios_dump_bytes): Print unknown_byte instead of
	raising E_perm.
	* testsuite/poke.cmd/dump-10.pk: Adapt accordingly.

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

	* poke/pk-cmd-ios.pk (pk_cmd_proc): Fix trimming of digits for
	zero values.

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

	* poke/pk-cmd-ios.pk (pk_cmd_nbd): New function.
	* poke/pk-cmd-ios.c (pk_cmd_nbd): Rewrite to use the Poke version.

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

	* poke/pk-cmd-ios.pk (pk_cmd_mmap): Trim long integers in handler.
	(pk_cmd_sub): Fix trimming of digits for zero values.

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-13  Jose E. Marchesi  <jemarch@gnu.org>

	* poke/pk-cmd-ios.pk (pk_cmd_sub): New funtion.
	* poke/pk-cmd-ios.c (pk_cmd_sub): Rewrite to use the Poke version.

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

	* poke/pk-cmd-ios.pk (pk_cmd_ios): New function.
	* poke/pk-cmd-ios.c (pk_cmd_ios): Rewrite to use the Poke version.

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

	* poke/pk-cmd-misc.pk: New file.
	* poke/poke.pk: Load pk-cmd-misc.pk.
	* poke/Makefile.am (dist_app_DATA): Add pk-cmd-misc.pk.
	* poke/pk-cmd-misc.c (pk_cmd_jmd): Call to Poke version of
	pk_cmd_jmd.

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

	* poke/pk-cmd-extract.pk: Rename pk-extract.pk.
	* poke/pk-cmd-diff.pk: Rename from pk-diff.pk.
	* poke/pk-cmd-copy.pk: Rename from pk-copy.pk.
	* poke/pk-cmd-dump.pk: Rename from pk-dump.pk.
	* poke/pk-cmd-scrabble.pk: Rename from pk-scrabble.pk.
	* poke/pk-cmd-save.pk: Rename from pk-save.pk.
	* poke/pk-cmd-set.pk: Renamed from pk-settings.pk.
	* poke/pk-cmd-help.pk: Renamed from pk-help.pk.
	* poke/Makefile.am (dist_app_DATA): Reflect renaming.

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

	* configure.ac (AC_CONFIG_fILES): Do not process maps/Makefile.in.
	* Makefile.am (SUBDIRS): Do not recurse in maps/.
	* maps/Makefile.am: Remove.
	* maps/mp3.map: Likewise.
	* maps/elf.map: Likewise.
	* maps/dwarf.map: Likewise.
	* poke/pk-map-tab.y: Likewise.
	* poke/pk-map-parser.h: Likewise.
	* poke/pk-map-lex.l: Likewise.
	* poke/pk-map.pk: Likewise.
	* poke/pk-map.h: Likewise.
	* poke/pk-map.c: Likewise.
	* poke/pk-cmd-map.c: Likewise.
	* etc/poke-map-mode.el: Remove.
	* etc/Makefile.am (dist_lisp_DATA): Remove poke-map-mode.el.
	* poke/Makefile.am (dist_app_DATA): Remove pk-map.pk.
	(poke_SOURCES): Remove pk-cmd-map.c, pk-map.c, pk-map.h,
	pk-map-parser.h, pk-map-tab.c pk-map-lex.l.
	(generate-pk-map-lex): Remove rule.
	(generate-pk-map-tab): Likewise.
	(AM_YFLAGS): Remove.
	* doc/poke.texi (Maps and Map-files): Remove chapter.
	(poke-map-mode): Do not mention poke-map-mode.
	* poke/pk-ios.c: Do not include pk-map.h.
	(pk_open_file_maps): Remove.
	* poke/pk-cmd-ios.c: Do not include pk-map.h.
	* poke/pk-repl.c: Do not include pk-map.h.
	(pk_prompt): Do not add map info to the prompt.
	* poke/poke.c: Do not include pk-map.h.
	(finalize): Do not pk_map_shutdown.
	(initialize): Do not pk_map_init.
	* testsuite/poke.cmd/maps-1.pk: Remove.
	* testsuite/poke.cmd/maps-2.pk: Likewise.
	* testsuite/poke.cmd/maps-3.pk: Likewise.
	* testsuite/poke.cmd/maps-4.pk: Likewise.
	* testsuite/poke.cmd/maps-5.pk: Likewise.
	* testsuite/poke.cmd/maps-6.pk: Likewise.
	* testsuite/poke.cmd/maps-7.pk: Likewise.
	* testsuite/poke.cmd/maps-8.pk: Likewise.
	* testsuite/poke.cmd/maps-9.pk: Likewise.
	* testsuite/poke.cmd/maps-alien-1.pk: Likewise.
	* poke/pk-settings.pk: Remove setting for auto-map and
	prompt-maps.
	* testsuite/Makefile.am (EXTRA_DIST): Remove maps related tests.

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

	* poke/pk-cmd-ios.pk (pk_cmd_proc): Make better usage of iscan and
	report an error if the maps file couldn't be read.

2024-06-12  Jose E. Marchesi  <jemarch@termi>

	* libpoke/ios.h (IOS_ENOENT): Define.
	* libpoke/ios-dev.h (IOD_ENOENT): Likewise.
	* libpoke/ios-dev-file.c (ios_dev_file_open): Handle ENOENT.
	* libpoke/pkl-rt.pk (E_noent): Define.
	(EC_noent): Likewise.
	(open): Handle E_noent.
	* poke/pk-cmd-ios.pk: New file.
	* poke/Makefile.am (dist_app_DATA): Add pk-cmd-ios.pk.
	* poke/poke.pk: Load pk-cmd-ios.pk.
	(poke_interactive_p): New variable.
	(poke_quiet_p): Likewise.
	* poke/poke.c (initialize): Set values of Poke variables
	pk_quiet_p and pk_interactive_p.
	* poke/pk-ios.c (pk_open_file_maps): Rename and adapt from
	pk_open_file.
	* poke/pk-cmd-ios.c (pk_cmd_mem): Rewrite to use the Poke
	implementations of pk_cmd_mem and pk_cmd_mem_unique.
	(pk_cmd_mmap): Likewise for pk_cmd_mmap.
	* poke/pk-cmd-ios.c (pk_cmd_close): Likewise for pk_cmd_close.
	(close_if_sub_of): Remove.
	(pk_open_proc_maps): Likewise.
	* poke/pk-ios.h: Remove prototype for pk_open_proc_maps.
	* testsuite/poke.pkl/open-file-1.pk: New test.
	* testsuite/Makefile.am (EXTRA_DIST): Add new tests.
	* libpoke/pvm.jitter (iotype): New instruction.
	* libpoke/pkl-insn.def: (PKL_INSN_IOTYPE): Define.
	* libpoke/pkl-rt.pk (iotype): Define.
	* poke/pk-info.pk (pk_info_ios): New function.
	* poke/pk-cmd-ios.c (print_info_ios): Remove.
	(pk_cmd_info_ios): Call pk_info_ios.
	* testsuite/poke.pvm/pvm-insns-test.pk: Add test for iotype.
	* doc/poke.texi (iotype): New section.
	* testsuite/poke.pkl/iotype-1.pk: New test.
	* testsuite/poke.pkl/iotype-2.pk: Likewise.
	* testsuite/Makefile.am (EXTRA_DIST): Add new tests.

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/std.pk: Remove some spurious debugging definitions.

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

	* doc/pokeint.texi (Notifying about pushed commits): New section.

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

	* libpoke/pkl-trans.c (pkl_transl_ps_var): Turn ICE into
	compile-time error.
	* testsuite/poke.pkl/field-init-diag-8.pk: New test.
	* testsuite/poke.pkl/field-init-diag-9.pk: Likewise.
	* testsuite/Makefile.am (EXTRA_DIST): Add new tests.

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_transl_pr_type_struct): Push unescapable context.
	(pkl_transl_ps_type_struct): Pop uescapable context.
	(pkl_trans1_pr_type_array): Push unescapable context.
	(pkl_trans1_ps_type_array): Pop uescapable context.
	(pkl_transl_pr_type_array): Push unescapable context.
	(pkl_transl_ps_type_array): Pop uescapable context.
	(pkl_trans1_pr_func): Push unescapable context.
	(pkl_trans1_ps_func): Pop uescapable context.
	(pkl_transl_pr_func): Push and pop unescapable context.
	(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-06  Jose E. Marchesi  <jemarch@gnu.org>

	* MAINTAINERS: New file.
	* Makefile.am (EXTRA_DIST): Add MAINTAINERS.
	* doc/pokeint.texi: New file.
	* doc/Makefile.am (info_TEXINFOS): Add pokeint.texi.
	(INFO_DEPS): Add $(srcdir)/pokeint.info.
	* etc/hacking.org: Move some content to doc/pokeint.texi.

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

	* libpoke/pkl-trans.c (pkl_phase_transf): New struct.
	(pkl_phase_transf_ps_comp_stmt): New handler.
	* libpoke/pkl-passes.def: Add phase transf to the second pass.

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

	* libpoke/pkl-trans.c (pkl_trans1_pr_comp_stmt): Do not handle
	escapable nframes.
	(pkl_trans1_ps_break_continue_stmt): Likewise.
	(pkl_trans1_pr_try_stmt_handler): Remove handler.
	(pkl_trans1_ps_try_stmt_handler): Likewise.
	(pkl_transl_pr_loop_stmt): Handle escapable nframes.
	(pkl_transl_pr_loop_stmt): Likewise.
	(pkl_transl_pr_comp_stmt): Liekwise
	(pkl_transl_ps_comp_stmt): Likewise.
	(pkl_transl_pr_try_stmt): Likewise.
	(pkl_transl_pr_decl): Likewise.
	(pkl_transl_ps_break_continue_stmt): Likewise.
	* testsuite/poke.pkl/break-while-3.pk: New test.
	* testsuite/poke.pkl/break-while-4.pk: Likewise.
	* testsuite/poke.pkl/break-while-5.pk: Likewise.
	* testsuite/Makefile.am (EXTRA_DIST): Add new tests.

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

	* libpoke/pkl-pass.h: New type pkl_phase_initialize_fn.
	(struct pkl_phase): New field `initialize'.
	* libpoke/pkl-promo.h: Remove.
	* libpoke/pkl-fold.h: Likewise.
	* libpoke/pkl-typify.h: Likewise.
	* libpoke/pkl-anal.h: Likewise.
	* libpoke/pkl-trans.h: Likewise.
	* libpoke/pkl-gen.h: Likewise.
	* libpoke/Makefile.am (libpoke_la_SOURCES): Remove pkl-promo.h,
	pkl-fold.h, pkl-typify.h, pkl-anal.h, pkl-trans.h and pkl-gen.h.
	* libpoke/pkl-anal.c (pkl_anal_initialize): New function.
	(pkl_anal_finalize): Likewise.
	(pkl_phase_anal1): Register .initialize and .finalize.
	(pkl_phase_anal2): Register .initialize and .finalize.
	(pkl_phase_analf): Register .initialize and .finalize.
	* libpoke/pkl-trans.c (pkl_trans_initialize): New function.
	(pkl_trans_finalize): Likewise.
	(pkl_phase_trans1): Register .initialize and .finalize.
	(pkl_phase_trans2): Likewise.
	(pkl_phase_trans3): Likewise.
	(pkl_phase_transl): Likewise.
	* libpoke/pkl-gen.c (pkl_gen_initialize): New function.
	(pkl_gen_finalize): Likewise.
	(pkl_phase_gen): Register .initialize and .finalize.
	* libpoke/pkl-passes.def: New file.
	* libpoke/pkl.c (rest_of_compilation): Use the new passes file.
	* libpoke/pkl-pass.c (pkl_do_pass): Do not get a payloads
	argument.

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

	* doc/poke.texi (.vm disassemble): Add new item for new cmd.
	* libpoke/libpoke.h (pk_disassemble_statement): New function.
	* libpoke/libpoke.c (pk_disassemble_statement): Likewise.
	* libpoke/pkl.h (pkl_compile_statement): Likewise.
	* libpoke/pkl.c (pkl_compile_statement): Likewise.
	* poke/pk-cmd-vm.c (pk_cmd_vm_disas_stmt): Likewise.
	(vm_disas_stmt_cmd): New variable.
	(vm_disas_cmds): Add new cmd.
	(vm_disas_cmd): Update help string.
	* testsuite/Makefile.am (EXTRA_DIST): Update.
	* testsuite/poke.cmd/vm-disas-stmt.pk): New test.

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-06-02  Jose E. Marchesi  <jemarch@gnu.org>

	* libpoke/pkl-trans.h (struct pkl_trans_payload): Add field `env'.
	(pkl_phase_transl): New extern.
	(pkl_trans_init_payload): Initialize env.
	* libpoke/pkl-trans.c (transl): New phase.
	(PKL_TRANS_ENV): Define.
	(pkl_transl_ps_var): New handler.
	(pkl_transl_pr_comp_stmt): Likewise.
	(pkl_transl_ps_comp_stmt): Likewise.
	(pkl_transl_pr_try_stmt): Likewise.
	(pkl_transl_pr_func): Likewise.
	(pkl_transl_ps_func_arg): Likewise.
	(pkl_transl_ps_decl): Likewise.
	(pkl_transl_pr_struct_type_field): Likewise.
	(pkl_transl_pr_type_struct): Likewise.
	(pkl_transl_ps_type_struct): Likewise.
	* libpoke/pkl-anal.c (pkl_anal1_ps_var): Move checks that require
	lexical depth knowledge to pkl_transl_ps_var.
	* libpoke/pkl.c (rest_of_compilation): Rename passes and add
	transl.
	* libpoke/pkl-gen.c (pkl_gen_ps_var): Emit an ICE if a lexical
	variable in a VAR node is not set.
	* testsuite/poke.pkl/scons-73.pk: New test.
	* testsuite/Makefile.am (EXTRA_DIST): Add new tests.
	* etc/hacking.org (Lexical Handling): New section.
	* HACKING: Regenerate.

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.

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

	* libpoke/ios.c (realloc_string): Removed.
	* libpoke/pkl-gen.c (pkl_gen_ps_type_string): Remove the leftover
	code.

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

	* libpoke/ios.h (ios_read_string): Remove.
	(ios_write_string): Likewise.
	* libpoke/ios.c (ios_read_string): Likewise.
	(ios_write_string): Likewise.
	* libpoke/pkl-rt.pk (_pkl_peek_string): Implementation of `peek'
	operation for strings in Poke.
	(_pkl_poke_string): Implementation of `poke' operation for strings
	in Poke.
	* libpoke/pvm.jitter (wrapped-functions): Remove `ios_read_string'
	and `ios_write_string'.
	(peeks): Remove instruction.
	(pokes): Likewise.
	* libpoke/pkl-gen.c (pkl_gen_ps_type_string): Emit call to
	`_pkl_poke_string' and `_pkl_peek_string' instead of `pokes' and
	`peeks' instructions.

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

	* doc/poke.texi (Array Literals): Document new feature.
	* libpoke/pkl-ast.h (PKL_AST_ARRAY_ELEM_CAST): New accessor
	macro.
	(elem_cast): New field which contains the type which should
	be the target of the cast.
	* libpoke/pkl-ast.c (pkl_ast_node_free_1): Handle new field.
	* libpoke/pkl-lex.l (parse_integer_literal_suffix): New function.
	("]"{IS}): New rule to support array literals with suffix, e.g.,
	`[1,2,3]UB' to be the same as `[1UB,2UB,3UB]'.
	(integral literals rule): Use `parse_integer_literal_suffix'.
	* libpoke/pkl-tab.y (ARRSUF): New token for closing bracket with
	suffix: ]U, ]UB, etc.
	(array): Add support for suffix for array literals.
	* libpoke/pkl-typify.c (pkl_typify1_ps_array): Add check to verify
	user is using suffix only for integral promotable arrays.
	* libpoke/pkl-promo.c (pkl_promo_ps_array): New phase to add casts
	to all elements of the array if array has a suffix.
	(pkl_phase_promo): Register `pkl_promo_ps_array'.
	* testsuite/Makefile.am (EXTRA_DIST): Add new tests.
	* testsuite/poke.pkl/array-4.pk: New test.
	* testsuite/poke.pkl/array-5.pk: Likewise.
	* testsuite/poke.pkl/array-6.pk: Likewise.
	* testsuite/poke.pkl/array-7.pk: Likewise.
	* testsuite/poke.pkl/array-8.pk: Likewise.
	* testsuite/poke.pkl/array-9.pk: Likewise.
	* testsuite/poke.pkl/array-10.pk: Likewise.
	* testsuite/poke.pkl/array-11.pk: Likewise.
	* testsuite/poke.pkl/array-diag-2.pk: Likewise.

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>

	* 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>

	* 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.
	(test_pk_ios): New function for testing IO space functions.
	(main): Call `test_pk_ios'.

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

	* poke/pk-ios.c (pk_ios_alien_token_handler): Fix handling of
	alien tokens of length 1, i.e. $<.> tokens.

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

	* poke/pk-cmd.h (enum pk_cmd_arg_type): Remove PK_CMD_ARG_TAG.
	(PK_CMD_ARG_TAG): Delete.
	* poke/pk-cmd.c (pk_cmd_exec_1): Remove handling of tag arguments.

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

	* poke/pk-cmd-ios.c (expr_to_ios): New function.
	(pk_cmd_close): Get a Poke expression as an
	argument intead of an IOS tag.
	(pk_cmd_sub): Likewise.
	(pk_cmd_ios): Likewise.
	* poke/pk-cmd-map.c (pk_cmd_map_remove): Likewise.
	(pk_cmd_map_create): Likewise.
	(pk_cmd_map_show): Likewise.
	(pk_cmd_map_entry_add): Likewise.
	(pk_cmd_map_entry_remove): Likewise.
	(pk_cmd_map_load): Likewise.
	(pk_cmd_info_maps): Likewise.
	* testsuite/poke.cmd/extract-1.pk: Adapt test accordingly.
	* testsuite/poke.cmd/close-sub-1.pk: Likewise.
	* testsuite/poke.map/ass-map-22.pk: Likewise.
	* testsuite/poke.pkl/ios-cur-1.pk: Likewise.
	* testsuite/poke.cmd/ios-1.pk: Likewise.
	* testsuite/poke.cmd/sub-2.pk: Likewise.
	* testsuite/poke.cmd/sub-2.pk: Likewise.
	* testsuite/poke.cmd/maps-3.pk: Likewise.
	* testsuite/poke.cmd/maps-4.pk: Likewise.
	* testsuite/poke.cmd/maps-5.pk: Likewise.
	* testsuite/poke.cmd/maps-6.pk: Likewise.
	* testsuite/poke.cmd/maps-7.pk: Likewise.
	* testsuite/poke.cmd/maps-2.pk: Likewise.
	* testsuite/poke.cmd/maps-7.pk: Likewise.
	* testsuite/poke.cmd/maps-8.pk: Likewise.
	* testsuite/poke.cmd/maps-9.pk: Likewise.
	* testsuite/poke.cmd/file-mode.pk: Likewise.
	* testsuite/poke.cmd/file-bias-1.pk: Likewise.
	* testsuite/poke.cmd/file-bias-2.pk: Likewise.
	* testsuite/poke.cmd/file-relative.pk: Likewise.
	* doc/poke.texi: Update documentation on IO space tags and ids.

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

	* poke/pk-help.pk (pk_help): Hint at activating the page at the
	end of the output of `.help'.

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

	* poke/pk-info.pk (pk_info_type): Skip field pretty-printers in
	method list and anonymous fields in field list.

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

	* pickles/linux.pk: New file.
	* pickles/Makefile.am (dist_pickles_DATA): Distribute linux.pk.
	* pickles/ios.pk (ios_dump_bytes): Always use the IOS of :val if
	present.

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

	* doc/poke.texi (Field Labels): Document that field labels should
	be specified after constraint expressions and initialization field
	values.

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

	* poke/pk-cmd-def.c (pk_cmd_info_type): Get a Poke expression as
	the argument for .info type.
	* poke/pk-help.pk: Update help of .info type.
	* doc/poke.texi (info command): Likewise.

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

	* poke/pk-info.pk (pk_info_type): Style sections.

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

	* poke/pk-cmd.c (dot_cmds): Add compiler_cmd.
	(pk_cmd_init): Initialize compiler_trie.
	(pk_cmd_shutdown): Free compiler_trie.
	* poke/pk-cmd-compiler.c: New file.
	* poke/Makefile.am (poke_SOURCES): Add pk-cmd-compiler.c
	* libpoke/pkl-ast.c (pkl_ast_format): Initialize the
	string_buffer.
	* poke/pk-help.pk: Add .help topic for the .compiler command.
	* doc/poke.texi (@:.compiler ast): New section.
	(compiler command): Likewise.

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

	* libpoke/pkl.h: Prototypes for pkl_debug_p, pkl_set_debug_p and
	pkl_get_last_ast_str.
	* libpoke/pkl.c (struct pkl_compiler): New fields debug_p and
	last_ast_str.
	(pkl_new): Initialize debug_p and last_ast_str.
	(pkl_debug_p): New function.
	(pkl_set_debug_p): Likewise.
	(pkl_get_last_ast_str): Likewise.
	(pkl_free): Free last_ast_str.
	(rest_of_compilation): Save printable representation of the ast if
	in debug mode.
	* libpoke/libpoke.h: New services pk_set_debug_p and
	pk_get_debug_ast.
	* libpoke/libpoke.c (pk_set_debug_p): New function.
	(pk_get_debug_ast): Likewise.
	* libpoke/pkl-ast.h: Add prototype of pkl_ast_format.
	* libpoke/pkl-ast.c (pkl_ast_format): New function.
	(pkl_ast_print): Rewrite in terms of pkl_ast_format.
	(pkl_ast_format_1): Rename from pkl_ast_print_1.

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

	* poke/pk-cmd-ios.c (print_info_ios): Do not style `size' and
	`bias' entries as offsets.

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

	* poke/pk-settings.pk (pk_settings_dump): Do not emit hyperlinks
	for setting headers, but style it.
	* poke/pk-cmd-set.c (pk_cmd_set_dump): Likewise.

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

	* poke/pk-hserver.pk (hserver_print_hl): Make it possible to style
	hyperlinks.
	* pickles/pk-table.pk (PK_Table.print_table): Likewise.
	* poke/pk-table.c (pk_table_print): Likewise.
	* poke/pk-repl.c (banner): Likewise.
	* poke/pk-cmd-set.c (pk_cmd_set_dump): Likewise.

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

	* pickles/ios.pk (ios_dump_bytes): Restore the proper style in the
	ascii area once dump :val is done with the value range.

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

	* poke/pk-repl.c (pk_repl): Emit a styled prompt.

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

	* libpoke/pkl-ast.h (PKL_AST_TYPE_I_DYN_P): Define.
	(struct pkl_ast_type): New field dyn_p in integral types.
	* libpoke/pkl-ast.c (pkl_ast_dup_type): Handle dyn_p in integral
	types.
	(pkl_ast_print_1): Likewise.
	* libpoke/pkl-tab.y (dynamic_integral_type_specifier: New rule.
	(integral_struct): Accept a dynamic integral type specifier as
	itype.
	* libpoke/pkl-typify.c (pkl_typify1_ps_type_struct): Handle int<*>
	and uint<*> as integral struct itypes.
	(pkl_typify1_ps_type_integral): Do not check size boundaries at
	compile-time for dynamic integral types.
	* testsuite/poke.pkl/int-struct-type-diag-16.pk: New test.
	* testsuite/poke.pkl/int-struct-type-diag-17.pk: Likewise.
	* testsuite/poke.pkl/int-struct-type-diag-18.pk: Likewise.
	* testsuite/poke.pkl/int-struct-type-diag-19.pk: Likewise.
	* testsuite/poke.pkl/int-struct-dyn-1.pk: Likewise.
	* testsuite/poke.pkl/int-struct-dyn-2.pk: Likewise.
	* testsuite/Makefile.am (EXTRA_DIST): Add new tests.
	* doc/poke.texi (Integral Structs): Document using int<*> and
	uint<*> in integral structs.

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

	* testsuite/poke.pkl/struct-ind-5.pk: New test.
	* testsuite/Makefile.am (EXTRA_DIST): Add new test.

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

	* pickles/iscan-str.pk: Add usage example.

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

	* pickles/base64.pk: Use std's strchr.

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

	* libpoke/std.pk (strstr): New function.
	* testsuite/poke.std/std-test.pk: Add tests for strstr.
	* doc/poke.texi (strstr): New section.

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

	* poke/pk-info.pk (pk_info_type): Do not list computed field
	setters and getters nor pretty printers as methods.

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

	* pickles/gcov.pk: GCOV_Length now stores length in number of
	bytes and not in number of words.
	(GCOV_Record): counters use GCOV_Int64, not int<64>.

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

	* pickles/Makefile.am (dist_pickles_DATA): Distribute gcov.pk.

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

	* pickles/gcov.pk (GCOV_Version): Allow ' ' as status character.
	(GCOV_String): Fix length constraint.

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

	* pickles/gcov.pk: New file.
	* testsuite/poke.pickles/bmp-test.pk: Likewise.
	* testsuite/Makefile.am (EXTRA_DIST): Add new test.

2023-10-09  Mohammad-Reza Nabipoor  <mnabipoor@gnu.org>

	* doc/poke.texi (pokefmt): Fix typo in example code.
	(Integral Structs): Add missing map operator.

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

	* libpoke/pkl.h (pkl_execute_file): Fix comment regarding
	EXIT_EXCEPTION.
	(pkl_execute_buffer): Likewise.

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

	* libpoke/libpoke.h (pk_load): Add `exit_exception' parameter.
	* libpoke/libpoke.c (pk_load): Likewise.
	* libpoke/pkl.h (pkl_load): Likewise.
	* libpoke/pkl.c (pkl_load): Likewise.
	* poke/pk-cmd.c (pk_cmd_init): Call default handler for loading
	`pk-cmd' module.
	* poke/poke.c (initialize): Update use of `pk_load'.
	* pokefmt/pokefmt.l (poke_init): Likewise.
	* testsuite/poke.libpoke/api.c (test_pk_load): New function for
	`pk_load'-related tests.
	(main): Call `test_pk_load'.

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

	* libpoke/libpoke.h (LIBPOKE_NONNULL): New macro for nonnull attribute
	for functions.
	(pk_compile_file): Use `LIBPOKE_NONNULL'.
	(pk_compile_buffer): Likewise.
	(pk_compile_buffer_with_loc): Likewise.
	(pk_compile_statement): Likewise.
	(pk_compile_statement_with_loc): Likewise.
	(pk_compile_expression): Likewise.
	(pk_compile_expression_with_loc): Likewise.

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

	* etc/hacking.org: List Mohammad-Reza Nabipoor as GNU maintainer.

2023-10-04 Vincenzo Palazzo  <vincenzopalazzodev@gmail.com>

	* etc/hacking.org (Write After Approval): Update.
    * HACKING: Regenerate.

2023-10-04  Vincenzo Palazzo  <vincenzopalazzodev@gmail.com>

	* etc/nix/default.nix: remove the empty line at the EOF.

2023-10-02  Vincenzo Palazzo  <vincenzopalazzodev@gmail.com>

	* etc/nix/default.nix: add a simple nix shell.

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

	* libpoke/libpoke.c (pk_compiler_new_with_flags): Add checks for
	presence of user-provided function pointers for the terminal
	interface.
	* testsuite/poke.libpoke/api.c (test_pk_compiler_new): Update tests.

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

	* etc/hacking.org (Maintainers): Update.
	* HACKING: Regenerate.

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

	* configure.ac (AC_CONFIG_FILES): Add `pokefmt/Makefile'.
	* Makefile.am (SUBDIRS): Add `pokefmt'.
	* pokefmt/pokefmt.l: New template system to embed Poke code in docs,
	tests, etc.
	* pokefmt/pokefmt.pk: Poke support code for `pokefmt' app.
	* pokefmt/Makefile.am: New file.
	* run.in (POKEFMTAPPDIR): New variable.
	* poke.pokefmt/pokefmt.exp: New tests.
	* testsuite/Makefile.am (check-DEJAGNU): Add `POKEFMTAPPDIR' env var.
	(EXTRA_DIST): Update.
	* doc/poke.texi (pokefmt): Add new chapter.

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

	* libpoke/pkl-lex.l: Accept t and T suffix for uint<1> values.
	* libpoke/pkl-rt.pk: Adapt values printer accordingly.
	* testsuite/poke.pkl/integers-13.pk: New test.
	* testsuite/poke.pkl/integers-14.pk: Likewise.
	* testsuite/poke.pkl/integers-15.pk: Likewise.
	* testsuite/poke.pkl/integers-16.pk: Likewise.
	* testsuite/poke.map/ass-map-19.pk: Update test accordingly.
	* testsuite/poke.map/maps-int-structs-11.pk: Likewise.
	* testsuite/poke.map/maps-int-structs-6.pk: Likewise.
	* testsuite/poke.map/maps-int-union-3.pk: Likewise.
	* testsuite/poke.map/maps-int-union-4.pk: Likewise.
	* testsuite/poke.map/maps-int-union-5.pk: Likewise.
	* testsuite/poke.pkl/bconc-lvalue-6.pk: Likewise.
	* testsuite/poke.pkl/cast-integers-12.pk: Likewise.
	* testsuite/poke.pkl/cast-integers-8.pk: Likewise.
	* testsuite/poke.pkl/printf-value-15.pk: Likewise.
	* testsuite/Makefile.am (EXTRA_DIST): Add new tests.
	* doc/poke.texi (Integer Literals): Document suffixes for bit
	integer literals.

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

	* poke/pk-diff.pk: Refer to default values of configuration
	variables in doc strings as to hold the value "initially" rather
	than "currently".

2023-09-16  Jose E. Marchesi  <jose.marchesi@oracle.com>

	* pickles/Makefile.am (dist_pickles_DATA): Add gpt.pk.

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

	* libpoke/pvm-val.c (pvm_array_insert): Fix defensive check when
	array allocation grows.
	* testsuite/poke.pkl/array-3.pk: New test.
	* testsuite/Makefile.am (EXTRA_DIST): Add new test.

2023-09-10  Mohammad-Reza Nabipoor  <mnabipoor@gnu.org>

	* pickles/gpt.pk (GPT_SECTOR_SIZE): Remove.
	(GPT_SectorSize): New unit.
	(GPT_LBA): New type.
	(GPT_Header): Change type of fields to offset when appropriate.
	(GPT_Partition_Entry): Likewise.
	(GPT): Update.
	* testsuite/poke.pickles/gpt-test.pk (tests): Likewise.

2023-09-10  Mohammad-Reza Nabipoor  <mnabipoor@gnu.org>

	* pickles/mbr.pk (MBR_SectorSize): New unit.
	(MBR_PartitionType): Change it to integral struct.
	(MBR_PTE): Change `lba' and `sector_count' to little-endian offset
	type.  Add `lba_end' method.
	(MBR): Mark `signature' and `magic' as little-endian.
	* testsuite/poke.pickles/mbr-test.pk (SAMPLE_MBR): New sample data.
	("Sample MBR verification"): New test to verify sample data.

2023-09-09  Denis Maryin  <des.maryin@googlemail.com>

	* pickles/Makefile.am (dist_pickles_DATA): Add new pickles.
	* pickles/gpt-partition-attrs.pk: New pickle.
	* pickles/gpt-partition-types.pk: Likewise.
	* pickles/gpt.pk: Liekwise.
	* pickles/guid.pk: Likewise.
	* pickles/mbr.pk (MBR_PT_*): New constants.
	(MBR_PartitionType): New type.
	(MBR_PTE): Use `MBR_PartitionType'.
	* testsuite/poke.pickles/gpt-test.pk: New test.
	* testsuite/poke.pickles/guid-test.pk: Likewise.
	* testsuite/Makefile.am (EXTRA_DIST): Update.

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

	* libpoke/pkl-lex.l (NEWLINE): Add `\r\n' sequence to newline
	definition.
	* doc/poke.texi (The Poke Language): Add a new section `Source Code
	Encoding'.

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

	* libpoke/pkl-typify.c (pkl_typify1_ps_trimmer): The type of the
	result of an array trim is an array bounded by number of elements.
	* testsuite/poke.pkl/arrays-17.pk: Adapt test to the new type of
	the trimmed value.
	* testsuite/poke.pkl/trim-26.pk: Likewise.
	* testsuite/poke.pkl/trim-32.pk: Likewise.

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

	* libpoke/pkl-insn.def: Remove PKL_INSN_ATRIM.
	* libpoke/pkl-asm.c (pkl_asm_insn_atrim): Delete.
	(pkl_asm_insn): Do not handle ATRIM.
	* libpoke/pkl-asm.pks (atrim): Move macro from here...
	* libpoke/pkl-gen.pks (atrim): ... to here.

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

	* doc/poke.texi (elfextractor): Fix example.

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

	* libpoke/pvm-alloc.h (GC_THREADS): New cpp define.
	(pvm_alloc_register_thread): Remove `const' qualifier from local var.

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

	* libpoke/pvm-alloc.h: Fix prototypes for
	pvm_alloc_{register,unregister}_thread.

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

	* pickles/ios.pk: Use "closure" hyperlinks to guarantee that they
	will work ever if another subsequent dump is issued.

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

	* poke/pk-hserver.c (hserver_thread_worker): Register/unregister
	listener thread in libpoke.

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

	* libpoke/libpoke.h: Prototypes for pk_register_thread and
	pk_unregister_threads.
	* libpoke/libpoke.c (pk_register_thread): New function.
	(pk_unregister_thread): Likewise.
	* libpoke/pvm-alloc.h: Prototypes for pvm_alloc_register_thread
	and pvm_alloc_unregister_thread.
	* libpoke/pvm-alloc.c (pvm_alloc_initialize): Call
	GC_allow_register_threads.
	(pvm_alloc_register_thread): New function.
	(pvm_alloc_unregister_thread): Likewise.
	* libpoke/pvm.h: Prototype for pvm_register_thread and
	pvm_unregister_thread.
	* libpoke/pvm.c (pvm_register_thread): New function.
	(pvm_unregister_thread): Likewise.


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

	* poke/pk-dump.pk (pk_dump_max_line_width): New variable.
	(dump): Pass val and max_line_width.
	Document arguments :val and :max_line_width.
	(dumpval): New function.
	* doc/poke.texi (Information @command{dump} shows): Document dump
	:val.

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

	* etc/poke-dark.css (.dump-val1): New class.
	(.dump-val2): Likewise.
	(.dump-val3): Likewise.
	(.dump-val4): Likewise.
	* pickles/ios.pk (ios_dumpval_styles): New global.

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

	* libpoke/pkl-gen.c (pkl_gen_pr_ass_stmt): Fix assigning values to
	any[] arrays.
	* libpoke/pvm-val.c (pvm_type_equal_p): Handle null[] types
	properly.
	* testsuite/poke.pkl/ass-22.pk: New test.
	* testsuite/Makefile.am (EXTRA_DIST): Add new test.

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

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

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

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

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

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

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

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

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

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

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

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

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

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


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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

2023-06-19  Jose E. Marchesi  <jemarch@gnu.org>
2023-06-19  Mohammad-Reza Nabipoor  <mnabipoor@gnu.org>

	* libpoke/pvm-val.h (array): New field sct.constructor.
	(PVM_VAL_TYP_S_CONSTRUCTOR): Define.
	* libpoke/pvm-val.c (pvm_struct_type_constructor): New function.
	(pvm_make_struct_type): Get a new `constructor' argument.
	* libpoke/pkl-insn.def (PKL_INSN_TYSCTGETC): New instruction.
	(PKL_INSN_TYSCTSETC): Likewise.
	* libpoke/pk-val.c (pk_make_struct_type): Pass PVM_NULL for
	constructor.
	* libpoke/pvm-val.c (pvm_make_exception): Likewise.
	* libpoke/pvm.jitter (mktysct): Likewise.
	(tysctgetc): New instruction.
	(tysctsetc): Likewise.
	* libpoke/pkl-gen.c (pkl_gen_ps_type_struct): Install constructor
	closure in the created PVM struct type.
	(pkl_gen_pr_cons): Converted from pkl_gen_ps_cons.
	(pkl_gen_pr_decl): Moving mapper generation after the generation of
	constructor.
	(pkl_gen_pr_ass_stmt): fix field assignements within methods.
	* libpoke/pkl-asm.pks (ssetc): Use run-time consructor closure if
	no struct_type AST node is provided.
	* testsuite/poke.map/maps-structs-methods-12.pk: New test.
	* testsuite/poke.map/maps-structs-methods-13.pk: Likewise.
	* testsuite/poke.map/maps-structs-methods-14.pk: Likewise.
	* testsuite/poke.pkl/struct-method-20.pk: Likewise.
	* testsuite/poke.pkl/struct-method-21.pk: Likewise.
	* testsuite/Makefile.am (EXTRA_DIST): Add new tests.

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

	* libpoke/pkl-ast.h (PKL_AST_DECL_IN_STRUCT_P): Add comment to
	explain the field.

2023-05-24  Constantin Nickel  <constantin.nickel@gmail.com>

	* libpoke/libpoke.h (pk_compiler_new): Remove leftover comment
	about RTPATH argument.

2023-05-23  Constantin Nickel  <constantin.nickel@gmail.com>

	* common/pk-utils.h: Fix spelling mistakes.
	* doc/poke.texi: Likewise.
	* libpoke/ios.h: Likewise.
	* libpoke/libpoke.h: Likewise.
	* libpoke/pkl-ast.h: Likewise.
	* libpoke/pkl-promo.c: Likewise.
	* libpoke/pkl-rt.pk: Likewise.
	* libpoke/pkl.h: Likewise.
	* libpoke/pvm-val.h: Likewise.
	* libpoke/pvm.jitter: Likewise.
	* libpoke/ras: Likewise.
	* pickles/pe.pk: Likewise.
	* poke/pk-cmd-ios.c: Likewise.
	* poke/pk-settings.pk: Likewise.
	* testsuite/poke.pkl/eq-any-integral-1.pk: Likewise.
	* testsuite/poke.pkl/eq-any-integral-2.pk: Likewise.
	* testsuite/poke.pkl/eq-any-integral-3.pk: Likewise.
	* testsuite/poke.pkl/eq-any-integral-4.pk: Likewise.

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

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

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

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

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

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

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

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

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

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

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

	* etc/poke.rec (Auto-complete fields foo->bar): New entry.

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

	* libpoke/libpoke.c (find_field_referrer): New function.

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

	* etc/poke.rec (Alien tokens for IO space names: $<path/to/file>):
	Remove as done.
	(Auto-complete $<...> in the prompt): New todo.

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

	* testsuite/poke.pvm/pvm-insns-test.pk: Add tests for instructions
	`sconc', `and', `or', and `not'.

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

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

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

	* libpoke/pkl-rt.pk (iosearch): New function.
	* testsuite/poke.pkl/iosearch-1.pk: New test.
	* testsuite/poke.pkl/iosearch-2.pk: Likewise.
	* testsuite/poke.pkl/iosearch-3.pk: Likewise.
	* testsuite/Makefile.am (EXTRA_DIST): Add new tests.
	* doc/poke.texi (iosearch): New section.

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

	* testsuite/poke.cmd/ios-2.pk: New test.
	* testsuite/poke.cmd/ios-3.pk: Likewise.
	* testsuite/Makefile.am (EXTRA_DIST): Add new tests.

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

	* poke/pk-ios.c (pk_ios_init): New function.
	(pk_ios_shutdown): Likewise.
	(pk_ios_alien_token_handler): Likewise.
	* poke/poke.c (initialize): Call pk_ios_init.
	(finalize): Call pk_ios_shutdown.

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

	* libpoke/pkl-lex.l: Support $<...> alien tokens.
	* libpoke/libpoke.c (pk_set_alien_dtoken_fn): New function.
	* libpoke/pkl.c (struct pkl_compiler): New field alien_dtoken_fn.
	(pkl_alien_dtoken_fn): New function.
	(pkl_set_alien_dtoken_fn): Likewise.

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

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

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

	* pickles/pe.pk (PE_Name): //BASE64 is worse than I thought.
	* testsuite/poke.pickles/pe-test.pk: Update.

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

	* pickles/Makefile.am (dist_pickles_DATA): Add base64.pk.

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

	* pickles/base64.pk (base64_decode): Simplify.

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

	* pickles/base64.pk (base64_decode): Quote characters are optional
	as per RFC.
	* testsuite/poke.pickles/pe-test.pk: Add tests for optional quote
	characters.
	* pickles/pe.pk (PE_Nam.get_offset): Simplify accordingly.

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

	* pickles/coff.pk (COFF_File): Use pre-condition for optional
	field opt_hdr.

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

	* pickles/base64.pk: New file.
	* testsuite/poke.pickles/base64-test.pk: Likewise.
	* testsuite/Makefile.am (EXTRA_DIST): Add new test.
	* testsuite/poke.pickles/pe-test.pk: Add tests for PE names
	encoding and decoding.

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

	* testsuite/poke.pvm/pvm-insns-test.pk: Add tests for subi, subiu,
	subl and sublu.

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

	* testsuite/poke.pvm/pvm-insns-test.pk: Add tests for gei, geiu,
	gel, gelu, ges, lei, leiu, lel, lelu, les, eqc and nec.

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

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

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

	* testsuite/poke.pvm/pvm-insns-test.pk: Add tests for cgetn, nn,
	nnn, eqi, eqiu, eql, eqlu, eqs, nei, neiu, nel, nelu, nes, lti,
	ltiu, ltl, ltlu, lts, gti, gtiu, gtl, gtlu, gts.

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

	* libpoke/pkl-ast.h (PKL_AST_TYPE_FALLIBLE_UNKNOWN): Define.
	(PKL_AST_TYPE_FALLIBLE_YES): Likewise.
	(PKL_AST_TYPE_FALLIBLE_NO): Likewise.
	(PKL_AST_TYPE_FALLIBLE): Likewise.
	(struct pkl_ast_type): New field `fallible'.
	* libpoke/pkl-ast.c (pkl_ast_make_type): Initialize newly created
	types with unknown fallible.
	(pkl_ast_make_integral_type): Initialize fallible.
	(pkl_ast_make_string_type): Likewise.
	(pkl_ast_make_void_type): Likewise.
	(pkl_ast_make_offset_type): Likewise.
	(pkl_ast_make_any_type): Likewise.
	(pkl_ast_dup_type): Handle fallible.
	(pkl_ast_type_is_fallible): New function.
	(pkl_ast_print_1): Print fallible.
	* libpoke/pkl-typify.c (pkl_typify2_ps_type): Set fallibility of
	type nodes.

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

	* testsuite/poke.pkl/rtrace-3.pk: New test.
	* testsuite/Makefile.am (EXTRA_DIST): Add new test.

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

	* libpoke/pvm.jitter (RTRACE): New macro.
	(rtrace): Call RTRACE.

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

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

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

	* libpoke/pkl-insn.def (PKL_INSN_RTRACE): New instruction.
	* libpoke/pvm.jitter (PVM_CALL): Push the caller's name in the
	returnstack.
	(return): Drop the caller's name from the returnstack.
	(rtrace): New instruction.
	* libpoke/pkl-rt.pk (rtrace): New function.
	* testsuite/poke.pkl/rtrace-1.pk: New test.
	* testsuite/Makefile.am (EXTRA_DIST): Add new test.
	* etc/poke.rec (PVM stack traces): Remove as done.

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

	* libpoke/pvm-val.h (PVM_VAL_CLS_NAME): Define.
	(struct pvm_cls): New field `name'.
	* libpoke/pvm-val.c (pvm_make_cls): Get a a `name' argument.
	* libpoke/pkl-insn.def (PKL_INSN_CGETN): New instruction.
	* libpoke/pvm.jitter (duc): Specify a name in pvm_make_cls.
	(cgetn): New instruction.
	* libpoke/pkl-gen.c (pkl_gen_pr_decl): Likewise.
	(pkl_gen_ps_lambda): Likewise.
	(pkl_gen_pr_type_function): Likewise.
	* libpoke/ras: Likewise.
	* libpoke/pkl-rt.pk (_pkl_print_format_any): Print closure names.
	* testsuite/poke.pkl/clsname-1.pk: New test.
	* testsuite/poke.pkl/arrays-15.pk: Update test.
	* testsuite/poke.pkl/funcall-17.pk: Likewise.
	* testsuite/poke.pkl/ios-hook-close-pre-2.pk: Likewise.
	* testsuite/poke.pkl/scons-59.pk: Likewise.
	* testsuite/poke.pkl/struct-method-17.pk: Likewise.
	* testsuite/Makefile.am (EXTRA_DIST): Add new test.

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

	* libpoke/pvm.jitter (PVM_PEEK): Do not raise exceptions.
	(peeki): Update description and remove branching jitter tag.
	(peekiu): Likewise.
	(peekl): Likewise.
	(peeklu): Likewise.
	(peekdi): Likewise.
	(peekdiu): Likewise.
	(peekdl): Likewise.
	(peekdlu): Likewise.
	(peeks): Likewise.
	* libpoke/pkl-gen.c (pkl_gen_ps_type_integral): Check and handler
	exceptions by peek* instructions.
	(pkl_gen_ps_type_string): Likewise.

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

	* libpoke/pvm.jitter (close): Do not raise exceptions.
	(flush): Likewise.
	* libpoke/pkl-rt.pk (close): Adapt accordingly.
	(flush): Likewise.
	* testsuite/poke.pkl/flush-1.pk: New test.
	* testsuite/Makefile.am (EXTRA_DIST): Add new test.

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

	* libpoke/pvm.jitter (PVM_MAKE_DFL_EXCEPTION): Define.
	(PVM_POKE): Do not raise exceptions.
	(pokei): Update description and remove branching jitter tag.
	(pokeiu): Likewise.
	(pokel): Likewise.
	(pokelu): Likewise.
	(pokedi): Likewise.
	(pokediu): Likewise.
	(pokedl): Likewise.
	(pokedlu): Likewise.
	(pokes): Likewise.
	* libpoke/pkl-gen.c (pkl_gen_ps_type_integral): Check and handler
	exceptions by poke* instructions.
	(pkl_gen_ps_type_string): Likewise.

2023-05-07  Patrick Trottier  <code@algolibre.net>

	Various fixes in the manual.

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

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

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

	* libpoke/ios.h (ios_context): New type.
	(ios_init): Returns `ios_context`.
	(ios_shutdown): Add new `ios_context` param.
	(ios_open): Likewise.
	(ios_close): Likewise.
	(ios_cur): Likewise.
	(ios_set_cur): Likewise.
	(ios_search): Likewise.
	(ios_search_by_id): Likewise.
	(ios_begin): Likewise.
	(ios_map): Likewise.
	(ios_register_foreign_iod): Likewise.
	(ios_foreign_iod): Likewise.
	* libpoke/ios-dev-sub.c (ios_dev_sub_open): Update.
	* libpoke/ios.c (struct ios): Mark `dev_if' as const.
	(struct ios_context): Add new field `foreign_dev_if'.
	(IOS_DEV_IF_DATA): Remove macro.
	(IOS_DEV_ZERO): New constant.
	(IOS_DEV_MEM): Likewise.
	(IOS_DEV_STREAM): Likewise.
	(IOS_DEV_NBD): Likewise.
	(IOS_DEV_PROC): Likewise.
	(IOS_DEV_SUB): Likewise.
	(IOS_DEV_FILE): Likewise.
	(ios_dev_ifs): Update.
	(ios_ctx): Remove.
	(ios_dev_ifs_count): New constant.
	(ios_context_data): New internal function.
	(ios_init): Returns `ios_context'.
	(ios_shutdown): Add new `ios_context' param.
	(ios_open): Likewise.
	(ios_close): Likewise.
	(ios_cur): Likewise.
	(ios_set_cur): Likewise.
	(ios_search): Likewise.
	(ios_search_by_id): Likewise.
	(ios_begin): Likewise.
	(ios_map): Likewise.
	(ios_foreign_iod): Likewise.
	(ios_register_foreign_iod): Likewise.
	* libpoke/pvm.h (pvm_ios_context): New function.
	* libpoke/pvm.c (pvm_ios_context): Likewise.
	(PVM_STATE_IOS_CONTEXT): New macro.
	(pvm_init): Add IOS initialization.
	(pvm_shutdown): Add IOS finalization.
	* libpoke/libpoke.c (struct _pk_compiler): Add `struct ios_dev_if`
	for foreign IOD.
	(pk_ios_completion_function): Update to use `ios_context'.
	(pk_ios_cur): Likewise.
	(pk_ios_set_cur): Likewise.
	(pk_ios_search): Likewise.
	(pk_ios_search_by_id): Likewise.
	(pk_ios_open): Likewise.
	(pk_ios_close): Likewise.
	(pk_ios_map): Likewise.
	(foreign_iod_if): Remove global variable.
	(pk_register_iod): Rely on `pk_compiler' fields instead of global
	variable. Use `ios_context'.
	* libpoke/pvm.jitter (state-struct-backing-c): Add new
	field `ios_context'.
	(state-initialization-c): Initialize new field.
	(PVM_PEEK): Update to use IOS context.
	(PVM_POKE): Likewise.
	(open): Likewise.
	(close): Likewise.
	(flush): Likewise.
	(pushios): Likewise.
	(popios): Likewise.
	(ioflags): Likewise.
	(iosize): Likewise.
	(ionum): Likewise.
	(ioref): Likewise.
	(iohandler): Likewise.
	(iogetb): Likewise.
	(iosetb): Likewise.
	(peeks): Likewise.
	(pokes): Likewise.

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

	* libpoke/ios.h (ios_get_dev_if): Add declaration.
	(ios_get_dev): Likewise.
	* libpoke/ios.c (ios_get_dev_if): Add `const' to function def.
	* libpoke/ios-dev.h (ios_dev_if): Likewise.

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

	* libpoke/ios-dev.h (struct ios_dev_if): Remove `data' field.
	* libpoke/ios.h (ios_register_foreign_iod): Add new param: `data'.
	* libpoke/ios.c (struct ios_context): New struct to put all
	global states in one place.
	(IOS_DEV_IF_DATA): New macro.
	(ios_ctx): An instance of `struct ios_context' which contains
	all global states.
	(ios_shutdown): Adapt to use `ios_ctx' global variable.
	(ios_open): Likewise.
	(ios_close): Likewise.
	(ios_cur): Likewise.
	(ios_set_cur): Likewise.
	(ios_search): Likewise.
	(ios_search_by_id): Likewise.
	(ios_set_bias): Likewise.
	(ios_map): Likewise.
	(ios_register_foreign_iod): Use new param.
	* libpoke/libpoke.c (pk_register_iod): Update.

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

	* libpoke/ios.h (ios_zombie_p): Fix typo in function declaration.

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

	* libpoke/pkl.c (pkl_free): Remove unused variable.

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

	* libpoke/ios.h (ios_inc_sub_dev): New function to track sub
	IO spaces.
	(ios_dec_sub_dev): Likewise.
	(ios_zombie_p): New function.
	* libpoke/ios.c (struct ios): Add new fields `zombie_p` and
	`num_sub_devs'.
	(ios_inc_sub_dev): New function definition.
	(ios_dec_sub_dev): Likewise.
	(ios_zombie_p): Likewise.
	(ios_open): Initialize new fields.
	(ios_close): Instead of deallocating the IOS, it becomes a zombie,
	if there's at least one sub-device that using this IOS.
	* libpoke/ios-dev-sub.c (struct ios_dev_sub): Use `ios' instead of
	ios id.
	(ios_dev_sub_open): Update to track base IOS.
	(ios_dev_sub_close): Likewise.
	(ios_dev_sub_pread): Use base IOS directly instead of searching
	using id.
	(ios_dev_sub_pwrite): Likewise.
	* testsuite/poke.pkl/open-sub-19.pk: New test.
	* testusite/poke.pkl/open-sub-20.pk: Likewise.
	* testsuite/Makefile.am (EXTRA_DIST): Update.

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

	* libpoke/pkl-tab.y (format_arg_list): Reworked to avoid code
	duplication.

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

	* libpoke/pkl.c (pkl_module_loaded_p): Remove function.
	(pkl_add_module): Likewise.
	* libpoke/pkl.h: ... and prototypes.
	* libpoke/pkl.c (struct pkl_compiler): Remove `modules' and
	`num_modules' fields.
	(pkl_new): Do not initialize these.
	(pkl_free): Do not dispose memory for these.
	* libpoke/pkl-tab.y (load_module): Do not call pkl_add_module.

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

	* libpoke/pkl.c (pkl_load): Allow loading modules more than once.
	* libpoke/libpoke.h: Document this behavior.

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

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

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

	* libpoke/libpoke.h: Prototype for pk_keyword_p.
	* libpoke/libpoke.c (pk_keyword_p): New function.
	* libpoke/Makefile.am: Generate $(srcdir)/pkl-keywords.def.
	* testsuite/poke.libpoke/api.c (test_pk_keyword_p): New test.
	* .gitignore: Add /libpoke/pkl-keywords.def.

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

	* testsuite/poke.std/std-test.pk: Do not use "standard" types.

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

	* testsuite/lib/poke-pk.exp (tap_execute): Pass --no-stdtypes to
	poke.
	* pickles/asn1-ber.pk: Do not use "standard" types.
	* pickles/bmp.pk: Likewise.
	* pickles/color.pk: Likewise.
	* pickles/id3v2.pk: Likewise.
	* pickles/id3v1.pk: Likewise.
	* pickles/ieee754.pk: Likewise.
	* pickles/leb128.pk: Likewise.
	* pickles/mbr.pk: Likewise.
	* pickles/openpgp.pk: Likewise.
	* pickles/jffs2.pk: Likewise.
	* pickles/pdap.pk: Likewise.
	* pickles/pcap.pk: Likewise.
	* pickles/riscv.pk: Likewise.
	* testsuite/poke.pickles/mbr-test.pk: Likewise.
	* testsuite/poke.pickles/uuid-test.pk: Likewise.
	* testsuite/poke.pickles/search-test.pk: Likewise.

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

	* poke/poke.c (initialize): Use pk_compiler_new_with_flags.
	(NO_STDTYPES_ARG): Define.
	(parse_args_1): Handle NO_STDTYPES_ARG.
	(parse_args_2): Likewise.
	* poke/pk-hserver.pk: Do not use standard types.
	* poke/pk-settings.pk: Likewise.
	* poke/pk-dump.pk: Likewise.
	* poke/pk-copy.pk: Likewise.
	* poke/pk-save.pk: Likewise.
	* poke/pk-scrabble.pk: Likewise.
	* poke/pk-diff.pk: Likewise.
	* pickles/diff.pk: Likewise.

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

	* pickles/bpf.pk: Do not use "standard" types.
	* pickles/btf.pk: Likewise.
	* pickles/sframe.pk: Likewise.
	* pickles/time.pk: Likewise.
	* pickles/coff.pk: Likewise.
	* pickles/pe.pk: Likewise.
	* pickles/ustar.pk: Likewise.
	* pickles/pktest.pk: Likewise.
	* pickles/redoxfs.pk: Likewise.
	* pickles/ios.pk: Likewise.
	* pickles/argp.pk: Likewise.

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

	* libpoke/pkl-attrs.def: New attribute 'ref.
	* libpoke/pkl-typify.c (pkl_typify1_ps_attr): Handle 'ref.
	* libpoke/pkl-anal.c (pkl_anal1_ps_op_attr): Likewise.
	* libpoke/pkl-promo.c (pkl_promo_ps_op_attr): Likewise.
	* libpoke/pkl-gen.c (pkl_gen_ps_op_attr): Likewise.
	* libpoke/pkl-gen-attrs.pks (attr_ref): New macro.
	* doc/poke.texi (Offset Attributes): Document the 'ref attribute.
	* testsuite/poke.pkl/attr-ref-diag-1.pk: New test.
	* testsuite/poke.pkl/attr-ref-diag-2.pk: Likewise.
	* testsuite/poke.pkl/attr-ref-diag-3.pk: Likewise.
	* testsuite/poke.pkl/attr-ref-diag-4.pk: Likewise.
	* testsuite/poke.pkl/attr-ref-1.pk: Likewise.
	* testsuite/poke.pkl/attr-ref-2.pk: Likewise.
	* testsuite/poke.pkl/attr-ref-3.pk: Likewise.
	* testsuite/poke.pkl/attr-ref-4.pk: New test.
	* testsuite/poke.pkl/attr-ref-5.pk: Likewise.
	* testsuite/Makefile.am (EXTRA_DIST): Add new tests.

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

	* libpoke/pkl-ast.h (PKL_AST_STRUCT_REF_INDIRECTION_P): Define.
	(struct pkl_ast_struct_ref): New field indirection_p.
	* libpoke/pkl-tab.y: New token IND.
	(primary): New rule for indirecting struct fields.
	* libpoke/pkl-lex.l: Recognize token IND.
	* libpoke/pkl-typify.c (pkl_typify1_ps_struct_ref): Handle
	indirected struct references.
	* libpoke/pkl-trans.c (pkl_trans2_ps_struct_ref): Transform
	indirected struct references into mapping operations.
	* libpoke/pkl-gen.c (pkl_gen_ps_struct_ref): Support indirections.
	(pkl_gen_pr_ass_stmt): Likewise.
	* testsuite/poke.pkl/struct-ind-diag-1.pk: New test.
	* testsuite/poke.pkl/struct-ind-diag-2.pk: Likewise.
	* testsuite/poke.pkl/struct-ind-diag-3.pk: Likewise.
	* testsuite/poke.pkl/struct-ind-diag-4.pk: Likewise.
	* testsuite/poke.pkl/struct-ind-1.pk: Likewise.
	* testsuite/poke.pkl/struct-ind-2.pk: Likewise.
	* testsuite/poke.pkl/struct-ind-3.pk: Likewise.
	* testsuite/poke.pkl/struct-ind-4.pk: Likewise.
	* testsuite/poke.pkl/ass-ind-1.pk: Likewise.
	* testsuite/poke.pkl/ass-ind-2.pk: Likewise.
	* testsuite/Makefile.am (EXTRA_DIST): Add new tests.

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

	* libpoke/pkl-ast.h (struct pkl_ast_type): New field ref_type in
	offset types.
	(PKL_AST_TYPE_O_REF_TYPE): Define.
	* libpoke/pkl-ast.c (pkl_ast_make_offset_type): Get a ref_type
	argument.
	(pkl_ast_node_free_1): Free ref_type.
	(pkl_ast_print_1): Print ref_type.
	(pkl_type_append_to): Include ref_type in printed representation.
	(pkl_ast_type_equal_p): Handle referred types.
	* libpoke/pkl-tab.y (ref_type): New rule.
	* libpoke/pkl-typify.c: Pass ref_type argument to calls to
	pkl_ast_make_offset_type.
	* libpoke/pkl-promo.c (promote_offset): Likewise.
	* libpoke/pkl-trans.c: Likewise.
	* libpoke/pkl-promo.c (promote_offset): Handle ref_type.
	(promote_node): Likewise.
	* libpoke/pkl-pass.c (pkl_do_pass_1): Traverse ref_type in offset
	type nodes.
	* libpoke/pkl-lex.l: Likewise.
	* libpoke/pkl-gen.c (pkl_gen_pr_type_offset): Use ref_type.
	* libpoke/pkl-rt.pk (_pkl_print_format_any): Print ref_type in
	offset types.
	* libpoke/pvm-val.h (PVM_VAL_TYP_O_REF_TYPE): Define.
	* libpoke/pvm-val.c (pvm_make_offset_type): Get an argument
	ref_type.
	* libpoke/pvm.jitter (tyosetrt): New instruction.
	(tyogetrt): Likewise.
	* libpoke/pkl-insn.def: New instructions PKL_INSN_TYOSETRT and
	PKL_INSN_TYOGETRT.
	* libpoke/pk-val.c (pk_make_offset_type): Likewise.
	* doc/poke.texi (Offset Types): Document referred types in offset
	types.
	* testsuite/poke.pkl/offset-type-2.pk: New test.
	* testsuite/poke.pkl/print-any-4.pk: Likewise.
	* testsuite/poke.pkl/add-offset-11.pk: Likewise.
	* testsuite/poke.pkl/sub-offsets-9.pk: Likewise.
	* testsuite/poke.pkl/mul-offsets-12.pk: Likewise.
	* testsuite/poke.pkl/div-offsets-5.pk: Likewise.
	* testsuite/poke.pkl/bnot-offsets-2.pk: Likewise.
	* testsuite/Makefile.am (EXTRA_DIST): Add new tests.

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

	* libpoke/pkl-ast.h (struct pkl_ast_type): New field ref_type in
	offset types.
	(PKL_AST_TYPE_O_REF_TYPE): Define.
	* libpoke/pkl-ast.c (pkl_ast_make_offset_type): Get a ref_type
	argument.
	(pkl_ast_node_free_1): Free ref_type.
	(pkl_ast_print_1): Print ref_type.
	(pkl_type_append_to): Include ref_type in printed representation.
	(pkl_ast_type_equal_p): Handle referred types.
	* libpoke/pkl-tab.y (ref_type): New rule.
	* libpoke/pkl-typify.c: Pass ref_type argument to calls to
	pkl_ast_make_offset_type.
	* libpoke/pkl-promo.c (promote_offset): Likewise.
	* libpoke/pkl-trans.c: Likewise.
	* libpoke/pkl-promo.c (promote_offset): Handle ref_type.
	(promote_node): Likewise.
	* libpoke/pkl-pass.c (pkl_do_pass_1): Traverse ref_type in offset
	type nodes.
	* libpoke/pkl-lex.l: Likewise.
	* libpoke/pkl-gen.c (pkl_gen_pr_type_offset): Use ref_type.
	* libpoke/pkl-rt.pk (_pkl_print_format_any): Print ref_type in
	offset types.
	* libpoke/pvm-val.h (PVM_VAL_TYP_O_REF_TYPE): Define.
	* libpoke/pvm-val.c (pvm_make_offset_type): Get an argument
	ref_type.
	* libpoke/pvm.jitter (tyosetrt): New instruction.
	(tyogetrt): Likewise.
	* libpoke/pkl-insn.def: New instructions PKL_INSN_TYOSETRT and
	PKL_INSN_TYOGETRT.
	* libpoke/pk-val.c (pk_make_offset_type): Likewise.
	* doc/poke.texi (Offset Types): Document referred types in offset
	types.
	* testsuite/poke.pkl/offset-type-2.pk: New test.
	* testsuite/poke.pkl/print-any-4.pk: Likewise.
	* testsuite/poke.pkl/add-offset-11.pk: Likewise.
	* testsuite/poke.pkl/sub-offsets-9.pk: Likewise.
	* testsuite/poke.pkl/mul-offsets-11.pk: Likewise.
	* testsuite/poke.pkl/div-offsets-5.pk: Likewise.
	* testsuite/poke.pkl/bnot-offsets-2.pk: Likewise.
	* testsuite/Makefile.am (EXTRA_DIST): Add new tests.

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

	* libpoke/pkl-tab.y (primary): Remove typification of `format'.
	Remove unnecessary `PKL_AST_LOC' invocations.
	* libpoke/pkl-typify.c (pkl_typify1_ps_format): Typify the `format'.

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

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

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

	* etc/hacking.org (Continuous Integration): Update.
	* HACKING: Regenerate.

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

	* doc/poke.texi (Integral Structs): s/little-endian/big-endian/
	when talking about how gcc encodes bit fields.

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

	* etc/poke.rec: Remove priority fields.

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

	* common/pk-utils.h (pvm_stof): New declaration.
	(pvm_stod): Likewise.
	* common/pk-utils.c (pvm_stof): Definition of string to `float'
	conversion function.
	(pvm_stod): Definition of string to `double' conversion function.
	* libpoke/pkl-insn.def (PKL_INSN_STOF): New instruction.
	(PKL_INSN_STOD): Likewise.
	* libpoke/pvm.jitter (wrapped-functions): Add `pvm_stof' and
	`pvm_stod'.
	(stof): New instruction to convert string to float32 number
	represented as a `uint<32>'.
	(stod): New instruction to convert string to float64 number
	represented as a `uint<64>'.
	* libpoke/std.pk (stof): New function to wrap `stof' instruction.
	(stod): Likewise.
	* testsuite/poke.pvm/pvm-insns-test.pk (tests): Add entries for
	`stof' and `stod'.
	* testsuite/poke.std/std-test.pk (tests): Likewise.

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

	* libpoke/pvm.jitter (push32): Fix printers.

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

	* libpoke/pvm.jitter (pushlo): Remove.
	(pushhi): Likewise.
	(push32): Changed to accept two arguments.
	* libpoke/pvm-program.c (pvm_program_append_push_instruction):
	Adapt accordingly.

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

	* etc/poke.rec (Support #foo within string literals): New bug.

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

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

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

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

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

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

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

	* doc/poke.texi (Poking a SBM Image :: Saving the Image): Fix
	the example.

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

	* INSTALL: Remove section about building the GUI.

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

	* pickles/iscan.pk: New file.
	* pickles/iscan-str.pk: Likewise.
	* pickles/Makefile.am (dist_pickles_DATA): Add iscan.pk and
	iscan-str.pk.
	* testsuite/poke.pickles/iscan-test.pk: New testsuite.
	* testsuite/Makefile.am (EXTRA_DIST): Add new test.

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

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

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

	* libpoke/pkl-asm.c (pkl_asm_insn_cmp): Support values of type
	any.
	* testsuite/poke.pkl/eq-any-array-3.pk: New test.
	* testsuite/poke.pkl/neq-array-3.pk: Likewise.
	* testsuite/Makefile.am (EXTRA_DIST): Add new tests.

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

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

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

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

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

	* libpoke/pkl-insn.def (asettb): Remove instruction.
	(tyasetb): New instruction.
	* libpoke/pvm.jitter (asettb): Remove.
	(tyasetb): New instruction to update the array's type bounder.
	* libpoke/pkl-asm.c (pkl_asm_insn_atoa): Use new instruction.
	* libpoke/pkl-asm.pks (array_conv_sel): Likewise.
	(array_conv_siz): Likewise.

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

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

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

	* libpoke/pvm.jitter (wrapped-globals): Remove
	`pvm_literal_inval_obase'.
	(late-c): Likewise.

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

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

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

	* common/pk-utils.h (pk_unreachable): New function declaration.
	(PK_UNREACHABLE): Changed the macro to use `pk_unreachable'.
	* common/pk-utils.c (pk_unreachable): New function definition.

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

	* pickles/pe.pk: Add size_of_stack_reserve.

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

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

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

	* libpoke/pkl-gen-builtins.pks: Remove.
	* libpoke/Makefile.am (libpoke_la_SOURCES): Update accordingly.
	* libpoke/pkl-ast.h (PKL_AST_BUILTIN_TERM_GET_COLOR): Remove.
	(PKL_AST_BUILTIN_TERM_SET_COLOR): Likewise.
	(PKL_AST_BUILTIN_TERM_GET_BGCOLOR): Likewise.
	(PKL_AST_BUILTIN_TERM_SET_BGCOLOR): Likewise.
	* libpoke/pkl-gen.c (pkl_gen_ps_comp_stmt): Do not handle
	builtins.
	* libpoke/pkl-lex.l: Remove rules for
	__PKL_BUILTIN_TERM_{GET,SET}_[BG]COLOR__ tokens.
	* libpoke/pkl-tab.y (builtin): Remove rule.
	* libpoke/pkl-rt.pk (term_get_color): Rewrite using inline asm.
	(term_get_bgcolor): Likewise.
	(term_set_color): Likewise.
	(term_set_bgcolor): Likewise.

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

	* libpoke/pkl-gen.pks (union_deintegrator): Remove unused
	variable.

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

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

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

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

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

	* libpoke/pkl-asm.c (pkl_asm_insn): Remove reference to
	pkl_asm_insn_oto.

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

	* libpoke/pkl-insn.def: Remove instruction PKL_INSN_OTO.
	* libpoke/pkl-asm.c (pkl_asm_insn_oto): Remove.
	(pkl_asm_insn): Do not handle PKL_INSN_OTO.
	* libpoke/pkl-asm.pks: Move RAS_MACRO_OFFSET_CAST from here..
	* libpoke/pkl-gen.pks: ... to here.
	* libpoke/pkl-gen.c (pkl_gen_pr_cast): Use RAS_MACRO_OFFSET_CAST.

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

	* libpoke/pkl-gen-attrs.pks (attr_size): Use mkoq.
	(attr_offset): Likewise.
	(attr_eoffset): Likewise.
	(attr_esize): Likewise.
	* libpoke/pkl-gen.pks (emit_tv_field_event): Likewise.
	(struct_mapper): Likewise.
	(struct_constructor): Likewise.
	(struct_field_extractor): Create offset type explicitly.
	(deint_extract_field_value): Likewise.
	(union_deintegrator): Likewise.
	* libpoke/pkl-gen.c (pkl_gen_pr_type_offset): Create offset type
	explicitly.
	(pkl_gen_ps_offset): Likewise.
	(pkl_gen_ps_op_div): Likewise.
	* libpoke/pkl-asm.c (pkl_asm_insn_binop): Use mkoq instead of mko.
	* libpoke/pkl-asm.pks (addo): Likewise.
	(subo): Likewise.
	(mulo): Likewise.
	(modo): Likewise.
	(offset_cast): Likewise.
	* libpoke/pkl-insn.def (PKL_INSN_MKOQ): New instruction.
	* libpoke/pvm.jitter (mkoq): New instruction.

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

	* libpoke/pvm-val.h (PVM_VAL_OFF_UNIT): Remove.
	(PVM_VAL_OFF_BASE_TYPE): Likewise.
	* libpoke/pvm-val.c (pvm_make_offset): Get an offset type as an
	argument.
	(pvm_typeof): Adjust accordingly.
	(pvm_val_equal_p): Likewise.
	(pvm_print_val_1): Likewise.
	* libpoke/pvm.jitter (iosetb): Likewise.
	(ogetu): Likewise.
	(ogetbt): Likewise.
	(iosize): Likewise.
	(iogetb): Likewise.
	* libpoke/pk-val.c (pk_offset_unit): Likewise.
	(pk_val_set_offset): Likewise.
	(pk_make_offset): Likewise.
	(pk_val_offset): Likewise.
	* libpoke/pkl-asm.c (pkl_asm_new): Remove old code involving the
	IO base register.

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

	* libpoke/pvm.jitter (mktyo): Get the unit of the offset as an
	ulong instead of an int.

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

	* pickles/btf.pk (BTF_Header): Add constraint to check hdr_len.

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

	* libpoke/pvm.jitter (PVM_BINOP_SL): Remove macro.
	(bsli): Use PVM_BINOP.
	(bsliu): Likewise.
	(bsll): Likewise.
	(bsllu): Likewise.

	* libpoke/pkl-asm.c (pkl_asm_insn_binop): Check for UB in SL
	instructions and raise exception consequently.

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

	* libpoke/pkl-rt.pk (vm_set_obase): Check for valid values.
	(vm_set_omode): Likewise.
	* libpoke/pvm.jitter (popob): Do not raise exceptions.
	(popom): Likewise.

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

	* libpoke/pkl-asm.c (pkl_asm_insn_binop): Check for division by
	zero before div and mod.
	* libpoke/pvm.jitter (PVM_CHECKED_BINOP): Remove macro.
	(divi): Do not raise division by zero exception.
	(diviu): Likewise.
	(divl): Likewise.
	(divlu): Likewise.
	(modi): Likewise.
	(modiu): Likewise.
	(modl): Likewise.
	(modlu): Likewise.

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

	* libpoke/pvm.jitter (PVM_NEG_SIGNED): Do not check for overflow.
	(negi): Remove jitter `branching' annotation, and use PVM_UNOP.
	(negl): Likewise.
	(addi): Likewise.
	(addl): Likewise.
	(subi): Likewise.
	(subl): Likewise.
	(muli): Likewise.
	(mull): Likewise.
	(divi): Likewise.
	(divl): Likewise.
	(modi): Likewise.
	(modl): Likewise.
	(powi): Likewise.
	(powl): Likewise.
	(PVM_NEG_SIGNED): Remove macro.
	(PVM_ADD_SIGNED): Likewise.
	(PVM_SUB_SIGNED): Likewise.
	(PVM_MUL_SIGNED): Likewise.
	(PVM_DIV_SIGNED): Likewise.
	(PVM_MOD_SIGNED): Likewise.
	(PVM_POWOP_SIGNED): Likewise.

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

	* libpoke/pkl-asm.c (pkl_asm_insn_binop): Check for signed
	overflow whenever appropriate.
	(pkl_asm_insn): Handle signed overflow macro-instructions.

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

	* libpoke/pkl-insn.def (PKL_INSN_NEGOF): New macro-instruction.
	(PKL_INSN_ADDOF): Likewise.
	(PKL_INSN_SUBOF): Likewise.
	(PKL_INSN_MULOF): Likewise.
	(PKL_INSN_DIVOF): Likewise.
	(PKL_INSN_MODOF): Likewise.
	(PKL_INSN_POWOF): Likewise.
	* libpoke/pkl-asm.c (pkl_asm_insn_binop): Add support for integer
	overflow checking instructions.

2023-02-07  Indu Bhagat  <indu.bhagat@oracle.com>

	* pickles/sframe.pk: Use camel casing for types consistently.
	* pickles/sframe-dump.pk: Likewise.

2023-02-07  Indu Bhagat  <indu.bhagat@oracle.com>

	* pickles/sframe.pk: Update the pickle for AArch64 PAuth
	support.

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

	* libpoke/pvm.jitter (addiof): New instruction.
	(addlof): Likewise.
	(subiof): Likewise.
	(sublof): Likewise.
	(muliof): Likewise.
	(mullof): Likewise.
	(diviof): Likewise.
	(divlof): Likewise.
	(modiof): Likewise.
	(modlof): Likewise.
	(negiof): Likewise.
	(neglof): Likewise.
	(powiof): Likewise.
	(powlof): Likewise.
	* testsuite/poke.pvm/pvm-insns-test.pk (addiof): New test.
	(addlof): Likewise.
	(subiof): Likewise.
	(sublof): Likewise.
	(muliof): Likewise.
	(mullof): Likewise.
	(diviof): Likewise.
	(divlof): Likewise.
	(modiof): Likewise.
	(modlof): Likewise.
	(negiof): Likewise.
	(neglof): Likewise.
	(powiof): Likewise.
	(powlof): Likewise.

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

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

2023-02-06  Nikolaos Chatzikonstantinou  <nchatz314@gmail.com>

	* libpoke/std.pk (stoca): Add support for returning the converted
	value.
	* doc/poke.texi (stoca): Update accordingly.
	* testsuite/poke.std/std-test.pk: Add stoca-catos idempotence
	test.

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

	* testsuite/poke.pvm/pvm.exp: New file.
	* testsuite/poke.pvm/vm-insns.pk: Likewise.
	* testsuite/Makefile.am (EXTRA_DIST): Add new test.

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

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

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

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

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

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

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

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

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

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

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

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

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

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

	* doc/poke.texi (The any Type): Document that == and != are
	applicable to values of type `any'.

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

	* libpoke/pkl-rt.pk (_pkl_eq_any): Fix comparation for structs.
	* testsuite/poke.pkl/eq-any-union-1.pk: New test.
	* testsuite/poke.pkl/neq-any-union-1.pk: Likewise.
	* testsuite/poke.pkl/eq-any-struct-5.pk: Likewise.
	* testsuite/Makefile.am (EXTRA_DIST): Add new tests.

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

	* libpoke/pkl-rt.pk (_pkl_eq_any): Fix typo in assembly template.

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

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

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

	* libpoke/pkl-rt.pk (_pkl_64x64_128): New function.
	(_pkl_any_integral_p): Likewise.
	(_pkl_eq_integral): Likewise.
	(_pkl_eq_offset): Likewise.
	(_pkl_eq_array): Likewise.
	(_pkl_eq_struct): Likewise.
	(_pkl_eq_any): Likewise.
	* libpoke/pkl-gen.c (pkl_gen_ps_op_rela): Support EQ and NE for
	`any' values.
	(pkl_gen_pr_cast): Do nothing for casts to `any'.
	* libpoke/pkl-typify.c (pkl_typify1_ps_op_rela): Likewise.
	* libpoke/pkl-promo.c (pkl_promo_ps_op_rela): Likewise.
	(promote_to_any): New function.
	* testsuite/poke.pkl/eq-any-diag-1.pk: Remove test.
	* testsuite/poke.pkl/neq-any-diag-1.pk: Likewise.
	* testsuite/poke.pkl/ge-any-diag-1.pk: New test.
	* testsuite/poke.pkl/le-any-diag-1.pk: Likewise.
	* testsuite/poke.pkl/lt-any-diag-1.pk: Likewise.
	* testsuite/poke.pkl/gt-any-diag-1.pk: Likewise.
	* testsuite/poke.pkl/eq-any-integral-1.pk: Likewise.
	* testsuite/poke.pkl/eq-any-integral-2.pk: Likewise.
	* testsuite/poke.pkl/eq-any-integral-3.pk: Likewise.
	* testsuite/poke.pkl/eq-any-integral-4.pk: Likewise.
	* testsuite/poke.pkl/eq-any-offset-1.pk: Likewise.
	* testsuite/poke.pkl/eq-any-offset-2.pk: Likewise.
	* testsuite/poke.pkl/eq-any-offset-3.pk: Likewise.
	* testsuite/poke.pkl/eq-any-offset-4.pk: Likewise.
	* testsuite/poke.pkl/eq-any-offset-5.pk: Likewise.
	* testsuite/poke.pkl/eq-any-offset-6.pk: Likewise.
	* testsuite/poke.pkl/eq-any-offset-7.pk: Likewise.
	* testsuite/poke.pkl/neq-any-offset-1.pk: Likewise.
	* testsuite/poke.pkl/neq-any-offset-2.pk: Likewise.
	* testsuite/poke.pkl/neq-any-offset-3.pk: Likewise.
	* testsuite/poke.pkl/neq-any-offset-4.pk: Likewise.
	* testsuite/poke.pkl/neq-any-offset-5.pk: Likewise.
	* testsuite/poke.pkl/neq-any-offset-6.pk: Likewise.
	* testsuite/poke.pkl/neq-any-offset-7.pk: Likewise.
	* testsuite/poke.pkl/eq-any-array-1.pk: Likewise.
	* testsuite/poke.pkl/eq-any-array-2.pk: Likewise.
	* testsuite/poke.pkl/neq-any-array-1.pk: Likewise.
	* testsuite/poke.pkl/neq-any-array-2.pk: Likewise.
	* testsuite/poke.pkl/eq-any-string-1.pk: Likewise.
	* testsuite/poke.pkl/neq-any-string-1.pk: Likewise.
	* testsuite/poke.pkl/eq-any-struct-1.pk: Likewise.
	* testsuite/poke.pkl/eq-any-struct-2.pk: Likewise.
	* testsuite/poke.pkl/eq-any-struct-3.pk: Likewise.
	* testsuite/poke.pkl/eq-any-struct-4.pk: Likewise.
	* testsuite/poke.pkl/neq-any-struct-1.pk: Likewise.
	* testsuite/poke.pkl/neq-any-struct-2.pk: Likewise.
	* testsuite/Makefile.am (EXTRA_DIST): Update.

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

	* libpoke/pkl-rt.pk (_pkl_print_format_any): Make sure to end
	styling classes before returning.

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

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

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

	* pickles/sframe.pk: Do not load elf.pk.  It is not needed.
	* pickles/elf.pk: Remove.
	* pickles/elf-32.pk: Likewise.
	* pickles/elf-64.pk: Likewise.
	* pickles/elf-common.pk: Likewise.
	* pickles/dwarf.pk: Likewise.
	* pickles/dwarf-common.pk: Likewise.
	* pickles/dwarf-expr.pk: Likewise.
	* pickles/dwarf-frame.pk: Likewise.
	* pickles/dwarf-info.pk: Likewise.
	* pickles/dwarf-pubnames.pk: Likewise.
	* pickles/dwarf-types.pk: Likewise.
	* pickles/README.elf: New file.
	* pickles/README.dwarf: Likewise.
	* pickles/Makefile.am (dist_pickles_DATA): Remove elf pickles.
	(EXTRA_DIST): Distribute README.elf and README.dwarf.
	* testsuite/poke.pickles/elf-test.pk: Remove.
	* testsuite/poke.pickles/dwarf-test.pk: Likewise.
	* testsuite/poke.pickles/ctf-test.pk: Likewise.
	* testsuite/Makefile.am (EXTRA_DIST): Remove elf-test.pk,
	dwarf-test.pk and ctf-test.pk.
	* doc/poke.texi (Binary Files): Tell how to find the elf pickles.
	(ELF): Likewise.

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

	* poke/poke.c (initialize): Fix addition of POKE_LOAD_PATH to
	load_path.

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

	* poke/poke.c (initialize): Honor POKE_LOAD_PATH.
	(print_help): Document new env var.
	* doc/poke.texi (Invoking poke): Likewise.

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

	* bootstrap.conf (gnulib_modules): Remove obsolete package memcpy.

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

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

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

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

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

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

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

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

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

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

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

	* doc/poke.texi: Change dircategory to GNU poke.

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

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

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

	* libpoke/pkl-rt.pk (_pkl_print_format_any): Simplify code.

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

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

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

	* libpoke/pkl-typify.c (pkl_typify1_ps_decl): Check field
	pretty-printers.
	* libpoke/pkl-rt.pk (_pkl_print_format_any): Use field
	pretty-printers whenever available.
	* testsuite/poke.pkl/struct-field-pretty-print-diag-1.pk: New
	test.
	* testsuite/poke.pkl/struct-field-pretty-print-diag-2.pk:
	Likewise.
	* testsuite/poke.pkl/struct-field-pretty-print-1.pk: Likewise.
	* testsuite/Makefile.am (EXTRA_DIST): Add new tests.
	* doc/poke.texi (Struct Pretty Printers): New section.

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

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

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

	* libpoke/ios.c (ios_close): Re-use the IOS ID if possible.
	* testsuite/poke.pkl/ios-close-1.pk: New test.
	* testsuite/poke.pkl/ios-close-2.pk: Likewise.
	* testsuite/Makefile.am (EXTRA_DIST): Add new tests.

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

	* libpoke/pvm.jitter: Wrap pvm_free.

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

	* testsuite/poke.cmd/sdiff-2.pk: Adapt to new value printing.
	* testsuite/poke.cmd/sdiff-3.pk: Likewise.
	* testsuite/poke.cmd/sdiff-4.pk: Likewise.
	* testsuite/poke.cmd/sdiff-8.pk: Likewise.
	* testsuite/poke.cmd/sdiff-1.pk: Run sdiff with :values 0.
	* testsuite/poke.cmd/sdiff-5.pk: Likewise.
	* testsuite/poke.cmd/sdiff-6.pk: Likewise.
	* testsuite/poke.cmd/sdiff-7.pk: Likewise.
	* testsuite/poke.cmd/sdiff-10.pk: Likewise.
	* testsuite/poke.cmd/sdiff-12.pk: Likewise.

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

	* pickles/diff.pk (format_value): Remove function.
	Use regular `format' for `any' values.

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

	* libpoke/pkl-ast.h (PKL_AST_BUILTIN_CLOSE): Remove.
	* libpoke/pkl-gen.c (pkl_gen_ps_comp_stmt): Remove case for
	PKL_AST_BUILTIN_CLOSE.
	* libpoke/pkl-lex.l: Remove rule for __PKL_BUILTIN_CLOSE__.
	* libpoke/pkl-tab.y (builtin): Remove rule for BUILTIN_CLOSE.
	* libpoke/pkl-gen-builtins.pks (builtin_close): Remove.
	* libpoke/pkl-rt.pk (close): Rewrite as a normal function.

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

	* libpoke/pkl-ast.h (PKL_AST_BUILTIN_SET_IOS): Remove.
	* libpoke/pkl-gen.c (pkl_gen_ps_comp_stmt): Remove case for
	PKL_AST_BUILTIN_SET_IOS.
	* libpoke/pkl-lex.l: Remove rule for __PKL_BUILTIN_SET_IOS__.
	* libpoke/pkl-tab.y (builtin): Remove rule for BUILTIN_SET_IOS.
	* libpoke/pkl-gen-builtins.pks (builtin_set_ios): Remove.
	* libpoke/pkl-rt.pk (set_ios): Rewrite as a normal function.

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

	* libpoke/pkl-rt.pk (_pkl_print_format_any): Simplify inline asm
	snippet.

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

	* pickles/pcap.pk (PCAP_Packet): Declare body as a byte array.

2022-12-22  Darshit Shah  <darnir@gnu.org>

	* doc/poke.texi: Simplify Hyperlink setup by calling `make install`

2022-12-10  Jose E. Marchesi  <jemarch@gnu.org>

	* libpoke/pkl-gen.pks (struct_constructor): Emit
	tv_field_constructed event for fields for which there are
	initializers in the constructor.

2022-12-10  Jose E. Marchesi  <jemarch@gnu.org>

	* libpoke/pkl-insn.def: Define oover.
	* libpoke/pvm.jitter (oover): New instruction.
	* libpoke/pkl-rt.pk (PK_TV_FIELD_CONSTRUCTED): Define.
	* libpoke/pkl.h (PK_TV_FIELD_CONSTRUCTED): Likewise.
	* libpoke/pkl-gen.pks (emit_tv_field_event): New macro.
	(struct_field_mapper): Use it.
	(struct_field_constructor): Emit an event for constructed fields.
	(typeof): Eval to PVM_NULL if the requested typeof is for Pk_Type.
	* poke/pk-tracer.pk (pk_tv_action_field_mapped_constructed):
	Rename from pk_tv_action_field_mapped and adapted to handle both
	events.

2022-12-10  Jose E. Marchesi  <jemarch@gnu.org>

	* testsuite/poke.pkl/scons-constraints-1.pk: Adapt to new
	exception mesage.
	* testsuite/poke.pkl/scons-constraints-2.pk: Likewise.
	* testsuite/poke.pktest/pktest-12.pk: Likewise.

2022-12-10  Jose E. Marchesi  <jemarch@gnu.org>

	* libpoke/pkl-ast.h (struct pkl_ast_struct_type_field): New field
	constraint_src.
	(PKL_AST_STRUCT_TYPE_FIELD_CONSTRAINT_SRC): Define.
	* libpoke/pkl-ast.c (pkl_ast_dup_type): Adapt accordingly.
	(pkl_ast_node_free_1): Likewise.
	* libpoke/pkl-tab.y (struct_type_field): Fill in constraint_src in
	struct field type AST nodes.
	* libpoke/pkl-rt.pk (_pkl_e_constraint_msg): New function.
	* libpoke/pkl-gen.pks (check_struct_field_constraint): Call
	_pkl_e_constraint_msg.
	* testsuite/poke.map/maps-structs-constraints-2.pk: Adapt to new
	message.
	* testsuite/poke.map/maps-structs-constraints-3.pk: Likewise.
	* testsuite/poke.pickles/pcap-test.pk: Likewise.

2022-12-05  Mohammad-Reza Nabipoor  <mnabipoor@gnu.org>

	* poked/poked.pk (AUTOCMPL_IDENT): Change the value.
	(AUTOCMPL_IOS): Likewise.
	(AUTOCMPL_ITER_BEGIN): New macro.
	(AUTOCMPL_ITER_END): Likewise.
	(poked_autocmpl_send_one): Adapt.
	(poked_autocmpl_send): Send iteration.

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

	* poked/poked.pk (plet_disasm): Add an assertion for valid
	architectures.

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

	* poked/poked.c (PDISAS_ITER_BEGIN): New macro.
	(PDISAS_ITER_END): Likewise.
	(PDISAS_ERR): Likewise.
	(PDISAS_TXT): Likewise.
	(PDISAS_KIND): Likewise.
	(termout_disas): New function.
	(poked_disasm_send): Likewise.
	(iteration_send): Add new param (`chan').
	(iteration_begin): Likewise.
	(iteration_end): Likewise.
	(poked_compile): Add support for Poke disasm.
	(main): Update `iteration_begin' and `iteration_end'
	invocation.
	* poked/poked.pk (PLET_DISAS_KIND_FUNC): New const.
	(PLET_DISAS_KIND_FUNC_NATIVE): Likewise.
	(PLET_DISAS_KIND_EXPR): Likewise.
	(PLET_DISAS_KIND_EXPR_NATIVE): Likewise.
	(__Poked_Disas): New type.
	(__poked_disas_data): New variable.
	(__poked_disas_p): Likewise.
	(__poked_disas_reset): New function.
	(plet_disas_func): Likewise.
	(plet_disas_expr): Likewise.

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

	* poked/poked.c (OUTCMD_TXT): Change the value.
	(OUTCMD_ITER_END): Likewise.
	(OUTCMD_CLS_BEGIN): Likewise.
	(OUTCMD_CLS_END): Likewise.
	(OUTCMD_EVAL): Likewise.
	(OUTCMD_ERR): Likewise.

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

	* poked/usock.h (usock_out_printf): New function.
	* poked/usock.c (usock_out_printf): Likewise.

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

	* poked/usock.h (USOCK_CHAN_IN_AUTOCMPL): Remove macro.
	(USOCK_CHAN_OUT_DISASM): Likewise.
	(USOCK_CHAN_OUT_PDISAS): New macro.
	(USOCK_CHAN_OUT_CDISAS): Likewise.
	* poked/poked.pk (plet_disasm): Update the CPU disasm channel.

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

	* poked/poked.pk (__poked_libpoke_version): New variable.
	(poked_libpoke_version): New function.
	* poked/poked.c (poked_init): Set `__poked_libpoke_version'.

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

	* poked/poked.c (main): Print PDAP version.
	(poked_init): Add new param (`pdap_version').
	Update `__poked_pdap_version' Poke variable.
	* poked/poked.pk (__poked_pdap_version): New variable.
	(poked_pdap_version): New function.

2022-11-29  Mohammad-Reza Nabipoor  <mnabipoor@gnu.org>

	* testsuite/lib/poke-pk.exp (tap_execute): Only keep the filename
	and parent directory name for test files to be consistent with
	the rest.

2022-11-27  Arsen Arsenović  <arsen@aarsen.me>

	* bootstrap: Sync with Gnulib.
	* autopull.sh: New file from Gnulib, as a result of sync.
	* autogen.sh: Ditto.
	* bootstrap-funclib.sh: Ditto.
	* bootstrap.conf (bootstrap_print_option_usage_hook): Fix help
	string alignment.
	(bootstrap_post_import_hook): Default JITTER_SRCDIR to Jitter,
	die-guard cd "${JITTER_SRCDIR}" to prevent recursing, move Jitter
	submodule update code...
	(bootstrap_post_pull_hook): ... to this new hook.
	(bootstrap_option_hook): Export JITTER_SRCDIR.
	* gnulib: Update to newest.

2022-11-24  Arsen Arsenović  <arsen@aarsen.me>

	* poke/poke.c (poke_getopt_string): Extract the getopt string, to
	avoid repetition.
	(parse_args_1): Use common poke_getopt_string, assert out on
	unhandled option, and exit on unknown option.
	(parse_args_2): Use common poke_getopt_string, assert out on
	unhandled option.

2022-11-24  Agathe Porte  <floss@microjoe.org>

	* doc/poke.texi: fix sbm image bytes in example.

2022-11-23  Arsen Arsenović  <arsen@aarsen.me>

	* doc/Makefile.am (poke.text): Make dependencies match other
	Texinfo targets.

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

	* libpoke/pkl-lex.l (build_overflow_error_msg): Use PRIu64 instead
	of `lu'.

2022-11-21  Arsen Arsenović  <arsen@aarsen.me>

	* etc/hacking.org (Continuous Integration): Document the
	Sourceware buildbot.
	* HACKING: Regenerate.

2022-11-16  Mohammad-Reza Nabipoor  <mnabipoor@gnu.org>

	* pickles/uuid.pk: New pickle.
	* pickles/redoxfs.pk: Likewise.
	* pickles/pcap.pk: Likewise.
	* testsuite/poke.pickles/uuid-test.pk: New test.
	* testsuite/poke.pickles/pcap-test.pk: Likewise.
	* testsuite/poke.pickles/redoxfs-test.pk: Likewise.
	* pickles/Makefile.am (dist_pickles_DATA): Update.
	* testsuite/Makefile.am (EXTRA_DIST): Likewise.

2022-11-16  Jose E. Marchesi  <jemarch@gnu.org>

	* libpoke/pkl-lex.l: Require at least one digit in octal
	constants.
	* testsuite/poke.pkl/integers-diag-3.pk: New test.
	* testsuite/poke.pkl/integers-diag-4.pk: Likewise.
	* testsuite/Makefile.am (EXTRA_DIST): Add new tests.

2022-11-13  Jose E. Marchesi  <jemarch@gnu.org>

	* libpoke/pvm.jitter: Change `map' instruction to not raise
	exceptions.

2022-11-11  Arsen Arsenović  <arsen@aarsen.me>

	* .gitmodules: Upgrade to HTTPS URLs.

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

	* testsuite/poke.map/maps-unions-17.pk: New test.
	* testsuite/poke.map/maps-unions-18.pk: Likewise.
	* testsuite/poke.map/maps-unions-19.pk: Likewise.
	* testsuite/Makefile.am (EXTRA_DIST): Add new tests.

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

	* libpoke/pkl-gen.pks (struct_field_extractor): Keep the right
	lexical environment when subpassing results in a constraint
	exception.

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

	* etc/vim/syntax/poke.vim (keyword): Add `computed' to the list
	of keywords.

2022-11-10  Jose E. Marchesi  <jemarch@gnu.org>

	* libpoke/pvm.jitter (pushios): Modified to not raise exceptions.
	* libpoke/pkl-tab.y: Remove BUILTIN_GET_IOS.
	* libpoke/pkl-rt.pk (get_ios): raise E_io with an explicative
	message if pushios returns < 0.

2022-11-10  Jose E. Marchesi  <jemarch@gnu.org>

	* libpoke/pvm.jitter (open): Modified to not raise exceptions.
	* libpoke/pkl-ast.h (PKL_AST_BUILTIN_OPEN): Remove.
	* libpoke/pkl-lex.l: Do not recognize __PKL_BUILTIN_OPEN__.
	* libpoke/pkl-tab.y (builtin): Remove rule for BUILTIN_OPEN.
	* libpoke/pkl-gen-builtins.pks (builtin_open): Remove.
	* libpoke/pkl-gen.c (pkl_gen_ps_comp_stmt): Do not handle
	PKL_AST_BUILTIN_OPEN.
	* libpoke/pkl-rt.pk (open): Handle error status from `open' and
	raise proper exceptions.

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

	* pickles/riscv.pk (RV32_Insn): Make it integral union and
	remove `as_uint' method.

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

	* libpoke/pkl-gen.pks (struct_mapper): Handle integral unions.
	* testsuite/poke.map/maps-int-union-6.pk: New test.
	* testsuite/Makefile.am (EXTRA_DIST): Update.

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

	* poke/pk-cmd-misc.c (pk_cmd_jmd): New quote.

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

	* libpoke/pkl-rt.pk (_pkl_print_format_any): Fix `lutos' for long
	values.
	* libpoke/std.pk (ltos): Likewise.
	* testsuite/poke.pkl/printf-40.pk: New test.
	* testsuite/poke.std/std-test.pk: Test ltos with i > 2^31.
	* testsuite/Makefile.am (EXTRA_DIST): Add new test.

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

	* libpoke/pkl-ast.h (PKL_AST_DECL_PREV_NAME): Define.
	(struct pkl_ast_decl): New field prev_name.
	* libpoke/pkl-ast.c (pkl_ast_node_free_1): Free PREV_NAME.
	(pkl_ast_print_1): Print PREV_NAME.
	* libpoke/pkl-env.h: Prototype for pkl_env_rollback_renames.
	* libpoke/pkl-env.c (pkl_env_rollback_renames_1): New function.
	(pkl_env_rollback_renames): Likewise.
	(register_decl): Cache the previous name used in the decl.
	* libpoke/pkl.c (pkl_compile_expression): Rollback renames in the
	compile-time environment in case of compilation error.
	(pkl_execute_expression): Likewise.
	(pkl_execute_file): Likewise.
	(pkl_execute_statement): Likewise.
	(pkl_execute_buffer): Likewise.

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

	* libpoke/pkl-trans.c (pkl_trans2_ps_exp): Do not assume EXP
	expressions will be constant-folded.
	* libpoke/pkl-fold.c (OP_BINARY_III): Add a note regarding the
	workaround in pkl_trans2_ps_exp.
	* testsuite/poke.pkl/pow-folding-workaround.pk: New test.
	* testsuite/Makefile.am (EXTRA_DIST): Add new test.

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

	* libpoke/pkl-ast.c (pkl_ast_sizeof_type): Add assertion.

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

	* libpoke/pkl-asm.pks (atrim): Fix boundaries checking for empty
	arrays.
	* testsuite/poke.pkl/trim-36.pk: New test.
	* testsuite/Makefile.am (EXTRA_DIST): Add new test.

2022-10-31  Jose E. Marchesi  <jemarch@gnu.org>

	* libpoke/pkl-rt.pk (_pkl_aoref): Array element offsets are
	absolute.
	* testsuite/poke.pkl/arrays-index-15.pk: New test.
	* testsuite/poke.pkl/arrays-index-16.pk: Likewise.
	* testsuite/Makefile.am (EXTRA_DIST): Add new tests.

2022-10-31  Jose E. Marchesi  <jemarch@gnu.org>

	* pickles/coff.pk (COFF_Strtab): Make the get_string method
	map-agnostic.

2022-10-31  Jose E. Marchesi  <jemarch@gnu.org>

	* libpoke/pkl-typify.c (pkl_typify1_ps_indexer): Allow offsets as
	indexes in indexers.
	* libpoke/pkl-promo.c (pkl_promo_ps_indexer): Promote offset
	indexes.
	* libpoke/pkl-gen.c (pkl_gen_pr_indexer): Handle offset indexes.
	* libpoke/pkl-gen.pks (aoref): New macro.
	(stroref): Likewise.
	* libpoke/pkl-rt.pk (_pkl_aoref): New function.
	(_pkl_aoref_complete): Likewise.
	* testsuite/poke.pkl/arrays-index-4.pk: New test.
	* testsuite/poke.pkl/arrays-index-5.pk: Likewise.
	* testsuite/poke.pkl/arrays-index-6.pk: Likewise.
	* testsuite/poke.pkl/arrays-index-7.pk: Likewise.
	* testsuite/poke.pkl/arrays-index-8.pk: Likewise.
	* testsuite/poke.pkl/arrays-index-9.pk: Likewise.
	* testsuite/poke.pkl/arrays-index-10.pk: Likewise.
	* testsuite/poke.pkl/arrays-index-11.pk: Likewise.
	* testsuite/poke.pkl/arrays-index-12.pk: Likewise.
	* testsuite/poke.pkl/arrays-index-13.pk: Likewise.
	* testsuite/poke.pkl/arrays-index-14.pk: Likewise.
	* testsuite/poke.pkl/strings-index-3.pk: Likewise.
	* testsuite/poke.pkl/strings-index-4.pk: likewise.
	* testsuite/poke.pkl/strings-index-5.pk: Likewise.
	* testsuite/Makefile.am (EXTRA_DIST): Add new tests.
	* doc/poke.texi (Array Indexing): Document indexing by offset.
	(String Indexing): Likewise.

2022-10-30  Jose E. Marchesi  <jemarch@gnu.org>

	* libpoke/pkl-tab.y: Make unary operators take precedence over AS
	and ISA.
	* testsuite/poke.pkl/cast-integers-19.pk: New test.
	* testsuite/Makefile.am (EXTRA_DIST): Add new test.

2022-10-29  Jose E. Marchesi  <jemarch@gnu.org>

	* libpoke/pkl-ast.c (pkl_ast_make_break_stmt): Remove.
	(pkl_ast_make_break_continue_stmt): Renamed from
	pkl_ast_make_continue_stmt.
	(pkl_ast_node_free_1): Adapt accordingly.
	(pkl_ast_print_1): Likewise.
	* libpoke/pkl-ast.h (enum pkl_ast_code): Rename
	PKL_AST_CONTINUE_STMT to PKL_AST_BREAK_CONTINUE_STMT.
	(enum pkl_ast_code): Remove PKL_AST_BREAK_STMT.
	(PKL_AST_CONTINUE_STMT_KIND): Define.
	(struct pkl_ast_break_continue_stmt): Renamed from
	pkL_ast_continue_stmt.
	(PKL_AST_BREAK_CONTINUE_STMT_BREAK): Define.
	(PKL_AST_BREAK_CONTINUE_STMT_CONTINUE): Likewise.
	* libpoke/pkl-tab.y: Adapt to the unified AST node.
	* libpoke/pkl-pass.c (pkl_do_pass_1): Likewise.
	* libpoke/pkl-anal.c: Likewise.
	* libpoke/pkl-trans.c: Likewise.
	* etc/poke.rec (unify `break' and `continue' in the same AST
	node): Removed as DONE.

2022-10-28  Mohammad-Reza Nabipoor  <mnabipoor@gnu.org>

	* libpoke/pvm-val.c (pvm_make_array_type): Fix assertion
	for `bounder' to check that if it is a closure.

2022-10-28  Jose E. Marchesi  <jemarch@gnu.org>

	* poke/poke.pk (_pk_bounder_unbounded): New function.
	* poke/poke.c (set_script_args): Install a proper bounder in array
	type.
	* libpoke/libpoke.h: Fix doc string of pk_make_array_type.

2022-10-28  Jose E. Marchesi  <jemarch@gnu.org>

	* testsuite/poke.std/std-test.pk: Fix with_temp_ios test for
	big-endian.

2022-10-28  Jose E. Marchesi  <jemarch@gnu.org>

	* libpoke/pkl-diag.c (pkl_loc_to_source): Fix memory overrun.

2022-10-27  Mohammad-Reza Nabipoor  <mnabipoor@gnu.org>

	* libpoke/pvm-val.c (pvm_make_array_type): Add an assertion
	for `bounder' to make sure it's not NULL.

2022-10-27  Mohammad-Reza Nabipoor  <mnabipoor@gnu.org>

	* doc/poke.texi (Describe-Compute): Fix Packet struct to use
	constraint.
	(Commands and Dot-Commands): Use `expression` and `function`
	sub-cmd of `.vm disassemble`.
	(Poking a SBM Image): Fix typo.
	(Signed Weird Integers): Minor fix (s/byte/bit/).
	(How Structs are Built): Fix example.
	(Reserved fields): Likewise.
	(Setters and Getters): Likewise.
	(Loading pickles as Modules): Likewise.
	(Field Constraints): Likewise.
	(mem command): Explain invocation of .mem with no arg.

2022-10-27  Mohammad-Reza Nabipoor  <mnabipoor@gnu.org>

	* libpoke/pvm.jitter (mktya): Fix documentation.
	* libpoke/pkl-rt.pk (_Pkl_ClsN): New type.
	(_Pkl_ClsI): Likewise.
	(_Pkl_ClsO): Likewise.
	(_pkl_mkclsn): New function.
	(_pkl_mkclsi): Likewise.
	(_pkl_mkclso): Likewise.

2022-10-27  Mohammad-Reza Nabipoor  <mnabipoor@gnu.org>

	* libpoke/pkl-insn.def (isn): Remove instruction because we
	already have the `nnn' instruction.
	* libpoke/pvm.jitter: Likewise.
	* libpoke/pkl-rt.pk (_pkl_print_format_any): Adapt.

2022-10-27  Jose E. Marchesi  <jemarch@gnu.org>

	* etc/hacking.org (How `any' is handed in the PVM): New section.
	* HACKING: Regenerate.

2022-10-27  Jose E. Marchesi  <jemarch@gnu.org>

	* libpoke/pkl-trans.c: Do not include pvm-program.h.

2022-10-27  Arsen Arsenović  <arsen@aarsen.me>

	* bootstrap.conf (libpoke_modules): Add set, xset and
	linkedhash-set.
	* libpoke/pkl-ast.c (pkl_ast_node_free): Allocate a visitation
	set, and move most code...
	(pkl_ast_node_free_1): ... to here, so that we can track and avoid
	freed nodes.  Also, no longer consult IS_RECURSIVE for lifetime
	information.
	* testsuite/poke.pkl/recursion-bad-1.pk: New test.
	* testsuite/poke.pkl/recursion-bad-2.pk: New test.
	* testsuite/Makefile.am (EXTRA_DIST): Add the new tests.

2022-10-27  Jose E. Marchesi  <jemarch@gnu.org>

	* etc/poke.rec (Fix %destructors in parser): Removed as DONE.
	(Do not leak decl AST nodes in parser): Likewise.

2022-10-27  Jose E. Marchesi  <jemarch@gnu.org>

	* libpoke/pkl-tab.y (integer): New rule.
	(primary): Use it.
	(integral_type_specifier): Likewise.
	(offset_type_specifier): Likewise.
	* testsuite/poke.pkl/offsets-diag-3.pk: New test.
	* testsuite/poke.pkl/int-type-diag-3.pk: Likewise.
	* testsuite/Makefile.am (EXTRA_DIST): Add new tests.

2022-10-27  Mohammad-Reza Nabipoor  <mnabipoor@gnu.org>

	* libpoke/pkl-rt.pk (_pkl_print_format_any): Fix array boundary
	for types.

2022-10-26  Mohammad-Reza Nabipoor  <mnabipoor@gnu.org>

	* libpoke/pkl-rt.pk (_pkl_print_format_any): Handle PVM types.

2022-10-26  Mohammad-Reza Nabipoor  <mnabipoor@gnu.org>

	* libpoke/pkl-gen-attrs.pks (attr_size): Add `typof' and `nip'
	instructions around `tyis*` instructions.
	(attr_eoffset): Likewise.
	(attr_esize): Likewise.
	(attr_ename): Likewise.
	(attr_elem): Likewise.
	* libpoke/pkl-insn.def (isn): New instruction.
	(isty): Likewise.
	(tyigetsz): Likewise.
	(tyigetsg): Likewise.
	(tyisv): Likewise.
	(tyogetm): Likewise.
	(tyogetu): Likewise.
	(tyagetn): Likewise.
	(tyagett): Likewise.
	(tyagetb): Likewise.
	(tysctgetnf): Likewise.
	(tysctgetfn): Likewise.
	(tysctgetft): Likewise.
	* libpoke/pkl-rt.pk (_pkl_print_format_any): Adapt.
	* libpoke/pvm-val.c (pvm_typeof): Handle closure case (return
	`PVM_NULL' as the type of closure).
	* libpoke/pvm.jitter (isn): New instruction.
	(isty): Likewise.
	(tyigetsz): Likewise.
	(tyigetsg): Likewise.
	(tyisv): Likewise.
	(tyogetm): Likewise.
	(tyogetu): Likewise.
	(tyagetn): Likewise.
	(tyagett): Likewise.
	(tyagetb): Likewise.
	(tysctgetnf): Likewise.
	(tysctgetfn): Likewise.
	(tysctgetft): Likewise.
	(tyisi): Adapt to expect type (not value).
	(tyisiu): Likewise.
	(tyisl): Likewise.
	(tyislu): Likewise.
	(tyiso): Likewise.
	(tyiss): Likewise.
	(tyisa): Likewise.
	(tyisc): Likewise.
	(tyissct): Likewise.

2022-10-26  Mohammad-Reza Nabipoor  <mnabipoor@gnu.org>

	* libpoke/pkl-insn.def (iolist): Remove instruction.
	(ionum): New instruction.
	(ioref): Likewise.
	* libpoke/pvm.jitter (iolist): Remove instruction.
	(ionum): New instruction.
	(ioref): Likewise.
	(late-c): Add callback functions to traverse IO space.
	* libpoke/pkl-rt.pk (iolist): Re-write in terms of new
	instructions.

2022-10-26  Jose E. Marchesi  <jemarch@gnu.org>

	* etc/poke.rec (Introduce SELF in methods): Removed as DONE.

2022-10-26  Jose E. Marchesi  <jemarch@gnu.org>

	* libpoke/pkl-tab.y (pushlevel_args): Register a named argument
	"SELF" instead of a dummy.
	* testsuite/poke.pkl/self-1.pk: New test.
	* testsuite/poke.pkl/self-2.pk: Likewise.
	* testsuite/Makefile.am (EXTRA_DIST): Add new tests.
	* doc/poke.texi (Methods): Mention the SELF variable.
	(Struct Methods): Likewise.

2022-10-25  Arsen Arsenović  <arsen@aarsen.me>

	* doc/Makefile.am (AM_MAKEINFOFLAGS): Enable the
	`CHECK_NORMAL_MENU_STRUCTURE' flag.
	* doc/poke.texi (Top): Add `Indices' to menu.
	(Indices): Rename from Indicies (i.e. fix a typo).

2022-10-25  Arsen Arsenović  <arsen@aarsen.me>

	* pickles/dwarf-frame.pk: Set CFA constants to `uint<6>'
	explicitly, to avoid `in' type errors.
	* pickles/pe.pk: Set PE_DEBUG_TYPE constants to uint<32>,
	PE_SUBSYS uint<16>, and cast alignemnt_info to uint<32> explicitly
	to avoid `in' type errors.
	* pickles/jffs2.pk: Se various constants to their right type
	explicitly, to avoid `in' type errors.
	* pickles/asn1-ber.pk: Explicitly set BER tags as uint<5>, to
	avoid `in' type errors.
	* pickles/dwarf-expr.pk: Explicitly set `DW_OP' constants to
	uint<8>, to avoid `in' type errors.
	* pickles/ctf.pk: Explicitly set kinds to uint<6>, to avoid `in'
	type errors.
	* pickles/coff-i386.pk: Explicitly set i386 relocation types to
	uint<16>, to avoid `in' type error.
	* pickles/dwarf-info.pk: Explicitly specify type in version
	`constraint', to avoid `in' type error.
	* pickles/elf-64.pk: Cast d_tag to int<32>, to avoid `in' type
	errors.
	* pickles/bpf.pk: Explicitly make instruction classes three-bit
	uints.
	* pickles/bmp.pk: Use unsigned offsets explicitly, to match header
	type.

2022-10-24  Mohammad-Reza Nabipoor  <mnabipoor@gnu.org>

	* libpoke/pkl-insn.def (PKL_INSN_TYSCTN): Removed.
	(PKL_INSN_TYSCTGETN): Added (renamed from PKL_INSN_TYSCTN).
	* libpoke/pkl-rt.pk (_pkl_print_format_any): s/tysctn/tysctgetn/.
	* libpoke/pvm.jitter (tysctn): Removed.
	(tysctgetn): Added (renamed from tysctn).

2022-10-24  Mohammad-Reza Nabipoor  <mnabipoor@gnu.org>

	* libpoke/pvm.jitter (wrapped-functions): Remove `pvm_make_any_type'.
	(mktyany): Remove instruction.
	* libpoke/pkl-insn.def (PKL_INSN_MKTYANY): Remove instruction.
	* libpoke/pvm.h (pvm_make_any_type): Remove function decl.
	* libpoke/pvm-val.h (enum pvm_type_code): Remove PVM_TYPE_ANY.
	* libpoke/pk-val.c (pk_type_code): Remove case for PVM_TYPE_ANY.
	(pk_make_any_type): Remove function def.
	* libpoke/pkl-gen.c (pkl_gen_ps_type_any): Replace PKL_INSN_MKTYANY
	with PVM_NULL.  And use PVM_NULL as the result of construction.
	* libpoke/pkl.c (pvm_type_to_ast_type): Remove case for PVM_TYPE_ANY.
	* libpoke/pvm-val.c (any_type): Remove variable.
	(pvm_make_any_type): Remove function.
	(pvm_print_val_1): Remove case for PVM_TYPE_ANY.
	(pvm_type_equal_p): Likewise.
	(pvm_val_initialize): Remove `any_type'.
	(pvm_val_finalize): Likewise.
	* libpoke/libpoke.h (PK_TYPE_ANY): Remove macro.
	(PK_TYPE_VOID): Add macro.
	* libpoke/pkl-gen.pks (emit_tv_field_absent): s/mktyany/push null/.
	(struct_field_mapper): Likewise.

2022-10-23  Arsen Arsenović  <arsen@aarsen.me>

        * doc/gen-pvm-insns.sh (SUBSECTIONS): Emit @pvindex calls for
        insns.
        * doc/poke.texi (PVM Instruction Index): New section.
        (Indicies): New appendix.
        (Concept Index): Move under Indicies and number using @appendixsec.

2022-10-23  Jose E. Marchesi  <jemarch@gnu.org>

	* testsuite/poke.pickles/ustar-test.pk: Likewise.

	* testsuite/poke.pickles/riscv-test.pk: Likewise.

	* testsuite/poke.pickles/pe-test.pk: Likewise.

	* testsuite/poke.pickles/openpgp-test.pk: Likewise.

	* testsuite/poke.pickles/mcr-test.pk: Likewise.

	* testsuite/poke.pickles/leb128-test.pk: Likewise.

	* testsuite/poke.pickles/jffs-test.pk: Likewise.

	* testsuite/poke.pickles/id3v2-test.pk: Likewise.

	* testsuite/poke.pickles/dwarf-test.pk: Likewise.

	* testsuite/poke.pickles/ctf-test.pk: Likewise.

	* testsuite/poke.pickles/coff-test.pk: Likewise.

	* testsuite/poke.pickles/bpf-ext-test.pk: Likewise.

	* testsuite/poke.pickles/bpf-test.pk: Likewise.

	* testsuite/poke.pickles/bmp-test.pk: Likewise.

	* testsuite/poke.pickles/asn1-ber-test.pk: Likewise.

	* testsuite/Makefile.am (EXTRA_DIST): Add new tests.

	* testsuite/poke.pickles/elf-test.pk: New file.

2022-10-23  Arsen Arsenović  <arsen@aarsen.me>

        * AUTHORS: Add myself.
        * etc/hacking.org (Write After Approval): Likewise.
        * HACKING: Regenerate.

2022-10-22  Arsen Arsenović  <arsen@aarsen.me>

        * libpoke/pkl-typify.c (pkl_typify1_ps_op_in): Don't allow
        different types between LHS and element of RHS.
        * libpoke/pkl-rt.pk: More strictly specify PK_TYPE_... constants,
        to adhere to new `in' promotion rules.
        * pickles/btf.pk: More strictly specify BTF_KIND_... constants, to
        adhere to new `in' promotion rules.
        * doc/poke.texi (Array Elements): Update documentation to match
        new promotion behavior.
        (Struct Attributes): Update `magic' field constraint to not fail
        due to new promotion rules.
        * testsuite/poke.pkl/in-3.pk: Refactor test to work with new `in'
        promotion rules.
        * testsuite/poke.pkl/in-2.pk: Likewise.
        * testsuite/poke.pkl/in-1.pk: Likewise.
        * testsuite/poke.pkl/field-init-9.pk: Likewise.
        * testsuite/poke.pkl/field-init-12.pk: Likewise.
        * testsuite/poke.pkl/field-init-11.pk: Likewise.
        * testsuite/poke.pkl/field-init-10.pk: Likewise.

2022-10-21  Jose E. Marchesi  <jemarch@gnu.org>

	* libpoke/pvm.jitter (aset): Do not check for ebounds nor sbounds.

2022-10-21  Jose E. Marchesi  <jemarch@gnu.org>

	* libpoke/pkl-gen.c (pkl_gen_pr_cast): In casts from any, make
	sure that the target type has a bounder if it is an array type.
	(pkl_gen_ps_isa): Likewise for `isa' operations.

2022-10-21  Jose E. Marchesi  <jemarch@gnu.org>

	* libpoke/pkl-gen.c (pkl_gen_pr_decl): Install array bounders in
	function types that may need them.
	(pkl_gen_pr_func_type_arg): Install bounders in function type
	argument if necessary.
	(pkl_gen_ps_type_function): Likewise for the return type.

2022-10-20  Jose E. Marchesi  <jemarch@gnu.org>

	* libpoke/pkl-asm.pks (asetc): New macro.
	* libpoke/pkl-gen.c (pkl_gen_pr_type_array): Require a bounder in
	IN_TYPE context.
	(pkl_gen_pr_array): Generate bounder of the type of array
	literals.
	(pkl_gen_pr_ass_stmt): Use ASETC instead of ASET.
	* libpoke/pkl-asm.pks (array_conv_sel): Set closures as array type
	bounders.
	(array_conv_siz): Likewise.
	* libpoke/pkl-fold.c (OP_BINARY_AAA_ADD): Add missing ASTREF.
	* libpoke/pkl-gen.pks (array_mapper): Use IN_TYPE context to get
	the type of the mapped array.
	(array_constructor): Likewise for constructed arrays.
	* libpoke/pkl-insn.def: New macro-instruction PKL_INSN_ASETC.
	* libpoke/pkl-asm.c (pkl_asm_insn_asetc): New function.
	(pkl_asm_insn): Handle PKL_INSN_ASETC.
	* testsuite/poke.pkl/array-bound-1.pk: Update test.
	* testsuite/poke.pkl/array-bound-2.pk: Likewise.
	* testsuite/poke.pkl/array-bound-3.pk: Likewise.
	* testsuite/poke.pkl/array-bound-4.pk: Likewise.
	* testsuite/poke.pkl/array-bound-5.pk: New test.
	* testsuite/poke.pkl/array-bound-6.pk: Likewise.
	* testsuite/poke.pkl/array-bound-7.pk: Likewise.
	* testsuite/poke.map/ass-map-27.pk: Likewise.

2022-10-17  Jose E. Marchesi  <jemarch@gnu.org>

	* libpoke/pkl-gen.c (pkl_gen_pr_asm_stmt): Do not check the result
	of the asm statement for null.
	(pkl_gen_pr_asm_exp): Likewise.
	* testsuite/poke.pkl/asm-exp-5.pk: Remove.
	* testsuite/poke.pkl/asm-stmt-5.pk: Likewise.
	* testsuite/Makefile.am (EXTRA_DIST): Update accordingly.

2022-10-15  Jose E. Marchesi  <jemarch@gnu.org>

	* libpoke/pkl-gen.pks (array_mapper): Install the sbound in the
	new array type as an offset and not a bit-offset.
	(array_constructor): Likewise, and do not traverse the array type
	IN_TYPE to actually get a bounder.
	* testsuite/poke.pkl/array-bound-1.pk: New test.
	* testsuite/poke.pkl/array-bound-4.pk: Likewise.
	* testsuite/poke.pkl/array-bound-3.pk: Likewise.
	* testsuite/poke.pkl/array-bound-2.pk: Likewise.
	* testsuite/Makefile.am (EXTRA_DIST): Add new tests.

2022-10-14  Mohammad-Reza Nabipoor  <mnabipoor@gnu.org>

	* doc/gen-pvm-insns.sh: s/egrep/grep -E/g.

2022-10-14  Mohammad-Reza Nabipoor  <mnabipoor@gnu.org>

	* libpoke/pkl-lex.l (integer_literal_width): New function to
	calculate the width of integer literal.
	(integer_literal_overflow_handling): New function to handle
	overflow in integer literals.
	(build_overflow_error_msg): New function to make integer literal
	overflow errors.
	(Alien token rule): Use new functions.
	(Integer literal rule): Likewise.
	* libpoke/pkl-tab.y (%union): Add new field `exception_msg'.
	(INTEGER_OVERFLOW): Remove token.
	(LEXER_EXCEPTION): New token.
	(primary): Use LEXER_EXCEPTION instead of INTEGER_OVERFLOW.
	* testsuite/poke.pkl/array-integ-33.pk: Adapt to new semantics.
	* testsuite/poke.pkl/cdiv-integers-overflow-1.pk: Likewise.
	* testsuite/poke.pkl/cdiv-integers-overflow-diag-2.pk: Likewise.
	* testsuite/poke.pkl/div-integers-overflow-1.pk: Likewise.
	* testsuite/poke.pkl/div-integers-overflow-diag-2.pk: Likewise.
	* testsuite/poke.pkl/mod-integers-overflow-1.pk: Likewise.
	* testsuite/poke.pkl/mod-integers-overflow-diag-2.pk: Likewise.
	* testsuite/poke.pkl/neg-int-overflow-1.pk: Likewise.
	* testsuite/poke.pkl/sub-integers-overflow-1.pk: Likewise.
	* testsuite/poke.pkl/integers-diag-2.pk: Likewise.
	* testsuite/poke.pkl/int-union-28.pk: Likewise.

2022-10-14  Jose E. Marchesi  <jemarch@gnu.org>

	* libpoke/pkl-ast.h (PKL_AST_ASM_STMT_EXPANDED_TEMPLATE): Likewise.
	(PKL_AST_ASM_EXP_EXPANDED_TEMPLATE): Remove.
	* libpoke/pkl-ast.c: Remove expanded_template.
	* libpoke/pkl-trans.c (pkl_trans2_ps_asm_stmt): Remove handler.
	(pkl_trans2_ps_asm_exp): Likewise.
	* libpoke/pkl-asm.c (pkl_asm_from_string): Expand the given
	template before assembling.
	* testsuite/poke.pkl/asm-exp-diag-5.pk: New test.
	* testsuite/poke.pkl/asm-stmt-diag-5.pk: Likewise.
	* testsuite/Makefile.am (EXTRA_DIST): Add new tests.

2022-10-14  Jose E. Marchesi  <jemarch@gnu.org>

	* libpoke/libpoke.h (PK_PRINT_F_MAPS): Remove.
	(PK_PRINT_F_PPRINT): Likewise.
	(pk_print_val_with_params): Remove function prototype.
	* libpoke/libpoke.c (pk_print_val_with_params): Remove function.
	* testsuite/poke.libpoke/values.c (testcase_pk_val_equal_p): Use
	pk_print_val instead of pk_print_val_with_params.

2022-10-14  Jose E. Marchesi  <jemarch@gnu.org>

	* libpoke/pkl-rt.pk: Change documentation of TV_FIELD_MAPPED.
	* libpoke/pkl-gen.pks (struct_field_mapper): Do not pass a
	formatted_value to the TV_FIELD_MAPPED tracing event.
	* poke/pk-tracer.pk (pk_tv_action_field_mapped): Do not get a
	formatted_value argument and format the value instead.

2022-10-13  Jose E. Marchesi  <jemarch@gnu.org>

	* doc/poke.texi (Auto-Remapping): New section.
	(@code{vm_autoremap}): Likewise.
	(@code{vm_set_autoremap}): Likewise.

2022-10-13  Jose E. Marchesi  <jemarch@gnu.org>

	* libpoke/pkl-ops.def: Define PKL_AST_OP_REMAP.
	* libpoke/pkl-lex.l: Recognize token `remap'.
	* libpoke/pkl-tab.y: New token REMAP.
	(unary_operator): Syntax for the `remap' operator.
	* libpoke/pkl-typify.c (pkl_typify1_ps_op_remap): New handler.
	(pkl_phase_typify1): Register new handler.
	* libpoke/pkl-gen.c (pkl_gen_ps_op_remap): New handler.
	(pkl_phase_gen): Register new handler.
	(pkl_gen_ps_var): Use AREMAP instead of REMAP.
	(pkl_gen_pr_indexer): Likewise.
	(pkl_gen_ps_struct_ref): Likewise.
	* libpoke/pkl-insn.def: New macro-instruction AREMAP.
	* libpoke/pkl-asm.c (pkl_asm_insn_aremap): New function.
	(pkl_asm_insn): Hanlde PKL_INSN_AREMAP.
	* libpoke/pkl-asm.pks (atrim): Use aremap intead of remap.
	* testsuite/poke.map/remap-1.pk: New test.
	* testsuite/Makefile.am (EXTRA_DIST): Add new test.

2022-10-13  Jose E. Marchesi  <jemarch@gnu.org>

	* libpoke/libpoke.h: Prototypes for pk_autoremap and
	pk_set_autoremap.
	* libpoke/libpoke.c (pk_autoremap): New function.
	(pk_set_autoremap): Likewise.
	* libpoke/pvm.h: Prototypes for pvm_autoremap and
	pvm_set_autoremap.
	* libpoke/pvm.c (pvm_autoremap): New function.
	(pvm_set_autoremap): Likewise.
	* libpoke/pvm.jitter (state-struct-runtime-c): Add field
	`autoremap' to the VM.
	(state-initialization-c): Initialize `autoremap' to the default
	value 0.
	(pusharem): New instruction.
	(poparem): Likewise.
	* libpoke/pkl-rt.pk (vm_autoremap): New function.
	(vm_set_autoremap): Likewise.
	* poke/pk-settings.pk: Add new setting `autoremap'.
	* libpoke/pkl-asm.pks (remap): Acknowledge autoremap.
	* testsuite/poke.cmd/set-autoremap-1.pk: New test.
	* testsuite/Makefile.am (EXTRA_DIST): Add new test.

2022-10-13  Jose E. Marchesi  <jemarch@gnu.org>

	* testsuite/Makefile.am (EXTRA_DIST): Update.

2022-10-13  Jose E. Marchesi  <jemarch@gnu.org>

	* libpoke/pkl-insn.def: Remove PKL_INSN_INDENT.
	* libpoke/pvm.jitter (indent): Remove instruction.

2022-10-13  Jose E. Marchesi  <jemarch@gnu.org>

	* libpoke/pkl-gen.pks (integral_printer): Remove.
	(integral_formater): Likewise.
	(format_int_suffix): Likewise.
	(print_int_suffix): Likewise.
	(indent_if_tree): Likewise.
	* libpoke/pkl-gen.c (pkl_gen_ps_type_integral): Use the any
	printer and formater for integral values.
	* libpoke/pkl-rt.pk (_pkl_format_int_suffix): Remove.

2022-10-12  Jose E. Marchesi  <jemarch@gnu.org>

	* libpoke/pkl-gen.pks (offset_printer): Remove.
	(offset_formater): Likewise.
	(format_boffset): Likewise.
	(print_boffset): Likewise.
	(string_printer): Likewise.
	(string_formater): Likewise.
	* libpoke/pkl-gen.c (pkl_gen_pr_type_offset): Use the any printer
	and formatter for offset values.
	(pkl_gen_ps_type_string): Likewise.

2022-10-12  Jose E. Marchesi  <jemarch@gnu.org>

	* libpoke/pkl-rt.pk (_pkl_print_format_any): Fix handling of
	odepth and of depth.
	(_pkl_print_any): Set default value of depth to 0.
	(_pkl_format_any): Likewise.

2022-10-12  Jose E. Marchesi  <jemarch@gnu.org>

	* libpoke/pkl-ast.h (PKL_AST_TYPE_S_PRINTER): Remove.
	(PKL_AST_TYPE_S_FORMATER): Likewise.
	* libpoke/pkl-ast.c (pkl_ast_make_struct_type): Remove struct
	printers and formatters.
	* libpoke/pkl-gen.c (pkl_gen_pr_decl): Do not compile closures for
	struct printers and formatters.
	(pkl_gen_pr_type_struct): Use the `any' printer/formater for
	struct values.
	* libpoke/pkl-gen.pks (struct_printer): Remove.
	(struct_formater): Likewise.
	(typifier_formater_wrapper): Likewise.
	(struct_typifier): Do not fill in struct formatters/printers.
	* libpoke/pkl-rt.pk: Remove fields `printer' and `formater'.
	(_pkl_indentation): Remove function.
	* testsuite/poke.pkl/format-19.pk: Adapt test.
	* testsuite/poke.pkl/printf-value-15.pk: Likewise.
	* testsuite/poke.pkl/printf-value-12.pk: Likewise.
	* testsuite/poke.pkl/printf-value-11.pk: Likewise.
	* testsuite/poke.pkl/format-28.pk: Likewise.
	* testsuite/poke.pkl/format-20.pk: Likewise.
	* testsuite/poke.pkl/typeof-13.pk: Remove test.
	* testsuite/poke.pkl/typeof-14.pk: Likewise.
	* testsuite/poke.pkl/typeof-15.pk: Likewise.
	* testsuite/poke.pkl/typeof-16.pk: Likewise.
	* testsuite/poke.pkl/typeof-21.pk: Likewise.

2022-10-12  Mohammad-Reza Nabipoor  <mnabipoor@gnu.org>

	* libpoke/pkl-rt.pk (_pkl_print_format_any): Fix indentation
	for struct formatter.

2022-10-12  Mohammad-Reza Nabipoor  <mnabipoor@gnu.org>

	* libpoke/libpoke.c (pk_print_val): Use `pk_call' properly.

2022-10-12  Jose E. Marchesi  <jemarch@gnu.org>

	* libpoke/pkl-gen.c (pkl_gen_pr_type_array): Use
	any_printer/formatter instead of array_printer/formatter macros.
	* libpoke/pkl-gen.pks (array_printer): Remove.
	(array_formater): Likewise.

2022-10-12  Jose E. Marchesi  <jemarch@gnu.org>

	* libpoke/pkl-gen.pks (array_formater): Turn into a macro.
	(array_printer): Likewise.
	(array_typifier): Do not fill in `printer' and `formatter' fields.

	* libpoke/pkl-ast.h (PKL_AST_TYPE_A_PRINTER): Remove.
	(PKL_AST_TYPE_A_FORMATER): Likewise.
	* libpoke/pkl-ast.c (pkl_ast_make_array_type): Do not initialize
	A_PRINTER nor A_FORMATER.
	* libpoke/pkl-gen.c (pkl_gen_pr_decl): Remove handling of arrays
	and structs printers and formatters.
	(pkl_gen_pr_type_array): Use macros for printer and formatter.

2022-10-12  Jose E. Marchesi  <jemarch@gnu.org>

	* libpoke/pkl-rt.pk (_pkl_print_format_any): Use `integer' styling
	class.

2022-10-12  Jose E. Marchesi  <jemarch@gnu.org>,

	* libpoke/libpoke.c (pk_print_val): Use _pkl_print_any instead of
	the C printer.
	* testsuite/poke.cmd/maps-alien-1.pk: Expect padded digits and
	prefixes in output integrals.
	* testsuite/poke.pkl/open-sub-6.pk: Likewise.
	* testsuite/poke.pkl/open-sub-9.pk: Likewise.
	* testsuite/poke.pkl/optcond-1.pk: Likewise.
	* testsuite/poke.pkl/optcond-11.pk: Likewise.
	* testsuite/poke.pkl/optcond-2.pk: Likewise.
	* testsuite/poke.pkl/optcond-pre-1.pk: Likewise.
	* testsuite/poke.pkl/optcond-pre-10.pk: Likewise.
	* testsuite/poke.pkl/optcond-pre-2.pk: Likewise.
	* testsuite/poke.pkl/pow-integers-1.pk: Likewise.
	* testsuite/poke.pkl/pow-offsets-1.pk: Likewise.
	* testsuite/poke.pkl/scons-int-struct-1.pk: Likewise.
	* testsuite/poke.pkl/scons-int-struct-2.pk: Likewise.
	* testsuite/poke.pkl/scons-int-struct-3.pk: Likewise.
	* testsuite/poke.pkl/scons-int-struct-5.pk: Likewise.
	* testsuite/poke.pkl/sl-int-struct-2.pk: Likewise.
	* testsuite/poke.pkl/sl-int-struct-1.pk: Likewise.
	* testsuite/poke.pkl/scons-65.pk: Likewise.
	* testsuite/poke.pkl/scons-56.pk: Likewise.
	* testsuite/poke.map/map-struct-offset-5.pk: Likewise.
	* testsuite/poke.map/map-struct-offset-4.pk: Likewise.
	* testsuite/poke.map/map-optcond-int-struct-2.pk: Likewise.
	* testsuite/poke.pkl/sr-int-struct-2.pk: Likewise.
	* testsuite/poke.pkl/sr-int-struct-1.pk: Likewise.
	* testsuite/poke.pkl/sl-offsets-2.pk: Likewise.
	* testsuite/poke.pkl/sl-integers-3.pk: Likewise.
	* testsuite/poke.pkl/sl-integers-2.pk: Likewise.
	* testsuite/poke.pkl/sr-integers-2.pk: Likewise.
	* testsuite/poke.pkl/sr-integers-1.pk: Likewise.
	* testsuite/poke.pkl/sr-offsets-2.pk: Likewise.
	* testsuite/poke.pkl/sr-offsets-1.pk: Likewise.
	* testsuite/poke.pkl/strings-esc-1.pk: Likewise.
	* testsuite/poke.pkl/strings-esc-2.pk: Likewise.
	* testsuite/poke.pkl/struct-pretty-print-2.pk: Likewise.
	* testsuite/poke.pkl/ior-offsets-1.pk: Likewise.
	* testsuite/poke.pkl/ior-integers-1.pk: Likewise.
	* testsuite/poke.pkl/bconc-int-struct-3.pk: Likewise.
	* testsuite/poke.pkl/bconc-int-struct-1.pk: Likewise.
	* testsuite/poke.pkl/or-int-struct-3.pk: Likewise.
	* testsuite/poke.pkl/or-int-struct-2.pk: Likewise.
	* testsuite/poke.pkl/or-int-struct-1.pk: Likewise.
	* testsuite/poke.pkl/int-union-30.pk: Likewise.
	* testsuite/poke.pkl/int-union-29.pk: Likewise.
	* testsuite/poke.pkl/int-union-23.pk: Likewise.
	* testsuite/poke.pkl/int-union-19.pk: Likewise.
	* testsuite/poke.pkl/cast-int-struct-1.pk: Likewise.
	* testsuite/poke.pkl/band-integers-1.pk: Likewise.
	* testsuite/poke.pkl/array-integ-9.pk: Likewise.
	* testsuite/poke.pkl/array-integ-8.pk: Likewise.
	* testsuite/poke.pkl/array-integ-34.pk: Likewise.
	* testsuite/poke.pkl/array-integ-30.pk: likewise.
	* testsuite/poke.pkl/array-integ-29.pk: Likewise.
	* testsuite/poke.pkl/and-int-struct-3.pk: Likewise.
	* testsuite/poke.pkl/and-int-struct-2.pk: Likewise.
	* testsuite/poke.pkl/add-int-struct-4.pk: Likewise.
	* testsuite/poke.pkl/bconc-7.pk: Likewise.
	* testsuite/poke.pkl/bconc-6.pk: Likewise.
	* testsuite/poke.pkl/bconc-5.pk: Likewise.
	* testsuite/poke.pkl/bconc-4.pk: Likewise.
	* testsuite/poke.pkl/bconc-3.pk: Likewise.
	* testsuite/poke.map/maps-int-structs-28.pk: Likewise.
	* testsuite/poke.map/maps-int-structs-27.pk: Likewise.
	* testsuite/poke.map/maps-int-structs-26.pk: Likewsie.
	* testsuite/poke.map/maps-int-structs-25.pk: Likewise.
	* testsuite/poke.map/maps-unions-method-2.pk: Likewise.
	* testsuite/poke.map/maps-uint-write-15.pk: Likewise.
	* testsuite/poke.map/maps-structs-labels-2.pk: Likewise.
	* testsuite/poke.map/maps-structs-labels-1.pk: Likewise.
	* testsuite/poke.map/maps-structs-6.pk: Likewise.
	* testsuite/poke.map/maps-structs-5.pk: Likewise.
	* testsuite/poke.map/maps-structs-2.pk: Likewise.
	* testsuite/poke.map/maps-structs-13.pk: Likewise.
	* testsuite/poke.map/maps-ios-9.pk: Likewise.
	* testsuite/poke.map/maps-ios-7.pk: Likewise.
	* testsuite/poke.map/maps-ios-8.pk: Likewise.
	* testsuite/poke.map/maps-ios-6.pk: Likewise.
	* testsuite/poke.map/maps-ios-5.pk: Likewise.
	* testsuite/poke.map/maps-ios-4.pk: Likewise.
	* testsuite/poke.map/maps-ios-2.pk: Likewise.
	* testsuite/poke.map/map-struct-offset-3.pk: Likewise.
	* testsuite/poke.pkl/pos-int-struct-1.pk: Likewise.
	* testsuite/poke.pkl/not-int-struct-1.pk: Likewise.
	* testsuite/poke.pkl/mul-int-struct-3.pk: Likewise.
	* testsuite/poke.pkl/mul-int-struct-2.pk: Likewise.
	* testsuite/poke.pkl/mul-int-struct-1.pk: Likewise.
	* testsuite/poke.pkl/ior-int-struct-3.pk: Likewise.
	* testsuite/poke.pkl/ior-int-struct-2.pk: Likewise.
	* testsuite/poke.pkl/ior-int-struct-1.pk: Likewise.
	* testsuite/poke.pkl/div-int-struct-3.pk: Likewise.
	* testsuite/poke.pkl/div-int-struct-2.pk: Likewise.
	* testsuite/poke.pkl/div-int-struct-1.pk: Likewise.
	* testsuite/poke.pkl/band-offsets-1.pk: Likewise.
	* testsuite/poke.pkl/band-int-struct-3.pk: Likewise.
	* testsuite/poke.pkl/band-int-struct-2.pk: Likewise.
	* testsuite/poke.pkl/band-int-struct-1.pk: Likewise.
	* testsuite/poke.pkl/and-int-struct-1.pk: Likewise.
	* testsuite/poke.pkl/add-int-struct-3.pk: Likewise.
	* testsuite/poke.pkl/add-int-struct-2.pk: Likewise.
	* testsuite/poke.pkl/add-int-struct-1.pk: Likewise.
	* testsuite/poke.pkl/sub-int-struct-1.pk: Likewise.
	* testsuite/poke.pkl/sub-int-struct-2.pk: Likewise.
	* testsuite/poke.pkl/sub-int-struct-3.pk: Likewise.
	* testsuite/poke.pkl/typeof-25.pk: Likewise.
	* testsuite/poke.pkl/vm-set-obase-1.pk: Likewise.
	* testsuite/poke.pkl/cast-integers-10.pk: Likewise.
	* testsuite/poke.pkl/cast-integers-11.pk: Likewise.
	* testsuite/poke.pkl/xor-integers-2.pk: Likewise.
	* testsuite/poke.pkl/xor-offsets-2.pk: Likewise.
	* testsuite/poke.map/nsmap-6.pk: Likewise.
	* testsuite/poke.map/trimmed-map-2.pk: Likewise.
	* testsuite/poke.map/trimmed-map-3.pk: Likewise.
	* testsuite/poke.map/trimmed-map-4.pk: Likewise.
	* testsuite/poke.map/trimmed-map.pk: Likewise.
	* testsuite/poke.map/unmap-1.pk: Likewise.
	* testsuite/poke.map/write-structs-1.pk: Likewise.
	* testsuite/poke.map/write-unions-2.pk: Likewise.
	* testsuite/poke.map/write-unions-3.pk: Likewise.
	* testsuite/poke.map/maps-int-structs-11.pk: Likewise.
	* testsuite/poke.map/maps-int-49.pk: Likewise.
	* testsuite/poke.map/maps-int-47.pk: Likewise.
	* testsuite/poke.map/maps-int-46.pk: Likewise.
	* testsuite/poke.map/maps-int-44.pk: Likewise.
	* testsuite/poke.map/maps-int-43.pk: Likewise.
	* testsuite/poke.map/maps-int-42.pk: Likewise.
	* testsuite/poke.map/maps-int-40.pk: Likewise.
	* testsuite/poke.map/maps-int-39.pk: Likewise.
	* testsuite/poke.map/maps-int-38.pk: Likewise.
	* testsuite/poke.map/maps-int-36.pk: Likewise.
	* testsuite/poke.map/maps-int-35.pk: Likewise.
	* testsuite/poke.map/maps-int-34.pk: Likewise.
	* testsuite/poke.map/maps-int-32.pk: Likewise.
	* testsuite/poke.map/maps-int-30.pk: Likewise.
	* testsuite/poke.map/maps-int-26.pk: Likewise.
	* testsuite/poke.map/maps-int-24.pk: Likewise.
	* testsuite/poke.map/maps-int-23.pk: Likewise.
	* testsuite/poke.map/maps-int-22.pk: Likewise.
	* testsuite/poke.map/maps-int-21.pk: Likewise.
	* testsuite/poke.map/maps-int-20.pk: Likewise.
	* testsuite/poke.map/maps-int-19.pk: Likewise.
	* testsuite/poke.map/maps-int-18.pk: Likewise.
	* testsuite/poke.map/maps-int-13.pk: Likewise.
	* testsuite/poke.map/maps-int-11.pk: Likewise.
	* testsuite/poke.map/maps-int-09.pk: Likewise.
	* testsuite/poke.map/maps-int-05.pk: Likewise.
	* testsuite/poke.cmd/set-obase-2.pk: Likewise.
	* testsuite/poke.cmd/set-obase-4.pk: Likewise.
	* testsuite/poke.map/ass-map-3.pk: Likewise.
	* testsuite/poke.map/ass-map-9.pk: Likewise.
	* testsuite/poke.map/ass-map-10.pk: Likewise.
	* testsuite/poke.map/ass-map-11.pk: Likewise.
	* testsuite/poke.map/ass-map-14.pk: Likewise.
	* testsuite/poke.map/ass-map-15.pk: Likewise.
	* testsuite/poke.map/ass-map-17.pk: Likewise.
	* testsuite/poke.map/ass-map-19.pk: Likewise.
	* testsuite/poke.map/ass-map-22.pk: Likewise.
	* testsuite/poke.map/ass-map-23.pk: Likewise.
	* testsuite/poke.map/ass-map-24.pk: Likewise.
	* testsuite/poke.map/ass-map-25.pk: Likewise.
	* testsuite/poke.map/map-struct-offset-2.pk: Likewise.
	* testsuite/poke.map/map-struct-fun-3.pk: Likewise.
	* testsuite/poke.map/map-size-3.pk: Likewise.
	* testsuite/poke.map/map-size-2.pk: Likewise.
	* testsuite/poke.map/map-size-1.pk: Likewise.
	* testsuite/poke.map/ass-map-struct-int-1.pk: Likewise.
	* testsuite/poke.map/maps-arrays-20.pk: Likewise.

2022-10-11  Jose E. Marchesi  <jemarch@gnu.org>

	* libpoke/pkl-rt.pk (_pkl_print_format_any): Do not emit negative
	written forms for numeration bases other than 10.

2022-10-11  Jose E. Marchesi  <jemarch@gnu.org>

	* libpoke/pkl-rt.pk (_pkl_print_format_any): Pad digits when
	printing out integral values for bases other than 10.

2022-10-11  Jose E. Marchesi  <jemarch@gnu.org>

	* libpoke/pkl-rt.pk (_pkl_print_format_any): Handle struct
	pretty-printers.

2022-10-11  Jose E. Marchesi  <jemarch@gnu.org>

	* libpoke/pkl-rt.pk (_pkl_print_format_any): Fix assembly template
	for struct_type_name and avoid calling vm_odepth twice.

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

	* libpoke/pkl-anal.c (pkl_anal2_ps_asm_stmt): New handler.
	(pkl_anal2_ps_asm_exp): Likewise.
	* libpoke/pkl-anal.c (pkl_phase_anal2): Register new handlers.

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

	* libpoke/pkl-rt.pk (_pkl_print_format_any): Use the "special"
	formatting class to print #<...> strings.

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

	* libpoke/pkl-insn.def: /PKL_DEF_INSN/s/, /,/g to not make troubles
	for Apple cpp (see IMPORTANT2 note in file).

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

	* libpoke/pkl-rt.pk (_pkl_print_any): `depth' defaults to 1.
	(_pkl_format_any): Likewise.
	(_pkl_print_format_any): Support for struct types.

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

	* libpoke/pkl-rt.pk (_pkl_print_format_any): Simplify
	handle_integral.

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

	* libpoke/pkl-rt.pk (_pkl_print_format_any): Make argument `depth'
	non-optional.
	Use named arguments in calls to handle_integral for sake of
	clarity.

2022-10-10  Jose E. Marchesi  <jemarch@gnu.org>,

	* libpoke/pkl-insn.def (PKL_INSN_TYISI): Define.
	(PKL_INSN_TYISIU): Likewise.
	(PKL_INSN_TYISL): Likewise.
	(PKL_INSN_TYISLU): Likewise.
	(PKL_INSN_TYISS): Likewise.
	(PKL_INSN_TYISO): Likewise.
	* libpoke/pvm.jitter (tyisi): New instruction.
	(tyisiu): Likewise.
	(tyisl): Likewise.
	(tyislu): Likewise.
	(tyiso): Likewise.
	* libpoke/pkl-rt.pk (_Pkl_Print_Format_Ctx): New type.
	(_pkl_print_format_any): New function.
	(_pkl_print_any): Likewise.
	(_pkl_format_any): Likewise.
	* libpoke/pkl-typify.c (pkl_typify1_ps_format): Allow arguments of
	type `any' in format.
	* libpoke/pkl-gen.c (pkl_gen_ps_type_any): Implement printer and
	formatter for values of type `any'.
	* libpoke/pkl-gen.pks (any_printer): New macro.
	(any_formater): Likewise.
	* testsuite/poke.pkl/printf-diag-17.pk: Remove test.
	* testsuite/poke.pkl/print-any-1.pk: New test.
	* testsuite/poke.pkl/print-any-2.pk: Likewise.
	* testsuite/poke.pkl/print-any-3.pk: Likewise.
	* testsuite/poke.pkl/format-any-1.pk: Likewise.
	* testsuite/poke.pkl/format-any-2.pk: Likewise.
	* testsuite/poke.pkl/format-any-3.pk: Likewise.

2022-10-09  Jose E. Marchesi  <jemarch@gnu.org>

	* libpoke/pkl-ast.h (PKL_AST_BUILTIN_RAND): Remove.
	(PKL_AST_BUILTIN_GET_ENDIAN): Likewise.
	(PKL_AST_BUILTIN_SET_ENDIAN): Likewise.
	(PKL_AST_BUILTIN_GET_IOS): Likewise.
	(PKL_AST_BUILTIN_IOSIZE): Likewise.
	(PKL_AST_BUILTIN_GET_TIME): Likewise.
	(PKL_AST_BUILTIN_STRACE): Likewise.
	(PKL_AST_BUILTIN_TERM_BEGIN_CLASS): Likewise.
	(PKL_AST_BUILTIN_TERM_END_CLASS): Likewise.
	(PKL_AST_BUILTIN_TERM_BEGIN_HYPERLINK): Likewise.
	(PKL_AST_BUILTIN_TERM_END_HYPERLINK): Likewise.
	(PKL_AST_BUILTIN_IOFLAGS): Likewise.
	(PKL_AST_BUILTIN_SLEEP): Likewise.
	(PKL_AST_BUILTIN_VM_OBASE): Likewise.
	(PKL_AST_BUILTIN_VM_SET_OBASE): Likewise.
	(PKL_AST_BUILTIN_VM_OPPRINT): Likewise.
	(PKL_AST_BUILTIN_VM_SET_OPPRINT): Likewise.
	(PKL_AST_BUILTIN_VM_OACUTOFF): Likewise.
	(PKL_AST_BUILTIN_VM_SET_OACUTOFF): Likewise.
	(PKL_AST_BUILTIN_VM_ODEPTH): Likewise.
	(PKL_AST_BUILTIN_VM_SET_ODEPTH): Likewise.
	(PKL_AST_BUILTIN_VM_OINDENT): Likewise.
	(PKL_AST_BUILTIN_VM_SET_OINDENT): Likewise.
	(PKL_AST_BUILTIN_VM_OMAPS): Likewise.
	(PKL_AST_BUILTIN_VM_SET_OMAPS): Likewise.
	(PKL_AST_BUILTIN_VM_OMODE): Likewise.
	(PKL_AST_BUILTIN_VM_SET_OMODE): Likewise.
	(PKL_AST_BUILTIN_UNSAFE_STRING_SET): Likewise.
	(PKL_AST_BUILTIN_IOHANDLER): Likewise.
	(PKL_AST_BUILTIN_IOLIST): Likewise.
	* libpoke/pkl-gen-builtins.pks (builtin_rand): Remove.
	(builtin_get_endian): Likewise.
	(builtin_set_endian): Likewise.
	(builtin_get_ios): Likewise.
	(builtin_iosize): Likewise.
	(builtin_ioflags): Likewise.
	(builtin_iobias): Likewise.
	(builtin_iolist): Likewise.
	(builtin_iosetbias): Likewise.
	(builtin_flush): Likewise.
	(builtin_get_time): Likewise.
	(builtin_sleep): Likewise.
	(builtin_strace): Likewise.
	(builtin_term_begin_class): Likewise.
	(builtin_term_end_class): Likewise.
	(builtin_term_begin_hyperlink): Likewise.
	(builtin_term_end_hyperlink): Likewise.
	(builtin_vm_obase): Likewise.
	(builtin_vm_set_obase): Likewise.
	(builtin_vm_opprint): Likewise.
	(builtin_vm_set_opprint): Likewise.
	(builtin_vm_oacutoff): Likewise.
	(builtin_vm_set_oacutoff): Likewise.
	(builtin_vm_odepth): Likewise.
	(builtin_vm_set_odepth): Likewise.
	(builtin_vm_oindent): Likewise.
	(builtin_vm_set_oindent): Likewise.
	(builtin_vm_omaps): Likewise.
	(builtin_vm_set_omaps): Likewise.
	(builtin_vm_omode): Likewise.
	(builtin_vm_set_omode): Likewise.
	(builtin_unsafe_string_set): Likewise.
	* libpoke/pkl-rt.pk (rand): Reimplement with inlined asm.
	(get_endian): Likewise.
	(set_endian): Likewise.
	(get_ios): Likewise.
	(set_ios): Likewise.
	(iosize): Likewise.
	(iohandler): Likewise.
	(ioflags): Likewise.
	(iobias): Likewise.
	(iosetbias): Likewise.
	(flush): Likewise.
	(get_time): Likewise.
	(sleep): Likewise.
	(strace): Likewise.
	(term_begin_class): Likewise.
	(term_end_class): Likewise.
	(term_begin_hyperlink): Likewise.
	(term_end_hypelink): Likewise.
	(vm_obase): Likewise.
	(vm_set_obase): Likewise.
	(vm_opprint): Likewise.
	(vm_set_opprint): Likewise.
	(vm_oacutoff): Likewise.
	(vm_set_oacutoff): Likewise.
	(vm_odepth): Likewise.
	(vm_set_odepth): Likewise.
	(vm_oindent): Likewise.
	(vm_set_oindent): Likewise.
	(vm_omaps): Likewise.
	(vm_set_omaps): Likewise.
	(vm_omode): Likewise.
	(vm_set_omode): Likewise.
	(__pkl_unsafe_string_set): Likewise.
	* libpoke/pkl-gen.c (pkl_gen_ps_comp_stmt): Remove builtins now
	implemented with asm statements.
	* libpoke/pkl-tab.y (builtin): Adjust rule accordingly.
	* libpoke/pkl-lex.l: Remove rules for builtins.

2022-10-08  Jose E. Marchesi  <jemarch@gnu.org>

	* libpoke/pkl-tab.y: New token ASM.
	Rule for ASM statements and expressions.
	* libpoke/pkl-lex.l: Recognize token ASM.
	* libpoke/pkl-ast.h (PKL_AST_ASM_STMT_TEMPLATE): Define.
	(PKL_AST_ASM_STMT_INPUTS): Likewise.
	(PKL_AST_ASM_STMT_OUTPUTS): Likewise.
	(PKL_AST_ASM_STMT_EXPANDED_TEMPLATE): Likewise.
	(PKL_AST_ASM_EXP_TEMPLATE): Likewise.
	(PKL_AST_ASM_EXP_TYPE): Likewise.
	(PKL_AST_ASM_EXP_INPUTS): Likewise.
	(PKL_AST_ASM_EXP_EXPANDED_TEMPLATE): Likewise.
	(struct pkl_ast_asm_stmt): New struct.
	(struct pkl_ast_asm_exp): Likewise.
	(union pkl_ast_node): New fields asm_exp and asm_stmt.
	* libpoke/pkl-ast.c (pkl_ast_make_asm_stmt): New function.
	(pkl_ast_make_asm_exp): Likewise.
	(pkl_ast_node_free): Handle asm statement and expression nodes.
	(pkl_ast_print_1): Likewise.
	(pkl_ast_make_ass_stmt): Allow building ass_stmt AST nodes without
	r-value.
	* libpoke/pkl-pass.c (pkl_do_pass_1): Traverse asm statement and
	asm expression nodes.
	(pkl_do_pass_1): `exp' may be NULL in ass_stmt.
	* libpoke/pkl-trans.c (pkl_trans1_ps_asm_stmt): New handler.
	(pkl_trans2_ps_asm_stmt): Likewise.
	(pkl_trans2_ps_asm_exp): Likewise.
	(pkl_phase_trans1): Register handler.
	(pkl_phase_trans2): Register handlers.
	* libpoke/pkl-typify.c	(pkl_typify1_ps_asm_stmt): New handler.
	(pkl_typify1_ps_asm_exp): Likewise.
	(pkl_phase_typify1): Register new handlers.
	(pkl_typify1_ps_ass_stmt): `exp' may be NULL.
	* libpoke/pkl-promo.c (pkl_promo_ps_ass_stmt): Do not promote
	anything if `exp' is NULL.
	* libpoke/pkl-gen.c (pkl_gen_pr_asm_exp): New handler.
	(pkl_gen_pr_asm_stmt): Likewise.
	(pkl_phase_gen): Register handlers.
	(pkl_gen_pr_ass_stmt): Do not subpass in EXP if it is null.
	* libpoke/pkl-asm.c (pkl_asm_from_string): New function.
	* libpoke/pvm-program.h: Prototype for pvm_program_parse_from_string.
	* libpoke/pvm-program.c (pvm_program_parse_from_string): New function.
	* libpoke/pkl-rt.pk: New exception E_stack.
	* libpoke/libpoke.h (PK_EC_STACK): Define.
	* libpoke/pvm.h (PVM_E_STACK): Likewise.
	(PVM_E_STACK_NAME): Likewise.
	(PVM_E_STACK_ESTATUS): Likewise.
	* testsuite/poke.pkl/asm-stmt-diag-1.pk: New test.
	* testsuite/poke.pkl/asm-stmt-diag-2.pk: Likewise.
	* testsuite/poke.pkl/asm-stmt-diag-3.pk: Likewise.
	* testsuite/poke.pkl/asm-stmt-diag-4.pk: Likewise.
	* testsuite/poke.pkl/asm-exp-diag-1.pk: Likewise.
	* testsuite/poke.pkl/asm-exp-diag-2.pk: Likewise.
	* testsuite/poke.pkl/asm-exp-diag-3.pk: Likewise.
	* testsuite/poke.pkl/asm-exp-diag-4.pk: Likewise.
	* testsuite/poke.pkl/asm-exp-1.pk: Likewise.
	* testsuite/poke.pkl/asm-exp-2.pk: Likewise.
	* testsuite/poke.pkl/asm-exp-3.pk: Likewise.
	* testsuite/poke.pkl/asm-exp-4.pk: Likewise.
	* testsuite/poke.pkl/asm-exp-5.pk: Likewise.
	* testsuite/poke.pkl/asm-stmt-1.pk: Likewise.
	* testsuite/poke.pkl/asm-stmt-2.pk: Likewise.
	* testsuite/poke.pkl/asm-stmt-3.pk: Likewise.
	* testsuite/poke.pkl/asm-stmt-4.pk: Likewise.
	* testsuite/poke.pkl/asm-stmt-5.pk: Likewise.
	* testsuite/poke.pkl/asm-stmt-6.pk: Likewise.
	* testsuite/Makefile.am (EXTRA_DIST): Add new tests.
	* doc/poke.texi (Assembler): New chapter.

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

	* poke/pk-tracer.pk (pk_tv_action_field_mapped): Get a Pk_Type as
	the second argument of the event.
	* libpoke/pkl-gen.pks (struct_field_mapper): Pass the Pk_Type of
	the field type to the TV_FIELD_MAPPED event.

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

	* libpoke/pkl-gen.c (pkl_gen_pr_op_typeof): Move logic to the
	typeof RAS macro, and use the macro.
	* libpoke/pkl-gen.pks (typeof): New macro.

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

	* pickles/pe.pk (PE_File): Fix the location of the sections table.

2022-10-05  Jose E. Marchesi  <jemarch@gnu.org>

	* pickles/coff.pk (COFF_Name): Add pretty-printer.
	* pickles/pe.pk (PE_File): Map the symtab by size.
	(PE_Sym): Fix definition.

2022-10-05  Jose E. Marchesi  <jemarch@gnu.org>

	* libpoke/pkl-gen.pks (struct_formater): Support formatting absent
	fields in structs.
	* testsuite/poke.pkl/format-optcond-1.pk: New test.
	* testsuite/poke.pkl/format-optcond-2.pk: Likewise.
	* testsuite/poke.pkl/foramt-optcond-3.pk: Likewise.
	* testsuite/poke.pkl/format-optcond-4.pk: Likewise.
	* testsuite/poke.pkl/format-optcond-5.pk: Likewise.
	* testsuite/poke.pkl/format-optcond-6.pk: Likewise.
	* testsuite/Makefile.am (EXTRA_DIST): Add new tests.

2022-10-05  Jose E. Marchesi  <jemarch@gnu.org>

	* libpoke/pkl-tab.y: (struct_type_field_opcond_pre): New rule.
	(struct_type_field_optcond_post): Likewise.
	* libpoke/pkl-ast.h (PKL_AST_STRUCT_TYPE_FIELD_OPTCOND_PRE): New macro.
	(PKL_AST_STRUCT_TYPE_FIELD_OPTCOND_POST): Renamed from OPTCOND.
	(struct pkl_ast_struct_type_field): New field optcond_pre and
	optcond renamed to optcond_post.
	* libpoke/pkl-ast.c (pkl_ast_make_struct_type_field): Handle both
	optcond_pre and optcond_post.
	(pkl_ast_dup_type): Likewise.
	(pkl_ast_sizeof_type): Likewise.
	(pkl_ast_type_is_complete): Likewise.
	(pkl_ast_node_free): Likewise.
	(pkl_ast_print_1): Likewise.
	* libpoke/pkl-anal.c (pkl_anal2_ps_type_struct): Support both
	optcond_pre and optcond_post.
	* libpoke/pkl-pass.c (pkl_do_pass_1): Likewise.
	* libpoke/pkl-promo.c (pkl_promo_ps_struct_type_field): Likewise.
	* libpoke/pkl-typify.c (pkl_typify1_ps_struct): Likewise.
	(pkl_typify1_ps_type_struct): Likewise.
	* libpoke/pvm-val.c (pvm_print_val_1): Do not print offset for
	absent fields in omaps.
	* libpoke/pkl-gen.pks (handle_struct_field_constraints): Likewise.
	(struct_comparator): Likewise.
	(struct_field_mapper): Likewise.
	* testsuite/poke.pkl/optcond-pre-diag-1.pk: New test.
	* testsuite/poke.pkl/optcond-pre-diag-2.pk: Likewise.
	* testsuite/poke.map/map-optcond-pre-1.pk: Likewise.
	* testsuite/poke.map/map-optcond-pre-2.pk: Likewise.
	* testsuite/poke.map/map-optcond-pre-3.pk: Likewise.
	* testsuite/poke.map/map-optcond-pre-4.pk: Likewise.
	* testsuite/poke.map/map-optcond-pre-5.pk: Likewise.
	* testsuite/poke.map/map-optcond-pre-6.pk: Likewise.
	* testsuite/poke.map/map-optcond-pre-7.pk: Likewise.
	* testsuite/poke.map/map-optcond-pre-8.pk: Likewise.
	* testsuite/poke.map/map-optcond-pre-9.pk: Likewise.
	* testsuite/poke.map/map-optcond-pre-10.pk: Likewise.
	* testsuite/poke.map/map-optcond-pre-11.pk: Likewise.
	* testsuite/poke.map/map-optcond-pre-12.pk: Likewise.
	* testsuite/poke.map/map-optcond-pre-write-1.pk: Likewise.
	* testsuite/poke.map/map-optcond-pre-write-2.pk: Likewise.
	* testsuite/poke.pkl/optcond-pre-1.pk: Likewise.
	* testsuite/poke.pkl/optcond-pre-2.pk: Likewise.
	* testsuite/poke.pkl/optcond-pre-3.pk: Likewise.
	* testsuite/poke.pkl/optcond-pre-4.pk: Likewise.
	* testsuite/poke.pkl/optcond-pre-5.pk: Likewise.
	* testsuite/poke.pkl/optcond-pre-6.pk: Likewise.
	* testsuite/poke.pkl/optcond-pre-7.pk: Likewise.
	* testsuite/poke.pkl/optcond-pre-8.pk: Likewise.
	* testsuite/poke.pkl/optcond-pre-9.pk: Likewise.
	* testsuite/poke.pkl/optcond-pre-10.pk: Likewise.
	* testsuite/poke.pkl/optcond-pre-11.pk: Likewise.
	* testsuite/poke.pkl/optcond-pre-12.pk: Likewise.
	* testsuite/poke.map/map-optcond-write-1.pk: Renamed from
	map-opcond-write-1.pk.
	* testsuite/Makefile.am (EXTRA_DIST): Add new tests.
	* doc/poke.texi (Pretty-printers): Use prefix optional field
	conditions.
	(Optional Fields): Rewrite to document both prefix and suffix
	conditional expressions in optional fields.
	* pickles/pe.pk: Adapted to use pre conditional expressions.
	* pickles/elf-64.pk: Likewise.
	* pickles/elf-32.pk: Likewise.
	* pickles/btf-ext.pk: Likewise.
	* pickles/coff.pk: Likewise.
	* pickles/id3v2.pk: Likewise.
	* pickles/jffs2.pk: Likewise.
	* pickles/openpgp.pk: Likewise.

2022-10-04  Jose E. Marchesi  <jemarch@gnu.org>

	* pickles/pe-arm64.pk (PE_ARM64_Reloc): New type.
	* pickles/pe.pk (PE_Reloc): Use ARM64 relocs.
	(PE_Opt_Hdr): data_start only exists if not PE32+.

2022-10-04  Jose E. Marchesi  <jemarch@gnu.org>

	* libpoke/pkl-rt.pk (PK_TV_FIELD_ABSENT): Define.
	(PK_TV_NUM_EVENTS): Adjust.
	* libpoke/pkl.h (PK_TV_FIELD_ABSENT): Define.
	* libpoke/pkl-gen.pks (handle_struct_field_constraints): Generate
	a PK_TV_FIELD_ABSENT event whenever necessary.
	(struct_constructor): Likewise.
	* poke/pk-tracer.pk (pk_tv_action_field_absent): New function.

2022-10-04  Jose E. Marchesi  <jemarch@gnu.org>

	* libpoke/pkl-gen.pks (struct_field_mapper): Handle anonymous
	fields in PK_TV_FIELD_MAPPED events.
	* poke/pk-tracer.pk (pk_tv_action_field_mapped): Print <anonymous>
	for empty field names.

2022-10-04  Jose E. Marchesi  <jemarch@gnu.org>

	* libpoke/pkl-rt.pk: Note that PK_TV_FIELD_MAPPED is generated
	before constraints are checked.
	* libpoke/pkl-gen.pks (struct_field_mapper): Adjust accordingly.

2022-10-04  Jose E. Marchesi  <jemarch@gnu.org>

	* libpoke/pkl-gen.pks (struct_field_mapper): Force flat omode when
	formatting values for PK_TV_FIELD_MAPPED events.

2022-10-04  Jose E. Marchesi  <jemarch@gnu.org>

	* pickles/pe.pk (PE_Opt_Hdr): Fix the constraint for
	file_alignment.

2022-10-03  Jose E. Marchesi  <jemarch@gnu.org>

	* libpoke/pkl-rt.pk (PK_TV_FIELD_CONSTRAINT_FAILED): New variable.
	(PK_TV_NUM_EVENTS): Update.
	* libpoke/pkl.h (PK_TV_FIELD_CONSTRAINT_FAILED): Define.

2022-10-03  Jose E. Marchesi  <jemarch@gnu.org>

	* libpoke/pkl-rt.pk (pk_tracer_p): New variable.
	(PK_TV_FIELD_MAPPED): Likewise.
	(PK_TV_NUM_EVENTS): Likewise.
	(Pk_Tracer_Action): New type.
	(Pk_Tracer_Dispatch_Table): Likewise.
	(pk_tracer_dispatch): New variable.
	* libpoke/pkl.h: Prototype for pkl_tracer_p.
	(PK_TV_FIELD_MAPPED): Define.
	* libpoke/pkl.c (pkl_tracer_p): New function.
	* libpoke/ras: Support referring to tracing events with PK_TV_*.
	* libpoke/pkl-gen.pks (struct_field_mapper): Generate
	PK_TV_FIELD_MAPPED.
	* poke/pk-tracer.pk: New file.
	* poke/poke.pk: Load pk-tracer.pk.
	* poke/pk-settings.pk: Add setting for tracer.
	* poke/Makefile.am (dist_app_DATA): Add pk-tracer.pk.

2022-10-03  Jose E. Marchesi  <jemarch@gnu.org>

	* pickles/pe.pk (PE_Load_Configuration_Layout): New type.
	(PE_GUARD_*): New variables.

2022-10-03  Jose E. Marchesi  <jemarch@gnu.org>

	* libpoke/pkl-diag.h: Prototype for pkl_loc_to_source.
	* libpoke/pkl-diag.c (pkl_loc_to_source): New function.
	* libpoke/pkl-tab.y (pkl_make_assertion): Call pkl_loc_to_source.
	* pickles/pe.pk: Use asserts without explicit message.
	* pickles/color.pk: Likewise.
	* pickles/asn1-ber.pk: Likewise.
	* pickles/mcr.pk: Likewise.
	* pickles/rgb24.pk: Likewise.
	* testsuite/poke.pkl/assert-6.pk: New test.
	* testsuite/poke.pkl/assert-7.pk: Likewise.
	* testsuite/poke.pktest/pktest-11.pk: Adapt test.
	* testsuite/poke.pktest/pktest-7.pk: Likewise.
	* testsuite/poke.pktest/pktest-5.pk: Likewise.
	* testsuite/Makefile.am (EXTRA_DIST): Add new tests.
	* doc/poke.texi (assert): Document new behavior.

2022-10-03  Jose E. Marchesi  <jemarch@gnu.org>

	* pickles/pe-debug.pk: New file.
	* pickles/pe.pk (PE_Debug_Directory_Entry): New type.
	Load pe-debug.pk.
	(PE_Name): New method match_p.
	* pickles/Makefile.am (dist_pickles_DATA): Add pe-debug.pk and
	pe-riscv.pk.

2022-10-03  Jose E. Marchesi  <jemarch@gnu.org>

	* pickles/pe.pk: Load architecture-specific PE parts.
	* pickles/coff.pk (COFF_LINENO): New type.
	(COFF_Shdr): Use COFF_LINENO instead of COFF_LINENO_16.
	(COFF_Sym): e_scnum is signed.
	(COFF_N_ABS): Make negative.
	(COFF_N_DEBUG): Likewise.
	* pickles/coff-pe.pk: Remove file.
	* pickles/pe-i386.pk: New file.
	* pickles/pe-ia64.pk: Likewise.
	* pickles/pe-mips.pk: Likewise.
	* pickles/pe-amd64.pk: Likewise.
	* pickles/pe-arm.pk: Likewise.
	* pickles/pe-arm64.pk: Likewise.
	* pickles/pe-sh3.pk: Likewise.
	* pickles/pe-ppc.pk: Likewise.
	* pickles/pe-m32r.pk: Likewise.
	* pickles/Makefile.am (dist_pickles_DATA): Add new pickles.

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

	* pickles/coff-pe.pk: New file.
	* pickles/Makefile.am (dist_pickles_DATA): Add coff-pe.pk.
	* pickles/coff.pk (COFF_RELOC): Add alternative for PE/COFF
	relocations.

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

	* Makefile.am: Add missing file header.
	* pickles/Makefile.am: Likewise.
	* maps/Makefile.am: Likewise.

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

	* pickles/pe.pk: New file.
	* pickles/coff.pk: Remove 64-bit optional header, which is
	actually the PE one.
	* pickles/Makefile.am (dist_pickles_DATA): Add pe.pk

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

	* pickles/coff.pk: New file.
	* pickles/coff-i386.pk: Likewise.
	* pickles/coff-aarch64.pk: Likewise.
	* pickles/Makefile.am (dist_pickles_DATA): Add new pickles.

2022-09-30  Jose E. Marchesi  <jemarch@gnu.org>

	* doc/poke.texi (Field Labels): Expand with an additional example.

2022-09-30  Jose E. Marchesi  <jemarch@gnu.org>

	* etc/hacking.org (Writing REPL tests): Fix typo.
	(General REPL tests): Fix ordering.
	(Command REPL tests): Likewise.
	(PVM values in AST nodes): Update to new implementation.

2022-09-26  Jose E. Marchesi  <jemarch@gnu.org>

	* etc/poke.rec (Support bit-concatenation in l-value): Removed as
	done.
	(Union integrators and deintegrators): Likewise.

2022-09-26  Jose E. Marchesi  <jemarch@gnu.org>

	* libpoke/pkl-ast.h (struct pkl_ast_comp_stmt): New field
	frameless_p.
	(PKL_AST_COMP_STMT_FRAMELESS_P): Define.
	* libpoke/pkl-gen.c (pkl_gen_pr_comp_stmt): Do not generate a
	pushf for frameless compound statements.
	(pkl_gen_ps_comp_stmt): Likewise for popf.
	* libpoke/pkl-ast.h: Prototype for pkl_ast_handle_bconc_ass_stmt.
	* libpoke/pkl-ast.c (pkl_ast_handle_bconc_ass_stmt): New function.
	* libpoke/pkl-trans.c (pkl_trans2_pr_ass_stmt): New rule.
	(pkl_phase_trans2): Register new rule.
	* libpoke/pkl-typify.c (pkl_typify1_ps_ass_stmt): Check the width
	of r-values assigned to bconc expressions.
	* testsuite/poke.pkl/bconc-lvalue-diag-1.pk: New test.
	* testsuite/poke.pkl/bconc-lvalue-diag-2.pk: Likewise.
	* testsuite/poke.pkl/bconc-lvalue-1.pk: Likewise.
	* testsuite/poke.pkl/bconc-lvalue-2.pk: Likewise.
	* testsuite/poke.pkl/bconc-lvalue-3.pk: Likewise.
	* testsuite/poke.pkl/bconc-lvalue-4.pk: Likewise.
	* testsuite/poke.pkl/bconc-lvalue-5.pk: Likewise.
	* testsuite/poke.pkl/bconc-lvalue-6.pk: Likewise.
	* testsuite/Makefile.am (EXTRA_DIST): Add new tests.
	* doc/poke.texi (Bit Assignments): New section.

2022-09-26  Mohammad-Reza Nabipoor  <mnabipoor@gnu.org>

	* pickles/riscv.pk (RV32_InsnFmt_S): Add computed field `imm'
	(hence add `set_imm' method).
	(RV32_InsnFmt_B): Likewise.
	(RV32_InsnFmt_J): Likewise.
	(RV32_InsnFmt_U): s/imm/imm31_12/. Add computed field `imm'
	(hence add `set_imm' method).
	(RV32_InsnFmt_I): s/imm/imm11_0/. Add computed field `imm'
	(hence add `set_imm' method).
	(_rv32_i): s/imm/imm11_0/.
	(_rv32_u): s/imm/imm31_12/.

2022-09-26  Mohammad-Reza Nabipoor  <mnabipoor@gnu.org>

	* libpoke/pkl-tab.y (tokens): s/token/%token/.
	* libpoke/pkl-typify.c (pkl_typify1_ps_cast): Handle integral
	unions.
	(pkl_typify1_ps_type_struct): Likewise.
	* libpoke/pkl-gen.c (pkl_gen_pr_type_struct): Likewise.
	(pkl_gen_pr_decl): Likewise.
	(pkl_gen_pr_cast): In cast from an integral type to struct type,
	add a cast to ITYPE of the struct.
	* libpoke/pkl-gen.pks (RAS_FUNCTION_UNION_INTEGRATOR): New function.
	(RAS_FUNCTION_UNION_DEINTEGRATOR): Likewise.
	(RAS_FUNCTION_STRUCT_INTEGRATOR): Add assertion.
	(RAS_FUNCTION_STRUCT_DEINTEGRATOR): Likewise.
	* doc/poke.texi (Integral Unions): Add new section.
	* testsuite/poke.pkl/int-union-1.pk: New test.
	* testsuite/poke.pkl/int-union-2.pk: Likewise.
	* testsuite/poke.pkl/int-union-3.pk: Likewise.
	* testsuite/poke.pkl/int-union-4.pk: Likewise.
	* testsuite/poke.pkl/int-union-5.pk: Likewise.
	* testsuite/poke.pkl/int-union-6.pk: Likewise.
	* testsuite/poke.pkl/int-union-7.pk: Likewise.
	* testsuite/poke.pkl/int-union-8.pk: Likewise.
	* testsuite/poke.pkl/int-union-9.pk: Likewise.
	* testsuite/poke.pkl/int-union-10.pk: Likewise.
	* testsuite/poke.pkl/int-union-11.pk: Likewise.
	* testsuite/poke.pkl/int-union-12.pk: Likewise.
	* testsuite/poke.pkl/int-union-13.pk: Likewise.
	* testsuite/poke.pkl/int-union-14.pk: Likewise.
	* testsuite/poke.pkl/int-union-15.pk: Likewise.
	* testsuite/poke.pkl/int-union-16.pk: Likewise.
	* testsuite/poke.pkl/int-union-17.pk: Likewise.
	* testsuite/poke.pkl/int-union-18.pk: Likewise.
	* testsuite/poke.pkl/int-union-19.pk: Likewise.
	* testsuite/poke.pkl/int-union-20.pk: Likewise.
	* testsuite/poke.pkl/int-union-21.pk: Likewise.
	* testsuite/poke.pkl/int-union-22.pk: Likewise.
	* testsuite/poke.pkl/int-union-23.pk: Likewise.
	* testsuite/poke.pkl/int-union-24.pk: Likewise.
	* testsuite/poke.pkl/int-union-25.pk: Likewise.
	* testsuite/poke.pkl/int-union-26.pk: Likewise.
	* testsuite/poke.pkl/int-union-27.pk: Likewise.
	* testsuite/poke.pkl/int-union-28.pk: Likewise.
	* testsuite/poke.pkl/int-union-29.pk: Likewise.
	* testsuite/poke.pkl/int-union-30.pk: Likewise.
	* testsuite/poke.pkl/int-union-type-diag-1.pk: Likewise.
	* testsuite/poke.pkl/int-union-type-diag-2.pk: Likewise.
	* testsuite/poke.pkl/int-union-type-diag-3.pk: Likewise.
	* testsuite/poke.pkl/int-union-type-diag-4.pk: Likewise.
	* testsuite/poke.pkl/int-union-type-diag-5.pk: Likewise.
	* testsuite/poke.pkl/int-union-type-diag-6.pk: Likewise.
	* testsuite/poke.pkl/int-union-type-diag-7.pk: Likewise.
	* testsuite/poke.pkl/int-union-type-diag-8.pk: Likewise.
	* testsuite/poke.pkl/int-union-type-diag-9.pk: Likewise.
	* testsuite/poke.pkl/int-union-type-diag-10.pk: Likewise.
	* testsuite/poke.pkl/int-union-type-diag-11.pk: Likewise.
	* testsuite/poke.pkl/int-union-type-diag-12.pk: Likewise.
	* testsuite/poke.pkl/int-union-type-diag-13.pk: Likewise.
	* testsuite/poke.pkl/int-union-type-diag-14.pk: Likewise.
	* testsuite/poke.pkl/int-union-type-diag-15.pk: Likewise.
	* testsuite/poke.pkl/int-union-type-diag-16.pk: Likewise.
	* testsuite/poke.pkl/int-union-type-diag-17.pk: Likewise.
	* testsuite/poke.pkl/int-union-type-diag-18.pk: Likewise.
	* testsuite/poke.map/maps-int-union-1.pk: Likewise
	* testsuite/poke.map/maps-int-union-2.pk: Likewise
	* testsuite/poke.map/maps-int-union-3.pk: Likewise
	* testsuite/poke.map/maps-int-union-4.pk: Likewise
	* testsuite/poke.map/maps-int-union-5.pk: Likewise
	* testsuite/poke.pkl/int-struct-type-diag-3.pk: Adapted.
	* testsuite/poke.pkl/int-struct-type-diag-4.pk: Likewise.
	* testsuite/poke.pkl/int-struct-type-diag-5.pk: Likewise.
	* testsuite/poke.pkl/int-struct-type-diag-11.pk: Likewise.
	* testsuite/poke.pkl/int-struct-type-diag-16.pk: Removed.
	* testsuite/poke.pkl/int-struct-type-diag-17.pk: Likewise.
	* testsuite/Makefile.am (EXTRA_DIST): Update.

2022-09-26  Mohammad-Reza Nabipoor  <mnabipoor@gnu.org>

	* libpoke/pkl-gen.pks (function struct_constructor): Do not alter
	items that are already on the stack because `raise' will restore
	the height of stack and the caller will see garbage on the stack.
	(function struct_deintegrator): Likewise.

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

	* libpoke/pkl-rt.pk: Do not set the CWD to load_path here.
	* poke/poke.pk: Do it here instead.

2022-09-24  Arsen Arsenović   <arsen@aarsen.me>

	* poke/poke.c: Prefer $XDG_CONFIG_HOME to $XDG_CONFIG_DIRS, even
	when unset.

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

	BZ 27481
	* etc/hacking.org: Fix spelling mistakes.
	* NEWS: Likewise.
	* ChangeLog: Likewise.
	* doc/poke.texi: Likewise.
	* etc/parse-valgrind-suppressions.sh: Likewise.
	* etc/poke.rec: Likewise.
	* libpoke/ios.h: Likewise.
	* libpoke/pkl-gen.pks: Likewise.
	* libpoke/pkl-trans.c: Likewise.
	* libpoke/pkl-gen-builtins.pks: Likewise.
	* libpoke/pkl-promo.c: Likewise.
	* libpoke/pkl-asm.pks: Likewise.
	* libpoke/std.pk: Likewise.
	* libpoke/ios-dev-stream.c: Likewise.
	* libpoke/ras: Likewise.
	* libpoke/pvm.h: Likewise.
	* libpoke/pkl-gen.h: Likewise.
	* libpoke/pkl-anal.c: Likewise.
	* libpoke/pkl-typify.c: Likewise.
	* libpoke/ios-buffer.c: Likewise.
	* libpoke/pkl-fold.c: Likewise.
	* libpoke/ios-dev-mem.c: Likewise.
	* libpoke/pkl-tab.y: Likewise.
	* libpoke/pkl-ast.h: Likewise.
	* libpoke/pvm.jitter: Likewise.
	* libpoke/pkl-gen.c: Likewise.
	* libpoke/pvm-val.c: Likewise.
	* libpoke/ios.c: Likewise.
	* libpoke/pvm-val.h: Likewise.
	* libpoke/pkl.c: Likewise.
	* pickles/elf-common.pk: Likewise.
	* pickles/asn1-ber.pk: Likewise.
	* pickles/ios.pk: Likewise.
	* pickles/dwarf-pubnames.pk: Likewise.
	* pickles/jffs2.pk: Likewise.
	* poke/pk-cmd-ios.c: Likewise.
	* poke/pk-settings.pk: Likewise.
	* poke/poke.pk: Likewise.
	* poke/pk-map-parser.h: Likewise.
	* poke/poke.c: Likewise.
	* poke/pk-cmd-editor.c: Likewise.
	* poke/pk-help.pk: Likewise.
	* testsuite/poke.repl/repl.exp: Likewise.
	* testsuite/poke.std/std.exp: Likewise.
	* HACKING: Regenerate.

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

	* libpoke/pkl-typify.c (pkl_typify1_ps_cast): Do not allow casts
	to unions.
	* testsuite/poke.pkl/cast-union-diag-1.pk: New test.
	* testsuite/poke.pkl/cast-union-diag-2.pk: Likewise.
	* testsuite/Makefile.am (EXTRA_DIST): Add new tests.
	* doc/poke.texi (Casting Structs): Note that casts to unions are
	not allowed.

2022-09-23  Jose E. Marchesi  <jemarch@gnu.org>

	* etc/poke.rec (with_temp_ios): Removed as DONE.
	(casts from integral to array and from array to integral):
	Likewise.
	(Support for offline method definitions): New enhancement.

2022-09-22  Jose E. Marchesi  <jemarch@gnu.org>

	* pickles/ios.pk: Do not use standard types.

2022-09-22  Jose E. Marchesi  <jemarch@gnu.org>

	* pickles/pk-table.pk: Do not use standard types.

2022-09-22  Jose E. Marchesi  <jemarch@gnu.org>

	* pickles/mbr.pk (MBR_CHS): Add computed field `cylinder'.
	* testsuite/poke.pickles/mbr-test.pk: Adapt accordingly.

2022-09-22  Jose E. Marchesi  <jemarch@gnu.org>

	* pickles/id3v1.pk: Convert to use computed fields.
	* testsuite/poke.pickles/id3v1-test.pk: Adapted accordingly.

2022-09-22  Jose E. Marchesi  <jemarch@gnu.org>

	* libpoke/pkl-lex.l: Recognize token COMPUTED.
	* libpoke/pkl-ast.h (PKL_AST_STRUCT_TYPE_FIELD_COMPUTED_P): Define.
	(struct pkl_ast_struct_type_field): New field computed_p.
	(struct pkl_ast_type): New field `ncfield' for struct types.
	(PKL_AST_TYPE_S_NCFIELD): Define.
	* libpoke/pkl-ast.c (pkl_ast_print_1): Print the computed_p
	attribute of struct type fields.
	(pkl_ast_sizeof_type): Do not count computed fields for the size
	of the struct.
	(pkl_ast_dup_type): Duplicate computed flag in struct type fields.
	(pkl_ast_type_mappable_p): Do not include computed fields in
	determining whether a struct type is mappable.
	(pkl_ast_type_is_complete): Do not include computed fields in
	determining whether a struct type is complete.
	(pkl_ast_type_is_complete): Likewise for union types.
	(pkl_type_append_to): Append `computed' for computed fields in
	type descriptors.
	* libpoke/pkl-tab.y: New token COMPUTED.
	(struct_type_computed_field): New rule.
	(struct_type_elem_list): Add struct_type_computed_field as an
	alternative.
	* libpoke/pkl-anal.c (pkl_anal2_ps_type_struct): adapt to computed
	fields.
	* libpoke/pkl-trans.c (pkl_trans1_ps_type_struct): Do not include
	computed fields in the nfield count and initialize ncfield.
	* libpoke/pkl-typify.c (pkl_typify1_ps_type_struct): Check methods
	for computed fields.
	(pkl_typify1_ps_cons): Do not allow specifying computed fields in
	struct constructors.
	* libpoke/pkl-gen.c (pkl_gen_pr_ass_stmt): Handle computed fields.
	(pkl_gen_ps_struct_ref): Likewise.
	(pkl_gen_pr_struct_type_field): Do not include computed fields in
	PVM struct types.
	* libpoke/pkl-gen.pks (struct_constructor): Do not construct
	computed fields.
	(struct_mapper): Likewise.
	(struct_writer): Likewise.
	(struct_integrator): Likewise.
	(struct_deintegrator): Likewise.
	(union_comparator): Likewise.
	(struct_comparator): Likewise.
	(union_writer): Likewise.
	(struct_formater): Likewise.
	(struct_printer): Likewise.
	(struct_typifier): Likewise.
	* libpoke/pkl-rt.pk (Pk_Type): New field fcomputed.
	* poke/pk-info.pk (pk_info_type): Display info on computed fields.
	* testsuite/poke.pkl/computed-diag-1.pk: New test.
	* testsuite/poke.pkl/computed-diag-2.pk: Likewise.
	* testsuite/poke.pkl/computed-diag-3.pk: Likewise.
	* testsuite/poke.pkl/computed-diag-4.pk: Likewise.
	* testsuite/poke.pkl/computed-diag-5.pk: Likewise.
	* testsuite/poke.pkl/computed-diag-6.pk: Likewise.
	* testsuite/poke.pkl/computed-diag-7.pk: Likewise.
	* testsuite/poke.pkl/computed-diag-8.pk: Likewise.
	* testsuite/poke.pkl/computed-diag-9.pk: Likewise.
	* testsuite/poke.pkl/computed-diag-10.pk: Likewise.
	* testsuite/poke.pkl/computed-diag-11.pk: Likewise.
	* testsuite/poke.pkl/computed-1.pk: Likewise.
	* testsuite/poke.pkl/computed-2.pk: Likewise.
	* testsuite/poke.pkl/computed-3.pk: Likewise.
	* testsuite/poke.pkl/computed-4.pk: Likewise.
	* testsuite/poke.pkl/computed-5.pk: Likewise.
	* testsuite/poke.pkl/computed-6.pk: Likewise.
	* testsuite/poke.pkl/computed-7.pk: Likewise.
	* testsuite/poke.pkl/computed-8.pk: Likewise.
	* testsuite/poke.pkl/computed-9.pk: Likewise.
	* testsuite/poke.pkl/computed-10.pk: Likewise.
	* testsuite/poke.pkl/computed-11.pk: Likewise.
	* testsuite/poke.pkl/computed-12.pk: Likewise.
	* testsuite/poke.pkl/computed-13.pk: Likewise.
	* testsuite/poke.pkl/computed-14.pk: Likewise.
	* testsuite/poke.pkl/computed-15.pk: Likewise.
	* testsuite/poke.pkl/computed-16.pk: Likewise.
	* testsuite/poke.pkl/computed-17.pk: Likewise.
	* testsuite/poke.pkl/computed-18.pk: Likewise.
	* testsuite/poke.pkl/typeof-26.pk: Likewise.
	* testsuite/Makefile.am (EXTRA_DIST): Add new tests.
	* doc/poke.texi (Computed Fields): New section.

2022-09-22  Jose E. Marchesi  <jemarch@gnu.org>

	* libpoke/pkl-ast.h (PKL_AST_DECL_TYPE): Remove.

2022-09-18  Mohammad-Reza Nabipoor  <mnabipoor@gnu.org>

	* pickles/elf-32.pk (Elf32_File.get_section_name): New method.
	(Elf32_File.get_symbol_name): Likewise.
	(Elf32_File.get_sections_by_name): Likewise.
	(Elf32_File.get_sections_by_type): Likewise.
	(Elf32_File.section_name_p): Likewise.
	(Elf32_File.get_string): Likewise.
	(Elf32_File.get_group_signature): Likewise.
	(Elf32_File.get_group_signatures): Likewise.
	(Elf32_File.get_section_group): Likewise.

2022-09-18  Mohammad-Reza Nabipoor  <mnabipoor@gnu.org>

	* pickles/elf-64.pk (Elf64_File.get_sections_by_name): Use `apush'.
	(Elf64_File.get_sections_by_type): Likewise.
	(Elf64_File.get_group_signatures): Likewise.
	(Elf64_File.get_section_group): Likewise.

2022-09-18  Mohammad-Reza Nabipoor  <mnabipoor@gnu.org>

	* pickles/riscv.pk: New pickle for RISC-V RV32I instruction set.
	* pickles/Makefile.am (dist_pickles_DATA): Update.
	* etc/hacking.org (Maintainers): Add myself as the maintainer of
	the pickle.
	* HACKING: Update.

2022-09-17  Mohammad-Reza Nabipoor  <mnabipoor@gnu.org>

	* poked/poked.pk (poked_restart): Close all IO spaces before
	restarting the daemon.

2022-09-17  Mohammad-Reza Nabipoor  <mnabipoor@gnu.org>

	* poked/poked.pk (poked_chan_send): Force Poke to make a copy of
	data before putting into the buffer.


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

	* libpoke/pkl-lex.l (IS): Add lower-case b to `IS' definition.
	(Integer literal rule): Accept lower-case b as a valid suffix.
	* doc/learn-poke-language-in-y-minutes.pk: Add a line about integer
	suffixes.
	* testsuite/Makefile.am (EXTRA_DIST): Update.
	* testsuite/poke.pkl/integers-8.pk: New test.
	* testsuite/poke.pkl/integers-9.pk: Likewise.
	* testsuite/poke.pkl/integers-10.pk: Likewise.

2022-07-25  Jose E. Marchesi  <jemarch@gnu.org>

	* configure.ac: Bump version to 2.4.
	* doc/gendocs_template: Likewise.
	* NEWS: Add entries for 2.4.

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

	* pickles/mbr.pk (MBR_CHS): Use unnammed type for the `cs' field.

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

	* poke/pk-map-tab.y (make_map_entry): Set condition_loc.
	(tagged_value): Use location of DATA for the tag's location.
	* poke/pk-map-parser.h (struct pk_map_parsed_entry): New field
	condition_loc.
	(PK_MAP_PARSED_ENTRY_CONDITION_LOC): Define.
	(PK_MAP_NOLOC): Define.
	* poke/pk-map.c (pk_map_load_parsed_map): Use
	pk_compile_buffer_with_loc and pk_compile_expression_with_loc.

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

	* poke/pk-cmd.c (pk_cmd_exec): Use pk_compile_statement_with_loc
	and pk_compile_buffer_with_loc.

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

	* libpoke/pkl-diag.c (pkl_warning): Use <unknown> for unknown
	source/location.
	(pkl_error_internal): Likewise.

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

	* libpoke/pkl-parser.h: Add location info to pkl_parse_buffer.
	(struct pkl_parser): Add fields init_line and init_column.
	* libpoke/pkl-parser.c (pkl_parse_buffer): Likewise.
	(pkl_parse_buffer): Fix initial location to 1:1 instead of 0:0.
	* libpoke/pkl.h: Add location info to pkl_execute_buffer.
	Add location info to pkl_execute_expression.
	Add location info to pkl_execute_statement.
	* libpoke/pkl.c (pkl_execute_buffer): Likewise.
	(pkl_execute_statement): Likewise.
	(pkl_execute_expression): Likewise.
	* libpoke/libpoke.h: Prototype for pk_compile_buffer_with_loc.
	Prototype for pk_compile_statement_with_loc.
	Prototype for pk_compile_expression_with_loc.
	* libpoke/libpoke.c (pk_compile_buffer_with_loc): New function.
	(pk_compile_buffer): Reimplement in terms of
	pk_compile_buffer_with_loc.
	(pk_compile_statement_with_loc): New function.
	(pk_compile_statement): Reimplement in terms of
	pk_compile_statement_with_loc.
	(pk_compile_expression_with_loc): New function.
	(pk_compile_expression): Reimplement in terms of
	pk_compile_expression_with_loc.
	* libpoke/pkl-tab.y (%initial-action): Use pkl_parser->init_line
	and pkl_parser->init_column to initialize the location
	information.

2022-07-19  Jose E. Marchesi  <jemarch@gnu.org>

	* doc/poke.texi (Simple Init File): Add `.set pager yes' to the
	set of recommended options for new users and explain all the
	options a little.

2022-07-19  Jose E. Marchesi  <jemarch@gnu.org>

	* poke/pk-scrabble.pk (Arguments): Move variable declaration out
	of loop to avoid extra allocations.

2022-07-19  Jose E. Marchesi  <jemarch@gnu.org>

	* doc/poke.texi (qsort): Add example of a comparator function for
	qsort and fix comparator prototype.

2022-07-19  Jose E. Marchesi  <jemarch@gnu.org>

	* libpoke/pkl-tab.y (declaration): Move annotation of function
	names to trans1.
	* libpoke/pkl-trans.c (pkl_trans1_pr_decl): Annotate declared
	function names.

2022-07-19  Jose E. Marchesi  <jemarch@gnu.org>

	* libpoke/pkl-parser.h (struct pkl_parser): New field prev_loc.
	* libpoke/pkl-parser.c (pkl_parser_init): Initialize
	parser->prev_loc.
	* libpoke/pkl-lex.l (YY_USER_ACTION): Save a backup of the current
	location.
	(PK_REJECT): Define.
	(RESTORE_LOC): Define.

2022-07-18  Mohammad-Reza Nabipoor  <mnabipoor@gnu.org>

	* libpoke/pkl-ast.h (pkl_ast_finish_breaks): Remove.
	* libpoke/pkl-ast.c (pkl_ast_finish_breaks): Likewise.
	(pkl_ast_finish_breaks_1): Likewise.
	* libpoke/pkl-tab.y (stmt): Likewise.
	* libpoke/pkl-trans.h (struct pkl_trans_escapable_ctx): New struct.
	(PKL_TRANS_MAX_COMP_STMT_NEST): New macro.
	(struct pkl_trans_payload): Add new fields.
	* libpoke/pkl-trans.c (PKL_TRANS_ESCAPABLE): New macro.
	(PKL_TRANS_PUSH_ESCAPABLE): Likewise.
	(PKL_TRANS_POP_ESCAPABLE): Likewise.
	(pkl_trans1_pr_comp_stmt): Add logic to track lexical frames around
	`break` and `continue` keywords.
	(pkl_trans1_ps_comp_stmt): Likewise.
	(pkl_trans1_pr_loop_stmt): Likewise.
	(pkl_trans1_pr_try_stmt_body): Likewise.
	(pkl_trans1_ps_try_stmt_body): Likewise.
	(pkl_trans1_pr_try_stmt): New handler.
	(pkl_trans1_ps_try_stmt): Likewise.
	(pkl_trans1_pr_try_stmt_handler): Likewise.
	(pkl_trans1_ps_try_stmt_handler): Likewise.
	(pkl_trans1_ps_break_stmt): Likewise.
	(pkl_trans1_ps_continue_stmt): Likewise.
	(pkl_phase_trans1): Register new handlers.

2022-07-17  Mohammad-Reza Nabipoor  <mnabipoor@gnu.org>

	* etc/hacking.org (try_stmt): Update the topology.
	* HACKING (try_stmt): Update.
	* libpoke/pkl-ast.h (enum pkl_ast_code): Add
	PKL_AST_TRY_STMT_HANDLER.
	(PKL_AST_TRY_STMT_HANDLER_CODE): New macro.
	(struct pkl_ast_try_stmt_handler): New struct.
	(pkl_ast_make_try_stmt_handler): New function.
	(union pkl_ast_node): Add `try_stmt_handler`.
	* libpoke/pkl-ast.c (pkl_ast_make_try_stmt_handler): New function.
	(pkl_ast_node_free): Add case for TRY_STMT_HANDLER.
	(pkl_ast_print_1): Likewise.
	(pkl_ast_finish_breaks_1): Likewise.
	* libpoke/pkl-tab.y (stmt): Adapt to use
	`pkl_ast_make_try_stmt_handler` in try-catch statements.
	* libpoke/pkl-pass.c (pkl_do_pass_1): Add case for TRY_STMT_HANDLER.
	* libpoke/pkl-gen.c (pkl_gen_ps_try_stmt_handler): New handler.
	(pkl_phase_gen): Register new handler.

2022-07-17  Jose E. Marchesi  <jemarch@gnu.org>

	* libpoke/pkl-ast.h (struct pkl_ast_var): New field is_indexed.
	(struct pkl_ast_indexer): Likewise.
	(PKL_AST_VAR_IS_INDEXED): Define.
	(PKL_AST_INDEXER_IS_INDEXED): Likewise.
	* libpoke/pkl-trans.c (pkl_trans1_ps_var): Annotate is_indexed.
	(pkl_trans1_ps_indexer): New handler.
	(pkl_phase_trans1): Register new handler.
	* libpoke/pkl-gen.c (pkl_gen_ps_var): Avoid remapping arrays when
	indexing elements when the array type is complete and can be
	mapped.
	(pkl_gen_pr_indexer): Ditto for array indexers themselves.

2022-07-16  Jose E. Marchesi  <jemarch@gnu.org>

	* pickles/ios.pk (ios_save_bytes): Adapted from poke/pk-save.pk.
	(ios_copy_bytes): Adapted from poke/pk-copy.pk.
	(ios_dump_bytes): Do not use types from std-types.pk.

	* poke/pk-copy.pk (copy): Rewrite in terms of ios_copy_bytes.
	* poke/pk-save.pk (save): Rewrite in terms of ios_save_bytes.
	* doc/poke.texi (IOS): New chapter.
	(ios_dump_bytes): New section.
	(ios_copy_bytes): Likewise.
	(ios_save_bytes): Likewise.

2022-07-16  Jose E. Marchesi  <jemarch@gnu.org>

	* poke/pk-extract.pk (extract): Make `to' optional and report the
	IOS where the value got extracted.
	* doc/poke.texi (extract): Update accordingly.

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

	* etc/hacking.org (Building with Debugging support): Recommend
	CFLAGS="-O0 -g3" for debugging.

2022-07-14  Jose E. Marchesi  <jemarch@gnu.org>

	* libpoke/pkl-ast.h: Update comments.
	* libpoke/pkl-trans.c: Remove obsolete comments.
	* etc/hacking.org (exp): New section.
	(cond_exp): Likewise.

2022-07-14  Mohammad-Reza Nabipoor  <mnabipoor@gnu.org>

	* libpoke/pkl-trans.c (pkl_trans1_pr_comp_stmt): Merge common parts
	under a single if statement.
	(pkl_trans1_ps_comp_stmt): Likewise.

2022-07-13  Jose E. Marchesi  <jemarch@gnu.org>

	* libpoke/pkl-trans.h (struct pkl_trans_function_ctx): Define.
	* libpoke/pkl-trans.c (pkl_trans_in_functions): Adapt to new
	stack.
	(PKL_TRANS_FUNCTION_BACK): Delete macro.
	(PKL_TRANS_INCR_FUNCTION_BACK): Likewise.
	(PKL_TRANS_DECR_FUNCTION_BACK): Likewise.
	(PKL_TRANS_DECR_FUNCTION_NDROPS): Likewise.
	(PKL_TRANS_DECR_FUNCTION_NPOPES): Likewise.
	(PKL_TRANS_FUNCTION_NDROPS): Likewise.
	(PKL_TRANS_INCR_FUNCTION_NDROPS): Likewise.
	(PKL_TRANS_FUNCTION_NPOPES): Likewise.
	(PKL_TRANS_INCR_FUNCTION_NPOPES): Likewise.
	Update phase handlers accordingly.

2022-07-13  Mohammad-Reza Nabipoor  <mnabipoor@gnu.org>

	* libpoke/pkl-ast.h (pkl_ast_finish_returns): Remove.
	* libpoke/pkl-ast.c (pkl_ast_finish_returns): Likewise.
	(pkl_ast_finish_returns_1): Likewise.
	* libpoke/pkl-tab.y (function_specifier): Likewise.
	(declaration): Likewise.
	* libpoke/pkl-trans.h (struct pkl_trans_payload): Add new fields
	`function_ndrops` and `function_npopes`.
	* libpoke/pkl-trans.c (PKL_TRANS_FUNCTION_NDROPS): New macro.
	(PKL_TRANS_INCR_FUNCTION_NDROPS): Likewise.
	(PKL_TRANS_DECR_FUNCTION_NDROPS): Likewise.
	(PKL_TRANS_FUNCTION_NPOPES): Likewise.
	(PKL_TRANS_INCR_FUNCTION_NPOPES): Likewise.
	(PKL_TRANS_DECR_FUNCTION_NPOPES): Likewise.
	(PKL_TRANS_PUSH_FUNCTION): Adapt.
	(pkl_trans1_pr_comp_stmt): Count ndrops and npopes.
	(pkl_trans1_ps_comp_stmt): Likewise.
	(pkl_trans1_pr_loop_stmt): Likewise.
	(pkl_trans1_ps_loop_stmt): Likewise.
	(pkl_trans1_ps_return_stmt): New handler.
	(pkl_trans1_pr_try_stmt_body): Likewise.
	(pkl_trans1_ps_try_stmt_body): Likewise.
	(struct pkl_phase_trans1): Register new handlers.
	* libpoke/pkl-gen.c (pkl_gen_ps_return_stmt): Fix comment.
	* testsuite/poke.pkl/return-3.pk: New test.
	* testsuite/poke.pkl/return-4.pk: Likewise.
	* testsuite/poke.pkl/return-5.pk: Likewise.
	* testsuite/poke.pkl/return-6.pk: Likewise.
	* testsuite/Makefile.am (EXTRA_DIST): Update.

2022-07-13  Jose E. Marchesi  <jemarch@gnu.org>

	* libpoke/pkl-ast.h (enum pkl_ast_code): Define PKL_AST_TRY_STMT
	and PKL_AST_TRY_STMT_BODY, and remove PKL_AST_TRY_UNTIL_STMT and
	PKL_AST_TRY_CATCH_STMT.
	(PKL_AST_TRY_CATCH_STMT_BODY): Rename from PKL_AST_TRY_CATCH_STMT_CODE.
	(struct pkl_ast_try_catch_stmt): Field `code' renamed to `body'.
	(PKL_AST_TRY_STMT_KIND_CATCH): Define.
	(PKL_AST_TRY_STMT_KIND_UNTIL): Likewise.
	(struct pkl_ast_try_catch_stmt_body): New type.
	(PKL_AST_TRY_UNTIL_STMT_CODE): Remove.
	(PKL_AST_TRY_UNTIL_STMT_EXP): Likewise.
	(struct pkl_ast_try_until_stmt): Likewise.
	(PKL_AST_TRY_STMT_BODY_CODE): Define.
	(PKL_AST_TRY_CATCH_STMT_KIND): Define.
	* libpoke/pkl-ast.c (pkl_ast_make_try_until_stmt): Remove.
	(pkl_ast_node_free): Adapt to new AST.
	(pkl_ast_finish_breaks_1): Likewise.
	(pkl_ast_print_1): Likewise.
	(pkl_ast_make_try_stmt_body): Define.
	(pkl_ast_make_try_stmt): Rename from pkl_ast_make_try_catch_stmt.
	* libpoke/pkl-pass.c (pkl_do_pass_1): Adapt to new AST.
	* libpoke/pkl-tab.y (stmt): Adapt to new AST.
	* libpoke/pkl-typify.c (pkl_typify1_ps_try_stmt): Renamed and
	adapted from pkl_typify1_ps_try_catch_stmt.
	* libpoke/pkl-gen.c (pkl_gen_pr_try_stmt): Renamed and adapted
	from pkl_gen_pr_try_catch_stmt.
	(pkl_gen_ps_try_stmt_body): New handler.
	(pkl_phase_gen): Install new handler.
	* etc/hacking.org (try Statements): New section.
	* HACKING: Regenerate.

2022-07-13  Mohammad-Reza Nabipoor  <mnabipoor@gnu.org>

	* libpoke/pkl-ast.h (PKL_AST_FUNC_NFRAMES): Remove.
	(PKL_AST_RETURN_STMT_NFRAMES): Likewise.
	(struct pkl_ast_func): Remove `nframes` field.
	(struct pkl_ast_return_stmt): Likewise.
	* libpoke/pkl-ast.c (pkl_ast_finish_returns_1): Remove `nframes` arg.
	(pkl_ast_finish_returns): Update.

2022-07-13  Mohammad-Reza Nabipoor  <mnabipoor@gnu.org>

	* libpoke/pkl-trans.c (pkl_trans1_pr_decl): Do not pushing current function
	to the stack of functions here.
	(pkl_trans1_pr_func): Do it here.
	(pkl_trans1_ps_decl): Remove handler.
	(pkl_phase_trans1): Register new handler.
	* testsuite/poke.pkl/lambda-5.pk): Add new test.
	* testsuite/Makefile.am (EXTRA_DIST): Update.

2022-07-11  Jose E. Marchesi  <jose.marchesi@oracle.com>

	* pickles/ctf.pk (ctf_get_dict): Raise an assert instead of
	E_inval.

2022-07-10  Jose E. Marchesi  <jose.marchesi@oracle.com>

	* pickles/ctf-frame.pk: Fix indentation and replace tabs with
	whitespaces.
	* pickles/ctf-frame-dump.pk: Likewise.

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

	* libpoke/pkl-gen.c (pkl_gen_pr_op_excond): Invert the logic of excond
	operator.
	* doc/poke.texi (exception predicate): Update to new semantics.
	* libpoke/std.pk (with_temp_ios): Likewise.
	libpoke/std.pk (with_cur_ios): Likewise.
	* pickles/asn1-ber.pk (BER_Data_Value.isdefinite): Likewise.
	* pickles/btf-dump.pk (btf_dump_type_vdata): Likewise.
	* pickles/ctf-dump.pk (ctf_dump_func): Likewise.
	* pickles/diff.pk (diff_structured): Likewise.
	* testsuite/poke.pkl/excond-1.pk: Likewise.
	* testsuite/poke.pkl/excond-2.pk: Likewise.
	* testsuite/poke.pkl/excond-3.pk: Likewise.
	* testsuite/poke.pkl/excond-4.pk: Likewise.
	* testsuite/poke.std/std-test.pk: Likewise.

2022-07-08  Jose E. Marchesi  <jose.marchesi@oracle.com>

	* pickles/btf.pk (BTF_Int): Turn `encoding' into a nested integral
	struct.
	* pickles/btf-dump.pk (btf_dump_int): Update accordingly.

2022-07-08  Jose E. Marchesi  <jose.marchesi@oracle.com>

	* pickles/btf-dump.pk (btf_dump_var): Use btf_var_linkage_names.
	(btf_dump_func): New function.
	(btf_dump_type_vdata): Call btf_dump_func whenever appropriate.
	* pickles/btf.pk (BTF_VAR_STATIC): Define.
	(BTF_VAR_GLOBAL_ALLOCATED): Likewise.
	(BTF_VAR_GLOBAL_EXTERN): Likewise.
	(BTF_FUNC_STATIC): Likewise.
	(BTF_FUNC_GLOBAL): Likewise.
	(BTF_FUNC_EXTERN): Likewise.
	(btf_var_linkage_names): Likewise.
	(btf_func_linkage_names): Likewise.
	(BTF_Type.info._print): Print linkage whenever appropriate.
	(BTF_Variable): Add pretty-printer.

2022-04-10  Jose E. Marchesi  <jemarch@gnu.org>

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

2022-07-04  Jose E. Marchesi  <jemarch@gnu.org>

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

2022-07-04  Jose E. Marchesi  <jemarch@gnu.org>

	* libpoke/pkl-insn.def (PKL_INSN_IOLIST): Define.
	* libpoke/pvm.jitter (iolist): New instruction.
	* libpoke/pkl-lex.l: Recognize token __PKL_BUILTIN_IOLIST__.
	* libpoke/pkl-tab.y: Likewise.
	* libpoke/pkl-ast.h (PKL_AST_BUILTIN_IOLIST): Define.
	* libpoke/pkl-gen.c (pkl_gen_ps_comp_stmt): Handle
	PKL_AST_BUILTIN_IOLIST.
	* libpoke/pkl-gen-builtins.pks (builtin_iolist): Define.
	* libpoke/pkl-rt.pk (iolist): New builtin.
	* testsuite/poke.pkl/iolist-1.pk: New test.
	* testsuite/poke.pkl/iolist-2.pk: Likewise.
	* testsuite/poke.pkl/iolist-3.pk: Likewise.
	* testsuite/poke.pkl/iolist-4.pk: Likewise.
	* testsuite/Makefile.am (EXTRA_DIST): Add new tests.
	* doc/poke.texi (iolist): New section.

2022-06-05  apache2  <apache2@ageinghacker.net>

	* libpoke/ios-dev-file.c (ios_dev_file_pread): Avoid slow unneeded
	seeks.,

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

	* libpoke/pkl-gen.pks (struct_mapper): Add an explicative message
	for union alternative constraint exceptions.
	(struct_constructor): Likewise.
	* testsuite/poke.pkl/union-constraint-1.pk: New test.
	* testsuite/poke.pkl/union-constraint-2.pk: Likewise.
	* testsuite/poke.pkl/union-constraint-3.pk: Likewise.
	* testsuite/poke.pkl/union-constraint-4.pk: Likewise.
	* testsuite/Makefile.am (EXTRA_DIST): Add new tests.

2022-04-14  Jose E. Marchesi  <jemarch@gnu.org>

	* libpoke/std.pk (Pk_With_Ios_Fn): New type.
	(Pk_Temp_Ios_Generator): Likewise.
	(with_temp_ios): New function.
	(with_cur_ios): Likewise.
	* testsuite/poke.std/std-test.pk: Tests for with_temp_ios and
	with_cur_ios.
	* doc/poke.texi (with_temp_ios): New section.
	(with_cur_ios): Likewise.

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

	* pickles/openpgp.pk (PGP_Packet): Remove pretty-printer.  Use an
	internal UID type and use #<uid:...> marks in its pretty-printer.

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



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

	* pickles/openpgp.pk (PGP_Packet): Add constraint to check that
	the payload size matches with the declared length in the header.

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

	* doc/poke.texi (Exceptions): Remove mention to E_map_bounds.
	(Array Constructors): Update.
	(Array maps bounded by number of elements): Likewise.
	(Array maps bounded by size): Likewise.

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

	* pickles/diff.pk: Correct handling of boundaries constraint
	error.

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

	* libpoke/pkl-gen.pks (array_constructor): Add explicative message
	to E_constraint raised from unsatisfied array boundaries.
	(array_mapper): Likewise.

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

	* libpoke/pkl-gen.pks (array_mapper): Raise PVM_E_CONSTRAINT
	instead of PVM_E_MAP_BOUNDS in case of array bound failure.
	(array_constructor): Likewise.
	* libpoke/libpoke.h (PK_EC_MAP_BOUNDS): Remove.
	* libpoke/pkl-rt.pk (E_map_bounds): Likewise.
	* libpoke/pvm.h (PVM_E_MAP_BOUNDS): Likewise.
	(PVM_E_MAP_BOUNDS_NAME): Likewise.
	(PVM_E_MAP_BOUNDS_ESTATUS): Likewise.
	* pickles/diff.pk: Adapt accordingly.
	* testsuite/poke.pkl/scons-union-12.pk: New test.
	* testsuite/poke.pkl/scons-union-13.pk: Likewise.
	* testsuite/poke.pkl/scons-union-14.pk: Likewise.
	* testsuite/poke.map/maps-unions-14.pk: Likewise.
	* testsuite/poke.map/maps-unions-15.pk: Likewise.
	* testsuite/poke.map/maps-unions-16.pk: Likewise.
	* testsuite/Makefile.am (EXTRA_DIST): Add new tests.

2022-04-10  Jose E. Marchesi  <jemarch@gnu.org>

	* pickles/openpgp.pk (PGP_MPI): The `len' field is big endian.

2022-04-10  Jose E. Marchesi  <jemarch@gnu.org>

	* pickles/openpgp.pk (PGP_Packet_Header): Do not print a newline
	in the pretty-printer.
	(PGP_MPI): Likewise.

2022-04-10  Jose E. Marchesi  <jemarch@gnu.org>

	* pickles/openpgp.pk (PGP_V3_Packet_Length): Use tag logic to get
	the union value.
	(PGP_V4_Packet_Length): fix units.
	(PGP_Packet_Header): Use the right method name.
	(PGP_Key_Flags): Add missing semicolon.
	(PGP_File): Fix type name for PGP_Packet.

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

	* libpoke/pvm.h (pvm_assert): Add more parameters.
	(PVM_ASSERT): New macro.
	* libpoke/pvm.c (pvm_assert): Replace `assert` with an implementation.
	(assert.h): Remove #include.
	* libpoke/pvm.jitter (PVM_PRINTI): s/pvm_assert/PVM_ASSERT/.
	(PVM_FORMATI): Likewise.
	(PVM_FORMATU): Likewise.
	(exit): Likewise.
	(call): Likewise.
	(asettb): Likewise.
	(strace): Likewise.

2022-04-09  Jose E. Marchesi  <jemarch@gnu.org>

	* pickles/openpgp.pk: New file.

2022-04-08  Jose E. Marchesi  <jemarch@gnu.org>

	* poke/pk-repl.c: Include ctype.h.

2022-04-08  Jose E. Marchesi  <jose.marchesi@oracle.com>

	* libpoke/pkl-gen.c (pkl_gen_ps_func): Fix E_no_return location in
	lambdas.

2022-04-08  Jose E. Marchesi  <jemarch@gnu.org>

	* libpoke/pkl-ast.h: Prototype for pkl_ast_format_loc.
	* libpoke/pkl-ast.c (pkl_ast_format_loc): New function.
	* libpoke/pkl-gen.c (pkl_gen_ps_func): Add function name to
	E_no_return exception whenever possible.
	* testsuite/poke.pkl/fun-no-return-1.pk: New test.
	* testsuite/poke.pkl/fun-no-return-2.pk: Likewise.
	* testsuite/Makefile.am (EXTRA_DIST): Add new tests.

2022-04-08  Jose E. Marchesi  <jemarch@gnu.org>

	* libpoke/pkl-tab.y: Make struct and array constructors primary
	syntax entities.
	* testsuite/poke.pkl/scons-70.pk: New test.
	* testsuite/Makefile.am (EXTRA_DIST): Add new test.

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

	* libpoke/pkl-promo.c (pkl_promo_ps_cast): Do not try to promote
	regular structs to integral structs.
	* testsuite/poke.pkl/cast-int-struct-4.pk: New test.
	* testsuite/Makefile.am (EXTRA_DIST): Add new test.

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

	* etc/Makefile.am (dist_lisp_DATA): Do not install poke-mode.
	* emacs: Remove.
	* etc/poke-mode.el: Remove.

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

	* emacs/poke-el.texi: Capitalize etc.

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

	* emacs/poke.el (poke-settings-map): Define.
	(poke-settings-create-widgets): Use poke-settings-map.

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

	* emacs/poke.el (poke-vu-goto-byte): Do not handle current-pos.
	(poke-vu-mode): Likewise.
	(poke-vu-handle-cmd): Get current-pos from the buffer.

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

	* configure.ac: Update version to 2.3.
	* doc/gendocs_template: Likewise.
	* NEWS: Entries for 2.3.

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

	* libpoke/pkl-typify.c (pkl_typify1_ps_type_struct): Fix
	diagnostics in 32-bit.

2022-03-29  Jose E. Marchesi  <jemarch@gnu.org>

	* configure.ac: Update version to 2.2.
	* doc/gendocs_template: Likewise.
	* NEWS: Update for 2.2.

2022-03-28  Jose E. Marchesi  <jemarch@gnu.org>

	* emacs/poke.el (poke-maps-cmd-copy-name-as-kill): Define.
	(poke-maps-mode-map): Map command above to (kbd "w").

2022-03-22  Jose E. Marchesi  <jemarch@gnu.org>

	* emacs/poke.el (poke-complete-process): Define.
	(poke-complete): Likewise.
	(poke-complete-handle-cmd): Likewise.
	(poke-repl): Depends on poke-complete.
	(poke-exit): Take care of *poke-complete*.

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

	* poked/poked.pk (plet_autocomplete): New function.
	(PLET_AUTOCMPL_IDENT): New constant.
	(PLET_AUTOCMPL_IOS): Likewise.
	(__poked_autocmpl_kind): New variable.
	(__poked_autocmpl_string): Likewise.
	(__poked_autocmpl_p): Likewise.
	(__poked_autocmpl_reset): New function.
	* poked/poked.c (bufb_append): Add missing const type qualifier.
	(poked_autocmpl_send_one): New function to send auto-completion
	for a string.
	(poked_autocmpl_send): New function to send all requested
	auto-completions.
	(poked_compile): Process auto-completions requested from Poke.
	Remove input channel for auto-completion.

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

	* poked/usock.h (USOCK_CHAN_IN_AUTOCMPL): New macro.
	(USOCK_CHAN_OUT_AUTOCMPL): Likewise.
	* poked/poked.c (AUTOCMPL_IDENT): New macro.
	(AUTOCMPL_IOS): Likewise.
	(struct bufb): New struct for byte buffer.
	(bufb_init): New function.
	(bufb_realloc): Likewise.
	(bufb_append): Likewise.
	(bufb_free): Likewise.
	(poked_compile): New function. Move all compilation logic to this
	function.
	(main): Add auto-completion channel.

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

	* libpoke/libpoke.c (struct _pk_compiler): Add auto completion
	machinery data.
	(pk_compiler_new_with_flags): s/malloc/calloc/.
	(complete_attribute): Remove global state, use `pkc`.
	(complete_struct): Likewise.
	(complete_decl): Likewise.
	(pk_ios_completion_function): Likewise.

2022-03-22  Jose E. Marchesi  <jemarch@gnu.org>

	* emacs/poke.el (poke-repl-end-of-iteration): Echo output in the
	minibuffer instead of the repl buffer if no repl mark is found.

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

	* poked/poked.pk (poked_after_eval_hook): Rename to
	`poked_after_cmd_hook`.

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

	* poked/poked.pk (vu): Add prefix `plet_`.
	(vu_highlight): Likewise.
	(treevu_sct): Likewise.
	(treevu): Likewise.
	(disasm): Likewise.

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

	* poked/poked.pk (__chan_send_p): Add `poked` prefix.
	(__chan_send_chan): Likewise.
	(__chan_send_buf): Likewise.
	(__chan_send_reset): Likewise.
	(chan_send): Likewise.
	(__err_send): Use `poked_chan_send`.
	(poked_ehandler): Likewise.
	(treevu_sct): Likewise.
	(disasm): Likewise.
	* poked/poked.c (poked_buf_send): Update.
	(main): Likewise.

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

	* poked/poked.c (main): Call `__poked_run_after_eval_hooks` even
	if the statement is not expression.

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

	* poked/poked.c (poked_init): Remove dead code.

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

	* poked/poked.pk (Poked_Hook): New type.
	(poked_after_eval_hook): New variable for saving hooks.
	(__poked_run_after_eval_hooks): New function.
	* poked/poked.c (main): Call `__poked_run_after_eval_hooks` after
	compiling statement.

2022-03-21  Jose E. Marchesi  <jemarch@gnu.org>

	* poke-el/poke-el.texi: New file.
	* poke-el/COPYING: Likewise.
	* poke-el/README: Likewise.

2022-03-21  Jose E. Marchesi  <jemarch@gnu.org>

	* emacs/poke.el (poke-ios-populate): Reverse list of IOS before
	printing.

2022-03-21  Jose E. Marchesi  <jemarch@gnu.org>

	* emacs/poke.el (poke-repl-input-sender): Avoid race condition in
	repl handling.

2022-03-18  Jose E. Marchesi  <jemarch@gnu.org>

	* emacs/poke.el (poke-edit-1): Use tree-mode when formatting
	element values.
	(poke-exit): Handle *poke-edit*.

2022-03-17  Jose E. Marchesi  <jemarch@gnu.org>

	* emacs/poke.el (poke-maps): Define.
	(poke-exit): Handle *poke-maps*.
	(poke-repl-mode-map): Adds keybind for poke-maps.
	(poke-maps-mode): Define.
	(poke-maps-mode-map): Likewise.

2022-03-17  Jose E. Marchesi  <jemarch@gnu.org>

	* emacs/poke.el (poke-setting-pretty-print): New variable.
	(poke-setting-omode): Likewise.
	(poke-settings-create-widgets): New function.
	(poke-settings): Likewise.
	(poke-exit): Kill buffer *poke-settings*.

2022-03-16  Jose E. Marchesi  <jemarch@gnu.org>

	* emacs/poke.el (poke-vu-cmd-prev-line): Renamed to feature cmd in
	the name.
	(poke-vu-cmd-page-down): Likewise.
	(poke-vu-cmd-page-up): Likewise.
	(poke-vu-cmd-goto-byte): Likewise.
	(poke-vu-mode): Adjust accordingly.
	(poke-vu-goto-byte): New function.
	(poke-vu-cmd-goto-byte): Use poke-vu-goto-byte.

2022-03-16  Jose E. Marchesi  <jemarch@gnu.org>

	* emacs/poke.el (poke-vu-refresh): Ask for the right number of
	lines, taking the header and modeline into account.
	(poke-repl): Do not show banner if repl is already alive.

2022-03-16  Jose E. Marchesi  <jemarch@gnu.org>
2022-03-16  Mohammad-Reza Nabipoor  <mnabipoor@gnu.org>

	* libpoke/ios-dev-stream.c (ios_dev_stream_pread): Fix call to
	fread.

2022-03-15  Jose E. Marchesi  <jemarch@gnu.org>

	* poked/pk-dump-minimal.pk: Print in larger chunks.

2022-03-15  Jose E. Marchesi  <jemarch@gnu.org>

	* emacs/poke.el (poke-make-pokelet-process-new): Get unibyte input
	in the pokelet processes.

2022-03-15  Jose E. Marchesi  <jemarch@gnu.org>

	* poked/pk-dump-minimal.pk: Minimize pokelet commands when dumping
	bytes.

2022-03-15  Jose E. Marchesi  <jemarch@gnu.org>

	* emacs/poke.el: Update version to 2.1.
	(poke-repl-cmd-goto-ios): Define.
	(poke-repl-mode-map): Likewise.

2022-03-15  Jose E. Marchesi  <jemarch@gnu.org>

	* emacs/poke.el (poke-ios-overlay): Define.
	(poke-ios-update-overlay): Likewise.
	(poke-ios-mode-map): Register keys for poke-ios-cmd-next and
	poke-ios-cmd-prev.
	(poke-ios-cmd-next): Define.
	(poke-ios-cmd-prev): Likewise.

2022-03-14  Jose E. Marchesi  <jemarch@gnu.org>

	* libpoke/std.pk (openset): Define.
	* doc/poke.texi (openset): New section.
	* testsuite/poke.pkl/open-set-1.pk: New test.
	* testsuite/Makefile.am (EXTRA_DIST): Add new test.

2022-03-14  Jose E. Marchesi  <jemarch@gnu.org>

	* configure.ac: Remove checks for json-c and
	machine-interface stuff.
	* DEPENDENCIES: Remove dependency on json-c.
	* poke/pk-mi.h: Likewise.
	* poke/pk-mi.c (pk_mi): Likewise.
	* poke/pk-mi*.[ch]: Remove.
	* poke/poke.c (print_help): Remove --help output for the machine
	interface.
	(parse_args_1): Do not handle --mi.
	(main): Do not enter the MI.

	* poke/Makefile.am: Remove MI-related stuff.
	* testsuite/Makefile.am: Likewise.
	* testsuite/poke.mi-json: Remove directory and tests.
	* doc/poke.texi (The Machine-Interface): Remove node.

2022-03-14  Jose E. Marchesi  <jemarch@gnu.org>

	* libpoke/pkl-env.c (_decl): Do not allow re-defining immutable
	declarations.
	* libpoke/pkl-rt.pk: Mark declarations as immutable.
	* libpoke/pkl-tab.y: Allow IMMUTABLE declarations at the
	top-level.
	* libpoke/pkl-ast.c (pkl_ast_make_decl): Initialize immutable_p to
	0.
	(pkl_ast_print_1): Print immutable_p.
	* libpoke/pkl-ast.h (PKL_AST_DECL_IMMUTABLE_P): Define.
	(struct pkl_ast_decl): New field `immutable_p'.
	* libpoke/pkl-tab.y: New token IMMUTABLE.
	* libpoke/pkl-lex.l: Handle __IMMUTABLE__.
	* testsuite/poke.pkl/immutable-func-1.pk: Likewise.
	* testsuite/poke.pkl/immutable-diag-2.pk: Likewise.
	* testsuite/poke.pkl/immutable-diag-1.pk: New test.
	* testsuite/Makefile.am (EXTRA_DIST): Add new tests.

2022-03-14  Jose E. Marchesi  <jemarch@gnu.org>

	* emacs/poke.el (poke-exit): Handle *poke-ios*.
	(poke): Create *poke-ios*.
	(poke-repl-set-prompt): Fixed to not leave a spurious prompt.
	(poke-elval-init-pk): Remove trace.

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

	* poked/poked.pk (__chan_send_chan): Changed to array.
	(__chan_send_buf): Likewise.
	(__chan_send_reset): Update.
	(chan_send): Push data and channel to buffer array.
	(__err_send): Remove comment.
	* poked/poked.c (poked_buf_send_one): New function to send a single
	buffer to a channel.
	(poked_buf_send): Changed to support array of buffers.

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

	* poked/poked.c (poked_init): Define `poked_libpoke_version`
	Poke variable.

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

	* poked/poked.c (struct poked_options): New struct to keep options.
	(poked_options): Global variable to keep options.
	(poked_options_init): Parse program arguments and fill
	`poked_options`.
	(poked_help): Show help.
	(main): Print socket path in the beginning; be verbose only in
	debug mode.
	(tif_puts): Print on stdout only in debug mode.
	(tif_printf): Likewise.
	(poked_init): Print debugging-related info only in debug mode.

2022-03-14  Jose E. Marchesi  <jemarch@gnu.org>

	* emacs/poke.el (poke-pk): Convey the IO space size through
	poke-ios-open.

2022-03-14  Jose E. Marchesi  <jemarch@gnu.org>

	* emacs/poke.el (poke-repl-default-prompt): Define.
	(poke-repl-prompt): Make var.
	(poke-pk): Define poke_el_ios_set and install it in the ios_set
	hook.
	(poke-ios-close): Restore default prompt when there are no more
	open IO spaces.
	(poke-ios-set): Define.
	(poke-repl-set-prompt): Define.
	(poke-vu-erase): Define.

2022-03-14  Jose E. Marchesi  <jemarch@gnu.org>

	* libpoke/pkl-rt.pk (ios_set_hook): New hook.
	(_pkl_run_ios_set_hook): New function.
	* libpoke/pkl-gen-builtins.pks (builtin_open): Call the ios_set
	hook whenever appropriate.
	(builtin_set_ios): Likewise.
	* testsuite/poke.pkl/ios-hook-set-1.pk: New test.
	* testsuite/poke.pkl/ios-hook-set-2.pk: Likewise.
	* testsuite/Makefile.am (EXTRA_DIST): Add new tests.
	* doc/poke.texi (IO Space Hooks): Document ios_set_hook.

2022-03-14  Jose E. Marchesi  <jemarch@gnu.org>

	* emacs/poke.el (poke-ios-set-ios): Define.
	(poke-ios-mode-map): Likewise.

2022-03-14  Jose E. Marchesi  <jemarch@gnu.org>

	* emacs/poke.el (tabulated-list): Require tabulated-list.
	(poke-ios-mode): Define.
	(poke-ios-populate): Likewise.
	(poke-ios): Likewise.

2022-03-14  Jose E. Marchesi  <jemarch@gnu.org>

	* emacs/poke.el (poke-ios-list): New variable.
	(poke-pk): Define poke_el_ios_open and poke_el_ios_close.
	(poke-ios-alist): Define.
	(poke-ios-open): Likewise.
	(poke-ios-close): Likewise.
	(poke): Iniitalize poke-ios-alist.
	(poke-exit): Ask before exiting if there are open IO spaces.

2022-03-14  Jose E. Marchesi  <jemarch@gnu.org>

	* emacs/poke.el (poke-styling-faces): Handle styling classes
	"error" and "warning".
	(poke-warning-face): Define.
	(poke-error-face): Likewise.
	(poke_el_banner): Define and invoke at startup.
	* .x-sc_unmarked_diagnostics: Add emacs/poke.el.

2022-03-14  Jose E. Marchesi  <jemarch@gnu.org>

	* libpoke/pkl-rt.pk (IOS_Hook_Open_Fn): New type.
	(IOS_Hook_Close_Fn): Likewise.
	(ios_open_hook): New variable.
	(ios_close_hook): Likewise.
	(ios_close_pre_hook): Likewise.
	(_pkl_run_ios_open_hook): New function.
	(_pkl_run_ios_close_pre_hook): Likewise.
	(_pkl_run_ios_close_hook): Likewise.
	* libpoke/pkl-gen-builtins.pks (builtin_open): Call functions in
	the IOS open hook.
	(builtin_close): Call functions in the IOS close and close_pre
	hooks.
	* testsuite/poke.pkl/ios-hook-open-1.pk: New test.
	* testsuite/poke.pkl/ios-hook-open-2.pk: Likewise.
	* testsuite/poke.pkl/ios-hook-close-1.pk: Likewise.
	* testsuite/poke.pkl/ios-hook-close-pre-2.pk: Likewise.
	* testsuite/Makefile.am (EXTRA_DIST): Add new tests.
	* doc/poke.texi (IO Space Hooks): New section.

2022-03-14  Jose E. Marchesi  <jemarch@gnu.org>

	* testsuite/poke.libpoke/decls.c: Do not include unused header
	files.
	* libpoke/pvm.jitter: Wrap ios_handler.

2022-03-14  Jose E. Marchesi  <jemarch@gnu.org>

	* libpoke/pkl-ast.h (PKL_AST_BUILTIN_IOHANDLER): Define.
	* libpoke/pkl-rt.pk (iohandler): New function.
	* libpoke/pkl-tab.y: New token BUILTIN_IOHANDLER.
	* libpoke/pkl-lex.l: Handle __PKL_BUILTIN_IOHANDLER__.
	* libpoke/pkl-gen.c (pkl_gen_ps_comp_stmt): Handle
	PKL_AST_BUILTIN_IOHANDLER.
	* libpoke/pkl-insn.def: New instruction PKL_INSN_IOHANDLER.
	* libpoke/pvm.jitter (iohandler): New instruction.
	* libpoke/pkl-gen-builtins.pks (builtin_iohandler): New macro.
	* testsuite/poke.pkl/iohandler-1.pk: New test.
	* testsuite/Makefile.am (EXTRA_DIST): Add new test.
	* doc/poke.texi (iohandler): New section.

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

	* libpoke/pkl-diag.c (pkl_detailed_location): Fix printing
	diagnostics for codes in buffers.

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

	* poked/poked.pk (poked_ehandler): Remove extra newline.

2022-03-12  Jose E. Marchesi  <jemarch@gnu.org>

	* emacs/poke.el (poke-pk): Define.
	(poke): Evaluate poke-pk at startup.

2022-03-12  Jose E. Marchesi  <jemarch@gnu.org>

	* emacs/poke.el (poke-elval-process): Define.
	(poke-exit): Handle poke-elval.
	(poke): Likewise.
	(poke-vu-filter): Define.
	(poke-elval-state-waiting-for-length): Define.
	(poke-elval-state-waiting-for-msg): Likewise.
	(poke-elval-state): Likewise.

2022-03-12  Jose E. Marchesi  <jemarch@gnu.org>

	* emacs/poke.el (poke-vu-output): Define.
	(poke-vu-filter): Accumulate output.
	(poke-vu): Initialize poke-vu-output.

2022-03-12  Jose E. Marchesi  <jemarch@gnu.org>

	* emacs/poke.el (poke): Better window layout.
	(poke-out-iter-string): Quote face symbol.

2022-03-12  Jose E. Marchesi  <jemarch@gnu.org>

	* emacs/poke.el (poke-exit): Simplify.
	(poke-out-filter): Remove debug code.
	(poke-debug-p): Remove.

2022-03-12  Jose E. Marchesi  <jemarch@gnu.org>

	* emacs/poke.el (poke-iter-string-face): Define.
	(poke-out-iter-string): Likewise.
	(poke-out-filter): Insert iterator separator string and update
	cursor in all windows showing *poke-out* after iterations.
	(poke-out-got-output): Define.

2022-03-12  Jose E. Marchesi  <jemarch@gnu.org>

	* emacs/poke.el (poke-set-omode): New function.
	(poke-set-pretty-print): Likewise.
	(poke-vu-next-line): Improve.
	(poke-vu-mode): Add a header line with a ruler.

2022-03-12  Jose E. Marchesi  <jemarch@gnu.org>

	* emacs/poke.el (poke-styling-faces): Fix faces names.
	(poke-out-filter): Move process marker whenever necessary.
	(poke-open-file): s/E_generic_io/E-io.

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

	* pickles/diff.pk: Load pk-table.pk.

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

	* poked/pk-dump-minimal.pk (dump): Remove classes.

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

	* poked/poked.c (VUCMD_FINISH): New macro.
	(main): Send VUCMD_FINISH to signal the end-of-vu.

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

	* poked/poked.c (VUKIND_CLEAR): s/VUKIND_/VUCMD_/.
	(VUKIND_APPEND): Likewise.
	(VUCMD_HIGHLIGHT): New macro.
	(VUCMD_FILTER): Likewise.
	(termout_vu_append): Update.
	(main): Send VUCMD_FILTER before other vu stuff.
	* poked/poked.pk (vu_ios): Remove.
	(__vu_rng): Likewise.
	(__vu_filter): New variable.
	(vu): Add two new args: `filt` and `filts`.

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

	* poked/poked.c (OUTCMD_ERR): New macro.
	* poked/poked.pk (__err_send): New function to report errors.
	(poked_ehandler): Change default error handler to use `__err_send`
	instead of `print`.

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

	* poked/usock.h (usock_out): Change the function prototype: re-order
	`kind` and `chan`; change type of `data` to `const void *`.
	* poked/usock.c (usock_out): Likewise.
	* poked/poked.c (poked_buf_send): Adapt to new function prototype.
	And remove unused variable.
	(iteration_send): Adapt to new function prototype.
	(main): Likewise.
	(tif_puts): Likewise.
	(tif_printf): Likewise.
	(tif_indent): Likewise.
	(tif_class): Likewise.
	(tif_class_end): Likewise.

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

	* poked/poked.c (main): Don't send empty EVAL msgs in the
	beginning.

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

	* poked/poked.c (OUTCMD_EVAL_BEGIN): Removed.
	(OUTCMD_EVAL_END): Removed.
	(OUTCMD_EVAL): New macro.
	(termout_eval): New function.
	(main): Print the value of Poke statement using OUTCMD_EVAL.

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

	* poked/poked.c (OUTKIND_ITER_BEGIN): s/OUTKIND_/OUTCMD_/.
	(OUTKIND_TXT): Likewise.
	(OUTKIND_ITER_END): Likewise.
	(OUTKIND_CLS_BEGIN): Likewise.
	(OUTKIND_CLS_END): Likewise.
	(OUTKIND_EVAL_BEGIN): Likewise.
	(OUTKIND_EVAL_END): Likewise.
	(termout_kind): Renamed to `termout_cmdkind`.
	(termout_restore): Adapt names.
	(termout_vu_append): Likewise.
	(iteration_send): Likewise.
	(main): Likewise.
	(tif_puts): Likewise.
	(tif_printf): Likewise.
	(tif_indent): Likewise.
	(tif_class): Likewise.
	(tif_class_end): Likewise.

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

	* poked/usock.h (USOCK_CHAN_OUT_CMD): Removed.
	* poked/poked.c (OUTKIND_EVAL_BEGIN): New macro.
	(OUTKIND_EVAL_END): Likewise.
	(termout_cmd): Removed.
	(iteration_send): Removed OUT_CMD chan.
	(tif_class): Likewise.
	(tif_class_end): Likewise.
	(main): Mark begin/end of statement output using EVAL_BEGIN
	and EVAL_END.

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

	* pickles/ios.pk: Remove references to the hyperlinks
	infrastructure, which is part of poke.
	* poke/pk-dump.pk: Adapt accordingly.

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

	* poked/poked.c (OUTKIND_CLS_BEGIN): New macro.
	(OUTKIND_CLS_END): Likewise.
	(tif_class): Send class data to pokelets (OUT_OUT and OUT_CMD chans).
	(tif_class_end): Likewise.

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

	* poked/poked.pk (chan_send): Remove length prefix. Adding length
	prefix is the responsibility of usock library.
	* poked/poked.c (poked_buf_send): Fix to not expect length prefix
	in Poke array.
	* poked/usock.c (usock_out): Fix the prefix and data length.

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

	* poked/poked.pk (__Disasm): Change type of `adr` to offset.
	(disasm): Likewise.

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

	* poked/poked.c (poked_buf_send): Check exception after `pk_call`.
	(main): Likewise.

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

	* poked/poked.c (termout_chan): Renamed from `out_chan`.
	(termout_kind): Renamed from `out_kind`.
	(termout_restore): New function to restore to terminal output to
	OUT_OUT channel (normal text mode).
	(termout_vu_append): New function to change the terminal output to
	OUT_VU channel (append mode).
	(termout_cmd): New function to change the terminal output to OUT_CMD
	channel (normal text mode).
	(iteration_send): New function to send iteration number to both
	OUT_OUT and OUT_CMD channels.
	(iteration_begin): New function to send iteration-begin command.
	(iteration_end): New function to end iteration-end command.
	(main): Send output of `pk_print_val` to OUT_CMD channel.
	* poked/usock.h (USOCK_CHAN_OUT_CMD): New macro.

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

	* poked/poked.c (OUTKIND_ID): Remove macro.
	(OUTKIND_ITER_BEGIN): New macro.
	(OUTKIND_ITER_END): Likewise.
	(main): Also signal the end of iteration to the pokelets.

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

	* poked/poked.c (poked_init): Handle `POKEDATADIR`, `POKEPICKLESDIR`,
	`POKEDAPPDIR` env vars.
	* run.in (POKEDAPPDIR): Define.

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

	* poked/poked.c (main): Add `poked_restart` support.
	* poked/poked.pk (poked_restart): New function.
	(__poked_restart_p): New variable.

2022-03-10  Jose E. Marchesi  <jemarch@gnu.org>

	* libpoke/libpoke.h: Indentation and other visual improvements.

2022-03-10  Jose E. Marchesi  <jemarch@gnu.org>

	* libpoke/libpoke.c (my_decl_map_fn): Always return PK_NULL as
	`value' for type declarations.
	* libpoke/libpoke.h: Add description of the arguments got by the
	pk_map_decl_fn callback.
	* testsuite/poke.libpoke/decls.c: New file.
	* testsuite/poke.libpoke/Makefile.am (decls_SOURCES): Define.
	(decls_CPPFLAGS): Likewise.
	(decls_CFLAGS): Likewise.
	(decls_LDADD): Likewise.
	(check_PROGRAMS): Add decls.
	* testsuite/poke.libpoke/libpoke.exp: Run the decls tests.

2022-03-10  Jose E. Marchesi  <jemarch@gnu.org>

	* pickles/elf-64.pk (Elf64_Shdr): sh_entsize is an offset in
	bytes, not bits.
	* pickles/elf-32.pk (Elf32_Shdr): Likewise.

2022-03-10  Jose E. Marchesi  <jemarch@gnu.org>

	* libpoke/libpoke.h: Clarify that pk_array_type_bound always
	returns PK_NULL at the time being.

2022-03-09  Jose E. Marchesi  <jemarch@gnu.org>

	* libpoke/std.pk (eoffset): New function.
	* doc/poke.texi (eoffset): New section.
	(Values Functions): Likewise.

2022-03-09  Jose E. Marchesi  <jemarch@gnu.org>

	* libpoke/pkl-tab.y: Define tokens APUSH and APOP, and add rules
	for the operators.
	* libpoke/pkl-lex.l: Rules for APUSH and APOP tokens.
	* libpoke/pkl-ops.def: Define operators PKL_AST_OP_APUSH and
	PKL_AST_OP_APOP.
	* libpoke/pkl-typify.c (pkl_typify1_ps_op_apush): New handler.
	(pkl_typify1_ps_op_apop): Likewise.
	(pkl_phase_typify1): Register new handlers.
	* libpoke/pkl-promo.c (pkl_promo_ps_op_apush): New handler.
	(pkl_phase_promo): Register new handler.
	* libpoke/pkl-gen.c (pkl_gen_ps_op_apush): New handler.
	(pkl_gen_ps_op_apop): Likewise.
	(pkl_phase_gen): Register new handlers.
	* testsuite/poke.pkl/apush-diag-1.pk: New test.
	* testsuite/poke.pkl/apop-diag-1.pk: Likewise.
	* testsuite/poke.pkl/apush-diag-2.pk: Likewise.
	* testsuite/poke.pkl/apush-diag-3.pk: Likewise.
	* testsuite/poke.pkl/apush-1.pk: Likewise.
	* testsuite/poke.pkl/apush-2.pk: Likewise.
	* testsuite/poke.pkl/apop-1.pk: Likewise.
	* testsuite/poke.pkl/apop-2.pk: Likewise.
	* testsuite/Makefile.am (EXTRA_DIST): Add new tests.
	* doc/poke.texi (Arrays as Stacks): New section.

2022-03-08  Jose E. Marchesi  <jemarch@gnu.org>

	* pickles/diff.pk: Document diff_structured.

2022-03-08  Jose E. Marchesi  <jemarch@gnu.org>

	* pickles/Makefile.am (dist_pickles_DATA): Add diff.pk.
	(dist_pickles_DATA): Add pk-table.pk.
	* pickles/diff.pk: New file.
	* pickles/pk-table.pk: Moved from poke/.
	* poke/pk-diff.pk: Factor functionality out to diff_structured and
	call it.
	* poke/Makefile.am (dist_app_DATA): Remove pk-table.pk.

2022-03-08  Jose E. Marchesi  <jemarch@gnu.org>

	* pickles/Makefile.am (dist_pickles_DATA): Add ios.pk.
	* pickles/ios.pk: New file.
	* poke/pk-dump.pk (dump): Factor functionality out to
	ios_dump_bytes and call it.

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

	* libpoke/pkl-trans.c (pkl_trans1_ps_format): Fix format string
	arg suffix when there's a %%.
	* testsuite/poke.pkl/format-40.pk: New test.
	* testsuite/poke.pkl/format-41.pk: Likewise.
	* testsuite/poke.pkl/format-42.pk: Likewise.
	* testsuite/Makefile.am (EXTRA_DIST): Update.

2022-03-08  Jose E. Marchesi  <jemarch@gnu.org>

	* etc/poke.rec (Support nested integral structs): Removed as done.
	(`load' doesn't load after an error): Likewise.
	(Add an elisp MI interface to poke.el): Removed as wont happen.
	(Auto-complete value attributes): Removed as done.
	(Use json-c instead of tcllib json modules in the GUI): Removed as
	wont happen.
	(Auto-complete yes|no in commands): Removed as done.
	(support references to values in the MI protocol): Removed as wont
	happen.

2022-03-08  Jose E. Marchesi  <jemarch@gnu.org>

	* configure.ac: Remove gl-poked/Makefile.
	* Makefile.am (ACLOCAL_AMFLAGS): Do not include m4/poked.
	(SUBDIRS): Remove gl-poked.
	* bootstrap.conf (ACLOCAL_FLAGS): Likewise.
	Remove poked_modules.
	* poked/Makefile.am (poked_LDADD): Use the gnulib in gl/.

2022-03-08  Jose E. Marchesi  <jemarch@gnu.org>

	* libpoke/libpoke.c (pk_call): Expose exit_exception in the
	interface.
	* libpoke/libpoke.h: Change prototype accordingly.
	* poke/pk-cmd-help.c (pk_cmd_help): Adapt accordingly.
	* poke/pk-cmd-set.c (pk_cmd_set_dump): Likewise.
	(pk_cmd_set): Likewise.
	(pk_cmd_set): Likewise.
	* poke/pk-hserver.c (pk_hserver_get_token): Likewise.
	(pk_hserver_token_p): Likewise.
	(pk_hserver_cmd): Likewise.
	(read_from_client): Likewise.
	(pk_hserver_make_hyperlink): Likewise.
	* poke/poke.c (poke_handle_exception): Likewise.
	* poked/poked.c (poked_buf_send): Likewise.
	(main): Likewise.
	(poked_free): Likewise.

2022-03-08  Jose E. Marchesi  <jemarch@gnu.org>

	* pickles/leb128.pk (LEB128.value): Really allow up to 64-bit
	integers and fix calculation of the return value.
	(ULEB128.value): Likewise.
	Reported and fixed by bjorn3 in the IRC channel.

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

	* poked/usock.c (usock_client_step): Handle zero-length payloads.

2022-03-07  Daiki Ueno  <ueno@gnu.org>

	* pickles/asn1-ber.pk (BER_Identifier): Fix long-form tag number
	handling.
	(BER_Length): Fix long-form definite length calculation.

2022-03-07  Jose E. Marchesi  <jemarch@gnu.org>

	* .x-sc_bindtextdomain: Add poked/*.
	* .x-sc_prohibit_strncpy: Likewise.
	* .x-sc_prohibit_strcmp: New file.
	* etc/hacking.org: Add Mohammad-Reza Nabipoor as maintainer of
	poked/*.
	* poked/usock.c: Do not include signal.h.

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

	* poked/README.md: Remove file.

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

	* poked/Makefile.am: New file.
	* poked/poked.c: Import file and integrate.
	* poked/poked.pk: Likewise.
	* poked/usock.c: Likewise.
	* poked/usock.h: Likewise.
	* poked/usock-buf.c: Likewise.
	* poked/usock-buf.h: Likewise.
	* poked/usock-buf-priv.h: Likewise.
	* bootstrap.conf (poked_modules): Define.
	(buildreq): Create gl-poked.
	* Makefile.am (SUBDIRS): Add poked.
	* configure.ac: Add poked/Makefile.

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

	* common/pk-utils.c: Do not depend on gettext.

2022-02-26  Jose E. Marchesi  <jemarch@gnu.org>

	* libpoke/pkl-gen-attrs.pks (attr_ios): Add explicative message in
	raised exception.
	(attr_size): Likewise.
	(attr_offset): Likewise.
	(attr_eoffset): Likewise.
	(attr_esize): Likewise.
	(attr_ename): Likewise.
	(attr_elem): Likewise.

2022-02-26  Jose E. Marchesi  <jemarch@gnu.org>

	* testsuite/poke.pkl/array-type-diag-2.pk: New test.

	* libpoke/pkl-anal.c (pkl_anal1_ps_type_array): New handler.
	(pkl_phase_anal1): Install handler.

2022-02-26  Jose E. Marchesi  <jemarch@gnu.org>

	* poke/pk-dump.pk: s/initially/currently command help string.

2022-02-24  Jose E. Marchesi  <jemarch@gnu.org>

	* maps/Makefile.am: Revert last change.
	* poke/poke.c (initialize): Put maps back in pkgdatadir.
	* poke/pk-map.pk: Likewise.

2022-02-24  Jose E. Marchesi  <jemarch@gnu.org>

	* poke/Makefile.am (appdir): Define.
	(dist_app_DATA): Rename from dist_pkgdata_DATA.
	* doc/Makefile.am: Install poke's docfiles in appdir.
	* etc/Makefile.am: Likewise.
	* maps/Makefile.am (mapsdir): Likewise.
	* libpoke/pkl-rt.pk: Do not set picklesdir.
	* poke/poke.h: Extern for poke_appdir.
	* poke/poke.c (poke_appdir): New variable.
	(initialize): Honor POKEAPPDIR and set poke_appdir, then
	set load_path.
	* run.in (POKEAPPDIR): Define.
	* testsuite/Makefile.am: Likewise.

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

	* poke/pk-diff.pk (sdiff): Improve support for non-byte values.
	* testsuite/poke.cmd/sdiff-12.pk: New test.
	* testsuite/Makefile.am (EXTRA_DIST): Add new test.

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

	* libpoke/pkl-gen.c (pkl_gen_pr_type_array): Make sure the
	constructed array value has a writer.
	* testsuite/poke.map/ass-map-26.pk: New test.
	* testsuite/Makefile.am (EXTRA_DIST): Add new test.

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

	* poke/pk-diff.pk: Factor a bit.

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

	* poke/pk-diff.pk (sdiff): Try to emit thunk lines for composite
	values in which non-byte elements were found.
	(sdiff_addrem): Likewise.
	* testsuite/poke.cmd/sdiff-9.pk: New test.
	* testsuite/poke.cmd/sdiff-10.pk: Likewise.
	* testsuite/poke.cmd/sdiff-11.pk: Likewise.
	* testsuite/Makefile.am (EXTRA_DIST): Add new tests.

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

	* poke/pk-table.pk (Pk_Table_Printer): New type.
	(Pk_Table): New field `printer'.
	(pk_table_default_printer): New function.
	(Pk_Table.print_table): Use the printer.

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

	* doc/poke.texi (sdiff): Sketch of section.
	* poke/Makefile.am (dist_pkgdata_DATA): Add pk-diff.pk.
	* poke/pk-diff.pk: New file.
	* poke/pk-cmd.pk: Load pk-diff.pk.
	* etc/poke-dark.css (.diff-plus): New class.
	(.diff-minus): Likewise.
	(.diff-thunk-header): Likewise.
	* etc/poke-bright.css (.diff-minus): Likewise.
	(.diff-minus): Likewise.
	(.diff-thunk-header): Likewise.
	* testsuite/poke.cmd/sdiff-1.pk: New test.
	* testsuite/poke.cmd/sdiff-2.pk: Likewise.
	* testsuite/poke.cmd/sdiff-3.pk: Likewise.
	* testsuite/poke.cmd/sdiff-4.pk: Likewise.
	* testsuite/poke.cmd/sdiff-5.pk: Likewise.
	* testsuite/poke.cmd/sdiff-6.pk: Likewise.
	* testsuite/poke.cmd/sdiff-7.pk: Likewise.
	* testsuite/poke.cmd/sdiff-8.pk: Likewise.
	* testsuite/poke.repl/repl.exp: Update test.
	* testsuite/Makefile.am (EXTRA_DIST): Add new tests.

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

	* libpoke/pkl-tab.y: Fix precedence of EXCOND.

2022-02-18  Jose E. Marchesi  <jemarch@gnu.org>

	* pickles/elf-64.pk: Fix IOS in in-method mappings.

2022-02-16  Jose E. Marchesi  <jemarch@gnu.org>

	* poke/pk-dump.pk (dump): Fix start of ASCII dump when :from is
	used.
	* testsuite/poke.cmd/dump-13.pk (pk_dump_ascii): New test.
	* testsuite/Makefile.am (EXTRA_DIST): Add new test.

2022-02-16  Jose E. Marchesi  <jemarch@gnu.org>

	* poke/pk-cmd-ios.c (pk_cmd_mem): Create uniquely named memory IOS
	if no name is specified in .mem.

2022-02-16  Jose E. Marchesi  <jemarch@gnu.org>

	* poke/poke.c (print_help): Do not use pk-term.
	(pk_print_version): Likewise.
	(parse_args_2): Likewise.
	(pk_fatal): Likewise.
	(parse_args_1): Handle HELP_ARG and VERSION_ARG here.
	(parse_args_2): ... instead of here.

2022-02-15  Jose E. Marchesi  <jemarch@gnu.org>

	* gui/: Remove.
	* bootstrap.conf (gui_modules): Remove.
	(bootstrap_post_import_hook): Do not create gl-guil.
	(ACLOCAL_FLAGS): Do not include m4/gui.
	* configure.ac: Do not call gui_EARLY.
	Do not call gui_INIT.
	Remove Tcl/Tk checks.
	* run.in: Do not set gui-related paths.
	* DEPENDENCIES: Remove section on Tcl and Tk.
	* .gitignore: Remove gui-related entries.
	* Makefile.am (ACLOCAL_AMFLAGS): Do not include m4/gui.
	(SUBDIRS): Remove gui and gl-gui directories.

2022-02-15  Jose E. Marchesi  <jemarch@gnu.org>

	* libpoke/libpoke.h: Prototype for pk_type_name.
	* libpoke/pk-val.c (pk_type_name): New function.

2022-02-15  Jose E. Marchesi  <jemarch@gnu.org>

	* poke/pk-save.pk: Do not capitalize summary in help entry.
	* poke/pk-extract.pk: Likewise.
	* poke/pk-copy.pk: Likewise.
	* poke/pk-scrabble.pk: Likewise.

2022-02-15  Jose E. Marchesi  <jemarch@gnu.org>

	* libpoke/pkl-attrs.def: Remove PKL_AST_ATTR_ALIGNMENT.
	* libpoke/pkl-gen.c (pkl_gen_ps_op_attr): Do not handle the
	'alignment attribute.
	* libpoke/pkl-typify.c (pkl_typify1_ps_attr): Likewise.
	* testsuite/poke.repl/repl.exp: Update tests.

2022-02-15  Jose E. Marchesi  <jemarch@gnu.org>

	* libpoke/pkl-typify.c (pkl_typify1_ps_attr): Emit
	compilation-time errors for some attributes.
	* testsuite/poke.pkl/attr-offset-diag-4.pk: New test.
	* testsuite/poke.pkl/attr-ename-diag-1.pk: Likewise.
	* testsuite/poke.pkl/attr-esize-diag-1.pk: Likewise.
	* testsuite/poke.pkl/attr-eoffset-diag-1.pk: Likewise.
	* testsuite/poke.pkl/attr-ename-arr-5.pk: Remove test.
	* testsuite/poke.pkl/attr-esize-5.pk: Likewise.
	* testsuite/poke.pkl/attr-eoffset-5.pk: Likewise.

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

	* doc/poke.texi (Integer Attributes): Update accordingly.
	(Offset Attributes): Likewise.

	* libpoke/pkl-typify.c (pkl_typify1_ps_attr): Allow using 'length
	in any kind of value.
	* testsuite/poke.pkl/attr-length-12.pk: New test.
	* testsuite/poke.pkl/attr-length-13.pk: Likewise.
	* testsuite/Makefile.am (EXTRA_DIST): Add new tests.

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

	* libpoke/pkl-gen-attrs.pks (attr_elem): Raise E_elem if the
	referred element is an absent field.
	* testsuite/poke.pkl/attr-elem-5.pk: New test.
	* testsuite/Makefile.am (EXTRA_DIST): Add new test.

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

	* libpoke/pkl-gen-attrs.pks (attr_ename): Do not print . before [
	in array element names.
	(attr_esize): Support absent fields in structs.
	* testsuite/poke.pkl/attr-esize-6.pk: New test.
	* testsuite/poke.pkl/attr-esize-7.pk: Likewise.
	* testsuite/poke.pkl/attr-ename-arr-1.pk: Update test.
	* testsuite/poke.pkl/attr-ename-arr-3.pk: Likewise.
	* testsuite/poke.pkl/attr-ename-arr-2.pk: Likewise.
	* testsuite/Makefile.am (EXTRA_DIST): Add new tests.

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

	* libpoke/pkl-attrs.def: New attribute PKL_AST_ATTR_ELEM.
	* libpoke/pkl-anal.c (pkl_anal1_ps_op_attr): Handle ELEM
	attribute.
	* libpoke/pkl-typify.c (pkl_typify1_ps_attr): Likewise.
	* libpoke/pkl-promo.c (pkl_promo_ps_op_attr): Likewise.
	* libpoke/pkl-gen.c (pkl_gen_ps_op_attr): Likewise.
	* libpoke/pkl-gen-attrs.pks (attr_elem): New macro.
	* testsuite/poke.pkl/attr-diag-5.pk: New test.
	* testsuite/poke.pkl/attr-diag-6.pk: Likewise.
	* testsuite/poke.pkl/attr-elem-3.pk: Likewise.
	* testsuite/poke.pkl/attr-elem-2.pk: Likewise.
	* testsuite/poke.pkl/attr-elem-1.pk: Likewise.
	* testsuite/poke.pkl/attr-elem-4.pk: Likewise.
	* doc/poke.texi (Array Attributes): Document 'elem.
	(Struct Attributes): Likewise.
	* testsuite/Makefile.am (EXTRA_DIST): Add new tests.

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

	* libpoke/pkl-attrs.def: New attributes EOFFSET, ESIZE and ENAME.
	* libpoke/pkl-ast.c (pkl_ast_make_binary_exp): New function.
	* libpoke/pkl-tab.y: Rule for attributes with one argument.
	* libpoke/pkl-ast.h (struct pkl_ast_exp): Allow three operands.
	* libpoke/pkl-pass.c (pkl_do_pass_1): Traverse all expression
	operands.
	* libpoke/pkl-trans.c (pkl_trans1_ps_op_attr): Handle binary
	attributes.
	* libpoke/pkl-anal.c (pkl_anal1_ps_op_attr): New handler.
	(pkl_phase_anal1): Register handler.
	* libpoke/pkl-typify.c (pkl_typify1_ps_attr): Handle new
	attributes.
	* libpoke/pkl-promo.c (pkl_promo_ps_op_attr): New handler.
	(pkl_phase_promo): Register handler.
	* libpoke/pkl-gen.c (pkl_gen_ps_op_attr): Handle EOFFSET, ESIZE
	and ENAME.
	* libpoke/pvm.jitter (tyisa): New instruction.
	(srefin): Likewise.
	* libpoke/pkl-insn.def: Define PKL_INSN_TYISA.
	Define PKL_INSN_SREFIN.
	* libpoke/pkl-gen-attrs.pks (attr_eoffset): New macro.
	(attr_eoffset): Likewise.
	(attr_ename): Likewise.
	* testsuite/poke.pkl/attr-diag-2.pk: New test.
	* testsuite/poke.pkl/attr-diag-3.pk: Likewise.
	* testsuite/poke.pkl/attr-diag-4.pk: Likewise.
	* testsuite/poke.pkl/attr-eoffset-5.pk: Likewise.
	* testsuite/poke.pkl/attr-eoffset-4.pk: Likewise.
	* testsuite/poke.pkl/attr-eoffset-3.pk: Likewise.
	* testsuite/poke.pkl/attr-eoffset-2.pk: Likewise.
	* testsuite/poke.pkl/attr-eoffset-1.pk: Likewise.
	* testsuite/poke.pkl/attr-esize-5.pk: Likewise.
	* testsuite/poke.pkl/attr-esize-4.pk: Likewise.
	* testsuite/poke.pkl/attr-esize-3.pk: Likewise.
	* testsuite/poke.pkl/attr-esize-2.pk: Likewise.
	* testsuite/poke.pkl/attr-esize-1.pk: Likewise.
	* testsuite/poke.pkl/attr-ename-arr-6.pk: Likewise.
	* testsuite/poke.pkl/attr-ename-arr-5.pk: Likewise.
	* testsuite/poke.pkl/attr-ename-arr-4.pk: Likewise.
	* testsuite/poke.pkl/attr-ename-arr-3.pk: Likewise.
	* testsuite/poke.pkl/attr-ename-arr-2.pk: Likewise.
	* testsuite/poke.pkl/attr-ename-arr-1.pk: Likewise.
	* testsuite/poke.pkl/attr-ename-union-1.pk: Likewise.
	* testsuite/poke.pkl/attr-ename-struct-1.pk: Likewise.
	* testsuite/poke.pkl/attr-ename-struct-2.pk: Likewise.
	* testsuite/poke.pkl/attr-ename-union-2.pk: Likewise.
	* doc/poke.texi (Array Attributes): Document new attributes for
	arrays.
	(Struct Attributes): Ditto for structs.
	* testsuite/Makefile.am (EXTRA_DIST): Add new tests.

2022-02-09  Jose E. Marchesi  <jemarch@gnu.org>

	* poke/pk-ios.c (pk_open_proc_maps): Use PRIx64 instead of %lx.
	* libpoke/pkl-typify.c (pkl_typify1_ps_type_struct): Use PRIu64
	instead of %lu.

2022-02-08  Jose E. Marchesi  <jemarch@gnu.org>

	* testsuite/poke.libpoke/term-if.h (pk_term_end_class): Return 1.

2022-02-07  Jose E. Marchesi  <jemarch@gnu.org>

	* configure.ac: Bump version to 2.1.
	* NEWS: Likewise.
	* doc/gendocs_template: Likewise.

2022-02-07  Jose E. Marchesi  <jemarch@gnu.org>

	* poke/pk-cmd-ios.c (pk_cmd_sub): Use PRI* macros instead of
	explicit %-tags.
	(pk_cmd_proc): Likewise.

2022-02-06  Bruno Haible  <bruno@clisp.org>
	    Jose E. Marchesi  <jemarch@gnu.org>

	Avoid undefined behaviour on signed integer.
	* libpoke/pvm-val.h (PVM_MAKE_INT): Cast to unsigned integer before
	shifting.
	* libpoke/pvm.jitter (PVM_NEG_SIGNED): Likewise.
	(PVM_DIV_SIGNED): Likewise.
	(PVM_MOD_SIGNED): Likewise.
	* libpoke/pkl-fold.c (OP_UNARY_II): Likewise.
	(OP_BINARY_III): Likewise.

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

	* configure.ac: Bump version to 2.0.92.
	* NEWS: Update.

2022-02-05  Mohammad-Reza Nabipoor  <mnabipoor@gnu.org>

	* libpoke/pkl-ast.c (pkl_ast_type_is_complete): Fix assertion.

2022-02-05  Jose E. Marchesi  <jemarch@gnu.org>

	* libpoke/pvm.h: Prototype for pvm_ref_set_struct_cstr.
	* libpoke/libpoke.h: Prototype for pk_struct_ref_set_field_value.
	* libpoke/pk-val.c (pk_struct_ref_set_field_value): New function.
	* libpoke/pvm-val.c (pvm_ref_set_struct_cstr): Likewise.
	* testsuite/poke.libpoke/values.c
	(test_pk_struct_ref_set_field_value): New function.
	(main): Call it.

2022-02-05  Jose E. Marchesi  <jemarch@gnu.org>

	* poke/pk-cmd-def.c (PREP_REGEXP_PAYLOAD): Avoid using `regexp'
	uninitialized.
	* poke/pk-cmd-ios.c (pk_cmd_sub): Use PRIx64 instead of %lx.
	(print_info_ios): Likewise.
	(print_info_ios): Likewise.

2022-02-05  Jose E. Marchesi  <jemarch@gnu.org>

	* bootstrap.conf (gnulib_modules): Add the `getsockname' gnulib
	module.
	* poke/pk-hserver.c (pk_hserver_start): Cast the pointer to
	`struct sockaddr_in' to a pointer to a `strut sockaddr_in' before
	passing it to getsockname.  This avoids compiler warnings in some
	platforms.

2022-02-05  Jose E. Marchesi  <jemarch@gnu.org>

	* testsuite/lib/poke.exp (verify_exit_status): Avoid using
	lassign.

2022-02-05  Jose E. Marchesi  <jemarch@gnu.org>

	* poke/pk-cmd-def.c (print_var_decl): Pass a `match' argument to
	regexec.
	(print_fun_decl): Likewise.
	(print_type_decl): Likewise.

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

	* poke/pk-cmd-set.c (yesno_completion_function): New function.
	(set_error_on_warning_cmd): Use yesno_completion_function.
	(pk_cmd_set_init): Likewise for boolean settings in the registry.
	* testsuite/poke.repl/repl.exp (tab-completion-bool-setting-1):
	New test.
	(tab-completion-bool-setting-2): Likewise.

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

	* libpoke/libpoke.c (pk_completion_function): Handle ' before .
	* testsuite/poke.repl/repl.exp (tab-completion-attr-and-field-1):
	New test.

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

	* poke/pk-repl.c (pk_repl): Customize the readline completer
	routine.
	* libpoke/libpoke.c (pk_completion_function): Call
	complete_attribute whenever appropriate.
	(complete_attribute): New function.
	(complete_decl): Likewise.
	* testsuite/poke.repl/repl.exp (tab-completion-attribute-1): New
	test.
	(tab-completion-attribute-2): Likewise.

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

	* poke/pk-dump.pk: Document the :ios argument.
	* doc/poke.texi (dump): Mention :ios in the synopsis.

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

	* Makefile.am (AM_DISTCHECK_CONFIGURE_FLAGS): Remove.

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

	* configure.ac: Change version to 2.0.91.
	* NEWS: Likewise.

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

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

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

	* poke/poke.c (parse_args_2): Remove unused variable.

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

	* libpoke/Makefile.am (libpoke_la_SOURCES): Add
	pkl-gen-attrs.{pks,pkc}.
	(MOSTLYCLEANFILES): Add pkl-gen-attrs.pkc.tmp.
	(BUILT_SOURCES): Add pkl-gen-attrs.pkc.
	* libpoke/pkl-gen-attrs.pks: New file.
	* libpoke/pkl-gen.c: Include pkl-gen-attrs.pkc.
	(pkl_gen_ps_op_attr): Use RAS macros.
	* testsuite/poke.pkl/attr-size-22.pk: New test.
	* testsuite/Makefile.am (EXTRA_DIST): Add new test.

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

	* libpoke/pkl-trans.c (pkl_trans1_ps_op_attr): Dereference node
	property after making sure it's valid.

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

	* libpoke/pkl-trans.c (pkl_trans1_ps_op_attr): Dereference node
	property after making sure it's valid.
	* testsuite/poke.pkl/adda-diag-1.pk: New test.
	* testsuite/Makefile.am (EXTRA_DIST): Update.

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

	* libpoke/pvm.c (pvm_run): exit_exception is mandatory.
	* libpoke/pvm.h: Reflect this in docstring.
	* poke/pk-map.c (pk_map_load_parsed_map): Pass exit_exception to
	pk_compile_buffer and pk_compile_expression.
	* poke/pk-mi.c (pk_mi_dispatch_msg): Likewise.
	* libpoke/pkl.c (pkl_execute_statement): Do not replace the
	compiler's environment if executing the code resulted in an
	unhandled exception.
	(pkl_execute_buffer): Likewise.
	(pkl_execute_file): Likewise.
	(pkl_execute_expression): Likewise.
	(pkl_load_rt): Pass exit_exception to pkl_execute_file.
	(LOAD_STD): Likewise.
	(pkl_load): Likewise.
	* libpoke/libpoke.c (pk_call): Likewise.
	* testsuite/poke.libpoke/foreign-iod.c (main): Likewise.
	(TEST_IO): Likewise.
	(main): Likewise.
	* testsuite/poke.libpoke/values.c (testcase_pk_val_equal_p):
	Likewise.
	* testsuite/poke.mi-json/mi-json.c (compile_initial_poke_code):
	Likewise.
	(compile_poke_expression): Likewise.

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

	* libpoke/pkl-ast.c (pkl_ast_sizeof_type): Add case for complete
	unions.
	* testsuite/poke.pkl/sizeof-14.pk: New test.
	* testsuite/poke.pkl/sizeof-15.pk: Likewise.
	* testsuite/poke.pkl/sizeof-16.pk: Likewise.
	* testsuite/poke.pkl/sizeof-diag-2.pk: Likewise.
	* testsuite/Makefile.am (EXTRA_DIST): Update.

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

	* cfg.mk (sc_rockdabootism_missing_space): Remove syntax-check
	rule.

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

	* libpoke/pkl-gen.pks (struct_constructor): Generate array
	bounders in advance for array struct fields; these may be required
	for casts if the user provided array literals as initialization in
	the constructor.
	* libpoke/pkl-ast.c (pkl_ast_array_type_remove_bounders): Delete
	function.
	* libpoke/pkl-ast.h: ... and its prototype.
	* libpoke/pkl-gen.c (pkl_gen_pr_decl): Adapt subpassing into array
	bounder.  Set mapper_depth and constructor_depth before invoking
	RAS_FUNCTION_ARRAY_MAPPER and RAS_FUNCTION_ARRAY_CONSTRUCTOR
	respectively.
	(pkl_gen_pr_func): Add assert.
	(pkl_gen_pr_func_arg): Do not remove installed array bounders.
	(pkl_gen_pr_cast): Likewise.
	(pkl_gen_pr_type_array): Likewise.
	* testsuite/poke.pkl/ass-12.pk: New test.
	* testsuite/poke.pkl/ass-13.pk: Likewise.
	* testsuite/poke.pkl/ass-14.pk: Likewise.
	* testsuite/poke.pkl/ass-15.pk: Likewise.
	* testsuite/poke.pkl/ass-16.pk: Likewise.
	* testsuite/poke.pkl/ass-17.pk: Likewise.
	* testsuite/poke.pkl/scons-68.pk: Likewise.
	* testsuite/poke.pkl/scons-69.pk: Likewise.
	* testsuite/Makefile.am (EXTRA_DIST): Add new tests.

2022-02-01  Jose E. Marchesi  <jemarch@gnu.org>

	* man/Makefile.am: Do not build manpage if cross-compiling.

2022-02-01  Jose E. Marchesi  <jemarch@gnu.org>

	* configure.ac: Make --disable-gui the default.

2022-02-01  Jose E. Marchesi  <jemarch@gnu.org>

	* configure.ac: Define the Automake conditional CROSS_COMPILING.
	* doc/Makefile.am (poke-settings.texi): Rule to use when
	cross-compiling.

2022-02-01  Jose E. Marchesi  <jemarch@gnu.org>

	* poke/pk-term.c (pk_vprintf): Use pk_puts.

2022-02-01  Jose E. Marchesi  <jemarch@gnu.org>

	* man/Makefile.am (poke.1): Revert last change.

2022-02-01  Jose E. Marchesi  <jemarch@gnu.org>

	* man/Makefile.am (poke.1): Add -q to poke invocation.
	* doc/Makefile.am (poke-settings.texi): Likewise.

2022-02-01  Jose E. Marchesi  <jemarch@gnu.org>

	* libpoke/pkl-pass.c (pkl_call_node_handlers): Do not continue
	applying handlers to rewritten nodes, unless the rewritten node is
	explicitly restarted by the phase handler that created it.

2022-02-01  Jose E. Marchesi  <jemarch@gnu.org>

	* libpoke/pkl-pass.h: NOte that changing PKL_PASS_NODE is
	possible, but only in post-order handlers.
	* libpoke/pkl-pass.c (pkl_do_pass_1): Add assertion to make sure
	pre-order handlers do not replace the node being processed.

2022-01-31  Alfred M. Szmidt  <ams@gnu.org>

	* doc/gen-pvm-insns.sh: Try not to use hard coded location for
	bash.
	* doc/Makefile.am (pvm-insns.texi): Don't create file if the
	command to create it failed.
	(poke.text): Remove redundant mv/rm.

2022-01-30  Bruno Haible  <bruno@clisp.org>

	Update the pager automatically when the window height changes.
	* bootstrap.conf (gnulib_modules): Add sys_ioctl.
	* poke/pk-term.c: Include <signal.h>, <sys/ioctl.h>.
	(screen_lines, screen_cols): Mark as volatile.
	(update_screen_dimensions, sigwinch_handler): New functions.
	(orig_sigwinch_action): New variable.
	(install_sigwinch_handler, uninstall_sigwinch_handler): New functions.
	(pk_term_init): Make sure to get the screen dimensions. Invoke
	install_sigwinch_handler.
	(pk_term_shutdown): Invoke uninstall_sigwinch_handler.

2022-01-30  Bruno Haible  <bruno@clisp.org>

	Prefer terminfo over termcap when both are available.
	<https://lists.gnu.org/archive/html/bug-gnulib/2022-01/msg00183.html>
	* gnulib: Update to newest.
	* bootstrap.conf (gnulib_modules): Use terminfo, terminfo-h instead of
	termcap, termcap-h.
	* poke/pk-term.c: Include terminfo.h instead of termcap.h.
	(pk_term_init): Use the terminfo API if possible. Use the termcap API
	only as second choice.
	(pk_puts_paged): Don't test HAVE_TERMCAP.
	* poke/Makefile.am (poke_LDADD): Use LTLIBTERMINFO instead of
	LTLIBTERMCAP.

2022-01-30  Bruno Haible  <bruno@clisp.org>

	doc: Don't leave a broken .texi file around.
	* doc/Makefile.am (poke-settings.texi): Don't create poke-settings.texi
	if the command to create it failed.
	(MOSTLYCLEANFILES): Update.

2022-01-30  Sergio Durigan Junior  <sergiodj@sergiodj.net>

	* poke/Makefile.am (dist_pkgdata_DATA): Always install
	pk-hserver.pk.

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

	* poke/pk-term.c (erase_line_str): New variable.
	(pk_term_init): Set erase_line_str to the terminal capability
	"ed".

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

	* bootstrap.conf (gnulib_modules): Import the termcap and
	termcap-h gnulib modules.
	* configure.ac: Remove checks for termcap, since the gnulib module
	provides a better one.
	* poke/Makefile.am (poke_LDADD): Add LTLIBTERMCAP.
	* poke/pk-term.c (pk_term_init): Use termcap only if HAVE_TERMCAP.

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

	* poke/pk-term.c (pk_term_init): Do not error when TERM is not
	set.

2022-01-29  Jose E. Marchesi  <jemarch@gnu.org>

	* poke/pk-term.c (pager_inhibited_p): New variable.
	(pk_term_start_pager): Reset pager_inhibited_p.
	(pk_puts_paged): Handle `q' in pager.
	(pk_puts_paged): Style --More--.
	* etc/poke-dark.css (.pager-more): New class.
	* etc/poke-bright.css (.pager-more): Likewise.

2022-01-29  Jose E. Marchesi  <jemarch@gnu.org>

	* poke/pk-settings.pk: Add setting for `pager'.
	* poke/poke.h: Remove poke_pager_p.
	* poke/poke.c: Likewise.
	* poke/pk-cmd-set.c (pk_cmd_set_pager): Delete.
	(pk_cmd_set_init): Remove pager setting.

2022-01-29  Jose E. Marchesi  <jemarch@gnu.org>

	* configure.ac (HAVE_HSERVER): Search for `tgetnum' first in
	libtermcap and then in libncurses.

2022-01-29  Jose E. Marchesi  <jemarch@gnu.org>

	* bootstrap.conf (gnulib_modules): Add `termios'.

2022-01-29  Jose E. Marchesi  <jemarch@gnu.org>

	* poke/pk-cmd-set.c (pk_cmd_set_pager): New function.
	(set_pager_cmd): New variable.
	(pk_cmd_set_init): Add set_pager command.
	* poke/pk-repl.c (pk_repl): Use pager (conditionally) when
	executing commands in the repl.
	* poke/pk-settings.pk: Setting for `pager'.
	* poke/pk-term.c (screen_lines): New variable.
	(screen_cols): Likewise.
	(pager_active_p): Likewise.
	(nlines): Likewise.
	(pk_term_init): Initialize terminal dimensions.
	(pk_term_start_pager): New function.
	(pk_term_stop_pager): Likewise.
	(pk_puts_paged): Likewise.
	(pk_puts): Call pk_puts_paged when necessary.
	(pk_printf): Output via pk_puts.
	* poke/poke.c: New global poke_pager_p.

2022-01-29  Jose E. Marchesi  <jemarch@gnu.org>

	* poke/poke.c (parse_args_2): Really restore proper behavior with
	-l and unhandled exceptions.

2022-01-29  Jose E. Marchesi  <jemarch@gnu.org>

	* poke/poke.c (parse_args_2): Restore proper behavior with -l and
	unhandled exceptions.

2022-01-29  Jose E. Marchesi  <jemarch@gnu.org>

	* poke/pk-cmd.h: Prototype for pk_cmd_completion_function.
	* poke/pk-cmd.c: Fix pk_cmd_find and export
	pk_cmd_completion_function.
	* poke/pk-repl.c: Adapt to new pk_cmd_find.
	* poke/pk-cmd-def.c: Fix auto-complete.
	* poke/pk-cmd-editor.c: Likewise.
	* poke/pk-cmd-help.c: Likewise.
	* poke/pk-cmd-info.c: Likewise.
	* poke/pk-cmd-ios.c: Likewise.
	* poke/pk-cmd-map.c: Likewise.
	* poke/pk-cmd-misc.c: Likewise.
	* poke/pk-cmd-set.c: Likewise.
	* poke/pk-cmd-vm.c: Likewise.
	* testsuite/poke.repl/repl.exp: Few more auto-completion tests.

2022-01-29  Jose E. Marchesi  <jemarch@gnu.org>

	* testsuite/poke.mi-json/mi-json.c (test_json_file): When libjson
	is not modern enough, report the test as `untested' and not as
	`unresolved'.

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

	* libpoke/pkl-typify.c (pkl_typify1_ps_trimmer): Restart the pass
	on creation of new AST node.
	* testsuite/poke.pkl/arrays-17.pk: New test.
	* testsuite/Makefile.am (EXTRA_DIST): Update.

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

	* libpoke/pkl-trans.c (pkl_trans2_ps_op_attr):
	s/assert/PKL_PASS_DONE/.
	* testsuite/poke.pkl/typeof-25.pk: New test.
	* testsuite/Makefile.am (EXTRA_DIST): Update.

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

	* etc/poke.rec (Unions can be completed): Remove (done).
	(.info type TYPENAME): Remove (done).

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

	* poke/pk-cmd-misc.c (pk_cmd_jmd): Add new quote.

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

	* libpoke/pvm.h (PVM_EXCEPTIONS): New macro.
	* libpoke/pvm.jitter (wrapped-globals): Add `pvm_exception_names`.
	(PVM_RAISE_DFL): Use `pvm_exception_names` instead of string
	literals.
	(late-c): Define `pvm_exception_names`.

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

	* NEWS: Set date and version for 2.0 news.
	* configure.ac: Change version number to 2.0.
	* doc/gendocs_template: Adapt to 2.0.

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

	* libpoke/pvm.jitter (iogetb): Mark as `non-relocatable` because
	of / and %.
	(formati): Likewise.
	(formatiu): Likewise.
	(formatl): Likewise.
	(formatlu): Likewise.
	(divi): Likewise.
	(diviu): Likewise.
	(divl): Likewise.
	(divlu): Likewise.
	(modi): Likewise.
	(modiu): Likewise.
	(modl): Likewise.
	(modlu): Likewise.
	* etc/pvm-wraps-static-whitelist: Update.

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

	* libpoke/pvm.jitter (wrapped-functions): Add missing functions.
	(wrapped-globals): Add `libpoke_term_if`.
	(PVM_FORMATI): s/assert/pvm_assert/.
	(PVM_FORMATL): Likewise.
	(late-c): Define new function wrappers.
	(exit): s/assert/pvm_assert/.
	(call): Likewise.
	(eqs): s/STREQ/pvm_strcmp/.
	(nes): s/STRNEQ/pvm_strcmp/.
	(lts): s/strcmp/pvm_strcmp/.
	(gts): Likewise.
	(ges): Likewise.
	(les): Likewise.
	(sconc): s/${F}/pvm_${F}/.
	(strset): Likewise.
	(muls): Likewise.
	(asettb): Likewise.
	(strace): s/assert/pvm_assert/.
	(sleep): s/nanosleep/pvm_nanosleep/.
	* etc/pvm-wraps-static-whitelist: Update.

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

	* libpoke/pvm.jitter (PVM_RAISE_DIRECT): Use
	`PVM_STATE_RUNTIME_FIELD` accessor.
	(PVM_CALL): Likewise.
	(return): Likewise.
	(pushf): Likewise.
	(popf): Likewise.
	(pushvar): Likewise.
	(pushtopvar): Likewise.
	(popvar): Likewise.
	(regvar): Likewise.
	(pec): Likewise.
	(pushhi): Likewise.
	(pushlo): Likewise.
	(write): Likewise.
	(peekdi): Likewise.
	(peekdiu): Likewise.
	(peekdl): Likewise.
	(peekdlu): Likewise.
	(pokedi): Likewise.
	(pokediu): Likewise.
	(pokedl): Likewise.
	(pokedlu): Likewise.
	(pushe): Likewise.

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

	* libpoke/pvm.jitter (wrapped-globals): Add pvm_literal_*.
	(PVM_RAISE_DIRECT): Use `pvm_literal_code`.
	(PVM_PEEK): Use `pvm_literal_enomem`.
	(PVM_PRINTI): Use `pvm_literal_empty` and `pvm_literal_c`.
	(PVM_PRINTL): Likewise.
	(PVM_FORMATI): Likewise.
	(PVM_FORMATL): Likewise.
	(late-c): Define pvm_literal_* variables/constants.
	(popob): Use `pvm_literal_inval_obase`.
	(popom): Likewise.
	(pushtopvar): Use `pvm_literal_no_toplevel_var`.
	(endhl): Use `pvm_literal_nohyperlink`.
	(endsc): Use `pvm_literal_invalid_class`.
	(ains): Use `pvm_literal_eindex`.
	(map): Use `pvm_literal_notmappable`.
	(reloc): Likewise.
	(ureloc): Likewise.
	(peeks): Use `pvm_literal_enomem`.
	(pushe): Use `pvm_literal_code`.
	(strace): Use `pvm_literal_newline`.
	* etc/pvm-wraps-static-whitelist: Add pvm_literal_*.

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

	* etc/hacking.org (Wrapping globals): Clarify the role of
	etc/pvm-wraps-whitelist and etc/pvm-wraps-static-whitelist.

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

	* pvm-wraps-static-whitelist: New file.
	* cfg.mk (sc_pvm_wrappers): Use etc/pvm-wraps-static-whitelist.

2022-01-26  Jan Seeger  <jan.seeger@thenybble.de>

	* pickles/elf-common.pk (elf_hash): New function.

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

	* doc/poke.texi (String Formatting): New section.

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

	* cfg.mk (sc_pvm_wrappers): Use symbol whitelist.
	* etc/pvm-wraps-whitelist: New file.
	* etc/hacking.org (Wrapping globals): New section.

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

	* cfg.mk (sc_pvm_wrappers): New rule.

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

	* libpoke/pkl-ast.c (pkl_type_append_to): Avoid redundant comma in
	function type strings.

2022-01-25  Jose E. Marchesi  <jose.marchesi@oracle.com>

	* libpoke/ios-dev-file.c (ios_dev_file_open): Do not create files
	if no flags are specified.

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

	* etc/hacking.org (What not to use in Jitter instructions): New
	section.

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

	* poke/pk-table.pk (Pk_Table): New field max_column_size;
	* poke/pk-cmd-def.c (pk_cmd_info_type): Call exception handler for
	pk_compile_statement.
	* libpoke/pkl-rt.pk: New fields `nfields' and `ftypes'.
	Rename `fields' to `fnames'.
	* libpoke/pkl-gen.pks (struct_typifier): Adapt accordingly.
	* testsuite/poke.pkl/typeof-struct-1.pk: Update test.
	* testsuite/poke.pkl/typeof-struct-2.pk: Likewise.
	* testsuite/poke.pkl/typeof-struct-3.pk: Likewise.
	* testsuite/poke.pkl/typeof-structs-4.pk: Likewise.
	* testsuite/poke.pkl/typeof-struct-1.pk: Update test.
	* testsuite/poke.pkl/typeof-struct-2.pk: Likewise.
	* testsuite/poke.pkl/typeof-struct-3.pk: Likewise.
	* testsuite/poke.pkl/typeof-structs-4.pk: Likewise.

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

	* libpoke/pkl-ast.c (pkl_type_append_to): Print `union' for
	unions, and not `struct'.

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

	* poke/pk-cmd.c (pk_cmd_exec): Likewise.
	* poke/pk-cmd-def.c (pk_cmd_info_type): Likewise.
	* poke/pk-cmd-ios.c (pk_cmd_load_file): Likewise.
	* poke/pk-cmd-vm.c (pk_cmd_vm_disas_fun): Likewise.

	* poke/poke.h: Prototype for poke_handle_exception.
	* poke/poke.c (poke_handle_exception): New function.
	(parse_args_2): Use poke_handle_exception.

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

	* poke/pk-cmd-def.c (print_type_decl): Honour HAVE_HSERVER.

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

	* poke/pk-cmd-set.c (pk_cmd_set): Use `PRId64` instead of `ld`.

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

	* poke/pk-cmd-def.c (PREP_REGEXP_PAYLOAD): Compare the string pointer
	with NULL, not '\0'.

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

	* common/pk-utils.h (pk_print_binary): Add new param `use_suffix_p`.
	(pk_format_binary): Likewise.
	* common/pk-utils.c (pk_print_binary): Likewise.
	(pk_format_binary): Likewise.
	* libpoke/pvm-val.c (pvm_print_val_1): Update `pk_print_binary` usage.
	* libpoke/pvm.jitter (PVM_PRINTI): Likewise.
	(PVM_PRINTL): Likewise.
	(PVM_FORMATI): Likewise.
	(PVM_FORMATL): Likewise.
	* testsuite/poke.pkl/format-1.pk: Update test to reflect new behavior.
	* testsuite/poke.pkl/printf-binary-5.pk: New test.
	* testsuite/poke.pkl/printf-binary-6.pk: Likewise.
	* testsuite/poke.pkl/printf-binary-7.pk: Likewise.
	* testsuite/Makefile.am (EXTRA_DIST): Update.

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

	* libpoke/pkl-tab.y: Make `sizeof' and `typeof' calls primaries.

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

	* libpoke/ios-dev-sub.c (ios_dev_sub_handler_normalize): Fix error
	reporting.

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

	* poke/pk-table.pk: New field `indent'.
	(Pk_Table.print_table): Use `indent'.

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

	* poke/poke.c (pk_print_version): Update copyright year.

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

	* libpoke/pkl-typify.c (pkl_typify1_pr_func): Add the name of the
	function to its type.
	* testsuite/poke.pkl/typeof-23.pk: New test.
	* testsuite/poke.pkl/typeof-24.pk: Likewise.
	* testsuite/Makefile.am (EXTRA_DIST): Add new tests.

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

	* libpoke/pkl-env.c (_decl): Allow re-registering types.
	* libpoke/pkl-tab.y (load_module): Allow loading the same module
	more than once.
	* libpoke/pkl.c (pkl_add_module): Do not add module to the list if
	it is already loaded.
	* testsuite/poke.pkl/load-3.pk: Remove test.
	* testsuite/Makefile.am (EXTRA_DIST): Remove test load-3.pk.

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

	* doc/poke.texi (Casting Arrays): Add documentation for
	array integrators.

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

	* libpoke/pkl-trans.c (pkl_trans2_ps_op_attr): New phase for
	computing attributes of complete type at compile-time.
	(struct pkl_phase pkl_phase_trans2): Register new phase.
	* testsuite/poke.map/map-size-2.pk: New test.
	* testsuite/poke.map/map-size-3.pk: Likewise.
	* testsuite/poke.map/maps-structs-pinned-3.pk: Likewise.
	* testsuite/poke.pkl/attr-length-10.pk: Likewise.
	* testsuite/poke.pkl/attr-length-11.pk: Likewise.
	* testsuite/poke.pkl/attr-size-15.pk: Likewise.
	* testsuite/poke.pkl/attr-size-16.pk: Likewise.
	* testsuite/poke.pkl/attr-size-17.pk: Likewise.
	* testsuite/poke.pkl/attr-size-18.pk: Likewise.
	* testsuite/poke.pkl/attr-size-19.pk: Likewise.
	* testsuite/poke.pkl/attr-size-20.pk: Likewise.
	* testsuite/poke.pkl/attr-size-21.pk: Likewise.
	* testsuite/poke.pkl/attr-unit-2.pk: Likewise.
	* testsuite/poke.pkl/attr-unit-3.pk: Likewise.
	* testsuite/Makefile.am (EXTRA_DIST): Update.

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

	* libpoke/pkl-fold.c (OP_BINARY_AAA_ADD): New macro for constant
	folding ADD of array literals.
	(PKL_PHASE_HANDLER_BIN_ARITH_ADD): New macro for folding ADD.
	(PKL_PHASE_HANDLER_BIN_ARITH_SUB): New macro for folding SUB.
	* libpoke/pkl-ast.h (pkl_ast_array_initializers_concat): New
	function to concat two array literals.
	* libpoke/pkl-ast.c (pkl_ast_array_initializers_concat): Likewise.
	* testsuite/poke.pkl/arrays-16.pk: New test.
	* testsuite/Makefile.am (EXTRA_DIST): Update.

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

	* libpoke/pkl-ast.h (pkl_ast_struct_type_field): Add `size` field.
	(PKL_AST_STRUCT_TYPE_FIELD_SIZE): New accessor macro.
	* libpoke/pkl-ast.c (pkl_ast_dup_type): Add support for `size`
	field.
	(pkl_ast_node_free): Likewise.
	(pkl_ast_print_1): Likewise.
	(pkl_ast_sizeof_type): Fix to the right thing for pinned structs,
	arrays with offset bounds, structs with labels.
	(pkl_ast_type_is_complete): Fix the logic for structs. Add support
	for unions. Fix the logic for arrays to support offsets as bounds
	as well as check for completeness of element type.
	* libpoke/pkl-pass.c (pkl_do_pass_1): Add support for `size` field.
	* libpoke/pkl-trans.c (pkl_trans2_ps_struct_type_field): New
	phase to calculate the size of fields of struct if they are complete.
	(struct pkl_phase_trans2): Register new phase.

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

	* libpoke/pkl-ast.c (pkl_ast_make_offset): An offset value
	is literal if the magnitude and unit are also literals.

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

	* libpoke/pkl-typify.c (pkl_typify1_ps_struct): Postpone type
	completion decision to `pkl_typify2_ps_type` phase.

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

	* libpoke/pkl-typify.c (pkl_typify1_ps_funcall): When the arg
	doesn't have a name, uses the arg index in error reporting.

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

	* libpoke/pkl-gen.pks (typifier_deintegrator_wrapper): New
	function.
	(struct_typifier): Use it.
	* testsuite/poke.pkl/typeof-20.pk: Update test.

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

	* libpoke/pkl-gen.pks (typifier_writer_wrapper): New function.
	(typifier_any_any_wrapper): Likewise.
	(typifier_any_any_int_wrapper): Likewise.
	(array_typifier): Use the wrappers.
	(struct_typifier): Likewise.
	* libpoke/pkl-gen.c (pkl_gen_pr_decl): Generate struct typifier
	after the other closures have been compiled.
	* testsuite/poke.pkl/typeof-11.pk: New test.
	* testsuite/poke.pkl/typeof-12.pk: Likewise.
	* testsuite/poke.pkl/typeof-13.pk: Likewise.
	* testsuite/poke.pkl/typeof-14.pk: Likewise.
	* testsuite/poke.pkl/typeof-15.pk: Likewise.
	* testsuite/poke.pkl/typeof-16.pk: Likewise.
	* testsuite/poke.pkl/typeof-17.pk: Likewise.
	* testsuite/poke.pkl/typeof-18.pk: Likewise.
	* testsuite/poke.pkl/typeof-19.pk: Likewise.
	* testsuite/poke.pkl/typeof-20.pk: Likewise.
	* testsuite/poke.pkl/typeof-21.pk: Likewise.
	* testsuite/poke.pkl/typeof-22.pk: Likewise.
	* testsuite/Makefile.am (EXTRA_DIST): Add new tests.

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

	* libpoke/pkl-gen.pks (struct_formater): Avoid a segmentation
	fault when compiling formatters for anonymous fields.
	* testsuite/poke.pkl/format-39.pk: New test.
	* testsuite/Makefile.am (EXTRA_DIST): Add new test.

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

	* libpoke/pkl-gen.c (pkl_gen_pr_decl): Compile formaters and
	printers for named array and struct types.
	* testsuite/poke.pkl/printf-38.pk: New test.
	* testsuite/poke.pkl/printf-39.pk: Likewise.
	* testsuite/poke.pkl/format-37.pk: Likewise.
	* testsuite/poke.pkl/format-38.pk: Likewise.
	* testsuite/Makefile.am (EXTRA_DIST): Add new tests.

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

	* libpoke/ras: Document RAS_COMP_ENV and RAS_COMPILER and use them.
	* libpoke/pkl-gen.c (RAS_COMP_ENV): define.
	(RAS_COMPILER): Likewise.
	* libpoke/pkl-gen.h (struct pkl_gen_payload): New field `env'.
	(pkl_gen_init_payload): Install `env' in the GEN payload.
	* libpoke/pkl-asm.c (pkl_asm_call): Get an `env' argument.
	* libpoke/pkl.c (rest_of_compilation): Get an `env' argument.
	(pkl_execute_buffer): Pass `env' to rest_of_compilation.
	(pkl_execute_statement): Likewise.
	(pkl_compile_expression): Likewise.
	(pkl_execute_expression): Likewise.
	(pkl_execute_file): Likewise.
	* libpoke/pk-rt-2.pk: Remove file.
	* libpoke/pkl-rt.k: Rename from pkl-rt-1.pk
	* libpoke/Makefile.am (dist_pkgdata_DATA): Adapt accordingly.

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

	* libpoke/libpoke.c (pk_compile_file): Fix indentation.
	* libpoke/pkl.c (pkl_execute_file): Return an error in case of
	memory exhaustion.
	(pkl_execute_expression): Likewise.
	(pkl_compile_expression): Likewise.
	(pkl_execute_statement): Likewise.
	(pkl_execute_buffer): Likewise.

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

	* NEWS: Add entries for 1.90.

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

	* libpoke/pkl-rt-1.pk (Pk_Type): Add closures for array and struct
	types.
	* libpoke/pkl-gen.pks (struct_typifier): Install struct closures.
	(array_typifier): Likewise.

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

	* libpoke/pkl-rt-1.pk (Pk_Type): Use optional fields to have a
	flat structure.
	* poke/pk-info.pk (pk_info_type): Adjust accordingly.
	* libpoke/pkl-gen.pks (integral_typifier): Likewise.
	(offset_typifier): Likewise.
	(array_typifier): Likewise.
	(struct_typifier): Likewise.
	* testsuite/poke.pkl/typeof-structs-4.pk: Likewise.
	* testsuite/poke.pkl/typeof-struct-3.pk: Likewise.
	* testsuite/poke.pkl/typeof-struct-2.pk: Likewise.
	* testsuite/poke.pkl/typeof-struct-1.pk: Likewise.
	* testsuite/poke.pkl/typeof-offset-3.pk: Likewise.
	* testsuite/poke.pkl/typeof-offset-2.pk: Likewise.
	* testsuite/poke.pkl/typeof-offset-1.pk: Likewise.
	* testsuite/poke.pkl/typeof-int-2.pk: Likewise.
	* testsuite/poke.pkl/typeof-int-1.pk: Likewise.
	* testsuite/poke.pkl/typeof-array-2.pk: Likewise.
	* testsuite/poke.pkl/typeof-array-1.pk: Likewise.

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

	* libpoke/pkl-gen.pks (union_comparator): New function.
	* libpoke/pkl-gen.c: Install union comparators instead of struct
	comparators whenever appropriate.
	* testsuite/poke.pkl/eq-unions-1.pk: New test.
	* testsuite/poke.pkl/eq-unions-7.pk: Likewise.
	* testsuite/poke.pkl/eq-unions-6.pk: Likewise.
	* testsuite/poke.pkl/eq-unions-5.pk: Likewise.
	* testsuite/poke.pkl/eq-unions-4.pk: Likewise.
	* testsuite/poke.pkl/neq-unions-1.pk: Likewise.
	* testsuite/poke.pkl/eq-unions-2.pk: Likewise.
	* testsuite/Makefile.am (EXTRA_DIST): Add new tests.

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

	* poke/poke.pk: Move pk_exception_handler from pk-repl.pk.
	* poke/Makefile.am (dist_pkgdata_DATA): Remove pk-repl.pk.

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

	* libpoke/pkl.c (pkl_execute_statement): Do not return an error if
	an exception is raised.
	(pkl_execute_expression): Likewise.
	(pkl_execute_buffer): Likewise.
	* poke/pk-repl.pk: New file.
	* poke/Makefile.am (dist_pkgdata_DATA): Add pk-repl.pk.
	* poke/poke.pk: Load pk-repl.pk.
	* libpoke/pkl-asm.c (pkl_asm_finish): Do not call the default
	exception handler.
	* poke/pk-cmd.c (pk_cmd_exec): Call pk_exception_handler whenever
	necessary.
	(pk_cmd_exec): Pass an exit_status to pk_print_val.
	* libpoke/pvm.jitter (pvm_literal_printer): Adapt accordingly.
	(pvm_literal_printer_lo): Likewise.
	(strace): Likewise.
	* libpoke/libpoke.c (pk_print_val): Add argument exit_exception.
	* libpoke/pvm-val.c (pvm_print_val): Likewise.
	(pvm_print_val_1): Likewise.
	(PVM_PRINT_VAL_1): Likewise.
	(pvm_call_pretty_printer): Likewise.
	* libpoke/pvm-val.c (pvm_print_val_with_params): Likewise.
	* libpoke/pvm.c (pvm_call_closure): Likewise.
	* poke/pk-table.c (pk_table_print): Likewise.

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

	* poke/pk-cmd-def.c (info_type_cmd): Define.
	(pk_cmd_info_type): New function.
	* poke/pk-cmd-info.c: (info_cmds): Add info_type_cmd.
	* poke/pk-info.pk: New file.
	* poke/poke.pk: Load pk-info.pk.
	* poke/Makefile.am (dist_pkgdata_DATA): Add pk-info.pk.
	* doc/poke.texi (info command): Document .info type NAME.
	* poke/pk-help.pk: Likewise.

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

	* poke/pk-cmd-def.c (info_types_cmd): Accept an optional regexp as
	an argument for .info types.
	(info_var_cmd): Likewise.
	(info_fun_cmd): Likewise.
	(struct pk_info_payload): New type.
	* poke/pk-help.pk: Update help for .info
	{types,variables,functions}.
	* doc/poke.texi (info command): Update doc.
	* testsuite/Makefile.am (EXTRA_DIST): Add new test.

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

	* libpoke/pkl-typify.c (pkl_typify1_ps_cast): Allow casts from
	string to string.
	* testsuite/poke.pkl/typeof-10.pk: New test.

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

	* libpoke/pkl-rt-2.pk: Define PK_TYPE_* values.
	(Pk_Type): New struct type.
	* libpoke/pkl-ast.h (PKL_AST_TYPE_S_TYPIFIER): Define.
	* libpoke/pkl-ast.c (pkl_ast_make_struct_type): Initialize the
	struct typifier to NULL.
	* libpoke/pkl-env.h: Prototype for pkl_env_lookup_type and
	pkl_env_lookup_var.
	* libpoke/pkl-env.c (pkl_env_lookup_type): New function.
	(pkl_env_lookup_var): Likewise.
	* libpoke/pkl-ops.def: New unary operator SIZEOF.
	* libpoke/pkl-tab.y: New token TYPEOF.
	(expression): Rule for typeof.
	* libpoke/pkl-lex.l: Handle token TYPEOF.
	* libpoke/pkl-typify.c (pkl_typify1_pr_op_typeof): New handler.
	(pkl_phase_typify1): Register handler.
	* libpoke/pkl-gen.h (PKL_GEN_CTX_IN_TYPIFIER): Define.
	* libpoke/pkl-gen.c (pkl_phase_gen_or_typeof): New handler.
	(pkl_phase_gen): Register handler.
	(pkl_gen_ps_type_integral): Handle IN_TYPIFIER.
	(pkl_gen_pr_type_offset): Likewise.
	(pkl_gen_ps_type_string): Likewise.
	(pkl_gen_pr_type_struct): Likewise.
	(pkl_gen_ps_type_any): Likewise.
	(pkl_gen_pr_type_array): Likewise.
	(pkl_gen_pr_decl): Compile typifier closures for declared struct
	types.
	* libpoke/pkl-gen.pks (integral_typifier): New macro.
	(offset_typifier): Likewise.
	(string_typifier): Likewise.
	(array_typifier): Likewise.
	(common_typifier): Likewise.
	(struct_typifier): New function.
	* testsuite/poke.pkl/typeof-1.pk: New test.
	* testsuite/poke.pkl/typeof-9.pk: Likewise.
	* testsuite/poke.pkl/typeof-8.pk: Likewise.
	* testsuite/poke.pkl/typeof-7.pk: Likewise.
	* testsuite/poke.pkl/typeof-6.pk: Likewise.
	* testsuite/poke.pkl/typeof-5.pk: Likewise.
	* testsuite/poke.pkl/typeof-4.pk: Likewise.
	* testsuite/poke.pkl/typeof-2.pk: Likewise.
	* testsuite/poke.pkl/typeof-3.pk: Likewise.
	* testsuite/poke.pkl/typeof-offset-3.pk: Likewise.
	* testsuite/poke.pkl/typeof-offset-2.pk: Likewise.
	* testsuite/poke.pkl/typeof-offset-1.pk: Likewise.
	* testsuite/poke.pkl/typeof-int-1.pk: Likewise.
	* testsuite/poke.pkl/typeof-int-2.pk: Likewise.
	* testsuite/poke.pkl/typeof-array-2.pk: Likewise.
	* testsuite/poke.pkl/typeof-array-1.pk: Likewise.
	* testsuite/poke.pkl/typeof-structs-4.pk: Likewise.
	* testsuite/poke.pkl/typeof-struct-3.pk: Likewise.
	* testsuite/poke.pkl/typeof-struct-2.pk: Likewise.
	* testsuite/poke.pkl/typeof-struct-1.pk: Likewise.
	* testsuite/Makefile.am (EXTRA_DIST): Add new tests.
	* testsuite/Makefile.am (EXTRA_DIST): Add new tests.

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

	* libpoke/ras: Check that every .function has a prolog
	instruction.

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

	* etc/poke-dark.css: Renamed from poke-default.css.
	* etc/poke-bright.css: New file.
	* etc/Makefile.am (dist_pkgdata_DATA): Rename poke-dar.css and add
	poke-bright.css.
	* poke/poke.c (print_help): Add --help output for --style-dark and
	--style-bright.
	* poke/pk-term.c (pk_term_init): Use poke-dark.css or
	poke-bright.css depending on the default setting.
	* doc/poke.texi (Invoking poke): Document --style-dark and
	--style-bright.

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

	* testsuite/poke.pkl/cast-any-to-function-diag-1.pk: Update
	expected error.
	* testsuite/poke.pkl/cast-void-diag-1.pk: Likewise.
	* testsuite/poke.pkl/cast-struct-diag-3.pk: Likewise.
	* testsuite/poke.pkl/cast-struct-diag-2.pk: Likewise.
	* testsuite/poke.pkl/cast-struct-diag-1.pk: Likewise.
	* testsuite/poke.pkl/cast-str-diag-1.pk: Likewise.
	* testsuite/poke.pkl/cast-diag-9.pk: New test.
	* testsuite/poke.pkl/cast-diag-10.pk: Likewise.
	* testsuite/Makefile.am (EXTRA_DIST): Add new tests.

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

	* libpoke/pkl-typify.c (pkl_typify1_ps_cond_exp): Fix diagnostics.
	* testsuite/poke.pkl/cond-exp-diag-1.pk: Update expected error.

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

	* testsuite/poke.pkl/if-diag-3.pk: Likewise.

	* testsuite/poke.pkl/if-diag-2.pk: Likewise.

	* testsuite/poke.pkl/if-diag-1.pk: Update expected error.

	* libpoke/pkl-typify.c (pkl_typify1_ps_if_stmt): Fix diagnostics.

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

	* libpoke/pkl-typify.c (pkl_typify1_ps_struct_type_field): Fix
	diagnostics.
	* testsuite/poke.pkl/label-diag-1.pk: Update expected error.
	* testsuite/poke.pkl/optcond-1-diag.pk: Likewise.

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

	* libpoke/pkl-typify.c (pkl_typify1_ps_try_catch_stmt): Fix
	diagnostics.
	* testsuite/poke.pkl/try-catch-diag-4.pk: Update expected error.
	* testsuite/poke.pkl/try-catch-diag-5.pk: Likewise.

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

	* libpoke/pkl-typify.c (pkl_typify1_ps_try_until_stmt): Fix
	diagnostics.
	* testsuite/poke.pkl/try-until-diag-1.pk: Update expected error.

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

	* libpoke/pkl-typify.c (pkl_typify1_ps_print_stmt): Fix
	diagnostics.
	* testsuite/poke.pkl/print-diag-1.pk: Update expected error.

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

	* libpoke/pkl-typify.c (pkl_typify1_ps_format): Improve
	diagnostics.
	* testsuite/poke.pkl/printf-diag-18.pk: Adapt expected error.

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

	* libpoke/pkl-typify.c (pkl_typify1_ps_loop_stmt): Improve
	diagnostics.
	(pkl_typify1_ps_loop_stmt_iterator): Likewise.
	* testsuite/poke.pkl/for-diag-1.pk: Update expected error.
	* testsuite/poke.pkl/for-diag-2.pk: New test.
	* testsuite/Makefile.am (EXTRA_DIST): Add new test.

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

	* libpoke/pkl-typify.c (pkl_typify1_ps_incrdecr): Improve
	diagnostics.
	* testsuite/poke.pkl/postincr-diag-1.pk: Update expected error.
	* testsuite/poke.pkl/postincr-diag-3.pk: Likewise.
	* testsuite/poke.pkl/postincr-diag-2.pk: Likewise.
	* testsuite/poke.pkl/postincr-diag-4.pk: Likewise.
	* testsuite/poke.pkl/preincr-diag-2.pk: Likewise.
	* testsuite/poke.pkl/preincr-diag-1.pk: Likewise.

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

	* libpoke/pkl-typify.c (pkl_typify1_ps_map): Improve diagnostics.
	* testsuite/poke.pkl/map-diag-6.pk: New test.
	* testsuite/poke.pkl/map-ios-diag-1.pk: Update expected error.
	* testsuite/poke.pkl/map-ios-diag-2.pk: Likewise.
	* testsuite/Makefile.am (EXTRA_DIST): Add new test.

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

	* libpoke/pkl-typify.c (pkl_typify1_ps_type_struct): Improve
	diagnostics.
	* testsuite/poke.pkl/int-struct-type-diag-16.pk: New test.
	* testsuite/poke.pkl/int-struct-type-diag-17.pk: Likewise.
	* testsuite/poke.pkl/int-struct-type-diag-14.pk: Update test.
	* testsuite/poke.pkl/int-struct-type-diag-12.pk: Likewise.
	* testsuite/poke.pkl/int-struct-type-diag-8.pk: Likewise.
	* testsuite/poke.pkl/int-struct-type-diag-9.pk: Likewise.

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

	* libpoke/pkl-typify.c (pkl_typify1_ps_struct_ref): Improve
	diagnostics.
	* testsuite/poke.pkl/struct-ref-diag-1.pk: Update expected error.
	* testsuite/poke.pkl/struct-ref-diag-2.pk: New test.
	* testsuite/Makefile.am (EXTRA_DIST): Add new test.

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

	* libpoke/pkl-typify.c (pkl_typify1_ps_indexer): Improve
	diagnostics.
	* testsuite/poke.pkl/arrays-index-diag-4.pk: New test.
	* testsuite/poke.pkl/arrays-index-diag-5.pk: Likewise.
	* testsuite/Makefile.am (EXTRA_DIST): Add new tests.

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

	* libpoke/pkl-typify.c (pkl_typify1_ps_trimmer): Improve
	diagnostics.
	* testsuite/poke.pkl/trim-diag-1.pk: Adapt expected test.
	* testsuite/poke.pkl/trim-diag-5.pk: Likewise.
	* testsuite/poke.pkl/trim-diag-4.pk: Likewise.
	* testsuite/poke.pkl/trim-diag-3.pk: Likewise.
	* testsuite/poke.pkl/trim-diag-2.pk: Likewise.

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

	* libpoke/pkl-typify.c (pkl_typify1_ps_funcall): Improve
	diagnostics.
	* testsuite/poke.pkl/funcall-diag-5.pk: Update expected error.
	* testsuite/poke.pkl/funcall-diag-6.pk: New test.
	* testsuite/poke.pkl/funcall-diag-7.pk: Likewise.
	* testsuite/poke.pkl/funcall-diag-8.pk (foo): Likewise.
	* testsuite/Makefile.am (EXTRA_DIST): Add new tests.

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

	* libpoke/pkl-typify.c (pkl_typify1_ps_type_array): Improve
	diagnostics.
	* testsuite/poke.pkl/array-bound-diag-1.pk: New test.
	* testsuite/Makefile.am (EXTRA_DIST): Add new test.

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

	* libpoke/pkl-tab.y: Fix location of struct type labels.
	* libpoke/pkl-typify.c (pkl_typify1_ps_struct_type_field): Improve
	diagnostic.
	* testsuite/poke.pkl/label-diag-1.pk: New test.
	* testsuite/Makefile.am (EXTRA_DIST): Add new test.

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

	* libpoke/pkl-anal.c (pkl_anal1_ps_type_struct): Make diagnostic
	error self-explicative without location.
	(pkl_anal1_ps_funcall): Turn error into ICE.
	(pkl_anal1_ps_cons): Likewise.
	* testsuite/poke.pkl/cast-diag-2.pk: Fix test.
	* testsuite/poke.pkl/trim-diag-1.pk: Likewise.
	* testsuite/poke.pkl/trim-diag-2.pk: Likewise.
	* testsuite/poke.pkl/trim-diag-3.pk: Likewise.
	* testsuite/poke.pkl/offset-diag-1.pk: New test.
	* testsuite/poke.pkl/return-diag-3.pk: Likewise.
	* testsuite/poke.pkl/return-diag-4.pk: Likewise.
	* testsuite/poke.pkl/gt-integers-diag-1.pk: Likewise.
	* testsuite/poke.pkl/gt-offsets-diag-1.pk: Likewise.
	* testsuite/poke.pkl/gt-strings-diag-1.pk: Likewise.
	* testsuite/poke.pkl/eq-structs-diag-2.pk: Likewise.
	* testsuite/poke.pkl/gt-structs-diag-1.pk: Likewise.
	* testsuite/poke.pkl/gt-functions-diag-2.pk: Likewise.
	* testsuite/poke.pkl/eq-functions-diag-1.pk: Likewise.
	* testsuite/poke.pkl/eq-arrays-diag-3.pk: Likewise.
	* testsuite/poke.pkl/cast-diag-8.pk: Likewise.
	* testsuite/poke.pkl/add-strings-diag-1.pk: Likewise.
	* testsuite/poke.pkl/div-diag-2.pk: Likewise.
	* testsuite/poke.pkl/bconc-diag-3.pk: Likewise.
	* testsuite/poke.pkl/array-diag-1.pk: Likewise.
	* testsuite/poke.pkl/index-diag-1.pk: Likewise.
	* testsuite/poke.pkl/index-diag-2.pk: Likewise.
	* testsuite/poke.pkl/funcall-diag-5.pk: Likewise.
	* testsuite/poke.pkl/struct-ref-diag-1.pk: Likewise.
	* testsuite/Makefile.am (EXTRA_DIST): Add new tests.

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

	* etc/hacking.org (Maintenance): Note that jitter's no-threading
	doesn't work with gcov.

2022-01-19  Jose E. Marchesi  <jemarch@gnu.org>

	* libpoke/pkl-typify.c (pkl_typify1_ps_op_bconc): Fix diagnostics.
	* testsuite/poke.pkl/bconc-diag-1.pk: Adapt expected error.
	* testsuite/poke.pkl/bconc-diag-2.pk: Likewise.

2022-01-19  Jose E. Marchesi  <jemarch@gnu.org>

	* libpoke/pkl-typify.c (pkl_typify1_ps-op_in): Fix diagnostics.
	* testsuite/poke.pkl/in-diag-3.pk: Adapt expected error.
	* testsuite/poke.pkl/in-diag-1.pk: Likewise.
	* testsuite/poke.pkl/in-diag-2.pk: Likewise.

2022-01-19  Jose E. Marchesi  <jemarch@gnu.org>

	* libpoke/pkl-typify.c (pkl_typify1_ps_bin): New handler.
	(pkl_phase_typify1): Use new handler for IOS, XOR, BAND, SUB, DIV,
	CEILDIV, MOD and ADD.
	(TYPIFY_BIN): Remove.
	* testsuite/poke.pkl/add-arrays-diag-1.pk: Adapt expected error.
	* testsuite/poke.pkl/cdiv-integers-diag-2.pk: Likewise.
	* testsuite/poke.pkl/add-diag-1.pk: Likewise.
	* testsuite/poke.pkl/add-arrays-diag-3.pk: Likewise.
	* testsuite/poke.pkl/add-arrays-diag-2.pk: Likewise.
	* testsuite/poke.pkl/div-offsets-diag-3.pk: New test.
	* testsuite/poke.pkl/mod-offsets-diag-2.pk: Likewise.
	* testsuite/poke.pkl/sub-diag-2.pk: Likewise.
	* testsuite/poke.pkl/sub-diag-1.pk: Likewise.
	* testsuite/poke.pkl/band-diag-2.pk: Likewise.
	* testsuite/poke.pkl/band-diag-1.pk: Likewise.
	* testsuite/poke.pkl/xor-diag-2.pk: Likewise.
	* testsuite/poke.pkl/ior-diag-1.pk: Likewise.
	* testsuite/poke.pkl/add-arrays-diag-4.pk: Likewise.
	* testsuite/poke.pkl/add-diag-2.pk: Likewise.
	* testsuite/poke.pkl/div-diag-1.pk: Likewise.
	* testsuite/poke.pkl/add-diag-3.pk: Likewise.
	* testsuite/poke.pkl/add-offsets-diag-1.pk: Likewise.
	* testsuite/Makefile.am (EXTRA_DIST): Add new tests.

2022-01-19  Jose E. Marchesi  <jemarch@gnu.org>

	* libpoke/pkl-ast.h: Prototype for pkl_type_integral_promote.
	* libpoke/pkl-ast.c (pkl_type_integral_promote): New function.
	* libpoke/pkl-typify.c (pkl_typify1_ps_mul): Fix diagnostics.
	* testsuite/poke.pkl/mul-diag-1.pk: Renamed from
	mul-diag-strings-1.pk.
	* testsuite/poke.pkl/mul-diag-2.pk: New test.
	* testsuite/poke.pkl/mul-diag-3.pk: Likewise.
	* testsuite/poke.pkl/mul-diag-4.pk: Likewise.
	* testsuite/poke.pkl/mul-diag-5.pk: Likewise.

2022-01-19  Jose E. Marchesi  <jemarch@gnu.org>

	* libpoke/pkl-typify.c (pkl_typify1_ps_bshift_pow): Fix
	diagnostics.
	* testsuite/poke.pkl/pow-diag-1.pk: Adapt expected error.
	* testsuite/poke.pkl/pow-diag-2.pk: Likewise.
	* testsuite/poke.pkl/sr-diag-1.pk: Likewise.
	* testsuite/poke.pkl/sr-diag-2.pk: Likewise.
	* testsuite/poke.pkl/sl-diag-4.pk: Likewise.
	* testsuite/poke.pkl/sl-diag-5.pk: Likewise.

2022-01-19  Jose E. Marchesi  <jemarch@gnu.org>

	* libpoke/pkl-typify.c (pkl_typify1_ps_cast): Fix diagnostics.
	* testsuite/poke.pkl/cast-struct-diag-1.pk: Adapt expected error.
	* testsuite/poke.pkl/cast-struct-diag-2.pk: Likewise.
	* testsuite/poke.pkl/cast-struct-diag-3.pk: Likewise.

2022-01-19  Jose E. Marchesi  <jemarch@gnu.org>

	* libpoke/pkl-typify.c (pkl_typify1_ps_neg_pos_bnot): Rename from
	pkl_typify1_ps_first_operand.
	(pkl_phase_typify1): Adapt accordingly.

2022-01-19  Jose E. Marchesi  <jemarch@gnu.org>

	* libpoke/pkl-typify.c (pkl_typify1_ps_first_operand): Do not
	handle UNMAP.
	(pkl_tipify1_ps_op_unmap): Fix diagnostics.
	* testsuite/poke.pkl/unmap-diag-1.pk: New test.
	* testsuite/Makefile.am (EXTRA_DIST): Add new test.

2022-01-19  Jose E. Marchesi  <jemarch@gnu.org>

	* libpoke/pkl-typify.c (pkl_typify1_ps_first_operand): Fix
	diagnostics.
	* testsuite/poke.pkl/bnot-diag-1.pk: Adapt expected error.
	* testsuite/poke.pkl/neg-diag-1.pk: Likewise.
	* testsuite/poke.pkl/pos-diag-1.pk: Likewise.

2022-01-19  Jose E. Marchesi  <jemarch@gnu.org>

	* libpoke/pkl-typify.c (pkl_typify1_ps_op_boolean): Fix
	diagnostics.
	* testsuite/poke.pkl/and-diag-1.pk: Adapt test.
	* testsuite/poke.pkl/and-diag-2.pk: New test.
	* testsuite/Makefile.am (EXTRA_DIST): Add new test.

2022-01-19  Jose E. Marchesi  <jemarch@gnu.org>

	* libpoke/pkl-tab.y (primary): Add location information for
	lambdas.

2022-01-19  Jose E. Marchesi  <jemarch@gnu.org>

	* libpoke/pkl-typify.c (INVALID_FIRST_OPERAND): Define.
	(INVALID_SECOND_OPERAND): Likewise.
	(pkl_typify1_ps_op_rela): Fix diagnostics.
	* testsuite/poke.pkl/eq-any-diag-1.pk: Adapt expected error.
	* testsuite/poke.pkl/neq-any-diag-1.pk: Likewise.
	* testsuite/poke.pkl/lt-functions-diag-1.pk: Likewise.
	* testsuite/poke.pkl/lt-arrays-diag-1.pk: Likewise.
	* testsuite/poke.pkl/le-functions-diag-1.pk: Likewise.
	* testsuite/poke.pkl/le-arrays-diag-1.pk: Likewise.
	* testsuite/poke.pkl/gt-functions-diag-1.pk: Likewise.
	* testsuite/poke.pkl/gt-arrays-diag-1.pk: Likewise.
	* testsuite/poke.pkl/ge-functions-diag-1.pk: Likewise.
	* testsuite/poke.pkl/ge-arrays-diag-1.pk: Likewise.

2022-01-19  Jose E. Marchesi  <jemarch@gnu.org>

	* libpoke/pkl-typify.c (pkl_typify1_ps_op_not): Fix diagnostics.
	* testsuite/poke.pkl/not-diag-1.pk: New test.
	* testsuite/Makefile.am (EXTRA_DIST): Add new test.

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

	* libpoke/pkl-typify.c (pkl_typify1_ps_type_struct): Disallow
	labels in unions.
	* doc/poke.texi (Unions): Update.
	* testsuite/poke.pkl/union-diag-9.pk: New test.
	* testsuite/Makefile.am (EXTRA_DIST): Update.

2022-01-19  Jose E. Marchesi  <jemarch@gnu.org>

	* libpoke/std.pk (openproc): New function.
	* doc/poke.texi (openproc): New section.

2022-01-18  Luca Saiu  <positron@gnu.org>

	* bootstrap.conf (bootstrap_post_import_hook): Use the specified
	--gnulib-srcdir for bootstrapping Jitter as well: redefine
	GNULIB_SRCDIR to be an absolute path, then cd to the Jitter source
	directory and pass Gnulib's absolute path to Jitter's bootstrap
	script; do not rely on a hardwired --gnulib-srcdir=../gnulib .
	(bootstrap_post_import_hook): Add missing quotations when
	expanding GNULIB_SRCDIR and JITTER_SRCDIR.
	* etc/hacking.org: Documentation: describe --jitter-srcdir=... in
	a correct context, also passing --gnulib-srcdir=... as required.

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

	* libpoke/pkl-typify.c (pkl_typify1_ps_type_struct): Disallow
	labels in pinned structs.
	* doc/poke.texi (Pinned Structs): Update.
	* testsuite/poke.pkl/scons-label-diag-1.pk: New test.
	* testsuite/Makefile.am (EXTRA_DIST): Update.

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

	* libpoke/pkl-typify.c (pkl_typify1_ps_type_struct): Disallow
	pinned unions.
	* doc/poke.texi (Unions): Update.
	* testsuite/poke.pkl/pinned-union-diag-1.pk: New test.
	* testsuite/Makefile.am (EXTRA_DIST): Update.

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

	* testsuite/lib/poke-dg.exp (dg-require): Refer to etc/hacking.org
	instead of HACKING.

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

	* libpoke/pkl-diag.c (pkl_warning): Honor pkl_quiet_p for warning location.
	(pkl_warning): Do not handle
	pkl_error_on_warning here.
	* libpoke/pkl-anal.c (pkl_anal2_ps_struct_type_field): Do it here.
	(pkl_anal2_ps_type_struct): And here.
	* testsuite/poke.cmd/set-error-on-warning.pk: Do not test error
	case here.
	* testsuite/poke.cmd/set-error-on-warning-diag.pk: New test.
	* testsuite/Makefile.am (EXTRA_DIST): Add new test.

2022-01-17  Jose E. Marchesi  <jemarch@gnu.org>

	* poke/pk-scrabble.pk (scrabble): Move variable declaration up to
	avoid allocation overhead in loop.

2022-01-17  Jose E. Marchesi  <jemarch@gnu.org>

	* doc/poke.texi (Simple Configuration): Renamed from Getting
	Started.

2022-01-17  Jose E. Marchesi  <jemarch@gnu.org>

	* doc/poke.texi (Setting up Hyperlinks): New chapter.

2022-01-17  Jose E. Marchesi  <jemarch@gnu.org>

	* etc/poke-default.css (.setting-integer): New class.
	(.setting-string): Likewise.
	(.setting-boolean): Likewise.
	* poke/pk-settings.pk (pk_settings_dump): Add styling to the
	setting values.
	Add a table header.

2022-01-17  Jose E. Marchesi  <jemarch@gnu.org>

	* poke/pk-settings.pk (pk_settings_dump): Emit a
	Toggling... message in hyperlink actions.

2022-01-17  Jose E. Marchesi  <jemarch@gnu.org>

	* poke/pk-settings.pk: Add documentation for the `endian' setting.

2022-01-17  Jose E. Marchesi  <jemarch@gnu.org>

	* doc/settings-to-texi.pk: New file.
	* doc/Makefile.am (poke_TEXINFOS): Add poke-settings.texi.
	(poke-settings.texi): Rule to enerate poke-settings.texi.
	(MAINTAINERCLEANFILES): Add poke-settings.texi.
	(EXTRA_DIST): Likewise.
	* doc/poke.texi (set command): Include poke-settings.texi.

2022-01-17  Jose E. Marchesi  <jemarch@gnu.org>

	* poke/pk-settings.pk (pk_settings_dump): Avoid allocating a
	local.
	Reorder setting entries.

2022-01-17  Jose E. Marchesi  <jemarch@gnu.org>

	* poke/pk-settings.pk (pk_settings_dump): Do not quote the values
	of string setting values.

2022-01-17  Jose E. Marchesi  <jemarch@gnu.org>

	* poke/pk-settings.pk (pk_settings_dump): Add [toggle] button for
	boolean settings.

2022-01-17  Jose E. Marchesi  <jemarch@gnu.org>

	* poke/poke.c (initialize): Initialize the value of pk_hserver_p.
	* poke/poke.pk (pk_hserver_p): Define.

2022-01-17  Jose E. Marchesi  <jemarch@gnu.org>

	* poke/pk-table.pk (Pk_Table.print_table): Do not emit fill
	characters for the last columns in the table.

2022-01-17  Jose E. Marchesi  <jemarch@gnu.org>

	* poke/pk-cmd-set.c (pk_cmd_set_dump): Make an hyperlink for
	error-on-warning.

2022-01-17  Jose E. Marchesi  <jemarch@gnu.org>

	* poke/pk-table.pk: New file.
	* poke/Makefile.am (dist_pkgdata_DATA): Add pk-table.pk.
	* poke/pk-settings.pk (pk_settings_dump): Use pk_table.

2022-01-17  Jose E. Marchesi  <jemarch@gnu.org>

	* poke/pk-map.c (pk_map_alien_token_handler): Remove spurious
	trace.

2022-01-17  Jose E. Marchesi  <jemarch@gnu.org>

	* libpoke/pkl-trans.c (pkl_trans1_pr_loop_stmt): New handler.
	(pkl_phase_trans1): Register handler.
	(pkl_trans1_ps_loop_stmt): for-loops with decl heads also
	introduce a lexical scope.
	* testsuite/poke.pkl/struct-method-18.pk: New test.
	* testsuite/poke.pkl/struct-method-19.pk: Likewise.
	* testsuite/Makefile.am (EXTRA_DIST): Add new tests.

2022-01-17  Jose E. Marchesi  <jemarch@gnu.org>

	* poke/pk-help.pk: Support a synopsis entry for "settings" help
	entries.
	* poke/pk-settings.pk: Set the synopsis of help entries to
	`usage'.
	Make `setter' to return a boolean.

2022-01-16  Jose E. Marchesi  <jemarch@gnu.org>

	* poke/pk-help.pk: Document .set without arguments.

2022-01-16  Jose E. Marchesi  <jemarch@gnu.org>

	* utils/pk-bin2poke.in: Handle command-line argument --var/-v.

2022-01-16  Jose E. Marchesi  <jemarch@gnu.org>

	* utils/pk-strings.in: Add emacs local variables.
	* utils/pk-bin2poke.in: Likewise.

2022-01-16  Jose E. Marchesi  <jemarch@gnu.org>

	* libpoke/ios-dev-stream.c (ios_dev_stream_pread): Fix handling of
	errors and EOF in buffer write-back.
	* libpoke/ios-buffer.c (ios_buffer_allocate_new_chunk): Use IOD_OK
	instead of 0.
	(ios_buffer_pread): Likewise.
	(ios_buffer_pwrite): Likewise.
	(ios_buffer_forget_till): Likewise.

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

	* testsuite/lib/poke.exp (tests_pattern): New variable.
	(tests_pattern_pk): Likewise.
	* testsuite/poke.cmd/cmd.exp: Use `tests_pattern`.
	* 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.std/std.exp: Likewise.
	* testsuite/poke.time/time.exp: Likewise.
	* etc/hacking.org (Run selected tests): New section.

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

	* libpoke/ios-dev.h (struct ios_dev_if): Move comments to
	libpoke.h.
	* libpoke/libpoke.h (struct ios_iod_if): Add comments moved
	from ios-dev.h

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

	* libpoke/libpoke.h (pk_array_elem_value): Rename from
	pk_array_elem_val.
	* libpoke/pk-val.c (pk_array_elem_value): Likewise.
	* poke/pk-cmd-set.c (pk_cmd_set_init): Update accordingly.
	* poke/pk-mi-json.c (pk_val_to_json_array): Likewise.
	* poke/pk-ios.c (pk_open_file): Likewise.

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

	* libpoke/libpoke.h (PK_VAL_TYPE): Define.
	* libpoke/pk-val.c (pk_val_kind): Return PK_VAL_TYPE for types.

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

	* libpoke/libpoke.h (PK_TYPE_UNKNOWN): Rename from PK_UNKNOWN.
	(PK_TYPE_INT): Likewise.
	(PK_TYPE_UINT): Likewise.
	(PK_TYPE_STRING): Likewise.
	(PK_TYPE_OFFSET): Likewise.
	(PK_TYPE_ARRAY): Likewise.
	(PK_TYPE_STRUCT): Likewise.
	(PK_TYPE_CLOSURE): Likewise.
	(PK_TYPE_ANY): Likewise.
	(PK_VAL_INT): Define.
	(PK_VAL_UINT): Likewise.
	(PK_VAL_STRING): Likewise.
	(PK_VAL_OFFSET): Likewise.
	(PK_VAL_ARRAY): Likewise.
	(PK_VAL_STRUCT): Likewise.
	(PK_VAL_CLOSURE): Likewise.
	Prototype for pk_val_kind.
	* libpoke/pk-val.c (pk_val_kind): New function.
	(pk_type_code): Adapt to use PK_TYPE_* values.
	* poke/pk-ios.c (pk_open_file): Adapt accordingly.
	* poke/pk-map.c (pk_map_load_parsed_map): Likewise.
	(pk_map_resolve_map): Likewise.
	* poke/pk-mi-msg.c: Likewise.
	* poke/pk-mi-msg.def: Likewise.
	* poke/pk-mi-json.c: Likewise.

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

	* doc/poke.texi (Field Labels): Update section taking into account
	integral structs.

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

	* poke/poke-cmd-misc.c (pk_cmd_jmd): New quote.

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

	* libpoke/pvm.h (pvm_run): Add new arg for exception.
	* libpoke/pvm.c (pvm_run): Report exception.
	(pvm_call_closure): Fix pvm_run invocation.
	(PVM_STATE_EXCEPTION_VALUE): New macro.
	* libpoke/pkl.h (pkl_execute_file): Add new arg for exception.
	(pkl_execute_buffer): Likewise.
	(pkl_execute_expression): Likewise.
	(pkl_execute_statement): Likewise.
	* libpoke/pkl.c (pkl_execute_file): Likewise.
	(pkl_execute_buffer): Likewise.
	(pkl_execute_expression): Likewise.
	(pkl_execute_statement): Likewise.
	* libpoke/libpoke.h (pk_file_compile): Likewise.
	(pk_compile_buffer): Likewise.
	(pk_compile_statement): Likewise.
	(pk_compile_expression): Likewise.
	* libpoke/libpoke.c (pk_file_compile): Likewise.
	(pk_compile_buffer): Likewise.
	(pk_compile_statement): Likewise.
	(pk_compile_expression): Likewise.
	(pk_call): Fix pvm_run invocation.
	* libpoke/pvm.jitter (state-struct-backing-c): Add new field.
	(popexite): Add new instruction.
	* libpoke/pkl-insn.def: Likewise.
	* libpoke/pkl-rt-1.pk (_pkl_exception_handler): Change return value
	to `Exception` from `int<32>`.
	* libpoke/pkl-asm.c (pkl_asm_finish): Update to report exception.
	* poke/pk-cmd-ios.c (pk_cmd_load_file): Fix comment.
	* poke/pk-map.c (pk_map_load_parsed_map): Likewise.
	* poke/poke.c (parse_args_2): Update to use exception value.
	* libpoke/std.pk (exit): Set `name` field.

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

	* libpoke/libpoke.h (PK_EC_*): Add macros for standard exception
	codes.
	* libpoke/pkl-rt-1.pk: Update comment to mention libpoke.h.
	* libpoke/pvm.h: Likewise.

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

	* libpoke/pkl-diag.c (pkl_detailed_location): Normalize tabs to
	spaces in the source location line to avoid displacements.

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

	* libpoke/pvm-val.c (pvm_typeof): If given a type value, return
	the value.
	* libpoke/pvm.jitter (typof): Change documentation accordingly.
	* libpoke/libpoke.h (pk_typeof): Likewise.
	* testsuite/poke.libpoke/values.c (test_pk_typeof): New function.
	(main): Call test_pk_typeof.

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

	* poke/pk-cmd-vm.c (pk_cmd_vm_disas_fun): Likewise.
	* libpoke/pkl.c (pkl_execute_buffer): Get an argument exit_status.
	(pkl_execute_statement): Likewise.
	(pkl_execute_expression): Likewise.
	* libpoke/libpoke.c (pk_compile_buffer): Likewise.
	(pk_compile_statement): Likewise.
	(pk_compile_expression): Likewise.
	* libpoke/pkl.h: Adjust function prototypes accordingly.
	* libpoke/libpoke.h: Likewise.
	* poke/pk-cmd.c (pk_cmd_exec): Pass additional arguments to
	pk_compile_{buffer,statement}.
	* testsuite/poke.libpoke/values.c (testcase_pk_val_equal_p): Likewise.
	* testsuite/poke.libpoke/foreign-iod.c (main): Likewise.
	(TEST_IO): Likewise.
	(main): Likewise.
	* poke/pk-mi.c (pk_mi_dispatch_msg): Likewise.
	* poke/pk-map.c (pk_map_load_parsed_map): Likewise.
	(pk_map_load_parsed_map): Likewise.
	(pk_map_load_parsed_map): Likewise.
	* testsuite/poke.mi-json/mi-json.c (compile_initial_poke_code): LIkewise.
	(compile_poke_expression): Likewise.

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

	* utils/pk-bin2poke.in: New file.
	* utils/Makefile.am (pk-bin2poke): New rule.
	(EXTRA_DIST): Add pk-bin2poke.
	(bin_SCRIPTS): Likewise.

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

	* libpoke/pkl-ast.h (pkl_ast_type_integrable_p): New function.
	(struct pkl_ast_type): Add field for array integrator closure.
	(PKL_AST_TYPE_A_INTEGRATOR): New accessor macro.
	* libpoke/pkl-ast.c (pkl_ast_make_array_type): Add integrator field.
	(pkl_ast_type_integrable_p): New function.
	* libpoke/pkl-typify.c (pkl_typify1_ps_cast): Handle cast from
	array to integer.
	* libpoke/pkl-gen.c (pkl_gen_pr_decl): Add array integrator.
	(pkl_gen_pr_cast): Likewise.
	(pkl_gen_pr_type_array): Likewise.
	* libpoke/pkl-gen.pks (array_integrator): Add implementation of
	array integrator.
	* testsuite/poke.pkl/array-integ-1.pk: New test.
	* testsuite/poke.pkl/array-integ-1.pk: Likewise.
	* testsuite/poke.pkl/array-integ-2.pk: Likewise.
	* testsuite/poke.pkl/array-integ-3.pk: Likewise.
	* testsuite/poke.pkl/array-integ-4.pk: Likewise.
	* testsuite/poke.pkl/array-integ-5.pk: Likewise.
	* testsuite/poke.pkl/array-integ-6.pk: Likewise.
	* testsuite/poke.pkl/array-integ-7.pk: Likewise.
	* testsuite/poke.pkl/array-integ-8.pk: Likewise.
	* testsuite/poke.pkl/array-integ-9.pk: Likewise.
	* testsuite/poke.pkl/array-integ-10.pk: Likewise.
	* testsuite/poke.pkl/array-integ-11.pk: Likewise.
	* testsuite/poke.pkl/array-integ-12.pk: Likewise.
	* testsuite/poke.pkl/array-integ-13.pk: Likewise.
	* testsuite/poke.pkl/array-integ-14.pk: Likewise.
	* testsuite/poke.pkl/array-integ-15.pk: Likewise.
	* testsuite/poke.pkl/array-integ-16.pk: Likewise.
	* testsuite/poke.pkl/array-integ-17.pk: Likewise.
	* testsuite/poke.pkl/array-integ-18.pk: Likewise.
	* testsuite/poke.pkl/array-integ-19.pk: Likewise.
	* testsuite/poke.pkl/array-integ-20.pk: Likewise.
	* testsuite/poke.pkl/array-integ-21.pk: Likewise.
	* testsuite/poke.pkl/array-integ-22.pk: Likewise.
	* testsuite/poke.pkl/array-integ-23.pk: Likewise.
	* testsuite/poke.pkl/array-integ-24.pk: Likewise.
	* testsuite/poke.pkl/array-integ-25.pk: Likewise.
	* testsuite/poke.pkl/array-integ-26.pk: Likewise.
	* testsuite/poke.pkl/array-integ-27.pk: Likewise.
	* testsuite/poke.pkl/array-integ-28.pk: Likewise.
	* testsuite/poke.pkl/array-integ-29.pk: Likewise.
	* testsuite/poke.pkl/array-integ-30.pk: Likewise.
	* testsuite/poke.pkl/array-integ-31.pk: Likewise.
	* testsuite/poke.pkl/array-integ-32.pk: Likewise.
	* testsuite/poke.pkl/array-integ-33.pk: Likewise.
	* testsuite/poke.pkl/array-integ-34.pk: Likewise.
	* testsuite/Makefile.am (EXTRA_DIST): Update.

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

	* libpoke/pkl-gen.pks (struct_field_inserter): Use `zero_extend_64`.
	(struct_deintegrator): Likewise.

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

	* libpoke/pkl-gen.pks (zero_extend_64): Add new macro.

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

	* libpoke/pvm-val.c (pvm_print_val_1): Add `0x` prefix to
	`{,u}long_fmt`.
	* testsuite/poke.pkl/bconc-4.pk: Fix the test.

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

	* libpoke/pkl-insn.def (PKL_INSN_LUTOLU): Fix to use `lutolu`
	insn.
	* poke.pkl/cast-integers-18.pk: New test.
	* testsuite/Makefile.am (EXTRA_DIST): Update.

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

	* libpoke/pkl-gen.pks (struct_field_inserter): Use 64-bit
	arithmetic.
	* testsuite/poke.pkl/deint-struct-12.pk: New test.
	* testsuite/Makefile.am (EXTRA_DIST): Add new test.

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

	* libpoke/pkl-ast.h: Prototype for pkl_ast_sizeof_integral_type.
	* libpoke/pkl-ast.c (pkl_ast_sizeof_integral_type): New function.
	* libpoke/pkl-typify.c (pkl_typify1_ps_type_struct): Allow
	integral structs nested in other integral structs.
	* libpoke/pkl-gen.h (PKL_GEN_CTX_IN_INTEGRATOR): Define.
	(PKL_GEN_CTX_IN_DEINTEGRATOR): Likewise.
	* libpoke/pkl-gen.c (pkl_gen_pr_decl): Use a dedicated context
	when compiling struct type integrators.
	(pkl_gen_pr_cast): Likewise.
	(pkl_gen_pr_type_struct): Add in_integrator and in_deintegrator
	cases.
	* libpoke/pkl-gen.pks (struct_field_extractor): Support nested
	integral structs.
	(struct_field_inserter): Likewise.
	(struct_writer): Likewise.
	(struct_integrator): Likewise.
	(deint_extract_field_value): Likewise.
	(struct_deintegrator): Likewise.
	* testsuite/poke.pkl/int-struct-type-diag-9.pk: Rewrite test.
	* testsuite/poke.pkl/int-struct-type-diag-15.pk: New test.
	* testsuite/poke.pkl/int-struct-3.pk: Likewise.
	* testsuite/poke.pkl/int-struct-4.pk: Likewise.
	* testsuite/poke.map/maps-int-structs-29.pk: Likewise.
	* testsuite/poke.pkl/scons-int-struct-5.pk: Likewise.
	* testsuite/poke.pkl/deint-struct-10.pk: Likewise.
	* testsuite/poke.pkl/deint-struct-11.pk: Likewise.
	* testsuite/poke.map/ass-map-24.pk: Likewise.
	* testsuite/poke.map/asss-map-25.pk: Likewise.
	* testsuite/Makefile.am (EXTRA_DIST): Add new tests.

2022-01-05  Jose E. Marchesi  <jemarch@gnu.org>

	* testsuite/Makefile.am (EXTRA_DIST): Add missing test.

2022-01-05  Jose E. Marchesi  <jemarch@gnu.org>

	* cfg.mk: Set INDENT_SOURCES to the empty string.

2022-01-05  Jose E. Marchesi  <jemarch@gnu.org>

	* gui/poke-gui.c (load_script): Do not use alloca.
	* bootstrap.conf (gui_modules): Do not use the gnulib alloca
	module.

2022-01-05  Jose E. Marchesi  <jemarch@gnu.org>

	* libpoke/pkl-gen.c (pkl_gen_pr_type_struct): Compile printer and
	formater closures conditionally but install environment
	unconditionally.
	* testsuite/poke.pkl/printf-37.pk: New test.
	* testsuite/Makefile.am (EXTRA_DIST): Add new test.

2022-01-05  Jose E. Marchesi  <jemarch@gnu.org>

	* libpoke/pkl-gen.c (pkl_gen_pr_decl): Compile type closures
	conditionally but install environment unconditionally.
	(LMAP): Likewise.
	(pkl_gen_pr_array): Likewise.
	(pkl_gen_pr_struct): Likewise.
	* testsuite/poke.map/maps-structs-19.pk: Likewise.
	* testsuite/poke.map/nsmap-6.pk: Likewise.
	* testsuite/poke.pkl/scons-65.pk: New test.
	* testsuite/poke.pkl/scons-66.pk: Likewise.
	* testsuite/poke.pkl/scons-67.pk: Likewise.
	* testsuite/poke.map/write-structs-1.pk: Likewise.
	* testsuite/Makefile.am (EXTRA_DIST): Add new tests.

2022-01-04  David Faust  <david.faust@oracle.com>

	* testsuite/poke.pickles/btf-test.pk: New test.

2022-01-04  David Faust  <david.faust@oracle.com>

	* pickles/btf.pk (BTF_Header): Adjust constraint on magic number
	to properly set endianness as needed.

2022-01-04  Jose E. Marchesi  <jemarch@gnu.org>

	* libpoke/pkl-gen.c (pkl_gen_pr_type_struct): Do not install a
	writer closure in the AST type nodes for anonymous structs.

2022-01-04  Jose E. Marchesi  <jemarch@gnu.org>

	* libpoke/pkl-gen.c: Remove obsolete comments.  The GEN contexts
	are now exclusive so the ordering of conditional clauses doesn't
	matter anymore.

2022-01-04  Jose E. Marchesi  <jemarch@gnu.org>

	* libpoke/pkl-gen.pks (union_writer): New function.
	* libpoke/pkl-gen.c (pkl_gen_pr_decl): Compile an union writer for
	unions.
	(pkl_gen_pr_type_struct): Likewise.
	(LMAP): Likewise.
	* testsuite/poke.map/write-unions-1.pk: New test.
	* testsuite/poke.map/write-unions-2.pk: Likewise.
	* testsuite/poke.map/write-unions-3.pk: Likewise.
	* testsuite/poke.map/ass-map-23.pk: Likewise.
	* testsuite/Makefile.am (EXTRA_DIST): Add new tests.

2022-01-04  Jose E. Marchesi  <jemarch@gnu.org>

	* libpoke/pkl-gen.pks (struct_field_mapper): Fix backing up of GEN
	endianness.
	(struct_field_writer): Likewise.

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

	* pickles/btf-dump.pk (btf_dump_type_vdata): Use EXCOND operator.
	* pickles/ctf-dump.pk (ctf_dump_vlen_data): Likewise.

2022-01-03  Jose E. Marchesi  <jemarch@gnu.org>

	* libpoke/pkl-gen.pks (struct_field_inserter): Remove comment.
	* etc/poke.rec (Support for optional fields in integral structs):
	Remove as not applicable.

2022-01-02  Jose E. Marchesi  <jemarch@gnu.org>

	* etc/poke.rec (Allow splitting lines in RAS with \ at EOL):
	Remove as done.

2022-01-02  Jose E. Marchesi  <jemarch@gnu.org>

	* libpoke/ras: New rule to join continuation lines separated with
	\.
	* libpoke/pkl-gen.pks (struct_field_extractor): Split long lines.
	(struct_mapper): Likewise.
	(deint_extract_field_value): Likewise.
	(struct_deintegrator): Likewise.

2022-01-02  Jose E. Marchesi  <jemarch@gnu.org>

	* libpoke/pkl-gen.pks (field_location_str): New macro.
	(check_struct_field_constraint): Use field_location_str.
	(struct_field_mapper): Add location error message when EOF is
	raised while mapping.
	* testsuite/poke.map/maps-structs-eof-1.pk: New test.
	* testsuite/Makefile.am (EXTRA_DIST): Add new test.

2022-01-02  Jose E. Marchesi  <jemarch@gnu.org>

	* poke/pk-cmd-ios.c (pk_cmd_load_file): Handle return value of
	pk_file_readable the proper way.

2022-01-02  Jose E. Marchesi  <jemarch@gnu.org>

	* poke/pk-help.pk (pk_help): Print synopsis only if it is actually
	present.

2021-12-31  Jose E. Marchesi  <jemarch@gnu.org>

	* DEV-NEWS: Remove file.
	* etc/hacking.org: Remove section on recording noteworthy
	development changes.
	* HACKING: Regenerate.

2021-12-31  Jose E. Marchesi  <jemarch@gnu.org>

	* libpoke/pkl-asm.c (pkl_asm_for_loop): Do not create an extra
	unused label and use label2.
	(pkl_asm_for_endloop): Use label2 instead of label3.

2021-12-31  Jose E. Marchesi  <jemarch@gnu.org>

	* libpoke/pkl-parser.c (YYSTYPE): Remove XXX mark.
	(YYLTYPE): Likewise.

2021-12-31  Jose E. Marchesi  <jemarch@gnu.org>

	* doc/poke.texi (Integral Structs): Add some text.

2021-12-31  Jose E. Marchesi  <jemarch@gnu.org>

	* etc/poke.rec (Support for struct deintegrators): Remove as done.

2021-12-30  Jose E. Marchesi  <jemarch@gnu.org>

	* libpoke/pkl-ast.h (PKL_AST_TYPE_S_DEINTEGRATOR): Define.
	* libpoke/pkl-ast.c (pkl_ast_make_struct_type): Increase the
	number of closures to 8.
	(pkl_ast_make_struct_type): Initialize deintegrator to PVM_NULL.
	* libpoke/pkl-typify.c (pkl_typify1_ps_cast): Allow casts from
	integral types to integral structs.
	* libpoke/pkl-promo.c (pkl_promo_ps_cast): New handler.
	(pkl_phase_promo): Install handler.
	* libpoke/pkl-gen.c (pkl_gen_pr_decl): Compile deintegrator
	closures for named struct types.
	* libpoke/pkl-gen.pks (struct_deintegrator): New function.
	(deint_extract_field_value): New macro.
	(struct_constructor): Do not check for constraint errors if
	`be_strict' is set to false.
	* testsuite/poke.pkl/deint-struct-1.pk: New test.
	* testsuite/poke.pkl/deint-struct-2.pk: Likewise.
	* testsuite/poke.pkl/deint-struct-3.pk: Likewise.
	* testsuite/poke.pkl/deint-struct-4.pk: Likewise.
	* testsuite/poke.pkl/deint-struct-5.pk: Likewise.
	* testsuite/poke.pkl/deint-struct-6.pk: Likewise.
	* testsuite/poke.pkl/deint-struct-7.pk: Likewise.
	* testsuite/poke.pkl/deint-struct-8.pk: Likewise.
	* testsuite/poke.pkl/deint-struct-9.pk: Likewise.
	* testsuite/Makefile.am (EXTRA_DIST): Add new tests.
	* doc/poke.texi (Casting Structs): Note that it is possible to
	cast an integral value to an integral struct.

2021-12-27  Mohammad-Reza Nabipoor  <mnabipoor@gnu.org>

	* pickles/btf.pk (BTF_Type): s/enum/_enum/.
	* pickles/ctf.pk (CTF_Type): Likewise.
	* pickles/btf-dump.pk (btf_dump_type_vdata): Likewise.
	* pickles/ctf-dump.pk (ctf_dump_vlen_data): Likewise.

2021-12-27  Jose E. Marchesi  <jemarch@gnu.org>

	* libpoke/pkl-lex.l: Recognize `enum' as a reserved word.

2021-12-27  Jose E. Marchesi  <jemarch@gnu.org>

	* libpoke/ras: Support IOS_ENDIAN_LSB and IOS_ENDIAN_MSB as
	instruction values (v).

2021-12-27  Mohammad-Reza Nabipoor  <mnabipoor@gnu.org>

	* libpoke/pvm.jitter (state-struct-backing-c): Remove `canary` field.
	Add `canary_{,return,exception}stack` fields.
	(state-initialization-c): Init new fields.
	(canary): Install canaries for stacks.
	(exit): Add assertions for stack canaries.
	(strace): s/canary/canary_stack/.

2021-12-27  Mohammad-Reza Nabipoor  <mnabipoor@gnu.org>

	* libpoke/pkl-gen.c (pkl_gen_pr_op_excond): Add missing `pope` insn.

2021-12-26  Mohammad-Reza Nabipoor  <mnabipoor@gnu.org>

	* libpoke/pkl-ast.h (struct pkl_ast_return_stmt): Add new field
	`npopes` (number of `pope`s).
	(PKL_AST_RETURN_STMT_NPOPES): New macro.
	* libpoke/pkl-ast.c (pkl_ast_finish_returns_1): Add new arg `npopes`
	to count the `pope`s.
	(pkl_ast_finish_returns): Likewise.
	* libpoke/pkl-gen.c (pkl_gen_ps_return_stmt): Insert necessary `pope`
	instruction(s).

2021-12-26  Jose E. Marchesi  <jemarch@gnu.org>

	* libpoke/pvm-val.c (pvm_make_signed_integral): Return PK_NULL if
	an invalid `size' argument is provided.
	(pvm_make_unsigned_integral): Likewise.
	* libpoke/pvm.h: Document that these functions return PK_NULL in
	case an invalid size is provided.
	* libpoke/pk-val.c (pk_make_uint): Use pvm_make_unsigned_integral.
	(pk_make_int): Use pvm_make_signed_integral.

2021-12-26  Jose E. Marchesi  <jemarch@gnu.org>

	* pickles/argp.pk (argp_parse): Remove dots after non-sentences in
	the default help summaries.

2021-12-26  Jose E. Marchesi  <jemarch@gnu.org>

	* pickles/asn1-ber.pk (BER_Data_Value): Use the ?! operator in the
	is_indefinite method.

2021-12-26  Jose E. Marchesi  <jemarch@gnu.org>

	* libpoke/pvm.h (pvm_make_signed_integral): New prototype.
	(pvm_make_unsigned_integral): Likewise.
	* libpoke/pvm-val.c (pvm_make_signed_integral): New function.
	(pvm_make_unsigned_integral): Likewise.

2021-12-26  Jose E. Marchesi  <jemarch@gnu.org>

	* libpoke/pkl-insn.def: Define PKL_INSN_SSETI.
	* libpoke/pvm.jitter (sseti): New instruction.

2021-12-26  Jose E. Marchesi  <jemarch@gnu.org>

	* libpoke/pkl-asm.pks (ssetc): Renamed from sseti.
	* libpoke/pkl-asm.c (pkl_asm_insn_ssetc): Likewise.
	(pkl_asm_insn): Likewise.
	* libpoke/pkl-insn.def: Likewise.
	* libpoke/pkl-gen.c (pkl_gen_pr_ass_stmt): Likewise.

2021-12-26  Jose E. Marchesi  <jemarch@gnu.org>

	* libpoke/pkl-ops.def: Entry for PKL_AST_OP_EXCOND.
	* libpoke/pkl-lex.l: Recognize `?!' as EXCOND.
	* libpoke/pkl-tab.y (EXCOND): New token.
	(expression): Add rule for EXCOND.
	* libpoke/pkl-typify.c (pkl_phase_typify1): Install handler.
	(pkl_typify1_ps_op_excond): New handler.
	* libpoke/pkl-gen.c (pkl_gen_pr_op_excond): New handler.
	(pkl_phase_gen): Install handler.
	* testsuite/poke.pkl/excond-diag-1.pk: New test.
	* testsuite/poke.pkl/excond-1.pk: Likewise.
	* testsuite/poke.pkl/excond-2.pk: Likewise.
	* testsuite/poke.pkl/excond-3.pk: Likewise.
	* testsuite/poke.pkl/excond-4.pk: Likewise.
	* testsuite/poke.pkl/excond-5.pk: Likewise.
	* testsuite/Makefile.am (EXTRA_DIST): Add new tests.
	* etc/poke.rec (Exception predicate operator !?): Remove as done.
	* doc/poke.texi (exception-predicate): New section.

2021-12-24  Jose E. Marchesi  <jemarch@gnu.org>

	* libpoke/pvm.jitter: Fix docstring for the instruction `pushe'.

2021-12-24  Jose E. Marchesi  <jemarch@gnu.org>

	* libpoke/pkl-gen-builtins.pks: New file.
	* libpoke/Makefile.am (libpoke_la_SOURCES): Add
	pkl-gen-builtins.pks and pkl-gen-builtins.pkc.
	(MOSTLYCLEANFILES): Add pkl-gen-builtins.pkc.tmp.
	(BUILT_SOURCES): Add pkl-gen-builtins.pkc.
	* libpoke/pkl-gen.c (pkl_gen_ps_comp_stmt): Use the RAS
	implementations of the compiler built-ins.

2021-12-23  Jose E. Marchesi  <jemarch@gnu.org>

	* pickles/asn1-ber.pk (BER_Identifier): Add integrity checks for
	`encoding'.

2021-12-23  Jose E. Marchesi  <jemarch@gnu.org>

	* pickles/asn1-ber.pk: New file.
	* pickles/Makefile.am (dist_pickles_DATA): Add asn1-ber.pk.

2021-12-23  Mohammad-Reza Nabipoor  <mnabipoor@gnu.org>

	* libpoke/ios-dev-file.c (ios_dev_file_open): Add new param `data`.
	* libpoke/ios-dev-mem.c (ios_dev_mem_open): Likewise.
	* libpoke/ios-dev-nbd.c (ios_dev_nbd_open): Likewise.
	* libpoke/ios-dev-proc.c (ios_dev_proc_open): Likewise.
	* libpoke/ios-dev-stream.c (ios_dev_stream_open): Likewise.
	* libpoke/ios-dev-zero.c (ios_dev_zero_open): Likewise.
	* libpoke/ios-dev-sub.c (ios_dev_sub_open): Likewise.
	* libpoke/ios-dev.h (struct ios_dev_if): Change `open` to accept new
	`data` param. Add new field `data`.
	* libpoke/libpoke.h (struct pk_iod_if): Likewise.
	* libpoke/ios.c (ios_open): Call `open` with IOD-specific data.
	* testsuite/poke.libpoke/foreign-iod.c (iod_op): Add new field
	`data`.
	(iod_open): Add new param `data`. Report success through `error`.
	(iod_if): Add user data.
	(USER_DATA): New constant.
	(main): Add test for user data.

2021-12-23  Jose E. Marchesi  <jemarch@gnu.org>

	* doc/poke.texi (Casting Arrays): New section.
	* etc/poke.rec (Document array casts in the manual): Removed as
	done.

2021-12-23  Jose E. Marchesi  <jemarch@gnu.org>

	* libpoke/pkl-typify.c (pkl_typify1_pr_func): Do not set location
	information in generated type.
	* libpoke/pkl-anal.c (pkl_anal1_pr_func): Fix checking for vararg
	arguments.

2021-12-23  Jose E. Marchesi  <jemarch@gnu.org>

	* libpoke/pkl-trans.c (pkl_trans1_ps_array): Emit an error instead
	of an ICE in case of a non-constant index in array initializer.
	* libpoke/pkl-anal.c (pkl_anal2_ps_array): Remove.
	(pkl_phase_anal2): Update accordingly.
	* testsuite/poke.pkl/arrays-initializer-diag-1.pk: New test.
	* testsuite/poke.pkl/arrays-initializer-diag-2.pk: Likewise.
	* testsuite/Makefile.am (EXTRA_DIST): Add new tests.

2021-12-23  Jose E. Marchesi  <jemarch@gnu.org>

	* libpoke/pkl-ast.c (pkl_ast_sizeof_type): Do not add location
	info to internally generated AST nodes.
	* libpoke/pkl-fold.c (OP_UNARY_OO): Likewise.
	(OP_BINARY_OOO): Likewise.
	(OP_BINARY_OIO): Likewise.
	(pkl_fold_ps_cast): Likewise.
	(pkl_fold_ps_indexer): Likewise.
	* libpoke/pkl-promo.c (pkl_promo_ps_type_array): Likewise.
	(pkl_promo_ps_array_initializer): Likewise.
	(pkl_promo_ps_map): Likewise.
	* libpoke/pkl-trans.c (pkl_trans1_ps_offset): Likewise
	(pkl_trans1_ps_trimmer): Likewise.
	(pkl_trans1_ps_format): Likewise.
	(pkl_trans1_ps_array): Likewise.
	(pkl_trans2_ps_type_offset): Likewise.
	(pkl_trans3_ps_op_sizeof): Likewise.
	* libpoke/pkl-typify.c (pkl_typify1_ps_op_not): Likewise.
	(pkl_typify1_ps_op_boolean): Likewise.
	(pkl_typify1_ps_isa): Likewise.
	(TYPIFY_BIN): Likewise.
	(CASE_OFFSET): Likewise.
	(CASE_OFFSET): Likewise.
	(pkl_typify1_ps_bshift_pow): Likewise.
	(pkl_typify1_ps_mul): Likewise.
	(pkl_typify1_ps_op_in): Likewise.
	(pkl_typify1_ps_op_bconc): Likewise.
	(pkl_typify1_ps_op_sizeof): Likewise.
	(pkl_typify1_ps_offset): Likewise.
	(pkl_typify1_ps_array): Likewise.
	(pkl_typify1_ps_trimmer): Likewise.
	(pkl_typify1_ps_indexer): Likewise.
	(pkl_typify1_ps_struct): Likewise.
	(pkl_typify1_pr_func): Likewise.
	(pkl_typify1_ps_loop_stmt_iterator): Likewise.
	(pkl_typify1_ps_attr): Likewise.

	* etc/poke.rec (remove unneeded locs in the passes/phases):
	Removed as done.

2021-12-23  Jose E. Marchesi  <jemarch@gnu.org>

	* etc/poke.rec (Pass the declaration's pk_value in callback
	pk_map_decl_fn): Removed as done.

2021-12-23  Jose E. Marchesi  <jemarch@gnu.org>

	* etc/poke.rec (.set with no arguments should give a summary of
	all options): Removed as done.

2021-12-23  Jose E. Marchesi  <jemarch@gnu.org>

	* libpoke/pkl-ast.c (pkl_ast_type_is_complete): Support constant
	labels in completed structs.
	(pkl_ast_sizeof_type): Take into account constant labels in
	structs.
	* testsuite/poke.pkl/offsets-14.pk: New test.
	* testsuite/poke.pkl/offsets-15.pk: Likewise.
	* testsuite/poke.pkl/offsets-16.pk: Likewise.
	* testsuite/poke.pkl/offsets-diag-1.pk: Adjust.
	* testsuite/Makefile.am (EXTRA_DIST): Add new tests.
	* etc/poke.rec (Consider struct types as complete if all labels
	are literal): Remove as done.

2021-12-22  Jose E. Marchesi  <jemarch@gnu.org>

	* pickles/elf-common.pk (elf_pretty_print_section_flags): New
	function.
	(Elf_SegmentFlags): New type.
	(Elf_Ident): Likewise.
	* pickles/elf-64.pk (Elf64_SectionFlags): Use
	elf_pretty_print_section_flags.
	(Elf64_SegmentFlags): Remove.
	(elf64_Ehdr): Use Elf_Ident.
	* pickles/elf-32.pk (Elf32_SectionFlags): New type.
	(Elf32_Shdr): Likewise.
	(Elf32_Phdr): Likewise.
	(Elf32_Ehdr): Likewise.
	(Elf32_File): Likewise.

2021-12-22  Jose E. Marchesi  <jemarch@gnu.org>

	* pickles/elf-common.pk (Elf_Note): New type.
	* pickles/elf-64.pk (Elf64_Note): Delete.
	* pickles/elf-32.pk (Elf32_Note): Likewise.

2021-12-22  Jose E. Marchesi  <jemarch@gnu.org>

	* pickles/elf-common.pk (elf_compress_algorithm_p): New function.
	* pickles/elf-32.pk (Elf32_Chdr): Use elf_compress_algorithm_p in
	constraint.
	* pickles/elf-64.pk (El64_Chdr): Likewise.

2021-12-22  Jose E. Marchesi  <jemarch@gnu.org>

	* pickles/elf-64.pk (Elf64_Note): Add field _type.
	(Elf64_Chdr): Add constraint and comments.
	* pickles/elf-32.pk (Elf32_Note): New type.
	(Elf32_Chdr): Likewise.

2021-12-22  Luca Saiu  <positron@gnu.org>

	* configure.ac (AC_JITTER_SUBPACKAGE): Rename to
	JITTER_JITTER_SUBPACKAGE, following the macro renaming in Jitter.
	* etc/hacking.org: Documentation.
	* HACKING: Regenerate documentation.

2021-12-21  Jose E. Marchesi  <jemarch@gnu.org>

	* pickles/elf-32.pk (Elf32_Sym): New type.
	* pickles/elf-common.pk (Elf_Sym_Info): Likewise.
	(Elf_Sym_Other_Info): Likewise.
	* pickles/elf-64.pk (Elf64_Sym): Use Elf_Sym_Info and
	Elf_Sym_Other_Info.

2021-12-21  Jose E. Marchesi  <jemarch@gnu.org>

	* pickles/elf64.pk: New file.
	* pickles/elf32.pk: Likewise.
	* pickles/elf-common.pk: Likewise.
	* pickles/elf.pk: Move contents to elf-common.pk and elf64.pk and
	load these pickles.
	* pickles/Makefile.am (dist_pickles_DATA): Add elf-64.pk,
	elf-32.pk and elf-common.pk.

2021-12-21  Jose E. Marchesi  <jemarch@termi>

	* libpoke/pkl-gen.c (PKL_GEN_PUSH_SET_CONTEXT): Define.
	Use PKL_GEN_PUSH_SET_CONTEXT instead of pairs of PUSH_CONTEXT and
	SET_CONTEXT.
	* libpoke/pkl-gen.pks: Likewise.

2021-12-21  Jose E. Marchesi  <jemarch@termi>,

	* libpoke/pkl-gen.c (pkl_gen_pr_decl): Use PKL_GEN_PUSH_CONTEXT
	instead of PKL_GEN_DUP_CONTEXT.
	(LMAP): Likewise.
	(pkl_gen_pr_ass_stmt): Likewise.
	(pkl_gen_pr_print_stmt): Likewise.
	(pkl_gen_pr_funcall): Likewise.
	(pkl_gen_pr_func): Likewise.
	(pkl_gen_pr_func_arg): Likewise.
	(pkl_gen_ps_isa): Likewise.
	(pkl_gen_pr_cast): Likewise.
	(pkl_gen_ps_cons): Likewise.
	(pkl_gen_pr_map): Likewise.
	(pkl_gen_pr_array): Likewise.
	(pkl_gen_pr_type_function): Likewise.
	(pkl_gen_pr_type_array): Likewise.
	(pkl_gen_pr_type_struct): Likewise.
	(PKL_GEN_DUP_CONTEXT): Remove.
	* libpoke/ras: Update comment to use GEN_PUSH_CONTEXT.

2021-12-19  Jose E. Marchesi  <jemarch@termi>

	* doc/poke.texi (Optional Fields): Explain how optional fields are
	always constructed/mapped.

2021-12-15  David Faust  <david.faust@oracle.com>

	* pickles/btf-ext.pk: New pickle.
	* pickles/Makefile.am: Add it to dist_pickles_DATA.

2021-12-15  David Faust  <david.faust@oracle.com>

	* pickles/btf.pk (BTF_KIND_FLOAT): New kind.
	(BTF_KIND_DECL_TAG): Likewise.
	(BTF_KIND_TYPE_TAG): Likewise.
	(BTF_DECL_TAG_SELF): New.
	(BTF_Decl_Tag): New type.
	(BTF_Type): Update `info` bits usage to accommodate new type
	kinds.  BTF_KIND_DATASEC uses `size` variant of `attrs`.  Add
	`decl_tag` variant to `data`.

2021-12-15  Jose E. Marchesi  <jemarch@gnu.org>

	* libpoke/pkl-typify.c (pkl_typify1_ps_cond_exp): Specify expected
	type in error message.
	* testsuite/poke.pkl/cond-exp-diag-2.pk: Adjust to new error message.
	* testsuite/poke.pkl/cond-exp-diag-3.pk: Likewise.

2021-12-10  Jose E. Marchesi  <jemarch@gnu.org>

	* etc/hacking.org (Building with Debugging support): Clarify how
	to build jitter with a debugging-friendly dispatch.
	* HACKING: Regenerate.

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

	* libpoke/pkl-trans.c (pkl_trans1_ps_format): Add support for `%%`
	in format string of `printf` and `format`.
	* doc/poke.texi (printf): Update.
	* testsuite/poke.pkl/printf-36.pk: New test.
	* testsuite/poke.pkl/format-36.pk: Likewise.
	* testsuite/Makefile.am (EXTRA_DIST): Update.

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

	* libpoke/libpoke.h (pk_map_decl_fn): Add new param (`pk_val value`).
	* libpoke/libpoke.c (my_decl_map_fn): Lookup var name in runtime env.
	(pk_decl_map): Pass runtime env to the callback.
	* poke/pk-cmd-def.c (print_var_decl): Add new param.
	(print_fun_decl): Likewise.
	(print_type_decl): Likewise.

2021-12-03  Jordan Yelloz  <jordan@yelloz.me>

	* libpoke/std.pk (atoi): Added code that extracts any single leading '+'
	or '-', decides a polarity of the number to parse, and shifts over the
	input string by 1 character if necessary before parsing the digits.
	* testsuite/poke.std/std-test.pk: Added tests for new behaviors.

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

	* poke/pk-cmd.c (pk_cmd_exec_1): Update `cmd_name` after finding
	the sub-command.
	* testsuite/poke.cmd/set-obase-6.pk: New test.
	* testsuite/Makefile.am (EXTRA_DIST): Update.

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

	* poke/pk-cmd.c (pk_cmd_exec_1): Introduce a new predicate
	`run_default_handler_p`. Now if user calls commands (which has
	sub-commands) with no arguments, it'll try to call the top-level
	handler (if there's one) instead of showing the usage string.
	If there's no top-level handler, the usage string will be shown.
	* poke/pk-cmd-set.c (pk_cmd_set_dump): New function to dump all
	settings.
	(set_cmd): Use `pk_cmd_set_dump`, and remove usage string.
	* poke/pk-settings.pk (pk_settings_dump): New helper function.
	* doc/poke.texi (set command): Update.

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

	* configure.ac: Bump poke version to 1.4.
	* NEWS: Add entries for 1.4.

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

	* libpoke/pkl-trans.c (pkl_trans2_ps_incrdecr): Substitute an
	assert with an ICE.

2021-12-02  Mohammad-Reza Nabipoor  <mnabipoor@gnu.org>

	* libpoke/pkl-gen.c (pkl_gen_pr_format): Fix assertion.

2021-12-02  Mohammad-Reza Nabipoor  <mnabipoor@gnu.org>

	* libpoke/pkl-rt-1.pk (_pkl_escape_string): Add special cases for
	tab (\t), new-line ('\n'), double-quote ('"') and backslash ('\\').
	* testsuite/poke.pkl/format-30.pk: New test.
	* testsuite/poke.pkl/format-31.pk: Likewise.
	* testsuite/poke.pkl/format-32.pk: Likewise.
	* testsuite/poke.pkl/format-33.pk: Likewise.
	* testsuite/poke.pkl/format-34.pk: Likewise.
	* testsuite/poke.pkl/format-35.pk: Likewise.

2021-12-02  Mohammad-Reza Nabipoor  <mnabipoor@gnu.org>

	* libpoke/pvm.jitter (strace): Re-implement using
	`JITTER_AT_DEPTH_STACK`.

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

	* etc/poke.rec: Triage.

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

	* etc/poke.rec (1.1): Add release.
	(1.2): Likewise.
	(1.3): Likewise.

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

	* etc/poke.rec (Support %< and %> in different printf.
	E_sc_underflow): Item removed, as it is no longer necessary due to
	begin_sc and end_sc.
	(Support for referring to current offset in struct types): Removed
	as done.

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

	* doc/poke.texi (set command): Remove mention of a limit that is
	no longer applicable.

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

	* libpoke/pkl-gen.pks (array_constructor): Generate the correct
	PVM type for the constructed array.
	* libpoke/pkl-gen.c (pkl_gen_pr_funcall): Likewise for the array
	of anys containing the varargs.
	(pkl_gen_ps_comp_stmt): Likewise for the array returned/consumed
	by the term_get_{bg}color builtins.
	* libpoke/pvm.jitter (asettb): Add an assertion to detect future
	occurrences of this problem.

2021-11-30  Jose E. Marchesi  <jemarch@gnu.org>

	* libpoke/pvm-val.c (common_int_types): New variable.
	(pvm_make_integral_type_1): New function.
	(pvm_make_integral_type): Rewrite to cache integral types.
	(pvm_val_initialize): Initialize common integral types and
	register GC roots for them.
	(pvm_val_finalize): De-register GC roots for common integral
	types.
	* libpoke/pvm.c (pvm_shutdown): Call pvm_val_finalize not
	pvm_val_initialize!

2021-11-30  Jose E. Marchesi  <jemarch@gnu.org>

	* libpoke/pvm.c (pvm_shutdown): Call pvm_val_finalize instead of
	pvm_val_initialize.

2021-11-30  Mohammad-Reza Nabipoor  <mnabipoor@gnu.org>

	* pickles/pktest.pk (pktest_run): Report location and message of
	failed assertion (if available) in output.
	* testsuite/poke.pktest/pktest-5.pk: Update accordingly.
	* testsuite/poke.pktest/pktest-7.pk: Likewise.
	* testsuite/poke.pktest/pktest-11.pk: Likewise.
	* testsuite/poke.pktest/pktest-12.pk: Likewise.

2021-11-30  Jose E. Marchesi  <jemarch@gnu.org>

	* libpoke/pvm-val.c (pvm_array_set): Avoid calculating the size of
	the remaining elements of the array.

2021-11-30  Jose E. Marchesi  <jemarch@gnu.org>

	* testsuite/poke.pkl/assert-4.pk: Update to new assertion
	exception fields.
	* testsuite/poke.pkl/assert-diag-1.pk: Likewise.

2021-11-30  Jose E. Marchesi  <jemarch@gnu.org>

	* libpoke/pkl-gen.pks (check_struct_field_constraint): Use
	`location' and `msg' fields of Exception.
	* testsuite/poke.map/maps-structs-constraints-2.pk: Update
	accordingly.
	* testsuite/poke.pkl/scons-constraints-2.pk: Likewise.
	* testsuite/poke.pkl/scons-constraints-1.pk: Likewise.
	* testsuite/poke.map/maps-structs-constraints-3.pk: Likewise.

2021-11-30  Jose E. Marchesi  <jemarch@gnu.org>

	* libpoke/pkl-rt-2.pk (_pkl_assert): Use the `location' and `msg'
	fields of Exception.

2021-11-30  Jose E. Marchesi  <jemarch@gnu.org>

	* libpoke/pvm-val.c (pvm_make_exception): Likewise.
	* libpoke/pkl-asm.c (pkl_asm_new): Adapt caller accordingly.
	* libpoke/pvm.jitter (PVM_RAISE): Likewise.
	* libpoke/pkl-gen.c: Likewise.
	* libpoke/ras: Likewise.
	* libpoke/pkl-rt-1.pk (Exception): New fields `location' and
	`msg'.
	(_pkl_exception_handler): Handle `location' and `msg'.

2021-11-30  Mohammad-Reza Nabipoor  <mnabipoor@gnu.org>

	* testsuite/poke.pkl/format-21.pk: Replace `Exception` with locally
	defined type `E`.
	* testsuite/poke.pkl/format-22.pk: Likewise.
	* testsuite/poke.pkl/format-23.pk: Likewise.
	* testsuite/poke.pkl/format-24.pk: Likewise.
	* testsuite/poke.pkl/format-25.pk: Likewise.
	* testsuite/poke.pkl/format-26.pk: Likewise.
	* testsuite/poke.pkl/format-27.pk: Likewise.
	* testsuite/poke.pkl/format-28.pk: Likewise.

2021-11-30  Jose E. Marchesi  <jemarch@gnu.org>

	* libpoke/pkl-rt-1.pk (Exception): Rename field `msg' to `name'.
	(_pkl_exception_handler): Update accordingly.
	* libpoke/pkl-rt-2.pk (_pkl_assert): Likewise.
	* libpoke/pvm-val.c (pvm_make_exception): Likewise.
	* libpoke/pvm.h (PVM_E_*_NAME): Rename from PVM_E_*_MSG.
	* libpoke/ras: Use PVM_E_*_NAME instead of PVM_E_*_MSG.
	* libpoke/pvm.jitter (PVM_RAISE_DFL): Likewise.
	* libpoke/pkl-gen.c: Likewise.
	* libpoke/pkl-asm.c (pkl_asm_new): Likewise.
	* pickles/pktest.pk (pktest_run): Use `name' instead of `msg'.
	* pickles/argp.pk: Likewise.
	* pickles/id3v1.pk: Likewise.
	* pickles/jffs2.pk: Likewise.
	* libpoke/pkl-gen.pks (check_struct_field_constraint): Likewise.
	* testsuite/poke.pkl/format-21.pk: Update expected pattern.
	* testsuite/poke.pkl/format-26.pk: Likewise.
	* testsuite/poke.pkl/format-25.pk: Likewise.
	* testsuite/poke.pkl/format-24.pk: Likewise.
	* testsuite/poke.pkl/format-23.pk: Likewise.
	* testsuite/poke.pkl/format-22.pk: Likewise.
	* testsuite/poke.pkl/scons-constraints-2.pk: Likewise.
	* testsuite/poke.pkl/scons-constraints-1.pk: Likewise.
	* testsuite/poke.pkl/assert-4.pk: Likewise.
	* testsuite/poke.map/maps-structs-constraints-2.pk: Likewise.
	* testsuite/poke.map/maps-structs-constraints-3.pk: Likewise.
	* testsuite/poke.pkl/continue-for-3.pk: Likewise.
	* testsuite/poke.pkl/raise-6.pk: Likewise.

2021-11-29  Jose E. Marchesi  <jemarch@gnu.org>

	* poke/pk-scrabble.pk (pk_scrabble_from): New variable.
	(pk_scrabble_size): Likewise.
	(pk_scrabble_from_pattern): Likewise.
	(pk_scrabble_ent_size): Likewise.
	(scrabble): Use the variables above as default values for
	arguments.
	Use actual default values for help string.

2021-11-29  Jose E. Marchesi  <jemarch@gnu.org>

	* poke/pk-copy.pk (copy): Actually use pk_copy_from and
	pk_copy_size as default values for the arguments.

2021-11-29  Jose E. Marchesi  <jemarch@gnu.org>

	* poke/pk-save.pk (pk_save_from): New variable.
	(pk_save_size): Likewise.
	(pk_save_append): Likewise.
	(pk_save_verbose): Likewise.
	Use actual default values for help string.

2021-11-29  Jose E. Marchesi  <jemarch@gnu.org>

	* poke/pk-copy.pk (pk_copy_size): New variable.
	(pk_copy_from): Likewise.
	Use actual default values for help string.

2021-11-29  Jose E. Marchesi  <jemarch@gnu.org>

	* poke/pk-dump.pk: Format the help string for the `dump' command
	to reflect actual default values for the arguments.

2021-11-29  Jose E. Marchesi  <jemarch@gnu.org>

	* libpoke/pk-val.c (pk_array_set_elem_boffset): Remove unused
	function.

2021-11-29  Jose E. Marchesi  <jemarch@gnu.org>

	* libpoke/std.pk (exit): Moved from pkl-rt-1.pk.

2021-11-29  Jose E. Marchesi  <jemarch@gnu.org>

	* libpoke/pkl-ast.c (pkl_type_append_to): Generate syntactically
	correct types for functions.
	* libpoke/pkl-typify.c (pkl_typify1_ps_funcall): Clarify error
	message.

2021-11-28  Jose E. Marchesi  <jemarch@gnu.org>

	* testsuite/poke.mi-json/mi-json.c (J_UND): Define.
	(test_val_to_json): Return J_UND if json_object_equal is not
	available.
	(test_json_file): Mark test as `unresolved' whenever appropriate.
	* poke/pk-mi-json.c (pk_json_object_object_add): Fix return value.

2021-11-26  Jose E. Marchesi  <jemarch@gnu.org>

	* poke/pk-mi-json.c (pk_json_object_object_add): Define.
	(JSON_OBJECT_OBJECT_ADD): Use pk_json_object_object_add.
	(collect_msg_arg): Likewise.
	(pk_mi_msg_to_json_object): Likewise.

2021-11-22  Mohammad-Reza Nabipoor  <mnabipoor@gnu.org>

	* pickles/pktest.pk (PkTest): Use logical implication operator.

2021-11-22  Mohammad-Reza Nabipoor  <mnabipoor@gnu.org>

	* doc/learn-poke-language-in-y-minutes.pk
	(Logical implication operator): Add new section.
	(format): Likewise.
	(Signed Arithmetic Overflow Detection): Add a newline to `print`.

2021-11-19  Kostas Chasialis  <koschasialis@gmail.com>

	* etc/pk-mi-json-schema.json (JSON Schema): Refactored the JSON schema.
	* libpoke/libpoke.h (pk_sizeof): Function declaration.
	* libpoke/pk-val.c (pk_sizeof): Function definition.
	* poke/pk-mi-json.c (pk_val_to_json): New function.
	(pk_type_to_json): Likewise.
	(pk_type_to_json_integral): Likewise.
	(pk_type_to_json_string): Likewise.
	(pk_type_to_json_offset): Likewise.
	(pk_type_to_json_struct): Likewise.
	(pk_type_to_json_array): Likewise.
	(pk_type_to_json_any): Likewise.
	(pk_type_to_json_null): Likewise.
	(pk_val_to_json_int): Likewise.
	(pk_val_to_json_uint): Likewise.
	(pk_val_to_json_string): Likewise.
	(pk_val_to_json_offset): Likewise.
	(pk_val_to_json_struct): Likewise.
	(pk_val_to_json_array): Likewise.
	(pk_val_to_json_any): Likewise.
	(pk_val_to_json_map): Likewise.
	(json_to_pk_val): Likewise.
	(json_to_pk_type): Likewise.
	(json_to_pk_type_integral): Likewise.
	(json_to_pk_type_offset): Likewise.
	(json_to_pk_type_struct): Likewise.
	(json_to_pk_type_array): Likewise.
	(json_to_pk_val_int): Likewise.
	(json_to_pk_val_uint): Likewise.
	(json_to_pk_val_string): Likewise.
	(json_to_pk_val_offset): Likewise.
	(json_to_pk_val_struct): Likewise.
	(json_to_pk_val_array): Likewise.
	(json_to_pk_val_any): Likewise.
	(pexpect_aelem): Likewise.
	(collect_json_arg): Adapted accordingly.
	* testsuite/Makefile.am (EXTRA_DIST): Added new tests.
	* testsuite/poke.mi-json/mi-json.c (test_val_to_json): Adapted to new
	changes.
	(test_json_to_val): Likewise.
	(test_json_pk_val): Deleted function.
	(test_json_pk_int): Likewise.
	(test_json_pk_uint): Likewise.
	(test_json_pk_string): Likewise.
	(test_json_pk_offset): Likewise.
	(test_json_pk_sct): Likewise.
	(test_json_pk_array): Likewise.
	(test_json_pk_null): Likewise.
	* testsuite/poke.mi-json/pk_array.json: Deleted test.
	* testsuite/poke.mi-json/pk_array_bounded.json: New test.
	* testsuite/poke.mi-json/pk_array_bounded_offset.json: Likewise.
	* testsuite/poke.mi-json/pk_array_unbounded.json: Likewise.
	* testsuite/poke.mi-json/pk_int.json: Adapted test to JSON schema changes.
	* testsuite/poke.mi-json/pk_offset.json: Likewise.
	* testsuite/poke.mi-json/pk_offset_uint.json: Likewise.
	* testsuite/poke.mi-json/pk_sct.json: Likewise.
	* testsuite/poke.mi-json/pk_sct_empty.json: Likewise.
	* testsuite/poke.mi-json/pk_sct_empty_mapped.json: Likewise.
	* testsuite/poke.mi-json/pk_string.json: Likewise.
	* testsuite/poke.mi-json/pk_uint.json: Likewise.
	* testsuite/poke.mi-json/pk_int_fail.json: New test.
	* testsuite/poke.mi-json/pk_uint_fail.json: Likewise.
	* testsuite/poke.mi-json/pk_string_fail.json: Likewise.
	* testsuite/poke.mi-json/pk_offset_fail.json: Likewise.
	* testsuite/poke.mi-json/pk_offset_uint_fail.json: Likewise.
	* testsuite/poke.mi-json/pk_sct_fail.json: Likewise.
	* testsuite/poke.mi-json/pk_array_bounded_fail.json: Likewise.
	* testsuite/poke.mi-json/pk_array_bounded_offset_fail.json: Likewise.

2021-11-10  Mohammad-Reza Nabipoor  <mnabipoor@gnu.org>

	* libpoke/pkl-tab.y (pkl_make_assertion): Change the invocation of
	`_pkl_assert` to pass FILENAME, LINE and COLUMN as separate arguments
	instead of passing as a pre-formated string.
	* libpoke/pkl.c (pkl_load_rt): New function to load runtime library.
	(pkl_new): Load `pkl-rt-1.pk` and `pkl-rt-2.pk` runtime libraries.
	* libpoke/pkl-rt.pk: Rename to `libpoke/pkl-rt-1`.
	(_pkl_assert): Remove.
	* libpoke/pkl-rt-1.pk: New file.
	* libpoke/pkl-rt-2.pk: New file. New implementation of `_pkl_assert`
	which uses `format` to report FILENAME, LINE and COLUMN.
	* libpoke/Makefile.am (dist_pkgdata_DATA): Update
	* etc/hacking.org: Rename `pkl-rt.pk` to what's appropriate.
	* HACKING: Likewise.
	* doc/learn-poke-language-in-y-minutes.pk: Likewise.
	* libpoke/pvm.h: Likewise.
	* libpoke/pvm-val.c: Likewise.
	* libpoke/ras: Likewise.

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

	* libpoke/pkl-typify.c (pkl_typify1_ps_print_stmt): Fix error location.
	* testsuite/poke.pkl/print-diag-1.pk: New file.
	* testsuite/Makefile.am (EXTRA_DIST): Add new test.

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

	* pickles/bpf.pk: Adapt to new syntax for field initial values.

2021-09-17  Mohammad-Reza Nabipoor  <mnabipoor@gnu.org>

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

2021-09-16  Mohammad-Reza Nabipoor  <mnabipoor@gnu.org>

	* libpoke/pk-val.c: Include `assert.h`.
	(pk_val_offset): Use `PVM_VAL_MAPPED_P` instead
	of checking `PVM_VAL_OFFSET` against `PVM_NULL`.

2021-09-16  Guillermo E. Martinez  <guillermo.e.martinez@oracle.com>

	* doc/poke.texi (Poking a SBM Image): Fix typo.

2021-09-16  Mohammad-Reza Nabipoor  <mnabipoor@gnu.org>

	* libpoke/pkl-gen.c (pkl_gen_pr_map): Use `PUSHIOS` instruction to
	get the current IOS, instead of using `PVM_NULL`.
	And also remove the old (incorrect) comment.

2021-09-10  Guillermo E. Martinez  <guillermo.e.martinez@oracle.com>

	* doc/poke.texi (Weird Integers): Fix typo.

2021-09-02  Mohammad-Reza Nabipoor  <mnabipoor@gnu.org>

	* poke/pk-mi-json.c (MI Messages): Use "kind" instead of "type" for
	messages.
	(pk_mi_msg_to_json_object): Likewise.
	(pk_mi_json_object_to_msg): Likewise.

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

	* libpoke/libpoke.h: Fix the comment of `pk_call`.

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

	* libpoke/pkl-gen.c (pkl_gen_ps_type_integral): Fix argument of
	MKTYI instruction to be signed integer.
	* libpoke/pvm-val.c (pvm_make_exception): Fix args of
	`pvm_make_integral_type` invocation.
	* libpoke/pvm.jitter (time): Likewise.

2021-08-26  Kostas Chasialis  <koschasialis@gmail.com>

	* etc/hacking.org: Email change.
	* HACKING: Likewise.

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

	* poke/pk-mi-msg.c (pk_mi_make_resp): Prevents `errmsg` to be `NULL`.
	(pk_mi_set_arg): Fix the assertion.
	* poke/pk-mi-msg.def (INVREQ): Add new arg (`errmsg`).
	* poke/pk-mi.c (pk_mi_send_invalid_msg): New function to report error
	of invalid messages to the client.
	(pk_mi_process_frame_msg): Use `pk_mi_send_invalid_msg`.
	(pk_mi_dispatch_msg): Add error reporting functionality for invalid
	messages.

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

	* poke/pk-mi-json.h (pk_mi_json_to_msg): Add new arg (`errmsg`).
	* poke/pk-mi-json.c (pk_mi_json_to_msg): Re-write JSON parsing to
	be more declarative. Also reports error message(s).
	* poke/pk-mi.c (pk_mi_process_frame_msg): Update.
	* testsuite/poke.mi-json/mi-json.c (test_json_to_msg): Likewise.

2021-08-03  Kostas Chasialis  <sdi1600195@di.uoa.gr>

	* poke/pk-mi.c (pk_mi_dispatch_msg): Added PRINTV request.
	* doc/poke.texi (MI Requests-Responses): Added PRINTV in both.

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

	* etc/poke.rec (support references to values in the MI protocol):
	Add notes about GC.
	(`format' support): Removed as done.
	(Fix GC roots in AST nodes): Likewise.

2021-08-03  Jose E. Marchesi  <jemarch@gnu.org>

	* etc/poke.rec (support references to values in the MI protocol):
	New entry.

2021-08-02  Jose E. Marchesi  <jemarch@gnu.org>

	* libpoke/libpoke.h: Add missing doc for pk_compile_expression.

2021-07-12  Fangrui Song  <i@maskray.me>

	* doc/poke.texi: Fix a couple of code errors in examples.

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

	* libpoke/pkl-typify.c (pkl_typify1_ps_cast): Make cast error
	messages more helpful.

2021-07-04  Guillermo E. Martinez  <guillermo.e.martinez@oracle.com>

	* doc/poke.texi (Decode-Compute-Encode): Fix `double_number`
	function: s/int/unsigned char/ for bytes.

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

	* common/pk-utils.h (pk_format_binary): New function declaration.
	* common/pk-utils.c (pk_format_binary): New function definition.
	* libpoke/pkl-lex.l (format): Recognize `format`.
	* libpoke/pkl-ast.h (PKL_AST_FORMAT): Define.
	(PKL_AST_FORMAT_ARG): Likewise.
	(PKL_AST_TYPE_A_FORMATER): Likewise.
	(PKL_AST_TYPE_S_FORMATER): Likewise.
	(PKL_AST_FORMAT_FMT): Likewise.
	(PKL_AST_FORMAT_TYPES): Likewise.
	(PKL_AST_FORMAT_ARGS): Likewise.
	(PKL_AST_FORMAT_NARGS): Likewise.
	(PKL_AST_FORMAT_PREFIX): Likewise.
	(PKL_AST_FORMAT_FMT_PROCESSED_P): Likewise.
	(struct pkl_ast_format): New struct.
	(pkl_ast_make_format): New function declaration.
	(PKL_AST_FORMAT_ARG_EXP): Define.
	(PKL_AST_FORMAT_ARG_BASE): Likewise.
	(PKL_AST_FORMAT_ARG_SUFFIX): Likewise.
	(PKL_AST_FORMAT_ARG_BEGIN_SC): Likewise.
	(PKL_AST_FORMAT_ARG_END_SC): Likewise.
	(PKL_AST_FORMAT_ARG_VALUE_P): Likewise.
	(PKL_AST_FORMAT_ARG_FORMAT_MODE): Likewise.
	(PKL_AST_FORMAT_ARG_FORMAT_DEPTH): Likewise.
	(PKL_AST_FORMAT_MODE_FLAT): Likewise.
	(PKL_AST_FORMAT_MODE_TREE): Likewise.
	(struct pkl_ast_format_arg): New struct.
	(pkl_ast_make_format_arg): New function declaration.
	(struct pkl_ast_print_stmt): Delegate all format processing to a
	PKL_AST_FORMAT node.
	(pkl_ast_make_print_stmt): Change API.
	(PKL_AST_PRINT_STMT_FMT): Remove.
	(PKL_AST_PRINT_STMT_TYPES): Likewise.
	(PKL_AST_PRINT_STMT_ARGS): Likewise.
	(PKL_AST_PRINT_STMT_NARGS): Likewise.
	(PKL_AST_PRINT_STMT_PREFIX): Likewise.
	(PKL_AST_PRINT_STMT_FMT_PROCESSED_P): Likewise.
	(PKL_AST_PRINT_STMT_ARG): Likewise.
	(struct pkl_ast_print_stmt_arg): Likewise.
	(PKL_AST_PRINT_STMT_ARG_EXP): Likewise.
	(PKL_AST_PRINT_STMT_ARG_BASE): Likewise.
	(PKL_AST_PRINT_STMT_ARG_SUFFIX): Likewise.
	(PKL_AST_PRINT_STMT_ARG_BEGIN_SC): Likewise.
	(PKL_AST_PRINT_STMT_ARG_END_SC): Likewise.
	(PKL_AST_PRINT_STMT_ARG_VALUE_P): Likewise.
	(PKL_AST_PRINT_STMT_ARG_PRINT_MODE): Likewise.
	(PKL_AST_PRINT_STMT_ARG_PRINT_DEPTH): Likewise.
	(PKL_AST_PRINT_MODE_FLAT): Likewise.
	(PKL_AST_PRINT_MODE_TREE): Likewise.
	(pkl_ast_make_print_stmt_arg): Likewise.
	* libpoke/pkl-ast.c (pkl_ast_make_array_type): Add formater closure.
	(pkl_ast_make_struct_type): Add formater closure.
	(pkl_ast_make_format): New function definition.
	(pkl_ast_make_format_arg): Likewise.
	(pkl_ast_node_free): Handle `PKL_AST_FORMAT` and `PKL_AST_FORMAT_ARG`.
	Remove `PKL_AST_PRINT_STMT_ARG` case. Revise `PKL_AST_PRINT_STMT` case.
	(pkl_ast_print_1): Likewise.
	(pkl_ast_make_print_stmt): Revise.
	(pkl_ast_make_print_stmt_arg): Remove.
	* libpoke/pkl-tab.y: Define token `FORMAT`.
	(primary): Add `format` support.
	(format_arg): New rule.
	(format_arg_list): Likewise.
	(print_stmt_arg_list): Remove.
	* libpoke/pvm.jitter (wrapped-functions): Add `snprintf`.
	(PVM_FORMATI): Define.
	(PVM_FORMATL): Likewise.
	(formati): New instruction.
	(formatiu): Likewise.
	(formatl): Likewise.
	(formatlu): Likewise.
	(push-drop-to-nop): New rule.
	* libpoke/pkl-insn.def: Add `format{i,iu,l,lu}` instructions. Add
	`format` macro instruction.
	And also add previously defined instructions: `drop2`, `drop3`, `nip3`.
	* libpoke/pkl-asm.c (pkl_asm_insn_format): New function definition.
	(pkl_asm_insn): Add support for format macro instruction.
	* libpoke/pkl-pass.c (pkl_do_pass_1): Handle `PKL_AST_FORMAT_ARG`
	and `PKL_AST_FORMAT`. Remove `PKL_AST_PRINT_STMT_ARG`. Revise
	`PKL_AST_PRINT_STMT`.
	* libpoke/pkl-trans.c (pkl_trans1_ps_format): New phase.
	(pkl_trans1_ps_print_stmt): Remove.
	(pkl_phase_trans1): Revise.
	* libpoke/pkl-typify.c (pkl_typify1_ps_format): New phase.
	(pkl_typify1_ps_print_stmt): Revise.
	(pkl_phase_typify1): Register new phase.
	* libpoke/pkl-promo.c (pkl_promo_ps_format): New phase.
	(pkl_promo_ps_print_stmt): Remove.
	(pkl_phase_promo): Revise.
	* libpoke/pkl-gen.h (PKL_GEN_CTX_IN_FORMATER): Define.
	* libpoke/pkl-gen.c (pkl_gen_pr_format): Generate code for `format`.
	(pkl_phase_gen): Register new phase.
	(pkl_gen_pr_type_offset): Add formater context.
	(pkl_gen_ps_type_integral): Likewise.
	(pkl_gen_pr_type_function): Likewise.
	(pkl_gen_pr_type_array): Likewise.
	(pkl_gen_ps_type_string): Likewise.
	(pkl_gen_pr_type_struct): Likewise.
	* libpoke/pkl-rt.pk (_pkl_strcat3): New function.
	(_pkl_indentation): Likewise.
	(_pkl_format_int_suffix): Likewise.
	(_pkl_reduce_string_array): Likewise.
	* libpoke/pkl-gen.pks (format_int_suffix): New RAS macro.
	(integral_formater): Likewise.
	(offset_formater): Likewise.
	(string_formater): Likewise.
	(format_boffset): Likewise.
	(array_formater): New RAS function.
	(struct_formater): Likewise.
	* testsuite/poke.pkl/format-1.pk: New test.
	* testsuite/poke.pkl/format-2.pk: Likewise.
	* testsuite/poke.pkl/format-3.pk: Likewise.
	* testsuite/poke.pkl/format-4.pk: Likewise.
	* testsuite/poke.pkl/format-5.pk: Likewise.
	* testsuite/poke.pkl/format-6.pk: Likewise.
	* testsuite/poke.pkl/format-7.pk: Likewise.
	* testsuite/poke.pkl/format-8.pk: Likewise.
	* testsuite/poke.pkl/format-9.pk: Likewise.
	* testsuite/poke.pkl/format-10.pk: Likewise.
	* testsuite/poke.pkl/format-11.pk: Likewise.
	* testsuite/poke.pkl/format-12.pk: Likewise.
	* testsuite/poke.pkl/format-13.pk: Likewise.
	* testsuite/poke.pkl/format-14.pk: Likewise.
	* testsuite/poke.pkl/format-15.pk: Likewise.
	* testsuite/poke.pkl/format-16.pk: Likewise.
	* testsuite/poke.pkl/format-17.pk: Likewise.
	* testsuite/poke.pkl/format-18.pk: Likewise.
	* testsuite/poke.pkl/format-19.pk: Likewise.
	* testsuite/poke.pkl/format-20.pk: Likewise.
	* testsuite/poke.pkl/format-21.pk: Likewise.
	* testsuite/poke.pkl/format-22.pk: Likewise.
	* testsuite/poke.pkl/format-23.pk: Likewise.
	* testsuite/poke.pkl/format-24.pk: Likewise.
	* testsuite/poke.pkl/format-25.pk: Likewise.
	* testsuite/poke.pkl/format-26.pk: Likewise.
	* testsuite/poke.pkl/format-27.pk: Likewise.
	* testsuite/poke.pkl/format-28.pk: Likewise.
	* testsuite/poke.pkl/format-29.pk: Likewise.
	* testsuite/poke.pkl/format-diag-1.pk: Likewise.
	* testsuite/poke.pkl/reduce-array-1.pk: Likewise.
	* testsuite/poke.pkl/reduce-array-2.pk: Likewise.
	* testsuite/Makefile.am (EXTRA_DIST): Add new tests.

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

	* libpoke/pkl-gen.c (pkl_gen_pr_type_function): Add comment.
	(pkl_gen_pr_type_array): Save computed closure for printer in
	AST node.
	(pkl_gen_pr_type_struct): Likewise.
	* libpoke/pkl-gen.pks (print_boffset): Use escape sequence in string
	literal to make RAS happy.
	(struct_printer): s/struct_type/@struct_type/.

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

	* libpoke/pvm.jitter (sprops): Add instruction for
	"string property style", but with no implementation.
	(sproph): Add instruction for "string property hyperlink", but with
	no implementation.
	(spropc): Add instruction for "string property clear", but with no
	implementation.
	* libpoke/pkl-insn.def: Add new instructions.

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

	* configure.ac: Update for 1.3.
	* NEWS: Likewise.
	* doc/gendocs_template: Likewise.

2021-05-31  Luca Saiu  <positron@gnu.org>

	* cfg.mk (gl_public_submodule_commit): Define as empty.  Update
	comment.

2021-05-31  Luca Saiu  <positron@gnu.org>

	* cfg.mk (submodule-checks): Override setting in maint.mk, fixing
	a distcheck failure.

2021-05-26  Mohammad-Reza Nabipoor  <mnabipoor@gnu.org>

	* libpoke/pvm.jitter (wrapped-functions): Add std string functions.

2021-05-23  Mohammad-Reza Nabipoor  <mnabipoor@gnu.org>

	* libpoke/pkl-gen.pks (struct_constructor): s/uint<64>/ulong<64>.
	* libpoke/pvm-val.c (pvm_make_int): Add assertion for `size` argument.
	(pvm_make_uint): Likewise.
	(pvm_make_long): Likewise.
	(pvm_make_ulong): Likewise.

2021-05-22  Mohammad-Reza Nabipoor  <mnabipoor@gnu.org>

	* libpoke/pkl-rt.pk (_pkl_escape_string): New function.
	* libpoke/pkl-gen.pks (string_printer): Use `_pkl_escape_string` to
	print valid string literals (replace non-printable characters with
	escape sequence).
	* testsuite/poke.pkl/printf-value-18.pk: New test.
	* testsuite/poke.pkl/printf-value-19.pk: Likewise.
	* testsuite/poke.pkl/printf-value-20.pk: Likewise.
	* testsuite/poke.pkl/printf-value-21.pk: Likewise.
	* testsuite/Makefile.am (EXTRA_DIST): Add new tests.

2021-05-22  Mohammad-Reza Nabipoor  <mnabipoor@gnu.org>

	* libpoke/pvm.jitter (strset): New instruction.
	(wrapped-functions): Add `memcpy`.
	* libpoke/pkl-insn.def (STRSET): Likewise.
	* libpoke/pkl-gen.c (pkl_gen_ps_comp_stmt): Emit code.
	* libpoke/pkl-lex.l: Recognize `BUILTIN_UNSAFE_STRING_SET`.
	* libpoke/pkl-tab.y: Define token `BUILTIN_UNSAFE_STRING_SET`.
	(comp_stmt): New rule.
	* libpoke/pkl-ast.h (PKL_AST_BUILTIN_UNSAFE_STRING_SET): Define.
	* libpoke/pkl-rt.pk (__pkl_unsafe_string_set): New function.
	* testsuite/poke.pkl/unsafe-string-set-1.pk: New test.
	* testsuite/poke.pkl/unsafe-string-set-2.pk: Likewise.
	* testsuite/poke.pkl/unsafe-string-set-3.pk: Likewise.
	* testsuite/poke.pkl/unsafe-string-set-4.pk: Likewise.
	* testsuite/poke.pkl/unsafe-string-set-5.pk: Likewise.
	* testsuite/poke.pkl/unsafe-string-set-diag-1.pk: Likewise.
	* testsuite/poke.pkl/unsafe-string-set-diag-2.pk: Likewise.
	* testsuite/Makefile.am (EXTRA_DIST): Add new tests.

2021-05-22  Mohammad-Reza Nabipoor  <mnabipoor@gnu.org>

	* libpoke/pvm.jitter (return): s/jitter_int/jitter_uint/.
	(popf): s/JITTER_ARGN0/JITTER_ARGU0/.
	(sconc): Remove useless `#undef F`.
	(bnzi): Fix type s/bzni/bnzi/.
	(substr): Fix doc.
	(ains): Likewise.
	(indent): Fix typo.
	(mka): Remove redundant array offset initialization.
	* libpoke/ras (BEGIN): Use `\"` instead of `\\\"`.

2021-05-22  Mohammad-Reza Nabipoor  <mnabipoor@gnu.org>

	* libpoke/pkl-rt.pk (_pkl_unit_name): Fix typo. s/gigi/gibi/
	(_pkl_unit_gibibit): Likewise.
	(_pkl_unit_gibibyte): Likewise.

2021-05-22  Mohammad-Reza Nabipoor  <mnabipoor@gnu.org>

	* libpoke/pvm.jitter (sconc): Replace `pvm_make_string` with
	`pvm_make_string_nodup`.
	(ctos): Likewise.
	(substr): Likewise.

2021-05-22  Mohammad-Reza Nabipoor  <mnabipoor@gnu.org>

	* libpoke/pvm.h (pvm_make_string_nodup): New function declaration.
	* libpoke/pvm-val.c (pvm_make_string_nodup): New function definition.
	* libpoke/pvm.jitter: Do not include `xalloc.h`.
	(muls): Use `pvm_alloc` instead of `xmalloc`.
	* etc/poke.rec (The `muls' instruction in pvm.jitter calls xmalloc):
	Remove as done.

2021-05-22  Mohammad-Reza Nabipoor  <mnabipoor@gnu.org>

	* doc/learn-poke-in-y-minutes.pk (Struct Field Initializers): Update
	the example according to the recent change in behavior of field
	initializers.

2021-05-21  Mohammad-Reza Nabipoor  <mnabipoor@gnu.org>

	* AUTHORS: Change my email address to gnu account.
	* etc/poke.rec: Likewise.
	* etc/hacking.org: Likewise.
	* HACKING: Likewise.

2021-05-21  Jose E. Marchesi  <jemarch@gnu.org>

	* libpoke/pkl-gen.c (LMAP): Simplify code, and re-compile writers
	for anonymous struct types as well as array types.
	* libpoke/pkl-gen.pks (struct_writer): Use @type_struct instead of
	type_struct.

2021-05-10  Jose E. Marchesi  <jemarch@gnu.org>

	* libpoke/pkl-gen.pks (check_struct_field_constraint): Use
	PKL_GEN_PUSH_CONTEXT instead of DUP_CONTEXT + CLEAR_CONTEXT.  It
	is more robust.
	(array_writer): Likewise.
	(array_bounder): Likewise.
	(handle_struct_field_label): Likewise.
	(handle_struct_field_constraints): Likewise.
	(struct_mapper): Likewise.
	(struct_constructor): Likewise.
	(struct_field_writer): Likewise.
	(struct_writer): Likewise.
	(struct_integrator): Likewise.
	(complex_lmap): Likewise.

	* testsuite/poke.pkl/scons-constraints-3.pk: New test.
	* testsuite/poke.map/maps-structs-constraints-4.pk: Likewise.
	* testsuite/Makefile.am (EXTRA_DIST): Add new tests.

2021-05-10  Jose E. Marchesi  <jemarch@gnu.org>

	* libpoke/pkl-gen.pks (struct_mapper): Fix vars_registered with
	declarations in struct types.
	(struct_constructor): Likewise.
	* testsuite/poke.pkl/optcond-21.pk: New test.
	* testsuite/poke.map/map-optcond-12.pk: Likewise.
	* testsuite/Makefile.am (EXTRA_DIST): Add new tests.

2021-05-10  Kostas Chasialis  <sdi1600195@di.uoa.gr>

	* poke/pk-mi-msg.c (struct pk_mi_msg): Added num_args field.
	(pk_mi_allocate_msg_args): Update num_args field.

2021-05-10  Jose E. Marchesi  <jemarch@gnu.org>

	* libpoke/pkl.c (LOAD_STD): Renamed from LOAD_RT.

2021-05-10  Jose E. Marchesi  <jemarch@gnu.org>,

	* libpoke/libpoke.c (pk_compiler_new_with_flags): Rename from
	pk_compiler_new.
	(pk_compiler_new): Define.
	* libpoke/libpoke.h: Prototype for pk_compiler_new_with_flags.
	(PK_F_NOSTDTYPES): Define.
	* libpoke/pkl.h: Add `flags' argument to pkl_new.
	(PKL_F_NOSTDTYPES): Define.
	* libpoke/std-types.pk: New file.
	* libpoke/Makefile.am (dist_pkgdata_DATA): Add std-types.pk.
	* libpoke/std.pk: Do not use standard types.
	* libpoke/pkl.c (pkl_new): Load std-types.pk
	(pkl_new): Get a `flags' argument and do not define standard types
	if PKL_F_NOSTDTYPES is specified.

2021-05-09  Jose E. Marchesi  <jemarch@gnu.org>

	* libpoke/pkl-tab.y: New token OFFSET.
	(primary): OFFSET is a primary.
	* libpoke/pkl-lex.l: Handle offsets in alien tokens.
	* libpoke/libpoke.h (struct pk_alien_token): Add support for
	offset tokens and string tokens.
	(PK_ALIEN_TOKEN_OFFSET): Define.
	(PK_ALIEN_TOKEN_STRING): Likewise.
	* libpoke/pkl.h (struct pkl_alien_token): Add support for offset
	tokens and string tokens.
	(PKL_ALIEN_TOKEN_OFFSET): Define.
	(PKL_ALIEN_TOKEN_STRING): Likewise.

2021-05-08  Jose E. Marchesi  <jemarch@gnu.org>,

	* libpoke/libpoke.c (pk_register_iod): Allow replacing the foreign
	IO device.

2021-05-08  Jose E. Marchesi  <jemarch@gnu.org>,

	* poke/pk-map.c: New variable alien_token.
	(pk_map_alien_token_handler): Adapt to new interface.

	* libpoke/libpoke.h (struct pk_alien_token): Define.
	(PK_ALIEN_TOKEN_NOTOKEN): Likewise.
	(PK_ALIEN_TOKEN_IDENTIFIER): Likewise.
	(PK_ALIEN_TOKEN_INTEGER): Likewise.
	(pk_alien_token_handler_fn): Return an alien token struct.
	* libpoke/pkl.h (struct pkl_alien_token): Likewise.
	(PKL_ALIEN_TOKEN_NOTOKEN): Likewise.
	(PKL_ALIEN_TOKEN_IDENTIFIER): Likewise.
	(PKL_ALIEN_TOKEN_INTEGER): Likewise.
	* libpoke/pkl-lex.l: Handle better alien tokens.

2021-05-08  Jose E. Marchesi  <jemarch@gnu.org>,

	* libpoke/ios-dev.h (struct ios_dev_if): Make the get_if_name hook
	to return a const char pointer.
	* libpoke/ios.c (ios_get_dev_if_name): Return a constant char
	pointer.
	* libpoke/ios.h: Likewise.
	* testsuite/poke.libpoke/foreign-iod.c (iod_get_if_name): Likewise.
	* libpoke/libpoke.h (struct pk_iod_if): Likewise.
	* libpoke/libpoke.c (pk_ios_get_dev_if_name): Likewise.
	* libpoke/ios-dev-zero.c (ios_dev_zero_get_if_name): Likewise.
	* libpoke/ios-dev-sub.c (ios_dev_sub_get_if_name): Likewise.
	* libpoke/ios-dev-stream.c (ios_dev_stream_get_dev_if_name): Likewise.
	* libpoke/ios-dev-proc.c (ios_dev_proc_get_if_name): Likewise.
	* libpoke/ios-dev-nbd.c (ios_dev_nbd_get_if_name): Likewise.
	* libpoke/ios-dev-mem.c (ios_dev_mem_get_if_name): Likewise.
	* libpoke/ios-dev-file.c (ios_dev_file_get_if_name): Likewise.

2021-05-08  Jose E. Marchesi  <jemarch@gnu.org>

	* testsuite/poke.libpoke/foreign-iod.c: Do not include assert.h.

2021-05-08  Jose E. Marchesi  <jemarch@gnu.org>

	* libpoke/libpoke.h: Make the header C++ compliant.
	* libpoke/libpoke.c: Vandalize accordingly :(

2021-05-07  Jose E. Marchesi  <jemarch@gnu.org>

	* libpoke/libpoke.h (struct pk_ios_if): New type.
	* libpoke/ios.c (ios_register_foreign_iod): New function.
	(ios_foreign_iod): Likewise.
	(ios_open): Acknowledge the foreign IO device.
	* libpoke/libpoke.c (pk_register_iod): Likewise.
	* testsuite/poke.libpoke/foreign-iod.c: New file.
	* testsuite/poke.libpoke/Makefile.am (check_PROGRAMS): Add
	foreign-iod.
	(foreign_iod_SOURCES): New rule.
	(foreign_iod_CPPFLAGS): Likewise.
	(foreign_iod_CFLAGS): Likewise.
	(foreign_iod_LDADD): Likewise.
	* testsuite/poke.libpoke/libpoke.exp: Execute foreign-iod test.

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

	* libpoke/pkl-gen.pks (struct_constructor): Remove spurious
	commented insn.

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

	* poke/pk-help.pk (Poke_HelpEntry): Add fields `predicate and
	`synopsis'.
	* poke/poke.c (initialize): Initialize the value of have_libnbd_p.
	* poke/poke.pk: Define pk_have_libnbd_p.
	* poke/pk-save.pk: Likewise.
	* poke/pk-extract.pk: Likewise.
	* poke/pk-copy.pk: Likewise.
	* poke/pk-dump.pk: remove dot at the end of the summary.
	* poke/pk-help.pk (pk_help): Print summary lines for dot-commands.
	Add help topics for dot-commands.

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

	* libpoke/pkl-gen.pks (struct_constructor): Use
	check_struct_field_constraint.
	* testsuite/poke.pkl/scons-constraints-1.pk: New test.
	* testsuite/poke.pkl/scons-constraints-2.pk: Likewise.
	* testsuite/poke.pktest/pktest-12.pk: Update test.

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

	* libpoke/pkl-gen.pks (struct_printer): Skip absent fields.
	* testsuite/poke.pkl/printf-value-16.pk: New test.
	* testsuite/poke.pkl/printf-value-17.pk: Likewise.
	* testsuite/Makefile.am (EXTRA_DIST): Add new tests.

2021-05-05  Luca Saiu  <positron@gnu.org>

	* libpoke/ras: Comments.
	* libpoke/pvm.jitter: Comments.

2021-05-05  Luca Saiu  <positron@gnu.org>

	* libpoke/pvm.jitter (canary, exit, pushend, popend, pushob, popob)
	(pushom, poppm, pushoo, popoo, pushoi, popoi, pushod, popod)
	(pushoac, popoac, pushopp, popopp, strace): Rename
	JITTER_STATE_BACKING_FIELD and JITTER_STATE_RUNTIME_FIELD into
	PVM_STATE_BACKING_FIELD and PVM_STATE_RUNTIME_FIELD, following
	Jitter incompatible change.

	* libpoke/pvm.c (PVM_STATE_RESULT_VALUE, PVM_STATE_EXIT_CODE)
	(PVM_STATE_VM, PVM_STATE_ENV, PVM_STATE_ENDIAN, PVM_STATE_NENC)
	(PVM_STATE_PRETTY_PRINT, PVM_STATE_OMODE, PVM_STATE_OBASE)
	(PVM_STATE_OMAPS, PVM_STATE_ODEPTH, PVM_STATE_OINDENT)
	(PVM_STATE_OACUTOFF): Redefine macros using new Jitter-generated
	macros PVM_STATE_RUNTIME_FIELD and PVM_STATE_BACKING_FIELD.
	(pvm_initialize_state): Change implementation, again using
	PVM_STATE_RUNTIME_FIELD and PVM_STATE_BACKING_FIELD.
	(pvm_call_closure): Likewise.

2021-05-05  Luca Saiu  <positron@gnu.org>

	* poke/pk-cmd-set.c (pk_cmd_set_init): Change xmalloc argument,
	making the allocated size correct.

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

	* testsuite/poke.map/maps-structs-constraints-2.pk: New test.
	* testsuite/poke.map/maps-structs-constraints-3.pk: Likewise.
	* testsuite/Makefile.am (EXTRA_DIST): Add new tests.

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

	* libpoke/pkl-gen.pks (handle_struct_field_constraints): Pass
	@struct_type to check_struct_field_constraint.
	(check_struct_field_constraint): Add TYPE.FIELD information to the
	E_constraint exceptions.

2021-05-02  Jose E. Marchesi  <jemarch@gnu.org>

	* libpoke/Makefile.am: use DISTCLEANFILES for the files generated
	by AX_CREATE_PKGCONFIG_INFO, not MOSTLYCLEANFILES.

2021-05-02  Jose E. Marchesi  <jemarch@gnu.org>

	* libpoke/Makefile.am (generate-vm-files): New rule.
	(pvm-vm.h): Likewise.
	(pvm-vm1.c): Likewise.
	(pvm-vm2.c): Likewise.

2021-05-02  Jose E. Marchesi  <jemarch@gnu.org>

	* libpoke/Makefile.am (MAINTAINERCLEANFILES): Add jitterc
	generated files and add $(srcdir) prefix to lex and bison
	generated files.
	* poke/Makefile.am (MAINTAINERCLEANFILES): Likewise.
	* DEV-NEWS: Add note about this.

2021-05-02  Jose E. Marchesi  <jemarch@gnu.org>

	* README: Add instructions on how to offer software to the GNU
	Project.

2021-05-01  Jose E. Marchesi  <jemarch@gnu.org>

	* libpoke/pkl-tab.y (yyreport_syntax_error): Fix memory leak.
	* libpoke/ios.c (ios_open): Avoid freeing an uninitialized
	pointer.
	(ios_read_string): Fix handling of errors from ios_read_uint.
	* libpoke/ios-dev-sub.c (ios_dev_sub_open): Handle ENOMEM.
	* libpoke/ios-dev-proc.c (ios_dev_proc_open): Likewise.

2021-05-01  Jose E. Marchesi  <jemarch@gnu.org>

	* poke/pk-settings.pk: New field `usage'.
	Add `usage' fields to predefined settings.
	* poke/pk-cmd-set.c (pk_cmd_set_init): Use usage messages from
	settings.

2021-04-30  Jose E. Marchesi  <jemarch@gnu.org>

	* configure.ac: Do not check for tcl/tk if --disable-gui is
	specified at configure time.

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

	* poke/pk-dump.pk (Pk_Dump_Offset): New type.
	(pk_dump_offsets): New variable.
	(pk_dump_get_offset): New function.
	(pk_dump_set_offset): Likewise.
	(dump): Use the pk_dump_offsets registry for default offsets when
	`from' is not specified.

2021-04-22  Jose E. Marchesi  <jemarch@gnu.org>

	* libpoke/pkl-gen.pks (struct_mapper): Avoid "leaking" slots in
	the exceptions stack.
	(struct_field_mapper): Likewise.

2021-04-22  Mohammad-Reza Nabipoor  <m.nabipoor@yahoo.com>

	* libpoke/pvm-alloc.h (pvm_alloc_uncollectable): New function decl.
	(pvm_free_uncollectable): Likewise.
	* libpoke/pvm-alloc.c (pvm_alloc_uncollectable): New function def.
	(pvm_free_uncollectable): Likewise.
	* libpoke/pkl-ast.h (struct pkl_ast_type): For both arrays and
	structs, replace the PVM closure fields with pointer to `pvm_val`.
	(PKL_AST_TYPE_A_CLOSURES): Re-define accordingly.
	(PKL_AST_TYPE_A_MAPPER): Likewise.
	(PKL_AST_TYPE_A_WRITER): Likewise.
	(PKL_AST_TYPE_A_BOUNDER): Likewise.
	(PKL_AST_TYPE_A_CONSTRUCTOR): Likewise.
	(PKL_AST_TYPE_A_PRINTER): Likewise.
	(PKL_AST_TYPE_S_CLOSURES): Likewise.
	(PKL_AST_TYPE_S_MAPPER): Likewise.
	(PKL_AST_TYPE_S_WRITER): Likewise.
	(PKL_AST_TYPE_S_CONSTRUCTOR): Likewise.
	(PKL_AST_TYPE_S_PRINTER): Likewise.
	(PKL_AST_TYPE_S_COMPARATOR): Likewise.
	(PKL_AST_TYPE_S_INTEGRATOR): Likewise.
	* libpoke/pkl-ast.c (pkl_ast_make_array_type): Initialize the
	`closures` field with a pointer to uncollectable memory. Remove
	the `pvm_alloc_add_gc_roots` function calls.
	(pkl_ast_make_struct_type): Likewise.
	(pkl_ast_node_free): Free the uncollectable memory for arrays and
	structs.

2021-04-18  Jose E. Marchesi  <jemarch@gnu.org>

	* configure.ac: Bump poke version to 1.2.
	* doc/gendocs_template: Likewise.
	* NEWS: Add entry for 1.2.

2021-04-14  Jose E. Marchesi  <jemarch@gnu.org>

	* libpoke/pkl-gen.c (pkl_gen_pr_op_impl): New handler.
	(pkl_phase_gen): Register handler.
	* testsuite/poke.pkl/impl-1.pk: New test.
	* testsuite/poke.pkl/impl-2.pk: Likewise.
	* testsuite/poke.pkl/impl-3.pk: Likewise.
	* testsuite/poke.pkl/impl-4.pk: Likewise.
	* testsuite/poke.pkl/impl-5.pk: Likewise.
	* testsuite/Makefile.am (EXTRA_DIST): Add new tests.
	* doc/poke.texi (Boolean Operators): Mention the => operator.

2021-04-14  Jose E. Marchesi  <jemarch@gnu.org>

	* libpoke/pkl-ops.def: Add entry for IMPL.
	* libpoke/pkl-tab.y: New token IMPL.
	(expression): Add rule for the IMPL operator.
	* libpoke/pkl-lex.l: Recognize the token =>.
	* libpoke/pkl-typify.c (pkl_phase_typify1): Handle OP_IMPL nodes
	with pkl_typify1_ps_op_boolean.
	* libpoke/pkl-promo.c (pkl_phase_promo): Handle OP_IMPL nodes with
	pkl_promo_ps_op_binary.
	* testsuite/poke.pkl/impl-diag-1.pk: New test.
	* testsuite/Makefile.am (EXTRA_DIST): Add new test.

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

	* testsuite/poke.pkl/field-init-diag-6.pk: New test.
	* testsuite/poke.pkl/field-init-diag-7.pk: Likewise.
	* testsuite/Makefile.am (EXTRA_DIST): Add new tests.

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

	* libpoke/pkl-tab.y (field_cons_init): New type in %union.
	(struct_type_field_constraint_and_init): Return a field_cons_init.
	(struct_type_field): Adjust rule accordingly.
	* testsuite/poke.pkl/field-init-2.pk: Likewise.
	* testsuite/poke.pkl/eq-structs-9.pk: Likewise.
	* testsuite/poke.map/maps-structs-init-1.pk: Likewise.
	* testsuite/poke.map/maps-structs-init-2.pk: Likewise.
	* testsuite/poke.map/maps-int-structs-20.pk: Adapt test.
	* testsuite/poke.pkl/field-init-diag-5.pk: New test.
	* testsuite/poke.pkl/field-init-13.pk: Likewise.
	* testsuite/poke.map/maps-structs-init-3.pk: Likewise.
	* pickles/bmp.pk (BMP_Header): Use == instead of = in type.
	* pickles/bpf.pk (BPF_Insn_Regs): Likewise.
	* pickles/cpio.pk (CPIO_Old_Header): Likewise.
	* pickles/ctf.pk (CTF_Preamble): Likewise.
	* pickles/elf.pk (Elf64_Ehdr): Likewise.
	* pickles/id3v1.pk (ID3V1_Tag): Likewise.
	* pickles/id3v2.pk (ID3V2_Hdr): Likewise.
	* pickles/jffs2.pk (JFFS2_Dirent): Likewise.
	(JFFS2_Inode): Likewise.
	(JFFS2_XAttr): Likewise.
	(JFFS2_XRef): Likewise.
	(JFFS2_Sum_Dirent): Likewise.
	(JFFS2_Sum_XAttr): Likewise.
	(JFFS2_Sum_XRef): Likewise.
	(JFFS2_Summary): Likewise.
	* pickles/mbr.pk (MBR): Likewise.
	* pickles/ustar.pk (USTAR_Sector): Likewise.
	* doc/poke.texi (Field Initializers): Document the syntax in field
	initializers.

2021-04-10  Jose E. Marchesi  <jemarch@gnu.org>

	* libpoke/pkl-tab.y: Rule for `== EXPRESSION' in struct field
	types, and modify semantics of `= EXPRESSION'.

2021-04-08  Jose E. Marchesi  <jemarch@gnu.org>

	* libpoke/pkl-typify.c (pkl_typify1_ps_cast): Do not allow casting
	`any' to a function type.
	* testsuite/poke.pkl/cast-any-to-function-diag-1.pk: New test.
	* testsuite/Makefile.am (EXTRA_DIST): Add new test.
	* etc/poke.rec (support casts from `any' to function types): New
	task.

2021-04-08  Jose E. Marchesi  <jemarch@gnu.org>

	* poke/pk-help.pk (Poke_HelpEntry): Add constraint to make sure
	the summary doesn't span for multiple lines.

2021-04-08  Jose E. Marchesi  <jemarch@gnu.org>

	* etc/poke-mode.el (poke-mode-syntax-table): Fix syntax of //
	comments.

2021-04-08  Jose E. Marchesi  <jemarch@gnu.org>

	* poke/poke.pk: Define pk_doc_viewer.
	* poke/poke.c: Remove global poke_doc_viewer.
	(initialize): Do not initialize poke_doc_viewer.
	(pk_var_string): New function.
	* poke/pk-cmd-misc.c (pk_cmd_doc): Use pk_var_string instead of
	poke_doc_viewer.
	* poke/pk-settings.pk: Add setting for doc-viewer.

2021-04-08  Jose E. Marchesi  <jemarch@gnu.org>

	* poke/pk-cmd-set.c (pk_cmd_set): New function.
	(pk_cmd_set_int): Likewise.
	(pk_cmd_set_bool_str): Likewise.

2021-04-08  Jose E. Marchesi  <jemarch@gnu.org>

	* poke/pk-cmd.c (pk_cmd_exec_1): Set argv[0] to a string argument
	containing the dot-command name.
	* poke/pk-cmd-help.c (pk_cmd_help): Likewise.
	* poke/pk-cmd-editor.c (pk_cmd_editor): Adjust accordingly.
	* poke/pk-cmd-vm.c (pk_cmd_vm_disas_exp): Likewise.
	(pk_cmd_vm_disas_fun): Likewise.
	* poke/pk-cmd-set.c (pk_cmd_set_obase): Likewise.
	(pk_cmd_set_endian): Likewise.
	(pk_cmd_set_nenc): Likewise.
	(pk_cmd_set_auto_map): Likewise.
	(pk_cmd_set_prompt_maps): Likewise.
	(pk_cmd_set_pretty_print): Likewise.
	(pk_cmd_set_oacutoff): Likewise.
	(pk_cmd_set_odepth): Likewise.
	(pk_cmd_set_oindent): Likewise.
	(pk_cmd_set_omaps): Likewise.
	(pk_cmd_set_omode): Likewise.
	(pk_cmd_set_error_on_warning): Likewise.
	(pk_cmd_set_doc_viewer): Likewise.
	* poke/pk-cmd-misc.c (pk_cmd_exit): Likewise.
	(pk_cmd_doc): Likewise.
	(pk_cmd_jmd): Likewise.
	* poke/pk-cmd-map.c (pk_cmd_map_create): Likewise.
	(pk_cmd_map_remove): Likewise.
	(pk_cmd_map_show): Likewise.
	(pk_cmd_map_entry_add): Likewise.
	(pk_cmd_map_entry_remove): Likewise.
	(pk_cmd_map_load): Likewise.
	(pk_cmd_info_maps): Likewise.
	* poke/pk-cmd-ios.c (pk_cmd_ios): Likewise.
	(pk_cmd_sub): Likewise.
	(pk_cmd_proc): Likewise.
	(pk_cmd_file): Likewise.
	(pk_cmd_close): Likewise.
	(pk_cmd_info_ios): Likewise.
	(pk_cmd_load_file): Likewise.
	(pk_cmd_source_file): Likewise.
	(pk_cmd_mem): Likewise.
	(pk_cmd_nbd): Likewise.

2021-04-08  Jose E. Marchesi  <jemarch@gnu.org>

	* libpoke/libpoke.h: Prototype for pk_struct_ref_field_value.
	* libpoke/pk-val.c (pk_struct_ref_field_value): New function.
	* poke/pk-cmd-set.c (pk_cmd_set_init): New function.
	(pk_cmd_set_int): New function.
	(pk_cmd_set_bool_str): Likewise.
	* poke/pk-cmd.c (pk_cmd_init): Call pk_cmd_set_init.

2021-04-08  Jose E. Marchesi  <jemarch@gnu.org>

	* poke/pk-settings.pk: Add settings oacutoff, odepth, oindent,
	omaps, omode.

2021-04-08  Jose E. Marchesi  <jemarch@gnu.org>

	* doc/poke.texi (@code{vm_oacutoff}): New section.
	(@code{vm_set_oacutoff}): Likewise.
	(@code{vm_odepth}): Likewise.
	(@code{vm_oindent}): Likewise.
	(@code{vm_set_oindent}): Likewise.
	(@code{vm_omaps}): Likewise.
	(@code{vm_set_omaps}): Likewise.
	(@code{vm_omode}): Likewise.

	* libpoke/pkl-tab.y: New tokens.
	* libpoke/pkl-lex.l: Handle new tokens.
	* libpoke/pkl-rt.pk: Define new built-ins.
	* libpoke/pkl-gen.c: Generate code for new built-ins.
	* testsuite/poke.pkl/vm-oacutoff-1.pk: New test.
	* testsuite/poke.pkl/vm-set-oacutoff-1.pk: Likewise.
	* testsuite/poke.pkl/vm-odepth-1.pk: Likewise.
	* testsuite/poke.pkl/vm-set-odepth-1.pk: Likewise.
	* testsuite/poke.pkl/vm-oindent-1.pk: Likewise.
	* testsuite/poke.pkl/vm-set-oindent-1.pk: Likewise.
	* testsuite/poke.pkl/vm-omaps-1.pk: Likewise.
	* testsuite/poke.pkl/vm-set-omaps-1.pk: Likewise.
	* testsuite/poke.pkl/vm-omode-1.pk: Likewise.
	* testsuite/poke.pkl/vm-set-omode-1.pk: Likewise.

2021-04-08  Jose E. Marchesi  <jemarch@gnu.org>

	* poke/pk-settings.pk: Simplify handling of boolean settings.

2021-04-08  Jose E. Marchesi  <jemarch@gnu.org>

	* poke/poke.pk (pk_prompt_maps_p): New global.
	* poke/pk-settings.pk: Setting for prompt-maps.

2021-04-08  Jose E. Marchesi  <jemarch@gnu.org>

	* poke/poke.h: Remove global poke_auto_map_p.
	* poke/poke.c: Rename poke_auto_map_p to poke_default_auto_map_p.
	(initialize): Set the default value of poke_auto_map_p.
	(pk_auto_map_p): New function.
	* poke/pk-cmd-set.c (pk_cmd_set_auto_map): Use the new functions
	instead of referring to the global.
	* poke/pk-ios.c (pk_open_file): Likewise.
	* poke/pk-map.pk: Declare poke_auto_map_p.
	* poke/pk-settings.pk: Add new global setting auto-map.

2021-04-07  Jose E. Marchesi  <jemarch@gnu.org>

	* poke/pk-settings.pk (Poke_Setting_Registry): New method `add'.
	Use the method to create entries.

2021-04-07  Jose E. Marchesi  <jemarch@gnu.org>

	* poke/pk-help.pk: New file.
	* poke/pk-map.pk: Likewise.
	* poke/Makefile.am (dist_pkgdata_DATA): Add pk-help.pk and
	pk-map.pk
	* poke/poke.pk: Move definitions to the new files and load them.

2021-04-07  Jose E. Marchesi  <jemarch@gnu.org>

	* poke/poke.pk (pk_host_endian): New variable.
	(pk_network_endian): Likewise.
	* poke/poke.c (initialize): Initialize the values of
	pk_host_endian and pk_network_endian.
	* poke/pk-settings.pk (Poke_Setting_Registry): add the `endian'
	global setting.

2021-04-07  Jose E. Marchesi  <jemarch@gnu.org>

	* libpoke/pkl-tab.y: New tokens BUILTIN_VM_OPPRINT and
	BUILTIN_VM_SET_OPPRINT.
	(builtin): Add rules for them.
	* libpoke/pkl-lex.l: Recognize new tokens.
	* libpoke/pkl-ast.h (PKL_AST_BUILTIN_VM_OPPRINT): Define.
	(PKL_AST_BUILTIN_VM_SET_OPPRINT): Likewise.
	* libpoke/pkl-rt.pk (vm_opprint): New function.
	(vm_set_opprint): Likewise.
	* libpoke/pkl-gen.c (pkl_gen_ps_comp_stmt): Generate code for new
	builtins.
	* poke/pk-settings.pk: Use new builtins.
	* libpoke/pvm.jitter: Move pretty-print from the runtime state to
	the backing state.
	* libpoke/pvm.c (PVM_STATE_OPPRINT): Redefine accordingly.
	* testsuite/poke.pkl/vm-opprint-1.pk: New test.
	* testsuite/poke.pkl/vm-set-opprint-1.pk: Likewise.
	* doc/poke.texi (VM): New section.
	(pk_opprint): New subsection.
	(pk_set_opprint: Likewise.

2021-04-07  Jose E. Marchesi  <jemarch@gnu.org>

	* libpoke/pkl-tab.y: New tokens BUILTIN_VM_OBASE and
	BUILTIN_VM_SET_OBASE.
	(builtin): Add rules for them.
	* libpoke/pkl-lex.l: Recognize new tokens.
	* libpoke/pkl-ast.h (PKL_AST_BUILTIN_VM_OBASE): Define.
	(PKL_AST_BUILTIN_VM_SET_OBASE): Likewise.
	* libpoke/pkl-rt.pk (vm_obase): New function.
	(vm_set_obase): Likewise.
	* libpoke/pkl-gen.c (pkl_gen_ps_comp_stmt): Generate code for new
	builtins.
	* poke/pk-settings.pk: Use new builtins.
	* libpoke/pvm.jitter: Move obase from the runtime state to the
	backing state.
	* libpoke/pvm.c (PVM_STATE_OBASE): Redefine accordingly.
	* testsuite/poke.pkl/vm-obase-1.pk: New test.
	* testsuite/poke.pkl/vm-set-obase-1.pk: Likewise.
	* testsuite/poke.pkl/vm-set-obase-diag-1.pk: Likewise.
	* doc/poke.texi (VM): New section.
	(pk_obase): New subsection.
	(pk_set_obase): Likewise.

2021-04-07  Jose E. Marchesi  <jemarch@gnu.org>

	* poke/pk-settings.pk: New file.
	* poke/Makefile.am (dist_pkgdata_DATA): Add pk-settings.pk
	* poke/poke.pk: Load pk-settings.pk.
	(pk_help): Print summary of available "settings" help topics.

2021-04-07  Jose E. Marchesi  <jemarch@gnu.org>

	* libpoke/pvm.jitter (popob): Use jitter macros instead of pvm
	calls to access the runtime state.
	(pushend): Likewise.
	(popend): Likewise.
	(pushob): Likewise.
	(pushom): Likewise.
	(popom): Likewise.
	(pushoo): Likewise.
	(popoo): Likewise.
	(pushoi): Likewise.
	(popoi): Likewise.
	(pushod): Likewise.
	(popod): Likewise.
	(popoac): Likewise.
	(pushopp): Likewise.
	(popopp): Likewise.

2021-04-07  Jose E. Marchesi  <jemarch@gnu.org>

	* libpoke/pkl-typify.c (pkl_typify1_ps_op_rela): Handle function
	arguments.
	* libpoke/pkl-promo.c (pkl_promo_ps_op_rela): Likewise.
	* libpoke/pkl-gen.c (pkl_gen_ps_op_rela): Likewise.
	* libpoke/pkl-insn.def: New instructions PKL_INSN_EQC and
	PKL_INSN_NEC.
	* libpoke/pvm.jitter (eqc): New instruction.
	(nec): Likewise.
	* libpoke/pkl-asm.c (pkl_asm_insn_cmp): Support EQ and NE for
	function values.
	* doc/poke.texi (Function Comparison): New section.
	* testsuite/poke.pkl/gt-functions-diag-1.pk: New test.
	* testsuite/poke.pkl/ge-functions-diag-1.pk: Likewise.
	* testsuite/poke.pkl/le-functions-diag-1.pk: Likewise.
	* testsuite/poke.pkl/lt-functions-diag-1.pk: Likewise.
	* testsuite/poke.pkl/ne-functions-2.pk: Likewise.
	* testsuite/poke.pkl/ne-functions-1.pk: Likewise.
	* testsuite/poke.pkl/eq-functions-2.pk: Likewise.
	* testsuite/poke.pkl/eq-functions-1.pk: Likewise.
	* testsuite/Makefile.am (EXTRA_DIST): Update.

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

	* poke/pk-dump.pk (dump): Fix printing of hyperlink.

2021-04-05  Jose E. Marchesi  <jemarch@gnu.org>

	* configure.ac: Conditionalize the AC_DEFINE of HAVE_PROC.

2021-04-05  Kostas Chasialis  <sdi1600195@di.uoa.gr>

	* etc/pk-mi-json-schema.json (schema): Added all "required" fields to
	"Mapping". "IOS" can now take null.

2021-04-05  Luca Saiu  <positron@gnu.org>

	* configure.ac (JITTER_PROFILE_COUNT, JITTER_PROFILE_SAMPLE):
	Change to PVM_PROFILE_COUNT and PVM_PROFILE_SAMPLE, for
	compatibility with Jitter.

2021-04-05  Egeyar Bagcioglu  <egeyar@gmail.com>

	* etc/git-hooks/pre-push: Report it clearly when the pre-push hook
	fails due to remote containing unfetched commits.

2021-04-05  Jose E. Marchesi  <jemarch@gnu.org>

	* poke/pk-hserver.pk (hserver_token_kind): The token is no longer
	an index.
	(hserver_token_cmd): Likewise.
	(hserver_token_function): Likewise.
	(hserver_token_p): Likewise.

2021-04-05  Jose E. Marchesi  <jemarch@gnu.org>

	* poke/poke.c (initialize): Load pk-hserver.pk directly.
	* poke/pk-hserver.h: Remove pk_hserver_load.
	* poke/pk-hserver.c (pk_hserver_load): Remove function.

2021-04-05  Jose E. Marchesi  <jemarch@gnu.org>

	* poke/poke.pk (pk_help): Generate hyperlinks for help topics.
	* poke/pk-dump.pk (pk_dump_addr_hyperlinks): New variable.
	(dump): Support emitting hyperlinnks for printed bytes.
	* doc/poke.texi (Presentation options for @command{dump}):
	Document the hyperlinks support in dump.

2021-04-05  Jose E. Marchesi  <jemarch@gnu.org>

	* poke/pk-hserver.c (pk_hserver_load): New function.
	* poke/poke.c (initialize): Make sure pk-hserver.pk gets loaded
	before poke.pk and the cmd subsystem.

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

	* poke/pk-cmd-ios.c (pk_cmd_info_ios): Add column for button
	[close].
	(print_info_ios): Emit a [close] button as a hyperlink.

2021-04-04  Egeyar Bagcioglu  <egeyar@gmail.com>

	* doc/poke.texi: Adjust the output of ".info ios".
	* libpoke/libpoke.c (pk_ios_get_bias): New.
	* libpoke/libpoke.h (pk_ios_get_bias): Likewise.
	* libpoke/pkl-ast.h: Define PKL_AST_BUILTIN_IOGETB and
	PKL_AST_BUILTIN_IOSETB.
	* libpoke/pkl-gen.c (PKL_PHASE_BEGIN_HANDLER): Add the cases
	PKL_AST_BUILTIN_IOGETB and PKL_AST_BUILTIN_IOSETB.
	* libpoke/pkl-lex.l: Add "__PKL_BUILTIN_IOGETB__" and
	"__PKL_BUILTIN_IOSETB__".
	* libpoke/pkl-rt.pk: Declare iobias and iosetbias.
	* libpoke/pkl-tab.y: Add BUILTIN_IOGETB and BUILTIN_IOSETB.
	* libpoke/pvm.jitter (iogetb): If bias is 8-bit aligned, report it in
	bytes, else in bits.
	(iosetb): Swap the positions of bias and ios.
	* poke/pk-cmd-ios.c (print_info_ios): Print the bias.
	(pk_cmd_info_ios): Likewise.
	* testsuite/Makefile.am: Add the new test files.
	* testsuite/poke.cmd/file-bias-1.pk: New
	* testsuite/poke.cmd/file-bias-2.pk: New.
	* testsuite/poke.cmd/file-mode.pk: Adjust ".info ios".
	* testsuite/poke.cmd/file-relative.pk: Likewise.
	* testsuite/poke.pkl/iobias-1.pk: New.
	* testsuite/poke.pkl/iobias-2.pk: New.
	* testsuite/poke.pkl/iosetbias-1.pk: New.
	* testsuite/poke.pkl/iosetbias-2.pk: New.
	* testsuite/poke.pkl/iosetbias-3.pk: New.
	* testsuite/poke.pkl/iosetbias-4.pk: New.
	* testsuite/poke.pkl/iosetbias-5.pk: New.
	* testsuite/poke.pkl/iosetbias-6.pk: New.
	* testsuite/poke.pkl/iosetbias-7.pk: New.

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

	* libpoke/pvm.jitter (exit): Mark instruction as `branching',
	since it uses JITTER_EXIT.

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

	* poke/pk-hserver.c (read_from_client): Print a string hint after
	the prompt when dispatching 'c' hyperlinks.
	* poke/pk-hserver.pk (hserver_print_hl): Get an optional
	`function' argument.

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

	* poke/pk-hserver.pk (HServer_Token): New field `function'.
	(hserver_make_hyperlink): Handle hyperlinks of kind 'c'.
	(hserver_token_function): New function.
	* poke/pk-hserver.c (pk_hserver_function): New function.
	(pk_hserver_make_hyperlink): Get a `function' argument.
	(read_from_client): Dispatch 'c' hyperlinks.
	* poke/pk-cmd-ios.c (print_info_ios): Adjust accordingly.
	* poke/pk-repl.c (banner): Likewise.

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

	* poke/pk-hserver.pk (hserver_get_token): Allow hserver_cur_token
	to grow up to 2 ** 32.
	(hserver_make_hyperlink): Wrap the token
	number to a table index.
	* poke/pk-hserver.c (pk_hserver_get_token): hserver_get_token
	returns an unsigned int.
	* poke/pk-hserver.h: Adapt prototype accordingly.

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

	* libpoke/pkl.c (pkl_compile_call): Fix passing PVM_NULL
	arguments.

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

	* etc/poke.rec (Make pvm_print_val show integral structs as
	integers): Add missing Component.

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

	* libpoke/libpoke.c (pk_call): Allow passing PK_NULL as arguments,
	for optional arguments.
	* libpoke/pkl.c (pkl_compile_call): Likewise.
	* poke/pk-cmd-help.c (pk_cmd_help): Adapt accordingly.
	* poke/pk-hserver.c (pk_hserver_get_token): Likewise.
	(pk_hserver_token_p): Likewise.
	(pk_hserver_token_kind): Likewise.
	(pk_hserver_cmd): Likewise.
	(pk_hserver_make_hyperlink): Likewise.

2021-04-03  Luca Saiu  <positron@gnu.org>

	* etc/hacking.org: Documentation.
	* etc/poke.rec: Documentation.
	* libpoke/pvm.jitter (wrapped-functions): Update.
	Add new attributes for compatibility with Jitter changes and
	no-threading, and for performance.
	* HACKING: Regenerate.

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

	* libpoke/pkl-trans.h (struct pkl_trans_payload): Add endianness
	stack.
	(pkl_trans_init_payload): Initialize endian.
	* libpoke/pkl-trans.c (PKL_TRANS_ENDIAN): Define.
	(PKL_TRANS_PUSH_ENDIAN): Likewise.
	(PKL_TRANS_POP_ENDIAN): Likewise.
	(pkl_trans1_pr_struct_type_field): New handler.
	(pkl_trans1_ps_struct_type_field): Likewise.
	(pkl_phase_trans1): Register new handlers.
	* libpoke/pkl-anal.c (pkl_anal2_ps_struct_type_field): Remove
	error check and add warning.
	* testsuite/poke.map/maps-structs-endian-3.pk: New test.
	* testsuite/poke.map/maps-structs-endian-4.pk: Likewise.
	* testsuite/poke.map/maps-structs-endian-5.pk: Likewise.
	* testsuite/poke.map/maps-structs-endian-6.pk: Likewise.
	* doc/poke.texi (Field Endianness): Note that `little' and `big'
	are valid for any kind of field.
	* testsuite/poke.map/maps-structs-endian-7.pk: Likewise.
	* testsuite/poke.map/maps-structs-endian-8.pk: Likewise.
	* testsuite/poke.map/maps-structs-endian-9.pk: Likewise.
	* testsuite/poke.map/maps-structs-endian-10.pk: Likewise.
	* testsuite/poke.map/maps-structs-endian-diag-1.pk: Likewise.
	* testsuite/poke.map/maps-structs-endian-11.pk: Likewise.
	* testsuite/poke.pkl/struct-types-endian-diag-1.pk: Remove test.
	* testsuite/poke.pkl/struct-types-endian-diag-2.pk: Likewise.
	* testsuite/Makefile.am (EXTRA_DIST): Update.

2021-04-01  Jose E. Marchesi  <jemarch@gnu.org>

	* libpoke/libpoke.h: pk_ios_size now reports size in bytes.
	* libpoke/ios.h: Likewise for ios_size.
	* libpoke/ios.c (ios_size): Adjust accordingly.
	* libpoke/pvm.jitter (iosize): Likewise.
	* poke/pk-cmd-ios.c (print_info_ios): Likewise.
	* libpoke/pkl-rt.pk (iosize): Likewise.
	* testsuite/poke.pkl/ios-mem-4.pk: Adjust accordingly.
	* testsuite/poke.pkl/iosize-1.pk: Likewise.

2021-04-01  Jose E. Marchesi  <jemarch@gnu.org>

	* poke/pk-cmd-ios.c: Define.
	(PK_PROC_F_MAPS_ALL): Likewise.
	(PK_PROC_F_MAPS): Likewise.
	* poke/pk-ios.h: Prototype for pk_open_proc_maps.
	* poke/pk-ios.c (pk_open_proc_maps): New function.

2021-04-01  Jose E. Marchesi  <jemarch@gnu.org>

	* poke/pk-cmd-ios.c (pk_cmd_sub): New function.
	(sub_cmd): Define.
	(close_if_sub_of): New function.
	(pk_cmd_close): Close sub-IOS automatically.
	* poke/pk-cmd.c (dot_cmds): Register sub_cmd.
	* libpoke/ios.c (ios_map): Allow callbacks to remove the given
	ios.
	* testsuite/poke.cmd/close-sub-1.pk: New test.
	* testsuite/Makefile.am (EXTRA_DIST): Add new test.
	* doc/poke.texi (close command): Note how .closing an IO space
	also closes sub-spaces.
	(sub command): New section.

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

	* poke/pk-cmd-ios.c (pk_cmd_proc): New function.
	(proc_cmd): Define.
	* poke/pk-cmd.c (dot_cmds): Add proc_cmd.
	* doc/poke.texi (proc command): New section.

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

	* configure.ac (HAVE_PROC): Define if the host OS provides a proc/
	directory.
	* libpoke/ios-dev-proc.c: New file.
	* libpoke/Makefile.am (libpoke_la_SOURCES): Add ios-dev-proc.c.
	* libpoke/ios.c (ios_dev_ifs): Add ios_dev_proc.

2021-04-01  Jose E. Marchesi  <jemarch@gnu.org>

	* libpoke/ios-dev.h: Prototypes for ios_get_dev and
	ios_get_dev_if.
	* libpoke/ios.c (ios_get_dev): New function.
	(ios_get_dev_if): Likewise.
	(ios_dev_ifs): Register ios_dev_sub.
	(ios_write_int): Return IOS_EPERM if the IOS is not writable.
	(ios_write_uint): Likewise.
	(ios_write_string): Likewise.
	* libpoke/ios-dev-sub.c: New file.
	* libpoke/Makefile.am (libpoke_la_SOURCES): Add ios-dev-sub.c.
	* libpoke/std.pk (opensub): New function.
	* testsuite/poke.pkl/open-sub-1.pk: New test.
	* testsuite/poke.pkl/open-sub-2.pk: Likewise.
	* testsuite/poke.pkl/open-sub-3.pk: Likewise.
	* testsuite/poke.pkl/open-sub-4.pk: Likewise.
	* testsuite/poke.pkl/open-sub-5.pk: Likewise.
	* testsuite/poke.pkl/open-sub-6.pk: Likewise.
	* testsuite/poke.pkl/open-sub-7.pk: Likewise.
	* testsuite/poke.pkl/open-sub-8.pk: Likewise.
	* testsuite/poke.pkl/open-sub-9.pk: Likewise.
	* testsuite/poke.pkl/open-sub-10.pk: Likewise.
	* testsuite/poke.pkl/open-sub-11.pk: Likewise.
	* testsuite/poke.pkl/open-sub-12.pk: Likewise.
	* testsuite/poke.pkl/open-sub-13.pk: Likewise.
	* testsuite/poke.pkl/open-sub-14.pk: Likewise.
	* testsuite/poke.pkl/open-sub-15.pk: Likewise.
	* testsuite/poke.pkl/open-sub-16.pk: Likewise.
	* testsuite/poke.pkl/open-sub-17.pk: Likewise.
	* testsuite/poke.pkl/open-sub-18.pk: Likewise.
	* testsuite/Makefile.am (EXTRA_DIST): Add new tests.

2021-04-01  Jose E. Marchesi  <jemarch@gnu.org>

	* libpoke/std.pk (ltos): Support an optional `base' argument.
	* testsuite/poke.std/std-test.pk: Add tests for other bases in
	ltos.
	* doc/poke.texi (ltos): Document the `base' argument.

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

	* poke/pk-dump.pk (dump): Handle E_ios when peeking bytes.
	(pk_dump_unknown_byte): Define.
	* etc/poke-default.css (.dump-unknown): New class.
	* doc/poke.texi (Presentation options for @command{dump}):
	Document pk_dump_unknown_byte.

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

	* libpoke/ios-dev-file.c (ios_dev_file_pwrite): Return IOD_ERROR
	in case ferror returns an error.
	(ios_dev_file_pread): Return IOD_ERROR in
	case ferror returns an error.
	(ios_dev_file_pwrite): Likewise.
	* libpoke/ios.c (IOS_PUT_C_ERR_CHCK): Handle errors from pwrite.
	(ios_write_int_fast): Likewise.
	(ios_write_string): Likewise.
	(IOS_GET_C_ERR_CHCK): Handle IOD_ERROR from pread.
	(ios_read_int_common): Likewise.
	(ios_read_int): Likewise.
	(ios_read_uint): Likewise.
	(ios_read_string): Likewise.
	(ios_read_string): Use IOS_EOF instead of IOS_EIOFF.
	(ios_write_string): Likewise.
	* libpoke/ios.h (IOS_EIOFF): Remove.
	* libpoke/pvm.jitter: Use IOS_EOF instead of IOS_EIOFF.

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

	* testsuite/poke.cmd/dump-12.pk: New test.
	* testsuite/Makefile.am (EXTRA_DIST): Add new test.

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

	* libpoke/ios-dev-zero.c: New file.
	* libpoke/Makefile.am (libpoke_la_SOURCES): Add ios-dev-zero.c.
	* libpoke/ios.c (ios_dev_ifs): Register ios_dev_zero.

2021-03-31  Kostas Chasialis  <sdi1600195@di.uoa.gr>

	* bootstrap.conf (gnulib_modules): Added vsnprintf-posix module.

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

	* poke/pk-dump.pk (dump): Fix ruler and addresses for offsets >
	2^32.

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

	* libpoke/pvm-val.c (pvm_array_insert): Do not pvm_sizeof the
	whole array for each inserted element.

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

	* libpoke/pkl-ast.h (PKL_AST_BUILTIN_SLEEP): Define.
	* libpoke/pkl-lex.l: Handle __PKL_BUILTIN_SLEEP__.
	* libpoke/pkl-tab.y (builtin): Rule for the sleep builtin.
	* libpoke/pkl-gen.c (pkl_gen_ps_comp_stmt): Generate code for the
	`sleep' builtin.
	* libpoke/pkl-rt.pk (sleep): Define builtin.
	* libpoke/pvm.jitter (sleep): Do not raise an exception if
	nanosleep gets interrupted and raise E_generic whenever
	appropriate.
	* bootstrap.conf (libpoke_modules): Import the module `errno' from
	gnulib.
	* testsuite/poke.pkl/sleep-1.pk: New test.
	* testsuite/poke.pkl/sleep-2.pk: Likewise.
	* testsuite/poke.pkl/sleep-3.pk: Likewise.
	* testsuite/Makefile.am (EXTRA_DIST): Add new tests.

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

	* libpoke/pkl-insn.def: New instruction PKL_INSN_SLEEP.
	* libpoke/pvm.jitter (sleep): New instruction.
	* bootstrap.conf (libpoke_modules): Import module `nanosleep'.

2021-03-29  Jose E. Marchesi  <jemarch@gnu.org>

	* pickles/btf.pk (BTF_Section): Check that the header in the
	section declares the right size.
	Use header.hdr_len instead of OFFSET.
	(BTF_Header): Use an initialization value for `magic'.

2021-03-28  Mohammad-Reza Nabipoor  <m.nabipoor@yahoo.com>

	* etc/pk-mi-json-schema.json: Re-order fields. Remove `Null` object.
	Change `Mapping` to accept one required field `mapped` and three
	optional fields: `strict`, `IOS` and `offset`.
	* poke/pk-mi-json.c: Re-write the JSON to pk_val conversion.
	(jerror): New function.
	(jexpect): Likewise.
	(pvalue): Likewise.
	(pexpect): Likewise.
	(pexpect_sct): Likewise.
	(pexpect_aelem): Likewise.
	(pexpect_arr): Likewise.
	(pexpect_map): Likewise.
	(pk_mi_jsonobj_to_val): Likewise.
	(pk_mi_null_to_json): Removed.
	(pk_mi_json_to_val_1): Likewise.
	(pk_mi_json_poke_value_type): Likewise.
	(pk_mi_json_to_int): Likewise.
	(pk_mi_json_to_uint): Likewise.
	(pk_mi_json_to_string): Likewise.
	(pk_mi_json_to_offset): Likewise.
	(pk_mi_json_to_mapping): Likewise.
	(pk_mi_json_to_sct): Likewise.
	(pk_mi_json_array_element_pair): Likewise.
	(pk_mi_json_to_array): Likewise.
	(collect_json_arg): Use `pk_mi_jsonobj_to_val` function.
	(pk_mi_json_to_val): Re-write.
	(RETURN_ON_JERR): New macro.
	(RETURN_ERR_IF): Likewise.
	* testsuite/poke.mi-json/mi-json.c (JFIELD_IMPL): New macro.
	(JFIELD): Likewise.
	(CHK_IMPL): Likewise.
	(CHK): Likewise.
	(STREQ_LIT): Likewise.
	(test_json_pk_int): Re-write.
	(test_json_pk_uint): Likewise.
	(test_json_pk_string): Likewise.
	(test_json_pk_offset): Likewise.
	(test_json_pk_null): Likewise.
	(test_json_pk_sct): Likewise.
	(test_json_pk_array): Likewise.
	(test_json_to_val): Report more info to the `stdout`.
	* testsuite/poke.mi-json/pk_offset_uint.json: New sample file.
	* testsuite/poke.mi-json/pk_sct_empty.json: Likewise.
	* testsuite/poke.mi-json/pk_sct_empty_mapped.json: Likewise.
	* testsuite/poke.mi-json/pk_array.json: Change `mapping`.
	* testsuite/poke.mi-json/pk_sct.json: Likewise.
	* testsuite/Makefile.am (EXTRA_DIST): Updated.

2021-03-28  Mohammad-Reza Nabipoor  <m.nabipoor@yahoo.com>

	* libpoke/libpoke.h (pk_val_mappable_p): New function declaration.
	(pk_val_set_mapped): Likewise.
	(pk_val_strict_p): Likewise.
	(pk_val_set_strict): Likewise.
	(pk_val_set_ios): Likewise.
	(pk_val_set_offset): Likewise.
	(pk_val_boffset): Likewise.
	(pk_val_set_boffset): Likewise.
	* libpoke/pvm-val.h (PVM_VAL_MAPPABLE_P): New macro.
	* libpoke/pk-val.c (pk_val_mappable_p): New function definition.
	(pk_val_set_mapped): Likewise.
	(pk_val_strict_p): Likewise.
	(pk_val_set_strict): Likewise.
	(pk_val_set_ios): Likewise.
	(pk_val_set_offset): Likewise.
	(pk_val_boffset): Likewise.
	(pk_val_set_boffset): Likewise.
	* testsuite/poke.libpoke/values.c (test_simple_values_mapping):
	New tests.

2021-03-27  Jose E. Marchesi  <jemarch@gnu.org>

	* testsuite/poke.map/ass-map-20.pk: New test.
	* testsuite/poke.map/maps-strings-4.pk: Renamed from
	maps-strings-diag-4.pk.
	* testsuite/Makefile.am (EXTRA_DIST): Update accordingly.

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

	* libpoke/ios-dev-file.c (ios_dev_file_convert_flags): Return
	-1 for bad flags to avoid collision with O_RDONLY == 0.
	(ios_dev_file_open): Update flags_for_open check accordingly.

2021-03-27  Jose E. Marchesi  <jemarch@gnu.org>

	* poke/pk-dump.pk (dump): Raise E_perm instead of E_no_ios if
	the specified IO space exists but is not readable.
	* testsuite/poke.cmd/dump-10.pk: Update accordingly.

2021-03-27  Jose E. Marchesi  <jemarch@gnu.org>

	* bootstrap.conf (gnulib_modules): Import the gnulib `access'
	module.

2021-03-27  Jose E. Marchesi  <jemarch@gnu.org>

	* poke/pk-cmd-ios.c (pk_cmd_file): Do not check for read
	permissions before actually attempting to open the file.
	* libpoke/ios-dev-file.c (ios_dev_file_open): Try to open in
	write-only mode if flags are not specified.

2021-03-27  Jose E. Marchesi  <jemarch@gnu.org>

	* etc/poke.rec (Add IOS_EPERM and exception E_perm): Removed as
	done.

2021-03-27  Jose E. Marchesi  <jemarch@gnu.org>

	* doc/poke.texi (Exceptions): Document E_perm.

2021-03-27  Jose E. Marchesi  <jemarch@gnu.org>

	* libpoke/ios.c (ios_read_uint): Return IOS_EPERM if the IO space
	is not readable.
	(ios_read_int): Likewise.
	(ios_read_string): Likewise.
	(IOS_GET_C_ERR_CHCK): Likewise.
	* testsuite/poke.map/maps-perm-1.pk: New test.
	* testsuite/poke.map/maps-perm-2.pk: Likewise.
	* testsuite/poke.map/maps-perm-3.pk: Likewise.
	* testsuite/poke.map/maps-perm-4.pk: Likewise.
	* testsuite/Makefile.am (EXTRA_DIST): Add new tests.

2021-03-27  Jose E. Marchesi  <jemarch@gnu.org>

	* libpoke/ios.h (IOS_EPERM): Define.
	* libpoke/pvm.jitter (PVM_PEEK): Raise PVM_E_PERM if the IO
	subsystem reports IOS_EPERM.
	(PVM_POKE): Likewise.
	(peeks): Likewise.
	(pokes): Likewise.

2021-03-27  Jose E. Marchesi  <jemarch@gnu.org>

	* libpoke/pvm.h (PVM_E_PERM): Define.
	(PVM_E_PERM_MSG): Likewise.
	(PVM_E_PERM_ESTATUS): Likewise.
	* libpoke/pkl-rt.pk (EC_perm): New variable.
	(E_perm): Likewise.

2021-03-27  Mohammad-Reza Nabipoor  <m.nabipoor@yahoo.com>

	* poke/pk-mi-json.c (pk_mi_offset_to_json): Add support for `uint`
	as magnitude of offsets.

2021-03-27  Mohammad-Reza Nabipoor  <m.nabipoor@yahoo.com>

	* libpoke/pk-val.c (pk_val_offset): Fix the unit of offset to use
	`uint<64>` instead of `uint<32>`.

2021-03-27  Jose E. Marchesi  <jemarch@gnu.org>

	* libpoke/ios-dev-mem.c (ios_dev_mem_open): Memory IOS are always
	read/write.
	* poke/pk-dump.pk (Arguments): Raise E_perm if the specified IOS
	is not readable.
	* testsuite/poke.cmd/dump-10.pk: New test.
	* testsuite/poke.cmd/dump-11.pk: Likewise.
	* testsuite/Makefile.am (EXTRA_DIST): Add new test.

2021-03-27  Jose E. Marchesi  <jemarch@gnu.org>

	* libpoke/pkl-tab.y (builtin): Rule for BUILTIN_IOFLAGS.
	* libpoke/pkl-ast.h (PKL_AST_BUILTIN_IOFLAGS): Define.
	* libpoke/pkl-lex.l: Handle __PKL_BUILTIN_IOFLAGS__.
	* libpoke/pkl-insn.def: New instruction ioflags.
	* libpoke/pvm.jitter: Likewise.
	* libpoke/pkl-rt.pk (ioflags): Define function.
	* libpoke/pkl-gen.c (pkl_gen_ps_comp_stmt): Generate code for the
	ioflags builtin.
	* doc/poke.texi (ioflags): New section.
	* testsuite/poke.pkl/ioflags-1.pk: New test.
	* testsuite/poke.pkl/ioflags-2.pk: Likewise.
	* testsuite/poke.pkl/ioflags-3.pk: Likewise.
	* testsuite/Makefile.am (EXTRA_DIST): Add new tests.

2021-03-27  Jose E. Marchesi  <jemarch@gnu.org>
	    Mohammad-Reza Nabipoor  <m.nabipoor@yahoo.com>

	* libpoke/pkl-gen.pks (complex_lmap): Make sure to leave the
	l-value in a good state if the writer raises an exception.
	* testsuite/poke.map/ass-map-19.pk: New test.
	* testsuite/Makefile.am (EXTRA_DIST): Add new test.

2021-03-26  Jose E. Marchesi  <jemarch@gnu.org>

	* libpoke/pkl-pass.c (pkl_do_pass_1): PKL_AST_LOOP_STMT_HEAD is a
	chain.
	* testsuite/poke.pkl/for-13.pk: New test.
	* testsuite/Makefile.am (EXTRA_DIST): Add new test.

2021-03-25  Jose E. Marchesi  <jemarch@gnu.org>

	* poke/pk-mi-msg.c (pk_mi_set_arg): An ANY msg argument can be of
	any type.

2021-03-25  Jose E. Marchesi  <jemarch@gnu.org>

	* poke/pk-mi.c (pk_mi_dispatch_msg): free invreq_msg once sent.

2021-03-25  Jose E. Marchesi  <jemarch@gnu.org>

	* poke/pk-mi-msg.def: New event INVREQ.
	* poke/pk-mi.c (pk_mi_dispatch_msg): Send an INVREQ event whenever
	appropriate.
	* poke/pk-mi-msg.h: Remove redundant prototype.

2021-03-25  Jose E. Marchesi  <jemarch@gnu.org>

	* poke/pk-cmd-ios.c (PK_FILE_UFLAGS): Define.
	(PK_FILE_F_CREATE): Likewise.
	(pk_cmd_file): Maybe create file.
	(file_cmd): Register PK_FILE_UFLAGS.
	* poke/pk-ios.c (pk_open_file): Get a new argument create_p.
	* poke/pk-ios.h: Update prototype for pk_open_file accordingly.
	* doc/poke.texi (file command): Document the flag /c.

2021-03-24  Jose E. Marchesi  <jemarch@gnu.org>

	* pickles/leb128.pk: Fix method `value' for both LEB128 and
	ULEB128.

2021-03-23  Jose E. Marchesi  <jemarch@gnu.org>

	* poke/pk-mi-json.c (pk_mi_json_object_to_msg): Small
	factorization.

2021-03-23  Jose E. Marchesi  <jemarch@gnu.org>

	* poke/pk-mi-msg.def: New file.
	* poke/pk-mi-msg.c: Rewrite based on pk-mi-msg.def.
	* poke/pk-mi-msg.h: Likewise.
	* poke/pk-mi-json.c: Likewise.
	* poke/Makefile.am (poke_SOURCES): Add pk-mi-msg.def.
	* testsuite/poke.mi-json/Makefile.am (mi_json_SOURCES): Add
	common/pk-utils.c.
	(mi_json_CPPFLAGS): Add common/.

2021-03-21  Jose E. Marchesi  <jemarch@gnu.org>

	* configure.ac: Update version to 1.1.
	* doc/gendocs_template: Likewise.

2021-03-21  Jose E. Marchesi  <jemarch@gnu.org>

	* NEWS: Update for 1.1.

2021-03-19  Jose E. Marchesi  <jemarch@gnu.org>

	* etc/Makefile.am (dist_lisp_DATA): Avoid byte-compiling emacs
	modes.

2021-03-17  Kostas Chasialis <sdi1600195@di.uoa.gr>

	* doc/gen-pvm-insns.sh: A more portable version of the script.
	* cfg.mk (sc_tests_listed_in_makefile_am): Now correctly finds
	tests on srcdir builds.

2021-03-17  Egeyar Bagcioglu  <egeyar@gmail.com>

	* libpoke/ios-dev-file.c (ios_dev_file_open): Create files with
	adequate flags.

2021-03-17  Jose E. Marchesi  <jemarch@gnu.org>

	* poke/pk-ios.h: Rename pk_open_ios to pk_open_file.
	* poke/pk-ios.c (pk_open_file): Likewise.
	(pk_open_file): Pass set_cur_p to pk_ios_open.
	* poke/pk-cmd-ios.c (pk_cmd_file): Reflect rename.
	* poke/poke.c (parse_args_2): Use pk_ios_open instead of
	pk_open_file.

2021-03-16  Thomas Weißschuh <thomas@t-8ch.de>

	* etc/Makefile.am: Distribute Emacs syntax highlighting.

2021-03-16  Thomas Weißschuh <thomas@t-8ch.de>

	* etc/vim/Makefile.am: Distribute vim syntax highlighting.

2021-03-15  Egeyar Bagcioglu  <egeyar@gmail.com>

	* .gitignore: Add /build /gl-libutils /doc/poke.text and tags

2021-03-15  Egeyar Bagcioglu  <egeyar@gmail.com>

	* libpoke/ios-dev-file.c (ios_dev_file_convert_flags): New function.
	(ios_dev_file_open): Open files with the right flags via "open".

2021-03-15  Egeyar Bagcioglu  <egeyar@gmail.com>

	* doc/poke.texi: Remove IOS_F_TRUNCATE.
	* etc/poke-mode.el: Likewise.
	* etc/poke.vim: Likewise.
	* libpoke/ios-dev-file.c (ios_dev_file_open): Likewise.
	* libpoke/ios-dev-nbd.c (ios_dev_nbd_open): Likewise.
	* libpoke/libpoke.h: Likewise.
	* libpoke/ios.h: Likewise.
	* libpoke/pkl-rt.pk: Likewise.

2021-03-14  Mohammad-Reza Nabipoor  <m.nabipoor@yahoo.com>

	* pickles/jffs2.pk (JFFS2_Dirent): Add initializer to `magic` field.
	(JFFS2_XAttr): Likewise.
	(JFFS2_XRef): Likewise.
	(JFFS2_Summary): Likewise.
	(JFFS2_Unk_Node): Likewise.
	(JFFS2_Inode): Add initializer to `magic`, `compr` and `usercompr`
	fields.

2021-03-14  Mohammad-Reza Nabipoor  <m.nabipoor@yahoo.com>

	* doc/learn-poke-language-in-y-minutes.pk: Add a new example of
	using both constraints and initializers in fields.

2021-03-13  Jose E. Marchesi  <jemarch@gnu.org>

	* libpoke/pkl-tab.y (struct_type_field): Adapt to
	struct_type_field_constraint_and_init.
	(struct_type_field_constraint_and_init): Rename from
	struct_type_field_constraint_or_init.
	* doc/poke.texi (Field Initializers): Document that both
	initializers and constructors are valid.
	* testsuite/poke.pkl/field-init-diag-3.pk: Remove test.
	* testsuite/poke.pkl/field-init-9.pk: New test.
	* testsuite/poke.pkl/field-init-10.pk: Likewise.
	* testsuite/poke.pkl/field-init-11.pk: Likewise.
	* testsuite/poke.pkl/field-init-12.pk: Likewise.
	* testsuite/Makefile.am (EXTRA_DIST): Update.

2021-03-13  Jose E. Marchesi  <jemarch@gnu.org>

	* poke/pk-dump.pk: Round :size up to the next byte instead of
	truncating.
	* testsuite/poke.cmd/dump-9.pk (pk_dump_ascii): New test.
	* testsuite/Makefile.am (EXTRA_DIST): Add new test.

2021-03-13  Jose E. Marchesi  <jemarch@gnu.org>

	* libpoke/pkl-gen.c (pkl_gen_pr_ass_stmt): Use SSET instead of
	SSETI for values mapped in non-strict mode.
	* testsuite/poke.map/nsmap-5.pk: New test.
	* testsuite/Makefile.am (EXTRA_DIST): Add new test.

2021-03-13  Jose E. Marchesi  <jemarch@gnu.org>

	* doc/poke.texi (Handling Incorrect Data): New section.

2021-03-13  Jose E. Marchesi  <jemarch@gnu.org>

	* doc/poke.texi (Non-strict Mapping): Texinfo fix.

2021-03-12  Jose E. Marchesi  <jemarch@gnu.org>

	* doc/poke.texi (Writing Binary Utilities): New chapter.
	(Poke Scripts): New section.
	(Filters): Likewise.
	(Command-Line Arguments): Likewise.

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

	* libpoke/pkl-insn.def: define instruction `rev'.
	* libpoke/pkl-asm.c (pkl_asm_insn_rev): New function.
	(pkl_asm_insn): Support REV.
	* libpoke/pkl-gen.c (pkl_gen_pr_print_stmt): Use the rev
	macro-instruction.
	(pkl_gen_pr_funcall): Likewise.
	(pkl_gen_pr_func): Likewise.

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

	* cfg.mk (sc_unitalicised_etc): Change rule so it is not triggered
	by mentions to files in etc/.
	* utils/pk-strings.in: Remove trailing whitespaces.

2021-03-10  Matt Ihlenfield  <mtihlenfield@protonmail.com>

	* etc/poke.vim: New vim syntax highlighter
	* doc/poke.texi: Added chapter/section on poke.vim

2021-03-10  Jose E. Marchesi  <jemarch@gnu.org>

	* utils/pk-strings.in: New file.
	* utils/Makefile.am: Rules for pk-strings.

2021-03-10  Jose E. Marchesi  <jemarch@gnu.org>

	* poke/pk-repl.c (banner): Avoid incomplete sentences in
	translatable strings.

2021-03-10  Jose E. Marchesi  <jemarch@gnu.org>

	* libpoke/pkl-rt.pk: Do not raise an exception if HOME is not
	defined in the environment.

2021-03-08  Matt Ihlenfield  <mtihlenfield@protonmail.com>

	* pickles/jffs2.pk: New pickle
	* pickles/Makefile.am: Added new jffs2.pk to dist_pickles_DATA

2021-03-08  Jose E. Marchesi  <jemarch@gnu.org>

	* libpoke/pkl-typify.c (pkl_typify1_ps_struct_type_field): Use
	pkl_ast_type_mappable_p to decide which field types are valid.
	* testsuite/poke.pkl/struct-types-diag-12.pk: New test.
	* testsuite/poke.pkl/struct-types-diag-13.pk: Likewise.
	* testsuite/Makefile.am (EXTRA_DIST): Add new tests.

2021-03-08  Jose E. Marchesi  <jemarch@gnu.org>

	* .x-sc_prohibit_path_max_allocation: New file.

2021-03-08  Jose E. Marchesi  <jemarch@gnu.org>

	* libpoke/ios-dev-file.c (ios_dev_file_open): Handle `open' flags
	better.
	* poke/pk-save.pk (save): Adapt to new handling of flags in the
	file IOD.

2021-03-07  Jose E. Marchesi  <jemarch@gnu.org>

	* doc/poke.texi (Struct Methods): Explain how methods have the
	ability to break data integrity.

2021-03-07  Jose E. Marchesi  <jemarch@gnu.org>

	* configure.ac: Check for recfix.
	* cfg.mk (sc_recfix_poke_rec): New rule.

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

	* testsuite/Makefile.am (check-DEJAGNU): `make check' now exits
	with an error status if runtest fails.

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

	* libpoke/pvm-val.h (PVM_VAL_OFF_UNIT_GIGIBYTES): Avoid using a LU
	suffix, fixing 32-bit.
	(PVM_VAL_OFF_UNIT_GIGABYTES): Likewise.

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

	* libpoke/pvm.jitter (PVM_POWOP_SIGNED): Avoid using the L suffix,
	fixing 32-bit.

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

	* libpoke/pkl-trans.c (pkl_trans1_ps_array): Avoid using size_t
	variables, fixing 32-bit.

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

	* configure.ac: Set NBDKIT to `no' if --disable-libnbd is used.

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

	* libpoke/pkl-trans.c (pkl_trans1_ps_print_stmt): Fix error
	message.

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

	* libpoke/pvm.jitter (PVM_PRINTL): make more portable.
	(printlu): Adapt accordingly.
	(printl): Likewise.
	(PVM_PRINTI): Make more portable.
	(printiu): Adapt accordingly.
	(printi): Likewise.

2021-03-06  Indu Bhagat  <indu.bhagat@oracle.com>

	* pickles/Makefile.am: Add ctf-dump.pk to dist_pickles_DATA.
	* pickles/ctf-dump.pk: New file.

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

	* libpoke/pkl-gen.c (pkl_gen_pr_type_array): Use pkl_asm_note
	instead of pkl_asm_insn (...PKL_INSN_NOTE).

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

	* libpoke/pvm-env.c (pvm_env_register): Fix for 32-bit hosts.

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

	* doc/poke.texi (Mapping Functions): New section.
	(Programming Emacs Modes): New chapter.
	(poke-mode): New section.
	(ras-mode): Likewise.
	(poke-map-mode): Likewise.

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

	* doc/poke.texi (Strings are not Arrays): New section.

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

	* doc/poke.texi (Getting Started): New section.

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

	* poke/pk-cmd-set.c (pk_cmd_set_oacutoff): Fix error message.
	(pk_cmd_set_obase): Likewise.
	(pk_cmd_set_endian): Likewise.
	(pk_cmd_set_nenc): Likewise.
	(pk_cmd_set_auto_map): Likewise.
	(pk_cmd_set_prompt_maps): Likewise.
	(pk_cmd_set_pretty_print): Likewise.
	(pk_cmd_set_odepth): Likewise.
	(pk_cmd_set_oindent): Likewise.
	(pk_cmd_set_omaps): Likewise.
	(pk_cmd_set_omode): Likewise.
	* poke/pk-cmd-ios.c (pk_cmd_file): Likewise.
	* poke/pk-repl.c (banner): Likewise.

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

	* libpoke/pvm.jitter (ains): Raise E_inval with a more informative
	message.
	(map): Likewise.
	(reloc): Likewise.
	(ureloc): Likewise.

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

	* doc/poke.texi (Padding and Alignment): New section.

2021-03-01  Jose E. Marchesi  <jemarch@gnu.org>

	* etc/hacking.org (Maintainers): Add Mohammadd-Reza Nabipoor as
	the maintainer for doc/learn-poke-language-in-y-minutes.pk.

2021-03-01  Mohammad-Reza Nabipoor  <m.nabipoor@yahoo.com>

	* doc/learn-poke-language-in-y-minutes.pk: New file.
	* doc/Makefile.am (EXTRA_DIST): Update.

2021-02-28  Jose E. Marchesi  <jemarch@gnu.org>

	* libpoke/pkl-typify.c (CASE_INTEGRAL): Emit a compilation error
	for INTEGRAL/OFFSET and INTEGRAL/^OFFSET.
	* testsuite/poke.pkl/div-integers-diag-2.pk: New test.
	* testsuite/poke.pkl/cdiv-integers-diag-2.pk: Likewise.
	* testsuite/poke.pkl/mod-integers-diag-2.pk: Likewise.
	* testsuite/Makefile.am (EXTRA_DIST): Add new tests.

2021-02-28  Jose E. Marchesi  <jemarch@gnu.org>

	* testsuite/poke.time/time32.pk: Do not use host endianness in the
	test.

2021-02-28  Jose E. Marchesi  <jemarch@gnu.org>

	* libpoke/Makefile.am (MOSTLYCLEANFILES): handle removal of files
	created by AX_CREATE_PKGCONFIG_INFO at make distclean.

2021-02-28  Mohammad-Reza Nabipoor  <m.nabipoor@yahoo.com>

	* poke/pk-cmd-map.c (SET_TO_CUR_IOS_ID): Add new macro to find the
	current IOS id.
	(pk_cmd_map_create): Use `SET_TO_CUR_IOS_ID` macro.
	(pk_cmd_map_remove): Likewise.
	(pk_cmd_map_show): Likewise.
	(pk_cmd_map_entry_add): Likewise.
	(pk_cmd_map_entry_remove): Likewise.
	(pk_cmd_map_load): Likewise.
	(pk_cmd_info_maps): Likewise.

2021-02-27  Sergei Trofimovich <slyfox@gentoo.org>

	* pickles/Makefile.am (dist_pickles_DATA): Package rest of *.pk files
	to tarball: mcr.pk dwarf-expr.pk dwarf-info.pk id3v2.pk.

2021-02-27  Egeyar Bagcioglu  <egeyar@gmail.com>

	* doc/poke.texi (close): Mention the exception, E_ios.
	* libpoke/ios-dev-file.c (ios_dev_file_close): Handle errors properly.
	Return IOD_ERROR on failure, IOD_OK otherwise.
	* libpoke/ios-dev-mem.c (ios_dev_mem_close): Return IOD_OK.
	* libpoke/ios-dev-nbd.c (ios_dev_nbd_close): Likewise.
	* libpoke/ios-dev-stream.c (ios_dev_stream_close): Likewise.
	* libpoke/ios-dev.h (close): Return IOD_ERROR on failure, IOD_OK on
	success.
	* libpoke/ios.c (ios_close): Return IOS_OK on success and the error code on
	failure. Do not assert that dev_if->close is successful.
	* libpoke/ios.h (ios_close): Likewise.
	* libpoke/pvm.jitter (close): Raise PVM_E_NO_IOS if the IO space to be
	closed does not exist. Raise PVM_E_IO if ios_close fails.
	* pk-cmd-ios.c (pk_cmd_close): Replace "file" with "IO space".
	* testsuite/Makefile.am: Add new testcase.
	* testsuite/poke.pkl/close-diag-1.pk: New testcase.

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

	* libpoke/pk-val.c (pk_val_offset): Return PK_NULL if the given
	value is not mapped.
	* testsuite/poke.libpoke/values.c (test_simple_values): Check that
	pk_val_offset returns PK_NULL for simple values.

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

	* poke/pk-map-tab.y (tagged_value_list): Fix error messages.
	(check_entry_duplicated_tags): Likewise.
	(pk_map_printf_error): Make static.

2021-02-27  Morten Linderud  <morten@linderud.pw>

	* poke/poke.pk: Fix setting of map_load_path when XDG_DATA_HOME is
	set.

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

	* m4/ax_create_pkgconfig_info.m4: Import file from autoconf
	archive.

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

	* etc/hacking.org (Backporting to maintenance branches): New
	section.
	* HACKING: Regenerate.
	* DEV-NEWS: Update.

2021-02-27  Sergei Trofimovich <slyfox@gentoo.org>

	* doc/poke.texi (Describe-Compute): fix example and wording.

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

	* libpoke/ios-dev-file.c (ios_dev_file_open): Avoid accessing to
	an uninitialized variable.

2021-02-27  Thomas Weißschuh <thomas@t-8ch.de>

	* configure.ac: Call AX_CREATE_PKGCONFIG_INFO.
	* libpoke/Makefile.am (dist_pkgconfig_lib_DATA): Distribute
	poke.pc.
	* .gitignore: Update.

2021-02-26  Egeyar Bagcioglu  <egeyar@gmail.com>

	* libpoke/ios-dev-file.c (ios_dev_file_handler_normalize): Take error
	as an argument rather than having it as return value.
	(ios_dev_file_open): Likewise.
	* libpoke/ios-dev-mem.c (ios_dev_mem_handler_normalize): Likewise.
	(ios_dev_mem_open): Likewise.
	* libpoke/ios-dev-nbd.c (ios_dev_nbd_handler_normalize): Likewise.
	(ios_dev_nbd_open): Likewise.
	* libpoke/ios-dev-stream.c (ios_dev_stream_handler_normalize):
	Likewise.
	(ios_dev_stream_open): Likewise.
	* libpoke/ios-dev.h (handler_normalize): Likewise.
	(open): Likewise.
	(IOS_FILE_HANDLER_NORMALIZE): Rename newhandler as new_handler.
	* ios.c (ios_open): Adjust calls to handler_normalize and open.

2021-02-26  Jose E. Marchesi  <jemarch@gnu.org>

	* etc/Makefile.am (EXTRA_DIST): Distribute etc/poke.rec.

2021-02-26  Jose E. Marchesi  <jemarch@gnu.org>

	* configure.ac: Update version number to 1.0.
	* NEWS: Update for 1.0.
	* doc/gendocs_template: Likewise.

2021-02-25  Indu Bhagat  <indu.bhagat@oracle.com>

	* pickles/ctf.pk (ctf_kind_str): Add string for slice.
	(CTF_Dictionary): New type.
	(CTF_Preamble): Add _print function.
	(CTF_Header): Likewise.
	(ctf_get_header): Rename to ctf_get_dict.

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

	* poke/pk-cmd-map.c (pk_cmd_map_save): Show a "not implemented
	message".
	* poke/pk-cmd.c (pk_cmd_exec_1): Invoke commands even if glob
	fails.
	* poke/pk-cmd-misc.c (pk_cmd_exit): Remove spurious code.

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

	* doc/poke.texi (Standard Units): Update to reflect std.pk.

2021-02-24  Egeyar Bagcioglu  <egeyar@gmail.com>

	* poke/pk-cmd-ios.c (pk_cmd_close): Replace "The current file is now
	`%s'.\n" with "The current IOS is now `%s'.\n" for correctness and
	consistency.

2021-02-24  Egeyar  Bagcioglu  <egeyar@gmail.com>

	* libpoke/ios-dev-stream.c (ios_dev_stream_pread): Change internal
	implementation.

2021-02-24  Jose E. Marchesi  <jemarch@gnu.org>

	* doc/gendocs_template: Use our own gendocs.sh template.

2021-02-24  Jose E. Marchesi  <jemarch@gnu.org>

	* doc/poke.texi (Structured Integers): New section.

2021-02-24  Indu Bhagat  <indu.bhagat@oracle.com>

	* utils/pk-elfextractor.in: use get_section_name instead of get_string.

2021-02-24  Jose E. Marchesi  <jemarch@gnu.org>

	* doc/poke.texi (Maps and Map-files): New chapter.
	(Editing using Variables): New section.
	(poke Maps): Likewise.
	(Loading Maps): Likewise.
	(Multiple Maps): Likewise.
	(Auto-map): Likewise.
	(Constructing Maps): Likewise.
	(Predefined Maps): Likewise.

2021-02-23  Indu Bhagat  <indu.bhagat@oracle.com>

	* doc/poke.texi: fix minor typos.

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

	* poke/poke.c (pk_print_version): Print version even with no hand.

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

	* configure.ac: Change version to 0.91.

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

	* poke/pk-term.c (lookup_color_code): Define only #if
	HAVE_TEXTSTYLE_ACCESSORS_SUPPORT.
	(register_color): Likewise.

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

	* libpoke/pkl-lex.l: Fix detection of overflow in signed integer
	literals.
	* testsuite/poke.pkl/cdiv-integers-overflow-2.pk: Update test.
	* testsuite/poke.pkl/neg-int-overflow-diag-2.pk: Likewise.
	* testsuite/poke.pkl/sub-integers-overflow-diag-2.pk: Likewise.
	* testsuite/poke.pkl/sub-integers-overflow-2.pk: Likewise.
	* testsuite/poke.pkl/neg-int-overflow-2.pk: Likewise.
	* testsuite/poke.pkl/mod-integers-overflow-2.pk: Likewise.
	* testsuite/poke.pkl/div-integers-overflow-diag-1.pk: Likewise.
	* testsuite/poke.pkl/div-integers-overflow-2.pk: Likewise.
	* testsuite/poke.libpoke/pk_equal_uint.test: Likewise.

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

	* testsuite/lib/poke.exp (poke-tmpdir): New procedure.
	* testsuite/poke.repl/repl.exp: Do not rely on Tcl 8.6.

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

	* testsuite/lib/poke-dg.exp (dg-data): Avoid using the unportable
	printf %q.

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

	* AUTHORS: Add Indu.
	* etc/hacking.org: Add Indu to the write-after-approval list.
	* HACKING: Regenerate.

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

	* libpoke/pvm.jitter (PVM_POWOP_SIGNED): Define.
	(powi): Use PVM_POWOP_SIGNED.
	(powl): Likewise.
	* testsuite/poke.pkl/pow-integers-overflow-1.pk: New test.
	* testsuite/poke.pkl/pow-integers-overflow-2.pk: Likewise.
	* testsuite/poke.pkl/pow-integers-3.pk: Update test.
	* testsuite/poke.pkl/pow-offsets-3.pk: Likewise.
	* testsuite/Makefile.am (EXTRA_DIST): Add new tests.

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

	* libpoke/pkl-fold.c (OP_UNARY_II): Detect overflow constant
	folding negation.
	* libpoke/pvm.jitter (PVM_NEG_SIGNED): Define.
	(negi): Use PVM_NEG_SIGNED.
	(negl): Likewise.
	* testsuite/poke.pkl/neg-int-overflow-diag-1.pk: New test.
	* testsuite/poke.pkl/neg-int-overflow-diag-2.pk: Likewise.
	* testsuite/poke.pkl/neg-int-overflow-1.pk: Likewise.
	* testsuite/poke.pkl/neg-int-overflow-2.pk: Likewise.
	* testsuite/poke.pkl/sub-integers-overflow-3.pk: Update test.
	* testsuite/Makefile.am (EXTRA_DIST): Add new tests.

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

	* libpoke/pkl-fold.c (OP_BINARY_III): Detect overflow constant
	folding signed remainder.
	* libpoke/pvm.jitter (PVM_MOD_SIGNED): Define.
	(modi): Use PVM_MOD_SIGNED.
	(modl): Likewise.
	* testsuite/poke.pkl/mod-integers-overflow-diag-1.pk: New test.
	* testsuite/poke.pkl/mod-integers-overflow-diag-2.pk: Likewise.
	* testsuite/poke.pkl/mod-integers-overflow-1.pk: Likewise.
	* testsuite/poke.pkl/mod-integers-overflow-2.pk: Likewise.
	* testsuite/Makefile.am (EXTRA_DIST): Add new tests.

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

	* libpoke/pvm.jitter (PVM_MUL_SIGNED): Simplify a bit.
	(PVM_DIV_SIGNED): Likewise.

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

	* libpoke/pkl-fold.c (OP_BINARY_III): Error while constant folding
	signed division and ceil-division if the operation would result in
	overflow.
	* libpoke/pvm.jitter (PVM_DIV_SIGNED): Define.
	(divi): Use PVM_DIV_SIGNED.
	(divl): Likewise.
	* testsuite/poke.pkl/div-integers-overflow-diag-1.pk: New test.
	* testsuite/poke.pkl/div-integers-overflow-diag-2.pk: Likewise.
	* testsuite/poke.pkl/cdiv-integers-overflow-diag-1.pk: Likewise.
	* testsuite/poke.pkl/cdiv-integers-overflow-diag-2.pk: Likewise.
	* testsuite/poke.pkl/div-integers-overflow-1.pk: Likewise.
	* testsuite/poke.pkl/div-integers-overflow-2.pk: Likewise.
	* testsuite/poke.pkl/div-integers-overflow-3.pk: Likewise.
	* testsuite/poke.pkl/cdiv-integers-overflow-1.pk: Likewise.
	* testsuite/poke.pkl/cdiv-integers-overflow-2.pk: Likewise.
	* testsuite/poke.pkl/cdiv-integers-overflow-3.pk: Likewise.
	* testsuite/Makefile.am (EXTRA_DIST): Add new tests.

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

	* libpoke/pkl-fold.c (OP_BINARY_III): Error while constant folding
	signed multiplication if the operation would result in overflow.
	* libpoke/pvm.jitter (PVM_SUB_SIGNED): Define.
	(muli): Use PVM_SUB_SIGNED.
	(mull): Likewise.
	* libpoke/std.pk (atoi): Avoid overflow.
	* testsuite/poke.std/std-test.pk: Update test.
	* testsuite/poke.pkl/mul-integers-overflow-diag-1.pk: New test.
	* testsuite/poke.pkl/mul-integers-overflow-diag-2.pk: Likewise.
	* testsuite/poke.pkl/mul-integers-overflow-diag-3.pk: Likewise.
	* testsuite/poke.pkl/mul-integers-overflow-1.pk: Likewise.
	* testsuite/poke.pkl/mul-integers-overflow-2.pk: Likewise.
	* testsuite/poke.pkl/mul-integers-overflow-3.pk: Likewise.
	* testsuite/Makefile.am (EXTRA_DIST): Add new tests.

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

	* libpoke/pkl-fold.c (OP_BINARY_III): Error while constant folding
	signed subtraction if the operation would result in overflow.
	* libpoke/pkl-lex.l: Fix promotion of constants to 64-bit.
	* libpoke/pvm.jitter (PVM_SUB_SIGNED): Define.
	(subi): Use PVM_SUB_SIGNED.
	(subl): Likewise.
	* testsuite/poke.pkl/sub-integers-overflow-diag-1.pk: New test.
	* testsuite/poke.pkl/sub-integers-overflow-diag-2.pk: Likewise.
	* testsuite/poke.pkl/sub-integers-overflow-diag-3.pk: Likewise.
	* testsuite/poke.pkl/sub-integers-overflow-1.pk: Likewise.
	* testsuite/poke.pkl/sub-integers-overflow-2.pk: Likewise.
	* testsuite/poke.pkl/sub-integers-overflow-3.pk: Likewise.
	* testsuite/Makefile.am (EXTRA_DIST): Add new tests.

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

	* libpoke/pkl-fold.c (OP_BINARY_III): Error on overflow on certain
	signed arithmetic operations.
	* libpoke/pvm.jitter (PVM_ADD_SIGNED): Define.
	(addi): Use PVM_ADD_SIGNED.
	(addl): Likewise.
	* testsuite/poke.pkl/add-integers-overflow-1.pk: New test.
	* testsuite/poke.pkl/add-integers-overflow-2.pk: Likewise.
	* testsuite/poke.pkl/add-integers-overflow-3.pk: Likewise.
	* testsuite/poke.pkl/add-integers-overflow-4.pk: Likewise.
	* testsuite/poke.pkl/add-integers-overflow-5.pk: Likewise.
	* testsuite/poke.pkl/add-integers-overflow-diag-1.pk: Likewise.
	* testsuite/poke.pkl/add-integers-overflow-diag-2.pk: Likewise.
	* testsuite/poke.pkl/add-integers-overflow-diag-3.pk: Likewise.
	* testsuite/Makefile.am (EXTRA_DIST): Add new tests.

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

	* libpoke/pkl-promo.c (promote_node): Make sure to set `restart'
	in any case.

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

	* poke/pk-map.c (entry_name_to_varname): Use PRIu64 instead of %lu
	in printf format string.

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

	* configure.ac: Fix --disable-feature In optional features that
	use PKG_CHECK_MODULES.

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

	* configure.ac: Invoke gl_HOST_CPU_C_ABI_32BIT and ac_define the
	corresponding cpp macro.
	* libpoke/pkl-asm.c (pkl_asm_insn): Use POKE_HOST_32BIT instead of
	the undocumented and unportable __WORDSIZE.
	(pkl_asm_note): Likewise.
	* libpoke/pvm-program.c (pvm_program_append_push_instruction):
	Likewise.

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

	* bootstrap.conf (libpoke_modules): Add intprops.
	(gui_modules): Add alloca.
	(gnulib_modules): Add host-cpu-c-abi.

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

	* libpoke/pkl-rt.pk (EC_overflow): Define.
	(E_overflow): Likewise.
	* libpoke/pvm.h (PVM_E_OVERFLOW): Define.
	(PVM_E_OVERFLOW_MSG): Likewise.
	(PVM_E_OVERFLOW_ESTATUS): Likewise.
	* doc/poke.texi (Exceptions): Document E_overflow.

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

	* bootstrap.conf (libpoke_modules): Add the free-posix module.

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

	* poke/poke.pk: Do not assume HOME is defined in the environment.

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

	* poke/pk-cmd-misc.c (quit_cmd): Define.
	* poke/pk-cmd.c (dot_cmds): Add quit_cmd.
	* doc/poke.texi (quit command): New section.

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

	* etc/hacking.org: Add David Faust to the write after approval
	list.

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

	* bootstrap.conf (buildreq): Fix indentation.

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

	* libpoke/std.pk (crc32): Avoid too long lines.

2021-02-21  Jose E. Marchesi  <jemarch@gnu.org>

	* doc/poke.texi (Invoking poke): Leave empty lines between
	argument descriptions, and add missing arguments.

2021-02-21  Jose E. Marchesi  <jemarch@gnu.org>

	* poke/poke.c (pk_print_version): Print the poke hand
	conditionally.
	(parse_args_2): Do not print the poke hand in the --version
	output.
	* poke/pk-repl.c (banner): DO print the poke hand as part of the
	poke banner :)
	* poke/pk-cmd-misc.c (pk_cmd_version): Likewise.

2021-02-21  Indu Bhagat  <indu.bhagat@oracle.com>
	    Jose E. Marchesi  <jemarch@gnu.org>

	* poke/pk-save.pk (save): Fix invocation to copy.
	* testsuite/poke.cmd/save-2.pk: New test.
	* testsuite/Makefile.am (EXTRA_DIST): Update.

2021-02-21  Jose E. Marchesi  <jemarch@gnu.org>

	* Makefile.am (update-hacking): New maintenance rule to regenerate
	HACKING from etc/hacking.org.
	* HACKING: Update.
	* DEV-NEWS: Update.

2021-02-20  Jose E. Marchesi  <jemarch@gnu.org>

	* libpoke/Makefile.am (.pks.pkc): Fix typo in command.

2021-02-20  Jose E. Marchesi  <jemarch@gnu.org>

	* libpoke/pkl-rt.pk: Fix typo in comment
	.

2021-02-20  Jose E. Marchesi  <jemarch@gnu.org>

	* poke/poke.c (print_help): Use a puts statement for each header
	and option, and do not finish them with periods.
	* poke/pk-cmd-ios.c (pk_cmd_load_file): Use pk_fatal and an
	uniform message when out of memory.
	(pk_cmd_mem): Likewise.
	* poke/pk-map.c (entry_name_to_varname): Likewise.
	* poke/poke.h (pk_assert_alloc): Likewise.
	* libpoke/pkl-trans.c (pkl_trans1_ps_print_stmt): Start error
	messages with a lower case.

2021-02-20  Jose E. Marchesi  <jemarch@gnu.org>

	* man/Makefile.am (poke.1): Avoid TAB-8-space indentation in
	Makefile.
	* libpoke/Makefile.am: Spell time-stamp.
	* poke/Makefile.am: Likewise.

2021-02-20  Jose E. Marchesi  <jemarch@gnu.org>

	* configure.ac: Set POKE_AWK and do not error out at configure
	time if no suitable awk is found.
	* libpoke/Makefile.am (.pks.pkc): Check that AWK is powerful
	enough for RAS.  Error out otherwise.

2021-02-20  Mohammad-Reza Nabipoor  <m.nabipoor@yahoo.com>

	* testsuite/poke.mi-json/mi-json.c (test_json_pk_sct): Remove unused
	variable(s).
	(test_val_to_json): Likewise.
	(read_json_object): Change the type of `cap` to `ssize_t` to make the
	compiler happy (-Wsign-compare).

2021-02-20  Mohammad-Reza Nabipoor  <m.nabipoor@yahoo.com>

	* libpoke/pvm.jitter (PVM_PRINTI): Fix bit-depth of printed negative
	values in base 8 and 16.
	(PVM_PRINTL): Likewise.
	* testsuite/poke.pkl/printf-28.pk: New test.
	* testsuite/poke.pkl/printf-29.pk: Likewise.
	* testsuite/poke.pkl/printf-30.pk: Likewise.
	* testsuite/poke.pkl/printf-31.pk: Likewise.
	* testsuite/poke.pkl/printf-32.pk: Likewise.
	* testsuite/poke.pkl/printf-33.pk: Likewise.
	* testsuite/poke.pkl/printf-34.pk: Likewise.
	* testsuite/poke.pkl/printf-35.pk: Likewise.
	* testsuite/Makefile.am (EXTRA_DIST): Update.

2021-02-19  Jose E. Marchesi  <jemarch@gnu.org>

	* pickles/dwarf-frame.pk (Dwarf_CIE): Fix constant.

2021-02-19  Mohammad-Reza Nabipoor  <m.nabipoor@yahoo.com>

	* testsuite/poke.mi-json/mi-json.c (test_json_to_val_to_json):
	Simplify the JSON file selection loop.

2021-02-16  Indu Bhagat  <indu.bhagat@oracle.com>

        * pickles/ctf.pk (CTF_Header): Use offset field type for cth_lbloff.
        (CTF_Integer_Type): Use integral struct.
        (CTF_Float_Type): Likewise.
        (CTF_Slice): New definition.
        (CTF_Type): CTF_KIND_ENUM is followed by a vlen number of enum records.
        CTF_KIND_FUNCTION has a trailing padding of 4 bytes if the number of
        function arguments is odd. Support CTF Slice.
        (ctf_string): Use correct offset to the CTF string section.

2021-02-16  David Faust  <david.faust@oracle.com>

	* pickles/btf.pk (BTF_Int): Make `offset` and `bits` into offset types.
	(BTF_Section): Properly use header type_off and str_off.
	(btf_types): Remove now-redundant function.
	(btf_strings): Likewise.
	* pickles/btf-dump.pk (btf_dump_int): Account for above type changes.

2021-02-15  Jose E. Marchesi  <jemarch@gnu.org>

	* pickles/ustar.pk: New file.
	* pickles/Makefile.am (dist_pickles_DATA): Add ustar.pk.

2021-02-15  Jose E. Marchesi  <jemarch@gnu.org>

	* configure.ac: Update version to 0.90.
	* NEWS: Adapt to 0.90.

2021-02-15  Jose E. Marchesi  <jemarch@gnu.org>

	* poke/poke.pk (auto_map): Initialize to an empty array.

2021-02-15  Jose E. Marchesi  <jemarch@gnu.org>

	* testsuite/poke.pkl/ass-struct-int-5.pk: New test.
	* testsuite/poke.pkl/ass-struct-int-6.pk: Likewise.
	* testsuite/Makefile.am (EXTRA_DIST): Add new tests.

2021-02-14  Jose E. Marchesi  <jose.marchesi@oracle.com>

	* poke/poke.c (pk_print_version): Update copyright.

2021-02-14  Jose E. Marchesi  <jemarch@gnu.org>

	* pickles/btf.pk: Fix typo for UNKNOWN.

2021-02-14  Jose E. Marchesi  <jemarch@gnu.org>

	* poke/poke.c (parse_args_2): -s doesn't imply that poke runs
	non-interactively.
	(main): Load user configuration file before handling -s arguments.
	(parse_args_1): Handle NO_INIT_FILE_ARG here instead of
	parse_args_2.
	(parse_args_1): Likewise for QUIET_ARG.

2021-02-12  David Faust  <david.faust@oracle.com>

	* pickles/btf-dump.pk: New pickle.
	* pickles/Makefile.am (dist_pickles_DATA): Add `btf-dump.pk`.

2021-02-12  David Faust  <david.faust@oracle.com>

	* pickles/btf.pk (BTF_Type) Make several fields `offset`s where
	appropriate. Correct bitfield to use integral struct. Correct variable
	data for BTF_KIND_STRUCT.
	(BTF_Section) New type.

2021-02-08  David Faust  <david.faust@oracle.com>

	* libbpoke/pkl-anal.c: Forbid anonymous members in unions.
	* pickles/btf.pk (type BTF_Type): Give name to anonymous union member.
	* pickles/ctf.pk (type CTF_Type): Likewise.
	* pickles/dwarf-expr.pk (type Dwarf_Op): Likewise.
	* pickles/dwarf-frame.pk (type Dwarf_CFI): Likewise.
	* testsuite/poke.pkl/union-diag-8.pk: New test.
	* testsuite/Makefile.am (EXTRA_DIST): Update.

2021-02-06  Jose E. Marchesi  <jemarch@gnu.org>

	* poke/pk-cmd-ios.c (pk_cmd_source_file): New function.
	(source_cmd): Define.
	* poke/pk-cmd.c (source_cmd): Define.
	(dot_cmds): Add source_cmd.
	* doc/poke.texi (source command): New section.

2021-02-06  Jose E. Marchesi  <jemarch@gnu.org>

	* poke/poke.c (print_help): --script to --source.
	Rename SCRIPT_ARG to SOURCE_ARG.
	(long_options): Likewise.
	(parse_args_2): Update accordingly.
	* doc/poke.texi (Invoking poke): Update accordingly.

2021-01-28  Mohammad-Reza Nabipoor  <m.nabipoor@yahoo.com>

	* pickles/mbr.pk: New pickle.
	* pickles/Makefile.am (dist_pickles_DATA): Add `mbr.pk`.
	* testsuite/poke.pickles/mbr-test.pk: New test.
	* testsuite/Makefile.am (EXTRA_DIST): Update.

2021-01-28  Mohammad-Reza Nabipoor  <m.nabipoor@yahoo.com>

	* libpoke/pkl-gen.pks (struct_writer): Fix bit-offset of mapped
	integral struct.
	* testsuite/poke.map/maps-int-structs-21.pk: New test.
	* testsuite/poke.map/maps-int-structs-22.pk: Likewise.
	* testsuite/poke.map/maps-int-structs-23.pk: Likewise.
	* testsuite/poke.map/maps-int-structs-24.pk: Likewise.
	* testsuite/poke.map/maps-int-structs-25.pk: Likewise.
	* testsuite/poke.map/maps-int-structs-26.pk: Likewise.
	* testsuite/poke.map/maps-int-structs-27.pk: Likewise.
	* testsuite/poke.map/maps-int-structs-28.pk: Likewise.
	* testsuite/Makefile.am (EXTRA_DIST): Update.

2021-01-26  Jose E. Marchesi  <jemarch@gnu.org>

	* libpoke/pkl-env.c (get_registered): The empty string is never
	recognized as the name of a registered declaration.
	* libpoke/pkl-tab.y (struct_type_field): Register anonymous struct
	fields in the lexical environment.
	* testsuite/poke.map/maps-structs-anonfield-1.pk: New test.
	* testsuite/poke.map/maps-structs-anonfield-2.pk: Likewise.
	* testsuite/poke.map/maps-structs-anonfield-3.pk: Likewise.
	* testsuite/poke.pkl/scons-anon-field-1.pk: Likewise.
	* testsuite/poke.pkl/scons-anon-field-2.pk: Likewise.
	* testsuite/poke.pkl/scons-anon-field-3.pk: Likewise.
	* testsuite/Makefile.am (EXTRA_DIST): Update.

2021-01-25  Mohammad-Reza Nabipoor  <m.nabipoor@yahoo.com>

	* libpoke/pkl-rt.pk (exception_code): New function.
	* doc/poke.texi (Exceptions): Add documentation for `exception_code`.

2021-01-25  Mohammad-Reza Nabipoor  <m.nabipoor@yahoo.com>

	* testsuite/Makefile.am (check-DEJAGNU): Fix `make distcheck`
	failure by removing the INPUTRC file after running the tests.

2021-01-24  Mohammad-Reza Nabipoor  <m.nabipoor@yahoo.com>

	* testsuite/Makefile.am (check-DEJAGNU): Set INPUTRC. Use custom
	INPUTRC config file to explicitly disable bracketed paste mode in
	readline library.

2021-01-03  Jose E. Marchesi  <jemarch@gnu.org>

	* etc/poke.rec (Support nested integral structs): Do not schedule
	for 1.0.

2021-01-02  Jose E. Marchesi  <jemarch@gnu.org>

	* doc/poke.texi (Motivation): New section.
	(Dealing with Alternatives): Likewise.
	(Offsets and Sizes): Likewise.

2021-01-01  Jose E. Marchesi  <jemarch@gnu.org>

	* doc/poke.texi (Debugging Poke Programs): Demote and relocate.
	(Writing Pickles): Relocate.

2020-12-31  Jose E. Marchesi  <jemarch@gnu.org>

	* libpoke/libpoke.h (struct pk_color): New type.
	(struct pk_term_if): Remove rgb_to_color_fn and modify get_(bg)color_fn
	and set_(bg)color_fn to handle terminal colors.
	* testsuite/poke.libpoke/term-if.h: Adapt to new API.
	* poke/pk-term.c (lookup_color): New function.
	* libpoke/pvm.jitter (pushoc): Adapt to new API.
	(popoc): Likewise.
	* libpoke/pkl-gen.c (pkl_gen_ps_comp_stmt): Likewise.
	* libpoke/pkl-insn.def: Remove the instruction rgbtoc.
	* doc/poke.texi (Terminal Colors): Update to new semantics.

2020-12-31  Jose E. Marchesi  <jemarch@gnu.org>

	* poke/pk-term.c (dispose_active_classes): Remove unneeded
	function.
	(pk_term_shutdown): Use pop_active_class instead of
	dispose_active_classes.

2020-12-30  Jose E. Marchesi  <jemarch@gnu.org>

	* poke/pk-term.c (pop_active_class): Return a status code.
	(pk_term_end_class): Adapt to new interface.

2020-12-30  Jose E. Marchesi  <jemarch@gnu.org>

	* libpoke/libpoke.h (struct pk_term_if): Change end_class_fn
	prototype to return an error code.
	* poke/pk-term.c (pk_term_end_class): Likewise.
	(dispose_active_classes): New function.
	(push_active_class): Likewise.
	(pop_active_class): Likewise.
	(pk_term_class): Push the class.
	(pk_term_end_class): Check for the class, then pop it.
	* testsuite/poke.libpoke/term-if.h (pk_term_end_class): Likewise.
	* libpoke/pvm.jitter (endsc): Raise an exception if the given
	class is invalid.
	* testsuite/poke.pkl/term-class-1.pk: New test.
	* testsuite/poke.pkl/term-class-2.pk: Likewise.
	* testsuite/poke.pkl/term-class-3.pk: Likewise.
	* testsuite/poke.pkl/term-hl-1.pk: Likewise.
	* testsuite/poke.pkl/term-hl-2.pk: Likewise.
	* testsuite/Makefile.am (EXTRA_DIST): Update.

2020-12-29  Jose E. Marchesi  <jemarch@gnu.org>

	* libpoke/pvm-val.c (pvm_val_initialize): New function.
	(string_value): New variable.
	(void_type): Likewise.
	(any_type): Likewise.
	(pvm_make_string_type): Reuse unitary value.
	(pvm_make_void_type): Likewise.
	(pvm_make_any_type): Likewise.
	(pvm_val_finalize): Likewise.

2020-12-29  Jose E. Marchesi  <jemarch@gnu.org>

	* doc/poke.texi (@:.vm profile): New section.

2020-12-29  Jose E. Marchesi  <jemarch@gnu.org>

	* etc/hacking.org (Building with profiling support): New section.
	* HACKING: Regenerate.
	* DEV-NEWS: Update.

2020-12-29  Jose E. Marchesi  <jemarch@gnu.org>

	* libpoke/pvm.h: Prototype for pvm_ref_struct_cstr.
	* libpoke/pvm-val.c (pvm_ref_struct_cstr): New function.
	(pvm_ref_struct): Rewrite to use pvm_ref_struct_cstr.
	* libpoke/pvm.jitter (PVM_RAISE_DIRECT): Use pvm_ref_struct_cstr.
	(pushe): Likewise.

2020-12-29  Jose E. Marchesi  <jemarch@gnu.org>

	* libpoke/pvm.jitter: Store exception structs in the exceptions
	stack and not pointers.

2020-12-29  Jose E. Marchesi  <jemarch@gnu.org>

	* libpoke/pvm-val.h (PVM_MAKE_LONG): Define.
	(PVM_MAKE_ULONG): Likewise.
	(PVM_MAKE_LONG_ULONG): Likewise.
	* libpoke/pvm-val.c (pvm_make_long_ulong): Remove function.
	* libpoke/pvm.jitter: Use macros instead of functions to create
	values.

2020-12-28  Jose E. Marchesi  <jemarch@gnu.org>

	* configure.ac: Handle --enable-pvm-profiling.
	* libpoke/pvm.c (pvm_print_profile): New function.
	(pvm_reset_profile): Likewise.
	* libpoke/libpoke.c (pk_print_profile): Likewise.
	(pk_reset_profile): Likewise.
	* poke/pk-cmd-vm.c (vm_profile_cmds): Define.
	(vm_profile_cmd): Likewise.
	(vm_cmds): Add vm_profile_cmd.
	(vm_profile_show_cmd): Define.
	(vm_profile_reset_cmd): Likewise.
	(pk_cmd_vm_profile_show): New function.
	(pk_cmd_vm_profile_reset): Likewise.
	* poke/pk-cmd.c (pk_cmd_init): Initialize vm_disas_trie.
	(pk_cmd_shutdown): Dispose of vm_profile_trie.

2020-12-25  Jose E. Marchesi  <jemarch@gnu.org>

	* doc/poke.texi (Struct Attributes): New section.

2020-12-23  Jose E. Marchesi  <jemarch@gnu.org>

	* libpoke/pkl-gen.pks (offset_printer): Fix printing unnammed
	units.
	* testsuite/poke.pkl/printf-27.pk: New test.
	* testsuite/Makefile.am (EXTRA_DIST): Update.

2020-12-23  Jose E. Marchesi  <jemarch@gnu.org>

	* libpoke/pkl-anal.c (pkl_anal1_ps_decl): Clarify error message.
	* testsuite/poke.pkl/struct-method-diag-6.pk: Adapt.

2020-12-23  Jose E. Marchesi  <jemarch@gnu.org>

	* libpoke/pkl-promo.c (promote_node): New function.
	(pkl_promo_ps_op_div): Use promote_node.
	(pkl_promo_ps_op_binary_intoffstrarr): Likewise.
	(pkl_promo_ps_op_bconc): Likewise.
	(pkl_promo_ps_op_mul): Likewise.
	(pkl_promo_ps_return_stmt): Likewise.
	(pkl_promo_ps_func_arg): Likewise.
	(pkl_promo_ps_print_stmt): Likewise.
	(pkl_promo_ps_funcall): Likewise.
	(pkl_promo_ps_op_binary): Likewise.
	(pkl_promo_ps_ass_stmt): Likewise.
	(pkl_promo_ps_struct_type_field): Likewise.
	(pkl_promo_ps_op_in): Likewise.

2020-12-22  Jose E. Marchesi  <jemarch@gnu.org>

	* poke/poke.c (initialize): Define poke_interactive_p in the compiler.
	* libpoke/pkl.c (pvm_type_to_ast_type): Fix integral types.
	* etc/poke.rec (Make poke_interactive_p available to Poke
	programs): Remove as done.

2020-12-22  Jose E. Marchesi  <jemarch@gnu.org>

	* etc/hacking.org (Building after a git pull): New section.
	* HACKING: Regenerate.
	* DEV-NEWS: Add note.

2020-12-21  Jose E. Marchesi  <jemarch@gnu.org>

	* libpoke/pvm-val.h (PVM_MAKE_INT): Define.
	(PVM_MAKE_UINT): Likewise.
	* libpoke/pvm-val.c (pvm_make_int): Use macro.
	(pvm_make_uint): Likewise.
	* libpoke/pvm.jitter: Use the macros instead of the functions.

2020-12-21  Jose E. Marchesi  <jemarch@gnu.org>

	* poke/pk-hserver.pk: Reduce the size of the hserver tokens table,
	since they now expire.

2020-12-21  Jose E. Marchesi  <jemarch@gnu.org>

	* poke/poke.c: Define NO_HSERVER_ARG.
	(initialize): Honor poke_no_hserver_arg to initialize
	poke_hserver_p.
	(print_help): Help for --no-hserver.
	* poke/pk-cmd-ios.c (print_info_ios): Do not emit hyperlinks if
	the hserver is not enabled.
	* testsuite/lib/poke-dg.exp (poke-dg-test): Do not run the hserver
	when testing.
	* testsuite/lib/poke-pk.exp (tap_execute): Likewise.
	* testsuite/lib/poke.exp (poke_start): Likewise.
	* etc/poke.rec (Add command-line option to disable the hserver):
	Remove as done.

2020-12-21  Jose E. Marchesi  <jemarch@gnu.org>

	* poke/pk-hserver.pk (hserver_cur_token): Define.
	(hserver_get_token): Use a simpler schema to allocate tokens, and
	expire them if needed.

2020-12-21  Jose E. Marchesi  <jemarch@gnu.org>

	* poke/pk-hserver.pk (hserver_token_kind): New function.
	(hserver_make_hyperlink): Initialize the token's kind.
	(hserver_make_hyperlink): Do not include the command kind in the
	hyperlink url.
	* poke/pk-hserver.c (pk_hserver_token_kind): New function.
	(read_from_client): Do not get the kind of the token from the URL.

2020-12-21  Jose E. Marchesi  <jemarch@gnu.org>

	* poke/pk-hserver.pk (hserver_get_token): Improve the token
	allocation algorithm.
	(hserver_make_hyperlink): Do not include the command in the
	hyperlink URL.
	(hserver_token_cmd): New function.
	(hserver_token_p): Likewise.
	* poke/pk-hserver.c (pk_hserver_cmd): New function.

2020-12-21  Jose E. Marchesi  <jemarch@gnu.org>

	* libpoke/pkl-gen.pks (struct_constructor): Acknowledge struct
	labels.
	* testsuite/poke.pkl/scons-label-1.pk: New test.
	* testsuite/Makefile.am (EXTRA_DIST): Update.

2020-12-21  Jose E. Marchesi  <jemarch@gnu.org>

	* libpoke/pkl-gen.c (pkl_gen_pr_func): Emit a `note' instruction
	with the function name only if the function actually has a name.

2020-12-20  Jose E. Marchesi  <jemarch@gnu.org>

	* libpoke/pkl-typify.c (pkl_typify1_ps_print_stmt): use
	pkl_ast_type_promoteable_p.
	* libpoke/pkl-ast.c (pkl_ast_type_promoteable_p): VOID can't be
	promoted to anything.
	* testsuite/poke.pkl/printf-diag-18.pk: New test.
	* testsuite/Makefile.am (EXTRA_DIST): Update.

2020-12-20  Luca Saiu  <positron@gnu.org>

	* libpoke/pvm.jitter (r): Change the number of fast
	registers, enable slow registers.

2020-12-20  Luca Saiu  <positron@gnu.org>

	* libpoke/pvm.jitter (vm): Remove stack specifications...
	(s, t, x): ...And add them back to their new sections.
	(r): Adapt to new syntax.
	These changes adapt poke to Jitter's new syntax.

2020-12-20  Jose E. Marchesi  <jemarch@gnu.org>

	* poke/pk-hserver.pk (hserver_print_hl): New function.

2020-12-20  Jose E. Marchesi  <jemarch@gnu.org>

	* poke/pk-hserver.pk: New file.
	* poke/Makefile.am (dist_pkgdata_DATA): Add pk-hserver.pk.
	* poke/pk-hserver.c (pk_hserver_init): Load pk-hserver.pk.
	(pk_hserver_port): Get the value of the port from the poke value.
	Turn pk_hserver_port and pk_hserver_tokens into pk values.
	(pk_hserver_get_token): Rewrite to use the hserver_get_token.
	(pk_hserver_token): New function.
	(pk_hserver_make_hyperlink): Rewrite to call the Poke code.
	(pk_hserver_start): Rename from pk_hserver_init.

2020-12-19  Jose E. Marchesi  <jemarch@gnu.org>

	* libpoke/libpoke.h: Prototype for pk_decl_set_val.
	* libpoke/libpoke.c (pk_decl_set_val): New function.

2020-12-20  Jose E. Marchesi  <jemarch@gnu.org>

	* libpoke/pkl-tab.y (struct_type_specifier): Fix the unit of
	OFFSET.

2020-12-20  Jose E. Marchesi  <jemarch@gnu.org>

	* libpoke/std.pk (ltos): New function.
	* doc/poke.texi (ltos): New section.
	* testsuite/poke.std/std-test.pk: Test for ltos.

2020-12-19  Jose E. Marchesi  <jemarch@gnu.org>

	* libpoke/std.pk (reverse): New function.
	* testsuite/poke.std/std-test.pk: Tests for `reverse'.
	* doc/poke.texi (Array Functions): New section.
	(reverse): New subsection.
	* testsuite/lib/poke-pk.exp (tap_execute): Do not style output
	when running pktests.

2020-12-18  Jose E. Marchesi  <jemarch@gnu.org>

	* libpoke/pkl-gen.c (pkl_gen_pr_indexer): Make sure to traverse
	entity and index in normal context, as assignments can be nested
	via post/pre incr/decr expressions.
	* testsuite/poke.pkl/ass-10.pk: New test.
	* testsuite/poke.pkl/ass-11.pk: Likewise.
	* testsuite/Makefile.am (EXTRA_DIST): Update.

2020-12-18  Mohammad-Reza Nabipoor  <m.nabipoor@yahoo.com>

	* poke/poke.c (parse_args_2): Go to `exit_failure` when
	`pk_compile_file` fails.

2020-12-17  Jose E. Marchesi  <jemarch@gnu.org>

	* testsuite/poke.pickles/color-test.pk: Fix typo.

2020-12-17  Mohammad-Reza Nabipoor  <m.nabipoor@yahoo.com>

	* testsuite/lib/poke-pk.exp: New file.
	* testsuite/poke.pickles/pickles.exp: Likewise.
	* testsuite/poke.pickles/argp-test.pk: New unit test.
	* testsuite/poke.pickles/color-test.pk: Likewise.
	* testsuite/poke.pickles/id3v1-test.pk: Likewise.
	* testsuite/poke.pickles/rgb24-test.pk: Likewise.
	* testsuite/poke.std/std-test.pk: Likewise.
	* testsuite/poke.std/std.exp: Re-write to use `poke-pk.exp`.
	* testsuite/poke.argp/: Remove test directory.
	* testsuite/poke.color/: Likewise.
	* testsuite/poke.id3v1/: Likewise.
	* testsuite/poke.rgb24/: Likewise.
	* testsuite/Makefile.am (EXTRA_DIST): Add new tests, remove old ones.

2020-12-17  Mohammad-Reza Nabipoor  <m.nabipoor@yahoo.com>

	* pickles/pktest.pk: New file.
	* pickles/Makefile.am (dist_pickles_DATA): Add `pktest.pk`.
	* testsuite/poke.pktest/pktest.exp: New file.
	* testsuite/poke.pktest/pktest-1.pk: Likewise.
	* testsuite/poke.pktest/pktest-2.pk: Likewise.
	* testsuite/poke.pktest/pktest-3.pk: Likewise.
	* testsuite/poke.pktest/pktest-4.pk: Likewise.
	* testsuite/poke.pktest/pktest-5.pk: Likewise.
	* testsuite/poke.pktest/pktest-6.pk: Likewise.
	* testsuite/poke.pktest/pktest-7.pk: Likewise.
	* testsuite/poke.pktest/pktest-8.pk: Likewise.
	* testsuite/poke.pktest/pktest-9.pk: Likewise.
	* testsuite/poke.pktest/pktest-10.pk: Likewise.
	* testsuite/poke.pktest/pktest-11.pk: Likewise.
	* testsuite/poke.pktest/pktest-12.pk: Likewise.
	* testsuite/Makefile.am (EXTRA_DIST): Add new tests.
	* etc/hacking.org (Testing Pickles): Update.
	* HACKING: Regenerate.

2020-12-17  Jose E. Marchesi  <jemarch@gnu.org>

	* libpoke/libpoke.h (struct pk_term_if): Change the prototype of
	end_hyperlink_fn so it can communicate errors to the user.
	* poke/pk-term.c (pk_term_end_hyperlink): Keep count of the
	hyperlinks and return the proper status.
	* libpoke/pvm.jitter (beghl): Adapt accordingly.
	(endhl): Likewise.
	* testsuite/poke.libpoke/term-if.h (pk_term_end_hyperlink): Adapt
	to new interface.

2020-12-17  Jose E. Marchesi  <jemarch@gnu.org>

	* libpoke/pvm.jitter: Improve spelling in exception description.

2020-12-17  Jose E. Marchesi  <jemarch@gnu.org>

	* libpoke/pkl-ast.h (PKL_AST_BUILTIN_TERM_BEGIN_HYPERLINK):
	Define.
	(PKL_AST_BUILTIN_TERM_END_HYPERLINK): Likewise.
	* libpoke/pkl-tab.y: Handle term_begin_hyperlink and
	term_end_hyperlink builtins.
	* libpoke/pkl-lex.l: Likewise.
	* libpoke/pkl-gen.c (pkl_gen_ps_comp_stmt): Generate code for new
	builtins.
	* libpoke/pkl-rt.pk: New functions term_begin_hyperlink and
	term_end_hyperlink.

2020-12-17  Jose E. Marchesi  <jemarch@gnu.org>

	* configure.ac: Check whether libtextstyle provides accessor
	functions.
	* poke/pk-term.c (pk_term_set_bgcolor): Use new libtextstyle
	interface to access the ostream_term of an ostream_styled_term.
	(pk_term_set_color): Likewise.
	(pk_term_get_bgcolor): Likewise.
	(pk_term_get_color): Likewise.
	(pk_term_rgb_to_color): Likewise.
	* libpoke/pkl-gen.c (pkl_gen_ps_comp_stmt): Fix code for builtin
	term_rgb_to_color

2020-12-17  Jose E. Marchesi  <jemarch@gnu.org>

	* libpoke/pkl-ast.h (PKL_AST_BUILTIN_TERM_CLASS): Define.
	(PKL_AST_BUILTIN_TERM_END_CLASS): Likewise.
	* libpoke/pkl-lex.l: Handle tokens BUILTIN_TERM_CLASS and
	BUILTIN_TERM_END_CLASS.
	* libpoke/pkl-tab.y: Likewise.
	* libpoke/pkl-rt.pk: Built-ins term_begin_class and
	term_end_class.
	* libpoke/pkl-gen.c (pkl_gen_ps_comp_stmt): Generate code for the
	new builtins.

2020-12-15  Jose E. Marchesi  <jemarch@gnu.org>

	* libpoke/pkl-typify.c (TYPIFY_BIN): DIV and CEILDIV accept
	arguments of different types.
	(CASE_OFFSET): Handle OFFSET / INT configuration.
	* libpoke/pkl-promo.c (pkl_promo_ps_op_div): Likewise.
	* libpoke/pkl-gen.c (pkl_gen_ps_op_div): Likewise.
	(pkl_gen_ps_op_cdiv): Likewise.
	* testsuite/poke.pkl/div-offset-int-1.pk: New test.
	* testsuite/poke.pkl/div-offset-int-2.pk: Likewise.
	* testsuite/poke.pkl/div-offset-int-3.pk: Likewise.
	* testsuite/poke.pkl/cdiv-offset-int-1.pk: Likewise.
	* testsuite/poke.pkl/cdiv-offset-int-2.pk: Likewise.
	* testsuite/poke.pkl/cdiv-offset-int-3.pk: Likewise.
	* testsuite/Makefile.am (EXTRA_DIST): Update.
	* doc/poke.texi (Offset Operations): Mention division of an offset
	by an integer.
	* etc/poke.rec (Support OFFSET / MAGNITUDE -> OFFSET): Remove as
	done.

2020-12-15  Jose E. Marchesi  <jemarch@gnu.org>

	* libpoke/pkl-typify.c (pkl_typify1_ps_op_bconc): Improve
	diagnostics.
	* testsuite/poke.pkl/bconc-diag-1.pk: New test.
	* testsuite/poke.pkl/bconc-diag-2.pk: Likewise.
	* testsuite/Makefile.am (EXTRA_DIST): Update.

2020-12-15  Jose E. Marchesi  <jemarch@gnu.org>

	* poke/pk-cmd-def.c (info_var_cmd): .info var -> .info variables.
	(info_fun_cmd): .info fun -> .info functions.
	* doc/poke.texi (info command): Document .info types.

2020-12-15  Jose E. Marchesi  <jemarch@gnu.org>

	* poke/pk-cmd-info.c (info_types_cmd): Likewise.
	(info_cmds): Add info_types_cmd.
	* poke/pk-cmd-def.c (info_types_cmd): Define.
	(pk_cmd_info_types): New function.
	(print_type_decl): Likewise.
	* etc/poke.rec (Support the command `info types'): Remove as done.

2020-12-15  Jose E. Marchesi  <jemarch@gnu.org>

	* poke/pk-table.h: New file.
	* poke/pk-table.c: Likewise.
	* poke/*.c: Use pk-table to print tabulated data.
	* testsuite/poke.cmd/*.pk: Update.
	* etc/poke.rec (pk-table): Remove as done.

2020-11-08  Jose E. Marchesi  <jemarch@gnu.org>

	* poke/pk-table.h: New file.
	* poke/pk-table.c: Likewise.
	* poke/Makefile.am (poke_SOURCES): Add pk-table.c and pk-table.h.

2020-12-14  Jose E. Marchesi  <jemarch@gnu.org>

	* libpoke/pvm.jitter (canary): Use JITTER_STATE_BACKING_FIELD.
	(exit): Likewise.
	(pushob): Likewise.
	(popob): Likewise.
	(pushom): Likewise.
	(popom): Likewise.
	(pushoo): Likewise.
	(popoo): Likewise.
	(pushoi): Likewise.
	(popoi): Likewise.
	(pushod): Likewise.
	(popod): Likewise.
	(pushoac): Likewise.
	(popoac): Likewise.
	(pushopp): Likewise.
	(popopp): Likewise.
	(strace): Likewise.
	(exit): Likewise.

2020-12-14  Jose E. Marchesi  <jemarch@gnu.org>

	* libpoke/pkl-insn.def: Define PKL_INSN_BEGINHL and
	PKL_INSN_ENDHL.
	* libpoke/pvm.jitter (beghl): New instruction.
	(endhl): Likewise.

2020-12-14  Jose E. Marchesi  <jemarch@gnu.org>

	* poke/poke.c (poke_term_if): Register color-related handlers in
	the terminal interface.
	* libpoke/pkl-ast.h (PKL_AST_BUILTIN_TERM_GET_COLOR): Define.
	(PKL_AST_BUILTIN_TERM_SET_COLOR): Likewise.
	(PKL_AST_BUILTIN_TERM_GET_BGCOLOR): Likewise.
	(PKL_AST_BUILTIN_TERM_SET_BGCOLOR): Likewise.
	(PKL_AST_BUILTIN_TERM_RGB_TO_COLOR): Likewise.
	* libpoke/pkl-tab.y: Tokens for new builtins.
	(builtin): Rules for new builtins.
	* libpoke/pkl-lex.l: Handle new built-ins.
	* libpoke/pkl-rt.pk (term_get_color): New builtin.
	(term_set_color): Likewise.
	(term_get_color): Likewise.
	(term_set_bgcolor): Likewise.
	(term_get_bgcolor): Likewise.
	(term_rgb_to_color): Likewise.
	* libpoke/pkl-gen.c (pkl_gen_ps_comp_stmt): Generate code for
	terminal color related builtins.

2020-12-14  Jose E. Marchesi  <jemarch@gnu.org>

	* libpoke/pkl-insn.def: Define PKL_INSN_RGBTOC, PKL_INSN_PUSHOC,
	PKL_INSN_POPOC, PKL_INSN_PUSHOBC and PKL_INSN_POPOBC.
	* libpoke/pvm.jitter (rgbtoc): New instruction.
	(pushoc): Likewise.
	(popoc): Likeiwise.
	(pushobc): Likewise.
	(popobc): Likewise.
	* libpoke/pkt.h (pk_term_rgb_to_color): Define.
	(pk_term_get_color): Likewise.
	(pk_term_set_color): Likewise.
	(pk_term_get_bgcolor): Likewise.
	(pk_term_set_bgcolor): Likewise.

2020-12-14  Jose E. Marchesi  <jemarch@gnu.org>

	* libpoke/libpoke.h (struct pk_term_if): New handlers get_color,
	get_bgcolor, set_color, set_bgcolor and rgb_to_color.
	* poke/pk-term.h: Prototypes for color handling functions.
	* poke/pk-term.c (pk_term_rgb_to_color): New function.
	(pk_term_get_color): Likewise.
	(pk_term_get_bgcolor): Likewise.
	(pk_term_set_color): Likewise.
	(pk_term_set_bgcolor): Likewise.
	* testsuite/poke.libpoke/term-if.h (pk_term_rgb_to_color): New
	dummy function.
	(pk_term_get_color): Likewise.
	(pk_term_get_bgcolor): Likewise.
	(pk_term_set_color): Likewise.
	(pk_term_set_bgcolor): Likewise.
	(poke_term_if): Install handlers.

2020-12-14  Jose E. Marchesi  <jemarch@gnu.org>

	* pickles/id3v1.pk (ID3V1_Tag) <_print>: simplify.

2020-12-14  Jose E. Marchesi  <jemarch@gnu.org>

	BZ 26883
	* libpoke/pkl-gen.c (pkl_gen_pr_print_stmt): Evaluate arguments
	before printing anything.
	* testsuite/poke.pkl/printf-26.pk: New test.
	* testsuite/Makefile.am (EXTRA_DIST): Update.
	* etc/poke.rec (printf should evaluate arguments _before_ printing
	anything): Removed as fixed.

2020-12-13  Jose E. Marchesi  <jemarch@gnu.org>

	* poke/pk-dump.pk (pk_dump_nonprintable_char): Define.
	(print_ascii): use pk_dump_nonprintable_char.
	* doc/poke.texi (Presentation options for @command{dump}):
	Document pk_dump_nonprintable_char.

2020-12-13  Jose E. Marchesi  <jemarch@gnu.org>

	* etc/poke.rec (Support for non-strict values): Removed as done.

2020-12-13  Jose E. Marchesi  <jemarch@gnu.org>

	* libpoke/pkl-gen.pks (array_mapper): Set the strict attribute to
	the mapped value.
	(struct_mapper): Likewise.
	* testsuite/poke.map/ass-map-17.pk: Check that the r-value of an
	ass-map keeps the `strict' attribute.
	* testsuite/poke.map/strict-attr-8.pk: New test.
	* testsuite/poke.map/strict-attr-9.pk: Likewise.
	* testsuite/Makefile.am (EXTRA_DIST): Update.

2020-12-13  Jose E. Marchesi  <jemarch@gnu.org>

	* libpoke/pkl-attrs.def: Define PKL_AST_ATTR_STRICT.
	* libpoke/pkl-typify.c (pkl_typify1_ps_attr): Typify attribute
	'strict.
	* libpoke/pkl-gen.c (pkl_gen_ps_op_attr): Generate code for the
	attribute 'strict.
	* testsuite/poke.map/strict-attr-1.pk: New test.
	* testsuite/poke.map/strict-attr-2.pk: Likewise.
	* testsuite/poke.map/strict-attr-3.pk: Likewise.
	* testsuite/poke.map/strict-attr-4.pk: Likewise.
	* testsuite/poke.map/strict-attr-5.pk: Likewise.
	* testsuite/poke.map/strict-attr-6.pk: Likewise.
	* testsuite/poke.map/strict-attr-7.pk: Likewise.
	* doc/poke.texi (Array Attributes): Document the 'strict
	attribute.
	(Non-strict Mapping): Mention the attribute.

2020-12-13  Jose E. Marchesi  <jemarch@gnu.org>

	* testsuite/poke.map/nsmap-1.pk: New test.
	* testsuite/poke.map/nsmap-2.pk: Likewise.
	* testsuite/poke.map/nsmap-3.pk: Likewise.
	* testsuite/poke.map/nsmap-4.pk: Likewise.

	* libpoke/pkl-ast.h (struct pkl_ast_map): New field `strict_p'.
	(PKL_AST_MAP_STRICT_P): Define.
	* libpoke/pkl-ast.c (pkl_ast_make_map): Get a new argument for
	strict_p.
	(pkl_ast_print_1): Print new attribute strict_p.
	* libpoke/pkl-lex.l: Handle @! tokens.
	* libpoke/pkl-tab.y (mapop): New rule.
	(map): Support non-strict variants of the map operator.
	* doc/poke.texi (Non-strict Mapping): Section draft.

2020-12-13  Jose E. Marchesi  <jemarch@gnu.org>

	* libpoke/pkl-tab.y (struct_type_specifier): Adjust lexical
	environment accordingly.
	* libpoke/pkl-gen.c (pkl_gen_ps_type_integral): Handle STRICT in
	mapper context.
	(pkl_gen_ps_type_array): Likewise.
	(pkl_gen_ps_type_string): Likewise.
	(pkl_gen_ps_type_struct): Likewise.
	(pkl_gen_pr_type_function): Likewise.
	(pkl_gen_pr_map): Specify strictness.
	* libpoke/pkl-gen.pks (array_mapper): Get a STRICT argument.
	(struct_mapper): Likewise.
	(struct_field_mapper): Likewise.
	(struct_field_extractor): Likewise.
	(handle_struct_field_constraints): Likewise.
	(struct_constructor): Adjust lexical environment to match
	the one in struct_mapper.
	* libpoke/pkl-asm.pks (remap): Pass strict to mapper.

2020-12-13  Jose E. Marchesi  <jemarch@gnu.org>

	* libpoke/pkl-insn.def: Definitions for the mgets and msets
	instructions.
	* libpoke/pvm.jitter (mgets): New instruction.
	(msets): Likewise.

2020-12-13  Jose E. Marchesi  <jemarch@gnu.org>

	* libpoke/pvm-val.h (struct pvm_mapinfo): New field `strict_p'.
	(PVM_MAPINFO_STRICT_P): Define.
	(PVM_VAL_ARR_STRICT_P): Likewise.
	(PVM_VAL_SCT_STRICT_P): Likewise.
	(PVM_VAL_STRICT_P): Likewise.
	(PVM_VAL_SET_STRICT_P): Likewise.
	* libpoke/pvm-val.c (pvm_make_array): New array values are strict
	by default.
	(pvm_make_struct): Ditto for structs.

2020-12-13  Mohammad-Reza Nabipoor  <m.nabipoor@yahoo.com>

	* poke/pk-mi.c: Add include `errno.h`.
	(mi_loop): Ignore `EINTR` when `select` fails. It's not a fatal error.
	* poke/pk-hserver.c (hserver_thread_worker): Likewise.

2020-12-13  Mohammad-Reza Nabipoor  <m.nabipoor@yahoo.com>

	* libpoke/pkl-promo.c (pkl_promo_ps_struct_type_field): Skip
	promotion of initializer if it has the same type as the field.
	* testsuite/poke.pkl/struct-types-7.pk: New test.
	* testsuite/Makefile.am (EXTRA_DIST): Update.

2020-12-13  Jose E. Marchesi  <jemarch@gnu.org>

	* libpoke/pvm-val.h (struct pvm_mapinfo): New type.
	(struct pvm_array): New fields mapinfo and mapinfo_back and remove
	obsolete fields.
	(struct pvm_struct): Likewise.
	(PVM_VAL_ARR_MAPINFO): Define.
	(PVM_VAL_ARR_MAPINFO_BACK): Likewise.
	(PVM_MAPINFO_MAPPED_P): Likewise.
	(PVM_MAPINFO_IOS): Likewise.
	(PVM_MAPINFO_OFFSET): Likewise.
	(PVM_VAL_SCT_MAPINFO): Likewise.
	(PVM_VAL_SCT_MAPINFO_BACK): Likewise.
	(pvm_mapinfo_null): Define.
	* libpoke/pvm-val.c (pvm_make_array): Initialize the mapinfo.
	(pvm_make_struct): Likewise.
	(pvm_val_reloc): Adapt to mapinfo structures.
	(pvm_val_ureloc): Likewise.
	* testsuite/poke.map/ass-map-18.pk: New test.
	* testsuite/Makefile.am (EXTRA_DIST): Update.

2020-12-12  Jose E. Marchesi  <jemarch@gnu.org>

	* testsuite/poke.map/valmap-struct-4.pk: New test.
	* testsuite/Makefile.am (EXTRA_DIST): Update.

2020-12-12  Jose E. Marchesi  <jemarch@gnu.org>

	* libpoke/pvm.jitter (srefo): New instruction.
	* libpoke/pkl-insn.def: Define PKL_INSN_SREFO.
	* libpoke/pvm-val.c (pvm_refo_struct): New function.
	* libpoke/pvm-val.h: Prototype for pvm_refo_struct.
	* libpoke/pkl-gen.c (pkl_gen_pr_ass_stmt): Use srefo instead of
	srefio.
	(LMAP): Make sure the array type has a bounder.
	* testsuite/poke.map/valmap-struct-2.pk: New test.
	* testsuite/poke.map/valmap-struct-3.pk: Likewise.
	* testsuite/Makefile.am (EXTRA_DIST): Update.

2020-12-12  Jose E. Marchesi  <jemarch@gnu.org>

	* utils/pk-elfextractor.in: Add Emacs local variable for the
	mode.

2020-12-12  Jose E. Marchesi  <jemarch@gnu.org>

	* etc/poke.rec (`unmap' should be recursive): Removed as fixed.

2020-12-12  Jose E. Marchesi  <jemarch@gnu.org>

	BZ 26897
	* libpoke/pvm.h: Prototype for pvm_val_unmap.
	* libpoke/pvm-val.c (pvm_val_unmap): New function.
	* libpoke/pvm.jitter (unmap): Use pvm_val_unmap.
	* testsuite/poke.map/unmap-2.pk: New test.
	* testsuite/poke.map/unmap-3.pk: Likewise.
	* testsuite/Makefile.am (EXTRA_DIST): Update.

2020-12-12  Jose E. Marchesi  <jemarch@gnu.org>

	* libpoke/pkl-gen.c (pkl_gen_pr_ass_smtp): Support valmap
	operations.
	* testsuite/poke.map/valmap-array-1.pk: New test.
	* testsuite/poke.map/valmap-struct-1.pk: Likewise.
	* testsuite/Makefile.am (EXTRA_DIST): Update.

2020-12-12  Jose E. Marchesi  <jemarch@gnu.org>

	* libpoke/pkl-lex.l: Error on -0xffff_ffff_ffff_ffff.
	* testsuite/poke.libpoke/values.c (testcase_pk_val_equal_p):
	Finalize the pk compiler in case of an error.
	* testsuite/poke.libpoke/pk_equal_uint.test: Update to not use the
	invalid literal.
	* testsuite/poke.libpoke/pk_nequal_uint.test: Likewise.
	* testsuite/poke.pkl/integers-diag-2.pk: New test.
	* testsuite/poke.pkl/integers-7.pk: Likewise.
	* testsuite/Makefile.am (EXTRA_DIST): Update.

2020-12-12  Jose E. Marchesi  <jemarch@gnu.org>

	* libpoke/pkl-fold.c (OP_BINARY_III): Fix signedness of
	comparison.
	* testsuite/poke.pkl/lt-integers-4.pk: New test.
	* testsuite/Makefile.am (EXTRA_DIST): Update.

2020-12-12  Jose E. Marchesi  <jemarch@gnu.org>

	* libpoke/pkl-gen.pks (struct_constructor): Remove array bounders
	after they are used.
	* libpoke/pkl-gen.c (pkl_gen_pr_func_arg): Likewise.
	(pkl_gen_pr_cast): Likewise.
	* testsuite/poke.pkl/scons-64.pk: New test.
	* testsuite/Makefile.am (EXTRA_DIST): Update.

2020-12-09  Jose E. Marchesi  <jemarch@gnu.org>

	* libpoke/pkl-gen.c (pkl_gen_pr_func_arg): Traverse the argument
	type in normal context.
	(pkl_gen_pr_map): Traverse the map type in normal context.

2020-12-09  Jose E. Marchesi  <jemarch@gnu.org>

	* libpoke/pkl-gen.c (pkl_gen_pr_cast): Make a pre-order handler.
	(pkl_gen_pr_type): Remove handler.
	(pkl_phase_gen): Adjust accordingly.

2020-12-09  Jose E. Marchesi  <jemarch@gnu.org>

	* libpoke/pkl-gen.c (pkl_gen_pr_struct_type_field): Subpass on the
	field type in normal context, avoiding generating a name.
	(pkl_gen_pr_type_array): Likewise.
	(pkl_gen_pr_type_struct): Likewise.
	(pkl_gen_pr_type): Remove hack.

2020-12-09  Jose E. Marchesi  <jemarch@gnu.org>

	* libpoke/pkl-gen.c (pkl_gen_pr_type_offset): Handle in_mapper and
	in_constructor and in_type.
	(pkl_gen_ps_type_offset): Remove.
	(pkl_phase_gen): Deregister pkl_gen_ps_type_offset.

2020-12-09  Jose E. Marchesi  <jemarch@gnu.org>

	* libpoke/pkl-gen.h (struct pkl_gen_payload): Remove field
	generating_pvm_struct_type.
	(PKL_GEN_CTX_GENERATING_PVM_STRUCT_TYPE): Remove.
	* libpoke/pkl-gen.c (pkl_gen_pr_decl): Use the `in_type' context
	to break the pass.
	(pkl_gen_pr_type_struct): Do not handle generating_pvm_struct_type.
	(pkl_gen_ps_type_struct): Likewise.

2020-12-09  Jose E. Marchesi  <jemarch@gnu.org>

	* libpoke/pkl-gen.c (PKL_GEN_DUP_CONTEXT): Renamed from
	PKL_GEN_SAVE_CONTEXT.
	(PKL_GEN_POP_CONTEXT): Renamed from PKL_GEN_RESTORE_CONTEXT.
	* libpoke/pkl-gen.pks: Adapt to renames.

2020-12-09  Jose E. Marchesi  <jemarch@gnu.org>

	* libpoke/pkl-gen.h (PKL_GEN_CTX_IN_TYPE): Define.
	* libpoke/pkl-gen.c (pkl_gen_ps_type_offset): Build offset type
	only in `in_type' context.
	(pkl_gen_ps_type_void): Likewise.
	(pkl_gen_ps_type_any): Likewise.
	(pkl_gen_ps_type_integral): Likewise.
	(pkl_gen_ps_type_function): Likewise.
	(pkl_gen_pr_type_array): Likewise.
	(pkl_gen_ps_type_string): Likewise.
	(pkl_gen_pr_type_struct): Likewise.
	(pkl_gen_ps_type_struct): Likewise.
	(pkl_gen_pr_struct_type_field): Likewise.
	(PKL_GEN_PUSH_CONTEXT): Define.
	* libpoke/pkl-gen.pks (array_mapper): Set the `in_type' context
	wherever appropriate.
	(array_constructor): Likewise.
	(struct_mapper): Likewise.
	(struct_constructor): Likewise.
	* libpoke/pkl-gen.c (pkl_gen_pr_array): Likewise.
	(pkl_gen_ps_struct): Likewise.
	(pkl_gen_ps_cast): Likewise.
	(pkl_gen_ps_isa): Likewise.

2020-12-10  Mohammad-Reza Nabipoor  <m.nabipoor@yahoo.com>

	* pickles/color.pk: Use `assert` for integrity check.
	* pickles/rgb24.pk: Likewise.

2020-12-07  Jose E. Marchesi  <jemarch@gnu.org>

	* Makefile.am (SUBDIRS): Add utils/.
	* utils/Makefile.am: New file.
	* utils/pk-elfextractor.in: Renamed from pk-elfextractor.

2020-12-06  Jose E. Marchesi  <jemarch@gnu.org>

	* libpoke/pkl-asm.pks (eqa): Fix lexical context handling when the
	comparison is false.

2020-12-05  Jose E. Marchesi  <jemarch@gnu.org>

	* doc/poke.texi (Programs): New chapter.
	(argp): New section.

2020-12-04  Jose E. Marchesi  <jemarch@gnu.org>

	* pickles/argp.pk (argp_parse): Support for --.
	* testsuite/poke.argp/argp-11.pk: New test.
	* testsuite/poke.argp/argp-12.pk: Likewise.
	* testsuite/Makefile.am (EXTRA_DIST): Add new tests.

2020-12-04  Jose E. Marchesi  <jemarch@gnu.org>

	* testsuite/poke.argp/argp.exp: New file.
	* testsuite/poke.argp/argp-1.pk: New test.
	* testsuite/poke.argp/argp-2.pk: Likewise.
	* testsuite/poke.argp/argp-3.pk: Likewise.
	* testsuite/poke.argp/argp-4.pk: Likewise.
	* testsuite/poke.argp/argp-5.pk: Likewise.
	* testsuite/poke.argp/argp-6.pk: Likewise.
	* testsuite/poke.argp/argp-7.pk: Likewise.
	* testsuite/poke.argp/argp-8.pk: Likewise.
	* testsuite/poke.argp/argp-9.pk: Likewise.
	* testsuite/poke.argp/argp-10.pk: Likewise.
	* testsuite/poke.argp/argp-diag-1.pk: Likewise.
	* testsuite/poke.argp/argp-diag-2.pk: Likewise.
	* testsuite/poke.argp/argp-diag-3.pk: Likewise.
	* testsuite/poke.argp/argp-diag-4.pk: Likewise.
	* testsuite/Makefile.am (EXTRA_DIST): Add new tests.

2020-12-04  Jose E. Marchesi  <jemarch@gnu.org>

	* pickles/argp.pk (argp_do_version): New function.
	(argp_parse): Add support for default --version.

2020-12-04  Jose E. Marchesi  <jemarch@gnu.org>

	* pickles/argp.pk (argp_parse): Support proper arguments with = in
	long options.
	(argp_do_help): Adapt printing accordingly.
	* .x-sc_prohibit_magic_number_exit: Add pickles/*.

2020-12-04  Jose E. Marchesi  <jemarch@gnu.org>

	* pickles/argp.pk (argp_parse): Support specifying several short
	options in a -FOO construction.

2020-12-04  Jose E. Marchesi  <jemarch@gnu.org>

	* pickles/argp.pk (argp_do_help): New function.
	(argp_parse): Support a default --help option.

2020-12-03  Jose E. Marchesi  <jemarch@gnu.org>

	* utils/pk-elfextractor: Rename from elfextractor.

2020-12-03  Jose E. Marchesi  <jemarch@gnu.org>

	* pickles/argp.pk: New file.
	* pickles/Makefile.am (dist_pickles_DATA): Add argp.pk.

2020-11-30  Jose E. Marchesi  <jemarch@gnu.org>

	* libpoke/pkl-gen.c (PKL_GEN_IN_CTX_P): Likewise.
	(PKL_GEN_SAVE_CONTEXT): Likewise.
	(PKL_GEN_RESTORE_CONTEXT): Likewise.
	(PKL_GEN_SET_CONTEXT): Likewise.
	(PKL_GEN_CLEAR_CONTEXT): Likewise.

	* libpoke/pkl-gen.h (PKL_GEN_CTX_IN_STRUCT_DECL): Define.
	(PKL_GEN_CTX_IN_MAPPER): Likewise.
	(PKL_GEN_CTX_IN_CONSTRUCTOR): Likewise.
	(PKL_GEN_CTX_IN_WRITER): Likewise.
	(PKL_GEN_CTX_IN_LVALUE): Likewise.
	(PKL_GEN_CTX_IN_COMPARATOR): Likewise.
	(PKL_GEN_CTX_IN_PRINTER): Likewise.
	(PKL_GEN_CTX_IN_ARRAY_BOUNDER): Likewise.
	(PKL_GEN_CTX_IN_METHOD_ARGUMENTS): Likewise.
	(PKL_GEN_CTX_IN_FUNCALL): Likewise.
	(PKL_GEN_CTX_GENEARTING_PVM_STRUCT_TYPE): Likewise.
	(PKL_GEN_MAX_CTX): Likewise.

2020-11-30  Jose E. Marchesi  <jemarch@gnu.org>

	* poke/pk-cmd-def.c (print_var_decl): Use base_name instead of
	basename.

2020-11-29  Jose E. Marchesi  <jemarch@gnu.org>

	* libpoke/ios-dev-file.c: Remove stale hidden attributes.
	* libpoke/pkl-typify.c: Likewise.
	* libpoke/pkl-trans.c: Likewise.
	* libpoke/pkl-promo.c: Likewise.
	* libpoke/pkl-gen.c: Likewise.
	* libpoke/pkl-fold.c: Likewise.
	* libpoke/pkl-anal.c: Likewise.
	* libpoke/libpoke.c: Likewise.
	* libpoke/ios-dev-stream.c: Likewise.
	* libpoke/ios-dev-nbd.c: Likewise.
	* libpoke/ios-dev-mem.c: Likewise.

2020-11-29  Jose E. Marchesi  <jemarch@gnu.org>

	* poke/poke.pk (pk_help): Do not use tabs to separate command
	names from summary.

2020-11-29  Jose E. Marchesi  <jemarch@gnu.org>

	* testsuite/poke.pkl/sref-func-5.pk: Remove trailing whitespaces.

2020-11-29  Jose E. Marchesi  <jemarch@gnu.org>,

	BZ 26976
	* libpoke/ios-buffer.c: Include stdlib.h instead of malloc.h
	* libpoke/ios-dev-stream.c: Do not include malloc.h

2020-11-29  Jose E. Marchesi  <jemarch@gnu.org>

	BZ 26975
	* bootstrap.conf (libpoke_modules): Import module `byteswap'.
	* libpoke/ios.c: Include byteswap.h.
	(ios_read_int_common): Use bswap_64 instead of __bswap_64.

2020-11-29  Jose E. Marchesi  <jemarch@gnu.org>

	* etc/poke.rec (Do not emit empty source lines in error
	reporting): Removed as fixed.

2020-11-29  Jose E. Marchesi  <jemarch@gnu.org>

	* libpoke/pvm.jitter (disas): New instruction.
	* libpoke/pkl-insn.def: Define PKL_INSN_DISAS.
	* libpoke/pkl-gen.c (pkl_gen_ps_struct_ref): Fix logic in
	determining is_field_p when there are anonymous fields in a
	struct.
	* testsuite/poke.pkl/sref-func-5.pk: New test.
	* testsuite/Makefile.am (EXTRA_DIST): Add new test.

2020-11-29  Jose E. Marchesi  <jemarch@gnu.org>

	* libpoke/pkl-ast.h (PKL_AST_BUILTIN_STRACE): Define.
	* libpoke/pkl-lex.l: Rule for __PKL_BUILTIN_STRACE__.
	* libpoke/pkl-tab.y: Define BUILTIN_STRACE.
	(builtin): Add rule for the `strace' builtin.
	* libpoke/pkl-rt.pk (strace): Define function.
	* libpoke/pkl-gen.c (PKL_PHASE_BEGIN_HANDLER): Implement body for
	the `strace' builtin.
	* doc/poke.texi (strace): New section.
	* DEV-NEWS: Add entry.

2020-11-29  Jose E. Marchesi  <jemarch@gnu.org>

	* poke/pk-scrabble.pk: New file.
	* poke/pk-cmd.pk: Load pk-scrabble.pk.
	* poke/Makefile.am (dist_pkgdata_DATA): Add pk-scrabble.pk.
	* doc/poke.texi (scrabble): New section.
	* testsuite/poke.cmd/scrabble-1.pk: New test.
	* testsuite/poke.cmd/scrabble-2.pk: Likewise.
	* testsuite/poke.cmd/scrabble-3.pk: Likewise.
	* testsuite/poke.cmd/scrabble-4.pk: Likewise.
	* testsuite/Makefile.am (EXTRA_DIST): Add new tests.

2020-11-29  Jose E. Marchesi  <jemarch@gnu.org>

	* libpoke/pkl-tab.y (pkl_make_assertion): do not ignore the result
	of ASTREF.

2020-11-29  Jose E. Marchesi  <jemarch@gnu.org>

	* libpoke/pkl-gen.pks (struct_printer): fix style class handling.
	* testsuite/poke.pkl/printf-value-15.pk: New test.
	* testsuite/Makefile.am (EXTRA_DIST): Add new test.

2020-11-29  Mohammad-Reza Nabipoor  <m.nabipoor@yahoo.com>

	* libpoke/pkl-ast.h (ASTREF): Re-write the macro as inline function
	with `always_inline` and `warn_unused_result` attributes.
	(ASTDEREF): Likewise.
	* libpoke/pkl-gen.c (pkl_gen_pr_type_struct): Use return value of
	`ASTREF`.
	* libpoke/pkl-pass.c (pkl_do_pass_1): Likewise.
	* libpoke/pkl-promo.c (promote_integral): Likewise.
	(promote_offset): Likewise.
	(promote_array): Likewise.
	(pkl_promo_ps_op_div): Likewise.
	(pkl_promo_ps_op_rela): Likewise.
	(pkl_promo_ps_type_array): Likewise.
	(pkl_promo_ps_map): Likewise.
	(pkl_promo_ps_struct_type_field): Likewise.
	* libpoke/pkl-tab.y (offset_type_specifier): Likewise.
	(struct_type_field): Likewise.
	(stmt): Likewise.
	* libpoke/pkl-typify.c (pkl_typify1_ps_struct_type_field): Likewise.
	* libpoke/pkl-ast.c (pkl_ast_reverse): Use return value of `ASTDEREF`.
	* etc/hacking.org (Memory Management): Update.
	* HACKING: Regenerate.

2020-11-29  Mohammad-Reza Nabipoor  <m.nabipoor@yahoo.com>

	* libpoke/libpoke.h (pk_call): Remove `__attribute__ ((sentinel))`.
	`sentinel` expects `NULL` but the API uses `PK_NULL`.

2020-11-28  Jose E. Marchesi  <jemarch@gnu.org>

	* libpoke/pkl-gen.h (struct pkl_gen_payload): New field
	`in_file_p'.
	* libpoke/pkl-gen.c (pkl_gen_pr_program): Initialize `in_file_p'.
	(pkl_gen_ps_exp_stmt): Always drop the expression from the stack
	if `in_file_p' is 1, i.e. if we are in a `load'.
	* testsuite/poke.pkl/load-5.pk: New test.
	* testsuite/Makefile.am (EXTRA_DIST): Update.

2020-11-27  Jose E. Marchesi  <jemarch@gnu.org>

	* libpoke/pkl-gen.pks (struct_writer): Do not destroy the
	in_constructor context.
	(struct_integrator): Likewise.
	* testsuite/poke.pkl/scons-int-struct-4.pk: New test.
	* testsuite/Makefile.am (EXTRA_DIST): Update.

2020-11-27  Jose E. Marchesi  <jemarch@gnu.org>

	* etc/poke.rec (Support for multi-line strings with """): Removed
	as not needed any longer.
	(Support functions in struct fields): Removed as done.

2020-11-27  Jose E. Marchesi  <jemarch@gnu.org>

	* libpoke/pkl-ast.h (PKL_AST_VAR_IS_PARENTHESIZED): Define.
	(PKL_AST_STRUCT_REF_IS_PARENTHESIZED): Likewise.
	(struct pkl_ast_var): Add field `is_parenthesized'.
	(struct pkl_ast_struct_ref): Likewise.
	* libpoke/pkl-tab.y (primary): Annotate array references as
	parenthesized whenever appropriate.
	* libpoke/pkl-trans.c (pkl_trans1_ps_var): Do not deprocedure if
	the variable is parenthesized.
	(pkl_trans2_ps_struct_ref): Likewise.
	* testsuite/poke.pkl/funcall-17.pk: New test.
	* testsuite/poke.pkl/struct-method-17.pk: LIkewise.
	* doc/poke.texi (Calling Functions): Mention how parenthesized
	function names do not deprocedure.

2020-11-27  Jose E. Marchesi  <jemarch@gnu.org>

	* pickles/elf.pk (Elf64_Chdr): New type.
	(Elf64_Dyn): Likewise.
	Define DT_* values.
	* pickles/future/elf-future.pk: The future is now, so removed :)

2020-11-27  Jose E. Marchesi  <jemarch@gnu.org>

	* pickles/elf.pk (Elf64_Note): New type.
	* pickles/dwarf-frame.pk (Dwarf_CIE): Simplify calculation of
	insn_size.

2020-11-27  Jose E. Marchesi  <jemarch@gnu.org>

	* libpoke/pkl-tab.y (struct_type_identifier): Register OFFSET.
	* libpoke/pkl-gen.pks (struct_constructor): Add OFFSET and adjust
	code accordingly.
	(struct_mapper): Likewise.
	(handle_struct_field_constraints): Likewise.
	* testsuite/poke.pkl/scons-offset-4.pk: Likewise.
	* testsuite/poke.map/map-struct-offset-5.pk: Likewise.
	* testsuite/poke.map/map-struct-offset-4.pk: Likewise.
	* testsuite/poke.pkl/scons-offset-diag-1.pk: Likewise.
	* testsuite/poke.pkl/scons-offset-3.pk: Likewise.
	* testsuite/poke.pkl/scons-offset-2.pk: Likewise.
	* testsuite/poke.map/scons-offset-1.pk: Likewise.
	* testsuite/poke.map/map-struct-offset-3.pk: Likewise.
	* testsuite/poke.map/map-struct-offset-2.pk: Likewise.
	* testsuite/poke.map/map-struct-offset-3.pk: Likewise.
	* testsuite/poke.map/map-struct-offset-1.pk: New test.
	* testsuite/Makefile.am (EXTRA_DIST): Update.
	* doc/poke.texi (The OFFSET variable): New section.

2020-11-27  Jose E. Marchesi  <jemarch@gnu.org>

	* libpoke/std.pk (alignto): New function.
	* doc/poke.texi (Offset Functions): New section.
	(alignto): Likewise.

2020-11-27  Jose E. Marchesi  <jemarch@gnu.org>

	* pickles/elf.pk (Elf_Hash_Table): New type.
	(Elf64_Note): Likewise.

2020-11-27  Jose E. Marchesi  <jemarch@gnu.org>

	* doc/poke.texi (How Structs are Built): New section.
	(Variables in Structs): Likewise.
	(Functions in Structs): Likewise.
	(Struct Methods): Likewise.

2020-11-27  Jose E. Marchesi  <jemarch@gnu.org>

	* libpoke/pkl-gen.pks (struct_constructor): Remove obsolete
	comment.
	* libpoke/pkl-fold.c (pkl_fold_ps_cast): Likewise.
	* libpoke/pkl-ast.c (pkl_ast_finish_breaks_1): Likewise.
	(pkl_ast_lvalue_p): Likewise.
	* libpoke/pkl-gen.c (pkl_gen_ps_var): Likewise.
	(pkl_gen_ps_var): Likewise.
	(pkl_gen_pr_type_offset): Fix writer.
	* libpoke/pkl-typify.c (pkl_typify2_ps_type): Remove unneeded
	conditional.
	* libpoke/pkl-ast.c (pkl_ast_type_is_complete): Handle `any' and
	`void' types.

2020-11-27  Jose E. Marchesi  <jemarch@gnu.org>

	* libpoke/pkl-insn.def: Define PKL_INSN_AREM.
	* libpoke/pvm.jitter (ains): IDX argument is ulong, not long.
	(arem): New instruction.
	* libpoke/pvm.h: Prototype for pvm_array_rem.
	* libpoke/pvm-val.c (pvm_array_rem): New function.

2020-11-26  Mohammad-Reza Nabipoor  <m.nabipoor@yahoo.com>

	* libpoke/pkl-lex.l: New token.
	* libpoke/pkl-tab.y (simple_stmt): Add rules for assert expression.
	(pkl_make_assertion): New function.
	* libpoke/pkl-rt.pk (EC_assert): New error code.
	(E_assert): New exception.
	(_pkl_assert): New function.
	* libpoke/pvm.h (PVM_E_ASSERT*): New exception.
	* doc/poke.texi (assert): New section.
	* testsuite/poke.pkl/assert-1.pk: New test.
	* testsuite/poke.pkl/assert-2.pk: Likewise.
	* testsuite/poke.pkl/assert-3.pk: Likewise.
	* testsuite/poke.pkl/assert-4.pk: Likewise.
	* testsuite/poke.pkl/assert-5.pk: Likewise.
	* testsuite/poke.pkl/assert-diag-1.pk: Likewise.
	* testsuite/poke.pkl/assert-diag-2.pk: Likewise.
	* testsuite/poke.pkl/assert-diag-3.pk: Likewise.
	* testsuite/poke.pkl/assert-diag-4.pk: Likewise.
	* testsuite/Makefile.am (EXTRA_DIST): Add new tests.

2020-11-26  Jose E. Marchesi  <jemarch@gnu.org>

	* libpoke/pvm.jitter (pvm_literal_printer_hi): Get a jitter print
	context as first argument.

2020-11-26  Jose E. Marchesi  <jemarch@gnu.org>

	* doc/poke.texi (Object Formats): New chapter.

2020-11-26  Jose E. Marchesi  <jemarch@gnu.org>

	* libpoke/pkl-env.c (register_decl): Change the names of
	re-defined declarations to "" instead of removing the declaration
	name identifier node.

2020-11-26  Jose E. Marchesi  <jemarch@gnu.org>

	* pickles/elf.pk (get_string): New method.
	* pickles/ctf.pk (ctf_string): Use it.

2020-11-26  Jose E. Marchesi  <jemarch@gnu.org>

	* pickles/ctf.pk: Adapt to new interface in elf.pk.
	* maps/dwarf.map: Likewise.

2020-11-26  Jose E. Marchesi  <jemarch@gnu.org>

	BZ 26891
	* libpoke/pkl-ast.h (PKL_AST_SRC_FILENAME): Define.
	(struct pkl_ast_src): New type.
	(pkl_ast_make_src): New prototype.
	(union pkl_ast_node): New field `src'.
	* libpoke/pkl-ast.c (pkl_ast_make_src): New function.
	(pkl_ast_node_free): Handle SRC AST nodes.
	(pkl_ast_print_1): Likewise.
	* libpoke/pkl-tab.y (load): Add SRC nodes.
	* libpoke/pkl-pass.c (pkl_do_pass_1): Likewise.
	* libpoke/pkl-anal.c (pkl_anal_pr_src): New handler.
	(pkl_phase_anal1): Install handler.
	(pkl_phase_anal2): Likewise.
	(pkl_phase_analf): Likewise.
	(pkl_anal2_ps_offset): Fix location of error message.
	* libpoke/pkl-typify.c (pkl_typify_ps_src): New handler.
	(pkl_phase_typify1): Install handler.
	(pkl_phase_typify2): Likewise.
	* libpoke/pkl-fold.c (pkl_fold_ps_src): New handler.
	(pkl_phase_fold): Install handler.
	* libpoke/pkl-trans.c (pkl_trans_ps_src): New handler.
	(pkl_phase_trans1): Install handler.
	(pkl_phase_trans2): Likewise.
	(pkl_phase_trans3): Likewise.
	(pkl_phase_trans4): Likewise.
	* libpoke/pkl-gen.c (pkl_gen_ps_src): New handler.
	* libpoke/pkl-diag.c (pkl_detailed_location): Open the source file
	for diagnostics, do not reuse the fp in the ast.
	(pkl_print_filename): New function.
	(pkl_error_internal): Use pkl_print_filename.
	(pkl_warning): Likewise.
	* etc/poke.rec (Source line is missing on in-type struct errors):
	Remove as fixed.

2020-11-26  Jose E. Marchesi  <jemarch@gnu.org>

	* pickles/elf.pk (get_sections_by_name): Renamed from
	get_section_by_name.

2020-11-26  Jose E. Marchesi  <jemarch@gnu.org>

	* libpoke/pkl-tab.y: Fix indentation.
	* pickles/elf.pk: Remove a couple of comments.

2020-11-26  Jose E. Marchesi  <jemarch@gnu.org>

	* pickles/elf.pk (Elf64_Sym): Make st_info and st_other integral
	structs.

2020-11-26  Jose E. Marchesi  <jemarch@gnu.org>

	* pickles/elf.pk (Elf64_Group): Define.
	(GRP_COMDAT): Likewise.
	(GRP_MASKOS): Likewise.
	(GRP_MASKPROC): Likewise.
	(get_section_group): New method.
	(get_group_signature): Likewise.
	(get_group_signatures): Likewise.
	(get_symbol_name): Likewise.

2020-11-25  Jose E. Marchesi  <jemarch@gnu.org>

	* poke/poke.pk (pk_help_topics): New variable.
	(pk_help_add_topic): New function.
	* poke/pk-dump.pk: Add an entry to pk_help_topics.
	* poke/pk-save.pk: Likewise.
	* poke/pk-copy.pk: Likewise.
	* poke/pk-extract.pk: Likewise.
	* poke/pk-cmd-help.c (pk_cmd_help): Rewrite to use the Poke
	infrastructure.
	* poke/pk-cmd.c (pk_cmd_shutdown): Reflect changes in
	pk-cmd-help.c.

2020-11-25  Jose E. Marchesi  <jemarch@gnu.org>

	* testsuite/poke.pkl/strings-5.pk: New test.
	* testsuite/poke.pkl/string-multiline-diag-1.pk: Remove.
	* testsuite/Makefile.am (EXTRA_DIST): Update.

2020-11-24  Jose E. Marchesi  <jemarch@gnu.org>

	* doc/poke.texi (Integer Types): Fix formatting.
	(if-else): Fix syntax of `if-else'.

2020-11-24  Jose E. Marchesi  <jemarch@gnu.org>

	* poke/pk-dump.pk (pk_help_str): Remove empty line between try and
	catch.

2020-11-24  Jose E. Marchesi  <jemarch@gnu.org>

	* libpoke/pkl-pass.c (pkl_do_pass_1): Traverse the head of for
	loops before the condition.
	* poke/pk-copy.pk (pk_help_str): Use a `for' loop.

2020-11-24  Jose E. Marchesi  <jemarch@gnu.org>

	* libpoke/pkl-ast.c (pkl_ast_finish_returns_1): Fix return drops
	for `for' statements.
	* pickles/id3v1.pk: Use a `for' loop.
	* testsuite/poke.pkl/for-12.pk: New test.
	* testsuite/poke.id3v1/id3v1-6.pk: Expand test to exercise the
	set_genre method.
	* testsuite/Makefile.am (EXTRA_DIST): Update.

2020-11-24  Jose E. Marchesi  <jemarch@gnu.org>

	* libpoke/pkl-tab.y: Rework grammar to allow comma-separated lists
	of "simple" statements.
	* libpoke/pkl-pass.c (pkl_do_pass_1): Traverse all the statements
	in the tail.
	* libpoke/pkl-gen.c (pkl_gen_pr_loop_stmt): Support several
	statements in for loop.
	* doc/poke.texi (for): Adjust accordingly.
	* testsuite/poke.pkl/for-11.pk: New test.
	* testsuite/Makefile.am (EXTRA_DIST): Update.

2020-11-24  Jose E. Marchesi  <jemarch@gnu.org>

	* etc/poke.rec (Implement for-from-to-by loops): Removed as done.

2020-11-24  Jose E. Marchesi  <jemarch@gnu.org>

	* poke/pk-dump.pk (print_data): Use a `for' statement instead of a
	`while' statement.

2020-11-24  Jose E. Marchesi  <jemarch@gnu.org>

	* libpoke/pkl-tab.y (simple_stmt): New rule.
	(simple_stmt_opt): Likewise.
	(simple_declaration): Likewise.
	(stmt): Rules for FOR statement.
	* libpoke/pkl-ast.h (PKL_AST_LOOP_STMT_TAIL): Define.
	(PKL_AST_LOOP_STMT_DECL): Likewise.
	(PKL_AST_LOOP_STMT_KIND_WHILE): Define.
	(PKL_AST_LOOP_STMT_KIND_FOR): Likewise.
	(PKL_AST_LOOP_STMT_KIND_FOR_IN): Likewise.
	* libpoke/pkl-ast.c (pkl_ast_make_loop_stmt): Get `head' and
	`tail' arguments.
	* libpoke/pkl-pass.c (pkl_do_pass_1): subpass on new fields of
	loop statements.
	* libpoke/pkl-typify.c (pkl_typify1_loop_stmt): Handle lists of
	conditions.
	* libpoke/pkl-asm.c (PKL_ASM_ENV_FOR_LOOP): Define.
	(pkl_asm_for): New function.
	(pkl_asm_for_condition): Likewise.
	(pkl_asm_for_loop): Likewise.
	(pkl_asm_for_loop_tail): Likewise.
	(pkl_asm_for_endloop): Likewise.
	(pkl_asm_for_in): Renamed from pkl_asm_for.
	(pkl_asm_for_in_where): Renamed from pkl_asm_for_where.
	(pkl_asm_for_in_loop): Renamed from pkl_asm_for_loop.
	(pkl_asm_for_in_endloop): Renamed from pkl_asm_for_in_endloop.
	(PKL_ASM_ENV_FOR_IN_LOOP): Renamed form PKL_ASM_ENV_FOR_LOOP.
	* testsuite/poke.pkl/for-diag-1.pk: New test.
	* testsuite/poke.pkl/for-1.pk: Likewise.
	* testsuite/poke.pkl/for-2.pk: Likewise.
	* testsuite/poke.pkl/for-3.pk: Likewise.
	* testsuite/poke.pkl/for-4.pk: Likewise.
	* testsuite/poke.pkl/for-5.pk: Likewise.
	* testsuite/poke.pkl/for-6.pk: Likewise.
	* testsuite/poke.pkl/for-7.pk: Likewise.
	* testsuite/poke.pkl/for-8.pk: Likewise.
	* testsuite/poke.pkl/for-9.pk: Likewise.
	* testsuite/poke.pkl/for-10.pk: Likewise.
	* testsuite/Makefile.am (EXTRA_DIST): Update.
	* doc/poke.texi (for): New section.

2020-11-24  Jose E. Marchesi  <jemarch@gnu.org>

	* etc/poke.rec (Support mapping and constructing functions):
	Removed as done.

2020-11-24  Jose E. Marchesi  <jemarch@gnu.org>

	* jitter: submodule reference updated to v0.9.237.
	* etc/poke-default.css: Rename pvm_* styling classes to pvm-*.
	* libpoke/pvm-program.c (pvm_jitter_print_char): Add cast.

2020-11-24  Mohammad-Reza Nabipoor  <m.nabipoor@yahoo.com>

	* libpoke/pkl-ops.def: Remove unused definitions.
	* libpoke/pkl-lex.l: New token: `POWA`.
	* libpoke/pkl-tab.y: Use `POWA` in `ass_exp_op` rule.
	* testsuite/poke.pkl/powa-int-1.pk: New test.
	* testsuite/poke.pkl/powa-offset-1.pk: Likewise.
	* testsuite/Makefile.am (EXTRA_DIST): Add new tests.

2020-11-23  Jose E. Marchesi  <jemarch@gnu.org>

	* libpoke/pkl-tab.y (ass_exp_op): New rule.
	(stmt): Add rule for ass_exp statements.
	* testsuite/poke.pkl/xora-offset-1.pk: Likewise.
	* testsuite/poke.pkl/xora-int-1.pk: Likewise.
	* testsuite/poke.pkl/iora-offset-1.pk: Likewise.
	* testsuite/poke.pkl/iora-int-1.pk: Likewise.
	* testsuite/poke.pkl/banda-offset-1.pk: Likewise.
	* testsuite/poke.pkl/banda-int-1.pk: Likewise.
	* testsuite/poke.pkl/rla-offset-1.pk: Likewise.
	* testsuite/poke.pkl/rla-int-1.pk: Likewise.
	* testsuite/poke.pkl/sla-offset-1.pk: Likewise.
	* testsuite/poke.pkl/sla-int-1.pk: Likewise.
	* testsuite/poke.pkl/suba-int-1.pk: Likewise.
	* testsuite/poke.pkl/suba-offset-1.pk: Likewise.
	* testsuite/poke.pkl/adda-int-1.pk: Likewise.
	* testsuite/poke.pkl/adda-offset-1.pk: Likewise.
	* testsuite/poke.pkl/adda-string-1.pk: Likewise.
	* testsuite/poke.pkl/moda-offset-1.pk: Likewise.
	* testsuite/poke.pkl/moda-int-1.pk: Likewise.
	* testsuite/poke.pkl/diva-offset-diag-1.pk: Likewise.
	* testsuite/poke.pkl/diva-int-1.pk: Likewise.
	* testsuite/poke.pkl/mula-int-1.pk: New test.
	* testsuite/poke.pkl/mula-offset-1.pk: Likewise.
	* testsuite/poke.pkl/mula-string-1.pk: Likewise.
	* testsuite/Makefile.am (EXTRA_DIST): Add new tests.

2020-11-23  Jose E. Marchesi  <jemarch@gnu.org>

	* libpoke/libpoke.h (pk_disassemble_function_val): New function.
	* libpoke/libpoke.c (pk_disassemble_function_val): Likewise.
	(pk_disassemble_function): Rewrite in terms of
	disassemble_function_val.
	* poke/pk-cmd-vm.c (pk_cmd_vm_disas_fun): Use
	pk_disassemble_function_val.

2020-11-23  Jose E. Marchesi  <jemarch@gnu.org>

	* etc/poke-default.css: Add styling classes for PVM disassembly.

2020-11-23  Jose E. Marchesi  <jemarch@gnu.org>

	* libpoke/pvm-program.h: Prototypes for pvm_program_init and
	pvm_program_fini.
	* libpoke/pvm-program.c (pvm_program_init): New function.
	(pvm_program_fini): Likewise.
	(pvm_disassemble_program): Adapt to new API.
	(pvm_disassemble_program_nat): Likewise.
	* libpoke/pvm.c (pvm_init): Call pvm_program_init.
	(pvm_shutdown): Call pvm_program_fini.
	* libpoke/pvm-program.c (pvm_jitter_print_char): New function.
	(pvm_jitter_print_chars): Likewise.
	* libpoke/pvm.jitter: Adapt printers to new API.

2020-11-23  Jose E. Marchesi  <jemarch@gnu.org>

	* cfg.mk (sc_tests_listed_in_makefile_am): Rewrite to detect
	errors in both directions and be more efficient.
	* etc/hacking.org (List the test files in testsuite/Makefile.am):
	Update accordingly.
	* HACKING: Regenerate.

2020-11-23  Jose E. Marchesi  <jemarch@gnu.org>

	* libpoke/pkl-gen.c (pkl_gen_pr_func): Avoid generating a
	tor-fromr sequence in methods that do not get additional
	arguments.

2020-11-23  Jose E. Marchesi  <jemarch@gnu.org>

	* etc/poke.rec (Support for ++ and --): Removed as fixed.

2020-11-23  Jose E. Marchesi  <jemarch@gnu.org>

	* bootstrap: Updated from latest gnulib.
	* DEV-NEWS: Update.
	* bootstrap.conf (bootstrap_option_hook): New function.
	(bootstrap_print_option_usage_hook): Likewise.
	(bootstrap_post_import_hook): Honor --jitter-srcdir.

2020-11-23  Jose E. Marchesi  <jemarch@gnu.org>

	* libpoke/pkl-tab.y: The INC and DEC operators are
	non-associative.

2020-11-23  Jose E. Marchesi  <jemarch@gnu.org>

	* doc/poke.texi (Arithmetic Operators): Mention ++ and --.
	(Offset Operations): Likewise.

2020-11-23  Jose E. Marchesi  <jemarch@gnu.org>

	* libpoke/pkl-ast.h (PKL_AST_ORDER_PRE): Rename from PKL_AST_PRE.
	(PKL_AST_ORDER_POST): Rename from PKL_AST_POST.
	(PKL_AST_SIGN_INCR): Rename from PKL_AST_INCR.
	(PKL_AST_SIGN_DECR): Rename from PKL_AST_DECR.
	* libpoke/pkl-anal.c (pkl_analf_ps_incrdecr): Adapt accordingly.
	* libpoke/pkl-typify.c (pkl_typify1_ps_incrdecr): Likewise.
	* libpoke/pkl-tab.y: Likewise.
	* libpoke/pkl-gen.c (pkl_gen_pr_incrdecr): Likewise.
	* libpoke/pkl-ast.c (pkl_ast_make_incrdecr): Likewise.

2020-11-23  Jose E. Marchesi  <jemarch@gnu.org>

	* libpoke/pkl-tab.y (expression): Rules for pre{incr,decr}
	expressions.
	* testsuite/poke.pkl/preincr-1.pk: New test.
	* testsuite/poke.pkl/predecr-offset-1.pk: Likewise.
	* testsuite/poke.pkl/predecr-field-1.pk: Likewise.
	* testsuite/poke.pkl/predecr-diag-2.pk: Likewise.
	* testsuite/poke.pkl/predecr-diag-1.pk: Likewise.
	* testsuite/poke.pkl/predecr-aelem-1.pk: Likewise.
	* testsuite/poke.pkl/predecr-2.pk: Likewise.
	* testsuite/poke.pkl/predecr-1.pk: Likewise.
	* testsuite/poke.pkl/preincr-offset-1.pk: Likewise.
	* testsuite/poke.pkl/preincr-field-1.pk: Likewise.
	* testsuite/poke.pkl/preincr-diag-2.pk: Likewise.
	* testsuite/poke.pkl/preincr-diag-1.pk: Likewise.
	* testsuite/poke.pkl/preincr-aelem-1.pk: Likewise.
	* testsuite/poke.pkl/preincr-2.pk: Likewise.
	* testsuite/Makefile.am (EXTRA_DIST): Update.

2020-11-22  Jose E. Marchesi  <jemarch@gnu.org>

	* poke/pk-dump.pk (dump): Use ++/-- wherever appropriate.
	* pickles/color.pk (color_register): Likewise.
	* pickles/id3v1.pk (id3v1_search_genre): Likewise.
	* pickles/time.pk (ptime): Likewise.

2020-11-22  Jose E. Marchesi  <jemarch@gnu.org>

	* libpoke/pkl-ast.h (enum pkl_ast_code): Add PKL_AST_INCRDECR.
	(struct pkl_ast_incrdecr): New type.
	(PKL_AST_INCRDECR_ORDER): Define.
	(PKL_AST_INCRDECR_SIGN): Likewise.
	(PKL_AST_INCRDECR_EXP): Likewise.
	(PKL_AST_INCRDECR_ASS_STMT): Likewise.
	(PKL_AST_PRE): Likewise.
	(PKL_AST_POST): Likewise.
	(PKL_AST_INCR): Likewise.
	(PKL_AST_DECR): Likewise.
	(pkl_ast_make_incrdecr): New prototype.
	(pkl_ast_type_incr_step): Likewise.
	(union pkl_ast_node): New field incrdecr.
	* libpoke/pkl-ast.c (pkl_ast_make_incrdecr): New function.
	(pkl_ast_type_incr_step): Likewise.
	(pkl_ast_node_free): Handle PKL_AST_INCRDECR nodes.
	* libpoke/pkl-pass.c (pkl_do_pass_1): LIkewise.
	* libpoke/pkl-tab.y (primary): syntax for INCRDECR.
	* libpoke/pkl-typify.c (pkl_typify1_ps_incrdecr): New handler.
	(pkl_phase_typify1): Register handler.
	* libpoke/pkl-anal.c (pkl_analf_ps_incrdecr): New handler.
	(pkl_phase_analf): Install handler.
	* libpoke/pkl-trans.c (pkl_trans1_ps_incrdecr): New handler.
	(pkl_phase_trans1): Install handler.
	* libpoke/pkl-gen.c (pkl_gen_pr_incrdecr): New handler.
	(pkl_phase_gen): Install handler.
	* testsuite/poke.pkl/postincr-diag-1.pk: New test.
	* testsuite/poke.pkl/postincr-diag-2.pk: Likewise.
	* testsuite/poke.pkl/postincr-diag-3.pk: Likewise.
	* testsuite/poke.pkl/postincr-diag-4.pk: Likewise.
	* testsuite/poke.pkl/postincr-diag-5.pk: Likewise.
	* testsuite/poke.pkl/postdecr-diag-1.pk: Likewise.
	* testsuite/poke.pkl/postdecr-diag-2.pk: Likewise.
	* testsuite/poke.pkl/postdecr-diag-3.pk: Likewise.
	* testsuite/poke.pkl/postdecr-diag-4.pk: Likewise.
	* testsuite/poke.pkl/postdecr-diag-5.pk: Likewise.
	* testsuite/poke.pkl/postincr-1.pk: Likewise.
	* testsuite/poke.pkl/postincr-2.pk: Likewise.
	* testsuite/poke.pkl/postdecr-1.pk: Likewise.
	* testsuite/poke.pkl/postdecr-2.pk: Likewise.
	* testsuite/poke.pkl/postincr-offset-1.pk: Likewise.
	* testsuite/poke.pkl/postincr-offset-2.pk: Likewise.
	* testsuite/poke.pkl/postdecr-offset-1.pk: Likewise.
	* testsuite/poke.pkl/postdecr-offset-2.pk: Likewise.
	* testsuite/poke.pkl/postincr-aelem-1.pk: Likewise.
	* testsuite/poke.pkl/postdecr-aelem-2.pk: Likewise.
	* testsuite/poke.pkl/postdecr-field-1.pk: Likewise.
	* testsuite/poke.pkl/postincr-field-1.pk: Likewise.
	* testsuite/Makefile.am (EXTRA_DIST): Update.

2020-11-22  Jose E. Marchesi  <jemarch@gnu.org>

	* libpoke/pkl-gen.pks (struct_printer): Print struct elements
	offsets.
	* libpoke/pvm.jitter: Fix typo in comment.

2020-11-22  Jose E. Marchesi  <jemarch@gnu.org>

	* libpoke/pvm.jitter (printv): Remove.
	* libpoke/pkl-insn.def: Remove definition of PKL_INSN_PRINTV.
	* libpoke/pkl-asm.c (pkl_asm_insn_print): Do not use printv.
	* libpoke/pkl-typify.c (pkl_typify1_ps_print_stmt): Do not admit
	`any' values as arguments to printf.
	* testsuite/poke.pkl/printf-diag-17.pk: New test.
	* testsuite/Makefile.am (EXTRA_DIST): Update.

2020-11-22  Jose E. Marchesi  <jemarch@gnu.org>

	* libpoke/pkl-gen.pks (struct_printer): Use the styling class
	struct-field-name for struct field names.

2020-11-22  Jose E. Marchesi  <jemarch@gnu.org>

	* libpoke/pkl-anal.c (pkl_anal1_ps_var): Lift the restriction of
	methods not being able to refer to variables and functions defined
	in struct types.
	* testsuite/poke.pkl/struct-method-diag-4.pk: Remove test.
	* testsuite/poke.pkl/struct-method-diag-10.pk: Remove test.
	* testsuite/poke.pkl/struct-method-diag-11.pk: Remove test.
	* testsuite/poke.pkl/struct-method-diag-15.pk: Remove test.
	* testsuite/poke.pkl/scons-62.pk: New test.
	* testsuite/poke.pkl/scons-63.pk: Likewise.
	* testsuite/Makefile.am (EXTRA_DIST): Update.

2020-11-21  Jose E. Marchesi  <jemarch@gnu.org>

	* testsuite/Makefile.am (EXTRA_DIST): Add missing test.
	* etc/hacking.org (List the test files in testsuite/Makefile.am):
	Add recipe on how to get a list of test files missing from
	testsuite/Makefile.am.
	* HACKING: Regenerated.

2020-11-21  Jose E. Marchesi  <jemarch@gnu.org>

	* etc/hacking.org: New file.
	* HACKING: Generated from hacking.org.

2020-11-21  Jose E. Marchesi  <jemarch@gnu.org>

	* testsuite/Makefile.am (EXTRA_DIST): Remove non-existing tests
	poke.pkl/arrays-14.pk, poke.map/arrays-14.pk and
	poke.pkl/scons-diag-7.pk.

2020-11-21  Jose E. Marchesi  <jemarch@gnu.org>

	* testsuite/Makefile.am (EXTRA_DIST): Remove non-existing test
	acons-10.

2020-11-21  Jose E. Marchesi  <jemarch@gnu.org>

	* testsuite/poke.pkl/scons-61.pk: New test.
	* testsuite/Makefile.am (EXTRA_DIST): Add new test.
	* etc/poke.rec (Infamous constructor bug): Removed as fixed, yay.

2020-11-21  Jose E. Marchesi  <jemarch@gnu.org>

	* libpoke/pkl-ast.h (PKL_AST_FUNC_PROGRAM): Define.
	(struct pkl_ast_func): New field `program'.
	* libpoke/pkl-ast.c (pkl_ast_make_func): Initialize field
	`program'.
	* libpoke/pkl-gen.c (pkl_gen_ps_decl): Move handling of function
	declarations to the pre-order handler.
	(pkl_gen_pr_decl): Handle function declarations, and do not
	re-compile the initial if it is already compiled.

2020-11-21  Jose E. Marchesi  <jemarch@gnu.org>

	* testsuite/poke.libpoke/values.c (test_simple_values): Replace
	strcmp with STREQ.
	(STREQ): Define.

2020-11-21  Jose E. Marchesi  <jemarch@gnu.org>

	* libpoke/pkl-gen.c (pkl_gen_ps_struct_ref): Fix regression with
	anonymous fields.
	* testsuite/poke.pkl/sref-5.pk: New test.
	* testsuite/Makefile.am (EXTRA_DIST): Update.

2020-11-21  Jose E. Marchesi  <jemarch@gnu.org>

	* etc/poke.rec (pretty-printer to pretty-printer calls dont work):
	Removed as fixed.
	(Exceptions raised in pretty-printers are not propagated):
	Likewise.

2020-11-21  Jose E. Marchesi  <jemarch@gnu.org>

	* libpoke/pkl-gen.pks (indent_if_tree): New macro.
	(struct_printer): Acknowledge tree mode.
	* libpoke/pkl-gen.c (pkl_gen_pr_print_stmt): Acknowledge mode and
	depth from printf statements.
	* libpoke/pvm.jitter: Fix stack handling of the popo*
	instructions.
	* testsuite/poke.pkl/printf-value-14.pk: Adapt test.

2020-11-21  Jose E. Marchesi  <jemarch@gnu.org>

	* libpoke/pvm.jitter (indent): New instruction.
	* libpoke/pkl-insn.def (PKL_INSN_INDENT): Define.
	* libpoke/pkl-gen.c (pkl_gen_pr_print_stmt): Pass an initial depth
	to the printer.
	* libpoke/pkl-gen.pks (offset_printer): Handle a depth argument.
	(string_printer): Likewise.
	(array_printer): Likewise.
	(struct_printer): Likewise.
	(integral_printer): Likewise.
	* libpoke/pkl-gen.c (pkl_gen_pr_type_function): Likewise.
	* testsuite/poke.pkl/printf-value-14.pk: New test.
	* testsuite/Makefile.am (EXTRA_DIST): Update.

2020-11-20  Jose E. Marchesi  <jemarch@gnu.org>

	* libpoke/pvm.jitter (pushopp): New instruction.
	(popopp): Likewise.
	(srefnt): Likewise.
	(tysctn): Likewise.
	* libpoke/pkl-insn.def: Define PKL_INSN_PUSHOPP,
	PKL_INSN_POPOPP, PKL_INSN_SREFMNT, PKL_INSN_TYSCTN.
	* libpoke/pkl-ast.c (pkl_ast_make_struct_type): Initialize struct
	printer.
	(pkl_ast_node_free): Deregister GC roots from the printer.
	* libpoke/pkl-ast.h (PKL_AST_TYPE_S_PRINTER): Define.
	* libpoke/pkl-gen.c (pkl_gen_pr_type_struct): Implement printer.
	(pkl_gen_pr_print_stmt): Remove legacy code.
	* libpoke/pkl-gen.pks (struct_printer): New function.
	* testsuite/poke.pkl/struct-pretty-print-7.pk: New test.
	* testsuite/poke.pkl/printf-value-13.pk: Likewise.

2020-11-20  Jose E. Marchesi  <jemarch@gnu.org>

	* libpoke/ras: Support \" in RAS strings.
	* libpoke/pkl-ast.h (PKL_AST_TYPE_A_PRINTER): Define.
	(array): New field `printer' for arrays.
	* libpoke/pkl-ast.c (pkl_ast_make_array_type): Initialize the
	printer.
	(pkl_ast_node_free): Remove GC roots for array printers.
	* libpoke/pkl-gen.c (pkl_gen_pr_type_array): Implement printer.
	(pkl_gen_pr_print_stmt): Subpass in the array type in printer
	mode.
	(pkl_gen_ps_type_string): Use the string_printer RAS macro.
	* libpoke/pkl-gen.pks (array_printer): New function.
	(string_printer): New macro.
	(print_boffset): Likewise.
	* testsuite/poke.pkl/printf-value-10.pk: New test.
	* testsuite/poke.pkl/printf-value-11.pk: Likewise.
	* testsuite/poke.pkl/printf-value-12.pk: Likewise.
	* testsuite/Makefile.am (EXTRA_DIST): Update.

2020-11-20  Jose E. Marchesi  <jemarch@gnu.org>

	* libpoke/pvm.h: Prototype for pvm_env_toplevel.
	* libpoke/pvm-env.c (pvm_env_toplevel): New function.
	* libpoke/pvm.jitter (pushtopvar): New instruction.
	* libpoke/pkl-insn.def: Define PKL_INSN_PUSHTOPVAR.
	* libpoke/pkl-asm.c (pkl_asm_call): Use the `pushtopvar'
	instruction.

2020-11-20  Jose E. Marchesi  <jemarch@gnu.org>

	* common/pk-utils.c (pk_print_binary): Do not print prefixes.
	* libpoke/pvm-val.c (pvm_print_val_1): Print prefix 0b before
	calling pk_print_binary.
	* testsuite/poke.map/maps-int-structs-11.pk: Adapt test
	accordingly.
	* testsuite/poke.map/maps-int-structs-6.pk: Likewise.
	* testsuite/poke.pkl/printf-binary-1.pk: Likewise.
	* testsuite/poke.pkl/printf-binary-2.pk: Likewise.
	* testsuite/poke.pkl/printf-binary-3.pk: Likewise.
	* testsuite/poke.pkl/printf-binary-4.pk: Likewise.
	* testsuite/poke.pkl/cast-integers-11.pk: Likewise.
	* testsuite/poke.pkl/cast-integers-10.pk: Likewise.
	* testsuite/poke.pkl/printf-value-6.pk: Likewise.

2020-11-20  Jose E. Marchesi  <jemarch@gnu.org>

	* libpoke/ras: Fix .call pseudo-op.
	* libpoke/pkl-rt.pk (_pkl_unit_str): New function.
	(_pkl_base_prefix): Likewise.
	(_pkl_unit_bit): Define.
	(_pkl_unit_nibble): Likewise.
	(_pkl_unit_kilobit): Likewise.
	(_pkl_unit_kilobyte): Likewise.
	(_pkl_unit_megabit): Likewise.
	(_pkl_unit_megabyte): Likewise.
	(_pkl_unit_gigabit): Likewise.
	(_pkl_unit_gigabyte): Likewise.
	(_pkl_unit_kibibits): Likewise.
	(_pkl_unit_kibibytes): Likewise.
	(_pkl_unit_mebibits): Likewise.
	(_pkl_unit_mebibytes): Likewise.
	(_pkl_unit_gigibits): Likewise.
	(_pkl_unit_gigibytes): Likewise.
	* libpoke/pkl-gen.pks (print_int_suffix): Likewise.
	(integral_printer): New macro.
	(offset_printer): Likewise.
	* libpoke/pkl-gen.c (pkl_gen_ps_type_integral): Generate code for
	value printer.
	(pkl_gen_pr_type_function): Likewise.
	(pkl_gen_pr_type_offset): Likewise.
	(pkl_gen_ps_type_string): Likewise.
	(pkl_gen_pr_print_stmt): Subpass in printer for integral, offset,
	string and function types.
	* testsuite/poke.pkl/printf-value-1.pk: Adjust test.
	* testsuite/poke.pkl/printf-value-2.pk: Likewise.
	* testsuite/poke.pkl/printf-value-3.pk: Likewise.xo
	* testsuite/poke.pkl/printf-value-6.pk: New test.
	* testsuite/poke.pkl/printf-value-7.pk: Likewise.
	* testsuite/poke.pkl/printf-value-8.pk: Likewise.

2020-11-20  Jose E. Marchesi  <jemarch@gnu.org>

	* libpoke/pvm.jitter (PVM_PRINTI): Get a BASE argument.
	(PVM_PRINTL): Likewise.
	(printi): Get BASE from the stack.
	(printiu): Likewise.
	(printl): Likewise.
	(printlu): Likewise.
	* libpoke/pkl-insn.def: Change macro-instruction `print' to not
	get the output base as an argument.
	* libpoke/pkl-asm.c (pkl_asm_insn): Adapt accordingly.
	(pkl_asm_insn_print): Likewise.
	* libpoke/pkl-gen.c (pkl_gen_pr_print_stmt): Adapt code generator
	accordingly.

2020-11-20  Jose E. Marchesi  <jemarch@gnu.org>

	* libpoke/pvm.jitter (pushob): New instruction.
	(popob): Likewise.
	(pushom): Likewise.
	(popom): Likewise.
	(pushoo): Likewise.
	(popoo): Likewise.
	(pushoi): Likewise.
	(popoi): Likewise.
	(pushod): Likewise.
	(popod): Likewise.
	(pushoac): Likewise.
	(popoac): Likewise.
	* libpoke/pkl-insn.def (PKL_INSN_PUSHOB): Define.
	(PKL_INSN_POPOB): Likewise.
	(PKL_INSN_PUSHOM): Likewise.
	(PKL_INSN_POPOB): Likewise.
	(PKL_INSN_PUSHOO): Likewise.
	(PKL_INSN_POPOO): Likewise.
	(PKL_INSN_PUSHOI): Likewise.
	(PKL_INSN_POPOI): Likewise.
	(PKL_INSN_PUSHOD): Likewise.
	(PKL_INSN_POPOD): Likewise.
	(PKL_INSN_PUSHOAC): Likewise.
	(PKL_INSN_POPOAC): Likewise.

2020-11-20  Mohammad-Reza Nabipoor  <m.nabipoor@yahoo.com>

	* libpoke/libpoke.c (pk_compiler_new): Make sure all feilds of
	`term_if` are non-NULL.
	* libpoke/pk-val.c (pk_make_offset): Reject zero value for units.
	* testsuite/poke.libpoke/values.c: Add include `assert.h`.
	(test_simple_values): Add more tests to cover all simple data
	types: signed/unsigned ints, strings and offsets.
	* testsuite/poke.libpoke/api.c: New test file to unit test libpoke
	public API.
	* testsuite/poke.libpoke/Makefile.am: Add build rules for `api` test.
	* testsuite/poke.libpoke/libpoke.exp: Add support for new `api`
	executable.

2020-11-20  Mohammad-Reza Nabipoor  <m.nabipoor@yahoo.com>

	* bootstrap.conf (gnu_modules): Add module `read-file`.
	* testsuite/poke.libpoke/values.c: Add includes: `stdint.h`, `err.h`,
	`read-file.h`.
	(compile_initial_poke_code): Remove.
	(compile_poke_expressions): Likewise.
	(test_pk_val_equal_p): Refactored to use `asprintf` for string
	manipulation. Use memory buffers instead of `FILE`s.
	(test_pk_equal_file): Renamed to `testcase_pk_val_equal_p` with new
	interface to deal with memory buffers instead of `FILE`s.

2020-11-20  Mohammad-Reza Nabipoor  <m.nabipoor@yahoo.com>

	* libpoke/pkl-lex.l (STRING): Fix regexp to escape backslash and
	newline characters correctly.
	* libpoke/pkl-trans.c (pkl_trans1_ps_string): Ignore `\<NEWLINE>`
	escape sequence.
	* testsuite/Makefile.am (EXTRA_DIST): Add new tests.
	* testsuite/poke.pkl/string-diag-2.pk: New test.
	* testsuite/poke.pkl/string-multiline-1.pk: Likewise.
	* testsuite/poke.pkl/string-multiline-diag-1.pk: Likewise.

2020-11-19  Jose E. Marchesi  <jemarch@gnu.org>

	* libpoke/pvm.h: Prototype for pvm_call_closure.
	* libpoke/pvm.c (pvm_call_closure): New function.
	* libpoke/pvm-val.c (pvm_call_pretty_printer): Use
	pvm_call_closure.

2020-11-19  Jose E. Marchesi  <jemarch@gnu.org>

	* libpoke/pvm.c (pvm_initialize_state): New function.
	(pvm_init): Use pvm_initialize_state.
	* testsuite/poke.pkl/struct-pretty-print-6.pk: New test.
	* testsuite/Makefile.am (EXTRA_DIST): Add new test.

2020-11-19  Jose E. Marchesi  <jemarch@gnu.org>

	* libpoke/pkl-ast.c (pkl_ast_type_is_complete): Function types are
	always complete.
	* libpoke/pkl-typify.c (pkl_typify1_ps_struct_type_field): Allow
	function types in struct fields.
	(pkl_typify1_ps_type): Determine completeness also in function
	types.
	* libpoke/pkl-asm.c (pkl_asm_insn_cmp): Support function values.
	* testsuite/poke.pkl/offsets-13.pk: Likewise.
	* testsuite/poke.pkl/scons-diag-7.pk: Likewise.
	* testsuite/poke.pkl/scons-58.pk: New test.
	* testsuite/poke.pkl/scons-59.pk: LIkewise.
	* testsuite/poke.pkl/scons-60.pk: Likewise.
	* testsuite/poke.pkl/sref-func-1.pk: New test.
	* testsuite/poke.pkl/sref-func-2.pk: Likewise.
	* testsuite/poke.pkl/sref-func-3.pk: Likewise.
	* testsuite/poke.pkl/sref-func-4.pk: Likewise.
	* testsuite/poke.map/map-struct-fun-1.pk: Likewise.
	* testsuite/poke.map/map-struct-fun-2.pk: Likewise.
	* testsuite/poke.map/map-struct-fun-3.pk: Likewise.
	* etc/poke.rec (Support setting methods in struct constructors):
	Remove as no longer needed.
	(Support Poke IOS Translators): This no longer depends on other
	tasks

2020-11-19  Jose E. Marchesi  <jemarch@gnu.org>

	* configure.ac: Use gl_PROG_BISON instead of gl_BISON.
	* libpoke/Makefile.am (libpoke_la_SOURCES): Replace pkl-tab.y with
	pkl-tab.c.
	(pkl-tab.h pkl-tab.c): New rule to invoke bison.
	(BUILT_SOURCES): Declare pkl-tab.h and pkl-tab.c as built sources.
	(EXTRA_DIST): Distribute pkl-tab.y.
	(MOSTLYCLEANFILES): Add bison generated files.

	* poke/Makefile.am (poke_SOURCES): Replace pk-map-tab.y with
	pk-map-tab.c.
	(BUILT_SOURCES): Add pk-map-tab.c.
	(EXTRA_DIST): Add pk-map-tab.y
	(pk-map-tab.h pk-map-tab.c): New rule to invoke bison.
	(MOSTLYCLEANFILES): Add bison generated files.

2020-11-18  Jose E. Marchesi  <jemarch@gnu.org>

	* libpoke/ras: Skip empty lines, and lines composed only by blank
	characters, when reading the output of cpp.

2020-11-18  Jose E. Marchesi  <jemarch@gnu.org>

	* testsuite/poke.map/func-map-2.pk: Fix syntax in test.

2020-11-18  Jose E. Marchesi  <jemarch@gnu.org>

	* libpoke/pkl-ast.c (pkl_ast_type_mappable_p): Function types are
	now mappable.
	* libpoke/pkl-typify.c (pkl_typify1_ps-attr): Function values
	accept the 'size attribute.
	* libpoke/pkl-gen.c (pkl_gen_pr_type_function): New handler.
	(pkl_phase_gen): Install handler.
	* testsuite/poke.pkl/attr-size-14.pk: Likewise.
	* testsuite/poke.pkl/map-diag-1.pk: Remove.
	* testsuite/poke.pkl/unmap-diag-1.pk: Likewise.
	* testsuite/poke.map/func-map-1.pk: New test.
	* testsuite/poke.map/func-map-2.pk: Likewise.
	* testsuite/poke.map/func-map-3.pk: Likewise.
	* testsuite/poke.map/func-map-4.pk: Likewise.
	* testsuite/poke.map/func-map-5.pk: Likewise.
	* testsuite/Makefile.am (EXTRA_DIST): Update.
	* doc/poke.texi (Function Attributes): New section.

2020-11-18  Jose E. Marchesi  <jemarch@gnu.org>

	* libpoke/pkl-insn.def: Remove spaces before and after arguments
	to accommodate some weird cpp implementations.

2020-11-18  Mohammad-Reza Nabipoor  <m.nabipoor@yahoo.com>

	* libpoke/libpoke.h (PK_ENOMEM): Define.
	(PK_EEOF): Likewise.
	(PK_EINVAL): Likewise.
	(PK_IOS_OK): Remove.
	(PK_IOS_ERROR): Likewise.
	(PK_IOS_NOID): Define.
	(pk_errno): New prototype.
	(pk_compile_file): Use `PK_OK`/`PK_ERROR` for return value.
	(pk_compile_buffer): Likewise.
	(pk_compile_satement): Likewise.
	(pk_compile_expression): Likewise.
	(pk_load): Likewise.
	(pk_defvar): Likewise.
	(pk_call): Likewise.
	(pk_ios_open): Use `PK_IOS_NOID` as invalid return value.
	* libpoke/libpoke.c (struct pk_compiler): Add new field: `status`.
	(PK_RETURN): Define.
	(pk_errno): New function.
	(pk_compile_file): Update `status` filed of `pk_compiler` and return
	that.
	(pk_compile_buffer): Likewise.
	(pk_compile_statement): Likewise.
	(pk_compile_expression): Likewise.
	(pk_load): Likewise.
	(pk_disassemble_function): Likewise.
	(pk_disassemble_expression): Likewise.
	(pk_defvar): Likewise.
	(pk_call): Likewise.
	(pk_set_quiet_p): Update `status` field of `pk_compiler`.
	(pk_set_lexical_cuckolding_p): Likewise.
	(pk_set_alien_toekn_fn): Likewise.
	(pk_ios_cur): Likewise.
	(pk_ios_set_cur): Likewise.
	(pk_ios_search): Likewise.
	(pk_ios_search_by_id): Likewise.
	(pk_ios_close): Likewise.
	(pk_ios_map): Likewise.
	(pk_decl_map): Likewise.
	(pk_decl_p): Likewise.
	(pk_decl_val): Likewise.
	(pk_obase): Likewise.
	(pk_set_obase): Likewise.
	(pk_oacutoff): Likewise.
	(pk_set_oacutoff): Likewise.
	(pk_odepth): Likewise.
	(pk_set_odepth): Likewise.
	(pk_oindent): Likewise.
	(pk_set_oindent): Likewise.
	(pk_omaps): Likewise.
	(pk_set_omaps): Likewise.
	(pk_omode): Likewise.
	(pk_set_omode): Likewise.
	(pk_error_on_warning): Likewise.
	(pk_set_error_on_warning): Likewise.
	(pk_endian): Likewise.
	(pk_set_endian): Likewise.
	(pk_nenc): Likewise.
	(pk_set_nenc): Likewise.
	(pk_pretty_print): Likewise.
	(pk_set_pretty_print): Likewise.
	(pk_print_val): Likewise.
	(pk_ios_open): Update the `status` field of `pk_compiler`. Return
	`PK_IOS_NOID` on failure.
	* poke/pk-cmd-ios.c (pk_cmd_file): Use `PK_IOS_NOID` instead of
	`PK_IOS_ERROR`.
	* poke/pk-ios.c (pk_open_ios): Likewise.
	(pk_cmd_mem): Likewise.
	(pk_cmd_nbd): Likewise.
	(pk_cmd_load_file): Check `pk_compile_file` against `PK_OK`.
	* poke/pk-cmd.c (pk_cmd_exec): Check `pk_compile_buffer` and
	`pk_compile_statement` against `PK_OK`.
	* poke/pk-map.c (pk_map_load_parsed_map): Check `pk_compile_buffer`
	and `pk_compile_expression` against `PK_OK`.
	* poke/poke.c (parse_args_2): Check `pk_compile_file` against
	`PK_OK`. Check `pk_open_ios` against `PK_IOS_NOID`.
	* testsuite/poke.libpoke/values.c (compile_initial_poke_code): Use
	`PK_OK`/`PK_ERROR` as return value. Check `pk_compile_expression`
	against `PK_OK`.
	* testsuite/poke.mi-json/mi-json.c (compile_poke_expression): Likewise.
	(compile_initial_poke_code): Use `PK_OK`/`PK_ERROR` as return value.
	(test_json_file): Check `pk_compile_expression` against `PK_OK`.

2020-11-18  Jose E. Marchesi  <jemarch@gnu.org>

	* testsuite/poke.pkl/redef-1.pk: Remove trailing whitespaces.

2020-11-18  Jose E. Marchesi  <jemarch@gnu.org>

	* HACKING (Building Release Tarballs): Remove obsolete comment
	regarding stale files in testsuite/**.

2020-11-18  Jose E. Marchesi  <jemarch@gnu.org>

	* libpoke/pkl-env.c (pkl_env_register): Adjust call to
	register_decl accordingly.
	(register_decl): Allow "redefining" variables, functions and
	types.
	* testsuite/poke.pkl/redef-1.pk: New test.
	* testsuite/poke.pkl/redef-2.pk: Likewise.
	* testsuite/poke.pkl/redef-3.pk: Likewise.
	* testsuite/poke.pkl/redef-diag-1.pk: Likewise.
	* testsuite/poke.pkl/redef-diag-2.pk: Likewise.
	* testsuite/poke.pkl/redef-diag-3.pk: Likewise.
	* testsuite/Makefile.am (EXTRA_DIST): Add new tests.
	* etc/poke.rec (Allow re-definitions of variables and units at the
	top-level): Remove as done.

2020-11-18  Jose E. Marchesi  <jemarch@gnu.org>

	* etc/poke.rec (Allow re-definitions of variables and units at the
	top-level): New entry.
	(Factorize promotion of expressions in promo): Likewise.

2020-11-18  Jose E. Marchesi  <jemarch@gnu.org>

	* etc/poke.rec (Support mapping functions): New task.
	(Support functions in struct fields): Likewise.

2020-11-18  Jose E. Marchesi  <jemarch@gnu.org>

	* libpoke/pkl-ast.h (PKL_AST_CONS_KIND_STRING): Remove.
	* libpoke/pkl-typify.c (pkl_typify1_ps_cons): Remove string
	constructor stuff.
	* libpoke/pkl-anal.c (pkl_anal1_ps_cons): Likewise.
	* libpoke/pkl-tab.y (expression): Likewise.
	* testsuite/poke.pkl/strcons-diag-1.pk: Revove test.
	* testsuite/poke.pkl/strcons-diag-2.pk: Likewise.
	* testsuite/Makefile.am (EXTRA_DIST): Update accordingly.
	* testsuite/poke.pkl/acons-diag-6.pk: Update error message.
	* testsuite/poke.pkl/acons-diag-7.pk: Update error message.

2020-11-18  Jose E. Marchesi  <jemarch@gnu.org>

	* libpoke/pkl-gen.c (pkl_gen_ps_continue_stmt): Fix typo.
	* libpoke/pkl-ast.c (pkl_ast_finish_breaks_1): Take into account
	lexical frames introduced by the "catch" block when it gets an
	argument.
	* testsuite/poke.pkl/continue-for-3.pk: New test.
	* testsuite/Makefile.am: Add new test.

2020-11-17  Jose E. Marchesi  <jemarch@gnu.org>

	* libpoke/pkl-tab.y: Syntax for string constructors.
	* libpoke/pkl-ast.h (PKL_AST_CONS_KIND_STRING): Define.
	(PKL_AST_CONS_KIND_UNKNOWN): Likewise.
	* libpoke/pkl-ast.c (pkl_ast_make_cons): Accep string kind in
	constructors.
	(pkl_ast_chain_length): New function.
	(pkl_typify1_ps_cons): Handle string constructors.
	* libpoke/pkl-anal.c (pkl_anal1_ps_cons): New handler.
	(pkl_phase_anal1): Install handler.
	* testsuite/poke.pkl/acons-diag-6.pk: Adapt to new error messages.
	* testsuite/poke.pkl/acons-diag-7.pk: Adapt to new error messages.
	* testsuite/poke.pkl/acons-diag-8.pk: Likewise.
	* testsuite/poke.pkl/acons-diag-9.pk: New test.
	* testsuite/poke.pkl/strcons-diag-1.pk: New test.
	* testsuite/poke.pkl/strcons-diag-2.pk: Likewise.
	* testsuite/Makefile.am: Add new tests.

2020-11-17  Jose E. Marchesi  <jemarch@gnu.org>

	* libpoke/pkl-ast.h: Unify acons and scons AST nodes.
	* libpoke/pkl-ast.c: Likewise.
	* libpoke/pkl-pass.c: Likewise.
	* libpoke/pkl-tab.y: Likewise.
	* libpoke/pkl-typify.c: Likewise.
	* libpoke/pkl-promo.c: Likewise.
	* libpoke/pkl-gen.c: Likewise.

2020-11-17  Jose E. Marchesi  <jemarch@gnu.org>

	* libpoke/pkl-tab.y (expression): Add rules for array
	constructors.
	(resolve_typename): New function.
	* libpoke/pkl-ast.h (enum pkl_ast_code): New entry PKL_AST_ACONS.
	(PKL_AST_ACONS_TYPE): Define.
	(PKL_AST_ACONS_VALUE): Define.
	(struct pkl_ast_acons): New struct.
	(union pkl_ast_node): New field acons.
	* libpoke/pkl-ast.c (pkl_ast_make_acons): New function.
	(pkl_ast_node_free): Handle array constructors.
	(pkl_ast_print_1): Likewise.
	* libpoke/pkl-pass.c (pkl_do_pass_1): Likewise.
	* libpoke/pkl-typify.c (pkl_typify1_ps_acons): New handler.
	(pkl_phase_typify1): Register handler.
	* libpoke/pkl-promo.c (pkl_promo_ps_acons): New handler.
	(pkl_phase_promo): Install handler.
	* libpoke/pkl-gen.c (pkl_gen_ps_acons): New handler.
	(pkl_phase_gen): Install handler.
	* libpoke/pkl-insn.def: Define macro-instruction PKL_INSN_AFILL.
	* libpoke/pkl-asm.c (pkl_asm_insn_afill): Define.
	(pkl_asm_insn): Dispatch PKL_INSN_AFILL.
	* libpoke/pkl-asm.pks (afill): New macro.
	* testsuite/poke.pkl/acons-diag-1.pk: New test.
	* testsuite/poke.pkl/acons-diag-2.pk: Likewise.
	* testsuite/poke.pkl/acons-diag-3.pk: Likewise.
	* testsuite/poke.pkl/acons-diag-4.pk: Likewise.
	* testsuite/poke.pkl/acons-diag-5.pk: Likewise.
	* testsuite/poke.pkl/acons-diag-6.pk: Likewise.
	* testsuite/poke.pkl/acons-diag-7.pk: Likewise.
	* testsuite/poke.pkl/acons-diag-8.pk: Likewise.
	* testsuite/poke.pkl/acons-1.pk: Likewise.
	* testsuite/poke.pkl/acons-2.pk: Likewise.
	* testsuite/poke.pkl/acons-3.pk: Likewise.
	* testsuite/poke.pkl/acons-4.pk: Likewise.
	* testsuite/poke.pkl/acons-5.pk: Likewise.
	* testsuite/poke.pkl/acons-6.pk: Likewise.
	* testsuite/poke.pkl/acons-7.pk: Likewise.
	* testsuite/poke.pkl/acons-8.pk: Likewise.
	* testsuite/poke.pkl/acons-9.pk: Likewise.
	* testsuite/poke.pkl/acons-10.pk: Likewise.
	* testsuite/poke.pkl/acons-11.pk: Likewise.
	* testsuite/poke.pkl/acons-12.pk: Likewise.
	* testsuite/Makefile.am (EXTRA_DIST): Add new tests.
	* doc/poke.texi (Array Constructors): New section.
	* etc/poke.rec (Provide syntax for array constructors): Remove as
	done.

2020-11-17  Jose E. Marchesi  <jemarch@gnu.org>

	* etc/poke.rec (Document "default values" in the poke manual): New
	entry.

2020-11-16  Jose E. Marchesi  <jemarch@gnu.org>

	* etc/poke.rec (Assign to sref with data integrity): Remove as
	done.
	(Implement {beginning,end}-of-defun-function functions in
	poke-mode): New entry.
	(Implement add-log-current-defun-function in poke-mode): Likewise.

2020-11-16  Jose E. Marchesi  <jemarch@gnu.org>

	* libpoke/pkl-ast.h (PKL_AST_TRIMMER_ADDEND): Define.
	(struct pkl_ast_trimmer): New field `addend'.
	* libpoke/pkl-ast.c (pkl_ast_make_trimmer): Handle ADDEND.
	(pkl_ast_node_free): Likewise.
	(pkl_ast_print_1): Likewise.
	* libpoke/pkl-pass.c (pkl_do_pass_1): Likewise.
	* libpoke/pkl-tab.y: New token RANGEA.
	(primary): Rule for array trims based on +:.
	* libpoke/pkl-lex.l: Handle RANGEA tokens.
	* libpoke/pkl-gen.c (pkl_gen_pr_trimmer): Renamed from
	pkl_gen_ps_trimmer, and adapted accordingly.
	* libpoke/pkl-asm.pks (atrim): The TO boundaries in array trims
	are now open.
	* libpoke/pvm.jitter (substr): Likewise.
	* testsuite/poke.map/maps-trims-1.pk: Adjust test accordingly.
	* testsuite/poke.map/trimmed-map-2.pk: Likewise.
	* testsuite/poke.map/trimmed-map-3.pk: Likewise.
	* testsuite/poke.map/trimmed-map-4.pk: Likewise.
	* testsuite/poke.pkl/getenv-1.pk: Likewise.
	* testsuite/poke.pkl/strings-esc-2.pk: Likewise.
	* testsuite/poke.pkl/trim-10.pk: Likewise.
	* testsuite/poke.pkl/trim-11.pk: Likewise.
	* testsuite/poke.pkl/trim-13.pk: Likewise.
	* testsuite/poke.pkl/trim-15.pk: Likewise.
	* testsuite/poke.pkl/trim-19.pk: Likewise.
	* testsuite/poke.pkl/trim-20.pk: Likewise.
	* testsuite/poke.pkl/trim-21.pk: Likewise.
	* testsuite/poke.pkl/trim-22.pk: Likewise.
	* testsuite/poke.pkl/trim-23.pk: Likewise.
	* testsuite/poke.pkl/trim-25.pk: Likewise.
	* testsuite/poke.pkl/trim-26.pk: Likewise.
	* testsuite/poke.pkl/trim-27.pk: New test.
	* testsuite/poke.pkl/trim-28.pk: Likewise.
	* testsuite/poke.pkl/trim-29.pk: Likewise.
	* testsuite/poke.pkl/trim-30.pk: Likewise.
	* testsuite/poke.pkl/trim-31.pk: Likewise.
	* testsuite/poke.pkl/trim-32.pk: Likewise.
	* testsuite/poke.pkl/trim-33.pk: Likewise.
	* testsuite/poke.pkl/trim-34.pk: Likewise.
	* testsuite/poke.pkl/trim-35.pk: Likewise.
	* testsuite/Makefile.am (EXTRA_DIST): Add new tests.
	* doc/poke.texi (Modifying SBM Images): Update accordingly.
	(Array Trimming): Likewise.
	* etc/poke.rec (Use semi-open ranges in array trims): Removed as
	done.

2020-11-16  Jose E. Marchesi  <jemarch@gnu.org>

	* pickles/elf.pk (Elf64_Ehdr): Initialize e_version to EV_CURRENT.
	(EV_NONE): Define.
	(EV_CURRENT): Likewise.
	(EM_NONE): Likewise.
	(EM_RISCV): Likewise.
	(ET_NONE): Likewise.
	(ET_REL): Likewise.
	(ET_EXEC): Likewise.
	(ET_DYN): Likewise.
	(ET_CORE): Likewise.

2020-11-16  Jose E. Marchesi  <jemarch@gnu.org>

	* etc/poke-ras-mode.el (poke-ras-log-current-entity): New
	function.
	(poke-ras-mode): Add function to add-log hook.

2020-11-16  Jose E. Marchesi  <jemarch@gnu.org>

	* etc/poke.rec (Use semi-open ranges in array trims): New task.

2020-11-16  Mohammad-Reza Nabipoor  <m.nabipoor@yahoo.com>

	* testsuite/lib/poke.exp (verify_exit_status): New proc.
	(verified_host_execute): Likewise.
	* testsuite/poke.libpoke/libpoke.exp: Replace `host_execute` with
	`verified_host_execute`.
	* testsuite/poke.mi-json/mi-json.exp: Likewise.

2020-11-15  Jose E. Marchesi  <jemarch@gnu.org>

	* poke/pk-cmd-misc.c (pk_cmd_jmd): New quote.

2020-11-15  Jose E. Marchesi  <jemarch@gnu.org>

	* libpoke/pvm.jitter (time): Use pvm_make_array.
	* testsuite/poke.time/gettimeofday-1.pk: New test.
	* testsuite/Makefile.am (EXTRA_DIST): Add new test.

2020-11-15  Jose E. Marchesi  <jemarch@gnu.org>

	* testsuite/poke.pkl/scons-union-11.pk: New test.
	* testsuite/Makefile.am (EXTRA_DIST): Add new test.

2020-11-15  Jose E. Marchesi  <jemarch@gnu.org>

	* etc/poke.rec (Union constructors are not aware of field
	coupling): This is fixed.  Remove.

2020-11-15  Jose E. Marchesi  <jemarch@gnu.org>

	* libpoke/pkl-typify.c (pkl_typify1_ps_scons): Union constructors
	require exactly one field initializer.
	* libpoke/pkl-gen.pks (struct_constructor): Implement new
	semantics for union construction.
	* testsuite/poke.pkl/scons-56.pk: Adjust test.
	* testsuite/poke.pkl/scons-union-1.pk: Likewise.
	* testsuite/poke.pkl/scons-union-2.pk: Likewise.
	* testsuite/poke.pkl/scons-union-3.pk: LIkewise.
	* testsuite/poke.pkl/scons-union-5.pk: Likewise.
	* testsuite/poke.pkl/scons-union-6.pk: Likewise.
	* testsuite/poke.pkl/scons-union-7.pk: Likewise.
	* testsuite/poke.pkl/scons-union-8.pk: Likewise
	* testsuite/poke.pkl/scons-union-2.pk: Likewise.
	* testsuite/poke.pkl/scons-union-10.pk: New test.
	* testsuite/poke.pkl/scons-union-diag-1.pk: New test.
	* testsuite/poke.pkl/scons-union-9.pk: Likewise.
	* testsuite/poke.pkl/ass-union-int-1.pk: Likewise.
	* testsuite/poke.pkl/ass-union-int-2.pk: Likewise.
	* testsuite/Makefile.am (EXTRA_DIST): Update tests.
	* doc/poke.texi (Union Constructors): New section.

2020-11-15  Jose E. Marchesi  <jemarch@gnu.org>

	* libpoke/pvm-val.c (pvm_make_struct): Initialize the bit-offset
	of the struct to 0#B.

2020-11-15  Jose E. Marchesi  <jemarch@gnu.org>

	* libpoke/libpoke.h: Fix pk_array_insert_elem prototype.

2020-11-14  Jose E. Marchesi  <jemarch@gnu.org>

	* libpoke/pvm-val.c (pvm_make_array): Initialize the bit-offset of
	the array to 0#B.

2020-11-14  Jose E. Marchesi  <jemarch@gnu.org>

	* etc/poke.rec (Union constructors are not aware of field
	coupling): Add more details.

2020-11-14  Jose E. Marchesi  <jemarch@gnu.org>

	* etc/poke.rec (Union constructors are not aware of field
	coupling): New bug.
	* .x-sc_trailing_blank: Add etc/poke.rec

2020-11-14  Jose E. Marchesi  <jemarch@gnu.org>

	* libpoke/pkl-asm.pks: Fix a couple of typos.

2020-11-14  Jose E. Marchesi  <jemarch@gnu.org>

	* libpoke/pkl-insn.def: Define PKL_INSN_SSETI.
	* libpoke/pkl-asm.c (pkl_asm_insn): Handle the SSETI
	macro-instruction.
	(pkl_asm_insn_sseti): New function.
	* libpoke/pkl-asm.pks (sseti): New macro.
	* libpoke/pkl-gen.c (pkl_gen_pr_ass_stmt): Use sseti.
	(pkl_gen_pr_type_struct): Make constructors install constructors
	for their contained anonymous structs.
	* testsuite/poke.pkl/ass-struct-int-1.pk: New test.
	* testsuite/poke.pkl/ass-struct-int-2.pk: Likewise.
	* testsuite/poke.map/ass-map-struct-int-1.pk: Likewise.
	* testsuite/Makefile.am (EXTRA_DIST): Add new tests.

2020-11-14  Jose E. Marchesi  <jemarch@gnu.org>

	* etc/poke.rec: Renamed from POKE.
	* DEV-NEWS: Updated to reflect new name.
	* HACKING: Likewise.
	* TODO: Likewise.
	* .x-sc_prohibit_atoi_atof: Likewise.
	* .x-sc_space_tab: Likewise.

2020-11-14  Bruno Haible  <bruno@clisp.org>

	Fix 'make dist' failure.
	* testsuite/Makefile.am (EXTRA_DIST): Remove tests that were deleted
	on 2020-11-11.

2020-11-14  Jose E. Marchesi  <jemarch@gnu.org>

	* libpoke/libpoke.h: Remove trailing whitespaces.
	* .x-sc_prohibit_atoi_atof: Add POKE.
	* .x-sc_space_tab: Likewise.
	* POKE: Remove repeated words.

2020-11-14  Jose E. Marchesi  <jemarch@gnu.org>

	* POKE: New file.
	* DEV-NEWS: Mention POKE.
	* HACKING (Deciding on What to Work on): Remove section.
	(The POKE database): New section.
	* TODO: Refer to POKE.

2020-11-13  Jose E. Marchesi  <jemarch@gnu.org>

	* libpoke/pvm.h: Correct docstring of function pvm_array_insert.
	* libpoke/libpoke.h: Prototype for pk_array_insert_elem_val.
	Remove pk_array_set_elem_boffset.
	* libpoke/pk-val.c (pk_array_insert_elem_val): New function.
	(pk_array_set_elem_boffset): Remove function.
	* poke/pk-mi-json.c (pk_mi_json_to_array): Adapt to new array API
	in libpoke.
	* poke/poke.c (set_script_args): Likewise.

2020-11-13  Jose E. Marchesi  <jemarch@gnu.org>

	* testsuite/poke.pkl/struct-method-16.pk: New test.
	* testsuite/Makefile.am (EXTRA_DIST): Add new test.

2020-11-13  Jose E. Marchesi  <jemarch@gnu.org>

	* libpoke/libpoke.h: Remove the rtpath argument from the
	pk_compiler_new prototype.
	* libpoke/libpoke.c (pk_compiler_new): Likewise.
	* poke/poke.c (initialize): Adjust call to pk_compiler_new
	accordingly.
	* testsuite/poke.libpoke/values.c (test_pk_equal_file): Likewise.
	* testsuite/poke.mi-json/mi-json.c (test_json_file): Likewise.

2020-11-13  Jose E. Marchesi  <jemarch@gnu.org>

	* libpoke/pkl-ast.h (enum pkl_ast_code): New entry
	PKL_AST_CONTINUE_STMT.
	(PKL_AST_CONTINUE_STMT_ENTITY): Define.
	(PKL_AST_CONTINUE_STMT_NFRAMES): Likewise.
	(struct pkl_ast_continue_stmt): Define.
	Prototype for pkl_ast_make_continue_stmt.
	(union pkl_ast_node): New field `continue_stmt'.
	* libpoke/pkl-ast.c (pkl_ast_make_continue_stmt): Define.
	(pkl_ast_node_free): Handle continue statements.
	(pkl_ast_finish_breaks_1): Likewise.
	(pkl_ast_finish_returns_1): Likewise.
	(pkl_ast_print_1): Likewise.
	* libpoke/pkl-tab.y (stmt): Add continue statement.
	* libpoke/pkl-lex.l: New token continue.
	* libpoke/pkl-tab.y: Likewise.
	* libpoke/pkl-pass.c (pkl_do_pass_1): Add case for
	PKL_AST_CONTINUE_STMT.
	* libpoke/pkl-anal.c (pkl_anal1_ps_continue_stmt): New handler.
	(pkl_phase_anal1): Install handler.
	* libpoke/pkl-gen.c (pkl_gen_ps_continue_stmt): New handler.
	(pkl_phase_gen): Install handler.
	* libpoke/pkl-asm.h: Prototype for pkl_asm_continue_label.
	* libpoke/pkl-asm.c (struct pkl_asm_level): New field
	`continue_label'.
	(pkl_asm_loop): Set the continue label of the loop.
	(pkl_asm_while): Likewise.
	(pkl_asm_for): Likewise.
	(pkl_asm_continue_label): New function.
	* testsuite/poke.pkl/continue-diag-1.pk: New test.
	* testsuite/poke.pkl/continue-for-1.pk: Likewise.
	* testsuite/poke.pkl/continue-for-2.pk: Likewise.
	* testsuite/poke.pkl/continue-while-1.pk: Likewise.
	* testsuite/poke.pkl/continue-while-2.pk: Likewise.
	* testsuite/Makefile.am (EXTRA_DIST): Add new tests.
	* doc/poke.texi (while): Document `continue' in while loops.
	(for-in): Likewise.

2020-11-13  Jose E. Marchesi  <jemarch@gnu.org>

	* libpoke/pvm.jitter (aset): Use pvm_array_set.
	* libpoke/pvm-val.c (pvm_array_set): Fix recalculation of element
	bit-offsets.

2020-11-13  Jose E. Marchesi  <jemarch@gnu.org>

	* libpoke/pkl-insn.def: Remove definition of PKL_INSN_XMKA.
	* libpoke/pvm.jitter (mka): Remove.
	(xmka): Rename to mka.
	* libpoke/pkl-asm.pks (aconc): Rename xmka to mka.
	(atrim): Likewise.
	* libpoke/pkl-gen.c (pkl_gen_pr_funcall): Likewise.
	(pkl_gen_pr_array): Likewise.
	* libpoke/pkl-gen.pks (array_mapper): Likewise.
	(array_constructor): Likewise.
	* libpoke/pvm.h: Remove prototype for xpvm_make_array.
	* libpoke/pvm-val.c (pvm_make_array): Remove.
	(xpvm_make_array): Rename to pvm_make_array.

2020-11-13  Jose E. Marchesi  <jemarch@gnu.org>

	* libpoke/pkl-ast.h (PKL_AST_ASS_STMT_VALMAPPER_BACK): Remove.
	(PKL_AST_ASS_STMT_VALMAPPER_OVER): Likewise.
	(PKL_AST_ASS_STMT_VALMAPPER_P): Likewise.
	(struct pkl_ast_ass_stmt): Remove fields `valmapper_back' and
	`valmapper_over'.
	* libpoke/pkl-gen.h (struct pkl_gen_payload): Remove field
	`in_valmapper'.
	* libpoke/pkl-gen.c (pkl_gen_pr_ass_stml): Remove valmappers.
	(pkl_gen_ps_type_offset): Likewise.
	(pkl_gen_ps_type_integral): Likewise.
	(pkl_gen_pr_type_array): Likewise.
	(pkl_gen_ps_type_string): Likewise.
	* libpoke/pkl-gen.pks (array_valmapper): Remove.
	* testsuite/poke.map/valmap-arrays.pk: Remove test.
	* testsuite/Makefile.am (EXTRA_DIST): Update.

2020-11-13  Jose E. Marchesi  <jemarch@gnu.org>

	* libpoke/pkl-gen.c (pkl_gen_pr_funcall): Use new array schema.

2020-11-13  Jose E. Marchesi  <jemarch@gnu.org>

	* libpoke/pkl-asm.pks (acat): New macro.
	(aelems): Remove macro.
	(aconc): Use the new array schema.

2020-11-13  Jose E. Marchesi  <jemarch@gnu.org>

	* libpoke/pkl-gen.pks (array_constructor): Use new array schema.

2020-11-13  Jose E. Marchesi  <jemarch@gnu.org>

	* libpoke/pvm-val.c (pvm_array_insert): Fix setting of elem
	offsets.
	* libpoke/pkl-gen.pks (array_mapper): Use new array schema.

2020-11-13  Jose E. Marchesi  <jemarch@gnu.org>

	* libpoke/pvm-val.c (pvm_array_insert): Fix reallocation of
	buffer.
	* libpoke/pkl-asm.pks (atrim): Use new array schema.

2020-11-13  Jose E. Marchesi  <jemarch@gnu.org>

	* libpoke/pvm-val.c (pvm_val_equal_p): Do not include mapper and
	writer closures in the comparison criteria for arrays.

	* testsuite/poke.libpoke/values.c (test_pk_equal_file): Print
	details when a test fails.

2020-11-13  Jose E. Marchesi  <jemarch@gnu.org>

	* libpoke/pk-val.c (pk_val_mapped_p): Update the criteria to
	decide when a value is mapped.
	* libpoke/libpoke.h (PK_PRINT_F_MAPS): Define.
	(PK_PRINT_F_PPRINT): Likewise.
	* libpoke/libpoke.c (pk_print_val_with_params): New function.
	* testsuite/poke.mi-json/mi-json.c (test_json_file): Do not skip
	array tests anymore.

2020-11-13  Jose E. Marchesi  <jemarch@gnu.org>

	* testsuite/poke.map/ass-map-17.pk: New test.
	* testsuite/Makefile.am (EXTRA_DIST): Add test.
	* doc/poke.texi (Assignments): Document that maps in l-value can
	be of any type.

2020-11-12  Jose E. Marchesi  <jemarch@gnu.org>

	* libpoke/pkl-gen.c (pkl_gen_pr_array): Optimize.

2020-11-12  Jose E. Marchesi  <jemarch@gnu.org>

	* poke/pk-cmd.c (pk_cmd_exec_1): Support commas in string
	arguments that are at the end of the argument list.

2020-11-12  Jose E. Marchesi  <jemarch@gnu.org>

	* libpoke/pkl-gen.c (pkl_gen_pr_array): Install a writer in arrays
	built from literals.
	* libpoke/pvm-val.c (pvm_val_reloc): Fix setting mapped_p in arrays.
	* testsuite/poke.map/ass-map-12.pk: New test.
	* testsuite/poke.map/ass-map-13.pk: Likewise.
	* testsuite/poke.map/ass-map-14.pk: Likewise.
	* testsuite/poke.map/ass-map-15.pk: Likewise.
	* testsuite/poke.map/ass-map-16.pk: Likewise.
	* testsuite/Makefile.am (EXTRA_DIST): Add new tests.

2020-11-12  Jose E. Marchesi  <jemarch@gnu.org>

	* libpoke/pvm-val.c (pvm_sizeof): Closure values have size zero by
	convention.

2020-11-12  Jose E. Marchesi  <jemarch@gnu.org>

	* libpoke/pvm-val.c (pvm_val_reloc): Fix calculation of new
	boffset for contained structs.
	* testsuite/poke.map/ass-map-9.pk: New test.
	* testsuite/poke.map/ass-map-10.pk: Likewise.
	* testsuite/poke.map/ass-map-11.pk: New test.
	* testsuite/Makefile.am (EXTRA_DIST): Add new tests.

2020-11-12  Jose E. Marchesi  <jemarch@gnu.org>

	* libpoke/pkl-gen.c (pkl_gen_ps_scons): Subpass on scons_type
	instead of calling the constructor closure directly.

2020-11-12  Jose E. Marchesi  <jemarch@gnu.org>

	* libpoke/pvm-val.h (PVM_VAL_ARR_MAPPED_P_BACK): Define
	(PVM_VAL_SCT_MAPPED_P_BACK): Likewise.
	(struct pvm_array): New field mapped_p_back;
	(struct pvm_struct): Likewise.
	* libpoke/pvm-val.c (pvm_make_array): Initialize mapped_p_back.
	(pvm_make_struct): Likewise.
	(pvm_val_reloc): Handle the mapped_p backups.
	(pvm_val_ureloc): Restore the mapped_p attribute.
	(pvm_val_reloc): Save the mapped_p attribute.

2020-11-12  Jose E. Marchesi  <jemarch@gnu.org>

	* libpoke/pkl-gen.c (pkl_gen_pr_type_struct): Install a writer in
	newly-constructed struct values.
	(pkl_gen_pr_type_array): Ditto for newly-constructed array values.

2020-11-11  Jose E. Marchesi  <jemarch@gnu.org>

	* libpoke/pvm.h: Prototype for pvm_val_ureloc.
	* libpoke/pvm-val.c (pvm_make_array): Initialize ios_back and
	offset_back.
	(pvm_make_struct): Likewise, and also modified_back.
	(pvm_val_ureloc): New function.
	* libpoke/pvm-val.h (PVM_VAL_ARR_ELEM_OFFSET_BACK): Define.
	(PVM_VAL_ARR_OFFSET_BACK): Likewise.
	(PVM_VAL_ARR_IOS_BACK): Likewise.
	(PVM_VAL_SCT_OFFSET_BACK): Likewise.
	(PVM_VAL_SCT_FIELD_MODIFIED_BACK): Likewise.
	(PVM_VAL_SCT_FIELD_OFFSET_BACK): Likewise.
	(struct pvm_array): New fields offset_back and ios_back.
	(struct pvm_array_elem): Likewise.
	(struct pvm_struct): Likewise.
	(struct pvm_struct_field): New fields modified_back and
	offset_back.
	* libpoke/pkl-insn.def: New instruction PKL_INSN_URELOC.
	* libpoke/pvm.jitter (reloc): Change to new interface.
	(ureloc): New instruction.
	* libpoke/pkl-typify.c (pkl_typify1_ps_ass_stmt): Remove
	restriction of simple types in lvalues.
	* libpoke/pkl-gen.pks (complex_lmap): New macro.
	* testsuite/poke.pkl/ass-map-diag-1.pk: Remove test.
	* testsuite/poke.pkl/ass-map-diag-2.pk: Likewise.
	* testsuite/poke.map/ass-map-7.pk: New test.
	* testsuite/poke.map/ass-map-8.pk: Likewise.
	* testsuite/Makefile.am (EXTRA_DIST): Add new tests.

2020-11-11  Jose E. Marchesi  <jemarch@gnu.org>

	* libpoke/pkl-insn.def; Define PKL_INSN_RELOC.
	* libpoke/pvm.jitter (reloc): New instruction.
	* libpoke/pvm.h: Prototype for pk_val_reloc.
	* libpoke/pk-val.c (pvm_val_reloc): New function.

2020-11-12  Jose E. Marchesi  <jemarch@gnu.org>

	* libpoke/pkl-trans.c (pkl_trans4_ps_array): Remove handler.

2020-11-12  Jose E. Marchesi  <jemarch@gnu.org>

	* libpoke/pvm.h: Prototype for pvm_array_set.
	* libpoke/pvm-val.c (pvm_array_set): New function.
	* libpoke/pvm-val.c (xpvm_make_array): New temporary function.
	(pvm_array_insert): Update the number of elements in the array,
	and update nallocated.
	(pvm_sizeof): By convention closures have size zero.
	* libpoke/pvm.jitter (xmka): Use xpvm_make_array.
	(aset): Use pvm_array_set.
	* libpoke/pkl-gen.c (pkl_gen_pr_array): Use the new array schema.
	(pkl_gen_pr_array_initializer): Likewise.
	(pkl_gen_ps_array_initializer): Likewise.
	(pkl_gen_ps_array): Likewise.

2020-11-12  Jose E. Marchesi  <jemarch@gnu.org>

	* libpoke/pvm.jitter (ains): New instruction.
	(xmka): New temporary instruction.
	* libpoke/pkl-insn.def: Define PKL_INSN_AINS and PKL_INSN_XMKA.
	* libpoke/pvm.h: Prototype for pvm_array_insert.
	* libpoke/pvm-val.h (PVM_VAL_ARR_ELEMS): Define.
	* libpoke/pvm-val.c (pvm_array_insert): New function.

2020-11-12  Jose E. Marchesi  <jemarch@gnu.org>

	* libpoke/pvm.jitter: Remove instruction aseto.
	* libpoke/pkl-insn.def: Likewise.

2020-11-12  Jose E. Marchesi  <jemarch@gnu.org>

	* libpoke/pvm-val.h (PVM_VAL_ARR_NALLOCATED): Define.
	(struct pvm_array): New field `nallocated'.
	* libpoke/pvm-val.c (pvm_make_array): Initialize nallocated.

2020-11-11  Jose E. Marchesi  <jemarch@gnu.org>

	* libpoke/pvm.jitter (mm,map,unmap): New instructions.
	* libpoke/pkl-insn.def: Entries for new instructions.
	* libpoke/pkl-gen.c (pkl_gen_pr_ass_stmt): Likewise.
	(pkl_gen_ps_op_unmap): Use the new unmap instruction.
	(pkl_gen_ps_op_attr): Use `mm' to determine
	whether a value is mapped or not.
	* libpoke/pkl-asm.pks (remap): Use mm instead of mgetm.
	(atrim): Likewise.
	(write) Likewise.
	* libpoke/pkl-gen.pks (array_mapper): Map the new value.
	(array_valmapper): Likewise.
	(struct_mapper): Likewise.
	(array_constructor): Set bit-offset of the constructed array.
	(struct_constructor): Likewise.
	(struct_field_inserter): Adapt to the fact mgeto can't return null
	any longer.
	(op_unmap): Delete macro.
	* libpoke/pvm-val.c (pvm_make_array): Make new arrays unmapped by
	default.
	(pvm_make_struct): Likewise for structs.
	(pvm_print_val_1): Print element offsets in
	mapped arrays and structs.
	* libpoke/pvm-val.h (PVM_VAL_ARR_MAPPED_P): Define.
	(struct pvm_array): New field `mapped_p'.
	(PVM_VAL_SCT_MAPPED_P): Define.
	(struct pvm_struct): New field `mapped_p'.
	(PVM_VAL_MAPPED_P): Define.
	(PVM_VAL_SET_MAPPED_P): Likewise.
	* testsuite/poke.cmd/set-omaps-1.pk: Adapt.

2020-11-11  Jose E. Marchesi  <jemarch@gnu.org>

	* libpoke/pvm.jitter (mktyv): New instruction.
	* libpoke/pkl-insn.def: Define PKL_INSN_MKTYV.
	* libpoke/pvm.h: Prototype for pvm_make_void_type.
	* libpoke/pvm-val.c (pvm_make_void_type): New function.
	(pvm_print_val_1): Handle PVM_TYPE_VOID.
	(pvm_type_equal_p): Likewise.
	* libpoke/pvm-val.h (enum pvm_type_code): Add PVM_TYPE_VOID.
	* libpoke/pkl-gen.c (pkl_gen_ps_type_void): New handler.
	(pkl_phase_gen): Install handler.
	* testsuite/poke.pkl/arrays-14.pk: New test.
	* testsuite/poke.pkl/arrays-15.pk: Likewise.
	* testsuite/Makefile.am (EXTRA_DIST): Add new tests.

2020-11-10  Jose E. Marchesi  <jemarch@gnu.org>

	* libpoke/pvm-val.c (pvm_print_val_1): Fix printing function
	types.

2020-11-09  Jose E. Marchesi  <jemarch@gnu.org>

	* bootstrap.conf (libpoke_modules): Add modules timespec and
	gettime.
	* libpoke/pkl-insn.def (PKL_INSN_TIME): Define.
	* libpoke/pvm.jitter (time): New instruction.
	* libpoke/pkl-ast.h (PKL_AST_BUILTIN_GET_TIME): Define.
	* libpoke/pkl-gen.c (pkl_gen_ps_comp_stmt): Handle
	PKL_AST_BUILTIN_GET_TIME.
	* libpoke/pkl-lex.l: Handle __PKL_BUILTIN_GET_TIME__.
	* libpoke/pkl-rt.pk (get_time): New function.
	* libpoke/pkl-tab.y (builtin): Handle BUILTIN_GET_TIME.
	* pickles/time.pk (gettimeofday): New function.
	(Timespec): New type.
	* doc/poke.texi (rand): Mention using get_time to seed the
	pseudo-random numbers generator.
	(Dates and Times): Update to mention Timespec and gettimeofday.

2020-11-09  Jose E. Marchesi  <jemarch@gnu.org>

	* libpoke/pkl-insn.def (PKL_INSN_DUC): Define.
	* libpoke/pvm.jitter (duc): New instruction.
	* libpoke/pkl-gen.c (pkl_gen_ps_lambda): Duplicate the closure
	value before installing the environment.
	(pkl_gen_ps_decl): Likewise.
	* testsuite/poke.pkl/defun-15.pk: New test.
	* testsuite/poke.pkl/lambda-4.pk: Likewise.
	* testsuite/Makefile.am (EXTRA_DIST): Add new tests.

2020-11-09  Jose E. Marchesi  <jemarch@gnu.org>

	* libpoke/pkl-gen.c (pkl_gen_ps_return_stmt): Do not pop
	environment frames before RETURN, as it is not needed.
	(pkl_gen_ps_func): Likewise.

2020-11-09  Jose E. Marchesi  <jemarch@gnu.org>

	* libpoke/pkl-gen.c (pkl_gen_ps_func): Do not leak a frame in the
	dynamic lexical environment when raising no_return exception.

2020-11-09  Jose E. Marchesi  <jemarch@gnu.org>

	* libpoke/pkl-gen.c (pkl_gen_ps_func): Functions always introduce
	a lexical environment for arguments even if they get none.
	(pkl_gen_ps_return_stmt): Likewise.

2020-11-08  Jose E. Marchesi  <jemarch@gnu.org>

	* libpoke/pkl-ast.h: Rename pkl_ast_type_promoteable to
	pkl_ast_type_promoteable_p.
	* libpoke/pkl-ast.c: Likewise.
	* libpoke/pkl-typify.c: Likewise.

2020-11-08  Jose E. Marchesi  <jemarch@gnu.org>

	* libpoke/pkl-ast.h: Rename pkl_ast_type_equal to
	pkl_ast_type_equal_p.
	* libpoke/pkl-ast.c (pkl_ast_type_equal_p): Likewise.
	* libpoke/pkl-typify.c: Likewise.
	* libpoke/pkl-promo.c: Likewise.
	* libpoke/pkl-fold.c (pkl_fold_ps_cast): Likewise.

2020-11-08  Jose E. Marchesi  <jemarch@gnu.org>

	* libpoke/pkl-lex.l: Support `lambda'.
	* libpoke/pkl-tab.y (LABMDA): New token.
	(primary): Support lambdas as primaries in expressions.
	* libpoke/pkl-ast.h (enum pkl_ast_code): New value PKL_AST_LAMBDA.
	(PKL_AST_LAMBDA_FUNCTION): Define.
	(struct pkl_ast_lambda): Likewise.
	(union pkl_ast_node): New field `lambda'.
	(pkl_ast_make_lambda): New prototype.
	* libpoke/pkl-ast.c (pkl_ast_make_lambda): New function.
	(pkl_ast_node_free): Handle lambda AST nodes.
	(pkl_ast_print_1): Likewise.
	* libpoke/pkl-pass.c (pkl_do_pass_1): Likewise.
	* libpoke/pkl-typify.c (pkl_typify1_ps_lambda): New handler.
	(pkl_phase_typify1): Register handler.
	* libpoke/pkl-gen.c (pkl_gen_pr_lambda): New handler.
	(pkl_gen_ps_lambda): Likewise.
	(pkl_phase_gen): Register handlers.
	* testsuite/poke.pkl/lambda-1.pk: New test.
	* testsuite/poke.pkl/lambda-2.pk: Likewise.
	* testsuite/poke.pkl/lambda-3.pk: Likewise.
	* testsuite/poke.pkl/lambda-diag-1.pk: Likewise.
	* testsuite/Makefile.am (EXTRA_DIST): Add new tests.
	* doc/poke.texi (Lambdas): New section.

2020-11-08  Jose E. Marchesi  <jemarch@gnu.org>

	* etc/poke-mode.el (poke-font-lock-keywords): Remove unneeded
	entry for strings, since they are font-locked via the syntax
	table.

2020-11-08  Jose E. Marchesi  <jemarch@gnu.org>

	* libpoke/libpoke.h: Do not include config.h as this is an
	installed header.

2020-11-08  Jose E. Marchesi  <jemarch@gnu.org>

	* etc/poke-mode.el (poke-field-name): New face.
	(poke-font-lock-keywords): Rule to highlight many field names.

2020-11-08  Jose E. Marchesi  <jemarch@gnu.org>

	(poke-font-lock-keywords): Cover the case of chained declaration
	lines with type constructors in them.

2020-11-08  Jose E. Marchesi  <jemarch@gnu.org>

	* etc/poke-mode.el (poke-font-lock-keywords): Add additional rule
	to cover chained declarations.

2020-11-07  Jose E. Marchesi  <jemarch@gnu.org>

	* etc/poke-mode.el (poke-builtin-types): Remove "offset".
	(poke-type-constructor-integral): New face.
	(poke-type-constructor-offset): Likewise.
	(poke-declaration-name): Likewise.
	(poke-font-lock-keywords): Font-lock string literals, integral
	constructors, offset constructors and the names of declared
	entities.

2020-11-07  Jose E. Marchesi  <jemarch@gnu.org>

	* etc/poke-mode.el (poke-smie-grammar): Indent chained
	declarations for variables, types and units.

2020-11-07  Jose E. Marchesi  <jemarch@gnu.org>

	* pickles/bmp.pk: Use chained declarations.
	* pickles/bpf.pk: Likewise.
	* pickles/btf.pk: Likewise.
	* pickles/color.pk: Likewise.
	* pickles/ctf.pk: Likewise.
	* pickles/dwarf-expr.pk: Likewise.
	* pickles/dwarf-frame.pk: Likewise.
	* pickles/dwarf-info.pk: Likewise.
	* pickles/elf.pk: Likewise.
	* pickles/rgb24.pk: Likewise.
	* pickles/time.pk (ptime): Likewise.

2020-11-07  Jose E. Marchesi  <jemarch@gnu.org>

	* libpoke/pkl-tab.y (defvar): New rule.
	(defvar_list): Likewise.
	(deftype): Likewise.
	(deftype_list): Likewise.
	(defunit): Likewise.
	(defunit_list): Likewise.
	* testsuite/poke.pkl/defunit-1.pk: Likewise.
	* testsuite/poke.pkl/deftype-1.pk: Likewise.
	* testsuite/poke.pkl/defvar-6.pk: New test.
	* testsuite/Makefile.am (EXTRA_DIST): Add new tests.
	* doc/poke.texi (Values and Variables): Mention chained variable
	declarations.
	(type): Document chained type declarations.
	(Offset Units): Likewise for unit declarations.

2020-11-07  Jose E. Marchesi  <jemarch@gnu.org>

	* libpoke/pkl-tab.y: Rename tokens def{var,type,fun,unit} to
	{var,type,fun,unit}.
	* libpoke/pkl-lex.l: Likewise.
	* libpoke/pkl-rt.pk: Adjust accordingly.
	* libpoke/std.pk: Likewise.
	* poke/poke.pk: Likewise.
	* poke/pk-copy.pk: Likewise.
	* poke/pk-dump.pk: Likewise.
	* poke/pk-extract.pk: Likewise.
	* poke/pk-save.pk: Likewise.
	* poke/pk-cmd.pk: Likewise.
	* pickles/bmp.pk: Likewise.
	* pickles/bpf.pk: Likewise.
	* pickles/btf.pk: Likewise.
	* pickles/color.pk: Likewise.
	* pickles/ctf.pk: Likewise.
	* pickles/dwarf-common.pk: Likewise.
	* pickles/dwarf-expr.pk: Likewise.
	* pickles/dwarf-frame.pk: Likewise.
	* pickles/dwarf-info.pk: Likewise.
	* pickles/dwarf-pubnames.pk: Likewise.
	* pickles/dwarf-types.pk: Likewise.
	* pickles/elf.pk: Likewise.
	* pickles/id3v1.pk: Likewise.
	* pickles/id3v2.pk: Likewise.
	* pickles/leb128.pk: Likewise.
	* pickles/rgb24.pk: Likewise.
	* pickles/time.pk: Likewise.
	* poke/pk-cmd.c (pk_cmd_exec): Likewise.
	* etc/poke.g4 (declaration): Likewise.
	* etc/poke-mode.el: Likewise.
	* poke/pk-map.c (pk_map_load_parsed_map): Likewise.
	* poke/pk-mi.c: Likewise.
	* maps/dwarf.map: Likewise.
	* doc/poke.texi: Likewise.
	* testsuite/poke.cmd/*.pk: Likewise.
	* testsuite/poke.pkl/*.pk: Likewise.
	* testsuite/poke.map/*.pk: Likeiwise.
	* testsuite/poke.libpoke/*.pk: Likewise.
	* testsuite/poke.id3v1/*.pk: Likewise.
	* testsuite/poke.color/*.pk: Likewise.
	* testsuite/poke.repl/repl.exp: Likewise.
	* testsuite/poke.std/*.pk: Likewise.
	* testsuite/poke.mi-json/pk_sct.json: Likewise.
	* utils/elfextractor: Likewise.
	* HACKING: Likewise.
	* TODO: Likewise.

2020-11-04  Mohammad-Reza Nabipoor  <m.nabipoor@yahoo.com>

	* HACKING (Write After Approval): Add Mohammad-Reza Nabipoor.
	* AUTHORS: Likewise.

2020-11-03  Mohammad-Reza Nabipoor  <m.nabipoor@yahoo.com>

	* libpoke/pkl-trans.c (pkl_trans1_ps_string): Add support for octal
	and hexadecimal escape sequences.
	* doc/poke.texi (String Literals): Document new escape sequences.
	* testsuite/poke.pkl/strings-esc-1.pk: New test.
	* testsuite/poke.pkl/strings-esc-2.pk: Likewise.
	* testsuite/poke.pkl/strings-esc-diag-1.pk: Likewise.
	* testsuite/poke.pkl/strings-esc-diag-2.pk: Likewise.
	* testsuite/poke.pkl/strings-esc-diag-3.pk: Likewise.
	* testsuite/poke.pkl/strings-esc-diag-4.pk: Likewise.
	* testsuite/poke.pkl/string-diag-1.pk: `\x` is now a valid sequence;
	use `\z` as an invalid escape sequence.
	* testsuite/Makefile.am (EXTRA_DIST): Add new tests.

2020-11-01  Egeyar Bagcioglu  <egeyar@gmail.com>

	* libpoke/ios-dev-file.h: Include errno.h.
	(ios_dev_file_handler_normalize): Pass a new argument to be filled
	with the new_handler. Convert the return value to int to return IOD
	error types. In case of no errors, return IOD_OK.
	(ios_dev_file_open): Pass a new argument to be filled with the newly
	opened device. Convert the return value into an int to return IOD
	error types. In case of no errors, return IOD_OK.
	* libpoke/ios-dev-mem.h (ios_dev_mem_handler_normalize): Like
	ios_dev_file_handler_normalize.
	(ios_dev_mem_open): Like ios_dev_file_open.
	* libpoke/ios-dev-nbd.h (ios_dev_nbd_handler_normalize): Like
	ios_dev_file_handler_normalize.
	(ios_dev_nbd_open): Like ios_dev_file_open.
	* libpoke/ios-dev-stream.h (ios_dev_stream_handler_normalize): Like
	ios_dev_file_handler_normalize.
	(ios_dev_stream_open): Like ios_dev_file_open.
	* libpoke/ios-dev.h (handler_normalize): Pass a new argument to be
	filled with the new_handler. Convert the return value to int.
	(open): Pass a new argument to be filled with the newly opened device.
	Convert the return value into an int to return IOD error types. In
	case of no errors, return IOD_OK.
	* libpoke/ios.c (ios_open): Set IO id after making sure open won't
	fail. Handle errors returned by handler_normalize and open. Prevent
	opening an already-open IO space.
	* libpoke/ios.h: Introduce IOS_EOPEN.
	* libpoke/pvm.jitter (open): Raise a PVM_E_IO for all possible error
	values of ios_open.

2020-11-01  Egeyar Bagcioglu  <egeyar@gmail.com>

	* libpoke/ios-dev.h: Add IOD_OK, IOD_EIOFF, IOD_EFLAGS and IOD_ENOMEM.
	Change the values of IOD_EOF and IOD_EINVAL.
	* libpoke/ios.h: Add IOS_EOF and IOS_EINVAL. Define
	IOD_ERROR_TO_IOS_ERROR.

2020-10-28  Mohammad-Reza Nabipoor  <m.nabipoor@yahoo.com>

	* bootstrap.conf: Add `lib-symbol-visibility` module to `libpoke`.
	* libpoke/Makefile.am: Add CPP flags to hide symbols by default.
	* libpoke/libpoke.h: Define `LIBPOKE_API` macro. Mark all public
	functions with `LIBPOKE_API`.
	* libpoke/ios.h: Remove `__attribute__ ((visibility ("hidden")))`.
	* libpoke/pkl-asm.h: Likewise.
	* libpoke/pkl-ast.h: Likewise.
	* libpoke/pkl-diag.h: Likewise.
	* libpoke/pkl-env.h: Likewise.
	* libpoke/pkl-parser.h: Likewise.
	* libpoke/pkl-pass.h: Likewise.
	* libpoke/pkl.h: Likewise.
	* libpoke/pkl-alloc.h: Likewise.
	* libpoke/pvm-program.h: Likewise.
	* libpoke/pvm-val.h: Likewise.
	* libpoke/pvm.h: Likewise.
	* DEV-NEWS: Add relevant notes for devs.

2020-10-25  Jose E. Marchesi  <jemarch@gnu.org>

	* DEV-NEWS: New file.
	* HACKING (Recording noteworthy development changes): New section.

2020-10-25  Jose E. Marchesi  <jemarch@gnu.org>

	* libpoke/pvm.h: Rename pvm_type_equal to pvm_type_equal_p.
	* libpoke/pvm.jitter: Likewise.
	* libpoke/pvm-val.c: Likewise.

2020-10-22  Mohammad-Reza Nabipoor  <m.nabipoor@yahoo.com>

	* doc/poke.texi: output of `.info ios`commands: Add `Type` column.
	Minor tweaks to make them consistent.
	* doc/poke.texi (From Bytes to Integers): Remove the description of
	little-endian integers.
	* HACKING (Appendix): Fix `pk-utils.[ch]` paths.

2020-10-20  Mohammad-Reza Nabipoor  <m.nabipoor@yahoo.com>

	* libpoke/ios-dev-stream.c (ios_dev_stream_close): Free buffer only
	in read mode.
	* libpoke/ios-buffer.h (ios_buffer_free): Change return type to void.
	* libpoke/ios-buffer.c (ios_buffer_free): Handle buffer == NULL.

2020-10-20  Mohammad-Reza Nabipoor  <m.nabipoor@yahoo.com>

	* libpoke/ios-dev-stream.c: Add missing include "pk-utils.h".

2020-10-19  Mohammad-Reza Nabipoor  <m.nabipoor@yahoo.com>

	* testsuite/poke.mi-json/pk_int.json: Add new line at the end.
	* testsuite/poke.mi-json/pk_uint.json: Likewise.
	* testsuite/poke.mi-json/pk_offset.json: Likewise.
	* testsuite/poke.mi-json/pk_string.json: Likewise.
	* testsuite/poke.mi-json/pk_array.json: Add new line at the end and
	trim trailing whitespaces.
	* testsuite/poke.mi-json/pk_sct.json: Likewise.
	* poke/pk-cmd-ios.c: Expand TAB to 8 spaces.
	* libpoke/ios-buffer.h: Likewise.
	* libpoke/ios-buffer.c: Likewise.
	* libpoke/ios.c: Put space after function name.
	* libpoke/ios-dev-stream.c: Expand TAB to 8 spaces. Put space after
	function names. Use STREQ. Remove `if` before `free`. Remove inclusion
	of assert.h.
	* libpoke/ios-buffer.h: Reformat function prototypes according to the
	GNU Coding Standards.

2020-10-12  Egeyar Bagcioglu  <egeyar@gmail.com>

	* libpoke/Makefile.am (libpoke_la_SOURCES): Add ios-buffer.h,
	ios-buffer.c and ios-dev-stream.c.
	* libpoke/ios-buffer.c: New file.
	* libpoke/ios-buffer.h: New file.
	* libpoke/ios-dev-stream.c: New file.
	* libpoke/ios.c: Extern ios_dev_stream.
	(ios_dev_ifs): Add ios_dev_stream.

2020-10-11  Egeyar Bagcioglu  <egeyar@gmail.com>

	* libpoke/ios.c (ios_flush): Divide the offset by 8 before passing it
	to io->dev_if->flush which accepts offsets in the granularity of bytes.

2020-10-11  Egeyar Bagcioglu  <egeyar@gmail.com>

	* libpoke/ios-dev-file.c (ios_dev_file_get_if_name): New.
	* libpoke/ios-dev-mem.c (ios_dev_mem_get_if_name): New.
	* libpoke/ios-dev-nbd.c (ios_dev_nbd_get_if_name): New.
	* libpoke/ios-dev.h (get_if_name): New.
	* libpoke/ios.c (ios_get_dev_if_name): New.
	* libpoke/ios.h (ios_get_dev_if_name): New.
	* libpoke/libpoke.c (pk_ios_get_dev_if_name): New.
	* libpoke/libpoke.h (pk_ios_get_dev_if_name): New.
	* poke/pk-cmd-ios.c (print_info_ios): Print interface name.
	* testsuite/poke.cmd/file-mode.pk: Adjust test output.
	* testsuite/poke.cmd/file-relative.pk: Adjust test output.

2020-09-30  Kostas Chasialis  <sdi1600195@di.uoa.gr>

    * poke/pk-mi-json.h (pk_mi_val_to_json): Prototype.
	(pk_mi_json_to_val): Prototype.
	* poke/pk-mi-json.c (pk_mi_val_to_json): Define.
	(pk_mi_json_to_val): Define.
	(pk_mi_val_to_json): New function.
	(pk_mi_val_to_json_1): Likewise.
	(pk_mi_int_to_json): Likewise.
	(pk_mi_uint_to_json): Likewise.
	(pk_mi_string_to_json): Likewise.
	(pk_mi_offset_to_json): Likewise.
	(pk_mi_mapping_to_json): Likewise.
	(pk_mi_sct_to_json): Likewise.
	(pk_mi_array_to_json): Likewise.
	(pk_mi_null_to_json): Likewise.
	(pk_mi_json_to_val): Likewise.
	(pk_mi_json_to_val_1): Likewise.
	(pk_mi_json_to_int): Likewise.
	(pk_mi_json_to_uint): Likewise.
	(pk_mi_json_to_string): Likewise.
	(pk_mi_json_to_offset): Likewise.
	(pk_mi_json_to_mapping): Likewise.
	(pk_mi_json_to_sct): Likewise.
	(pk_mi_json_to_array): Likewise.
	(pk_mi_json_poke_value_type): Likewise.
	(pk_mi_json_array_element_pair): Likewise.
	* testsuite/poke.mi-json/mi-json.c (test_json_to_val_to_json): New function.
	(test_json_file): Likewise.
	(test_json_to_val): Likewise.
	(test_val_to_json): Likewise.
	(test_json_pk_val): Likewise.
	(test_json_pk_int): Likewise.
	(test_json_pk_uint): Likewise.
	(test_json_pk_string): Likewise.
	(test_json_pk_offset): Likewise.
	(test_json_pk_null): Likewise.
	(test_json_pk_sct): Likewise.
	(test_json_pk_array): Likewise.
	(compile_initial_poke_code): Likewise.
	(compile_poke_expression): Likewise.
	(read_json_object): Likewise.
	(parse_json_str_object): Likewise.
	* testsuite/poke.mi-json/pk_int.json: New test.
	* testsuite/poke.mi-json/pk_uint.json: New test.
	* testsuite/poke.mi-json/pk_string.json: New test.
	* testsuite/poke.mi-json/pk_offset.json: New test.
	* testsuite/poke.mi-json/pk_array.json: New test.
	* testsuite/poke.mi-json/pk_sct.json: New test.
	* testsuite/poke.mi-json/Makefile.am: Added TESTDIR.
	* testsuite/Makefile.am (EXTRA_DIST): Updated with new tests.

2020-09-30  Jose E. Marchesi  <jemarch@gnu.org>

	* etc/poke-mode.el: Delete trailing whitespaces.

2020-09-30  Pierre-Evariste Dagand  <pierre-evariste.dagand@lip6.fr>

	* doc/poke.texi: Fix typos.

2020-09-15  Aurélien Aptel  <aaptel@suse.com>

	* etc/poke-mode.el: Add SMIE grammar and indent code.

2020-09-15  Jose E. Marchesi  <jemarch@gnu.org>

	* pickles/time.pk: New file.
	(ptime): Move from std.pk.
	(POSIX_Time32): Likewise.
	(POSIX_Time64): Likewise.
	* pickles/Makefile.am (dist_pickles_DATA): Add time.pk.
	* testsuite/poke.time/time32.pk: Moved from poke.std.
	* testsuite/poke.time/time.exp: New file.
	* testsuite/Makefile.am (EXTRA_DIST): Reflect change of opsition
	of time32.pk
	* doc/poke.texi (Time): New chapter.

2020-09-15  Jose E. Marchesi  <jemarch@gnu.org>

	* libpoke/libpoke.c (struct pk_compiler): New field complete_type.
	(pk_compiler_new): Initialize complete_type.
	(complete_struct): Use complete_type.

2020-09-06  Kostas Chasialis  <sdi1600195@di.uoa.gr>

	* testsuite/poke.libpoke/values.c: Now all tests run with make check.
	* testsuite/poke.libpoke/Makefile.am: Added TESTDIR and LTLIBTEXTSTYLE
	for this purpose.

2020-09-04  Jose E. Marchesi  <jemarch@gnu.org>

	* libpoke/pkl.c (rest_of_compilation): Revert fold and trans4 in
	the middleend pass.

2020-09-04  Jose E. Marchesi  <jemarch@gnu.org>

	* libpoke/pkl-pass.c (pkl_do_pass): Get a new argument `level'.
	(pkl_do_subpass): Likewise.
	(pkl_do_pass_1): Likewise.
	(pkl_call_node_handlers): Likewise.
	(PKL_PASS_CHAIN): Pass the new argument.
	(PKL_PASS): Likewise.
	(PKL_CALL_PHASES_SINGLE): Likewise.
	* libpoke/pkl.c (rest_of_compilation): Set pass levels.
	* libpoke/pkl-ast.h: Update comment on COMPILED.
	* libpoke/pkl-anal.c (pkl_anal_pr_type): Remove handler.
	(pkl_phase_anal1): Likewise.
	(pkl_phase_anal2): Likewise.
	(pkl_anal_ps_type): Likewise.
	(pkl_phase_analf): Likewise.
	* libpoke/pkl-trans.c (pkl_trans_pr_type): Likewise.
	(pkl_phase_trans1): Likewise.
	(pkl_phase_trans2): Likewise.
	(pkl_phase_trans3): Likewise.
	(pkl_phase_trans4): Likewise.
	* libpoke/pkl-promo.c (pkl_promo_pr_type): Likewise.
	(pkl_phase_promo): Likewise.
	* libpoke/pkl-fold.c (pkl_fold_pr_type): Likewise.
	(pkl_phase_fold): Likewise.
	* libpoke/pkl-typify.c (pkl_typify_pr_type): Likewise.
	(pkl_phase_typify1): Likewise.
	(pkl_phase_typify2): Likewise.
	* testsuite/poke.pkl/compiler-passes-1.pk: New test.
	* testsuite/Makefile.am (EXTRA_DIST): Add new test.

2020-09-03  Jose E. Marchesi  <jemarch@gnu.org>

	* libpoke/pkl-gen.c (pkl_gen_pr_type): Process types in
	PKL_AST_FUNC_TYPE_ARG nodes.
	(pkl_gen_pr_func_type_arg): Remove weird subpass.

2020-09-03  Jose E. Marchesi  <jemarch@gnu.org>

	* libpoke/pkl-gen.c (pkl_gen_ps_func): New handler.
	(pkl_phase_gen): Install handler.

2020-09-02  Jose E. Marchesi  <jemarch@gnu.org>

	* libpoke/pkl-typify.c (pkl_typify2_ps_type): Do not set
	COMPILED=1.
	* libpoke/pkl-anal.c (pkl_analf_ps_type): New handler.
	(pkl_phase_analf): Install handler.
	* testsuite/poke.pkl/ass-diag-9.pk: New test.
	* testsuite/Makefile.am (EXTRA_DIST): Add new test.

2020-09-02  Jose E. Marchesi  <jemarch@gnu.org>

	* libpoke/pkl-asm.pks (aconc): Fix the type of the resulting
	array.
	* testsuite/poke.pkl/add-arrays-4.pk: New test.
	* testsuite/Makefile.am (EXTRA_DIST): Add new test.

2020-09-01  Kostas Chasialis  <sdi1600195@di.uoa.gr>

	* libpoke/libpoke.h (pk_val_equal_p): Prototype.
	* libpoke/pk-val.c (pk_val_equal_p): Define.
	* libpoke/pvm.h (pvm_val_equal_p): Prototype.
	* libpoke/pvm-val.c (pvm_val_equal_p): Define.
	* testsuite/poke.libpoke/values.c (test_pk_val_equal_p): New function.
	(test_pk_equal_file): Likewise.
	(copy_line_to_expression): Likewise.
	(compile_poke_expressions): Likewise.
	(compile_initial_poke_code): Likewise.
	* testsuite/poke.libpoke/pk_equal_int.test: New test.
	* testsuite/poke.libpoke/pk_equal_uint.test: New test.
	* testsuite/poke.libpoke/pk_equal_str.test: New test.
	* testsuite/poke.libpoke/pk_equal_off.test: New test.
	* testsuite/poke.libpoke/pk_equal_sct.test: New test.
	* testsuite/poke.libpoke/pk_equal_arr.test: New test.
	* testsuite/poke.libpoke/pk_nequal_int.test: New test.
	* testsuite/poke.libpoke/pk_nequal_uint.test: New test.
	* testsuite/poke.libpoke/pk_nequal_str.test: New test.
	* testsuite/poke.libpoke/pk_nequal_off.test: New test.
	* testsuite/poke.libpoke/pk_nequal_sct.test: New test.
	* testsuite/poke.libpoke/pk_nequal_arr.test: New test.
	* testsuite/poke.libpoke/Makefile.am: Added PKGDATADIR.
	* testsuite/Makefile.am (EXTRA_DIST): Updated with new tests.
	* bootstrap.conf (gnulib_modules): Added new modules.

2020-09-01  Jose E. Marchesi  <jemarch@gnu.org>

	* libpoke/pkl-gen.c (pkl_gen_pr_type): Update comment.
	(pkl_gen_pr_type_array): Duplicating logic from pkl_gen_pr_type is
	no longer necessary.
	(pkl_gen_pr_type_struct): Likewise.
	* libpoke/pkl-anal.c (pkl_anal1_pr_type_struct): It is no longer
	needed to break the pass here.

2020-09-01  Jose E. Marchesi  <jemarch@gnu.org>

	* libpoke/pkl-pass.c (pkl_call_node_handlers): Execute pre-order
	handlers from more generic to more particular, and post-order
	handlers from more particular to more generic.
	* libpoke/pkl-pass.h: Document new precedence of handlers based on
	the ordering.

2020-09-01  Jose E. Marchesi  <jemarch@gnu.org>

	* libpoke/pkl-pass.c (pkl_do_pass_1): Pass the right pass order to
	pkl_cal_node_handlers.
	(pkl_call_node_handlers): Adjust accordingly.

2020-09-01  Jose E. Marchesi  <jemarch@gnu.org>

	* pickles/dwarf-info.pk: New file.
	* pickles/dwarf.pk: Load dwarf-info.pk.
	* pickles/dwarf-common.pk: Do not load leb128.pk.
	* maps/dwarf.map: Add comment with information on DWARF related
	sections and the data stored in them.

2020-09-01  Jose E. Marchesi  <jemarch@gnu.org>

	* poke/pk-cmd-map.c (pk_cmd_map_show): Include the $ prefix in the
	map entry names.
	* testsuite/poke.cmd/maps-4.pk: Update accordingly.
	* testsuite/poke.cmd/maps-5.pk: Likewise.
	* testsuite/poke.cmd/maps-6.pk: Likewise.

2020-08-31  Jose E. Marchesi  <jemarch@gnu.org>

	* pickles/dwarf-frame.pk (Dwarf_CFI): Adapt to use Dwarf_Op for
	CFA_def_cfa_expression, CFA_expression and CFA_val_expression.
	* pickles/dwarf-expr.pk: New file.
	* pickles/dwarf.pk (DW_TAG_hi_user): Fix value.
	Load dwarf-expr.pk.

2020-08-31  Jose E. Marchesi  <jemarch@gnu.org>

	* pickles/dwarf-common.pk: New file.
	* pickles/dwarf-frame.pk: Likewise.
	* pickles/dwarf-pubnames.pk: Likewise.
	* pickles/dwarf-types.pk: Likewise.
	* pickles/dwarf.pk: load the other dwarf- files.

2020-08-31  Jose E. Marchesi  <jemarch@gnu.org>

	* pickles/dwarf.pk (Dwarf_Name_Lookup_Table): pubnames and
	pubtypes weren't available until DWARF 3.
	(Dwarf_Name_Lookup_Table): New method `lookup'.

2020-08-31  Jose E. Marchesi  <jemarch@gnu.org>

	* libpoke/pkl-gen.c (pkl_gen_pr_type_struct): Fix handling of
	payload->generating_pvm_struct_type.
	Break pass whenever appropriate.
	(pkl_gen_ps_type_struct): Likewise.
	* testsuite/poke.pkl/scons-57.pk: New test.
	* testsuite/Makefile.am (EXTRA_DIST): Add new test.

2020-08-31  Jose E. Marchesi  <jemarch@gnu.org>

	* pickles/leb128.pk (LEB128): Define.
	* pickles/dwarf.pk (Dwarf_Block): Define.
	(Dwarf_CFI): Options for DW_CFA_def_cfa_expression,
	DW_CFA_expression and DW_CFA_val_expression.
	(Dwarf_Call_Frame_Info): Define.
	* maps/dwarf.map (frame): New entry.

2020-08-31  Jose E. Marchesi  <jemarch@gnu.org>

	* libpoke/pkl-anal.c (pkl_anal_ps_program): New handler.
	(pkl_phase_anal1): Install handler.
	(pkl_phase_anal2): Likewise.
	(pkl_phase_analf): Likewise.
	(pkl_anal1_pr_type_struct): Break phase if compiled.

2020-08-31  Jose E. Marchesi  <jemarch@gnu.org>

	* pickles/dwarf.pk (Dwarf_Section_Offset): New method `value'.
	(Dwarf_Type_Unit_Header): Define.
	(Dwarf_CIE): Likewise.
	* maps/dwarf.map: New file.
	* maps/elf.map: Move dwarf entries to dwarf.map.
	* maps/Makefile.am (dist_maps_DATA): Add dwarf.map.

2020-08-30  Jose E. Marchesi  <jemarch@gnu.org>

	* pickles/dwarf.pk: Add more constants.

2020-08-30  Jose E. Marchesi  <jemarch@gnu.org>

	* pickles/future/dwarf.pk: Remove.
	* pickles/dwarf.pk: Copied and adapted from future/dwarf.pk.
	* maps/elf.map: Add debug_info.

2020-08-27  Jose E. Marchesi  <jemarch@gnu.org>

	* gui/poke-gui.c: Include locale.h, for setlocale.

2020-08-27  Jose E. Marchesi  <jemarch@gnu.org>

	* pickles/leb128.pk: Simplify pretty printing.

2020-08-26  Jose E. Marchesi  <jemarch@gnu.org>

	* pickles/bpf.pk (BPF_Insn_Opcode.class): Turn into method.
	(BPF_Insn_Opcode.imm64): Likewise.

2020-08-26  Jose E. Marchesi  <jemarch@gnu.org>

	* libpoke/pkl-anal.c (pkl_anal1_ps_type_struct): Allow methods
	anywhere in union types.  Declarations are still only allowed
	before alternatives.
	* libpoke/pkl-gen.pks (struct_mapper): Support methods in union
	types.
	(struct_constructor): Likewise.
	* testsuite/poke.pkl/scons-union-method-1.pk: New test.
	* testsuite/poke.pkl/scons-union-method-2.pk: Likewise
	* testsuite/poke.pkl/scons-union-method-3.pk: Likewise.
	* testsuite/poke.pkl/scons-union-method-4.pk: Likewise.
	* testsuite/poke.map/maps-unions-method-1.pk: Likewise.
	* testsuite/poke.map/maps-unions-method-2.pk: Likewise.
	* testsuite/poke.map/maps-unions-method-3.pk: Likewise.
	* testsuite/poke.pkl/union-pretty-print-1.pk: Likewise.
	* testsuite/Makefile.am (EXTRA_DIST): Add new tests.

2020-08-26  Jose E. Marchesi  <jemarch@gnu.org>

	* libpoke/pk-val.c (pk_type_code): Fix regression.
	* poke/pk-map.c (pk_map_load_parsed_map): Remove spurious trace.

2020-08-26  Jose E. Marchesi  <jemarch@gnu.org>

	* pickles/elf.pk (Elf64_File.section_name_p): New method.

2020-08-26  Jose E. Marchesi  <jemarch@gnu.org>

	* libpoke/pkl-gen.pks (struct_field_mapper): Keep the right
	lexical environment when subpassing results in a constraint
	exception.
	* testsuite/poke.map/maps-unions-11.pk: New test.
	* testsuite/poke.map/maps-unions-12.pk: Likewise.
	* testsuite/poke.map/maps-unions-13.pk: Likewise.
	* testsuite/poke.pkl/scons-56.pk: Likewise.
	* testsuite/Makefile.am (EXTRA_DIST): Add new tests.

2020-08-25  Jose E. Marchesi  <jemarch@gnu.org>

	* libpoke/pkl-tab.y: IN has a bigger priority than AND and OR.
	* testsuite/poke.pkl/in-8.pk: New test.
	* testsuite/poke.pkl/in-9.pk: Likewise.

2020-08-21  Jose E. Marchesi  <jemarch@gnu.org>

	* cfg.mk (sc_tests_listed_in_makefile_am): New rule.

2020-08-21  Jose E. Marchesi  <jemarch@gnu.org>

	* testsuite/Makefile.am (EXTRA_DIST): Add trim-26.pk, scons-55.pk,
	add-int-struct-4.pk, poke.pkl/offset-type-diag-6.pk,
	offset-type-1.pk.

2020-08-21  Jose E. Marchesi  <jemarch@gnu.org>

	* libpoke/pkl-typify.c (pkl_typify1_ps_trimmer): The type of a
	trimmed array is unbounded.
	* testsuite/poke.pkl/trim-26.pk: New test.

2020-08-20  Jose E. Marchesi  <jemarch@gnu.org>

	* libpoke/pkl-gen.pks (struct_constructor): Avoid invalid memory
	access.
	(struct_mapper): Likewise.
	* testsuite/poke.pkl/scons-55.pk: New test.

2020-08-20  Jose E. Marchesi  <jemarch@gnu.org>

	* pickles/btf.pk (BTF_Type): Fix ordering of fields in `info', and
	add pretty-printer for `info'.
	(BTF_KIND_UNKNOWN): Define.
	(btf_kind_names): Likewise.
	* libpoke/pkl-anal.c (pkl_anal1_ps_type_struct): Allow methods
	after union fields.

2020-08-20  Jose E. Marchesi  <jemarch@gnu.org>

	* libpoke/pkl-gen.c (pkl_gen_ps_cast): Struct types used in casts
	may not have integrators compiled, if they are anonymous structs.
	* libpoke/pkl-gen.pks (struct_integrator): Fix stale reference to
	type_struct.
	* testsuite/poke.pkl/add-int-struct-4.pk: New test.

2020-08-20  Jose E. Marchesi  <jemarch@gnu.org>

	* pickles/btf.pk (btf_types): Fix offset.
	(btf_strings): Likewise.
	(BTF_Header): Fix endian determination.

2020-08-20  Jose E. Marchesi  <jemarch@gnu.org>

	* libpoke/pkl-ast.c (pkl_ast_type_is_complete): Fix logic in the
	determination on whether a struct type is complete.
	* testsuite/poke.pkl/offset-type-diag-6.pk: New test.

2020-08-18  Jose E. Marchesi  <jemarch@gnu.org>

	* libpoke/pkl-promo.c (pkl_promo_ps_type_offset): New handler.
	(pkl_phase_promo): Use handler.
	* libpoke/pkl-trans.c (pkl_trans2_ps_type_offset): Renamed from
	pkl_trans2_ps_offset_type.
	(pkl_phase_trans2): Likewise.
	* testsuite/poke.pkl/offset-type-1.pk: New test.

2020-08-17  Jose E. Marchesi  <jemarch@gnu.org>

	* pickles/btf.pk (BTF_Type): Make `info' an integral struct.
	(BTF_Int): Turn into an integral struct.

2020-08-17  Jose E. Marchesi  <jemarch@gnu.org>

	* pickles/btf.pk (BTF_Type): Move the vararg_p method from
	BTF_Func_Proto to BTF_Type.

2020-08-17  Jose E. Marchesi  <jemarch@gnu.org>

	* pickles/bmp.pk (BMP_Info_Header): Make `num_colors' a method and
	not a function.

2020-08-07  Kostas Chasialis  <sdi1600195@di.uoa.gr>

	* libpoke/pvm-val.c (pvm_type_equal): Bugfixes.

2020-08-04  Jose E. Marchesi  <jemarch@gnu.org>

	* libpoke/libpoke.h: Document that PK_NULL should have the same
	value than PVM_NULL.

2020-08-03  Kostas Chasialis  <sdi1600195@di.uoa.gr>

	* libpoke/pvm-val.c (pvm_typeof): pvm_integral_type now represents
	signed_p as int.
	(pvm_type_equal): Updated accordingly.
	(pvm_print_val_1): Likewise.

2020-08-03  Kostas Chasialis  <sdi1600195@di.uoa.gr>

	* libpoke/pk-val.c (pk_type_code): Now return PK_UINT
	if integral type is unsigned.
	* etc/pk-mi-json-schema.json (json_schema) : Changed "offsets"
	to "boffsets" on arrays and structs.

2020-08-02  Kostas Chasialis  <sdi1600195@di.uoa.gr>

	* libpoke/libpoke.h: Change poke to Poke on function documentations.

2020-08-01  Bruno Haible  <bruno@clisp.org>

	Update after gnulib changed.
	* configure.ac: Invoke gl_LIBTEXTSTYLE_OPTIONAL explicitly.

2020-07-27  Kostas Chasialis  <sdi1600195@di.uoa.gr>

	* etc/pk-mi-json-schema.json (json_schema): Indentation fixes.
	* libpoke/libpoke.h (pk_make_struct): Fixed function documentation.

2020-07-25  Jose E. Marchesi  <jemarch@gnu.org>

	* doc/poke.texi (Command Files): Renamed from Scripts.
	(Scripts): Renamed from Shebang.
	(Modifying SBM Images): Fix typo.

2020-07-24  Jose E. Marchesi  <jemarch@gnu.org>

	* libpoke/pvm-val.h (PVM_VAL_TYP_I_SIGNED_P): Renamed from
	PVM_VAL_TYP_I_SIGNED.
	* libpoke/pkl.c (pvm_type_to_ast_type): Update accordingly.
	* libpoke/pvm-val.c (pvm_make_integral_type): Likewise.
	(pvm_print_val_1): Likewise.
	(pvm_type_equal): Likewise.
	* libpoke/pk-val.c (pk_integral_type_signed_p): Likewise.

2020-07-24  Jose E. Marchesi  <jemarch@gnu.org>

	* doc/poke.texi: Change title.

2020-07-24  Jose E. Marchesi  <jemarch@gnu.org>

	* libpoke/pkl-anal.c (pkl_anal1_ps_type_struct): Integral structs
	cannot be pinned.
	* testsuite/poke.pkl/pinned-int-struct-1.pk: New test.
	* testsuite/Makefile.am (EXTRA_DIST): Update.
	* doc/poke.texi (Pinned Structs): Document that integral structs
	cannot be pinned.

2020-07-24  Jose E. Marchesi  <jemarch@gnu.org>

	* doc/poke.texi (Integral Structs): Document explicit casts to
	integral types, and coercions.

2020-07-23  Jose E. Marchesi  <jemarch@gnu.org>

	* libpoke/pkl-ast.h (PKL_AST_TYPE_I_SIGNED_P): Rename from
	PKL_AST_TYPE_I_SIGNED.
	* libpoke/pkl-promo.c: Likewise.
	* libpoke/pkl-gen.c: Likewise.
	* libpoke/pkl-fold.c: Likewise.
	* libpoke/pkl-ast.c: Likewise.
	* libpoke/pkl-asm.c: Likewise.
	* libpoke/pkl-typify.c: Likewise.
	* libpoke/pkl.c: Likewise.

2020-07-23  Jose E. Marchesi  <jemarch@gnu.org>

	* libpoke/pkl-ast.c (pkl_ast_type_promoteable): Integral struct
	types can be promoted to integral types.
	* libpoke/pkl-typify.c (TYPIFY_BIN): Consider integral structs as
	integers in binary operators.
	(pkl_typify1_ps_bshift_pow): Likewise.
	(pkl_typify1_ps_mul): Likewise.
	(pkl_typify1_ps_op_bconc): Likewise.
	(pkl_typify1_ps_op_boolean): Likewise.
	(pkl_typify1_ps_first_operand): Likewise.
	(pkl_typify1_ps_op_not): Likewise.
	(pkl_typify1_ps_loop_stmt): Likewise.
	(pkl_typify1_ps_if_stmt): Likewise.
	* libpoke/pkl-anal.c (pkl_anal1_ps_op_sl): Likewise.
	* libpoke/pkl-promo.c (promote_integral): Support promoting
	integral structs.
	(pkl_promo_ps_op_mul): Likewise.
	(pkl_promo_ps_op_rela): Likewise.
	(pkl_promo_ps_op_div): Likewise.
	(pkl_promo_ps_cond_exp): Likewise.
	(pkl_promo_ps_struct_type_field): Likewise.
	(pkl_phase_promo): Promote OP_NEG, OP_POS and OP_BNOT.
	(pkl_promo_ps_op_bconc): New handler.
	(pkl_promo_ps_if_stmt): Likewise.
	(pkl_promo_ps_loop_stmt): Likewise.
	(pkl_phase_promo): Install new handlers.
	* testsuite/poke.pkl/add-int-struct-1.pk: New test.
	* testsuite/poke.pkl/add-int-struct-2.pk: Likewise.
	* testsuite/poke.pkl/add-int-struct-3.pk: Likewise.
	* testsuite/poke.pkl/sub-int-struct-1.pk: Likewise.
	* testsuite/poke.pkl/sub-int-struct-2.pk: Likewise.
	* testsuite/poke.pkl/sub-int-struct-3.pk: Likewise.
	* testsuite/poke.pkl/mul-int-struct-1.pk: Likewise.
	* testsuite/poke.pkl/mul-int-struct-2.pk: Likewise.
	* testsuite/poke.pkl/mul-int-struct-3.pk: Likewise.
	* testsuite/poke.pkl/div-int-struct-1.pk: Likewise.
	* testsuite/poke.pkl/div-int-struct-2.pk: Likewise.
	* testsuite/poke.pkl/div-int-struct-3.pk: Likewise.
	* testsuite/poke.pkl/and-int-struct-1.pk: Likewise.
	* testsuite/poke.pkl/and-int-struct-2.pk: Likewise.
	* testsuite/poke.pkl/and-int-struct-3.pk: Likewise.
	* testsuite/poke.pkl/or-int-struct-1.pk: Likewise.
	* testsuite/poke.pkl/or-int-struct-2.pk: Likewise.
	* testsuite/poke.pkl/or-int-struct-3.pk: Likewise.
	* testsuite/poke.pkl/not-int-struct-1.pk: Likewise.
	* testsuite/poke.pkl/neg-int-struct-1.pk: Likewise.
	* testsuite/poke.pkl/pos-int-struct-1.pk: Likewise.
	* testsuite/poke.pkl/band-int-struct-1.pk: Likewise.
	* testsuite/poke.pkl/band-int-struct-2.pk: Likewise.
	* testsuite/poke.pkl/band-int-struct-3.pk: Likewise.
	* testsuite/poke.pkl/ior-int-struct-1.pk: Likewise.
	* testsuite/poke.pkl/ior-int-struct-2.pk: Likewise.
	* testsuite/poke.pkl/ior-int-struct-3.pk: Likewise.
	* testsuite/poke.pkl/bnot-int-struct-1.pk: Likewise.
	* testsuite/poke.pkl/xor-int-struct-1.pk: Likewise.
	* testsuite/poke.pkl/xor-int-struct-2.pk: Likewise.
	* testsuite/poke.pkl/xor-int-struct-3.pk: Likewise.
	* testsuite/poke.pkl/bconc-int-struct-1.pk: Likewise.
	* testsuite/poke.pkl/bconc-int-struct-2.pk: Likewise.
	* testsuite/poke.pkl/bconc-int-struct-3.pk: Likewise.
	* testsuite/poke.pkl/cdiv-int-struct-1.pk: Likewise.
	* testsuite/poke.pkl/cdiv-int-struct-2.pk: Likewise.
	* testsuite/poke.pkl/cdiv-int-struct-3.pk: Likewise.
	* testsuite/poke.pkl/sl-int-struct-1.pk: Likewise.
	* testsuite/poke.pkl/sl-int-struct-2.pk: Likewise.
	* testsuite/poke.pkl/sr-int-struct-1.pk: Likewise.
	* testsuite/poke.pkl/sr-int-struct-2.pk: Likewise.
	* testsuite/poke.pkl/promo-int-struct-arg-1.pk: Likewise.
	* testsuite/poke.pkl/promo-int-struct-return-1.pk: Likewise.
	* testsuite/poke.pkl/if-int-struct-1.pk: Likewise.
	* testsuite/poke.pkl/while-int-struct-1.pk: Likewise.
	* testsuite/poke.pkl/while-3.pk: Likewise.
	* testsuite/poke.pkl/for-in-5.pk: Likewise.
	* testsuite/poke.pkl/for-in-int-struct-1.pk: Likewise.
	* testsuite/poke.pkl/cond-exp-int-struct-1.pk: Likewise.
	* testsuite/poke.pkl/cond-exp-int-struct-2.pk: Likewise.
	* testsuite/poke.map/maps-int-struct-constraint-1.pk: Likewise.
	* testsuite/poke.map/maps-int-struct-constraint-2.pk: Likewise.
	* testsuite/poke.map/map-opcond-int-struct-1.pk: Likewise.
	* testsuite/poke.map/map-opcond-int-struct-2.pk: Likewise.
	* testsuite/Makefile.am (EXTRA_DIST): Update with new tests.

2020-07-23  Jose E. Marchesi  <jemarch@gnu.org>

	* libpoke/pkl-gen.pks (struct_field_inserter): Take into account
	the struct offse in calculations.
	* testsuite/poke.pkl/cast-int-struct-2.pk: New test.
	* testsuite/poke.pkl/cast-int-struct-3.pk: Likewise.
	* testsuite/Makefile.am (EXTRA_DIST): Update with new tests.

2020-07-22  Jose E. Marchesi  <jemarch@gnu.org>

	* libpoke/pkl-ast.h (PKL_AST_TYPE_S_INTEGRATOR): Define.
	(sct): New field integrator.
	* libpoke/pkl-ast.c (pkl_ast_make_struct_type): Handle the
	integrator.
	(pkl_ast_node_free): Likewise.
	* libpoke/pkl-gen.h: Note that IN_WRITER is also used for struct
	integrators.
	* libpoke/pkl-gen.c (pkl_gen_pr_decl): Compile integrators for
	integral structs.
	(pkl_gen_ps_cast): Handle casts from struct to integral.
	* libpoke/pkl-gen.pks (struct_integrator): New RAS function.
	* libpoke/pkl-typify.c (pkl_typify1_ps_cast): Allow casts from
	integral structs to integral types.
	* testsuite/poke.pkl/cast-struct-diag-3.pk: New test.
	* testsuite/poke.pkl/cast-int-struct-1.pk: Likewise.
	* testsuite/Makefile.am (EXTRA_DIST): Update with new tests.
	* doc/poke.texi (Casting Structs): Document casts from integral
	struct to integral type.
	(Integral Structs): Likewise.

2020-07-21  Jose E. Marchesi  <jemarch@gnu.org>

	* testsuite/poke.pkl/scons-int-struct-3.pk: New test.
	* testsuite/poke.map/maps-int-structs-19.pk: Likewise.
	* testsuite/poke.map/maps-int-structs-20.pk: Likewise.
	* testsuite/Makefile.am (EXTRA_DIST): Update with new tests.

2020-07-21  Jose E. Marchesi  <jemarch@gnu.org>

	* libpoke/pkl-gen.c (pkl_gen_pr_type_struct): Handle gen
	environment properly before and after calling
	RAS_FUNCTION_STRUCT_WRITER.
	(pkl_gen_pr_type_array): Ditto for RAS_FUNCTION_ARRAY_WRITER.

2020-07-21  Jose E. Marchesi  <jemarch@gnu.org>

	* testsuite/poke.map/map-int-structs-17.pk: New test.
	* testsuite/poke.map/map-int-structs-18.pk: Likewise.
	* testsuite/poke.pkl/scons-int-struct-1.pk: Likewise.
	* testsuite/poke.pkl/scons-int-struct-2.pk: Likewise.
	* testsuite/Makefile.am (EXTRA_DIST): Update with new tests.

2020-07-21  Jose E. Marchesi  <jemarch@gnu.org>

	* pickles/id3v2.pk: Moved from future and adapted to actual Poke.

2020-07-21  Jose E. Marchesi  <jemarch@gnu.org>

	* libpoke/pkl-typify.c (pkl_typify1_ps_op_rela): Do not allow
	operands of type any.
	* testsuite/poke.pkl/eq-any-diag-1.pk: New test.
	* testsuite/poke.pkl/neq-any-diag-1.pk (equalstructs): Likewise.
	* testsuite/Makefile.am (EXTRA_DIST): Update with new tests.

2020-07-21  Jose E. Marchesi  <jemarch@gnu.org>

	* libpoke/pkl-fold.c (pkl_fold_ps_cast): Fix masking of the
	resulting magnitude of converted offsets.
	* testsuite/poke.pkl/cast-offsets-5.pk: New test.
	* testsuite/Makefile.am (EXTRA_DIST): Add new tests.

2020-07-21  Jose E. Marchesi  <jemarch@gnu.org>

	* libpoke/pkl-gen.pks (struct_field_inserter): Simplify code.
	(struct_mapper): Likewise.
	(struct_comparator): Likewise.
	(struct_constructor): Likewise.

2020-07-20  Jose E. Marchesi  <jemarch@gnu.org>

	* libpoke/ras: Rename .arg to .let, support initialization
	expressions, and substitute RAS variables in literal C.
	* libpoke/pkl-gen.pks (struct_field_extractor): Make use of these
	new goodies.

2020-07-20  Jose E. Marchesi  <jemarch@gnu.org>

	* libpoke/ras: Support for .arg directives.
	* libpoke/pkl-gen.pks: Make use of them.

2020-07-20  Jose E. Marchesi  <jemarch@gnu.org>

	* libpoke/pkl-gen.pks (array_mapper): Use macro arguments to
	access AST nodes instead of relying on the context.
	(array_valmapper): Likewise.
	(array_writer): Likewise.
	(array_bounder): Likewise.
	(array_constructor): Likewise.
	* libpoke/pkl-gen.c: Adjust accordingly.

2020-07-20  Jose E. Marchesi  <jemarch@gnu.org>

	* libpoke/pkl-gen.pks (struct_mapper): Use macro arguments to
	access AST nodes, instead of relying on the context.
	(struct_comparator): Likewise.
	(struct_constructor): Likewise.
	(struct_writer): Likewise.
	(struct_field_writer): Likewise.
	(handle_struct_field_constraints): Likewise.
	* libpoke/pkl-gen.c: Adapt accordingly.

2020-07-20  Jose E. Marchesi  <jemarch@gnu.org>

	* libpoke/ras: Support arguments in RAS functions.

2020-07-20  Jose E. Marchesi  <jemarch@gnu.org>

	* HACKING (Calling compiled Poke from RAS): New section.

2020-07-20  Jose E. Marchesi  <jemarch@gnu.org>

	* libpoke/ras: Support for the .call directive.

2020-07-20  Jose E. Marchesi  <jemarch@gnu.org>

	* libpoke/ras: Use RAS_PUSH_ASM and RAS_POP_ASM instead of the
	PKL_GEN_ macros.
	* libpoke/pkl-gen.c (RAS_PUSH_ASM): Define.
	(RAS_POP_ASM): Likewise.

2020-07-20  Jose E. Marchesi  <jemarch@gnu.org>

	* libpoke/pkl-tab.y (integral_struct): Accept any
	simple_type_specifier after struct.
	* libpoke/pkl-typify.c (pkl_typify1_ps_type_struct): Make sure the
	type associated with an integral struct is itself integral.
	* pickles/elf.pk (Elf64_RelInfo): Use Elf64_Xword as the integer
	type of the struct.
	* testsuite/poke.pkl/int-struct-type-diag-14.pk: New test.
	* testsuite/poke.pkl/int-struct-1.pk: Likewise.
	* testsuite/poke.pkl/int-struct-2.pk: Likewise.
	* testsuite/Makefile.am (EXTRA_DIST): Add new tests.

2020-07-19  Jose E. Marchesi  <jemarch@gnu.org>

	* pickles/elf.pk (elf_stv_names): Define.
	(STT_NOTYPE): Likewise.
	(STT_OBJECT): Likewise.
	(STT_FUNC): Likewise.
	(STT_SECTION): Likewise.
	(STT_FILE): Likewise.
	(STT_COMMON): Likewise.
	(STT_TLS): Likewise.
	(STT_NUM): Likewise.
	(STT_LOOS): Likewise.
	(STT_GNU_IFUNC): Likewise.
	(STT_HIOS): Likewise.
	(STT_LOPROC): Likewise.
	(STT_HIPROC): Likewise.
	(elf_stt_names): Likewise.
	(elf_stb_names): Likewise.
	(Elf64_Sym): Pretty-printers for st_info and st_other.
	* TODO: Update.

2020-07-19  Jose E. Marchesi  <jemarch@gnu.org>

	* libpoke/pkl-gen.pks (struct_field_inserter): Remove description
	of the no-longer required C environment for this macro.
	* libpoke/ras: Document how macro/function arguments can be
	referred inside literal C directives.

2020-07-19  Jose E. Marchesi  <jemarch@gnu.org>

	* testsuite/poke.map/maps-int-structs-14.pk: Avoid cast.
	* testsuite/poke.map/maps-int-structs-16.pk: Likewise.
	* pickles/elf.pk (Elf64_Sym): st_info should not be an integral
	struct.

2020-07-19  Jose E. Marchesi  <jemarch@gnu.org>

	* libpoke/pkl-gen.pks (struct_writer): Support integral structs.
	(struct_field_inserter): New macro.
	* libpoke/pvm.jitter (srefia): Fix instruction.
	* libpoke/pkl-typify.c (pkl_typify1_ps_type_struct): Do not allow
	optional fields in integral structs.
	* testsuite/poke.map/maps-int-structs-13.pk: New test.
	* testsuite/poke.map/maps-int-structs-14.pk: Likewise.
	* testsuite/poke.map/maps-int-structs-15.pk: Likewise.
	* testsuite/poke.map/maps-int-structs-16.pk: Likewise.
	* testsuite/poke.map/maps-int-structs-17.pk: Likewise.
	* testsuite/poke.pkl/int-struct-type-diag-13.pk: Likewise.
	* testsuite/Makefile.am (EXTRA_DIST): Add new tests.

2020-07-19  Jose E. Marchesi  <jemarch@gnu.org>

	* libpoke/pkl-ast.h (PKL_AST_TYPE_S_PINNED_P): Renamed from
	PKL_AST_TYPE_S_PINNED.
	* libpoke/pkl-ast.c (pkl_ast_make_struct_type): Adapt accordingly.
	(pkl_ast_dup_type): Likewise.
	(pkl_ast_print_1): Likewise.
	* libpoke/pkl-gen.pks (struct_mapper): Likewise.
	(struct_constructor): Likewise.

2020-07-19  Jose E. Marchesi  <jemarch@gnu.org>

	* testsuite/poke.map/maps-int-structs-12.pk: New test.
	* testsuite/Makefile.am (EXTRA_DIST): Add new test.

2020-07-19  Jose E. Marchesi  <jemarch@gnu.org>

	* libpoke/pkl-typify.c (pkl_typify1_ps_type_struct): Handle offset
	fields.
	* libpoke/pkl-gen.pks (struct_mapper): Support offset fields in
	integral structs.
	(struct_field_extractor): Likewise.
	* testsuite/poke.pkl/int-struct-type-diag-12.pk: New test.
	* testsuite/poke.map/maps-int-structs-11.pk: Likewise.
	* testsuite/poke.map/maps-int-structs-10.pk: Likewise.
	* testsuite/Makefile.am (EXTRA_DIST): Add new tests.
	* pickles/ctf.pk (CTF_Name): Turn into an integral struct.

2020-07-19  Jose E. Marchesi  <jemarch@gnu.org>

	* pickles/elf.pk (Elf64_RelInfo): Turn into an integral struct.
	(st_info): Likewise.
	* pickles/ctf.pk (CTF_Type_Id): Likewise.
	(CTF_Info): Likewise.

2020-07-19  Jose E. Marchesi  <jemarch@gnu.org>

	* libpoke/pkl-gen.pks (struct_mapper): Use null as a dummy and not
	an uint<64>0.

2020-07-19  Jose E. Marchesi  <jemarch@gnu.org>

	* testsuite/Makefile.am (EXTRA_DIST): Add missing tests.

2020-07-19  Jose E. Marchesi  <jemarch@gnu.org>

	* libpoke/pkl-tab.y (struct_type_specifier): Register one more
	dummy.
	* libpoke/pkl-gen.pks (struct_mapper): Support for mapping
	integral structs.
	(struct_constructor): Match the lexical
	structure of struct_mapper.
	(struct_field_mapper): Adapt to new lexical structure of
	struct_mapper.
	(struct_field_extractor): New macro.
	(handle_struct_field_constraints): New macro.
	* libpoke/pkl-typify.c (pkl_typify1_ps_type_struct): Do not allow
	integral structs inside other integral structs.
	* testsuite/poke.pkl/int-struct-type-diag-10.pk: Adapt accordingly.
	* testsuite/poke.pkl/int-struct-type-diag-8.pk: Likewise.
	* testsuite/poke.pkl/int-struct-type-diag-9.pk: Likewise.
	* testsuite/poke.map/maps-int-structs-1.pk: New test.
	* testsuite/poke.map/maps-int-structs-2.pk: Likewise.
	* testsuite/poke.map/maps-int-structs-5.pk: Likewise.
	* testsuite/poke.map/maps-int-structs-4.pk: Likewise.
	* testsuite/poke.map/maps-int-structs-3.pk: Likewise.
	* testsuite/poke.map/maps-int-structs-6.pk: Likewise.
	* testsuite/poke.map/maps-int-structs-7.pk: Likewise.
	* testsuite/poke.map/maps-int-structs-8.pk: Likewise.
	* testsuite/poke.map/maps-int-structs-9.pk: Likewise.

2020-07-18  Jose E. Marchesi  <jemarch@gnu.org>

	* libpoke/pkl-gen.pks: Typo in comment fixed.

2020-07-18  Jose E. Marchesi  <jemarch@gnu.org>

	* libpoke/ios-dev.h (IOD_ERROR): Redefine to -1.
	(IOD_EOF): Redefine to -2.
	(IOD_EINVAL): Redefine to -3.
	* libpoke/ios.h: Remove IOS_EIOBJ.
	* libpoke/ios.c (IOS_PUT_C_ERR_CHCK): Replace IOS_EIOBJ with
	IOS_EIBOFF.
	(ios_write_int_fast): Likewise.
	* libpoke/pvm.jitter: Likewise.
	* testsuite/poke.pkl/ios-mem-5.pk: Update accordingly.
	* TODO: Update.

2020-07-18  Jose E. Marchesi  <jemarch@gnu.org>

	* poke/pk-copy.pk (copy): Make argument `to' to default to `from',
	and do not move data around if to == from and to_ios == from_ios.
	* doc/poke.texi (copy): Reflect change in documentation.

2020-07-18  Jose E. Marchesi  <jemarch@gnu.org>

	* testsuite/Makefile.am (EXTRA_DIST): Add poke.cmd/extract-1.pk,
	poke.map/maps-structs-labels-2.pk, poke.pkl/funcall-15.pk and
	poke.pkl/funcall-16.pk.

2020-07-18  Jose E. Marchesi  <jemarch@gnu.org>

	* poke/pk-extract.pk: New file.
	* poke/pk-cmd.pk: Load pk-extract.pk.
	* poke/Makefile.am (dist_pkgdata_DATA): Add pk-extract.pk.
	* doc/poke.texi (extract): New section.
	* testsuite/poke.cmd/extract-1.pk: New test.

2020-07-18  Jose E. Marchesi  <jemarch@gnu.org>

	* bootstrap.conf (gnulib_modules): Import glob module.
	* poke/pk-cmd.c (pk_cmd_exec_1): Use the more portable `glob' than
	`wordexp'.
	* testsuite/poke.cmd/file-relative.pk: Do not quote the file name.

2020-07-18  Jose E. Marchesi  <jemarch@gnu.org>

	* libpoke/pkl-promo.c (pkl_promo_ps_struct_type_field): Promote
	struct field labels to offset<uint<64>,b>.
	* libpoke/pkl-gen.pks (handle_struct_field_label): Simplify
	assuming that the label unit is bits.
	* testsuite/poke.map/maps-structs-labels-2.pk (Foo): New test.

2020-07-18  Jose E. Marchesi  <jemarch@gnu.org>

	* doc/poke.texi: Fix references to prototypes to not include a
	trailing colon.

2020-07-18  Jose E. Marchesi  <jemarch@gnu.org>

	* .x-sc_prohibit_magic_number_exit: Whitelist utils/*.

2020-07-18  Jose E. Marchesi  <jemarch@gnu.org>

	* libpoke/pvm.jitter (rand): Take an additional argument in the
	stack for the seed.
	* libpoke/pkl-rt.pk (rand): Redefine the builtin `rand' to take an
	optional argument for the seed.
	* libpoke/pkl-gen.c (pkl_gen_ps_comp_stmt): Likewise.
	* doc/poke.texi (rand): New section.

2020-07-18  Jose E. Marchesi  <jemarch@gnu.org>

	* utils/elfextractor: New file.
	* HACKING (Poke Utilities): New section.

2020-07-18  Jose E. Marchesi  <jemarch@gnu.org>

	* doc/poke.texi (From Bytes to Integers): Reflect new syntax for
	bit-concatenation.
	(Big and Little Endians): Likewise.

2020-07-18  Jose E. Marchesi  <jemarch@gnu.org>

	* doc/poke.texi (Unions): Note about placing most common
	alternatives first in unions.

2020-07-18  Jose E. Marchesi  <jemarch@gnu.org>

	* libpoke/pkl-tab.y (primary): Allow funcall statements.
	* testsuite/poke.pkl/funcall-15.pk: New test.
	* testsuite/poke.pkl/funcall-16.pk: Likewise.
	* doc/poke.texi (Calling Functions): Document that the funcall
	alternative syntax can be used in expressions.

2020-07-18  Jose E. Marchesi  <jemarch@gnu.org>

	* libpoke/pkl-ops.def: Remove unused ELEMSOF and TYPEOF operator
	definitions.

2020-07-18  Jose E. Marchesi  <jemarch@gnu.org>

	* doc/poke.texi (Casting Structs): Expand a little.

2020-07-17  Jose E. Marchesi  <jemarch@gnu.org>

	* libpoke/pkl-gen.pks: Remove obsolete comments.
	* libpoke/pkl-tab.y (INTEGER): Likewise.
	(identifier): Likewise.
	* libpoke/pk-val.c: Likewise.

2020-07-17  Bruno Haible  <bruno@clisp.org>

	Fix build failure during "make distcheck".
	* testsuite/Makefile.am (EXTRA_DIST): Remove all directories. Add
	individual files instead.
	* testsuite/poke.libpoke/Makefile.am (EXTRA_DIST): Add libpoke.exp.
	* testsuite/poke.mi-json/Makefile.am (EXTRA_DIST): Add mi-json.exp.
	* HACKING: Mention that test files need to be listed.

2020-07-17  Jose E. Marchesi  <jemarch@gnu.org>

	* libpoke/pkl-ast.h (PKL_AST_TYPE_S_UNION_P): Renamed from
	PKL_AST_TYPE_S_UNION.
	* libpoke/pkl-ast.c (pkl_ast_make_struct_type): Update
	accordingly.
	(pkl_ast_dup_type): Likewise.
	(pkl_ast_print_1): Likewise.
	* libpoke/pkl-typify.c (pkl_typify1_ps_type_struct): Likewise.
	* libpoke/pkl-gen.pks (struct_mapper): Likewise.
	* libpoke/pkl-anal.c (pkl_anal1_ps_type_struct): Likewise.
	(pkl_anal2_ps_type_struct): Likewise.

2020-07-17  Jose E. Marchesi  <jemarch@gnu.org>

	* libpoke/pkl-typify.c (pkl_typify1_ps_type_struct): Unions can't
	be integral.
	* testsuite/poke.pkl/int-struct-type-diag-11.pk: New test.

2020-07-17  Jose E. Marchesi  <jemarch@gnu.org>

	* libpoke/pkl-typify.c (pkl_typify1_ps_struct): Do not allow
	labels in fields in integral structs.
	* testsuite/poke.pkl/int-struct-type-diag-10.pk: New test.

2020-07-17  Jose E. Marchesi  <jemarch@gnu.org>

	* libpoke/pkl-ast.h (sct): New field sct.itype.
	(PKL_AST_TYPE_S_ITYPE): Define
	* libpoke/pkl-ast.c (pkl_ast_make_struct_type): Get itype as
	argument.
	(pkl_ast_print_1): Print out itype.
	* libpoke/pkl-typify.c (pkl_typify1_ps_struct): Pass itype to
	pkl_ast_make_struct_type.
	(pkl_typify1_ps_type_struct): New handler.
	(pkl_phase_typify1): Install handler.
	* libpoke/pkl-tab.y (integral_struct): New rule.
	(struct_type_specifier): Support for integral structs.
	* testsuite/poke.pkl/int-struct-type-diag-1.pk: New test.
	* testsuite/poke.pkl/int-struct-type-diag-2.pk: Likewise.
	* testsuite/poke.pkl/int-struct-type-diag-9.pk: Likewise.
	* testsuite/poke.pkl/int-struct-type-diag-8.pk: Likewise.
	* testsuite/poke.pkl/int-struct-type-diag-7.pk: Likewise.
	* testsuite/poke.pkl/int-struct-type-diag-6.pk: Likewise.
	* testsuite/poke.pkl/int-struct-type-diag-5.pk: Likewise.
	* testsuite/poke.pkl/int-struct-type-diag-4.pk: Likewise.
	* testsuite/poke.pkl/int-struct-type-diag-3.pk: Likewise.

2020-07-16  Jose E. Marchesi  <jemarch@gnu.org>

	* pickles/elf.pk (Elf64_File.get_section_by_name): Optimize
	slightly.

2020-07-16  Jose E. Marchesi  <jemarch@gnu.org>

	* pickles/elf.pk (Elf64_Phdr): Define.
	(Elf64_File): Add field phdr.
	(PT_NULL): Define.
	(PT_LOAD): Likewise.
	(PT_DYNAMIC): Likewise.
	(PT_INTERP): Likewise.
	(PT_NOTE): Likewise.
	(PT_SHLIB): Likewise.
	(PT_PHDR): Likewise.
	(PT_TLS): Likewise.
	(PT_LOOS): Likewise.
	(PT_HIOS): Likewise.
	(PT_LOPROC): Likewise.
	(PT_HIPROC): Likewise.
	(Elf64_SegmentFlags): Likewise.
	(PF_X): Likewise.
	(PF_W): Likewise.
	(PF_R): Likewise.
	(PF_MASKOS): Likewise.
	(PF_MASKPROC): Likewise.

2020-07-16  Jose E. Marchesi  <jemarch@gnu.org>

	* configure.ac: Fail if an usable Boehm GC library is not found at
	configure time.

2020-07-16  Jose E. Marchesi  <jemarch@gnu.org>

	* poke/poke.c (parse_args_1): Set that poke is invoked
	non-interactively when -L is used.
	(main): Initialize poke_interactive_p in main.

2020-07-14  Kostas Chasialis  <sdi1600195@di.uoa.gr>

	* etc/pk-mi-json-schema.json (json schema) : Fixed indentation style
	and change to PokeValue properties.

2020-07-14  Bruno Haible  <bruno@clisp.org>

	Fix build failure during "make check" without libjson-c.
	* testsuite/poke.mi-json/Makefile.am: Don't build anything if POKE_MI is
	false.
	* testsuite/poke.mi-json/mi-json.exp: Don't run any test if
	poke.mi-json/mi-json wasn't built.

2020-07-14  Jose E. Marchesi  <jemarch@gnu.org>

	* libpoke/pk-val.c: Remove trailing spaces.
	* libpoke/libpoke.h: Likewise.

2020-07-14  Kostas Chasialis  <sdi1600195@di.uoa.gr>

	* libpoke/libpoke.h (pk_make_struct_type): Prototype.
	(pk_struct_type): Likewise.
	(pk_allocate_struct_attrs): Likewise.
	(pk_struct_type_name): Likewise.
	(pk_struct_type_nfields): Likewise.
	(pk_struct_type_fname): Likewise.
	(pk_struct_type_set_fname): Likewise.
	(pk_struct_type_ftype): Likewise.
	(pk_struct_type_set_ftype): Likewise.
	* libpoke/pk-val.c (pk_make_struct_type): Define.
	(pk_struct_type): Likewise.
	(pk_allocate_struct_attrs): Likewise.
	(pk_struct_type_name): Likewise.
	(pk_struct_type_nfields): Likewise.
	(pk_struct_type_fname): Likewise.
	(pk_struct_type_set_fname): Likewise.
	(pk_struct_type_ftype): Likewise.
	(pk_struct_type_set_ftype): Likewise.

2020-07-14  Jose E. Marchesi  <jemarch@gnu.org>

	* testsuite/poke.mi-json/mi-json.c (pk_fatal): Use EXIT_FAILURE
	instead of hardcoded 1.
	* libpoke/ios-dev.h (IOS_FILE_HANDLER_NORMALIZE): Replace tabs
	with whitespaces.

2020-07-14  Jose E. Marchesi  <jemarch@gnu.org>

	* poke/poke.c (pk_print_version): Change jemarch for "the poke
	authors".
	* doc/poke.texi: Likewise.

2020-07-14  Jose E. Marchesi  <jemarch@gnu.org>

	* libpoke/ios-dev.h (IOS_FILE_HANDLER_NORMALIZE): Fix logic.

2020-07-14  Jose E. Marchesi  <jemarch@gnu.org>

	* libpoke/pkl-gen.c (pkl_gen_pr_map): Fix subpassing on the map
	offset when it is on the left side of an assignment.

2020-07-13  Egeyar Bagcioglu  <egeyar@gmail.com>

	* libpoke/ios-dev-file.c (ios_dev_file_handler_normalize): Move
	the file name normalization logic from here ...
	* libpoke/ios-dev.h (IOS_FILE_HANDLER_NORMALIZE): ... to here.

2020-07-13  Jose E. Marchesi  <jemarch@gnu.org>

	* .x-sc_bindtextdomain: New file.
	* testsuite/poke.mi-json/Makefile.am: New file.
	* testsuite/poke.mi-json/mi-json.c: Likewise.
	* testsuite/poke.mi-json/json.exp: Likewise.
	* configure.ac: AC_CONFIG testsuite/poke.mi-json/Makefile.
	* testsuite/Makefile.am (SUBDIRS): Add poke.mi-json.
	* poke/pk-mi-json.c (pk_mi_json_to_msg): Do not print tokener
	diagnostics.
	* HACKING (Test Suite): Update.

2020-07-13  Bruno Haible  <bruno@clisp.org>

	Fix build failure during "make check".
	* bootstrap.conf (libpoke_modules): Add vasprintf-posix.
	(ACLOCAL_FLAGS): New variable.
	* Makefile.am (ACLOCAL_AMFLAGS): Add -I options for the second and third
	gnulib-tool invocation.
	* configure.ac: Invoke libpoke_EARLY, gui_EARLY, libpoke_INIT, gui_INIT.

2020-07-12  Jose E. Marchesi  <jemarch@gnu.org>

	* testsuite/Makefile.am (EXTRA_DIST): Add libpoke.
	* testsuite/poke.libpoke/libpoke.exp: New file.
	* testsuite/poke.libpoke/Makefile.am: Likewise.
	* testsuite/poke.libpoke/values.c: Likewise.
	* testsuite/poke.libpoke/term-if.h: Likewise.
	* configure.ac: AC_CONFIG testsuite/libpoke/Makefile.
	* HACKING (Unit Tests): New section.

2020-07-12  Jose E. Marchesi  <jemarch@gnu.org>

	* libpoke/pkl-ast.h (PKL_AST_BUILTIN_FORGET): Define.
	* libpoke/pkl-tab.y (BUILTIN_FORGET): Define.
	(builtin): Handle BUILTIN_FORGET.
	* libpoke/pkl-lex.l: Handle __PKL_BUILTIN_FORGET__.
	* libpoke/pkl-rt.pk (flush): Define.
	* doc/poke.texi (flush): New section.
	* libpoke/pkl-insn.def (PKL_INSN_FLUSH): Define.
	* libpoke/pvm.jitter (flush): New instruction.

2020-07-12  Egeyar Bagcioglu  <egeyar@gmail.com>

	* libpoke/ios-dev-file.c (ios_dev_file_handler_normalize): Add
	parameter "flags".
	* libpoke/ios-dev-mem.c (ios_dev_mem_handler_normalize): Likewise.
	* libpoke/ios-dev-nbd.c (ios_dev_nbd_handler_normalize): Likewise.
	* libpoke/ios-dev.h (struct ios_dev_if): Add parameter "flags" to
	handler_normalize.
	* libpoke/ios.c (ios_open): Pass "flags" to handler_normalize.

2020-07-12  Egeyar Bagcioglu  <egeyar@gmail.com>

	* libpoke/ios.h (ios_flush): New.
	* libpoke/ios.c (ios_flush): New.
	* libpoke/ios-dev.h (struct ios_dev_if): Add new member "flush".
	* libpoke/ios-dev-file.c (ios_dev_file_flush): New.
	* libpoke/ios-dev-mem.c (ios_dev_mem_flush): New.
	* libpoke/ios-dev-nbd.c (ios_dev_nbd_flush): New.

2020-07-12  Jose E. Marchesi  <jemarch@gnu.org>

	* libpoke/pk-val.c: Remove trailing whitespace.
	* libpoke/libpoke.h: Likewise.
	* etc/pk-mi-json-schema.json: Add missing newline at EOF.

2020-07-02  Kostas Chasialis  <sdi1600195@di.uoa.gr>

	* libpoke/libpoke.h (pk_make_struct): Prototype.
	(pk_struct_nfields): Likewise.
	(pk_struct_field_boffset): Likewise.
	(pk_struct_set_field_boffset): Likewise.
	(pk_struct_field_name): Likewise.
	(pk_struct_set_field_name): Likewise.
	(pk_struct_field_value): Likewise.
	(pk_struct_set_field_value): Likewise.
	* libpoke/pk-val.c (pk_make_struct): Define.
	(pk_struct_nfields): Likewise.
	(pk_struct_field_boffset): Likewise.
	(pk_struct_set_field_boffset): Likewise.
	(pk_struct_field_name): Likewise.
	(pk_struct_set_field_name): Likewise.
	(pk_struct_field_value): Likewise.
	(pk_struct_set_field_value): Likewise.

2020-07-02  Kostas Chasialis  <sdi1600195@di.uoa.gr>

	* libpoke/libpoke.h (pk_array_elem_val): Prototype documentation
	now describes what happens in case invalid IDX is passed.
	(pk_array_set_elem_val): Likewise.
	(pk_array_elem_boffset): Likewise.
	(pk_array_set_elem_boffset): Likewise.
	* libpoke/pk-val.c (pk_array_elem_val): Check for IDX.
	(pk_array_set_elem_val): Likewise.
	(pk_array_elem_boffset): Likewise.
	(pk_array_set_elem_boffset): Likewise.

2020-07-02  Kostas Chasialis  <sdi1600195@di.uoa.gr>

	* etc/pk-mi-json-schema.json : JSON Schema

2020-06-30  Jose E. Marchesi  <jemarch@gnu.org>

	* libpoke/pkl-tab.y (expression): Finish break statements in the
	try-until body.
	* libpoke/pkl-gen.c (pkl_gen_pr_try_until_stmt): Use
	pkl_asm_loop/pkl_asm_endloop to support `break' statements in the
	body.
	* doc/poke.texi (try-until): Mention that `break' is allowed in
	try-until loops.
	* testsuite/poke.pkl/try-until-4.pk: New test.
	* testsuite/poke.pkl/try-until-6.pk: Likewise.
	* testsuite/poke.pkl/try-until-5.pk: Likewise.

2020-06-30  Jose E. Marchesi  <jemarch@gnu.org>

	* libpoke/pkl-gen.c (pkl_gen_pr_loop_stmt): Use pkl_asm_while_loop
	and pkl_asm_while_endloop.
	* libpoke/ras: Likewise.
	* libpoke/pkl-asm.h (pkl_asm_while_loop): Renamed from
	pkl_asm_loop.
	(pkl_asm_while_endloop): Renamed from pkl_asm_endloop.
	(pkl_asm_loop): New prototype.
	(pkl_asm_endloop): Likewise.
	* libpoke/pkl-asm.c (pkl_asm_while_loop): Likewise.
	(pkl_asm_while_endloop): Likewise.
	(pkl_asm_loop): New function.
	(pkl_asm_endloop): Likewise.

	* testsuite/poke.pkl/while-2.pk: New test.

2020-06-28  Luca Saiu  <positron@gnu.org>

	do not rely on the unreliable "optimize" GCC function attribute
	* libpoke/pvm-env.c (pvm_env_back): New static function.
	(pvm_env_lookup, pvm_env_set_var): Rewrite avoiding recursion,
	and factor the common logic using the new static function.
	Remove __attribute__((optimize ("optimize-sibling-calls"))).
	Remove comment, now obsolete.

2020-06-24  Jose E. Marchesi  <jemarch@gnu.org>

	* configure.ac (PACKAGE_BUGZILLA): ac_define.
	* poke/poke.c (print_help): Use PACKAGE_BUGZILLA.
	* HACKING (The Bugzilla): Add a note about the bugzilla URL being
	defined in configure.ac.

2020-06-19  Jose E. Marchesi  <jemarch@gnu.org>

	* testsuite/Makefile.am: Pass SHELL as a variable to runtest.
	* testsuite/lib/poke-dg.exp (poke-dg-test): Use SHELL to build the
	shebang of the test program.

2020-06-10  Aurélien Aptel  <aaptel@suse.com>

	* HACKING (Maintainers): New section.
	(Write After Approval): Add Aurélien Aptel.
	* AUTHORS: Likewise.

2020-06-08  Aurélien Aptel  <aaptel@suse.com>

	* etc/poke-mode.el: New file.
	* HACKING (Writing Poke): Mention poke-mode.

2020-06-06  Bruno Haible  <bruno@clisp.org>

	doc: Give users the freedom to use their own style in the HTML doc.
	* doc/Makefile.am (AM_MAKEINFOHTMLFLAGS): Remove variable.
	* HACKING (Building): Explain how to set a custom style in the HTML
	documentation.

2020-05-30  John Darrington <john@darrington.wattle.id.au>

	* doc/poke.texi: Miscellaneous minor corrections.

2020-05-30  John Darrington <john@darrington.wattle.id.au>

	* poke/poke.h (pk_fatal): Add noreturn attribute.

2020-05-27  Jose E. Marchesi  <jemarch@gnu.org>

	* libpoke/pk-val.c (pk_make_offset): Return PK_NULL if the
	arguments are not of the right type.

2020-05-25  Jose E. Marchesi  <jemarch@gnu.org>

	* HACKING (Compiler Passes and Phases): Update.
	(Transformation Phases): Likewise.
	(Analysis Phases): Likewise.

2020-05-24  Jose E. Marchesi  <jemarch@gnu.org>

	* pickles/ctf.pk (CTF_Type): Fix application of bit-concatenation
	in pretty_printer.
	(ctf_string): Use an Elf64_File instead of a header.
	(ctf_get_header): Likewise.

2020-05-17  Tim Rühsen  <tim.ruehsen@gmx.de>

	* gnulib: Update to master

2020-05-23  John Darrington <john@darrington.wattle.id.au>

	* poke/poke.c (pk_fatal): Call abort instead of exit.
	* libpoke/pkl.c (pklresolve_module): On lookup failure,
	return NULL instead of asserting.

2020-05-22  Jose E. Marchesi  <jemarch@gnu.org>

	* libpoke/pkl-asm.pks (offset_cast): Operate with integers of
	to_base_unit units, to avoid overflows and division by zero.

2020-05-22  Jose E. Marchesi  <jemarch@gnu.org>

	* testsuite/poke.pkl/eq-integers-5.pk: New test.
	* testsuite/poke.pkl/eq-offsets-8.pk: Likewise.

2020-05-22  Jose E. Marchesi  <jemarch@gnu.org>

	* libpoke/pkl.h (pkl_execute_file): Add argument exit_status.
	* libpoke/libpoke.h (pk_compile_file): Likewise.
	* libpoke/pkl.c (pkl_execute_file): Likewise.
	* libpoke/libpoke.c (pk_compile_file): Likewise.
	* libpoke/pkl-rt.pk (_pkl_exception_handler): Return the exit
	status.
	(Exception): Add field exit_status.
	(exit): The status code is 0 by default.
	* libpoke/pkl-asm.c (pkl_asm_finish): Adapted to the fact the
	default signal handler returns the exit status.
	* poke/poke.c (parse_args_2): Use the program's exit status as the
	exit status of poke when running -L.
	* libpoke/pvm-val.h (pvm_make_exception): Get an exit_exception
	argument.
	* libpoke/pvm-val.c (pvm_make_exception): Handle the exit status
	field of exceptions.
	* libpoke/pvm.h (PVM_E_EXIT): Define.
	(PVM_E_EXIT_MSG): Likewise.
	(PVM_E_EXIT_ESTATUS): Likewise.
	* libpoke/pvm.jitter (PVM_RAISE_DFL): Define and use through the
	file.
	* libpoke/ras: Pass the exit status argument to
	pvm_make_exception.
	* libpoke/pkl-gen.c: Likewise.
	* libpoke/pkl-asm.c: Likewise.

2020-05-22  Jose E. Marchesi  <jemarch@gnu.org>

	* libpoke/pkl-rt.pk (EC_exit): Define.
	(E_exit): Likewise.
	(exit): LIkewise.
	(_pkl_exception_handler): Do not print an exception message for
	EC_exit.
	* libpoke/pvm.h (PVM_E_EXIT): Define.
	(PVM_E_EXIT_MSG): Likewise.

2020-05-22  Jose E. Marchesi  <jemarch@gnu.org>

	* pickles/elf.pk (ELFDATANONE): Define.
	(ELFDATA2LSB): Likewise.
	(ELFDATA2MSB): Likewise.
	(Elf64_Ehdr): Set endianness based on ei_data.

2020-05-21  Jose E. Marchesi  <jemarch@gnu.org>

	* doc/poke.texi (Shebang): Document the handling of command-line
	options in Poke scripts.
	(Invoking poke): Document how command-line arguments are processed
	after -L SCRIPT.

2020-05-21  Jose E. Marchesi  <jemarch@gnu.org>

	* libpoke/libpoke.h (pk_array_set_elem_val): Prototype.
	(pk_array_set_elem_boffset): Likewise.
	* libpoke/pk-val.c (pk_array_set_elem_val): Define.
	 (pk_array_set_elem_boffset): Likewise.
	* poke/poke.c (parse_args_2): Change -L SCRIPT so any further
	command line option becomes the script's option.
	(set_script_args): Define.
	* libpoke/pkl.c (pvm_type_to_ast_type): Define.
	* libpoke/pkl-anal.c (pkl_anal_ps_default): Disable the location
	checker.

2020-05-20  Jose E. Marchesi  <jemarch@gnu.org>

	* libpoke/pkl-tab.y: Include gettext.h and define _.
	Internationalize token descriptions.

2020-05-20  Jose E. Marchesi  <jemarch@gnu.org>

	* testsuite/poke.cmd/maps-alien-1.pk: New test.

2020-05-20  Jose E. Marchesi  <jemarch@gnu.org>

	* libpoke/pkl-tab.y (yyreport_syntax_error): Handle out-of-memory
	condition.

2020-05-20  Jose E. Marchesi  <jemarch@gnu.org>

	* libpoke/pkl-tab.y (parse.error): Use customized syntax errors.
	(yyreport_syntax_error): Define.
	(ALIEN): New token.
	* libpoke/pkl-parser.h (struct pkl_parser): New field
	`alien_errmsg'.
	* libpoke/pkl-lex.l: Set the alien error message and return ALIEN
	for alien tokens not accepted by the client.
	* libpoke/libpoke.h: Get an ERRMSG argument in
	pk_alien_token_handler_fn.
	* libpoke/pkl.h: Likewise.
	* poke/pk-map.c (pk_map_alien_token_handler): Adapt accordingly.

2020-05-20  Jose E. Marchesi  <jemarch@gnu.org>

	* HACKING (Bison): Document requirement.
	* bootstrap.conf (buildreq): Require bison >= 3.6.0.
	* libpoke/pkl-tab.y: Port to bison 3.6.
	* libpoke/pkl-lex.l: Likewise.
	* poke/pk-map-tab.y: Likewise.
	* poke/pk-map-lex.l: Likewise.

2020-05-19  Jose E. Marchesi  <jemarch@gnu.org>

	* poke/Makefile.am (poke_LDADD): Do not add the jitter library to
	the application.

2020-05-19  Luca Saiu  <positron@gnu.org>

	* libpoke/Makefile.am (libpvmjitter_la_LIBADD): Use the new
	JITTER_LIBADD rather than JITTER_LDADD.
	* poke/Makefile.am (poke_LDADD): Likewise.  Remove now-obsolete
	XXX comment.

2020-05-18  Jose E. Marchesi  <jemarch@gnu.org>

	* poke/pk-map.c (entry_name_to_varname): Use cur_map_id instead of
	a map.
	(pk_map_load_parsed_map): Do not create the map until all the
	variables are defined without error.

2020-05-18  Jose E. Marchesi  <jemarch@gnu.org>

	* poke/poke.pk (auto_map): Escape . in regexps.

2020-05-18  Jose E. Marchesi  <jemarch@gnu.org>

	* poke/pk-cmd-map.c (pk_cmd_map_show): Include the map name while
	listing entries.
	* testsuite/poke.cmd/maps-4.pk: Adapt accordingly.
	* testsuite/poke.cmd/maps-5.pk: Likewise.
	* testsuite/poke.cmd/maps-6.pk: Likewise.

2020-05-18  Jose E. Marchesi  <jemarch@gnu.org>

	* maps/elf.map: Rename entry from elf to file.

2020-05-17  Tim Rühsen  <tim.ruehsen@gmx.de>

	* libpoke/pkl-env.c (hash_string): Suppress ASAN runtime error
	"implicit-signed-integer-truncation-or-sign-change".

2020-05-18  Jose E. Marchesi  <jemarch@gnu.org>

	* libpoke/pkl-lex.l: Support :: separators in alien token
	identifiers.
	* poke/pk-map.c (pk_map_alien_token_handler): Use :: to separate
	mapname from entryname in alien tokens.
	(pk_map_normalize_name): Do not reduce sequences of _'s.

2020-05-18  Jose E. Marchesi  <jemarch@gnu.org>

	* libpoke/pkl-lex.l: Change bit-concatenation operator from :: to
	:::.
	* doc/poke.texi (From Bytes to Integers): Update accordingly.
	(Bitwise Operators): Likewise.
	* testsuite/poke.pkl/bconc-7.pk: Likewise.
	* testsuite/poke.pkl/bconc-6.pk: Likewise.
	* testsuite/poke.pkl/bconc-5.pk: Likewise.
	* testsuite/poke.pkl/bconc-4.pk: Likewise.
	* testsuite/poke.pkl/bconc-3.pk: Likewise.
	* testsuite/poke.pkl/bconc-2.pk: Likewise.
	* testsuite/poke.pkl/bconc-1.pk: Likewise.

2020-05-18  Jose E. Marchesi  <jemarch@gnu.org>

	* poke/pk-map.c (pk_map_normalize_name): New function.
	(pk_map_load_file): Use pk_map_normalize_name.
	* poke/pk-cmd-map.c (pk_cmd_map_create): Likewise.

2020-05-18  Jose E. Marchesi  <jemarch@gnu.org>

	* poke/poke.c: Make poke_prompt_maps_p to default to yes.
	* poke/pk-ios.c (pk_open_ios): Do not emit an "auto-map: loaded"
	message if prompt-maps is enabled.

2020-05-18  Jose E. Marchesi  <jemarch@gnu.org>

	* poke/pk-map.c (pk_map_add_entry): Get both name and varname as
	arguments.
	(pk_map_load_parsed_map): Adjust call accordingly.
	* poke/pk-cmd-map.c (pk_cmd_map_entry_add): LIkewise.
	(pk_cmd_map_show): Do now show a Variable column.
	* testsuite/poke.cmd/maps-4.pk: Adapt accordingly.
	* testsuite/poke.cmd/maps-5.pk: Likewise.
	* testsuite/poke.cmd/maps-6.pk: Likewise.

2020-05-17  Jose E. Marchesi  <jemarch@gnu.org>

	* libpoke/pkl.c (pkl_lexical_cuckolding_p): Define.
	(pkl_set_lexical_cuckolding_p): Likewise.
	(pkl_set_alien_token_fn): Likewise.
	(pkl_alien_token_fn): Likewise.
	(struct pkl_compiler): New fields `lexical_cuckolding_p' and
	`alien_token_fn'.
	* libpoke/libpoke.c (pk_set_lexical_cuckolding_p): Define.
	(pk_set_alien_token_fn): Likewise.
	* poke/pk-cmd.c (pk_cmd_exec): Activate the lexical cuckolding
	when executing Poke code in the REPL.
	* poke/pk-map.c (pk_map_alien_token_handler): Define.
	(pk_map_init): Install pk_map_alien_token_handler in
	poke_compiler.

2020-05-17  Jose E. Marchesi  <jemarch@gnu.org>

	* maps/mp3.map: Fix tag.

2020-05-17  Jose E. Marchesi  <jemarch@gnu.org>

	* poke/pk-map.h (struct pk_map): New field `id'.
	(struct pk_map_entry): New field `name'.
	(PK_MAP_ENTRY_NAME): Define.
	* poke/pk-map.c (next_map_id): New variable.
	(pk_map_create): Allocate a new map ID and initialize the new map
	with it.
	(search_map_entry): Search entries by name, not varnames.
	(pk_map_add_entry): Initialize the map entry name.
	(entry_name_to_varname): New function.
	(pk_map_remove_entry): Delete by entry name, not variable name.
	* testsuite/poke.cmd/maps-4.pk: Adapt.
	* testsuite/poke.cmd/maps-5.pk: Likewise.
	* testsuite/poke.cmd/maps-6.pk: Likewise.

2020-05-17  Jose E. Marchesi  <jemarch@gnu.org>

	* poke/pk-map.c (pk_map_load_file): Make sure a map is not already
	loaded with the same name.

2020-05-17  Jose E. Marchesi  <jemarch@gnu.org>

	* poke/pk-map.c (pk_map_load_file): Derive the name of the new map
	from the filename.
	* poke/pk-cmd-map.c (pk_cmd_map_load): Remove spurious comment.

2020-05-17  Jose E. Marchesi  <jemarch@gnu.org>

	* poke/poke.c (poke_prompt_maps): Define.
	* poke/pk-repl.c (pk_prompt): New function.
	* poke/pk-cmd-set.c (set_prompt_maps): Define.
	(set_cmds): Add set_prompt_maps.
	(pk_cmd_set_prompt_maps): New function.
	* poke/pk-cmd-map.c (pk_cmd_map_create): Do not assume a current
	IOS exists.

2020-05-17  Jose E. Marchesi  <jemarch@gnu.org>

	* poke/pk-ios.h: New file.
	* poke/pk-ios.c: Likewise.
	* poke/Makefile.am (poke_SOURCES): Add pk-ios.h and pk-ios.c.
	* poke/pk-cmd-ios.c (pk_cmd_file): Use pk_open_ios.
	* poke/poke.c (NO_AUTO_MAP_ARG): Define.
	(long_options): Add no-auto-map info.
	(parse_args_1): Handle NO_AUTO_MAP_ARG.
	(parse_args_2): Likewise.
	(print_help): Document --no-auto-map.
	(parse_args_2): Use pk_open_ios to open files specified in the
	command line.

2020-05-17  Jose E. Marchesi  <jemarch@gnu.org>

	* poke/poke.c (poke_auto_map_p): Define.
	* poke/poke.h: Likewise.
	* poke/pk-cmd-set.c (set_auto_map): Define.
	(set_cmds): Add set_auto_map.
	(pk_cmd_set_auto_map): New function.
	* poke/pk-cmd-ios.c (pk_cmd_file): Acknowledge poke_auto_map_p.

2020-05-17  Jose E. Marchesi  <jemarch@gnu.org>

	* libpoke/libpoke.h (pk_array_nelem): Prototype.
	* libpoke/pk-val.c (pk_array_nelem): New function.
	* poke/poke.pk (auto_map): Define.
	* poke/pk-cmd-ios.c (pk_cmd_file): Process auto maps.
	* poke/pk-map.c (pk_map_create): Fix chaining of map-ios.

2020-05-17  Bruno Haible  <bruno@clisp.org>

	build: Bump minimum needed Automake version.
	* bootstrap.conf (buildreq): Require automake >= 1.16.

2020-05-16  Tim Rühsen  <tim.ruehsen@gmx.de>

	* libpoke/pvm.c: Remove include xalloc.h.
	(pvm_init): Use calloc instead of xzalloc.

2020-05-16  Tim Rühsen  <tim.ruehsen@gmx.de>

	* libpoke/pkl-parser.c: Remove include xalloc.h.
	(pkl_parser_init): Use calloc instead of xzalloc.
	(pkl_parse_file): Use strdup instead of xstrdup.
	Allocate and check memory early in the function.
	(pkl_parse_buffer): Use strdup instead of xstrdup.
	Allocate and check memory early in the function.

2020-05-17  Jose E. Marchesi  <jemarch@gnu.org>

	* maps/Makefile.am (dist_maps_DATA): Distribute mp3.map.

2020-05-17  Jose E. Marchesi  <jemarch@gnu.org>

	* poke/pk-map.c (pk_map_load_parsed_map): Use pk_type_code and
	pk_typeof.
	(pk_map_resolve_map): Likewise.
	(pk_map_load_parsed_map): Likewise.
	* libpoke/libpoke.h (pk_make_array): Prototype.
	(pk_make_integral_type): Likewise.
	(pk_integral_type_size): Likewise.
	(pk_integral_type_signed_p): Likewise.
	(pk_make_string_type): Likewise.
	(pk_make_offset_type): Likewise.
	(pk_offset_type_base_type): Likewise.
	(pk_offset_type_unit): Likewise.
	(pk_make_any_type): Likewise.
	(pk_make_array_type): Likewise.
	(pk_array_type_etype): Likewise.
	(pk_array_type_bound): Likewise.
	(pk_val_typeof): Likewise.
	(pk_type_code): Rename from pk_val_type.
	(pk_array_elem_val): Prototype.
	(pk_array_elem_boffset): Likewise.
	* libpoke/pk-val.c (pk_make_integral_type): New function.
	(pk_integral_type_size): Likewise.
	(pk_integral_type_signed_p): Likewise.
	(pk_make_array): Likewise.
	(pk_make_string_type): Likewise.
	(pk_make_offset_type): Likewise.
	(pk_offset_type_base_type): Likewise.
	(pk_offset_type_unit): Likewise.
	(pk_make_any_type): Likewise.
	(pk_make_array_type): Likewise.
	(pk_array_type_etype): Likewise.
	(pk_array_type_bound): Likewise.
	(pk_val_typeof): Likewise.
	(pk_type_code): Rename from pk_val_type.
	(pk_array_elem_val): New function.
	(pk_array_elem_boffset): Likewise.

2020-05-17  Jose E. Marchesi  <jemarch@gnu.org>

	* libpoke/pkl.h (pkl_compile_call): Prototype.
	* libpoke/pkl.c (pkl_compile_call): Define.
	* libpoke/libpoke.h (PK_CLOSURE): Define.
	(pk_call): Prototype.
	* libpoke/libpoke.c (pk_call): Define.
	* libpoke/pk-val.c (pk_val_type): Handle CLS values.

2020-05-16  Jose E. Marchesi  <jemarch@gnu.org>

	* poke/pk-cmd.c (pk_cmd_init): Use pk_fatal.
	* poke/poke.c (initialize): Likewise.
	* poke/pk-term.c (pk_term_init): Likewise.
	* poke/pk-mi.c (pk_mi_read_from_client): Likewise.
	* poke/pk-hserver.c (make_socket): Likewise.
	(hserver_thread_worker): Likewise.
	(pk_hserver_init): Likewise.
	(pk_hserver_shutdown): Likewise.
	(pk_hserver_make_hyperlink): Likewise.
	* poke/pk-mi.c (pk_mi_loop): Likewise.
	(pk_mi_send): Likewise.

2020-05-16  Jose E. Marchesi  <jemarch@gnu.org>

	* poke/poke.c (pk_fatal): Add missing newline after message error.

2020-05-16  Jose E. Marchesi  <jemarch@gnu.org>

	* poke/poke.h (pk_fatal): Prototype.
	* poke/poke.c (pk_fatal): New function.
	* poke/pk-map.h (pk_map_resolve_map): Prototype.
	* poke/pk-map.c (pk_map_resolve_map): New function.
	* poke/pk-cmd-map.c (pk_cmd_map_load): use pk_map_resolve_map.

2020-05-16  Jose E. Marchesi  <jemarch@gnu.org>

	* run.in (POKEMAPSDIR): Define.
	* poke/poke.h (poke_mapsdir): Define.
	* poke/poke.c (poke_mapsdir): New global.
	(initialize): Initialize the value of poke_mapsdir.
	(initialize): Load poke.pk.
	* poke/poke.pk: New file.
	* poke/Makefile.am (dist_pkgdata_DATA): Add poke.pk.
	* HACKING: Update to mention poke.pk.

2020-05-16  Jose E. Marchesi  <jemarch@gnu.org>

	* libpoke/pkl.h (pkl_defvar): Prototype.
	* libpoke/pkl.c (pkl_defvar): Define.
	* libpoke/libpoke.h (pk_defvar): Prototype.
	* libpoke/libpoke.c (pk_defvar): Define.

2020-05-16  Jose E. Marchesi  <jemarch@gnu.org>

	* pickles/elf.pk (Elf64_SectionFlags): Improve pretty-printer.

2020-05-16  Jose E. Marchesi  <jemarch@gnu.org>

	* libpoke/std.pk (ltrim): Support character sets.
	(rtrim): Likewise.
	* doc/poke.texi (ltrim): Update.
	(rtrim): Likewise.
	* testsuite/poke.std/ltrim-1.pk: Renamed from ltrim.pk.
	* testsuite/poke.std/rtrim-1.pk: Renamed from rtrim.pk.
	* testsuite/poke.std/ltrim-2.pk: New test.
	* testsuite/poke.std/rtrim-2.pk: Likewise.
	* testsuite/poke.std/ltrim-3.pk: Likewise.
	* testsuite/poke.std/rtrim-3.pk: Likewise.

2020-05-16  Jose E. Marchesi  <jemarch@gnu.org>

	* libpoke/std.pk (strchr): New function.
	* doc/poke.texi (strchr): New section.
	* testsuite/poke.std/strchr-3.pk: Likewise.
	* testsuite/poke.std/strchr-2.pk: Likewise.
	* testsuite/poke.std/strchr-1.pk: New test.

2020-05-16  Jose E. Marchesi  <jemarch@gnu.org>

	* libpoke/pkl-parser.h (struct pkl_parser): New field
	in_method_decl_p.
	* libpoke/pkl-parser.c (pkl_parser_init): Initialize
	in_method_decl_p.
	* libpoke/pkl-tab.y (pushlevel_args): New rule.
	(function_specifier): Use pushlevel_args.
	(declaration): Set in_method_decl_p.
	* libpoke/pkl-gen.c (pkl_gen_ps_var): The implicit struct argument
	is the first formatl argument registered in the function, not the
	last.
	(pkl_gen_pr_ass_stmt): Likewise.
	(pkl_gen_pr_func): Adapt to the fact the implicit argument is the
	last actual passed but the first formal registered.
	* testsuite/poke.pkl/struct-method-15.pk: New test.
	* testsuite/poke.pkl/struct-method-diag-15.pk: Likewise.

2020-05-16  Jose E. Marchesi  <jemarch@gnu.org>

	* testsuite/poke.pkl/struct-method-12.pk: New test.
	* testsuite/poke.pkl/struct-method-13.pk: Likewise.
	* testsuite/poke.pkl/struct-method-14.pk: Likewise.

2020-05-16  Jose E. Marchesi  <jemarch@gnu.org>

	* pickles/elf.pk (Elf64_Rel): New type.
	(SHT_REL): Define.
	(SHF_WRITE): Likewise.
	(SHF_ALLOC): Likewise.
	(SHF_EXECINSTR): Likewise.
	(SHF_MERGE): Likewise.
	(SHF_STRINGS): Likewise.
	(SHF_INFO_LINK): Likewise.
	(SHF_LINK_ORDER): Likewise.
	(SHF_OS_NONCONFORMING): Likewise.
	(SHF_GROUP): Likewise.
	(SHF_TLS): Likewise.
	(SHF_COMPRESSED): Likewise.
	(SHF_MASKOS): Likewise.
	(SHF_MASKPROC): Likewise.
	(Elf64_SectionFlags): New type.

2020-05-15  Tim Rühsen  <tim.ruehsen@gmx.de>

	* libpoke/pkl.c: Remove include xalloc.h.
	(pkl_new): Use calloc instead of xzalloc.
	(pkl_new): Free memory when returning NULL.

2020-05-15  Tim Rühsen  <tim.ruehsen@gmx.de>

	* libpoke/pkl-lex.l: Remove include xalloc.h.

2020-05-15  Jose E. Marchesi  <jemarch@gnu.org>

	* pickles/elf.pk (Elf64_File): Rename from Elf64.
	* maps/elf.map: Updated accordingly.

2020-05-15  Jose E. Marchesi  <jemarch@gnu.org>

	* pickles/elf.pk (Elf64.get_string): New method.
	(Elf64.get_section_by_name): Likewise.
	(Elf64.get_section_by_type): Likewise.
	(elf_string): Delete function.
	(elf_get_section_by_name): Likewise.
	(elf_get_section_by_type): Likewise.

2020-05-15  Jose E. Marchesi  <jemarch@gnu.org>

	* libpoke/pkl-trans.c (pkl_trans1_ps_loop_stmt_iterator): New
	handler.
	(pkl_trans1_ps_loop_stmt): Likewise.
	(pkl_phase_trans1): Register handlers.
	* testsuite/poke.pkl/struct-method-10.pk: New test.
	* testsuite/poke.pkl/struct-method-11.pk: Likewise.

2020-05-15  Jose E. Marchesi  <jemarch@gnu.org>

	* poke/pk-map.h: Document in the docstring of the function
	pk_map_load_file that ERRMSG can be set to NULL even if an error
	code is returned.
	* poke/pk-cmd-map.c (pk_cmd_map_load): Adapt accordingly.

2020-05-15  Tim Rühsen  <tim.ruehsen@gmx.de>

	* cfg.mk: New syntax rule sc_rockdabootism_missing_space.
	* common/pk-utils.c (pk_print_binary): Add missing space before
	opening bracket.
	* common/pk-utils.h (pk_str_concat): Likewise.
	* libpoke/ios.c (ios_read_int_common): Likewise.
	(ios_read_int). Likewise.
	* libpoke/pvm-val.c (pvm_print_val_1): Likewise.
	* poke/pk-cmd-set.c (pk_cmd_set_odepth): Likewise.
	(pk_cmd_set_oindent): Likewise.
	(pk_cmd_set_omode): Likewise.
	* poke/pk-hserver.c (pk_hserver_make_hyperlink): Likewise.
	* poke/pk-mi.c (pk_mi_fd_set_nonblocking): Likewise.
	(pk_mi_fd_restore_blocking): Likewise.
	* poke/pk-repl.c (poke_sigint_handler): Likewise.
	(pk_repl): Likewise.
	* libpoke/pkl-lex.l: Likewise.
	* poke/pk-map-lex.l: Likewise.
	* poke/poke.c: Slightly amend comment.

2020-05-15  Jose E. Marchesi  <jemarch@gnu.org>

	* pickles/elf.pk (Elf64): New type.
	* maps/elf.map: Rewritten to use Elf64.

2020-05-15  Jose E. Marchesi  <jemarch@gnu.org>

	* poke/pk-map-tab.y (pk_map_parse_file): Fix call to
	pk_map_tab_set_extra.

2020-05-15  Jose E. Marchesi  <jemarch@gnu.org>

	* libpoke/pkl-rt.pk (iosize): Argument defaults to the current
	IOS.
	* poke/pk-cmd.c (pk_cmd_exec): Use new interface of
	pk_compile_statement.
	* .x-sc_space_tab: Add poke/pk-map-tab.y and poke/pk-map-lex.l.
	* poke/pk-term.h (pk_vprintf): Define.
	* poke/pk-term.c (pk_vprintf): Likewise.
	* poke/Makefile.am (AM_YFLAGS): Define.
	(AM_LFLAGS): Likewise.
	(EXTRA_DIST): Likewise.
	(BUILT_SOURCES): Likewise.
	* poke/pk-map-lex.l: Likewise.
	* poke/Makefile.am (poke_SOURCES): Add pk-map-parser.h and
	pk-map-tab.y.
	* maps/elf.map: Adapted to use %-directives.
	* maps/mp3.map: Likewise.
	* etc/poke-map-mode.el (poke-map-mode): Highlight %-directives
	entries.
	* poke/pk-map.c (pk_map_load_file): Define.
	* poke/pk-map-tab.y: New file.
	* poke/pk-map-parser.h: Likewise.

2020-05-14  Tim Rühsen  <tim.ruehsen@gmx.de>

	* libpoke/ios.c: Remove include xalloc.h.
	(ios_open): Use malloc with error checking.
	(realloc_string): New helper function.
	(ios_read_string): Use realloc_string instead xrealloc.
	* libpoke/ios.h: New define IOS_ENOMEM.
	* libpoke/pvm.jitter: Raise PVM_E_IO when out of memory.

2020-05-07  Tim Rühsen  <tim.ruehsen@gmx.de>

	* libpoke/ios-dev-mem.c (ios_dev_mem_open): Replace
	xzalloc by calloc.
	(ios_dev_mem_pwrite): Replace xrealloc with realloc.
	Remove include xalloc.h.

2020-05-07  Tim Rühsen  <tim.ruehsen@gmx.de>

	* libpoke/ios-dev-nbd.c (ios_dev_nbd_open): Replace
	xmalloc and xstrdup by malloc and strdup.
	Remove include xalloc.h.

2020-05-07  Tim Rühsen  <tim.ruehsen@gmx.de>

	* libpoke/ios-dev-file.c (ios_dev_file_open): Replace
	xmalloc and xstrdup by malloc and strdup.
	Remove include xalloc.h.

2020-05-12  Egeyar Bagcioglu  <egeyar@gmail.com>

	* libpoke/ios.c (ios_close): Update the current IOS
	only when closing the current IOS.

2020-05-12  Jose E. Marchesi  <jemarch@gnu.org>

	* libpoke/Makefile.am (libpvmjitter_la_CPPFLAGS): Do not
	-D_GNU_SOURCE.
	* libpoke/pvm.jitter: Include config.h in initial-header-c,
	initial-vm1-c and initial-vm2-c now that Jitter supports it.

2020-05-12  Jose E. Marchesi  <jemarch@gnu.org>

	* doc/poke.texi (Struct Constructors): Fix typo in example.

2020-05-12  Tim Rühsen  <tim.ruehsen@gmx.de>

	* cfg.mk: Add sc_jemarchism_file_fd syntax-check rule.

2020-05-12  Tim Rühsen  <tim.ruehsen@gmx.de>

	* libpoke/pkl-ast.c (pkl_ast_lvalue_p): Rename 'FILE *fd'
	to 'FILE *fp'.
	(pkl_ast_print_1): Likewise.
	(pkl_ast_print): Likewise.
	* libpoke/pkl-ast.h (pkl_ast_print): Likewise.
	* libpoke/pkl-diag.c (pkl_detailed_location): Likewise.
	* libpoke/pkl-parser.c (pkl_parse_file): Likewise.
	* libpoke/pkl-parser.h (pkl_parse_file): Likewise.
	* libpoke/pkl-tab.y (load_module): Likewise.
	* libpoke/pkl.c (pkl_compile_file): Likewise.
	* poke/pk-cmd-editor.c (pk_cmd_editor): Likewise.
	* poke/pk-cmd.c (pk_cmd_exec_script): Likewise.

2020-05-12  Tim Rühsen  <tim.ruehsen@gmx.de>

	* poke/pk-mi.c (pk_mi_fd_set_nonblocking): New function.
	(pk_mi_fd_restore_blocking): New function.
	(pk_mi_loop): Set fd to blocking and restore before returning.

2020-05-12  Jose E. Marchesi  <jemarch@gnu.org>

	* poke/pk-map.h (pk_map_remove): New prototype.
	* poke/pk-map.c (pk_map_remove): Define.
	(free_map): Likewise.
	* poke/pk-cmd-map.c (pk_cmd_map_remove): Define.
	(map_remove_cmd): Define.
	(map_cmds): Add map_remove_cmd.
	* testsuite/poke.cmd/maps-7.pk: New test.
	* testsuite/poke.cmd/maps-8.pk: Likewise.
	* testsuite/poke.cmd/maps-9.pk: Likewise.

2020-05-12  Jose E. Marchesi  <jemarch@gnu.org>

	* poke/pk-cmd-map.c (map_entry_add_cmd): Rename from map_add_cmd.
	(map_entry_remove_cmd): Rename from map_remove_cmd.
	(map_entry_cmds): Define.
	(map_entry_cmd): Likewise.
	* poke/pk-cmd.c (pk_cmd_init): Initialize map_entry_trie.
	(pk_cmd_shutdown): Free map_entry_trie.
	* testsuite/poke.cmd/maps-4.pk: Adapt.
	* testsuite/poke.cmd/maps-6.pk: Likewise.
	* testsuite/poke.cmd/maps-5.pk: Likewise.

2020-05-12  Tim Rühsen  <tim.ruehsen@gmx.de>

	* poke/pk-mi.c (pk_mi_read_from_client): Fix nbytes to ssize_t.
	(pk_mi_dispatch_msg): Fix empty else block.

2020-05-12  Tim Rühsen  <tim.ruehsen@gmx.de>

	* pickles/Makefile.am: Add id3v1.pk to dist_pickles_DATA.

2020-05-12  Jose E. Marchesi  <jemarch@gnu.org>

	* libpoke/libpoke.c (pk_print_val): New function.
	* libpoke/libpoke.c (pk_decl_val): Define.
	* (pk_decl_p): New function.
	* poke/pk-map.c: New file.
	* poke/pk-map.h: Likewise.
	* poke/pk-cmd-map.c: Likewise.
	* poke/poke.c (initialize): Call pk_map_init.
	(finalize): Call pk_map_shutdown.
	* poke/Makefile.am (poke_SOURCES): Add pk-map.c and pk-cmd-map.c
	* poke/pk-cmd-info.c (info_cmds): Add info_map_cmd.
	* maps/Makefile.am: New file.
	* maps/elf.map: Likewise.
	* maps/mp3.map: Likewise.
	* Makefile.am (SUBDIRS): Add maps.
	* configure.ac: Add maps/Makefile.
	* etc/poke-map-mode.el: Likewise.
	* testsuite/poke.cmd/maps-1.pk: New test.
	* testsuite/poke.cmd/maps-2.pk: Likewise.
	* testsuite/poke.cmd/maps-3.pk: Likewise.
	* testsuite/poke.cmd/maps-4.pk: Likewise.
	* testsuite/poke.cmd/maps-5.pk: Likewise.
	* testsuite/poke.cmd/maps-6.pk: Likewise.
	* HACKING: Updated.

2020-05-12  Tim Rühsen  <tim.ruehsen@gmx.de>

	* gui/Makefile.am: Use dist_guifiles_DATA instead guifiles_DATA.

2020-05-12  Jose E. Marchesi  <jemarch@gnu.org>

	* testsuite/Makefile.am (EXTRA_DIST): Complete.

2020-05-12  Jose E. Marchesi  <jemarch@gnu.org>

	* bootstrap.conf (libpoke_modules): Import the signal-h gnulib
	module.

2020-05-11  Jose E. Marchesi  <jemarch@gnu.org>

	* libpoke/Makefile.am (libpoke_la_SOURCES): Add pk-val.c
	* libpoke/pvm-val.h: Include stdint.h.
	* libpoke/pk-val.c: New file.
	* libpoke/libpoke.h (pk_val): New type.
	(PK_NULL): Define.
	(pk_make_int): Likewise.
	(pk_int_value): Likewise.
	(pk_int_size): Likewise.
	(pk_make_uint): Likewise.
	(pk_uint_value): Likewise.
	(pk_uint_size): Likewise.
	(pk_make_string): Likewise.
	(pk_string_str): Likewise.
	(pk_make_offset): Likewise.
	(pk_offset_magnitude): Likewise.
	(pk_offset_unit): Likewise.
	(pk_val_mapped_p): Likewise.
	(pk_val_ios): Likewise.
	(pk_val_offset): Likewise.
	(PK_UNKNOWN): Likewise.
	(PK_INT): Likewise.
	(PK_UINT): Likewise.
	(PK_STRING): Likewise.
	(PK_OFFSET): Likewise.
	(PK_ARRAY): Likewise.
	(PK_STRUCT): Likewise.
	(pk_val_type): Likewise.

2020-05-11  Jose E. Marchesi  <jemarch@gnu.org>

	* poke/pk-cmd-misc.c: Renamed from pk-misc.c.
	* poke/pk-cmd-info.c: Likewise.
	* poke/pk-cmd-ios.c: Likewise.
	* poke/pk-cmd-help.c: Likewise.
	* poke/pk-cmd-vm.c: Likewise.
	* poke/pk-cmd-set.c: Likewise.
	* poke/pk-cmd-editor.c: Likewise.
	* poke/pk-cmd-def.c: Likewise.
	* poke/Makefile.am (poke_SOURCES): Rename files.

2020-05-11  Jose E. Marchesi  <jemarch@gnu.org>

	* pickles/Makefile.am (picklesdir): Define.
	(dist_pickles_DATA): Change from dist_pkgdata_DATA.
	* poke/poke.c (initialize): Set poke_picklesdir to
	poke_datadir/pickles.
	* libpoke/pkl-rt.pk: Add %DATADIR%/pickles to the load-path if
	POKEPICKLESDIR is not defined.

2020-05-10  Jose E. Marchesi  <jemarch@gnu.org>

	* gui/pk-gui.tcl: Expand "about" info with copyright notice and
	licensing.

2020-05-10  Bruno Haible  <bruno@clisp.org>

	Prepare for versioning of libpoke.
	* libpoke/Makefile.am (LTV_*): New variables.
	(libpoke_la_LDFLAGS): Add -version-info option.

2020-05-10  John Darrington <john@darrington.wattle.id.au>

	* poke/poke.c (mi_supported_p): New variable.
	* poke/poke.c (POKE_MI): Evaluate this macro once only.

2020-05-10  Bruno Haible  <bruno@clisp.org>

	Fix wrong rpath in poke/.libs/lt-poke.
	* poke/Makefile.am (poke_LDADD): Use LTLIBTEXTSTYLE, not LIBTEXTSTYLE.

2020-05-10  Jose E. Marchesi  <jemarch@gnu.org>

	* gui: rename scripts.

2020-05-10  Jose E. Marchesi  <jemarch@gnu.org>

	* m4/tcl.m4: Strip from unneeded macros.
	(POKE_TCLTK): New macro.
	* configure: Use POKE_TCLTK.

2020-05-10  Jose E. Marchesi  <jemarch@gnu.org>

	* m4/tcl.m4: New file.
	* .x-sc_m4_quote_check: New file.
	* .x-sc_prohibit_always_true_header_tests: Likewise.
	* .x-sc_prohibit_magic_number_exit: Likewise.
	* .x-sc_prohibit_test_minus_ao: Likewise.
	* .x-sc_useless_cpp_parens: Likewise.
	* .x-sc_space_tab: Add m4/tcl.m4.

2020-05-10  Jose E. Marchesi  <jemarch@gnu.org>

	* Makefile.am (-DLOCALEDIR): Add to CPPFLAGS.
	* poke-gui.c (print_version): Call bindtextdomain.

2020-05-10  Jose E. Marchesi  <jemarch@gnu.org>

	* gui: Renamed from PoK.
	* Makefile.am (SUBDIR): Add gui.
	* configure.ac (AC_CONFIG_FILES): Add gui/Makefile.
	Support for --enable-gui.
	* run.in (POKEGUIDIR): Define and export POKEGUIDIR.
	* bootstrap.conf (bootstrap_post_import_hook): Create gl-gui.
	(gui_modules): Define.

2020-05-09  Jose E. Marchesi  <jemarch@gnu.org>

	* doc/poke.texi (MI Requests): New section.
	(MI Responses): Likewise.
	(MI Events): Likewise.
	(Event INITIALIZE): Likewise.
	(Request EXIT): Likewise.
	(Response EXIT): Likewise.

2020-05-09  Jose E. Marchesi  <jemarch@gnu.org>

	* poke/pk-mi-msg.h (pk_mi_msg_event_initialized_mi_version):
	Define.
	* poke/pk-mi-msg.c (pk_mi_msg_event_initialized_mi_version):
	Likewise.
	* poke/pk-mi-msg.c (PK_MI_EVENT_INITIALIZED_MI_VERSION): Define.
	(struct pk_mi_event): New field args.initialized.mi_version.
	(pk_mi_make_event_initialized): Set the MI version.
	* poke/pk-mi-json.c (pk_mi_msg_to_json_object): Do not add a
	poke_mi field.
	(pk_mi_msg_to_json_object): Add mi_version as an argument to the
	initialized event.

2020-05-09  Jose E. Marchesi  <jemarch@gnu.org>

	* HACKING (PoK Dependencies): Update.

	* poke/pk-mi-msg.h (pk_mi_set_msg_number): Define.
	* poke/pk-mi-msg.c (pk_mi_set_msg_number): Likewise.
	* poke/pk-mi-json.c (pk_mi_msg_to_json_object): Add the message
	number to the json structure.
	(pk_mi_json_object_to_msg): Likewise.

2020-05-09  Jose E. Marchesi  <jemarch@gnu.org>

	* libpoke/Makefile.am (AUTOMAKE_OPTIONS): Use the subdir-objects
	automake option.
	* poke/Makefile.am (AUTOMAKE_OPTIONS): Likewise.

2020-05-09  Jose E. Marchesi  <jemarch@gnu.org>

	* Makefile.am (SUBDIRS): Remove libutils-gl and libutils.
	* configure.ac (AC_CONFIG_FILES): Remove libutils files.
	(AC_CONFIG_MACRO_DIRS): Do not add m4/libutils.
	Do not call libutils_EARLY.
	* libutils/Makefile.am: Remove.
	* bootstrap.conf (bootstrap_post_import_hook): Do not create a
	gl-libutils gnulib.
	* libpoke/Makefile.am (libpoke_la_LIBADD): Remove libutils.la.
	* poke/Makefile.am (poke_LDADD): Likewise.
	* common: Renamed from libutils.
	* HACKING: Update.
	* .gitignore: Update.

2020-05-09  Jose E. Marchesi  <jemarch@gnu.org>

	* bootstrap.conf (libpoke_modules): Import the dirname gnulib
	module.
	* libpoke/pkl.h (pkl_module_loaded_p): Define.
	* libpoke/pkl.c (struct pkl_compiler): New fields `modules' and
	`num_modules'.
	(pkl_new): Initialize `modules' and `num_modules'.
	(pkl_load): Do not re-load already loaded modules.
	(pkl_add_module): New function.
	(pkl_free): Free memory occupied by the list of loaded modules.
	* libpoke/pkl-tab.y (load_module): Likewise.
	* testsuite/poke.pkl/load-3.pk: Amended.
	* poke/pk-ios.c (pk_cmd_load_file): Use pk_load instead of
	pk_compile_file.

2020-05-09  Jose E. Marchesi  <jemarch@gnu.org>

	* MI foundations.

2020-05-07  Tim Rühsen  <tim.ruehsen@gmx.de>

	* poke/pk-ios.c (pk_cmd_load_file): Amend OOM message to
	be the same everywhere ("No memory" to "Out of memory").
	(pk_cmd_mem): Likewise.

2020-05-07  Tim Rühsen  <tim.ruehsen@gmx.de>

	* poke/pk-cmd.c: Do not include gettext.h and pk-term.h.
	* poke/pk-def.c: Likewise.
	* poke/pk-ios.c: Likewise.
	* poke/pk-repl.c: Likewise.
	* poke/pk-set.c: Likewise.
	* poke/pk-editor.c: Do not include pk-term.h.
	* poke/pk-hserver.c: Likewise.
	* poke/pk-misc.c: Likewise.
	* poke/pk-vm.c: Likewise.

2020-05-07  Tim Rühsen  <tim.ruehsen@gmx.de>

	* poke/poke.h: New function pk_assert_alloc.
	Include stdlib.h, gettext.h and pk-term.h.
	* poke/poke.c (initialize_user): Make use of pk_assert_alloc.
	Remove including gettext.h and pk-term.h.

2020-05-07  Tim Rühsen  <tim.ruehsen@gmx.de>

	* libpoke/ios.c (ios_open): Initialize error variable.
	* libpoke/ios-dev-file.c (ios_dev_file_handler_normalize):
	Return NULL on memory allocation error.
	* libpoke/ios-dev-mem.c (ios_dev_mem_handler_normalize): Likewise.
	* libpoke/ios-dev-nbd.c (ios_dev_nbd_handler_normalize): Likewise.

2020-05-06  Tim Rühsen  <tim.ruehsen@gmx.de>

	* bootstrap.conf: Remove xstrndup from libpoke_modules.
	* libpoke/pkl-trans.c (pkl_trans1_ps_print_stmt):  Use strndup
	instead of xstrndup.

2020-05-06  Tim Rühsen  <tim.ruehsen@gmx.de>

	* libpoke/pkl-fold.c (OP_BINARY_SSS): Check return value of
	pk_str_concat.
	* libpoke/pkl.c (pkl_new): Likewise.
	* poke/pk-cmd.c (pk_cmd_exec): Likewise.
	* poke/poke.c (initialize_user): Likewise.

2020-05-06  Tim Rühsen  <tim.ruehsen@gmx.de>

	* bootstrap.conf: Remove xalloc from libutils_modules.
	* libutils/pk-utils.c (pk_str_concat): Use malloc instead of xmalloc.

2020-05-05  Tim Rühsen  <tim.ruehsen@gmx.de>

	* .gitignore: Add /gl-libpoke.
	* Makefile.am: Add gl-libpoke to SUBDIRS.
	* bootstrap.conf: Invoke gnulib-tool to generate gl-libpoke.
	Cleanup gnulib module lists.
	Remove --lgpl=3 from gnulib-tool invocation.
	* configure.ac: Add m4/libpoke to AC_CONFIG_MACRO_DIRS.
	Add libpoke_EARLY.
	Add gl-libpoke/Makefile to AC_CONFIG_FILES.
	* libpoke/Makefile.am: Use gl-libpoke/libgnu.la in libpoke_la_LIBADD.

2020-05-05  Jose E. Marchesi  <jose.marchesi@oracle.com>

	* bootstrap.conf: libutils is GPLv3+.

2020-05-05  Jose E. Marchesi  <jemarch@gnu.org>

	* bootstrap.conf (libutils_modules): Add xalloc.

2020-05-05  Tim Rühsen  <tim.ruehsen@gmx.de>

	* .gitignore: Add /gl-libutils.
	* Makefile.am: Add gl-libutils to SUBDIRS.
	* bootstrap.conf: Invoke gnulib-tool to generate gl-libutils.
	* configure.ac: Add m4/libutils to AC_CONFIG_MACRO_DIRS.
	Add libutils_EARLY.
	Add gl-libutils/Makefile to AC_CONFIG_FILES.
	* libutils/Makefile.am: Use gl-libutils/libgnu.la in libutils_la_LIBADD.

2020-05-05  Darshit Shah  <darnir@gnu.org>

  * poke/Makefile.am: Merge two ifdef blocks into one. (Purely cosmetic)

2020-05-05  Darshit Shah  <darnir@gnu.org>

  * m4/libtextstyle-hyperlink.m4: Use an action-if-true to prevent adding it to LIBS
  AC_SEARCH_LIBS will add the library to LIBS if action-if-true is empty.
  We prevent that by adding an action-if-true, and manually including
  LTLIBTEXTSTYLE in the libraries for Poke. This allows libpoke.so to be
  build without linking against libtextstle.

2020-05-05  Jose E. Marchesi  <jemarch@gnu.org>

	* libpoke/libpoke.c (complete_struct): Add parentheses in
	expression to avoid a compiler warning.

2020-05-05  Jose E. Marchesi  <jemarch@gnu.org>

	* pickles/future/bson.pk: Minor fixes.

2020-05-04  Tim Rühsen  <tim.ruehsen@gmx.de>

	* HACKING: Fix some URLs from http: to https:

2020-05-04  Jose E. Marchesi  <jemarch@gnu.org>

	* libpoke/libpoke.c (complete_struct): Fix completion of normal
	fields, and add support for completing method names as well.
	* libpoke/pkl-ast.c (pkl_struct_type_traverse): Revert changes
	from commit 9e0206681.
	* testsuite/poke.repl/repl.exp (tab-completion-struct-field-1):
	New test.
	(tab-completion-struct-field-2): Likewise.
	(tab-completion-struct-field-3): Likewise.

2020-05-04  Jose E. Marchesi  <jemarch@gnu.org>

	* libpoke/pkl-anal.h (struct pkl_anal_payload): New fields context
	and next_context.
	(pkl_anal_init_payload): Define.
	(PKL_ANAL_NO_CONTEXT): Likewise.
	(PKL_ANAL_CONTEXT_STRUCT_TYPE): Likewise.
	(PKL_ANAL_CONTEXT_METHOD): Likewise.
	* libpoke/pkl.c (rest_of_compilation): Use pkl_anal_init_payload.
	* libpoke/pkl-lex.l: Process METHOD.
	* lib/pkl-tab.y (declaration): Use defun_or_method and annotate
	function nodes as methods accordingly.
	(defun_or_method): New rule.
	(IS_DEFUN): Define.
	(IS_METHOD): Likewise.
	* libpoke/pkl-ast.h (PKL_AST_DECL_IN_STRUCT_P): Define.
	(struct pkl_ast_decl): New field in_struct_p.
	* libpoke/pkl-trans.c (pkl_trans1_pr_decl): Do not annotate
	functions as methods.
	Annotate declarations in struct types.
	* libpoke/std.pk (POSIX_Time64): Turn defun into method.
	(POSIX_Time32): Likewise.
	* pickles/id3v1.pk: Likewise.
	* pickles/bpf.pk: Likewise.
	* pickles/btf.pk: Likewise.
	* pickles/ctf.pk: Likewise.
	* pickles/elf.pk: Likewise.
	* pickles/leb128.pk: Likewise.
	* libpoke/pkl-anal.c (pkl_anal1_pr_decl): New handler.
	(pkl_phase_anal1): Register handler.
	(pkl_anal1_ps_var): methods can only be referenced as variables
	from other methods, nor other defuns.  Allow for regular functions
	to refer to struct fields as variables.
	(pkl_anal1_ps_ass_stmt): New handler.
	(pkl_phase_anal1): Install handler.
	(pkl_anal1_ps_type_struct): Update error message to reflect
	methods.
	(PKL_ANAL_CONTEXT): Define.
	(PKL_ANAL_CONTEXT_PUSH_STRUCT_TYPE): Likewise.
	(PKL_ANAL_POP_CONTEXT): Likewise.
	(pkl_anal1_pr_type_struct): New handler.
	(pkl_anal1_ps_type_struct): Pop analysis context.
	(pkl_anal1_pr_func): New handler.
	(pkl_phase_anal1): Register new handlers.
	* libpoke/pkl-gen.pks (struct_mapper): Do not register regular
	defuns as methods.
	(struct_constructor): Likewise.
	* libpoke/pkl-typify.c (pkl_typify1_ps_struct_ref): Do not allow
	referring to non-methods in srefs.
	* doc/poke.texi: Update.
	* testsuite/poke.map/maps-structs-methods-11.pk (Foo): Likewise.
	* testsuite/poke.map/maps-structs-methods-10.pk (Foo): Likewise.
	* testsuite/poke.map/maps-structs-methods-9.pk (Foo): Likewise.
	* testsuite/poke.map/maps-structs-methods-8.pk (Foo): Likewise.
	* testsuite/poke.map/maps-structs-methods-7.pk (Foo): Likewise.
	* testsuite/poke.map/maps-structs-methods-6.pk (Foo): Likewise.
	* testsuite/poke.map/maps-structs-methods-5.pk (ULEB_128): Likewise.
	* testsuite/poke.map/maps-structs-methods-4.pk (Foo): Likewise.
	* testsuite/poke.map/maps-structs-methods-3.pk (Foo): Likewise.
	* testsuite/poke.map/maps-structs-methods-2.pk (Foo): Likewise.
	* testsuite/poke.map/maps-structs-methods-1.pk (Foo): Likewise.
	* testsuite/poke.pkl/struct-pretty-print-4.pk (Foo): Likewise.
	* testsuite/poke.pkl/struct-pretty-print-3.pk (Foo): Likewise.
	* testsuite/poke.pkl/struct-pretty-print-2.pk (Foo): Likewise.
	* testsuite/poke.pkl/struct-pretty-print-1.pk (Foo): Likewise.
	* testsuite/poke.pkl/struct-method-diag-6.pk (Foo): Likewise.
	* testsuite/poke.pkl/struct-method-diag-5.pk (Foo): Likewise.
	* testsuite/poke.pkl/struct-method-diag-4.pk (Foo): Likewise.
	* testsuite/poke.pkl/struct-method-diag-3.pk (Foo): Likewise.
	* testsuite/poke.pkl/struct-method-diag-2.pk (Foo): Likewise.
	* testsuite/poke.pkl/struct-method-diag-1.pk (Foo): Likewise.
	* testsuite/poke.pkl/struct-method-8.pk (Foo): Likewise.
	* testsuite/poke.pkl/struct-method-7.pk (Foo): Likewise.
	* testsuite/poke.pkl/struct-method-6.pk (Foo): Likewise.
	* testsuite/poke.pkl/struct-method-5.pk (Foo): Likewise.
	* testsuite/poke.pkl/struct-method-4.pk (Foo): Likewise.
	* testsuite/poke.pkl/struct-method-3.pk (Foo): Likewise.
	* testsuite/poke.pkl/struct-method-2.pk (Foo): Likewise.
	* testsuite/poke.pkl/struct-method-1.pk (Foo): Likewise.
	* testsuite/poke.pkl/scons-23.pk (Bar): Likewise.
	* testsuite/poke.pkl/scons-19.pk (Foo): Likewise.
	* testsuite/poke.pkl/scons-18.pk (BPF_Reg): Likewise.
	* testsuite/poke.pkl/optcond-17.pk (Foo): Likewise.
	* testsuite/poke.pkl/optcond-16.pk (Foo): Likewise.
	* testsuite/poke.pkl/optcond-12.pk (Foo): Likewise.
	* testsuite/poke.pkl/struct-method-diag-7.pk: New test.
	* testsuite/poke.pkl/struct-method-diag-8.pk: Likewise.
	* testsuite/poke.pkl/struct-method-diag-9.pk: Likewise.
	* testsuite/poke.pkl/sref-diag-1.pk: Likewise.
	* testsuite/poke.pkl/sref-diag-2.pk: Likewise.
	* testsuite/poke.pkl/struct-types-defun-1.pk: Likeiwse.
	* testsuite/poke.pkl/struct-types-defun-2.pk: Likewise.
	* testsuite/poke.pkl/struct-types-defun-3.pk: Likewise.
	* testsuite/poke.pkl/struct-method-diag-10.pk: Likewise.
	* testsuite/poke.pkl/struct-method-diag-11.pk: Likewise.
	* testsuite/poke.pkl/optcond-18.pk: Likewise.
	* testsuite/poke.pkl/optcond-19.pk: Likewise.
	* testsuite/poke.pkl/optcond-20.pk: Likewise.
	* testsuite/poke.pkl/struct-pretty-print-5.pk: Likewise.
	* testsuite/poke.pkl/struct-types-defun-diag-1.pk: Likewise.
	* testsuite/poke.pkl/struct-types-defun-diag-2.pk: Likewise.
	* testsuite/poke.pkl/struct-method-9.pk: Likewise.
	* testsuite/poke.pkl/struct-method-diag-12.pk: Likewise.
	* testsuite/poke.pkl/struct-method-diag-13.pk: Likewise.
	* testsuite/poke.pkl/struct-method-diag-14.pk: Likewise.

2020-05-04  Jose E. Marchesi  <jemarch@gnu.org>

	* poke/poke.c (initialize): Exit if there is an error initializing
	the poke incremental compiler.
	* libpoke/libpoke.c (pk_compiler_new): Acknowledge errors from
	pvm_init and pkl_new.

2020-05-04  Jose E. Marchesi  <jemarch@gnu.org>

	* libpoke/libpoke.h: Little fixes in comments.

2020-05-03  Tim Rühsen  <tim.ruehsen@gmx.de>

	* libpoke/pk-utils.c (pk_print_binary): Format args GNU-style.

2020-05-03  Jose E. Marchesi  <jemarch@gnu.org>

	* doc/Makefile.am (poke.text): Generate in builddir, not in
	srcdir.
	(nodelist): Likewise.  Also avoid $@.
	(clean-local): Remove nodelist and poke.text.
	* poke/poke.c (poke_docdir): New variable.
	(initialize): Initialize poke_docdir.
	* poke/pk-misc.c (doc_completion_function): Use poke_docdir to
	find the nodelist file.
	(pk_cmd_doc): Likewise for the poke.text file.
	* run.in (POKEDOCDIR): Set to top_builddir/doc.
	* testsuite/Makefile.am (check-DEJAGNU): Set POKEDOCDIR.

2020-05-03  Jose E. Marchesi  <jemarch@gnu.org>

	* libpoke/pkl-trans.c (pkl_trans3_ps_of_sizeof): Remove stale
	debugging trace.

2020-05-03  Jose E. Marchesi  <jemarch@gnu.org>

	* libpoke/pkl-gen.h (struct pkl_gen_payload): New field
	generating_pvm_struct_type.
	* libpoke/pkl-gen.c (pkl_gen_pr_decl): Break the pass if
	generating a pvm struct type.
	(pkl_gen_pr_type_struct): Set generating_pvm_struct_type.
	(pkl_gen_ps_type_struct): Clear generating_pvm_struct_type.
	* testsuite/poke.pkl/arrays-13.pk: New test.

2020-05-03  Tim Rühsen  <tim.ruehsen@gmx.de>

	* libutils/Makefile.am: New file.

2020-05-03  Tim Rühsen  <tim.ruehsen@gmx.de>

	* Makefile.am: Add libutils to SUBDIRS.
	* configure.ac: Add libutils/Makefile to AC_CONFIG_FILES.
	* libutils/Makefile.am: New file.
	* libpoke/pk-utils.c: Move to libutils/.
	* libpoke/pk-utils.h: Likewise.
	* libpoke/Makefile.am: Use libutils/libutils.la instead of
	libpoke/libpokeutils.la.
	* poke/Makefile.am: Likewise.
	* po/POTFILES.in: Add libutils/pk-utils.[ch].

2020-05-03  Jose E. Marchesi  <jemarch@gnu.org>

	* pickles/id3v1.pk (ID3V1_Tag): Add setter and getter methods.
	* testsuite/poke.id3v1/id3v1.exp: New testsuite.
	* testsuite/poke.id3v1/id3v1-1.pk: New test.
	* testsuite/poke.id3v1/id3v1-2.pk: Likewise.
	* testsuite/poke.id3v1/id3v1-3.pk: Likewise.
	* testsuite/poke.id3v1/id3v1-4.pk: Likewise.
	* testsuite/poke.id3v1/id3v1-5.pk: Likewise.
	* testsuite/poke.id3v1/id3v1-6.pk: Likewise.
	* testsuite/poke.id3v1/id3v1-7.pk: Likewise.
	* testsuite/poke.id3v1/id3v1-8.pk: Likewise.
	* testsuite/poke.id3v1/id3v1-9.pk: Likewise.
	* doc/poke.texi (Audio): New chapter.
	(MP3): New section.
	(ID3V1 Tags): New subsection.

2020-05-03  Tim Rühsen  <tim.ruehsen@gmx.de>

	* libpoke/Makefile.am: Add libgnu.la to libpoke_la_LIBADD.
	* libpoke/pkl-fold.c: Use fold_gcd instead gcd.

2020-05-02  Tim Rühsen  <tim.ruehsen@gmx.de>

	* libpoke/libpoke.h: Remove include of pk-utils.h.
	Add include of stdint.h.
	* libpoke/Makefile.am: Add libpokeutils.la to ib_LTLIBRARIES.
	Remove pk-utils.h pk-utils.c from libpoke_la_SOURCES.
	Add libpokeutils.la to libpoke_la_LIBADD.
	Add assignments for libpokeutils_la.
	* poke/Makefile.am: Add libpokeutils.la to poke_LDADD.
	* poke/pk-cmd.c: Add include of pk-utils.h.
	* poke/pk-cmd.h: Add include of stddef.h.
	* poke/pk-editor.c: Add include of pk-utils.h.
	* poke/pk-info.c: Likewise.
	* poke/pk-ios.c: Likewise.
	* poke/pk-misc.c: Likewise.
	* poke/pk-set.c: Likewise.
	* poke/poke.c: Likewise.

2020-05-03  Jose E. Marchesi  <jemarch@gnu.org>

	* libpoke/std.pk (stoca): Define.
	* testsuite/poke.std/stoca-1.pk: New test.
	* testsuite/poke.std/stoca-2.pk: Likewise.
	* testsuite/poke.std/stoca-3.pk: Likewise.
	* testsuite/poke.std/stoca-4.pk: Likewise.
	* doc/poke.texi (stoca): New section.

2020-05-03  Jose E. Marchesi  <jemarch@gnu.org>

	* doc/poke.texi (Writing Pickles): New chapter.
	(Setters and Getters): Likewise.

2020-05-03  John Darrington <john@darrington.wattle.id.au>

	* poke/pk-cmd.c: Reduce scope of local variables.

2020-05-03  John Darrington <john@darrington.wattle.id.au>

	* poke/pk-cmd.c (pk_cmd_get_next_match): Fix bug in completer.

2020-05-02  Jose E. Marchesi  <jemarch@gnu.org>

	* pickles/id3v1.pk (ID3V1_Tag): Text-stylize the output of the
	pretty-printer.

2020-05-02  Jose E. Marchesi  <jemarch@gnu.org>

	* libpoke/pkl-gen.c (pkl_gen_pr_ass_stmt): Support field variables
	in l-values in methods.
	* testsuite/poke.pkl/struct-method-8.pk: New test.
	* testsuite/poke.map/maps-structs-methods-11.pk: Likewise.

2020-05-02  Jose E. Marchesi  <jemarch@gnu.org>

	* pickles/id3v1.pk: Moved from future/.

2020-05-02  Jose E. Marchesi  <jemarch@gnu.org>

	* poke/Makefile.am (poke_CPPFLAGS): Adjust to lib->libpoke.

2020-05-02  Jose E. Marchesi  <jemarch@gnu.org>

	* poke: renamed from src.
	* libpoke: renamed from lib.
	* Makefile.am (SUBDIRS): Update accordingly.
	* configure.ac: Likewise.
	* doc/Makefile.am: Likewise.
	* poke/Makefile.am: Likewise.
	* run.in: Likewise.
	* testsuite/lib/poke.exp: Likewise.
	* testsuite/Makefile.am: Likewise.
	* HACKING: Likewise.
	* .gitignore: Likewise.

2020-05-02  Tim Rühsen  <tim.ruehsen@gmx.de>

	* lib/pk-utils.c: Remove pkt.h from includes.
	(pk_print_binary): Add string output function as first param.
	* lib/pk-utils.h (pk_print_binary): Likewise.
	* lib/pvm-val.c (pvm_print_val_1): Add pk_puts as first param
	when calling pk_print_binary.
	* lib/pvm.jitter: Likewise.

2020-05-02  Tim Rühsen  <tim.ruehsen@gmx.de>

2020-05-02  Jose E. Marchesi  <jemarch@gnu.org>

	* lib/pvm.jitter (PVM_POKE): Use the current IO space if PVM_NULL
	is passed as the IOS.
	(PVM_PEEK): Likewise.
	* testsuite/poke.pkl/ios-cur-1.pk: New test.

2020-05-02  Tim Rühsen  <tim.ruehsen@gmx.de>

	* src/pk-cmd.c: Add macro is_command.
	(pk_cmd_exec): Use IS_COMMAND to check for command.

2020-05-02  Tim Rühsen  <tim.ruehsen@gmx.de>

	* src/pk-cmd.c (pk_cmd_exec): Fix params to strncmp.

2020-05-02  Jose E. Marchesi  <jemarch@gnu.org>

	* lib/pkl-gen.c (pkl_gen_pr_func): Fix typo in comment.

2020-05-02  Jose E. Marchesi  <jemarch@gnu.org>

	* lib/pkl-anal.c (pkl_anal1_ps_var): New handler.
	(pkl_phase_anal1): Register handler.
	* lib/pkl-trans.h (struct pkl_trans_payload): New field
	`function_back'.
	* lib/pkl-ast.h (PKL_AST_FUNC_METHOD_P): Define.
	(struct pkl_ast_func): New field method_p.
	(PKL_AST_VAR_FUNCTION): Define.
	(PKL_AST_VAR_FUNCTION_BACK): Likewise.
	(struct pkl_ast_var): New fields `function' and `function_back'.
	* lib/pkl-ast.c (pkl_ast_print_1): Print the method_p attribute of
	function ast nodes.
	* lib/pkl-tab.y (function_specifier): Always introduce a lexical
	environment for function arguments.
	* lib/pkl-trans.c (pkl_trans1_pr_decl): Annotate functions as
	methods whenever appropriate.
	(PKL_TRANS_PUSH_FUNCTION): reset the function_back to 0.
	(PKL_TRANS_FUNCTION_BACK): Define.
	(PKL_TRANS_INCR_FUNCTION_BACK): Likewise.
	(PKL_TRANS_DECR_FUNCTION_BACK): Likewise.
	(pkl_trans1_pr_comp_stmt): New handler.
	* lib/pkl-gen.c (pkl_gen_pr_func): Acknowledge the implicit first
	argument in methods.
	(pkl_gen_ps_func): Likewise.
	* lib/pvm-val.c (pvm_call_pretty_printer): Pass the struct as an
	argument to the pretty-printer.
	* pickles/bpf.pk: Adap to obey new rules for methods.
	* testsuite/poke.pkl/struct-method-2.pk: New test.
	* testsuite/poke.pkl/struct-method-3.pk: Likewise.
	* testsuite/poke.pkl/struct-method-4.pk: Likewise.
	* testsuite/poke.pkl/struct-method-5.pk: Likewise.
	* testsuite/poke.pkl/struct-method-6.pk: Likewise.
	* testsuite/poke.pkl/struct-method-diag-1.pk: Likewise.
	* testsuite/poke.pkl/struct-method-diag-2.pk: Likewise.
	* testsuite/poke.pkl/struct-method-diag-3.pk: Likewise.
	* testsuite/poke.pkl/struct-types-5.pk: Adapt.
	* testsuite/poke.pkl/struct-types-4.pk: Likewise.
	* testsuite/poke.map/maps-unions-6.pk: Likewise.
	* testsuite/poke.map/maps-structs-12.pk: Likewise.
	* testsuite/poke.map/maps-structs-methods-10.pk: Likewise.
	* testsuite/poke.map/maps-structs-methods-9.pk: Likewise.
	* testsuite/poke.pkl/struct-method-8.pk: Likewise.
	* testsuite/poke.pkl/struct-method-diag-4.pk: Likewise.
	* testsuite/poke.pkl/struct-method-7.pk: Likewise.
	* testsuite/poke.pkl/struct-method-diag-5.pk: Likewise.
	* testsuite/poke.pkl/struct-method-diag-6.pk (Foo): Likewise.

2020-05-02  John Darrington <john@darrington.wattle.id.au>

	* src/pk-editor.c (pk_cmd_editor): Remove useless code.

2020-05-02  John Darrington <john@darrington.wattle.id.au>

	* src/pk-misc.c (pk_cmd_doc): Reduce scope of local variables.

2020-05-02  Tim Rühsen  <tim.ruehsen@gmx.de>

	* src/pk-repl.c (pk_repl): Remove unused variable.

2020-05-02  Tim Rühsen  <tim.ruehsen@gmx.de>

	* src/pk-cmd.c (pk_cmd_exec_1): Narrow variable scope
	and fix compiler warning with it.

2020-05-02  Tim Rühsen  <tim.ruehsen@gmx.de>

	* etc/git-hooks/pre_push: Make syntax-check only if needed.

2020-05-02  John Darrington <john@darrington.wattle.id.au>

	* doc/poke.texi (Conditional Expressions): Add indices.

2020-05-02  John Darrington <john@darrington.wattle.id.au>

	* doc/poke.texi: Use @dots{} instead of ...

2020-05-02  John Darrington <john@darrington.wattle.id.au>

	* doc/poke.texi: Add italic markup on latin loan words.

2020-05-02  John Darrington <john@darrington.wattle.id.au>

	* doc/poke.texi: Don't indent in the middle of a paragraph

2020-05-02  John Darrington <john@darrington.wattle.id.au>

	* src/pk-repl.c (escape_metacharacters): Add comment.

2020-05-02  John Darrington <john@darrington.wattle.id.au>

	* lib/libpoke.c (pk_completion_function): Improve comments and
	parameter naming.
	* lib/libpoke.c (pk_ios_completion_function): Ditto.
	* lib/libpoke.h (pk_completion_function): Ditto.
	* lib/libpoke.h (pk_ios_completion_function): Ditto.
	* src/pk-rep.c (poke_completion_function): Ditto.

2020-05-02  John Darrington <john@darrington.wattle.id.au>

	* src/pk-cmd.c (pk_cmd_get_next_match): Remove parameter
	idx and use a static local instead.
	* src/pk-cmd.h (pk_cmd_get_next_match): Remove parameter
	idx.
	* src/pk-repl.c (poke_completion_function): Adjust call
	to pk_cmd_get_next_match.

2020-05-02  John Darrington <john@darrington.wattle.id.au>

	* doc/poke.texi (Poking Structs): Replace "Lets" with "Let's".
	* cfg.mk (sc_jemarchism.z): New rule.
	* cfg.mk (local-checks-available): Add it.

2020-05-01  Jose E. Marchesi  <jemarch@gnu.org>

	* testsuite/poke.pkl/optcond-16.pk: New test.
	* testsuite/poke.pkl/optcond-17.pk: Likewise.

2020-05-01  Jose E. Marchesi  <jemarch@gnu.org>

	* doc/poke.texi (The Color Registry): Fix example.

2020-05-01  Jose E. Marchesi  <jemarch@gnu.org>

	* pickles/color.pk: Reduce, and add comments.
	* pickles/rgb24.pk: New file.
	* pickles/Makefile.am (dist_pkgdata_DATA): Add rgb24.pk.
	* testsuite/poke.rgb24/rgb24.exp: New testsuite.
	* testsuite/poke.rgb24/rgb24-1.pk: New test.
	* doc/poke.texi (RGB24 Encoding): New section.

2020-05-01  Jose E. Marchesi  <jemarch@gnu.org>

	* pickles/color.pk: New file.
	* pickles/Makefile.am (dist_pkgdata_DATA): Add color.pk.
	* testsuite/poke.color/color.exp: New testsuite.
	* testsuite/poke.color/color-1.pk: New test.
	* testsuite/poke.color/color-2.pk: Likewise.
	* testsuite/poke.color/color-3.pk: Likewise.
	* testsuite/poke.color/color-4.pk: Likewise.
	* doc/poke.texi (Colors): New chapter.
	(The Color Registry): New section.
	* HACKING (Testing Pickles): New section.
	(Writing Documentation): New chapter.
	(Documenting Pickles): New section.

2020-05-01  Jose E. Marchesi  <jemarch@gnu.org>

	* HACKING: update the libtool call for gdb line.

2020-05-01  Jose E. Marchesi  <jemarch@gnu.org>

	* doc/poke.texi (Poking Structs): New section.

2020-05-01  Jose E. Marchesi  <jemarch@gnu.org>

	* lib/pkl-gen.c: Remove trailing whitespaces.

2020-05-01  Jose E. Marchesi  <jemarch@gnu.org>

	* lib/pkl-gen.c (pkl_gen_pr_if_stmt): Optimize constant
	expressions in conditional statements.
	* testsuite/poke.pkl/if-4.pk: New test.
	* testsuite/poke.pkl/if-5.pk: Likewise.

2020-05-01  Jose E. Marchesi  <jemarch@gnu.org>

	* lib/libpoke.c (pk_disassemble_function): Do not destroy the
	disassembled program.

2020-05-01  Jose E. Marchesi  <jemarch@gnu.org>

	* lib/pkl-gen.c (pkl_gen_pr_comp_stmt): Optimize empty compound
	statements away.

2020-05-01  Jose E. Marchesi  <jemarch@gnu.org>

	* lib/pkl-gen.c (pkl_gen_pr_loop_stmt): Optimize while(0) and
	while(1).

2020-05-01  Tim Rühsen  <tim.ruehsen@gmx.de>

	* po/POTFILES.in: Move lib/pk-term.[ch] to src/

2020-04-30  Jose E. Marchesi  <jemarch@gnu.org>

	* HACKING: Document lib/pkt.h.

2020-04-30  Jose E. Marchesi  <jemarch@gnu.org>

	* lib/libpoke.h (pk_compiler_new): Remove the term_payload
	argument.
	* lib/libpoke.c (pk_compiler_new): Likewise.
	* src/poke.c (initialize): Likewise.

2020-04-30  Jose E. Marchesi  <jemarch@gnu.org>

	* lib/libpoke.c (pk_compiler_new): Get new arguments term_if and
	term_payload.
	* lib/libpoke.h (pk_term_flush_fn): New type.
	(pk_term_puts_fn): Likewise.
	(pk_term_printf_fn): Likewise.
	(pk_term_class_fn): Likewise.
	(pk_term_end_class_fn): Likewise.
	(pk_term_hyperlink_fn): Likewise.
	(pk_term_end_hyperlink_fn): Likewise.
	* src/pk-term.h: Moved from lib.
	* src/pk-term.c: Likewise.
	* src/Makefile.am (poke_SOURCES): Add pk-term.h and pk-term.c.
	(poke_LDADD): Add libtextstyle.
	* lib/Makefile.am (libpoke_la_LIBADD): Remove libtextstyle.
	* lib/Makefile.am (libpoke_la_SOURCES): Remove pk-term.h and
	pk-term.c.
	(include_HEADERS): Remove pk-term.h.
	* HACKING: Updated to reflect relocated sources.
	* lib/pkt.h: New file.
	* src/pk-cmd.c: Include pk-term.h.
	* src/poke.c: Likewise.
	* src/pk-vm.c: Likewise.
	* src/pk-set.c: Likewise.
	* src/pk-repl.c: Likewise.
	* src/pk-misc.c: Likewise.
	* src/pk-ios.c: Likewise.
	* src/pk-hserver.c: Likewise.
	* src/pk-editor.c: Likewise.
	* src/pk-def.c: Likewise.

2020-04-30  Jose E. Marchesi  <jemarch@gnu.org>

	* HACKING: Add lib/libpoke.[ch] to the source tree appendix.

2020-04-29  Jose E. Marchesi  <jemarch@gnu.org>

	* lib/Makefile.am (include_HEADERS): Add missing pk-utils.h and
	pk-term.h.

2020-04-17  Jose E. Marchesi  <jemarch@gnu.org>

	* src/poke.h (poke_compiler): Switch to type pk_compiler.
	(poke_vm): Remove extern.
	Do not include pkl.h.
	Include libpoke.h.

	* src/poke.c (finalize): Use pk_free_compiler.
	(initialize): Use pk_compiler_new.
	(poke_compiler): Switch to type pk_compiler.
	(poke_vm): Remove global.

	* lib/libpoke.h (pk_compiler): New type.
	* lib/libpoke.c (pk_compiler_new): New function.
	(pk_compiler_free): Likewise.

2020-04-15  Jose E. Marchesi  <jemarch@gnu.org>

	* lib/libpoke.h: New file.
	* lib/libpoke.c: Likewise.
	* lib/Makefile.am (include_HEADERS): Distribute libpoke.h.
	(libpoke_la_SOURCES): Add libpoke.h and libpoke.c and remove
	pkl-compiler.h.
	* lib/pkl-compiler.h: Remove.
	* lib/pvm.h: Mark function prototypes as hidden.
	* lib/pkl.h: Likewise.
	* lib/ios.h: Likewise.

2020-04-15  Jose E. Marchesi  <jemarch@gnu.org>

	* lib/pkl.h: Fix typo.

2020-04-15  Jose E. Marchesi  <jemarch@gnu.org>

	* lib/pkl-compiler.h: New file.
	* lib/pkl-asm.c: Include pkl-compiler.h

2020-04-15  Jose E. Marchesi  <jemarch@gnu.org>

	* lib/pkl-tab.y (pkl_tab_error): Mark as static.
	(pkl_register_arg): Likewise.
	(pkl_register_args): likewise.
	* lib/pkl-ast.h (pkl_ast_chainon): Set ELF visibility to hidden.
	(pkl_ast_make_program): Likewise.
	(pkl_ast_make_identifier): Likewise.
	(pkl_ast_make_integer): Likewise.
	(pkl_ast_make_string): Likewise.
	(pkl_ast_make_array): Likewise.
	(pkl_ast_make_array_initializer): Likewise.
	(pkl_ast_make_struct): Likewise.
	(pkl_ast_make_struct_field): Likewise.
	(pkl_ast_make_unary_exp): Likewise.
	(pkl_ast_make_binary_exp): Likewise.
	(pkl_ast_make_cond_exp): Likewise.
	(pkl_ast_make_enumerator): Likewise.
	(pkl_ast_make_enum): Likewise.
	(pkl_ast_make_func): Likewise.
	(pkl_ast_make_func_arg): Likewise.
	(pkl_ast_make_trimmer): Likewise.
	(pkl_ast_make_indexer): Likewise.
	(pkl_ast_make_struct_ref): Likewise.
	(pkl_ast_make_struct_field_type): Likewise.
	(pkl_ast_make_func_type_arg): Likewise.
	(pkl_ast_make_named_type): Likewise.
	(pkl_ast_make_integral_type): Likewise.
	(pkl_ast_make_void_type): Likewise.
	(pkl_ast_make_string_type): Likewise.
	(pkl_ast_make_array_type): Likewise.
	(pkl_ast_make_struct_type): Likewise.
	(pkl_ast_make_offset_type): Likewise.
	(pkl_ast_make_function_type): Likewise.
	(pkl_ast_make_any_type): Likewise.
	(pkl_ast_dup_type): Likewise.
	(pkl_ast_type_promoteable): Likewise.
	(pkl_ast_sizeof_type): Likewise.
	(pkl_ast_type_is_complete): Likewise.
	(pkl_ast_array_type_remove_bounders): Likewise.
	(pkl_ast_make_decl): Likewise.
	(pkl_ast_make_offset): Likewise.
	(pkl_ast_make_cast): Likewise.
	(pkl_ast_make_isa): Likewise.
	(pkl_ast_make_map): Likewise.
	(pkl_ast_make_scons): Likewise.
	(pkl_ast_make_funcall): Likewise.
	(pkl_ast_make_funcall_arg): Likewise.
	(pkl_ast_make_var): Likewise.
	(pkl_ast_make_comp_stmt): Likewise.
	(pkl_ast_make_builtin): Likewise.
	(pkl_ast_make_null_stmt): Likewise.
	(pkl_ast_make_ass_stmt): Likewise.
	(pkl_ast_make_if_stmt): Likewise.
	(pkl_ast_make_loop_stmt): Likewise.
	(pkl_ast_make_loop_stmt_iterator): Likewise.
	(pkl_ast_make_return_stmt): Likewise.
	(pkl_ast_finish_returns): Likewise.
	(pkl_ast_make_exp_stmt): Likewise.
	(pkl_ast_make_try_until_stmt): Likewise.
	(pkl_ast_make_try_catch_stmt): Likewise.
	(pkl_ast_make_print_stmt): Likewise.
	(pkl_ast_make_print_stmt_arg): Likewise.
	(pkl_ast_make_break_stmt): Likewise.
	(pkl_ast_finish_breaks): Likewise.
	(pkl_ast_make_raise_stmt): Likewise.
	(pkl_ast_init): Likewise.
	(pkl_ast_free): Likewise.
	(pkl_ast_node_free): Likewise.
	(pkl_ast_node_free_chain): Likewise.
	(pkl_ast_reverse): Likewise.
	(pkl_ast_type_equal): Likewise.
	(pkl_ast_type_is_exception): Likewise.
	(pkl_ast_lvalue_p): Likewise.
	(pkl_ast_print): Likewise.
	(pkl_print_type): Likewise.
	(pkl_type_str): Likewise.
	(pkl_ast_func_all_optargs): Likewise.
	(pkl_ast_type_mappable_p): Likewise.
	* lib/pkl-env.h (pkl_env_free): Likewise.
	(pkl_env_free): Likewise.
	(pkl_env_push_frame): Likewise.
	(pkl_env_pop_frame): Likewise.
	(pkl_env_register): Likewise.
	(pkl_env_toplevel_p): Likewise.
	(pkl_env_dup_toplevel): Likewise.
	* lib/pkl-diag.h (pkl_error): Likewise.
	(pkl_warning): Likewise.
	(pkl_ice): Likewise.
	* lib/pkl-asm.h (pkl_asm_new): Likewise.
	(pkl_asm_finish): Likewise.
	(pkl_asm_insn): Likewise.
	(pkl_asm_call): Likewise.
	(pkl_asm_if): Likewise.
	(pkl_asm_then): Likewise.
	(pkl_asm_else): Likewise.
	(pkl_asm_endif): Likewise.
	(pkl_asm_while): Likewise.
	(pkl_asm_loop): Likewise.
	(pkl_asm_endloop): Likewise.
	(pkl_asm_for): Likewise.
	(pkl_asm_for_where): Likewise.
	(pkl_asm_for_loop): Likewise.
	(pkl_asm_for_endloop): Likewise.
	(pkl_asm_try): Likewise.
	(pkl_asm_catch): Likewise.
	(pkl_asm_endtry): Likewise.
	(pkl_asm_break_label): Likewise.
	(pkl_asm_note): Likewise.
	(pkl_asm_fresh_label): Likewise.
	(pkl_asm_label): Likewise.
	* lib/pkl-parser.h (pkl_parse_file): Likewise.
	(pkl_parse_buffer): Likewise.
	* lib/pkl-pass.h (pkl_do_pass): Likewise.
	(pkl_do_subpass): Likewise.
	* lib/pkl.h (pkl_struct_type_traverse): Moved from pkl-ast.h.
	* lib/Makefile.am (pkginclude_HEADERS): Do not distribute
	pkl-ast.h.
	* lib/pkl-env.c: Include pkl-ast.h
	* lib/pkl-diag.h: Likewise.

2020-04-26  John Darrington <john@darrington.wattle.id.au>

	* src/pk-hserver.c (pk_hserver_init): Change signature to take void.
	* src/pk-hserver.c (pk_hserver_shutdown): Ditto
	* src/poke.c (print_help): Ditto
	* src/poke.c (pk_print_version): Ditto
	* src/poke.c (finalize): Ditto
	* src/poke.c (initialize_user): Ditto
	* src/poke.h (initialize_user): Ditto

2020-04-25  John Darrington <john@darrington.wattle.id.au>

	* src/poke.c (pk_print_version): Add comment for translators.

2020-04-25  John Darrington <john@darrington.wattle.id.au>

	* src/pk-cmd.c (pk_cmd_exec): Use pk_str_concat.

2020-04-25  John Darrington <john@darrington.wattle.id.au>

	* src/poke.c (parse_args): Remove redundant variable "ret".
	* src/poke.c (initialize_user): Ditto.

2020-04-18  John Darrington <john@darrington.wattle.id.au>

	* doc/poke.texi (Array maps bounded by number of elements): New node.
	* doc/poke.texi (Array maps bounded by size): New node.
	* doc/poke.texi (Unbounded array maps): New node.
	* doc/poke.texi (Mapped bounds in bounded arrays): New node.

2020-04-14  Jose E. Marchesi  <jemarch@gnu.org>

	* lib/pvm-program.h (pvm_program_routine): Set ELF visibility to
	hidden.
	(pvm_program_beginning): Likewise.
	* lib/pkl-fold.c (pkl_phase_fold): Likewise.
	* lib/pkl-trans.c (pkl_phase_trans1): Likewise.
	(pkl_phase_trans2): Likewise.
	(pkl_phase_trans3): Likewise.
	(pkl_phase_trans4): Likewise.
	* lib/pkl-typify.c (pkl_phase_typify1): Likewise.
	(pkl_phase_typify2): Likewise.
	(GCD): Likewise.
	* lib/pkl-promo.c (pkl_phase_promo): Likewise.
	* lib/pkl-gen.c (pkl_phase_gen): Likewise.
	* lib/pkl-anal.c (pkl_phase_anal1): Likewise.
	(pkl_phase_anal2): Likewise.
	(pkl_phase_analf): Likewise.
	* lib/ios-dev-nbd.c (ios_dev_nbd): Likewise.
	* lib/ios-dev-file.c (ios_dev_file): Likewise.
	* lib/ios-dev-mem.c (ios_dev_mem): Likewise.
	* lib/pvm-val.h (pvm_allocate_struct_attrs): Likewise.
	(pvm_allocate_closure_attrs): Likewise.
	* lib/pvm-alloc.h (pvm_alloc_initialize): Likewise.
	(pvm_alloc_finalize): Likewise.
	(pvm_alloc_add_gc_roots): Likewise.
	(pvm_alloc_remove_gc_roots): Likewise.
	(pvm_alloc): Likewise.
	(pvm_realloc): Likewise.
	(pvm_alloc_cls): Likewise.
	(pvm_alloc_strdup): Likewise.
	(pvm_alloc_gc): Likewise.
	* lib/pvm.jitter (nenc_printer): Mark as static.
	(endian_printer): Likewise.
	(bits_printer): Likewise.
	(popf_printer): Likewise.
	(pvm_literal_printer_lo): Likewise.
	(pvm_literal_printer_hi): Likewise.
	(pvm_literal_printer): Likewise.
	(pvm_literal_printer_cast): Likewise.
	(printer_hi): Likewise.

2020-04-14  Jose E. Marchesi  <jemarch@gnu.org>

	* lib/pkl-trans.c (pkl_trans1_ps_print_stmt): Fix memory leak.

2020-04-13  Jose E. Marchesi  <jemarch@gnu.org>

	* src/pk-set.c: Include stdlib.h.

2020-04-13  Jose E. Marchesi  <jemarch@gnu.org>

	* src/poke.c (poke_doc_viewer): New global.
	* src/poke.h: Likewise.
	* src/pk-set.c (set_doc_viewer): Define.
	(set_cmds): Add set_doc_viewer.
	* src/pk-misc.c (pk_cmd_doc): Support for `less' as documentation
	viewer.
	* doc/poke.texi (doc command): Update.

2020-04-13  Jose E. Marchesi  <jemarch@gnu.org>

	* doc/Makefile.am (text): New target.
	($(builddir)/doc/poke.text): Likewise.

2020-04-13  Jose E. Marchesi  <jemarch@gnu.org>

	* lib/pkl-diag.c (pkl_detailed_location): Do not use off64_t.

2020-04-13  Jose E. Marchesi  <jemarch@gnu.org>

	* lib/ras: Fix ambiguous grouping in regexps.

2020-04-12  Jose E. Marchesi  <jemarch@gnu.org>

	* lib/pkl-insn.def: Do not use a white space between PKL_DEF_INSN
	and the open parenthesis in macro invocations, as a special case.
	Add explicative note.

2020-04-12  John Darrington <john@darrington.wattle.id.au>

	* doc/Makefile.am (nodelist): Change its directory.
	* testsuite/poke.repl/repl.exp (tab-completion-subcommand-2): New test.

2020-04-12  Jose E. Marchesi  <jemarch@gnu.org>

	* testsuite/poke.pkl/optcond-13.pk: New test.
	* testsuite/poke.pkl/optcond-14.pk: Likewise.
	* testsuite/poke.pkl/optcond-15.pk: Likewise.

2020-04-12  Jose E. Marchesi  <jemarch@gnu.org>

	* testsuite/poke.repl/repl.exp (tab-completion_type-1): New test.
	(tab-completion-var-1): Likewise.
	(tab-completion-fun-1): Likewise.

2020-04-12  Jose E. Marchesi  <jemarch@gnu.org>

	* testsuite/poke.repl/repl.exp (sigint-returns-to-prompt-2): New
	test.

2020-04-12  Jose E. Marchesi  <jemarch@gnu.org>

	* testsuite/poke.repl/repl.exp (slashes-are-preserved-1): Renamed
	from "slashes are preserved".
	(ctrl-c-returns-to-prompt-1): Remove.

2020-04-12  Jose E. Marchesi  <jemarch@gnu.org>

	* testsuite/lib/poke.exp (poke_send_signal): New proc.
	* testsuite/poke.repl/repl.exp (sigint-returns-to-prompt): New
	test.
	* testsuite/poke.repl/repl.exp (ctrl-c-returns-to-prompt):
	Likewise.
	* HACKING (Writing REPL tests): Document poke_send_signal.

2020-04-12  John Darrington <john@darrington.wattle.id.au>

	* doc/poke.texi:  Don't capitalise or indent "Where ..."

2020-04-12  John Darrington <john@darrington.wattle.id.au>

	* src/pk-set.c (set_completion_function): Fix bug which was
	exposed by recent test: tab-completion-subcommand-1.

2020-04-12  Jose E. Marchesi  <jemarch@gnu.org>

	* testsuite/poke.repl/repl.exp (tab-completion-subcommand-1): Use
	poke_send instead of poke_test_cmd.

2020-04-12  Jose E. Marchesi  <jemarch@gnu.org>

	* testsuite/lib/poke.exp (poke_exit): Make sure to discard any
	previous input before issuing the `exit' command.

2020-04-12  Jose E. Marchesi  <jemarch@gnu.org>

	* HACKING (Writing REPL tests): Mention poke_send.

2020-04-12  Jose E. Marchesi  <jemarch@gnu.org>

	* testsuite/lib/poke.exp (poke_send): New proc.
	* testsuite/poke.repl/repl.exp (tab-completion-2): New test.
	* HACKING (Command REPL tests): New subsection.
	(General REPL tests): Likewise.

2020-04-12  Jose E. Marchesi  <jemarch@gnu.org>

	* testsuite/lib/poke.exp (poke_test_cmd): Fail and return if poke
	has been killed.
	(poke_killed): New global.
	(poke_exit): Reset poke_killed whenever appropriate.

2020-04-12  Jose E. Marchesi  <jemarch@gnu.org>

	* testsuite/poke.repl/repl.exp (tab-completion-subcommand-1): New
	test

2020-04-12  Jose E. Marchesi  <jemarch@gnu.org>

	* testsuite/poke.repl/repl.exp: Rewrite tests to be more
	self-contained, and add some notes.
	* HACKING (Writing REPL tests): Updated.

2020-04-12  Jose E. Marchesi  <jemarch@gnu.org>

	* HACKING (Writing REPL tests): New section.

2020-04-12  Jose E. Marchesi  <jemarch@gnu.org>

	* testsuite/poke.repl/repl.exp (tab-completion-1): New test.

2020-04-10  Tim Rühsen  <tim.ruehsen@gmx.de>

	* lib/pkl.c (pkl_new): Return NULL instead of calling exit.
	* lib/pkl.h (pkl_new): Add function description.

2020-04-11  Jose E. Marchesi  <jemarch@gnu.org>

	* lib/Makefile.am (.pks.pkc): Cause make to stop with an error if
	ras fails.

2020-04-11  Bruno Haible  <bruno@clisp.org>

	Make 'git status' empty after "make distclean".
	* .gitignore: Ignore generated files that are distributed in the
	tarball.

2020-04-11  Bruno Haible  <bruno@clisp.org>

	Clean some generated files.
	* lib/Makefile.am: Delete pkl-tab.output during 'make mostlyclean'.
	* src/Makefile.am: Delete nodelist during 'make mostlyclean'.
	* .gitignore: Update accordingly.

2020-04-11  Jose E. Marchesi  <jemarch@gnu.org>

	* lib/Makefile.am (.pks.pkc): Remove partially generated .pks
	files when ras fails for some reason.

2020-04-11  Jose E. Marchesi  <jemarch@gnu.org>

	* lib/pk-utils.c: Include stdlib.h.

2020-04-11  Jose E. Marchesi  <jemarch@gnu.org>

	* lib/pvm.h (PVM_OK): Define.
	(PVM_ERROR): Likewise.
	* lib/pvm-val.c: Include pvm-program.h.
	* lib/pvm-program.h: Move program point definitions here from
	pvm.h.
	* lib/pvm-program.c (pvm_program_append_instruction): Return
	status codes.
	(pvm_program_append_label): Likewise.
	(pvm_program_append_label_parameter): Likewise.
	(pvm_program_append_register_parameter): Likewise.
	(pvm_program_append_unsigned_parameter): Liikewise.
	(pvm_program_append_val_parameter): Likewise.
	(pvm_program_append_push_instruction): Likewise.
	(pvm_program_make_executable): Likewise.

2020-04-11  Jose E. Marchesi  <jemarch@gnu.org>

	* HACKING: Updates on coding conventions.
	* lib/pvm.h (pvm_obase): Document.
	(pvm_set_obase): Likewise.
	(pvm_omode): Likewise.
	(pvm_set_omode): Likewise.
	(pvm_omaps): Likewise.
	(pvm_set_omaps): Likewise.
	(pvm_oindent): Likewise.
	(pvm_set_oindent): Likewise.
	(pvm_odepth): Likewise.
	(pvm_set_odepth): Likewise.
	(pvm_oacutoff): Likewise.
	(pvm_set_oacutoff): Likewise.
	(pvm_compiler): Likewise.
	(pvm_set_compiler): Likewise.
	(pvm_pretty_print): Likewise.
	(pvm_set_pretty_print): Likewise.
	(pvm_val_cls_program): New function.
	* lib/pvm-val.c (pvm_val_cls_program): Likewise.
	* src/pk-vm.c (pk_cmd_vm_disas_fun): Use pvm_val_cls_program
	instead of PVM_VAL_CLS_PROGRAM.
	(pk_cmd_vm_disas_map): Likewise.
	(pk_cmd_vm_disas_writ): Likewise.
	* lib/pvm-val.h: Reinstate.
	* lib/Makefile.am (libpoke_la_SOURCES): Add pvm-val.h.
	* lib/pkl.c: Include pvm-val.h
	* lib/pvm-program.c: Likewise.
	* lib/pvm-val.c: Likewise.
	* lib/pvm-alloc.c: Likewise.
	* lib/pvm.jitter: Likewise.
	* lib/pkl-gen.c: Likewise.

2020-04-10  Jose E. Marchesi  <jemarch@gnu.org>

	* HACKING (Avoid bool): New subsection.
	(Use _p for Predicates): Likewise.
	(Documenting Functions in Public Headers): Likewise.

2020-04-09  Tim Rühsen  <tim.ruehsen@gmx.de>

	* lib/pkl-ast.c (pkl_struct_type_traverse): Use
	non-destructive parsing without memory allocations.

2020-04-10  Jose E. Marchesi  <jemarch@gnu.org>

	* lib/pvm.jitter (strace): Use pvm_print_val_with_params instead
	of pvm_print_val.

2020-04-10  Jose E. Marchesi  <jemarch@gnu.org>

	* lib/pvm-val.c (pvm_sizeof): Fix for absent struct fields.

2020-04-10  Jose E. Marchesi  <jemarch@gnu.org>

	* lib/pkl-insn.def (nnn): New instruction.
	* lib/pvm.jitter (nnn): Likewise.
	* lib/pkl-gen.pks (struct_comparator): Support absent fields in
	structs.
	* testsuite/poke.pkl/eq-structs-10.pk: New test.
	* testsuite/poke.pkl/eq-structs-11.pk: Likewise.
	* testsuite/poke.pkl/eq-structs-12.pk: Likewise.

2020-04-10  Jose E. Marchesi  <jemarch@gnu.org>

	* doc/poke.texi (Dumping File Contents): Fix typos.

2020-04-09  Jose E. Marchesi  <jemarch@gnu.org>

	* testsuite/poke.pkl/optcond-12.pk: New test.

2020-04-09  Jose E. Marchesi  <jemarch@gnu.org>

	* testsuite/poke.pkl/eq-structs-9.pk: New test.

2020-04-09  Jose E. Marchesi  <jemarch@gnu.org>

	* lib/pkl-ast.h (struct pkl_ast_decl): New field `in_struct_p'.
	(PKL_AST_DECL_IN_STRUCT_P): Define.
	* lib/pkl-tab.y (struct_type_field_identifier): Annotate the
	declarations of struct fields as struct fields.
	* lib/pkl-gen.c (pkl_gen_ps_var): If the variable is a struct
	field, raise E_elem if we get null as its value.
	* lib/pkl-gen.pks (struct_constructor): Amend the regvar to
	install null as the value of field-variables.
	(struct_mapper): Likewise.
	(struct_field_mapper): Likewise.
	* testsuite/poke.pkl/optcond-5.pk: Amend.
	* testsuite/poke.pkl/sref-4.pk: Likewise.
	* testsuite/poke.map/map-optcond-6.pk: Likewise.
	* testsuite/poke.map/map-optcond-7.pk: Likewise.
	* testsuite/poke.pkl/optcond-6.pk: New test.
	* testsuite/poke.pkl/optcond-7.pk: Likewise.
	* testsuite/poke.pkl/optcond-8.pk: Likewise.
	* testsuite/poke.pkl/optcond-9.pk: Likewise.
	* testsuite/poke.map/map-optcond-9.pk: Likewise.
	* testsuite/poke.pkl/optcond-11.pk: Likewise.
	* testsuite/poke.map/map-optcond-11.pk: Likewise.
	* testsuite/poke.pkl/optcond-10.pk: Likewise.
	* testsuite/poke.map/map-optcond-10.pk: Likewise.

2020-04-09  Tim Rühsen  <tim.ruehsen@gmx.de>

	* src/pk-repl.c: Include xstrndup.h.
	(poke_getc): Use xstrndup instead of xzmalloc+strncpy.

2020-04-09  Jose E. Marchesi  <jemarch@gnu.org>

	* lib/pvm-val.c (pvm_print_val_1): Remove trailing whitespaces.

2020-04-09  Jose E. Marchesi  <jemarch@gnu.org>

	* lib/pvm.h: Note that if both NAME and VALUE are PVM_NULL in a
	struct field, the field is absent.
	* lib/pvm-val.c (pvm_sizeof): Be aware of absent fields.
	(pvm_print_val_1): Likewise.
	(pvm_elemsof): Likewise.
	(pvm_ref_struct): Return NULL if the referred field is absent.
	* lib/pkl-gen.pks (struct_constructor): Support optional fields.
	(struct_mapper): Likewise.
	(struct_field_mapper): Likewise.
	(struct_field_writer): Likewise.
	* lib/pkl-insn.def (srefia): New instruction.
	* lib/pvm.jitter (srefia): Likewise.
	* testsuite/poke.pkl/attr-length-8.pk: New test.
	* testsuite/poke.pkl/sref-3.pk: Likewise.
	* testsuite/poke.pkl/sref-4.pk: Likewise.
	* testsuite/poke.map/map-opcond-write-1.pk: Likewise.

2020-04-09  Jose E. Marchesi  <jemarch@gnu.org>

	* lib/pvm-env.c: Include string.h
	* lib/pkl-gen.c: Remove spurious XXX marks.

2020-04-09  Jose E. Marchesi  <jemarch@gnu.org>

	* lib/pkl-ast.h (PKL_AST_FUNC_NARGS): Define.
	* lib/pkl-ast.c (pkl_ast_print_1): Print the nargs attribute of
	func nodes.
	* lib/pkl-trans.c (pkl_trans1_ps_func): Count the number of formal
	arguments.
	* lib/pkl-gen.c (pkl_gen_pr_func): Do not count arguments and
	provide a hint with the number of formals to pushf.

2020-04-09  Jose E. Marchesi  <jemarch@gnu.org>

	* lib/pkl-ast.h (PKL_AST_COMP_STMT_NUMVARS): Define.
	* lib/pkl-ast.c (pkl_ast_print_1): Print the numvars attribute of
	comp_stmt nodes.
	* lib/pkl-trans.c (pkl_trans1_ps_comp_stmt): New handler.
	(pkl_phase_trans1): Register handler.
	* lib/pkl-gen.c (pkl_gen_pr_comp_stmt): Pass the number of
	variables defined in the compound statement as a hint to pushf.

2020-04-09  Jose E. Marchesi  <jemarch@gnu.org>

	* lib/pkl-insn.def (pushf): Get a numeric argument.
	* lib/pvm.jitter (pushf): Likewise.
	* lib/pvm.h (pvm_env_new): Get a `hint' argument.
	(pvm_env_push_frame): Likewise.
	* lib/pvm-env.c	(pvm_env_new): Likewise.
	(pvm_env_push_frame): Likewise.
	(pvm_env_register): Allocate new space for entries as needed.
	* lib/pvm.c (pvm_init): Pass a hint to pvm_env_new.
	* lib/pkl-asm.pks: Add hints to pushf instructions.
	* lib/pkl-gen.c: Likewise.
	* lib/pkl-gen.pks: Likewise.

2020-04-09  Tim Rühsen  <tim.ruehsen@gmx.de>

	* lib/pk-utils.h: Add declaration of pk_str_replace.
	* lib/pk-utils.c: Add implementation of pk_str_replace.
	* lib/pkl.c (pkl_resolve_module): Make use of pk_str_replace.

2020-04-09  Tim Rühsen  <tim.ruehsen@gmx.de>

	* lib/pkl.c (pkl_resolve_module): Use non-destructive parsing.

2020-04-09  Jose E. Marchesi  <jemarch@gnu.org>

	* doc/poke.texi (Load Path): Mention POKE_LOAD_PATH.

2020-04-09  Jose E. Marchesi  <jemarch@gnu.org>

	* lib/pkl.c (pkl_load): New function.
	(pkl_resolve_module): Likewise.
	* lib/pkl-tab.y (load_module): Use pkl_resolve_module.
	* src/pk-cmd.c (pk_cmd_init): Likewise.
	* src/poke.c (poke_cmdsdir): Remove.
	(initialize): Do not initialize poke_cmdsdir.
	* run.in (POKECMDSDIR): Do not set POKECMDSDIR.

2020-04-08  Jose E. Marchesi  <jemarch@gnu.org>

	* lib/pvm-val.c (pvm_sizeof): Return zero for type values.

2020-04-08  Jose E. Marchesi  <jemarch@gnu.org>

	* lib/pkl-asm.c (pkl_asm_insn): Clarify the situation on 32-bit
	and add an assert.

2020-04-08  Jose E. Marchesi  <jemarch@gnu.org>

	* lib/pkl-diag.h: Really add file in git, grrr.
	* lib/pkl-diag.c: Likewise.

2020-04-08  Jose E. Marchesi  <jemarch@gnu.org>

	* lib/Makefile.am (libpoke_la_SOURCES): Add pkl_diag.h and
	pkl_diag.c.
	* lib/pkl-diag.h: New file.
	(pkl_error): Moved from pkl.h.
	(pkl_warning): Likewise.
	(pkl_ice): Likewise.
	* lib/pkl-diag.c: New file.
	(pkl_detailed_location): Moved from pkl.c.
	(pkl_error_internal): Likewise.
	(pkl_error): Likewise.
	(pkl_warning): Likewise.
	* lib/pkl-anal.c: Include pkl-diag.h.
	* lib/pkl-pass.h: Likewise.
	* lib/pkl-typify.c: Likewise.
	* lib/pkl-trans.c: Likewise.
	* lib/pkl-tab.y: Likewise.
	* lib/pkl-fold.c: Likewise.
	* lib/pkl-lex.l: Likewise.
	* HACKING (The Source Tree): Add pkl_diag.h and pkl_diag.c.

2020-04-08  Tim Rühsen  <tim.ruehsen@gmx.de>

	* bootstrap.conf: Add gnulib module pathmax.
	* src/pk-editor.c: Include pathmax.h.

2020-04-08  Jose E. Marchesi  <jemarch@gnu.org>

	* lib/pvm-val.c (pvm_print_val_1): Use default printer if no
	pretty-printer is available in structs, even if pretty-print is
	`yes'.

2020-04-08  Jose E. Marchesi  <jemarch@gnu.org>

	* src/Makefile.am (poke_CFLAGS): Remove LIBNBD_CFLAGS.
	(poke_LDADD): Remove LIBNBD_LIBS.
	* lib/Makefile.am (libpoke_la_CFLAGS): Add LIBNBD_CFLAGS.
	(libpoke_la_LIBADD): Add LIBNBD_LIBS.

2020-04-08  Jose E. Marchesi  <jemarch@gnu.org>

	* lib/pvm-program.c: Remove trailing whitespaces.

2020-04-08  Tim Rühsen  <tim.ruehsen@gmx.de>

	* src/pk-cmd.c (pk_cmd_get_next_match): Fix endless loop
	introduced in commit c576c04c3.

2020-04-07  Jose E. Marchesi  <jemarch@gnu.org>

	* The big lib-ization.

2020-04-06  Jose E. Marchesi  <jemarch@gnu.org>

	* run.in (POKEDATADIR): Point to lib.
	* src/Makefile.am (poke_LDADD): Link with libpoke.
	* configure.ac: Add lib/Makefile to AC_CONFIG_FILES.
	* Makefile.am (SUBDIRS): Add lib.

2020-04-07  Tim Rühsen  <tim.ruehsen@gmx.de>

	* src/pkl-fold.c (OP_BINARY_SSS): Use pk_str_concat instead of
	strlen/xmalloc/strcpy/strcat.
	* src/pkl.c (pkl_new): Likewise.

2020-04-06  Tim Rühsen  <tim.ruehsen@gmx.de>

	* src/poke.c (initialize): Use pk_str_concat instead of
	strlen/xmalloc/strcpy/strcat.
	(initialize_user): Likewise.

2020-04-06  Tim Rühsen  <tim.ruehsen@gmx.de>

	* bootstrap.conf: Add gnulib module stdarg.
	* src/pk-utils.h: Declaration of pk_str_concat.
	* src/pk-utils.c: Implementation of pk_str_concat.

2020-04-06  Tim Rühsen  <tim.ruehsen@gmx.de>

	* src/pkl-tab.y (load_module): Fix check for empty string.
	* src/poke.c (initialize_user): Likewise.

2020-04-06  Jose E. Marchesi  <jemarch@gnu.org>

	* src/pvm-val.c (pvm_print_val_1): Update to new interface.
	(pvm_print_val): Use new pvm_print_val_1 interface.
	(pvm_print_val_with_params): New function.
	Do not include poke.h
	(pvm_call_pretty_printer): Get a vm argument and use it instead of
	poke_vm.
	* src/pvm.h (PVM_PRINT_F_PPRINT): Define.
	(PVM_PRINT_F_GET_PPRINT): Likewise.
	(pvm_print_val): Moved from pvm-val.h
	(pvm_obase): New function.
	(pvm_set_obase): Likewise.
	* src/pvm.c (pvm_init): Initialize PVM_STATE_VM.
	(PVM_STATE_VM): Define.
	(PVM_STATE_OBASE): Likewise.
	(pvm_obase): New function.
	(pvm_set_obase): Likewise.
	* src/pk-cmd.c (pk_cmd_exec): Adapt to new interface.
	* src/pvm.jitter (pvm_literal_printer): Likewise.

2020-04-04  Tim Rühsen  <tim.ruehsen@gmx.de>

	* bootstrap.conf: Add gnulib module strchrnul.
	* src/pkl-trans.c: Include string.h and xstrndup.h.
	(pkl_trans1_ps_print_stmt): Code cleanup using strchrnul.

2020-04-05  Jose E. Marchesi  <jemarch@gnu.org>

	* doc/poke.texi (Load Path): Add an example on updating the
	load_path.
	(pokerc): Document the support for the XDG base directory
	specification.

2020-04-05  Jose E. Marchesi  <jemarch@gnu.org>

	* src/pkl-promo.c (pkl_promo_ps_op_binary_intoffstrarr): Renamed
	from pkl_promo_op_binary_intoffstr.
	Do not promote array arguments.
	* src/pkl-typify.c (TYPIFY_BIN): Add a case CASE_ARRAY.
	(CASE_ARRAY): Define.
	* src/pkl-gen.c (pkl_gen_ps_op_add): Handle array operands.
	* src/pkl-insn.def (PKL_INSN_ACONC): New macro-instruction.
	* src/pkl-asm.c (pkl_asm_insn_aconc): Define.
	(pkl_asm_insn): Handle PKL_INSN_ACONC.
	* doc/poke.texi (Array Concatenation): New section.
	* testsuite/poke.pkl/add-arrays-diag-1.pk: New test.
	* testsuite/poke.pkl/add-arrays-diag-2.pk: Likewise.
	* testsuite/poke.pkl/add-arrays-diag-3.pk: Likewise.
	* testsuite/poke.pkl/add-arrays-3.pk: Likewise.
	* testsuite/poke.pkl/add-arrays-2.pk: Likewise.
	* testsuite/poke.pkl/add-arrays-1.pk: Likewise.

2020-04-05  Jose E. Marchesi  <jemarch@gnu.org>

	* src/poke.c (initialize_user): Use `poke' subdirectories in the
	XDG config dirs.

2020-04-05  Jose E. Marchesi  <jemarch@gnu.org>

	* src/poke.c (initialize_user): Acknowledge XDG configuration
	files if ~/.pokerc is not found.

2020-04-05  Jose E. Marchesi  <jemarch@gnu.org>

	* src/std.pk (atoi): Raise E_inval instead of E_generic when the
	provided base is not supported.
	* doc/poke.texi (atoi): Update accordingly.
	* testsuite/poke.std/atoi-14.pk: New test.

2020-04-05  Jose E. Marchesi  <jemarch@gnu.org>

	* src/pkl-rt.pk: Further simplifications.

2020-04-05  Jose E. Marchesi  <jemarch@gnu.org>

	* src/pkl-rt.pk: Simply the setting of load_path.

2020-04-05  Jose E. Marchesi  <jemarch@gnu.org>

	* src/pkl.h (pkl_get_vm): New prototype.
	* src/pkl.c (pkl_get_vm): New function.
	* src/pkl-rt.pk: Define load_path and compute its initial value.
	* src/pkl-tab.y: Do not include poke.h.
	(load_module): Use load_path to locate modules.
	* doc/poke.texi (Load Path): New section.

2020-04-05  Jose E. Marchesi  <jemarch@gnu.org>

	* src/pkl-gen.c: Remove trailing blanks.
	* src/pkl-tab.y: Likewise.

2020-04-05  Jose E. Marchesi  <jemarch@gnu.org>

	* src/pkl-ast.h (PKL_AST_BUILTIN_GETENV): Define.
	* src/pkl-tab.y (BUILTIN_GETENV): New token.
	(builtin): Add rule for getenv.
	* src/pkl-lex.l: Recognize __PKL_BUILTIN_GETENV__ tokens.
	* src/pkl-gen.c (pkl_gen_ps_comp_stmt): Implement the getenv
	builtin.
	* src/pkl-insn.def (PKL_INSN_GETENV): Define.
	* src/Makefile.am (libpvmjitter_a_CPPFLAGS): Define _GNU_SOURCE.
	* src/pvm.jitter (getenv): New instruction.
	* src/pvm.h (PVM_E_INVAL): Define.
	(PVM_E_INVAL_MSG): Likewise.
	* src/pkl-rt.pk (getenv): Define.
	(EC_inval): Likewise.
	(E_inval): Likewise.
	* doc/poke.texi (System): New section.
	(getenv): New subsection.
	* testsuite/poke.pkl/getenv-1.pk: New test.
	* testsuite/poke.pkl/getenv-2.pk: Likewise.

2020-04-04  Jose E. Marchesi  <jemarch@gnu.org>

	* src/pkl.h (pkl_new): New argument `vm'.
	(pkl_quiet_p): New prototype.
	(pkl_set_quiet_p): Likewise.
	(pkl_ice): Get an argument `compiler'.
	* src/pkl.c (struct pkl_compiler): New fields `vm' and `quiet_p'.
	(pkl_new): Get a VM as an argument.
	(pkl_compile_buffer): Use the compiler's vm instead of the global
	poke_vm.
	(pkl_compile_statement): Likewise.
	(pkl_compile_file): Likewise.
	Do not include poke.h.
	(rest_of_compilation): Do not use poke_compiler.
	(rest_of_compilation): Likewise.
	(rest_of_compilation): Likewise.
	(pkl_new): Initialize quiet_p;
	(pkl_quiet_p): Define.
	(pkl_set_quiet_p): Likewise.
	(pkl_error_internal): Do not use poke_quiet_p.
	(pkl_warning): Likewise.
	(pkl_ice): Likewise.
	* src/poke.c (initialize): Pass the PVM and poke_datadir when
	initializing the compiler.
	(parse_args): Set compiler verbosity when processing QUIET_ARG.
	* src/pkl-pass.h (PKL_ICE): Define.
	* src/pkl-anal.c (pkl_anal1_ps_comp_stmt): Use PKL_ICE instead of
	pkl_ice.
	(pkl_anal_ps_default): Likewise.
	(pkl_anal2_ps_checktype): Likewise.
	(pkl_anal2_ps_checktype): Likewise.
	(pkl_anal2_ps_offset): Likewise.
	(pkl_analf_ps_array_initializer): Likewise.
	* src/pkl-typify.c (pkl_typify1_ps_var): Likewise.
	(pkl_typify1_ps_attr): Likewise.
	* src/pkl-promo.c (pkl_promo_ps_op_div): Likewise.
	(pkl_promo_ps-op_binary_intoffstr): Likewise.
	(pkl_promo_ps_op_mul): Likewise.
	(pkl_promo_ps_op_rela): Likewise.
	(pkl_promo_ps_op_bshiftpow): Likewise.
	(pkl_promo_ps_op_binary): Likewise.
	(pkl_promo_ps_op_unary): Likewise.
	(pkl_promo_ps_indexer): Likewise.
	(pkl_promo_ps_trimmer): Likewise.
	(pkl_promo_ps_type_array): Likewise.
	(pkl_promo_ps_ass_stmt): Likewise.
	(pkl_promo_ps_funcall): Likewise.
	(pkl_promo_ps_return_stmt): Likewise.
	(pkl_promo_ps_print_stmt): Likewise.
	(pkl_promo_ps_func_arg): Likewise.
	(pkl_promo_ps_map): Likewise.
	(pkl_promo_ps_cond_exp): Likewise.
	* src/pkl-gen.c (pkl_gen_ps_op_attr): Likewise.
	(pkl_gen_noimpl): Likewise.
	* src/pkl-lex.l (YY_FATAL_ERROR): Pass extra->compiler to pkl_ice.

2020-04-04  Tim Rühsen  <tim.ruehsen@gmx.de>

	* src/pkl-trans.c (pkl_trans1_ps_string): Avoid malloc if string
	does not need escaping.

2020-04-04  Bruno Haible  <bruno@clisp.org>

	doc: Tweak formatting of ASCII table.
	* doc/poke.texi (Table of ASCII Codes): Use TeXinfo markup. Use a single
	table, not two tables.

2020-04-04  Jose E. Marchesi  <jemarch@gnu.org>

	* HACKING (Building Release Tarballs): New section.

2020-04-04  Bruno Haible  <bruno@clisp.org>

	Fix 'make distcheck'.
	* doc/Makefile.am (EXTRA_DIST): New variable.

2020-04-03  Tim Rühsen  <tim.ruehsen@gmx.de>

	* src/pkl-asm.c (pkl_asm_insn):
	Remove obsolete code.

2020-04-04  Jose E. Marchesi  <jemarch@gnu.org>

	* doc/poke.texi (Pickles): Note how pickles can load other
	pickles.

2020-04-04  Jose E. Marchesi  <jemarch@gnu.org>

	* doc/poke.texi (Pickles): New section.

2020-04-03 Tim Rühsen  <tim.ruehsen@gmx.de>

	* src/pk-cmd.c (skip_blanks): Take const char *,
	return const char *.
	(pk_atoi): Add const to p.
	(pk_cmd_exec_1): Add const to str param and to several vars.
	(pk_cmd_exec): Add const to param and several vars,
	use cmd_alloc for allocation.
	* src/pk-cmd.h (pk_cmd_exec): Add const to param.
	* pkl-parser.c (pkl_parse_buffer): Add const to 'buffer'
	and 'end'.
	* src/pkl-parser.h (pkl_parse_buffer): Likewise.
	* src/pkl.c (pkl_compile_buffer): Add const to 'buffer'
        and 'end'.
	(pkl_compile_statement): Likewise.
	(pkl_compile_expression): Likewise.
	* src/pkl.h (pkl_compile_buffer): Add const to 'buffer'
	and 'end'.
	(pkl_compile_statement): Likewise.
	(pkl_compile_expression): Likewise.

2020-04-03  Jose E. Marchesi  <jemarch@gnu.org>

	* doc/poke.texi (Poking Bytes): Improve wording.

2020-04-03  Jose E. Marchesi  <jemarch@gnu.org>

	* doc/poke.texi (Weird Integers): Fix typo.
	(From Bytes to Integers): Likewise.
	(Defining Types): Add a mention to the poke standard library.

2020-04-03  Jose E. Marchesi  <jemarch@gnu.org>

	* doc/poke.texi (Modifying SBM Images): Fix sectioning of a
	subsection.
	(Defining Types): Renamed from `Named Types'.
	(Defining Types): Add contents.

2020-04-03  Jose E. Marchesi  <jemarch@gnu.org>

	* src/ios-dev-file.c (ios_dev_file_pread): Fix type of variable.
	(ios_dev_file_pwrite): Likewise.
	* src/pk-cmd.c (pk_cmd_exec_1): Likewise.
	* src/pvm.jitter (aref): Remove unneeded check.

2020-04-03  Jose E. Marchesi  <jemarch@gnu.org>

	* src/pk-dump.pk (dump): Avoid generating a spurious blank
	character after the ASCII ruler.

2020-04-03 Tim Rühsen  <tim.ruehsen@gmx.de>

        * src/pk-set.c (set_completion_function):
        Remove superfluous malloc within loop.

2020-04-03 Tim Rühsen  <tim.ruehsen@gmx.de>

        * src/pk-repl.c (pk_repl):
        Simplify malloc/strlen/strcpy/strcat with asprintf.

2020-04-03 Tim Rühsen  <tim.ruehsen@gmx.de>

	* src/pk-repl.c (pkl_complete_struct):
	Remove superfluous malloc within loop.

2020-04-03  Jose E. Marchesi  <jemarch@gnu.org>

	* doc/Makefile.am (AM_MAKEINFOHTMLFLAGS): Define.
	(html-local): Refine the generated html files.

2020-04-03 Tim Rühsen  <tim.ruehsen@gmx.de>

	* src/pk-ios.c (pk_cmd_mem): Fix memleak.

2020-04-03 Tim Rühsen  <tim.ruehsen@gmx.de>

	* src/pk-ios.c (pk_cmd_mem):
	Simplify malloc/strlen/strcpy/strcat with asprintf.

2020-04-03 Tim Rühsen  <tim.ruehsen@gmx.de>

	* src/pk-ios.c (pk_cmd_load_file):
	Simplify malloc/strlen/strcpy/strcat with asprintf.

2020-04-03 Tim Rühsen  <tim.ruehsen@gmx.de>

	* src/pk-ios.c (pk_cmd_load_file): Fix reading file from
	POKEDATADIR.

2020-04-03  Jose E. Marchesi  <jemarch@gnu.org>

	* doc/poke.texi: Sectioning changes.

2020-04-03  Jose E. Marchesi  <jemarch@gnu.org>

	* doc/poke.texi: Sectioning changes.

2020-04-03 Tim Rühsen  <tim.ruehsen@gmx.de>

	* src/pk-cmd.c (pk_cmd_get_next_match):
	Remove superfluous malloc within loop.

2020-04-03  Jose E. Marchesi  <jemarch@gnu.org>

	* doc/poke.texi: syntax-check fixes.

2020-04-03  Jose E. Marchesi  <jemarch@gnu.org>

	* doc/poke.texi (Modifying SBM Images): Updated to cover mapped
	vs. non-mapped values.

2020-04-02  Jose E. Marchesi  <jemarch@gnu.org>

	* doc/poke.texi (Modifying SBM Images): Renamed from `Cropping SBM
	Images'.

2020-04-03 Tim Rühsen  <tim.ruehsen@gmx.de>

	* src/pk-cmd.c (pk_cmd_init):
	Simplify malloc/strlen/strcpy/strcat with asprintf.

2020-04-02 Tim Rühsen  <tim.ruehsen@gmx.de>

	* src/pk-hserver.c (pk_hserver_make_hyperlink):
	Simplify malloc/strlen/strcpy/strcat with asprintf.
	(pk_hserver_init): Remove writing to hserver_port_str.
	(hserver_port_str): Remove variable.

2020-04-02  Jose E. Marchesi  <jemarch@gnu.org>

	* doc/poke.texi: Flatten the sectioning, removing superfluous
	nodes containing only menus.

2020-04-02  Jose E. Marchesi  <jemarch@gnu.org>

	* HACKING (The Bugzilla): New section.
	(Dealing with spam in the Bugzilla): Likewise.

2020-04-02 Tim Rühsen  <tim.ruehsen@gmx.de>

	* bootstrap.conf: Add gnulib module stdbool.

2020-04-02 Tim Rühsen  <tim.ruehsen@gmx.de>

	* src/pk-hserver.c (hserver_tokens): Fix type to bool.

2020-04-02 Tim Rühsen  <tim.ruehsen@gmx.de>

	* bootstrap.conf: List gnulib modules in alphabetical order.

2020-04-02 Tim Rühsen  <tim.ruehsen@gmx.de>

	* src/pk-cmd.c (pk_cmd_exec): Reduce memory allocations.

2020-04-02 Tim Rühsen  <tim.ruehsen@gmx.de>

	* src/pkl-parser.c (pkl_parse_buffer): Add const to buffer param.
	* src/pkl-parser.h (pkl_parse_buffer): Likewise.

2020-04-02  Jose E. Marchesi  <jemarch@gnu.org>

	* doc/poke.texi (Poking a SBM Image): Expanded.
	(Cropping SBM Images): New section.

2020-04-02  Jose E. Marchesi  <jemarch@gnu.org>

	* doc/poke.texi (The SBM Format): Do not use @acronym{}.

2020-04-02  Jose E. Marchesi  <jemarch@gnu.org>

	* doc/poke.texi (Poking Arrays): New section.
	(The SBM Format): New subsection.
	(Poking a SBM Image): Likewise.

2020-04-01  Jose E. Marchesi  <jemarch@gnu.org>

	* src/pkl-gen.c (pkl_gen_ps_decl): Complete assert expression.

2020-04-01  Jose E. Marchesi  <jemarch@gnu.org>

	* pickles/bmp.pk (IHS_BMP_V2): Define.
	(IHS_BMP_V3): Likewise.
	(BMP_Info_Header): Allow info_header_size to be any of the
	supported IHS_* values.
	(BMP_Header): Fix the size of the reserved fields.

2020-04-01  Jose E. Marchesi  <jemarch@gnu.org>

	* pickles/Makefile.am (dist_pkgdata_DATA): Add bmp.pk.

2020-04-01  Jose E. Marchesi  <jemarch@gnu.org>

	* src/pkl-gen.pks (struct_constructor): Fix handling of anonymous
	fields.
	* testsuite/poke.pkl/scons-54.pk: New test.

2020-04-01  Jose E. Marchesi  <jemarch@gnu.org>

	* testsuite/poke.map/maps-arrays-16.pk: Add missing semicolon.

2020-04-01  Jose E. Marchesi  <jemarch@gnu.org>

	* pickles/bmp.pk: Moved from future/ and translated to actual
	Poke.

2020-04-01  Jose E. Marchesi  <jemarch@gnu.org>

	* src/pkl-trans.c (pkl_trans2_ps_struct_ref): Set the type of the
	newly inserted funcall, since typify1 happens before trans2.
	* testsuite/poke.pkl/struct-method-1.pk: New test.

2020-04-01  Jose E. Marchesi  <jemarch@gnu.org>

	* etc/git-hooks/pre-push: Try to locate top_builddir and jump
	there before executing make targets.

2020-04-01  Jose E. Marchesi  <jemarch@gnu.org>

	* doc/poke.texi (Debugging Poke Programs): Relocated.

2020-04-01  Tim Rühsen  <tim.ruehsen@gmx.de>

	* .x-sc_space_tab: Remove wildcards, list single files.
	* src/ios.c: Replace indenting tabs by 8 spaces each.
	* src/pk-cmd.c: Likewise.
	* src/pk-editor.c: Likewise.
	* src/pk-info.c: Likewise.
	* src/pk-ios.c: Likewise.
	* src/pk-misc.c: Likewise.
	* src/pk-repl.c: Likewise.
	* src/pk-set.c: Likewise.
	* src/pk-utils.c: Likewise.
	* src/pkl-env.c: Likewise.
	* src/pkl-env.h: Likewise.
	* src/pkl-gen.pks: Likewise.

2020-04-01  Tim Rühsen  <tim.ruehsen@gmx.de>

	* HACKING: Mention pre-push git hook in Maintenance section.
	* etc/git-hooks/pre-push: New file, pre-push git hook.

2020-04-01  Jose E. Marchesi  <jemarch@gnu.org>

	* doc/poke.texi (From Bytes to Characters): New section.
	(Buffers as IO Spaces): Likewise.
	(Saving Buffers in Files): Likewise.
	(Copying Bytes): Likewise.
	(copy): The to_ios argument defaults to the current IOS, no
	from_ios.

2020-04-01  Jose E. Marchesi  <jemarch@gnu.org>

	* src/pk-copy.pk (copy): to_ios defaults to the current IO space.

2020-03-31  Tim Rühsen  <tim.ruehsen@gmx.de>

	* doc/poke.texi: Remove trailing spaces.

2020-03-31  Jose E. Marchesi  <jemarch@gnu.org>

	* doc/poke.texi (Big and Little Endians): New section.
	(Negative Integers): Likewise.
	(Weird Integers): Likewise.
	(Unaligned Integers): Likewise.
	(Integers of Different Sizes): Likewise.

2020-03-30  Jose E. Marchesi  <jemarch@gnu.org>

	* doc/poke.texi (Binary Files): New section.
	(Dumping File Contents): Improved.
	(Working with Bytes): Likewise.

2020-03-30  Tim Rühsen  <tim.ruehsen@gmx.de>

	* INSTALL: Remove from repository.
	* .gitignore: Add /INSTALL.

2020-03-29  Tim Rühsen  <tim.ruehsen@gmx.de>

	* bootstrap.conf: Add gnulib module xstrndup.
	* src/pk-cmd.c (pk_cmd_exec_1): Fix code to use xstrndup.

2020-03-29  Tim Rühsen  <tim.ruehsen@gmx.de>

	* src/pk-cmd.c (skip_blanks): Remove superfluous check.

2020-03-29  Jose E. Marchesi  <jemarch@gnu.org>

	* doc/poke.texi: Change the sectioning and add a detailed menu.
	* doc/gen-pvm-insns.sh: Adapt accordingly.

2020-03-29  Jose E. Marchesi  <jemarch@gnu.org>

	* doc/poke.texi (basic Editing): New chapter.

2020-03-29  Jose E. Marchesi  <jemarch@gnu.org>

	* src/pkl-typify.c (pkl_typify1_ps_cast): Allow casts from structs
	to structs.
	* src/pkl-gen.c (pkl_gen_ps_cast): Support struct-to-struct casts.
	* doc/poke.texi (Casting Structs): New section.
	* testsuite/poke.pkl/cast-struct-1.pk: New test.
	* testsuite/poke.pkl/cast-struct-4.pk: Likewise.
	* testsuite/poke.pkl/cast-struct-3.pk: Likewise.
	* testsuite/poke.pkl/cast-struct-2.pk: Likewise.
	* testsuite/poke.pkl/csat-struct-6.pk: Likewise.
	* testsuite/poke.pkl/cast-struct-5.pk: Likewise.

2020-03-29  John Darrington <john@darrington.wattle.id.au>

	*doc/poke.texi: Miscellaneous minor fixes.

2020-03-29  Jose E. Marchesi  <jemarch@gnu.org>

	* doc/Makefile.am (pvm-insns.texi): New rule.
	(poke_TEXINFOS): Add pvm-insns.texi.
	* doc/gen-pvm-insns.sh: New file.
	* src/pvm.jitter: Document instructions.
	* doc/poke.texi (PVM Instructions): New chapter.

2020-03-28  Jose E. Marchesi  <jemarch@gnu.org>

	* src/pkl-parser.h (struct pkl_parser): New field `bootstrapped'.
	* src/pkl-parser.c (pkl_parse_file): Set parser->bootstrapped.
	(pkl_parse_buffer): Likewise.
	(pkl_parser_init): Initialize parser->bootstrapped.
	* src/pkl-lex.l: Do not acknowledge built-in identifiers if the
	compiler has been already bootstrapped.
	* testsuite/poke.pkl/builtins-1.pk: New test.

2020-03-28  Jose E. Marchesi  <jemarch@gnu.org>

	* src/pkl-typify.c (pkl_typify1_ps_var): Turn assert into ICE.
	* src/pk-def.c: Do not include stdio.h.
	(print_var_decl): Pass poke_obase to pvm_print_val.

2020-03-28  Jose E. Marchesi  <jemarch@gnu.org>

	* src/pkl-typify.c (pkl_typify1_ps_op_in): Remove unneeded check.
	* testsuite/poke.pkl/in-4.pk: Renamed from in-diag-4.pk and
	adapted.
	* testsuite/poke.pkl/in-5.pk: New test.
	* testsuite/poke.pkl/in-6.pk: Likewise.
	* testsuite/poke.pkl/in-7.pk: Likewise.

2020-03-28  Jose E. Marchesi  <jemarch@gnu.org>

	* src/poke.h: New extern for poke_hserver_p.
	* src/poke.c: New global poke_hserver_p.
	(initialize): Initialize poke_hserver_p.
	(finalize): Use poke_hserver_p.
	* src/pk-repl.c (banner): Print `hserver listening..' only if the
	hyperserver is used.

2020-03-28  Jose E. Marchesi  <jemarch@gnu.org>

	* HACKING (Loop Statements): New subsection.

2020-03-28  Jose E. Marchesi  <jemarch@gnu.org>

	BZ 25395
	* src/pkl-ast.h (enum pkl_ast_code): New value
	PKL_AST_LOOP_STMT_ITERATOR.
	(struct pkl_ast_loop_stmt_iterator): Define.
	(PKL_AST_LOOP_STMT_ITERATOR_DECL): Define.
	(PKL_AST_LOOP_STMT_ITERATOR_CONTAINER): Likewise.
	(PKL_AST_LOOP_STMT_ITERATOR): Likewise.
	* src/pkl-ast.c (pkl_ast_make_loop_stmt_iterator): New function.
	(pkl_ast_node_free): Update to new topology.
	(pkl_ast_finish_breaks_1): Likewise.
	(pkl_ast_finish_returns_1): Likewise.
	(pkl_ast_print_1): Likewise.
	* src/pkl-pass.c (pkl_do_pass_1): Likewise.
	* src/pkl-gen.c (pkl_gen_pr_loop_stmt): Likewise.
	* src/pkl-typify.c (pkl_typify1_ps_loop_stmt_iterator): Renamed from
	pkl_typify1_pr_loop_stmt.
	* testsuite/poke.pkl/while-1.pk: New test.

2020-03-28  Jose E. Marchesi  <jemarch@gnu.org>

	* src/Makefile.am: the .pkc files depend on pkl-insn.def.

2020-03-28  Jose E. Marchesi  <jemarch@gnu.org>

	* testsuite/poke.pkl/field-init-8.pk: New test.

2020-03-28  Jose E. Marchesi  <jemarch@gnu.org>

	* pickles/ctf.pk (CTF_Preamble): Use field initialization.

2020-03-27  Jose E. Marchesi  <jemarch@gnu.org>

	* src/pkl-ast.c (pkl_ast_make_struct_type_field): Handle
	initializer.
	(pkl_ast_dup_type): Likewise.
	(pkl_ast_node_free): Likewise.
	(pkl_ast_print_1): Likewise.
	* src/pkl-ast.h (PKL_AST_EXP_FLAG): Define.
	(PKL_AST_STRUCT_TYPE_FIELD_INITIALIZER): Define.
	(struct pkl_ast_struct_type_field): New field `initializer'.
	* src/pkl-tab.y (struct_type_field_constraint_or_init): Renamed
	from struct_type_field_constraint.
	* src/pkl-pass.c (pkl_do_pass_1): Traverse struct field
	initializers.
	* src/pkl-typify.c (pkl_typify1_ps_struct): Pass a NULL
	initializer when constructing a struct type field.
	(pkl_typify1_ps_struct_type_field): Check the type of the field
	initializer, if specified.
	* src/pkl-promo.c (pkl_promo_ps_struct_type_field): Promote field
	initializers.
	* src/pkl-gen.pks (struct_constructor): Use field initializers.
	* pickles/elf.pk (Elf64_Ehdr): Use an initialization value for the
	magic field.
	* doc/poke.texi (Field Initializers): New section.
	* testsuite/poke.pkl/field-init-diag-1.pk: New test.
	* testsuite/poke.pkl/field-init-diag-2.pk: Likewise.
	* testsuite/poke.pkl/field-init-diag-3.pk: Likewise.
	* testsuite/poke.pkl/field-init-1.pk: Likewise.
	* testsuite/poke.pkl/field-init-2.pk: Likewise.
	* testsuite/poke.pkl/field-init-3.pk: Likewise.
	* testsuite/poke.pkl/field-init-diag-4.pk: Likewise.
	* testsuite/poke.map/maps-structs-init-1.pk: Likewise.
	* testsuite/poke.map/maps-structs-init-2.pk: Likewise.
	* testsuite/poke.pkl/field-init-4.pk: Likewise.
	* testsuite/poke.pkl/field-init-7.pk: Likewise.
	* testsuite/poke.pkl/field-init-6.pk: Likewise.
	* testsuite/poke.pkl/field-init-5.pk: Likewise.

2020-03-27  Jose E. Marchesi  <jemarch@gnu.org>

	* src/pkl-ast.h (struct pkl_ast_type): New field `comparator' for
	structs.
	(PKL_AST_TYPE_S_COMPARATOR): Define.
	* src/pkl-ast.c (pkl_ast_make_struct_type): Initialize the struct
	type comparator closure, and add it as a GC root.
	(pkl_ast_node_free): Deregister the struct type comparator as a GC
	root.
	* src/pkl-typify.c (pkl_typify1_ps_op_rela): Accept struct
	operands in EQ and NE operators.
	* src/pkl-promo.c (pkl_promo_ps_op_rela): Likewise.
	* src/pkl-gen.h (struct pkl_gen_payload): New field
	`in_comparator'.
	* src/pkl-gen.c (pkl_gen_ps_op_rela): Likewise.
	(pkl_gen_pr_decl): Build comparator closures for named struct
	types.
	(pkl_gen_pr_type_struct): Handle in_comparator contexts.
	* src/pkl-asm.c (pkl_asm_insn_cmp): Handle structs.
	* src/pkl-gen.pks (struct_comparator): New RAS function.
	* doc/poke.texi (Struct Comparison): New section.
	* testsuite/poke.pkl/eq-structs-diag-1.pk: New test.
	* testsuite/poke.pkl/ne-structs-diag-1.pk: Likewise.
	* testsuite/poke.pkl/eq-structs-8.pk: Likewise.
	* testsuite/poke.pkl/eq-structs-7.pk: Likewise.
	* testsuite/poke.pkl/eq-structs-6.pk: Likewise.
	* testsuite/poke.pkl/eq-structs-5.pk: Likewise.
	* testsuite/poke.pkl/eq-structs-4.pk: Likewise.
	* testsuite/poke.pkl/eq-structs-3.pk: Likewise.
	* testsuite/poke.pkl/ne-structs-2.pk: Likewise.
	* testsuite/poke.pkl/ne-structs-1.pk: Likewise.
	* testsuite/poke.pkl/eq-structs-1.pk: Likewise.

2020-03-27  Jose E. Marchesi  <jemarch@gnu.org>

	* pickles/elf.pk (Elf64_Ehdr): Use arrays equality.
	* testsuite/poke.pkl/eq-arrays-11.pk: New test.
	* testsuite/poke.pkl/eq-arrays-12.pk: Likewise.

2020-03-27  Jose E. Marchesi  <jemarch@gnu.org>

	* src/pkl-typify.c (pkl_typify1_ps_op_rela): The array operands
	must have the same kind of elements.
	* src/pkl-asm.pks (eqa): New macro.
	* src/pkl-asm.c (pkl_asm_insn_cmp): Cover EQ and NE for arrays.
	* doc/poke.texi (Array Comparison): New section.
	* testsuite/poke.pkl/eq-arrays-1.pk: New test.
	* testsuite/poke.pkl/ne-arrays-1.pk: Likewise.
	* testsuite/poke.pkl/eq-arrays-diag-4.pk: Likewise.
	* testsuite/poke.pkl/ne-arrays-diag-2.pk: Likewise.
	* testsuite/poke.pkl/eq-arrays-2.pk: Likewise.
	* testsuite/poke.pkl/ne-arrays-2.pk: Likewise.
	* testsuite/poke.pkl/eq-arrays-3.pk: Likewise.
	* testsuite/poke.pkl/ne-arrays-3.pk: Likewise.
	* testsuite/poke.pkl/ne-arrays-4.pk: Likewise.
	* testsuite/poke.pkl/eq-arrays-4.pk: Likewise.
	* testsuite/poke.pkl/ne-arrays-10.pk: Likewise.
	* testsuite/poke.pkl/eq-arrays-10.pk: Likewise.
	* testsuite/poke.pkl/ne-arrays-8.pk: Likewise.
	* testsuite/poke.pkl/eq-arrays-8.pk: Likewise.
	* testsuite/poke.pkl/ne-arrays-7.pk: Likewise.
	* testsuite/poke.pkl/eq-arrays-7.pk: Likewise.
	* testsuite/poke.pkl/ne-arrays-6.pk: Likewise.
	* testsuite/poke.pkl/eq-arrays-6.pk: Likewise.
	* testsuite/poke.pkl/ne-arrays-5.pk: Likewise.
	* testsuite/poke.pkl/eq-arrays-5.pk: Likewise.

2020-03-27  Jose E. Marchesi  <jemarch@gnu.org>

	* src/pkl-typify.c (pkl_typify1_ps_op_rela): Accept array
	arguments in EQ and NE operators.
	* src/pkl-promo.c (pkl_promo_ps_op_rela): Likewise.
	* testsuite/poke.pkl/le-arrays-diag-1.pk: New test.
	* testsuite/poke.pkl/ge-arrays-diag-1.pk: Likewise.
	* testsuite/poke.pkl/gt-arrays-diag-1.pk: Likewise.
	* testsuite/poke.pkl/lt-arrays-diag-1.pk: Likewise.
	* testsuite/poke.pkl/eq-arrays-diag-1.pk: Likewise.
	* testsuite/poke.pkl/eq-arrays-diag-2.pk: Likewise.
	* testsuite/poke.pkl/ne-arrays-diag-1.pk: Likewise.

2020-03-26  Tim Rühsen  <tim.ruehsen@gmx.de>

	* bootstrap.conf: Set gnulib_name=libgnu
	* src/Makefile.am: Rename libpoke to libgnu.

2020-03-26  Tim Rühsen  <tim.ruehsen@gmx.de>

	* Makefile.am: Rename lib to gl.
	* bootstrap.conf: Set source_base=gl.
	* configure.ac: Rename lib/ to gl/.
	* src/Makefile.am: Rename lib to gl.

2020-03-26  Jose E. Marchesi  <jemarch@gnu.org>

	* src/pk-utils.h: Prototype for pk_print_binary moved from
	pvm-val.h.
	* src/pk-utils.c (pk_print_binary): Moved from pvm-val.c
	* src/pvm.jitter (PVM_PRINTI): Call pk_print_binary instead of
	pvm_print_binary.
	(PVM_PRINTL): Likewise.
	* src/pvm-val.c (pvm_print_val_1): Likewise.

2020-03-26  Jose E. Marchesi  <jemarch@gnu.org>

	* src/pvm.jitter (smodi): Check that the provided index is
	in-range.

2020-03-26  Jose E. Marchesi  <jemarch@gnu.org>

	* src/pkl-rt.pk: Do not define `true' nor `false'.

2020-03-26  Jose E. Marchesi  <jemarch@gnu.org>

	* src/pkl-typify.c (pkl_typify1_ps_try_catch_stmt): Fix locations
	of errors.
	* testsuite/poke.pkl/try-catch-diag-4.pk: New test.
	* testsuite/poke.pkl/try-catch-diag-5.pk: Likewise.

2020-03-26  Jose E. Marchesi  <jemarch@gnu.org>

	* testsuite/poke.pkl/scons-53.pk: New test.
	* testsuite/poke.pkl/promo-array-arg-10.pk: Likewise.
	* testsuite/poke.pkl/promo-array-arg-11.pk: Likewise.
	* testsuite/poke.pkl/promo-array-arg-diag-8.pk: Likewise.

2020-03-26  Jose E. Marchesi  <jemarch@gnu.org>

	* pickles/elf.pk (Elf64_Sym): fix type of st_name.
	Adjust labels in st_info for endianness.

2020-03-25  Jose E. Marchesi  <jemarch@gnu.org>

	* src/pkl-ast.h: Prototype for pkl_ast_array_type_remove_bounders.
	* src/pkl-ast.c (pkl_ast_array_type_remove_bounders): Define.
	* src/pkl-gen.c (pkl_gen_pr_type_array): Use
	pkl_ast_array_type_remove_bounders.

2020-03-25  Jose E. Marchesi  <jemarch@gnu.org>

	* testsuite/poke.pkl/scons-46.pk: New test.
	* testsuite/poke.pkl/scons-48.pk: Likewise.
	* testsuite/poke.pkl/scons-49.pk: Likewise.
	* testsuite/poke.pkl/scons-50.pk: Likewise.
	* testsuite/poke.pkl/scons-51.pk: Likewise.
	* testsuite/poke.pkl/scons-52.pk: Likewise.

2020-03-25  Jose E. Marchesi  <jemarch@gnu.org>

	* src/pkl-gen.pks (struct_constructor): Promote struct constructor
	initializers that are arrays.

2020-03-24  Jose E. Marchesi  <jemarch@gnu.org>

	* src/pkl-trans.c (pkl_transl_pr_type_array): Remove.
	(pkl_transl_ps_type_array): Likewise.
	(pkl_transl_ps_var): Likewise.
	(pkl_phase_transl): Likewise.
	* src/pkl.c (rest_of_compilation): Remove lex pass.
	* src/pkl-ast.c (pkl_ast_type_promoteable): Handle general array
	types.
	* src/pkl-promo.c (pkl_promo_ps_scons): Promote array initializers
	in struct constructors.
	* testsuite/poke.pkl/promo-array-scons-diag-1.pk: New test.
	* testsuite/poke.pkl/scons-42.pk: Likewise.
	* testsuite/poke.pkl/scons-43.pk: Likewise.
	* testsuite/poke.pkl/scons-44.pk: Likewise.
	* testsuite/poke.pkl/scons-45.pk: Likewise.
	* testsuite/poke.pkl/cast-array-7.pk: Likewise.

2020-03-24  Jose E. Marchesi  <jemarch@gnu.org>

	* src/pkl-ast.c (pkl_ast_node_free): Remove incorrect fallthrough
	comment.

2020-03-22  Jose E. Marchesi  <jemarch@gnu.org>

	* src/pkl-trans.h (struct pkl_trans_payload): Remove field in_map.
	* src/pkl-trans.c (pkl_transl_pr_map): Remove.
	(pkl_transl_ps_map): Likewise.
	(pkl_transl_pr_type_struct): Likewise.
	(pkl_phase_transl): Update accordingly.
	* testsuite/poke.pkl/scons-40.pk: New test.
	* testsuite/poke.pkl/scons-41.pk: Likewise.

2020-03-21  Jose E. Marchesi  <jemarch@gnu.org>

	* src/pkl-gen.c (pkl_gen_pr_type_array): Use the array bounder, if
	available, instead of subpassing.
	* testsuite/poke.map/maps-arrays-20.pk: New test.

2020-03-21  Jose E. Marchesi  <jemarch@gnu.org>

	* src/pkl-gen.pks (array_constructor): Optimize calculation of
	bounds at run-time.
	* src/pkl-gen.c (pkl_gen_pr_type_array): Pass EBOUND and SBOUND as
	two arguments to the array constructor.
	* testsuite/poke.pkl/scons-36.pk: New test.
	* testsuite/poke.pkl/scons-37.pk: Likewise.
	* testsuite/poke.pkl/scons-38.pk: Likewise.
	* testsuite/poke.pkl/scons-39.pk: Likewise.
	* testsuite/poke.pkl/scons-40.pk: Likewise.

2020-03-21  Jose E. Marchesi  <jemarch@gnu.org>

	* src/pkl-gen.pks (array_constructor): Implement with full support
	for both unbounded and bounded arrays.
	* testsuite/poke.pkl/scons-diag-5.pk: Remove.
	* testsuite/poke.pkl/scons-32.pk: New test.
	* testsuite/poke.pkl/scons-33.pk: Likewise.
	* testsuite/poke.pkl/scons-34.pk: Likewise.
	* testsuite/poke.pkl/scons-35.pk: Likewise.

2020-03-21  Jose E. Marchesi  <jemarch@gnu.org>

	* src/pkl-gen.c (pkl_gen_pr_type_array): Handle in_constructor
	cases.

2020-03-21  Jose E. Marchesi  <jemarch@gnu.org>

	* src/pkl-ast.c (pkl_ast_node_free): Remove GC roots for array
	constructor closures.
	(pkl_ast_make_array_type): Initialize array type constructor
	closures to null and add GC roots for them.
	* src/pkl-ast.h (struct pkl_ast_type): New field `constructor' for
	array types.
	(PKL_AST_TYPE_S_CONSTRUCTOR): Define.
	* src/pkl-gen.c (pkl_gen_pr_decl): Compile constructor closures
	for array types.
	* src/pkl-gen.pks (array_constructor): New RAS function.

2020-03-21  Jose E. Marchesi  <jemarch@gnu.org>

	* src/pkl-ast.h: Remove prototype for pkl_ast_complete_scons.
	(struct pkl_ast_struct_field): Remove field `dummy'.
	(PKL_AST_STRUCT_FIELD_DUMMY): Delete.
	* src/pkl-ast.c (pkl_ast_complete_scons): Delete.
	(pkl_ast_type_defval): Delete.
	* src/pkl-trans.c (pkl_trans3_ps_scons): Delete.
	(pkl_phase_trans3): Deregister handler.
	* src/pkl-promo.c (pkl_promo_ps_scons): There is no more need to
	handle `dummy' fields in structs.
	* src/pkl-typify.c (pkl_typify1_ps_scons): Likewise.
	* src/pkl-gen.c (pkl_gen_pr_type_struct): If a constructor
	receives a null, turn it into an empty struct of the proper type.
	(pkl_gen_ps_scons): Struct constructors always have named types.

2020-03-21  Jose E. Marchesi  <jemarch@gnu.org>

	* src/pkl-insn.def (PKL_INSN_SREFNT): Define.
	* src/pvm.jitter (srefnt): New instruction.

2020-03-21  Jose E. Marchesi  <jemarch@gnu.org>

	* src/pkl-gen.c (pkl_gen_ps_type_integral): Handle in_constructor.
	(pkl_gen_ps_type_offset): Likewise.
	(pkl_gen_ps_type_string): Likewise.

2020-03-21  John Darrington <john@darrington.wattle.id.au>

	*src/pk-cmd.c (pk_cmd_exec_1): Check that cmd_name
	does not overflow.

2020-03-21  Jose E. Marchesi  <jemarch@gnu.org>

	* pickles/ctf.pk: Updates.

2020-03-20  John Darrington <john@darrington.wattle.id.au>

	* src/pk-misc.c (strings): Declare as const and deal
	with consequences.
	* src/pkl-asm.c (cast_table): Declare as const.
	* src/pkl-asm.c (peek_table): Declare as const.
	* src/pkl-asm.c (peekd_table): Declare as const.
	* src/pkl-asm.c (print_table): Declare as const.

2020-03-18  Jose E. Marchesi  <jemarch@gnu.org>

	* src/pkl-ast.c (pkl_ast_type_defval): Handle unbounded arrays.
	* src/pkl-pass.c (pkl_do_pass_1): An array AST node can have 0
	elements.
	* testsuite/poke.pkl/scons-31.pk: New test.

2020-03-17  Jose E. Marchesi  <jemarch@gnu.org>

	* src/pkl-rt.pk (_pkl_exception_handler): fix typo in message.

2020-03-14  John Darrington <john@darrington.wattle.id.au>

	* doc/Makefile.am (pkgdata_DATA): New variable.
	* doc/Makefile.am (INFO_DEPS): Remove nodelist.
	* doc/Makefile.am (nodelist): Move to $(top_srcdir)/src,
	* src/pk-misc.c (doc_completion_dunction): Expect nodelist
	in poke_datadir instead of poke_infodir.

2020-03-10  Jose E. Marchesi  <jemarch@gnu.org>

	* src/pkl-ast.c (pkl_ast_type_defval): Add missing locations to
	built offsets.
	* testsuite/poke.pkl/attr-size-13.pk: New test.
	* testsuite/poke.pkl/attr-length-7.pk: Likewise.

2020-03-09  Jose E. Marchesi  <jemarch@gnu.org>

	* src/Makefile.am: Make files compiled by ras to depend on ras
	itself.

2020-03-09  Jose E. Marchesi  <jemarch@gnu.org>

	* src/pkl-gen.pks (struct_mapper): Fix the handling of EOF while
	mapping unions.
	* testsuite/poke.map/maps-unions-9.pk: New test.
	* testsuite/poke.map/maps-unions-10.pk: Likewise.

2020-03-09  Jose E. Marchesi  <jemarch@gnu.org>

	* src/pkl-ast.h (PKL_AST_STRUCT_TYPE_FIELD_OPTCOND): Define.
	(struct pkl_ast_struct_type_field): New field optcond.
	* src/pkl-ast.c (pkl_ast_make_struct_type_field): Get an argument
	optcond.
	(pkl_ast_dup_type): Handle optcond.
	(pkl_ast_node_free): Likewise.
	(pkl_ast_type_is_complete): Struct types with optional fields are
	not complete.
	(pkl_ast_print_1): Likewise.
	* src/pkl-pass.c (pkl_do_pass_1): Traverse optcond nodes.
	* src/pkl-tab.y (struct_type_field_optcond): New rule.
	(struct_type_field): Add conditional expression.
	* src/pkl-anal.c (pkl_anal2_ps_type_struct): Optional fields are
	not allowed in unions.
	* src/pkl-typify.c (pkl_typify1_ps_struct_type_field): Make sure
	that optcond expressions in fields evaluate to a boolean.
	* src/pkl-promo.c (pkl_promo_ps_struct_type_field): Promote
	optcond expressions to boolean.
	* src/pkl-gen.pks (struct_mapper): Use the optcond expression in
	optional fields.
	(struct_constructor): Likewise.
	* testsuite/poke.pkl/optcond-1.pk: New test.
	* testsuite/poke.pkl/optcond-2-diag.pk: Likewise.
	* testsuite/poke.map/map-optcond-6.pk: Likewise.
	* testsuite/poke.map/map-optcond-5.pk: Likewise.
	* testsuite/poke.map/map-optcond-4.pk: Likewise.
	* testsuite/poke.map/map-optcond-3.pk: Likewise.
	* testsuite/poke.map/map-optcond-2.pk: Likewise.
	* testsuite/poke.map/map-optcond-1.pk: Likewise.
	* testsuite/poke.map/map-optcond-7.pk: Likewise.
	* testsuite/poke.map/map-optcond-8.pk: Likewise.
	* testsuite/poke.pkl/optcond-2.pk: Likewise.
	* testsuite/poke.pkl/optcond-5.pk: Likewise.
	* testsuite/poke.pkl/optcond-4.pk: Likewise.
	* testsuite/poke.pkl/optcond-3.pk: Likewise.
	* doc/poke.texi (Optional Fields): Document optional fields.

2020-03-07  John Darrington <john@darrington.wattle.id.au>

	* doc/poke.texi: Spell check.
	* src/pk-ios.c (load_cmd, file_cmd): Change "filename" to be two
	words per GNU Coding Standards.

2020-03-07  Jose E. Marchesi  <jemarch@gnu.org>

	* src/pkl-gen.pks (struct_constructor): Remove assert.

2020-03-06  Jose E. Marchesi  <jemarch@gnu.org>

	* src/pkl-typify.c (pkl_typify1_ps_decl): New handler.
	(pkl_phase_typify1): Register handler.
	* testsuite/poke.pkl/struct-pretty-print-diag-1.pk: New test.
	* testsuite/poke.pkl/struct-pretty-print-diag-2.pk: Likewise.

2020-03-06  Jose E. Marchesi  <jemarch@gnu.org>

	* src/pkl-typify.c (pkl_typify1_ps_cond_exp): Set the type of the
	conditional expression node!
	* src/pkl-rt.pk: Simplify.
	* testsuite/poke.pkl/cond-exp-3.pk: New test.

2020-03-06  Jose E. Marchesi  <jemarch@gnu.org>

	* testsuite/poke.pkl/isa-1.pk: Split from isa.pk.
	* testsuite/poke.pkl/isa-9.pk: Likewise.
	* testsuite/poke.pkl/isa-8.pk: Likewise.
	* testsuite/poke.pkl/isa-7.pk: Likewise.
	* testsuite/poke.pkl/isa-6.pk: Likewise.
	* testsuite/poke.pkl/isa-5.pk: Likewise.
	* testsuite/poke.pkl/isa-4.pk: Likewise.
	* testsuite/poke.pkl/isa-3.pk: Likewise.
	* testsuite/poke.pkl/isa-2.pk: Likewise.

2020-03-06  Eric Blake  <eblake@redhat.com>

	* configure.ac: Check for nbdkit in /usr/[local/]sbin.
	* testsuite/lib/poke-dg.exp (dg-nbd): Actually use $NBDKIT from
	environment.

2020-03-06  Jose E. Marchesi  <jemarch@gnu.org>

	* src/pkl-rt.pk: Remove obsolete/spurious comments.

2020-03-06  Jose E. Marchesi  <jemarch@gnu.org>

	* TODO: Update.
	* HACKING: Likewise.

2020-03-06  Jose E. Marchesi  <jemarch@gnu.org>

	* src/pkl-rt.pk (Exception): Define as a struct.
	(EC_generic): Define.
	(EC_div_by_zero): Likewise.
	(EC_no_ios): Likewise.
	(EC_no_return): Likewise.
	(EC_out_of_bounds): Likewise.
	(EC_map_bounds): Likewise.
	(EC_eof): Likewise.
	(EC_map): Likewise.
	(EC_conv): Likewise.
	(EC_elem): Likewise.
	(EC_constraint): Likewise.
	(EC_io): Likewise.
	(EC_signal): Likewise.
	(EC_io_flags): Likewise.
	(_pkl_exception_handler): Adapt to new exceptions.
	* src/pvm-val.h: Prototype for pvm_make_exception.
	* src/pvm-val.c (pvm_make_exception): New function.
	* src/pkl-ast.h: Prototype for pkl_ast_type_is_exception.
	* src/pkl-ast.c (pkl_ast_type_is_exception): New function.
	* src/pvm.jitter (PVM_CHECKED_BINOP): Pass a message to PVM_RAISE.
	(PVM_BINOP_SL): Likewise.
	(PVM_PEEK): Likewise.
	(PVM_POKE): Likewise.
	(sync): Likewise.
	(open): Likewise.
	(close): Likewise.
	(pushios): Likewise.
	(popios): Likewise.
	(iosize): Likewise.
	(iogetb): Likewise.
	(iosetb): Likewise.
	(strref): Likewise.
	(substr): Likewise.
	(aset): Likewise.
	(aseto): Likewise.
	(aref): Likewise.
	(arefo): Likewise.
	(sset): Likewise.
	(sref): Likewise.
	(srefi): Likewise.
	(srefio): Likewise.
	(peeks): Likewise.
	(pokes): Likewise.
	(PVM_RAISE_DIRECT): Define.
	(PVM_RAISE): Re-define in terms of PVM_RAISE_DIRECT.
	(raise): Use PVM_RAISE_DIRECT.
	(pushe): Get an Exception.
	* src/pvm.h (PVM_E_GENERIC_MSG): Define.
	(PVM_E_DIV_BY_ZERO_MSG): Likewise.
	(PVM_E_NO_IOS_MSG): Likewise.
	(PVM_E_NO_RETURN_MSG): Likewise.
	(PVM_E_OUT_OF_BOUNDS_MSG): Likewise.
	(PVM_E_MAP_BOUNDS_MSG): Likewise.
	(PVM_E_EOF_MSG): Likewise.
	(PVM_E_MAP_MSG): Likewise.
	(PVM_E_CONV_MSG): Likewise.
	(PVM_E_ELEM_MSG): Likewise.
	(PVM_E_CONSTRAINT_MSG): Likewise.
	(PVM_E_IO_MSG): Likewise.
	(PVM_E_SIGNAL_MSG): Likewise.
	(PVM_E_IOFLAGS_MSG): Likewise.
	* src/pkl-asm.c (pkl_asm_finish): Adapt to new exceptions.
	* src/pkl-typify.c (pkl_typify1_ps_raise_stmt): Likewise.
	* src/pkl-typify.c (pkl_typify1_ps_try_until_stmt): Likewise.
	* src/pkl-typify.c (pkl_typify1_ps_try_catch_stmt): Likewise.
	* src/pkl-gen.c (pkl_gen_ps_raise_stmt): Likewise.
	* src/pkl-gen.c (pkl_gen_pr_try_catch_stmt): Likewise.
	* src/pkl-promo.c (pkl_promo_ps_raise_stmt): Remove handler.
	(pkl_promo_ps_try_until_stmt): Likewise.
	(pkl_promo_ps_try_catch_stmt): Likewise.
	* src/ras: Adapt handling of PVM_E_* arguments to generate
	Exceptions instead of integers.
	* testsuite/poke.pkl/raise-2.pk: Adapt to new exceptions.
	* testsuite/poke.pkl/try-until-3.pk: Likewise.
	* testsuite/poke.pkl/try-until-2.pk: Likewise.
	* testsuite/poke.pkl/try-catch-diag-2.pk: Likewise.
	* testsuite/poke.pkl/try-catch-diag-1.pk: Likewise.
	* testsuite/poke.pkl/try-catch-7.pk: Likewise.
	* testsuite/poke.pkl/raise-5.pk: Likewise.
	* testsuite/poke.pkl/raise-4.pk: Likewise.
	* testsuite/poke.pkl/raise-3.pk: Likewise.
	* testsuite/poke.pkl/raise-6.pk: New test.
	* doc/poke.texi (Exceptions): Update.
	(try-until): Likewise.
	(try-catch): Likewise.

2020-03-06  Jose E. Marchesi  <jemarch@gnu.org>

	* src/pkl-ast.h (PKL_AST_STRUCT_FIELD_DUMMY): Define.
	(struct pkl_ast_struct_field): Add field `dummy'.
	* src/pkl-ast.c (pkl_ast_complete_scons): Annotate the dummy
	property in struct fields.
	* src/pkl-typify.c (pkl_typify1_ps_scons): Acknowledge the dummy
	annotation.
	* src/pkl-promo.c (pkl_promo_ps_scons): Likewise.

2020-03-06  Jose E. Marchesi  <jemarch@gnu.org>

	* HACKING: Mention non-restartable passes.

2020-03-06  Jose E. Marchesi  <jemarch@gnu.org>

	* src/pkl-typify.c (pkl_typify1_ps_struct): Avoid restarting the
	pass.
	* src/pkl-typify.c (pkl_typify1_ps_array): Likewise.
	* src/pkl-typify.c (pkl_typify1_ps_isa): Likewise.
	* src/pkl-typify.c (pkl_typify1_ps_cast): Likewise.
	* src/pkl-trans.c (pkl_trans1_ps_offset): Likewise.
	* src/pkl-trans.c (pkl_trans1_ps_print_stmt): Likewise.

2020-03-05  Jose E. Marchesi  <jemarch@gnu.org>

	* testsuite/lib/poke.exp (poke_start): Pass -q to poke to avoid
	acknowledging the user init file.
	* testsuite/poke.repl/repl.exp: Use a more meaningful test name.

2020-03-05  Jose E. Marchesi  <jemarch@gnu.org>

	* src/pkl-ast.h (PKL_AST_STRUCT_FIELD_COMPLETED): Remove.
	(struct pkl_ast_struct_field): Remove field `completed'.

2020-03-05  Jose E. Marchesi  <jemarch@gnu.org>

	* src/pkl-ast.c (pkl_ast_type_defval): This function cannot
	calculate the default value for structs and unions.
	* src/pkl-ast.h: Prototype for pkl_ast_complete_scons.
	* src/pkl-ast.c: New function.
	* src/pkl-trans.c (pkl_trans3_ps_scons): Call
	pkl_ast_complete_scons.
	* src/pkl-gen.c (pkl_gen_ps_scons): Compile ad-hoc struct
	constructors for anonymous structs/unions.
	* src/pkl-gen.pks (struct_constructor): handle completed struct
	fields properly.
	* src/pvm.jitter (tyissct): New instruction.
	* src/pkl-insn.def (PKL_INSN_TYISSCT): Define.
	* testsuite/poke.pkl/scons-26.pk: New test.
	* testsuite/poke.pkl/scons-27.pk: Likewise.
	* testsuite/poke.pkl/scons-28.pk: Likewise.
	* testsuite/poke.pkl/scons-29.pk: Likewise.

2020-03-05  Jose E. Marchesi  <jemarch@gnu.org>

	* src/pkl-gen.pks (struct_constructor): Support unions.
	* testsuite/poke.pkl/scons-union-1.pk: New test.
	* testsuite/poke.pkl/scons-union-2.pk: Likewise.
	* testsuite/poke.pkl/scons-union-8.pk: Likewise.
	* testsuite/poke.pkl/scons-union-6.pk: Likewise.
	* testsuite/poke.pkl/scons-union-5.pk: Likewise.
	* testsuite/poke.pkl/scons-union-4.pk: Likewise.
	* testsuite/poke.pkl/scons-union-3.pk: Likewise.

2020-03-05  Jose E. Marchesi  <jemarch@gnu.org>

	* src/pkl-typify.c (pkl_typify1_ps_indexer): No need to restart
	the pass.
	(pkl_typify1_ps_struct_field): Likewise.
	(pkl_typify1_ps_struct_ref): Likewise.
	(pkl_typify1_ps_type_array): Likewise.

2020-03-05  Jose E. Marchesi  <jemarch@gnu.org>

	* src/pvm-val.h (PVM_PRINT_F_GET_MAPS): Define.
	* src/pk-cmd.c (pk_cmd_exec): Use PVM_PRINT_F_MAPS.
	* src/pvm.jitter (printv): Likewise.
	(strace): Likewise.
	(state-struct-runtime-c): Add field omaps.
	(state-initialization-c): omaps is 0 by default.
	* src/pvm.c (pvm_omaps): New function.
	(pvm_set_omaps): Likewise.
	(PVM_STATE_OMAPS): Define.
	* src/pvm.h: Prototypes for pvm_omaps and pvm_set_omaps.
	* src/pk-set.c (pk_cmd_set_omaps): New function.
	(set_cmds): Add set_omaps_cmd.
	* src/pvm-val.c (pvm_print_val_1): Do not print offsets of array
	elements or struct fields.
	Use PVM_PRINT_F_GET_MAPS.
	* testsuite/poke.cmd/set-omaps-1.pk: New test.
	* doc/poke.texi (set command): Document omaps.

2020-03-05  Jose E. Marchesi  <jemarch@gnu.org>

	* src/pvm-val.c (pvm_print_val): Print struct offsets when invoked
	with F_MAPS.
	(pvm_print_val_1): Renamed from pvm_print_val, and added new
	argument `depth'.
	(pvm_print_val): New function.
	(pk_odepth): Remove.

2020-03-05  Jose E. Marchesi  <jemarch@gnu.org>

	* src/pkl-tab.y (struct): Remove rule.
	(expression): Remove corresponding alternative.
	* src/pkl-trans.c (pkl_trans3_ps_scons): Fix logic in loop.
	* src/pkl-gen.pks (struct_constructor): Fix offsets, and make sure
	the number of fields is stored in an ulong<64>.
	(struct_mapper): Likewise, for nfields.
	* testsuite/poke.pkl/ass-diag-6.pk: Remove.
	* testsuite/poke.pkl/structs-1.pk: Likewise.
	* testsuite/poke.pkl/structs-2.pk: Likewise.
	* testsuite/poke.pkl/arrays-3.pk: Adapt.
	* testsuite/poke.map/mapped-attr.pk: Likewise.
	* testsuite/poke.pkl/ass-1.pk: Likewise.
	* testsuite/poke.pkl/attr-length-1.pk: Likewise.
	* testsuite/poke.pkl/attr-length-2.pk: Likewise.
	* testsuite/poke.pkl/attr-size-10.pk: Likewise.
	* testsuite/poke.pkl/attr-size-11.pk: Likewise.
	* testsuite/poke.pkl/cast-struct-diag-2.pk: Likewise.
	* testsuite/poke.pkl/defvar-5.pk: Likewise.
	* testsuite/poke.pkl/isa.pk: Likewise.
	* testsuite/poke.pkl/printf-20.pk: Likewise.
	* testsuite/poke.pkl/printf-21.pk: Likewise.
	* testsuite/poke.pkl/printf-22.pk: Likewise.
	* testsuite/poke.pkl/printf-23.pk: Likewise.
	* testsuite/poke.pkl/printf-24.pk: Likewise.
	* testsuite/poke.pkl/printf-25.pk: Likewise.
	* testsuite/poke.pkl/printf-value-3.pk: Likewise.
	* testsuite/poke.pkl/printf-value-4.pk: Likewise.
	* testsuite/poke.pkl/sref-1.pk: Renamed from structs-3.pk
	* testsuite/poke.pkl/sref-2.pk: Renamed from structs-4.pk
	* testsuite/poke.pkl/scons-25.pk: Renamed from structs-5.pk.
	* testsuite/poke.pkl/scons-diag-6.pk: Renamed from
	structs-diag-1.pk.
	* testsuite/poke.pkl/attr-length-6.pk: New test.

2020-03-04  Jose E. Marchesi  <jemarch@gnu.org>

	* src/pkl-gen.pks (struct_constructor): Check field constraints in
	struct constructors.
	* testsuite/poke.pkl/scons-20.pk: New test.
	* testsuite/poke.pkl/scons-21.pk: Likewise.
	* testsuite/poke.pkl/scons-22.pk: Likewise.
	* testsuite/poke.pkl/scons-23.pk: Likewise.
	* testsuite/poke.pkl/scons-24.pk: Likewise.
	* doc/poke.texi (Struct Literals): Remove section.
	(Struct Constructors): Document that struct constructors take data
	integrity into account.

2020-03-04  Jose E. Marchesi  <jemarch@gnu.org>

	* src/pkl-gen.pks (struct_constructor): Handle the struct methods.
	* testsuite/poke.pkl/scons-18.pk: New test.
	* testsuite/poke.pkl/scons-19.pk: New test.

2020-03-04  Jose E. Marchesi  <jemarch@gnu.org>

	* src/pkl-ast.c: Remove trailing whitespaces.
	* src/pkl-promo.c: Likewise.

2020-03-04  Jose E. Marchesi  <jemarch@gnu.org>

	* doc/poke.texi (Struct Constructors): New section.

2020-03-04  Jose E. Marchesi  <jemarch@gnu.org>

	* src/pkl-promo.c (pkl_promo_ps_scons): New handler.
	(pkl_phase_promo): Install new handler.
	* testsuite/poke.pkl/scons-17.pk: New test.
	* testsuite/poke.pkl/scons-diag-4.pk: Adjust.

2020-03-04  Jose E. Marchesi  <jemarch@gnu.org>

	* src/pkl-ast.c (pkl_ast_type_defval): Fix the index of elements
	in array defvals.
	* src/pkl-trans.c (pkl_trans3_ps_scons): Set the number of
	elements in the created struct value.
	* src/pkl-gen.c (pkl_gen_pr_type_struct): Fix comment.
	* src/pkl-gen.pks (struct_constructor): Handle compile-time built
	fields.
	* testsuite/poke.pkl/scons-1.pk: New test.
	* testsuite/poke.pkl/scons-13.pk: Likewise.
	* testsuite/poke.pkl/scons-12.pk: Likewise.
	* testsuite/poke.pkl/scons-11.pk: Likewise.
	* testsuite/poke.pkl/scons-10.pk: Likewise.
	* testsuite/poke.pkl/scons-9.pk: Likewise.
	* testsuite/poke.pkl/scons-8.pk: Likewise.
	* testsuite/poke.pkl/scons-7.pk: Likewise.
	* testsuite/poke.pkl/scons-6.pk: Likewise.
	* testsuite/poke.pkl/scons-5.pk: Likewise.
	* testsuite/poke.pkl/scons-4.pk: Likewise.
	* testsuite/poke.pkl/scons-diag-5.pk: Likewise.
	* testsuite/poke.pkl/scons-3.pk: Likewise.
	* testsuite/poke.pkl/scons-2.pk: Likewise.
	* testsuite/poke.pkl/scons-14.pk: Likewise.
	* testsuite/poke.pkl/scons-16.pk: Likewise.
	* testsuite/poke.pkl/scons-15.pk: Likewise.

2020-03-04  Jose E. Marchesi  <jemarch@gnu.org>

	* src/pkl-ast.c (pkl_ast_type_defval): ASTREF the type of the
	index of new array elements.
	(pkl_ast_type_defval): Add missing `break'.

2020-03-03  Jose E. Marchesi  <jemarch@gnu.org>

	* src/pkl-trans.c (pkl_trans3_ps_scons): New handler.
	(pkl_phase_trans3): Likewise.

2020-03-03  Jose E. Marchesi  <jemarch@gnu.org>

	* src/pkl-ast.h: Prototype for pkl_at_type_defval.
	* src/pkl-ast.c (pkl_ast_type_defval): New function.

2020-03-03  Jose E. Marchesi  <jemarch@gnu.org>

	* src/pkl-gen.pks (struct_writer): Use the mapping attributes from
	the mapped objects instead of getting them as arguments.
	(array_writer): Likewise.
	* src/pkl-asm.pks (write): Adjust accordingly.
	* src/pkl-gen.c (pkl_gen_pr_type_array): Clarify why the offset
	and ios are not used in a comment.
	(pkl_gen_pr_type_struct): Likewise.

2020-03-03  Jose E. Marchesi  <jemarch@gnu.org>

	* testsuite/lib/poke-dg.exp (dg-nbd): Run nbdkit only when
	available.
	(dg-command): Do not append to poke_commands if the current test
	is being skipped as UNSUPPORTED.
	* testsuite/poke.pkl/ios-nbd-1.pk: dg-require nbd.
	* testsuite/poke.pkl/open-3.pk: Likewise.
	* testsuite/poke.cmd/nbd-1.pk: Likewise.
	* HACKING: Note that dg-require should be used before dg-command
	directives.

2020-03-03  Jose E. Marchesi  <jemarch@gnu.org>

	* src/pk-utils.h (STREQ): Define.
	(STRNEQ): Likewise.
	* src/ios.c: Include pk-uttils.h.
	(STREQ): Remove.
	* src/pvm-val.c: Likewise.
	* src/pvm.jitter: Likewise.
	* src/pk-set.c: Likewise.
	* src/pk-hserver.c: Likewise.
	* src/pk-editor.c: Likewise.
	* src/pkl-typify.c: Likewise.
	* src/pkl-trans.c: Likewise.
	* src/pkl-fold.c: Likewise.
	* src/pkl-env.c: Likewise.
	* src/pkl-ast.c: Likewise.
	* src/pkl-anal.c: Likewise.
	* src/pk-misc.c: Likewise.
	* src/ios-dev-mem.c: Do not include assert.h.
	* src/ios-dev-nbd.c: Likewise.

2020-03-02  Eric Blake  <eblake@redhat.com>

	ios: Add Size to '.info ios'.
	* src/pk-ios.c (pk_cmd_info_ios, print_info_ios): Add Size
	column.
	* doc/poke.texi (info command): Document the addition.
	* testsuite/poke.cmd/file-mode.pk: Adjust expected output.
	* testsuite/poke.cmd/file-relative.pk: Likewise.

2020-03-02  Eric Blake  <eblake@redhat.com>

	* src/pk-ios.c (print_info_ios): Correct hyperlink.

2020-03-02  Eric Blake  <eblake@redhat.com>

	* .gitignore: Implementing '.doc' creates another file.

2020-03-02  Eric Blake  <eblake@redhat.com>

	nbd: Add testsuite coverage
	* HACKING (Using NBD connections in tests): New section.
	(Writing tests that depend on a certain capability): New capability.
	* testsuite/Makefile.am (check-DEJAGNU): Expose NBD witnesses.
	* configure.ac (AC_CHECK_PROGS): Check for nbdkit.
	* testsuite/lib/poke-dg.exp (dg-require): Add 'nbd' capability.
	(dg-tmpdir): New command to create safe short temp dir.
	(dg-nbd): New command to spawn nbdkit server.
	(poke_finish): Clean up nbdkit.
	* testsuite/poke.cmd/nbd-1.pk: New test of '.nbd'.
	* testsuite/poke.pkl/open-3.pk: New test of open("nbd...").
	* testsuite/poke.pkl/ios-nbd-1.pk: New test of nbd I/O.

2020-03-02  Eric Blake  <eblake@redhat.com>

	Add optional nbd:// io space support
	* configure.ac (PKG_CHECK_MODULES): Check for libnbd.
	* src/ios-dev-nbd.c: New file.
	* src/Makefile.am (poke_SOURCES): Optionally build it.
	* src/ios.c (ios_dev_ifs): Expose it through 'open'.
	* src/pk-ios.c (pk_cmd_nbd): Add .nbd command.
	* src/pk-cmd.c (dot_cmds): Load it.
	* doc/poke.texi (nbd command): New section.
	(open): Document nbd handler.
	* HACKING (libnbd): Mention it.

2020-03-02  Jose E. Marchesi  <jemarch@gnu.org>

	* src/pkl-gen.pks (array_mapper): Set the IOS of the mapped value.
	(struct_mapper): Likewise.
	* src/pvm.jitter (PVM_PEEK): Do not support ios == PVM_NULL.
	(PVM_POKE): Likewise.
	(peeks): Likewise.
	(pokes): Likewise.
	* src/pkl-gen.c (pkl_gen_pr_map): Push the current IOS if no IOS
	was specified in the map, instead of pushing PVM_NULL.
	* src/pkl-typify.c (pkl_typify1_ps_attr): Allow 'offset in any
	type.
	* src/pkl-gen.c (pkl_gen_ps_op_attr): Handle 'offset and 'ios in
	values of type any, checking at run-time.
	* testsuite/poke.pkl/attr-ios-diag-3.pk: New test.
	* testsuite/poke.map/maps-ios-8.pk: Likewise.
	* testsuite/poke.pkl/attr-ios-2.pk: Likewise.
	* testsuite/poke.pkl/attr-offset-diag-3.pk: Likewise.
	* testsuite/poke.pkl/attr-offset-diag-2.pk: Likewise.
	* testsuite/poke.pkl/attr-offset-3.pk: Likewise.
	* testsuite/poke.pkl/attr-offset-2.pk: Likewise.
	* testsuite/poke.pkl/attr-offset-diag-1.pk: Likewise.
	* testsuite/poke.pkl/attr-offset-1.pk: Likewise.
	* testsuite/poke.pkl/attr-ios-1.pk: Likewise.
	* testsuite/poke.pkl/attr-mapped-4.pk: Likewise.
	* testsuite/poke.pkl/attr-mapped-3.pk: Likewise.
	* testsuite/poke.pkl/attr-mapped-2.pk: Likewise.
	* testsuite/poke.pkl/attr-mapped-1.pk: Likewise.
	* TODO (or): Update.

2020-03-02  Eric Blake  <eblake@redhat.com>

	ios: Utilize buffer writes.
	* src/ios.c (IOS_PUT_C_ERR_CHCK): Add parameter.
	(ios_write_int_fast, ios_write_int_common): Consolidate writes.
	(ios_size): Drop useless ().

2020-03-02  Eric Blake  <eblake@redhat.com>

	ios: Utilize buffer reads.
	* src/ios.c (ios_read_int_common, ios_read_int, ios_read_uint):
	Consolidate reads.
	(IOS_READ_INTO_CHARRAY_1BYTE, IOS_READ_INTO_CHARRAY_2BYTES)
	(IOS_READ_INTO_CHARRAY_3BYTES, IOS_READ_INTO_CHARRAY_4BYTES)
	(IOS_READ_INTO_CHARRAY_5BYTES, IOS_READ_INTO_CHARRAY_6BYTES)
	(IOS_READ_INTO_CHARRAY_7BYTES, IOS_READ_INTO_CHARRAY_8BYTES)
	(IOS_READ_INTO_CHARRAY_9BYTES): Delete unused macros.

2020-03-02  Eric Blake  <eblake@redhat.com>

	ios: Change from getchar to pread device interface.
	* src/ios-dev.h (struct ios_dev_if): Replace get_c/put_c with
	pread/pwrite.
	* src/ios.c (IOS_GET_C_ERR_CHCK, IOS_PUT_C_ERR_CHCK)
	(ios_read_string, ios_write_string): Use the new interface.
	* src/ios-dev-file.c (ios_dev_file_getc, ios_dev_file_putc):
	Rewrite to...
	(ios_dev_file_pread, ios_dev_file_pwrite): ...this.
	* src/ios-dev-mem.c (ios_dev_mem_getc, ios_dev_mem_putc): Rewrite
	to...
	(ios_dev_mem_pread, ios_dev_mem_pwrite): ...this.

2020-03-02  Eric Blake  <eblake@redhat.com>

	ios: Drop unused seek/tell callbacks.
	* src/ios.c (ios_read_int, ios_read_uint, ios_read_string)
	(ios_write_int_common, ios_write_int, ios_write_uint)
	(ios_write_string): Drop redundant seek calls.
	* src/ios-dev.h (struct ios_dev_if): Drop unused seek and tell.
	* src/ios-dev-file.c (ios_dev_file_getc, ios_dev_file_putc): Set
	rather than assert offset.
	(ios_dev_file_tell, ios_dev_file_seek): Delete.
	* src/ios-dev-mem.c (ios_dev_mem_getc, ios_dev_mem_putc): Simplify.
	(ios_dev_mem_tell, ios_dev_mem_seek): Delete.
	* testsuite/poke.pkl/ios-mem-5.pk: Update the test.

2020-03-02  Eric Blake  <eblake@redhat.com>

	ios: Prove we don't need seek.
	* src/ios-dev.h (struct ios_dev_if): Add offset parameter to get_c
	and put_c.
	* src/ios.c (IOS_GET_C_ERR_CHCK, IOS_PUT_C_ERR_CHCK)
	(ios_read_string, ios_write_string): Pass offset through.
	* src/ios-dev-file.c (ios_dev_file_getc, ios_dev_file_putc):
	Update signature and add assertion.
	* src/ios-dev-mem.c (ios_dev_mem_getc, ios_dev_mem_putc):
	Likewise.

2020-03-02  Eric Blake  <eblake@redhat.com>

	ios: Pass offset to low-level macros.
	* src/ios.c (IOS_GET_C_ERR_CHCK, IOS_PUT_C_ERR_CHCK)
	(IOS_READ_INTO_CHARRAY_1BYTE, IOS_READ_INTO_CHARRAY_2BYTES)
	(IOS_READ_INTO_CHARRAY_3BYTES, IOS_READ_INTO_CHARRAY_4BYTES)
	(IOS_READ_INTO_CHARRAY_5BYTES, IOS_READ_INTO_CHARRAY_6BYTES)
	(IOS_READ_INTO_CHARRAY_7BYTES, IOS_READ_INTO_CHARRAY_8BYTES)
	(IOS_READ_INTO_CHARRAY_9BYTES): Add parameter (unused until next
	patch).
	(ios_write_int_fast): Add parameter.
	(ios_read_int_common, ios_read_int, ios_read_uint)
	(ios_write_int_common, ios_write_int, ios_write_uint): Adjust
	callers.

2020-03-02  Eric Blake  <eblake@redhat.com>

	ios: Avoid data leak and write-beyond-bounds in mem.
	* src/ios-dev-mem.c (ios_dev_mem_putc): Zero the added bytes, and
	track the updated size.
	(ios_dev_mem_seek): Forbid seeks beyond our desired growth amount.
	(ios_dev_mem_open): Zero the initial bytes.
	* testsuite/poke.pkl/ios-mem-2.pk: Actually obey comment.
	* testsuite/poke.pkl/ios-mem-3.pk: New test.
	* testsuite/poke.pkl/ios-mem-4.pk: Likewise.
	* testsuite/poke.pkl/ios-mem-5.pk: Likewise.

2020-03-02  Jose E. Marchesi  <jemarch@gnu.org>

	* testsuite/poke.pkl/funcall-vararg-1.pk: Split from
	funcall-vararg.pk
	* testsuite/poke.pkl/funcall-vararg-6.pk: Likewise.
	* testsuite/poke.pkl/funcall-vararg-5.pk: Likewise.
	* testsuite/poke.pkl/funcall-vararg-4.pk: Likewise.
	* testsuite/poke.pkl/funcall-vararg-3.pk: Likewise.
	* testsuite/poke.pkl/funcall-vararg-2.pk: Likewise.

2020-03-02  Jose E. Marchesi  <jemarch@gnu.org>

	* testsuite/poke.pkl/arrays-10.pk: s/catched/caught.
	* testsuite/poke.map/maps-unions-3.pk: Likewise.
	* testsuite/poke.map/maps-uint-diag-1.pk: Likewise.
	* testsuite/poke.map/maps-structs-constraints-1.pk: Likewise.
	* testsuite/poke.map/maps-strings-diag-4.pk: Likewise.
	* testsuite/poke.map/maps-strings-diag-2.pk: Likewise.
	* testsuite/poke.map/maps-strings-diag-1.pk: Likewise.
	* testsuite/poke.map/maps-simple-9.pk: Likewise.
	* testsuite/poke.map/maps-arrays-11.pk: Likewise.
	* testsuite/poke.map/maps-arrays-3.pk: Likewise.
	* testsuite/poke.pkl/try-until-3.pk: Likewise.
	* testsuite/poke.pkl/try-catch-diag-3.pk: Likewise.
	* testsuite/poke.pkl/try-catch-7.pk: Likewise.
	* testsuite/poke.pkl/try-catch-6.pk: Likewise.
	* testsuite/poke.pkl/trim-15.pk: Likewise.
	* testsuite/poke.pkl/trim-14.pk: Likewise.
	* testsuite/poke.pkl/trim-13.pk: Likewise.
	* testsuite/poke.pkl/trim-12.pk: Likewise.
	* testsuite/poke.pkl/trim-11.pk: Likewise.
	* testsuite/poke.pkl/sl-integers-12.pk: Likewise.
	* testsuite/poke.pkl/sl-integers-11.pk: Likewise.
	* testsuite/poke.pkl/sl-integers-10.pk: Likewise.
	* testsuite/poke.pkl/sl-integers-9.pk: Likewise.
	* testsuite/poke.pkl/sl-integers-6.pk: Likewise.
	* testsuite/poke.pkl/sl-integers-5.pk: Likewise.
	* testsuite/poke.pkl/promo-array-return-diag-2.pk: Likewise.
	* testsuite/poke.pkl/promo-array-arg-diag-7.pk: Likewise.
	* testsuite/poke.pkl/promo-array-arg-diag-4.pk: Likewise.
	* testsuite/poke.pkl/promo-array-arg-diag-3.pk: Likewise.
	* testsuite/poke.pkl/promo-array-arg-diag-2.pk: Likewise.
	* testsuite/poke.pkl/iosize-diag-1.pk: Likewise.
	* testsuite/poke.pkl/funcal-vararg.pk: Likewise.
	* testsuite/poke.pkl/funcall-vararg.pk: Likewise.
	* testsuite/poke.pkl/defun-12.pk: Likewise.
	* testsuite/poke.pkl/cast-array-siz-diag-3.pk: Likewise.
	* testsuite/poke.pkl/cast-array-siz-diag-2.pk: Likewise.
	* testsuite/poke.pkl/cast-array-siz-diag-1.pk: Likewise.
	* testsuite/poke.pkl/cast-array-diag-6.pk: Likewise.
	* testsuite/poke.pkl/cast-array-diag-3.pk: Likewise.
	* testsuite/poke.pkl/cast-array-diag-2.pk: Likewise.
	* testsuite/poke.pkl/attr-size-12.pk: Likewise.
	* testsuite/poke.pkl/attr-ios-diag-2.pk: Likewise.
	* testsuite/poke.pkl/attr-ios-diag-1.pk: Likewise.
	* testsuite/poke.pkl/ass-9.pk: Likewise.
	* testsuite/poke.pkl/array-siz-diag-1.pk: Likewise.
	* testsuite/poke.pkl/arrays-12.pk: Likewise.
	* testsuite/poke.pkl/arrays-11.pk: Likewise.

2020-03-02  Eric Blake  <eblake@redhat.com>

	* .gitignore: Broaden exclusion to cover all build objects.

2020-03-02  Jose E. Marchesi  <jemarch@gnu.org>

	* src/pkl-fold.c (PKL_PHASE_HANDLER_BIN_LOGIC): Renamed from
	PKL_PHASE_BIN_INT.
	(PKL_PHASE_HANDLER_BIN_INTOFF): Define.
	(PKL_PHASE_HANDLER_BIN_SHIFTPOW): Likewise.
	(ioro): Define semantic routines.
	(xoro): Likewise.
	(bando): Likewise.
	(slo): Likewise.
	(sro): Likewise.
	(powo): Likewise.
	(poso): Likewise.
	(nego): Likewise.
	(bonoto): Likewise.
	(OP_UNARY_OO): Define.
	* testsuite/poke.pkl/pos-offsets-1.pk: New test.

2020-03-02  Jose E. Marchesi  <jemarch@gnu.org>

	* src/Makefile.am (poke_SOURCES): Remove jitter generated sources.
	(poke_LDADD): Add libpvmjitter.a.
	(noinst_LIBRARIES): Define.
	(libpvmjitter_a_SOURCES): Likewise.
	(libpvmjitter_a_CPPFLAGS): Likewise.
	(libpvmjitter_a_CFLAGS): Likewise.
	* TODO: Another task bites the dust!

2020-03-02  Jose E. Marchesi  <jemarch@gnu.org>

	* testsuite/poke.pkl/sl-integers-1.pk: Rename from sl-1.pk
	* testsuite/poke.pkl/sl-integers-2.pk: Rename from sl-2.pk
	* testsuite/poke.pkl/sl-integers-3.pk: Rename from sl-3.pk
	* testsuite/poke.pkl/sl-integers-4.pk: Rename from sl-4.pk
	* testsuite/poke.pkl/sl-integers-5.pk: Rename from sl-5.pk
	* testsuite/poke.pkl/sl-integers-6.pk: Rename from sl-6.pk
	* testsuite/poke.pkl/sl-integers-7.pk: Rename from sl-7.pk
	* testsuite/poke.pkl/sl-integers-8.pk: Rename from sl-8.pk
	* testsuite/poke.pkl/sl-integers-9.pk: Rename from sl-9.pk
	* testsuite/poke.pkl/sl-integers-10.pk: Rename from sl-10.pk
	* testsuite/poke.pkl/sl-integers-11.pk: Rename from sl-11.pk
	* testsuite/poke.pkl/sl-integers-12.pk: Rename from sl-12.pk
	* testsuite/poke.pkl/sl-offsets-1.pk: New test.
	* testsuite/poke.pkl/sr-offsets-2.pk: Likewise.
	* testsuite/poke.pkl/sr-offsets-1.pk: Likewise.
	* testsuite/poke.pkl/sr-integers-2.pk: Likewise.
	* testsuite/poke.pkl/sr-integers-1.pk: Likewise.
	* testsuite/poke.pkl/sl-offsets-2.pk: Likewise.

2020-03-02  Jose E. Marchesi  <jemarch@gnu.org>

	* src/pkl-asm.c (pkl_asm_insn_binop): Remove gratuitous
	conditional.

2020-03-01  Jose E. Marchesi  <jemarch@gnu.org>

	* TODO: New task.

2020-03-01  Jose E. Marchesi  <jemarch@gnu.org>

	* pickles/bpf.pk (BPF_Insn_Offset): Fix offset type.

2020-03-01  Jose E. Marchesi  <jemarch@gnu.org>

	* src/poke.c (parse_args): Emit an error message if the specified
	data file cannot be opened.

2020-03-01  Jose E. Marchesi  <jemarch@gnu.org>

	* src/pkl-promo.c (pkl_promo_ps_op_binary_intoffstr): Renamed from
	pkl_promo_ps_op_add_sub_mod.
	(pkl_promo_ps_op_bshiftpow): Promote offset operand.
	* src/pkl-typify.c: ior, xor and band accept both integers and
	offsets as arguments.
	* src/pkl-gen.c (pkl_gen_ps_op_binexp): Renamed from
	pkl_gen_ps_op_intexp, and allow offsets for all operations.
	(pkl_gen_ps_op_pow): Remove.
	* src/pkl-asm.c (pkl_asm_insn_binop): Renamed from
	pkl_asm_insn_binop, and expanded to support binary offset
	macro-instructions.
	* src/pkl-typify.c (pkl_typify1_ps_bshift_pow): New handler.
	* testsuite/poke.pkl/pow-integers-1.pk: Renamed from pow-1.pk.
	* testsuite/poke.pkl/pow-integers-2.pk: Renamed from pow-2.pk.
	* testsuite/poke.pkl/pow-integers-3.pk: Renamed from pow-3.pk.
	* testsuite/poke.pkl/xor-integers-1.pk: Renamed from xor-1.pk
	* testsuite/poke.pkl/xor-integers-2.pk: Renamed from xor-2.pk
	* testsuite/poke.pkl/ior-integers-1.pk: Renamed from ior-1.pk.
	* testsuite/poke.pkl/ior-integers-2.pk: Renamed from ior-2.pk.
	* testsuite/poke.pkl/band-integers-1.pk: Renamed from band-1.pk.
	* testsuite/poke.pkl/band-integers-2.pk: Renamed from band-2.pk.
	* testsuite/poke.pkl/band-offsets-1.pk: New test.
	* testsuite/poke.pkl/band-offsets-2.pk: Likewise.
	* testsuite/poke.pkl/ior-offsets-1.pk: Likewise.
	* testsuite/poke.pkl/ior-offsets-2.pk: Likewise.
	* testsuite/poke.pkl/xor-offsets-1.pk: Likewise.
	* testsuite/poke.pkl/xor-offsets-2.pk: Likewise.
	* testsuite/poke.pkl/pow-diag-1.pk: Likewise.
	* testsuite/poke.pkl/sr-diag-1.pk: Likewise.
	* testsuite/poke.pkl/sl-diag-4.pk: Likewise.
	* testsuite/poke.pkl/sr-diag-2.pk: Likewise.
	* testsuite/poke.pkl/sl-diag-5.pk: Likewise.
	* testsuite/poke.pkl/pow-diag-2.pk: Likewise.
	* testsuite/poke.pkl/pow-offsets-1.pk: Likewise.
	* testsuite/poke.pkl/pow-offsets-2.pk: Likewise.
	* testsuite/poke.pkl/pow-offsets-3.pk: Likewise.
	* TODO: Update.

2020-03-01  Jose E. Marchesi  <jemarch@gnu.org>

	* src/pvm.jitter: Remove trailing whitespaces.
	* src/pkl-fold.c: Likewise.
	* src/pk-editor.c (STREQ): Define.
	(pk_cmd_editor): use STREQ instead of strcmp.

2020-03-01  Jose E. Marchesi  <jemarch@gnu.org>

	* src/std.pk: Define standard units using the power operator, and
	use the same prefixes than coreutils.
	* src/pvm-val.h (PVM_VAL_OFF_UNIT_GIGABYTES): Define.
	(PVM_VAL_OFF_UNIT_KIBIBITS): Likewise.
	(PVM_VAL_OFF_UNIT_KIBIBYTES): Likewise.
	(PVM_VAL_OFF_UNIT_MEBIBITS): Likewise.
	(PVM_VAL_OFF_UNIT_MEBIBYTES): Likewise.
	(PVM_VAL_OFF_UNIT_KILOBITS): Changed to base 10.
	(PVM_VAL_OFF_UNIT_KILOBYTES): Likewise.
	(PVM_VAL_OFF_UNIT_MEGABITS): Likewise.
	(PVM_VAL_OFF_UNIT_MEGABYTES): Likewise.
	(PVM_VAL_OFF_UNIT_GIGABITS): Likewise.
	* src/pvm-val.c (pvm_print_val): Fix unit names.
	(print_unit_name): New function.
	(pvm_print_val): Use print_unit_name.
	* testsuite/poke.pkl/ass-offset-1.pk: Adjust test to new units.
	* testsuite/poke.pkl/promo-offset-arg-2.pk: Likewise.
	* testsuite/poke.pkl/promo-offset-arg-1.pk: Likewise.
	* testsuite/poke.pkl/offsets-53.pk: Likewise.
	* testsuite/poke.pkl/mod-offsets-diag-1.pk: Likewise.
	* testsuite/poke.pkl/div-offsets-diag-2.pk: Likewise.
	* testsuite/poke.pkl/units-8.pk: New test.

2020-03-01  Jose E. Marchesi  <jemarch@gnu.org>

	* src/pkl-ops.def (PKL_AST_OP_POW): New operator.
	* src/pkl-tab.y (POW): New token.
	(expression): New rule alternative for exponentiation.
	* src/pkl-lex.l: Handle POW.
	* src/pkl-typify.c: Handle the exponent operator.
	* src/pkl-fold.c: Likewise.
	* src/pkl-promo.c: Likewise.
	(pkl_promo_ps_op_bshiftpow): Renamed from pkl_promo_ps_op_bshift.
	* src/pvm.jitter (PVM_POWOP): Define.
	(powi): New instruction.
	(powiu): Likewise.
	(powl): Likewise.
	(powlu): Likewise.
	* src/pkl-insn.def (PKL_INSN_POWI): Define
	(PKL_INSN_POWIU): Likewise.
	(PKL_INSN_POWL): Likewise.
	(PKL_INSN_POWLU): Likewise.
	(PKL_INSN_POW): Likewise.
	* src/pkl-asm.c (pkl_asm_insn_intop): Implement the pow
	macro-instruction.
	(pkl_asm_insn): Handle PKL_INSN_POW.
	* src/pkl-gen.c (pkl_gen_ps_op_pow): New handler.
	* src/pk-utils.h: Prototypes for pk_ipow and pk_upow.
	* src/pk-utils.c (pk_ipow): New function.
	(pk_upow): Likewise.
	* testsuite/poke.pkl/pow-1.pk: New test.
	* testsuite/poke.pkl/pow-2.pk: Likewise.
	* testsuite/poke.pkl/pow-3.pk: Likewise.
	* doc/poke.texi (Arithmetic Operators): Mention the exponentiation
	operator.

2020-02-29  John Darrington <john@darrington.wattle.id.au>

	* src/pk-editor.c (pk_cmd_editor):  Correctly test
	the output from find_in_path:  if the program is not
	found, it returns its argument verbatim.

2020-02-29  Jose E. Marchesi  <jemarch@gnu.org>

	* src/pkl-tab.y (DEFUNIT): New token.
	* src/pkl-lex.l (DEFUNIT): Likewise.
	* src/pk-cmd.c (pk_cmd_exec): Recognize defunit.
	* src/pkl-env.h (PKL_ENV_NS_MAIN): Define.
	(PKL_ENV_NS_UNITS): Likewise.
	* src/pkl-env.c (struct pkl_env): New field units_hash_table.
	(pkl_env_free): Handle units_hash_table.
	(pkl_env_dup_toplevel): Handle the units hash table.
	(pkl_env_lookup): Get a new argument `namespace'.
	(pkl_env_lookup_1): Likewise.
	(pkl_env_register): Likewise.
	(get_ns_table): New function.
	(pkl_env_lookup_1): Handle `namespace'.
	(struct pkl_env): New field num_units.
	* src/pkl-lex.l: Pass namespace to pkl_env_lookup.
	* src/pkl-tab.y: Likewise.
	* src/pk-def.c (print_var_decl): Likewise.
	* src/pk-repl.c (pkl_complete_struct): Likewise.
	* src/pk-vm.c (pk_cmd_vm_disas_fun): Likewise.
	(pk_cmd_vm_disas_fun): Likewise.
	* src/pkl-ast.h (PKL_AST_DECL_KIND_UNIT): Define.
	* src/pkl-ast.c (pkl_ast_id_to_offset_unit): Remove function.
	* src/pkl-anal.c (pkl_anal1_ps_decl): New handler.
	(pkl_phase_anal1): Install new handler.
	* src/pkl-typify.c (pkl_typify1_ps_decl): New handler.
	(pkl_phase_typify1): Install new handler.
	* src/pkl-trans.c (pkl_trans1_ps_offset): Do not handle
	identifiers in offset units.
	(pkl_trans1_ps_type_offset): Remove.
	(pkl_trans2_ps_offset_type): Fix error location.
	* src/pkl-fold.c (pkl_fold_ps_cast): Do not overwrite unit nodes
	while constant-folding offset casts.  Create a new node instead.
	* src/pkl-gen.c (pkl_gen_pr_decl): Handle PKL_AST_DECL_KIND_UNIT.
	* src/pkl-asm.c (pkl_asm_call): Pass a namespace to
	pkl_env_lookup.
	* src/std.pk (b,N,B,Kb,KB,Mb,MB,Gb,GB): Define units.
	* testsuite/poke.pkl/units-1.pk: New test.
	* testsuite/poke.pkl/units-2.pk: Likewise.
	* testsuite/poke.pkl/units-3.pk: Likewise.
	* testsuite/poke.pkl/units-4.pk: Likewise.
	* testsuite/poke.pkl/units-5.pk: Likewise.
	* testsuite/poke.pkl/units-6.pk: Likewise.
	* testsuite/poke.pkl/units-diag-1.pk: Likewise.
	* testsuite/poke.pkl/units-diag-2.pk: Likewise.
	* testsuite/poke.pkl/units-diag-3.pk: Likewise.
	* doc/poke.texi (Offset Units): New section.
	(Standard Units): New chapter.

2020-02-29  John Darrington <john@darrington.wattle.id.au>

	* src/pk-editor.c (pk_cmd_editor): Do nothing if poke is not running
	interactively.

2020-02-29  John Darrington <john@darrington.wattle.id.au>

	* src/poke.c (parse_args): Set poke_interactive_p before any statements
	which might want to test it.

2020-02-27  Eric Blake  <eblake@redhat.com>

	ios: Drop Position column from .info ios
	* src/pk-ios.c (pk_cmd_info_ios, print_info_ios): Simplify.
	* src/ios.c (ios_tell): Delete.
	* src/ios.h (ios_tell): Likewise.
	* doc/poke.texi (info command): Update output.
	* testsuite/poke.cmd/file-mode.pk: Likewise.
	* testsuite/poke.cmd/file-relative.pk: Likewise.

2020-02-23  John Darrington <john@darrington.wattle.id.au>

	* src/pk-cmd.c (pk_cmd_exec_1)[case 'f']: Remove a lot
	of code which seems to serve no useful purpose.
	* src/pk-repl.c (escape_metacharacters): New function.
	* src/pk-repl.c (pk_repl): Initialize various readling
	parameters.

2020-02-27  Jose E. Marchesi  <jemarch@gnu.org>

	* src/pkl-lex.l: Set errno to 0 before calling strtoull.

2020-02-27  Jose E. Marchesi  <jemarch@gnu.org>

	* bootstrap.conf (gnulib_modules): Add module strtoull.
	* src/pkl-lex.l: Use strtoull instead of strtoll.
	* src/pkl-tab.y: Improve error message on integer overflow.

2020-02-27  Jose E. Marchesi  <jemarch@gnu.org>

	* src/pkl-tab.y (INTEGER_OVERFLOW): New token.
	(primary): Accept INTEGER_OVERFLOW as a primary.
	* src/pkl-lex.l: Return INTEGER_OVERFLOW whenever appropriate.
	* testsuite/poke.pkl/integers-diag-1.pk: New test.

2020-02-27  Jose E. Marchesi  <jemarch@gnu.org>

	* TODO: Update.

2020-02-26  Eric Blake  <eblake@redhat.com>

	open: Normalize tricky .file names.
	* src/ios-dev.h (struct ios_dev_if): Replace handler_p with
	handler_noramlize callback.
	* src/ios.c (ios_open): Store normalized name per ios.
	* src/ios-dev-file.c (ios_dev_file_handler_p): Rename...
	(ios_dev_file_handler_normalize): ...and prepend ./ to risky
	relative file names.
	* src/ios-dev-mem.c (ios_dev_mem_handler_p): Rename...
	(ios_dev_mem_handler_normalize): ...to this.
	(ios_dev_mem_open, ios_dev_mem_close): Drop unused handler member.
	* testsuite/poke.cmd/file-relative.pk: New test.

2020-02-26  Eric Blake  <eblake@redhat.com>

	* src/ios.c (ios_close): Avoid side-effect inside assert.
	* src/pk-def.c (print_var_decl, print_fun_decl): Likewise.
	* src/pk-term.c (pk_printf): Likewise.
	* src/pkl-asm.c (pkl_asm_call): Likewise.
	* src/pkl-tab.y (pkl_register_dummies): Likewise.
	* src/pkl.c (pkl_detailed_location): Likewise.

2020-02-26  Eric Blake  <eblake@redhat.com>

	* etc/git.orderfile (ChangeLog): Always list first.
	(Documentation): Correct spelling of doc/.
	(Build files): build-aux is not stored in git.

2020-02-25  Eric Blake  <eblake@redhat.com>

	* .gitignore: Ignore more testsuite leftovers.

2020-02-25  Eric Blake  <eblake@redhat.com>

	* src/pkl-tab.y (opt_comma): New rule.
	(array): Use it to simplify trailing comma in arrays.
	(struct, expression): Allow trailing comma in struct literals.
	* doc/poke.texi (Struct Literals): Document it.
	* testsuite/poke.pkl/structs-5.pk: Test it.
	* etc/poke.g4 (array, struct): Match the real grammar.

2020-02-25  Eric Blake  <eblake@redhat.com>

	maint: Fix syntax-check
	* .x-sc_prohibit_strncpy: Exempt pk-repl.c.
	* etc/poke.g4 (expression): Whitespace cleanups.
	* doc/poke.texi (String Concatenation): Likewise.
	* src/ios-dev-file.c (ios_dev_file_close): Likewise.
	* src/ios-dev-mem.c (ios_dev_mem_getc): Likewise.
	* src/ios.c: Likewise.
	* src/pk-hserver.c: Likewise.
	* src/pk-ios.c: Likewise.
	* src/pk-set.c: Likewise.
	* src/pkl-ast.c: Likewise.
	* src/pkl-ast.h: Likewise.
	* src/pkl-fold.c: Likewise.
	* src/pkl-insn.def: Likewise.
	* src/pkl-tab.y: Likewise.
	* src/pkl-typify.c: Likewise.
	* src/pvm.jitter: Likewise.
	* testsuite/poke.pkl/structs-diag-1.pk: Likewise.

2020-02-25  Eric Blake  <eblake@redhat.com>

	maint: Saner diff output
	* .gitattributes: New file.
	* etc/git.orderfile: New file.
	* bootstrap.conf (bootstrap_post_import_hook): Set it up.

2020-02-25  Eric Blake  <eblake@redhat.com>

	* .gitignore: Allow './configure -C'.

2020-02-25  Eric Blake  <eblake@redhat.com>

	* doc/poke.texi (Assignments): Typo fix.

2020-02-25  Jose E. Marchesi  <jemarch@gnu.org>

	* src/pk-ios.c (mem_cmd): Do not accept IOS tags in the .mem
	command.
	* doc/poke.texi (mem command): Update accordingly.
	(file command): Likewise, for .file.
	(info command): Use .ios instead of .file in example.

2020-02-25  Jose E. Marchesi  <jemarch@gnu.org>

	* HACKING (Write After Approval): Add Eric Blake.

2020-02-24  Eric Blake  <eblake@redhat.com>

	* src/pkl-tab.y (array): Allow trailing comma in arrays.
	* doc/poke.texi (Array Literals): Document it.
	* testsuite/poke.pkl/arrays-9.pk: New file, to test it.

2020-02-24  Eric Blake  <eblake@redhat.com>

	* .gitignore: Ignore files created during 'make check'.

2020-02-24  Eric Blake  <eblake@redhat.com>

	maint: add run script for easier uninstalled usage
	* run.in: New file.
	* configure.ac (AC_CONFIG_FILES): Use it to build 'run'.
	* Makefile.am (noinst_SCRIPTS): Include template in tarball.
	* HACKING (Running an Uninstalled Poke): Document it.
	* .gitignore: Exempt new file.

2020-02-24  Jose E. Marchesi  <jemarch@gnu.org>

	* HACKING (Running and Uninstalled Poke): Update to cover
	POKEPICKLESDIR.

2020-02-23  Bruno Haible  <bruno@clisp.org>

	HACKING: Tell where to find the DejaGnu documentation.
	* HACKING (Test framework): New section.

2020-02-23  Bruno Haible  <bruno@clisp.org>

	Avoid a test failure, when running the test suite as root.
	* testsuite/poke.cmd/file-mode.pk: Allow /etc/passwd to be opened
	read-write.

2020-02-23  Jose E. Marchesi  <jemarch@gnu.org>

	* etc/poke.g4 (funcall_stmt_arg): Remove empty lines at EOF.
	* testsuite/poke.pkl/funcall-13.pk: Likewise.
	* testsuite/poke.pkl/close-2.pk: Likewise.
	* src/pk-utils.c: Likewise.

2020-02-22  John Darrington <john@darrington.wattle.id.au>

	* src/pk-ios.c (count_io_spaces): delete.
	* src/pk-ios.c (close_completion_function): Rename
	to ios_completion_function.
	* src/pk-ios.c (ios_completion_function): Do not
	assume that IO tags are consecutive integers.
	* src/pk-ios.c (ios_cmd): Add new completer.

2020-02-22  John Darrington <john@darrington.wattle.id.au>

	* src/ios.c (ios_begin): New function.
	* src/ios.c (ios_end): New function.
	* src/ios.c (ios_next): New function.
	* src/ios.h (ios_begin): New declaration.
	* src/ios.h (ios_end): New declaration.
	* src/ios.h (ios_next): New declaration.

2020-02-21  Jose E. Marchesi  <jemarch@gnu.org>

	* testsuite/poke.pkl/sizeof-1.pk: New test.
	* testsuite/poke.pkl/sizeof-2.pk: Likewise.
	* testsuite/poke.pkl/sizeof-3.pk: Likewise.
	* testsuite/poke.pkl/sizeof-12.pk: Likewise.
	* testsuite/poke.pkl/sizeof-11.pk: Likewise.
	* testsuite/poke.pkl/sizeof-10.pk: Likewise.
	* testsuite/poke.pkl/sizeof-9.pk: Likewise.
	* testsuite/poke.pkl/sizeof-8.pk: Likewise.
	* testsuite/poke.pkl/sizeof-7.pk: Likewise.
	* testsuite/poke.pkl/sizeof-6.pk: Likewise.
	* testsuite/poke.pkl/sizeof-5.pk: Likewise.
	* testsuite/poke.pkl/sizeof-4.pk: Likewise.

2020-02-16  John Darrington <john@darrington.wattle.id.au>

	* src/pk-repl.c (poke_getc): Revert to poke_completion_function
	if no complete command is on the repl's command line.

2020-02-16  John Darrington <john@darrington.wattle.id.au>

	* src/pk-editor.c (null_complete_function): delete
	* src/pk-repl.c (null_complete_function): add (move from above)
	* src/pk-repl.c (poke_getc): Use null_complete_function as the
	default completer.

2020-02-16  John Darrington <john@darrington.wattle.id.au>

	* src/pk-def.c: Explicitly set completer member of struct pk_cmd
	typed variables to NULL.
        * src/pk-help.c: ditto
        * src/pk-ios.c:  ditto
        * src/pk-misc.c: ditto
        * src/pk-set.c:  ditto
        * src/pk-vm.c:   ditto

2020-02-19  Jose E. Marchesi  <jemarch@gnu.org>

	* src/pkl-gen.c (pkl_gen_pr_try_until_stmt): Emit sync instruction
	before jumping back.

2020-02-18  Jose E. Marchesi  <jemarch@gnu.org>

	* src/pkl-promo.c (pkl_promo_ps_op_mul): Support multiplication of
	an integer by string.
	* src/pkl-typify.c (pkl_typify1_ps_mul): Likewise.
	* src/pkl-gen.c (pkl_gen_ps_op_mul): Likewise.
	* src/pkl-fold.c (OP_BINARY_SIS): Define.
	(EMUL_SIS): Likewise.
	(pkl_fold_mul): Use OP_BINARY_SIS.
	* src/pkl-insn.def (PKL_INSN_MULS): Define.
	* src/pvm.jitter (muls): New instruction.
	* testsuite/poke.pkl/mul-strings-1.pk: New test.
	* testsuite/poke.pkl/mul-strings-2.pk: Likewise.
	* testsuite/poke.pkl/mul-strings-3.pk: Likewise.
	* testsuite/poke.pkl/mul-strings-4.pk: Likewise.
	* testsuite/poke.pkl/mul-strings-5.pk: Likewise.
	* doc/poke.texi (String Concatenation): Document the * operator
	for strings.

2020-02-18  Carlo Caione  <ccaione@baylibre.com>

	* .gitignore: ignore more files
	* .gitmodules: ignore dirty sub-repo

2020-02-18  Carlo Caione  <ccaione@baylibre.com>

	* src/pk-repl.c: Rework poke_sigint_handler()

2020-02-17  Carlo Caione  <ccaione@baylibre.com>

	* src/pk-repl.c (pkl_complete_struct): new auto-complete function
	* src/pkl-ast.c (pkl_struct_type_traverse): new helper function
	* src/pkl-ast.h: likewise

2020-02-14  Jose E. Marchesi  <jemarch@gnu.org>

	* testsuite/poke.cmd/set-oacutoff-2.pk: New test.
	* src/pvm-val.c (pvm_print_val): Apply acutoff also in arrays that
	are not inside other structs.

2020-02-14  Jose E. Marchesi  <jemarch@gnu.org>

	* src/pk-set.c (pk_cmd_set_endian): Fix handling of optional
	argument.
	(pk_cmd_set_nenc): Likewise.
	(pk_cmd_set_omode): Likewise.

2020-02-14  Jose E. Marchesi  <jemarch@gnu.org>

	* src/pk-cmd.c (pk_cmd_exec): Honour pvm_oacutoff when calling
	pvm_print_val.

2020-02-14  Jose E. Marchesi  <jemarch@gnu.org>

	* src/pk-set.c (set_oacutoff_cmd): Make argument optional.
	(set_oindent_cmd): Likewise.
	(set_odepth_cmd): Likewise.
	(pk_cmd_set_oacutoff): Print the current array cutoff if the set
	command is invoked without arguments.
	(pk_cmd_set_odepth): Likewise.
	(pk_cmd_set_obase): Likewise.
	* testsuite/poke.cmd/set-oacutoff-1.pk: New test.
	* testsuite/poke.cmd/set-odepth-2.pk: Likewise.
	* testsuite/poke.cmd/set-obase-1.pk: Likewise.
	* testsuite/poke.cmd/set-obase-2.pk: Likewise.
	* testsuite/poke.cmd/set-obase-4.pk: Likewise.
	* testsuite/poke.cmd/set-obase-3.pk: Likewise.
	* testsuite/poke.cmd/set-obase-5.pk: Renamed from set-obase.pk.

2020-02-14  Jose E. Marchesi  <jemarch@gnu.org>

	* src/pkl-ast.h (PKL_AST_PRINT_STMT_ARG_PRINT_MODE): Define.
	(struct pkl_ast_print_stmt_arg): New field print_mode.
	(PKL_AST_PRINT_STMT_ARG_PRINT_DEPTH): Define.
	(struct pkl_ast_print_stmt_arg): New field print_depth.
	* src/pkl-trans.c (pkl_trans1_ps_print_stmt): Support for
	numerical prefix and flag T for the %v format tag.
	* src/pvm.jitter (printv): Accept two arguments MODE and DEPTH.
	* src/pkl-insn.def: Annotate printv to get two numerical
	arguments.
	* src/pkl-gen.c (pkl_gen_pr_print_stmt): Emit a printv
	instruction with the right mode and depth.
	* src/pvm-val.h (PVM_PRINT_F_DEPTH): Define.
	(PVM_PRINT_F_GET_DEPTH): Likewise.
	(PVM_PRINT_F_MODE): Likewise.
	(PVM_PRINT_F_GET_MODE): Likewise.
	(PVM_PRINT_F_INDENT): Likewise.
	(PVM_PRINT_F_GET_INDENT): Likewise.
	(PVM_PRINT_F_ACUTOFF): Likewise.
	(PVM_PRINT_F_GET_ACUTOFF): Likewise.
	* src/pvm-val.c (pvm_print_val): `flags' is an unsigned 32-bit
	integer.
	(pvm_print_val): Extract the desired printing depth from the
	`flags', `mode', `acutoff' and `indent' arguments.
	* src/pk-cmd.c (pk_cmd_exec): Pass mode/depth/indent to
	pvm_print_val.
	* src/pk-set.c (pk_cmd_set_odepth): Check that the odepth is
	between 0 and 15.
	(pk_cmd_set_oacutoff): Likewise for oacutoff.
	* doc/poke.texi (printf): Document the additional options for %v.
	* testsuite/poke.pkl/printf-diag-14.pk: Adjust.
	* testsuite/poke.pkl/printf-diag-15.pk: New test.
	* testsuite/poke.pkl/printf-diag-16.pk: Likewise.
	* testsuite/poke.pkl/printf-20.pk: Likewise.
	* testsuite/poke.pkl/printf-21.pk: Likewise.
	* testsuite/poke.pkl/printf-22.pk: Likewise.
	* testsuite/poke.pkl/printf-23.pk: Likewise.
	* testsuite/poke.pkl/printf-24.pk: Likewise.
	* testsuite/poke.pkl/printf-25.pk: Likewise.

2020-02-14  Jose E. Marchesi  <jemarch@gnu.org>

	* src/pk-term.c (pk_term_indent): Get a new argument `step'.
	* src/pvm-val.c (pvm_print_val): Call pk_term_indent only if
	output mode is `tree', and pass the indentation step.

2020-02-13  Carlo Caione  <ccaione@baylibre.com>

	* doc/poke.texi: add documentation
	* src/pk-set.c: new set oacutoff command
	* testsuite/poke.cmd/set-oacutoff.pk: new test file
	* src/pvm.c: helpers to retrieve oacutoff flag
	* src/pvm.h: likewise
	* src/pvm.jitter: new flag in the PVM state struct
	* src/pvm-val.c: support new array cutoff parameter

2020-02-13  Jose E. Marchesi  <jemarch@gnu.org>

	* src/poke.c (initialize): Initialize the hyperserver only if poke
	is used interactively.
	(finalize): Ditto for finalize.

2020-02-13  Jose E. Marchesi  <jemarch@gnu.org>

	* src/ras (pop_frame): Fix typo.

2020-02-13  Jose E. Marchesi  <jemarch@gnu.org>

	* HACKING (Write After Approval): Added Carlo Caione.
	* AUTHORS: Likewise.

2020-02-13  Carlo Caione  <ccaione@baylibre.com>

	* testsuite/poke.cmd/set-odepth.pk: new test
	* testsuite/poke.cmd/set-oindent.pk: likewise
	* testsuite/poke.cmd/set-odepth.pk: likewise
	* src/pvm.jitter: new flags in the PVM state struct
	* src/pvm.c: helpers to retrieve tree-related flags
	* src/pvm.h: likewise
	* src/pvm-val.c: support new printing modes
	* src/pk-term.c: new function to print indentation
	* src/pk-term.h: likewise
	* src/pk-set.c: new .set sub-commands
	* doc/poke.texi: updated documentation

2020-02-13  Jose E. Marchesi  <jemarch@gnu.org>

	* src/pkl-tab.y (load_module): Try to load modules from both
	poke_datadir and poke_picklesdir.
	* src/pk-cmd.c (pk_cmd_init): Do not load commands written in Poke
	from C.  Do it in pk-cmd.pk instead.
	* src/pk-cmd.pk: Load commands written in Poke.

2020-02-13  Jose E. Marchesi  <jemarch@gnu.org>

	* src/pkl-tab.y (load): Add a LOAD STRING syntactic variant.
	(load_module): Get a filename_p argument.
	* doc/poke.texi (Modules): Document the alternate syntax for
	`load'.
	* testsuite/poke.pkl/load-4.pk: New test.
	* testsuite/poke.pkl/load-diag-2.pk: Likewise.

2020-02-13  Jose E. Marchesi  <jemarch@gnu.org>

	* testsuite/poke.pkl/funcall-3.pk: Split from funcall.pk.
	* testsuite/poke.pkl/funcall-14.pk: Likewise.
	* testsuite/poke.pkl/funcall-13.pk: Likewise.
	* testsuite/poke.pkl/funcall-12.pk: Likewise.
	* testsuite/poke.pkl/funcall-11.pk: Likewise.
	* testsuite/poke.pkl/funcall-10.pk: Likewise.
	* testsuite/poke.pkl/funcall-9.pk: Likewise.
	* testsuite/poke.pkl/funcall-8.pk: Likewise.
	* testsuite/poke.pkl/funcall-7.pk: Likewise.
	* testsuite/poke.pkl/funcall-6.pk: Likewise.
	* testsuite/poke.pkl/funcall-5.pk: Likewise.
	* testsuite/poke.pkl/funcall-4.pk: Likewise.

2020-02-13  Jose E. Marchesi  <jemarch@gnu.org>

	* doc/poke.texi (Shebang): Document the shebang style that allows
	passing more arguments to poke.

2020-02-12  Jose E. Marchesi  <jemarch@gnu.org>

	* testsuite/Makefile.am (POKEDATADIR): Define.

2020-02-12  Jose E. Marchesi  <jemarch@gnu.org>

	* src/poke.c (parse_args): Handle -L after the data files
	specified in the command line are loaded.

2020-02-12  Jose E. Marchesi  <jemarch@gnu.org>

	* testsuite/poke.pkl/load-1.pk: New test.
	* testsuite/poke.pkl/load-2.pk: Likewise.
	* testsuite/poke.pkl/load-3.pk: Likewise.
	* testsuite/poke.pkl/load-diag-1.pk: Likewise.
	* doc/poke.texi (Modules): New chapter.

2020-02-12  Jose E. Marchesi  <jemarch@gnu.org>

	* src/poke.h (poke_picklesdir): New variable.
	* src/poke.c (initialize): Initialize poke_picklesdir.
	* src/pkl-lex.l: Recognize the token LOAD.
	* src/pkl-tab.y (load): New rule.
	(program_elem): New alternative `load'.
	(LOAD): New token.
	(load_module): New auxiliary function.
	* src/pk-ios.c: Include pk-utils.h.
	(pk_file_readable): Moved to pk-utils.c.
	* src/Makefile.am (poke_SOURCES): Add pk-utils.[hc].
	* src/pk-utils.h: New file.
	* src/pk-utils.c: Likewise.
	* pickles/ctf.pk: load elf.
	* HACKING (Appendix): List pk-utils.c and pk-utils.h.

2020-02-11  Jose E. Marchesi  <jemarch@gnu.org>

	* doc/poke.texi (Bitwise Operators): Document the behavior of the
	shifting operators.

2020-02-11  Jose E. Marchesi  <jemarch@gnu.org>

	* src/pkl-anal.c (pkl_anal1_ps_op_sl): New handler.
	(pkl_phase_anal1): Install handler.
	* testsuite/poke.pkl/sl-diag-1.pk: New test.
	* testsuite/poke.pkl/sl-diag-2.pk: Likewise.
	* testsuite/poke.pkl/sl-diag-3.pk: Likewise.
	* testsuite/poke.pkl/sl-9.pk: Likewise.
	* testsuite/poke.pkl/sl-10.pk: Likewise.
	* testsuite/poke.pkl/sl-11.pk: Likewise.
	* testsuite/poke.pkl/sl-12.pk: Likewise.
	* testsuite/poke.pkl/sl-5.pk: Adapt to new semantics.
	* testsuite/poke.pkl/sl-6.pk: Likewise.
	* src/pvm.jitter (PVM_BINOP_SL): Define.

2020-02-04  Jose E. Marchesi  <jemarch@gnu.org>

	* src/pkl-fold.c: Constant folding for bit shifts.
	* testsuite/poke.pkl/sl-1.pk: Test constant folding.
	* testsuite/poke.pkl/sl-2.pk: Likewise.
	* testsuite/poke.pkl/sl-3.pk: Likewise.
	* testsuite/poke.pkl/sl-4.pk: Likewise.
	* testsuite/poke.pkl/sl-5.pk: Likewise.
	* testsuite/poke.pkl/sl-6.pk: Likewise.
	* testsuite/poke.pkl/sl-7.pk: Likewise.
	* testsuite/poke.pkl/sl-8.pk: Likewise.

2020-02-11  Jose E. Marchesi  <jemarch@gnu.org>

	* testsuite/poke.pkl/arrays-8.pk: New test
	* testsuite/poke.pkl/arrays-diag-1.pk: Likewise.
	* testsuite/poke.pkl/arrays-diag-2.pk: Likewise.
	* testsuite/poke.pkl/arrays-diag-3.pk: Likewise.

2020-02-10  Jose E. Marchesi  <jemarch@gnu.org>

	* src/pkl-tab.y (array_initializer): Support expressions in .[]
	constructions in array initializers.
	* src/pkl-anal.c (pkl_anal2_ps_array): New handler.
	* src/pkl-trans.c (pkl_trans2_ps_array): Moved from trans1.
	* src/pkl-typify.c (pkl_typify2_ps_ass_stmt): Moved from typify1.
	* testsuite/poke.pkl/arrays-6.pk: New test.

2020-02-08  John Darrington <john@darrington.wattle.id.au>

	* src/pk-editor.c (pk_cmd_editor): Fix memory leak.

2020-02-07  Jose E. Marchesi  <jemarch@gnu.org>

	* src/pvm.jitter: Add comments to instruction definitions.

2020-02-07  Jose E. Marchesi  <jemarch@gnu.org>

	* testsuite/poke.pkl/ass-2.pk: New file.
	* testsuite/poke.pkl/ass-8.pk: Likewise.
	* testsuite/poke.pkl/ass-7.pk: Likewise.
	* testsuite/poke.pkl/ass-6.pk: Likewise.
	* testsuite/poke.pkl/ass-5.pk: Likewise.
	* testsuite/poke.pkl/ass-4.pk: Likewise.
	* testsuite/poke.pkl/ass-3.pk: Likewise.

2020-02-07  Jose E. Marchesi  <jemarch@gnu.org>

	* TODO (fold bconc expressions): Task done.
	(fold array subscripts): Likewise.
	(fold .<< and .>> expressions): Likewise.

2020-02-06  Jose E. Marchesi  <jemarch@gnu.org>

	* src/pkl-ast.h (enum pkl_ast_code): Define PKL_AST_LAST_EXP.

2020-02-06  Jose E. Marchesi  <jemarch@gnu.org>

	* src/pkl-ast.c (pkl_ast_lvalue_p): Fix logic to avoid assignments
	to values.
	* testsuite/poke.pkl/ass-diag-6.pk: New test.
	* testsuite/poke.pkl/ass-1.pk: Likewise
	* testsuite/poke.pkl/ass-diag-7.pk: Likewise..
	* testsuite/poke.pkl/ass-diag-8.pk: Likewise.

2020-02-06  Jose E. Marchesi  <jemarch@gnu.org>

	* src/pkl-fold.c (pkl_fold_ps_cond_exp): New handler.

2020-02-06  Jose E. Marchesi  <jemarch@gnu.org>

	* doc/poke.texi (Conditional Expression): New section.

2020-02-06  Jose E. Marchesi  <jemarch@gnu.org>

	* src/pkl-gen.c (pkl_gen_pr_cond_exp): New handler.
	(pkl_phase_gen): Install handler.
	* testsuite/poke.pkl/cond-exp-1.pk: New file.
	* testsuite/poke.pkl/cond-exp-2.pk: Likewise.

2020-02-05  Jose E. Marchesi  <jemarch@gnu.org>

	* src/pkl-typify.c (pkl_typify1_ps_cond_exp): New handler.
	(pkl_phase_typify1): Install it.
	* src/pkl-tab.y (expression): New rule for the ternary conditional
	operator.
	* src/pkl-promo.c (pkl_promo_ps_cond_exp): New handler.
	(pkl_phase_promo): Install handler.
	* testsuite/poke.pkl/cond-exp-diag-1.pk: New file.
	* testsuite/poke.pkl/cond-exp-diag-3.pk: Likewise.
	* testsuite/poke.pkl/cond-exp-diag-2.pk: Likewise.

2020-02-05  Jose E. Marchesi  <jose.marchesi@oracle.com>

	* testsuite/poke.pkl/structs-diag-1.pk: New test.
	* testsuite/poke.pkl/struct-types-diag-11.pk: Likewise.

2020-02-05  Jose E. Marchesi  <jemarch@gnu.org>

	* src/pkl-promo.c (pkl_promo_ps_map): Add missing ICE.

2020-02-05  Jose E. Marchesi  <jemarch@gnu.org>

	* testsuite/poke.pkl/printf-diag-9.pk: New test.
	* testsuite/poke.pkl/printf-diag-10.pk: Likewise.
	* testsuite/poke.pkl/printf-diag-11.pk: Likewise.
	* testsuite/poke.pkl/printf-diag-12.pk: Likewise.
	* testsuite/poke.pkl/printf-diag-13.pk: Likewise.
	* testsuite/poke.pkl/printf-1.pk: Likewise.
	* testsuite/poke.pkl/printf-18.pk: Likewise.
	* testsuite/poke.pkl/printf-17.pk: Likewise.
	* testsuite/poke.pkl/printf-16.pk: Likewise.
	* testsuite/poke.pkl/printf-15.pk: Likewise.
	* testsuite/poke.pkl/printf-14.pk: Likewise.
	* testsuite/poke.pkl/printf-13.pk: Likewise.
	* testsuite/poke.pkl/printf-12.pk: Likewise.
	* testsuite/poke.pkl/printf-11.pk: Likewise.
	* testsuite/poke.pkl/printf-10.pk: Likewise.
	* testsuite/poke.pkl/printf-9.pk: Likewise.
	* testsuite/poke.pkl/printf-8.pk: Likewise.
	* testsuite/poke.pkl/printf-7.pk: Likewise.
	* testsuite/poke.pkl/printf-6.pk: Likewise.
	* testsuite/poke.pkl/printf-5.pk: Likewise.
	* testsuite/poke.pkl/printf-4.pk: Likewise.
	* testsuite/poke.pkl/printf-3.pk: Likewise.
	* testsuite/poke.pkl/printf-2.pk: Likewise.
	* testsuite/poke.pkl/offset-type-diag-4.pk: Likewise.
	* testsuite/poke.pkl/string-diag-1.pk: Likewise.
	* testsuite/poke.pkl/printf-class-diag-1.pk: Likewise.
	* testsuite/poke.pkl/printf-diag-14.pk: Likewise.
	* testsuite/poke.map/maps-structs-methods-8.pk: Likewise.
	* testsuite/poke.pkl/offset-type-diag-5.pk: Likewise.
	* testsuite/poke.pkl/structs-3.pk: Likewise.
	* testsuite/poke.pkl/structs-2.pk: Likewise.
	* testsuite/poke.pkl/structs-1.pk: Likewise.

2020-02-05  Jose E. Marchesi  <jemarch@gnu.org>

	* testsuite/poke.pkl/attr-size-12.pk: Renamed from attrs.pk
	* testsuite/poke.pkl/attr-size-1.pk: New test.
	* testsuite/poke.pkl/attr-length-5.pk: Likewise.
	* testsuite/poke.pkl/attr-length-4.pk: Likewise.
	* testsuite/poke.pkl/attr-length-3.pk: Likewise.
	* testsuite/poke.pkl/attr-length-2.pk: Likewise.
	* testsuite/poke.pkl/attr-length-1.pk: Likewise.
	* testsuite/poke.pkl/attr-signed-2.pk: Likewise.
	* testsuite/poke.pkl/attr-signed-1.pk: Likewise.
	* testsuite/poke.pkl/attr-magnitude-1.pk: Likewise.
	* testsuite/poke.pkl/attr-unit-1.pk: Likewise.
	* testsuite/poke.pkl/attr-size-11.pk: Likewise.
	* testsuite/poke.pkl/attr-size-10.pk: Likewise.
	* testsuite/poke.pkl/attr-size-9.pk: Likewise.
	* testsuite/poke.pkl/attr-size-8.pk: Likewise.
	* testsuite/poke.pkl/attr-size-7.pk: Likewise.
	* testsuite/poke.pkl/attr-size-6.pk: Likewise.
	* testsuite/poke.pkl/attr-size-5.pk: Likewise.
	* testsuite/poke.pkl/attr-size-4.pk: Likewise.
	* testsuite/poke.pkl/attr-size-3.pk: Likewise.
	* testsuite/poke.pkl/attr-size-2.pk: Likewise.
	* testsuite/poke.pkl/attr-diag-1.pk: Likewise.

2020-02-05  Jose E. Marchesi  <jemarch@gnu.org>

	* testsuite/poke.pkl/strings-4.pk: New test.

2020-02-05  Jose E. Marchesi  <jemarch@gnu.org>

	* testsuite/poke.map/maps-structs-endian-2.pk: New test.
	* src/pkl-gen.pks (struct_field_writer): Honour the struct field
	endianness while writing.

2020-02-05  Jose E. Marchesi  <jemarch@gnu.org>

	* src/pkl-gen.c (pkl_gen_pr_decl): Fix bug that causes to rebuild
	array writers at every usage.

2020-02-05  Jose E. Marchesi  <jemarch@gnu.org>

	* src/pkl-insn.def: Entries for iogetb and iosetb.
	* src/pvm.jitter (iogetb): New instruction.

2020-02-05  Jose E. Marchesi  <jemarch@gnu.org>

	* src/ios.h: Prototypes for ios_get_bias and ios_set_bias.
	* src/ios.c (struct ios): New field `bias'.
	(ios_open): Initialize the IOS bias to 0.
	(ios_get_bias): New function.
	(ios_set_bias): Likewise.
	(ios_read_int): Apply the IOS bias.
	(ios_read_uint): Likewise.
	(ios_read_string): Likewise.
	(ios_write_int): Likewise.
	(ios_write_uint): Likewise.
	(ios_write_string): Likewise.

2020-02-04  Jose E. Marchesi  <jemarch@gnu.org>

	* testsuite/poke.pkl/cdiv-integers-diag-1.pk: New test.

2020-02-04  Jose E. Marchesi  <jemarch@gnu.org>

	* src/pkl-gen.c (pkl_gen_pr_op_or): Normalize result to 1 or 0.
	(pkl_gen_pr_op_and): Likewise.
	* testsuite/poke.pkl/eq-integers-3.pk: New test.
	* testsuite/poke.pkl/eq-integers-4.pk: Likewise.
	* testsuite/poke.pkl/not-5.pk: Likewise.
	* testsuite/poke.pkl/sub-integers-5.pk: Likewise.
	* testsuite/poke.pkl/xor-2.pk: Likewise.
	* testsuite/poke.pkl/ior-2.pk: Likewise.
	* testsuite/poke.pkl/and-14.pk: Likewise.
	* testsuite/poke.pkl/or-5.pk: Likewise.
	* testsuite/poke.pkl/bnot-integers-3.pk: Likewise.
	* testsuite/poke.pkl/bnot-integers-4.pk: Likewise.
	* testsuite/poke.pkl/mod-integers-3.pk: Likewise.
	* testsuite/poke.pkl/cdiv-integers-3.pk: Likewise.
	* testsuite/poke.pkl/div-integers-3.pk: Likewise.
	* testsuite/poke.pkl/ge-integers-4.pk: Likewise.
	* testsuite/poke.pkl/le-integers-4.pk: Likewise.
	* testsuite/poke.pkl/gt-integers-3.pk: Likewise.
	* testsuite/poke.pkl/lt-integers-3.pk: Likewise.
	* testsuite/poke.pkl/ge-offsets-5.pk: Likewise.
	* testsuite/poke.pkl/le-offsets-4.pk: Likewise.
	* testsuite/poke.pkl/lt-offsets-5.pk: Likewise.
	* testsuite/poke.pkl/neq-offsets-5.pk: Likewise.
	* testsuite/poke.pkl/eq-offsets-7.pk: Likewise.
	* testsuite/poke.pkl/gt-offsets-5.pk: Likewise.
	* testsuite/poke.pkl/and-15.pk: Likewise.
	* testsuite/poke.pkl/mul-offsets-10.pk: Likewise.

2020-02-03  Jose E. Marchesi  <jemarch@gnu.org>

	* src/pk-ios.c (ios_cmd): Define.
	(pk_cmd_ios): New function.
	(pk_cmd_file): Do not accept tag arguments.
	(pk_cmd_mem): Likewise.
	* src/pk-cmd.c (ios_cmd): Define.
	(dot_cmds): Add ios_cmd.
	* doc/poke.texi (ios command): New chapter.
	* testsuite/poke.pkl/ios-1.pk: New test.

2020-02-03  Egeyar Bagcioglu  <egeyar@gmail.com>

	* pickles/ctf.pk: Correct the filename on the first line of the file.
	* src/ios-dev-mem.c: Likewise.
	* src/ios.h: Fix typo.

2020-02-03  Jose E. Marchesi  <jemarch@gnu.org>

	* bootstrap.conf (gnulib_modules): Import pmccabe2html module.
	* Makefile.am (cyclo-$(PACKAGE).html): New target.
	* HACKING (Maintenance): Document make cyclo-poke.html.

2020-02-03  Jose E. Marchesi  <jemarch@gnu.org>

	* src/ios-dev-file.c (ios_dev_file_close): Free the IOD structure.
	* src/ios-dev-mem.c (ios_dev_mem_close): Likewise.
	* testsuite/poke.pkl/close-2.pk: New test.

2019-11-06  Darshit Shah  <darnir@gnu.org>

	* src/pk-hserver.c (read_from_client): Fix off by one when terminating
	the string
	* src/pk-file.c (print_info_file): Fix errors introduced when merging
	master into the hyperserver branch.

2019-11-06  Jose E. Marchesi  <jemarch@gnu.org>

	* src/pk-file.c (print_info_file): Use terminal hyperlinks if
	available.

2019-11-06  Jose E. Marchesi  <jemarch@gnu.org>

	* src/pk-hserver.c (pk_hserver_get_token): New function.
	(pk_hserver_make_hyperlink): Likewise.
	(pk_hserver_port): New function.
	* src/pk-repl.c (pk_repl): Emit an hyperlink for .help.
	* src/pk-term.c (pk_term_hyperlink): Fix guard.
	(pk_term_end_hyperlink): Likewise.

2019-11-06  Jose E. Marchesi  <jemarch@gnu.org>

	* src/pk-repl.h: New file.
	* src/pk-repl.c: Likewise.
	* src/Makefile.am (poke_SOURCES): Add pk-repl.h and pk-repl.c.
	* src/poke.c (repl): Remove function.
	(main): Call pk_repl instead of repl.

2019-11-05  Jose E. Marchesi  <jemarch@gnu.org>

	* src/pk-hserver.h: New file.
	* src/pk-hserver.c: Likewise.
	* src/poke.c: Initialize and finalize the hyperlinks server.
	* configure.ac: Add support for --enable-hserver and set the
	HSERVER automake conditional.
	* src/Makefile.am (poke_SOURCES): Add pk-hserver.h and
	pk-hserver.c.
	(poke_LDADD): Link with pthreads if the server is enabled.
	* HACKING (Appendix: The Source Tree): list server files.

2019-11-03  Jose E. Marchesi  <jemarch@gnu.org>

	* bootstrap.conf (gnulib_modules): Import the socket, bind and
	accept modules from gnulib.

2019-11-03  Jose E. Marchesi  <jemarch@gnu.org>,

	* bootstrap.conf (gnulib_modules): Import the `pthread' module
	from gnulib.

2020-02-02  Jose E. Marchesi  <jemarch@gnu.org>

	* testsuite/poke.cmd/copy-5.pk: New test.

2020-02-02  Jose E. Marchesi  <jemarch@gnu.org>

	* src/pk-copy.pk: New file.
	* src/Makefile.am (dist_pkgdata_DATA): Add pk-copy.pk.
	* HACKING (Appendix): Mention pk-copy.pk.
	* src/pk-cmd.c (pk_cmd_init): Load pk-copy.pk.
	* src/pk-save.pk (save): Use copy.
	* testsuite/poke.cmd/copy-1.pk: New test.
	* testsuite/poke.cmd/copy-2.pk: Likewise.
	* testsuite/poke.cmd/copy-3.pk: Likewise.
	* testsuite/poke.cmd/copy-4.pk: Likewise.
	* doc/poke.texi (copy): New chapter.

2020-02-02  Jose E. Marchesi  <jemarch@gnu.org>

	* src/ios-dev-file.c (ios_dev_file_open): Remove handling of
	file://.
	* src/ios-dev-mem.c: New file.
	* src/Makefile.am (poke_SOURCES): Add ios-dev-mem.c.
	* src/ios.c (ios_dev_ifs): Register ios_dev_mem.
	* doc/poke.texi (open): Document memory buffer IOS.
	(info command): Updated.
	* testsuite/poke.pkl/open-2.pk: New file.
	* testsuite/poke.pkl/ios-mem-1.pk: Likewise.
	* testsuite/poke.pkl/ios-mem-2.pk: Likewise.
	* src/pk-misc.c (pk_cmd_mem): New function.
	* src/pk-cmd.c (dot_cmds): Register .mem.
	* src/pk-ios.c: Renamed from pk-file.c.
	* testsuite/poke.cmd/file-mode.pk: Updated.
	* doc/poke.texi (mem command): New chapter.

2020-02-02  Jose E. Marchesi  <jemarch@gnu.org>

	* src/ios-dev.h (IOD_ERROR): Define.
	(IOD_EINVAL): Likewise.
	* src/ios.h (IOS_EFLAGS): Likewise.
	(struct ios_dev_if): Add an `error' argument to `open'.
	* src/ios-dev-file.c (ios_dev_file_open): Adapt to interface
	change.
	* src/ios.c (ios_open): Return IOS_EFLAGS in case of invalid
	flags.
	* src/pvm.h (PVM_E_IOFLAGS): Define.
	* src/pkl-rt.pk (E_io_flags): Likewise.
	(_pkl_exception_handler): Handle E_io_flags.
	* src/pvm.jitter (open): Raise PVM_E_IOFLAGS whenever necessary.

2020-02-02  John Darrington <john@darrington.wattle.id.au>

	* bootstrap.conf (gnulib_modules): Add findprog.
	* src/pk-editor.c (pk_cmd_editor): Default to "sensible-editor"
	if the EDITOR variable is not set.

2020-02-02  Jose E. Marchesi  <jemarch@gnu.org>

	* testsuite/poke.cmd/save-1.pk: New file.

2020-02-02  Jose E. Marchesi  <jemarch@gnu.org>

	* src/pkl-rt.pk (IOS_F_APPEND): Remove.
	* src/ios.h (IOS_F_APPEND): Likewise.
	* src/ios-dev-file.c (ios_dev_file_open): Do not use "a" modes in
	fopen.
	* doc/poke.texi (open): Update.

2020-02-02  Jose E. Marchesi  <jemarch@gnu.org>

	* src/pk-save.pk: New file.
	* src/pk-cmd.c (pk_cmd_init): Load pk-save.pk
	* src/Makefile.am (dist_pkgdata_DATA): Add pk-save.pk.
	* doc/poke.texi (save): New chapter.

2020-02-02  Jose E. Marchesi  <jemarch@gnu.org>

	* src/ios.h (IOS_M_RDONLY): Use parenthesis in macro definition.
	(IOS_M_WRONLY): Likewise.
	(IOS_M_RDWR): Likewise.
	* src/pk-cmd.c (pk_cmd_exec_1): Fix usage of ios_flags.

2020-02-02  Jose E. Marchesi  <jemarch@gnu.org>

	* doc/poke.texi (open): Document the `flags' optional argument to
	open.

2020-02-01  Jose E. Marchesi  <jemarch@gnu.org>

	* src/ios.h (ios_open): Get a flags argument.
	(IOS_F_READ): Define.
	(IOS_F_WRITE): Likewise.
	(IOS_F_APPEND): Likewise.
	(IOS_F_CREATE): Likewise.
	(IOS_F_TRUNCATE): Likewise.
	(IOS_M_RDONLY): Likewise.
	(IOS_M_WRONLY): Likewise.
	(IOS_M_RDWR): Likewise.
	* src/ios.c (ios_open): Likewise.
	* src/pkl-rt.pk (open): get an optional argument for the flags.
	(IOS_F_READ): Define.
	(IOS_F_WRITE): Likewise.
	(IOS_F_APPEND): Likewise.
	(IOS_F_CREATE): Likewise.
	(IOS_M_RDONLY): Likewise.
	(IOS_M_WRONLY): Likewise.
	(IOS_M_RDWR): Likewise.
	* src/pkl-gen.c (pkl_gen_ps_comp_stmt): The `open' instruction now
	takes two arguments.
	* src/pvm.jitter (open): Likewise.
	* src/pk-file.c (print_info_file): Adapt to new flags.

2020-02-01  Jose E. Marchesi  <jemarch@gnu.org>

	* src/pvm.jitter (mka): Initialize non-initialized elements in the
	array.
	* testsuite/poke.pkl/arrays-4.pk: Update to new semantics.
	* testsuite/poke.pkl/arrays-index-1.pk: Likewise.
	* doc/poke.texi (Array Literals): Update.

2020-01-31  Jose E. Marchesi  <jemarch@gnu.org>

	* src/pkl-fold.c (pkl_fold_ps_indexer): New handler.
	(pkl_phase_fold): Register pkl_fold_ps_indexer.
	* testsuite/poke.pkl/strings-index-diag-1.pk: New test.
	* testsuite/poke.pkl/arrays-index-diag-1.pk: Likewise.
	* testsuite/poke.pkl/arrays-index-diag-2.pk: Likewise.
	* testsuite/poke.pkl/strings-index-diag-2.pk: Likewise.
	* testsuite/poke.pkl/arrays-index-diag-3.pk: Likewise.
	* testsuite/poke.pkl/arrays-index-1.pk: Likewise.
	* testsuite/poke.pkl/strings-index-diag-3.pk: Likewise.
	* testsuite/poke.pkl/arrays-2.pk: Adapt to constant folding.
	* testsuite/poke.pkl/arrays-6.pk: Likewise.
	* testsuite/poke.pkl/arrays-8.pk: Likewise.
	* testsuite/poke.pkl/arrays-9.pk: Likewise.
	* testsuite/poke.pkl/arrays-10.pk: Likewise.
	* testsuite/poke.pkl/arrays-11.pk: Likewise.

2020-01-31  Jose E. Marchesi  <jemarch@gnu.org>

	* src/ios.c (ios_read_string): Support reading strings from
	non-byte aligned offsets.
	(ios_write_string): Likewise, for writing.
	* testsuite/poke.map/maps-strings-2.pk: New test.
	* testsuite/poke.map/maps-strings-diag-1.pk: Likewise.
	* testsuite/poke.map/maps-strings-diag-2.pk: Likewise.
	* testsuite/poke.map/maps-strings-diag-4.pk: Likewise.
	* testsuite/poke.map/maps-strings-3.pk: Likewise.

2020-01-31  Jose E. Marchesi  <jemarch@gnu.org>

	* src/pkl-insn.def (PKL_INSN_IOSIZE): New instruction.
	* src/pkl-ast.h (PKL_AST_BUILTIN_IOSIZE): Define.
	* src/pkl-gen.c (pkl_gen_ps_comp_stmt): Handle iosize builtin.
	* src/pkl-lex.l: New token BUILTIN_IOSIZE.
	* src/pkl-rt.pk (iosize): New builtin.
	* src/pkl-tab.y (builtin): Handle the iosize builtin.
	* bootstrap.conf (gnulib_modules): Import `fstat' module.
	* src/ios.h: Prototype for ios_size.
	* src/ios.c (ios_size): Define.
	* src/ios-dev.h (struct ios_dev_if): New IOD operation `size'.
	* src/pvm.jitter (iosize): New instruction.
	* src/ios-dev-file.c (ios_dev_file_size): New function.
	* doc/poke.texi (iosize): New section.
	* testsuite/poke.pkl/iosize-1.pk: New file.
	* testsuite/poke.pkl/iosize-diag-1.pk: Likewise.

2020-01-31  Jose E. Marchesi  <jemarch@gnu.org>

	* src/pkl-insn.def (PKL_INSN_SYNC): Define.
	* src/pvm.c (pvm_run): Install the pvm signal handler to handle
	SIGINT.
	* src/pkl-asm.c (pkl_asm_endloop): Emit a sync instruction before
	branching back.
	(pkl_asm_for_endloop): Likewise.
	* src/pvm.h (PVM_E_SIGNAL): Define.
	* src/pkl-rt.pk (E_signal): Likewise.
	* src/pvm.jitter (sync): New instruction.
	(exit): Clear signals before exiting the PVM.
	(late-c): Define pvm_handle_signal.
	* HACKING (Signal Handling): New section.

2020-01-31  Jose E. Marchesi  <jemarch@gnu.org>

	* HACKING: Add Bruno Haible to the Write After Approval list.

2020-01-28  Darshit Shah  <darnir@gnu.org>

	* bootstrap.conf: Update minimum required Automake to 1.14
	Downgrade minimum required flex to 2.5.37
	Add makeinfo as a build dependency

2020-01-24  Jose E. Marchesi  <jemarch@gnu.org>

	* testsuite/poke.pkl/sl-2.pk: New test.
	* testsuite/poke.pkl/sl-8.pk: Likewise.
	* testsuite/poke.pkl/sl-7.pk: Likewise.
	* testsuite/poke.pkl/sl-6.pk: Likewise.
	* testsuite/poke.pkl/sl-5.pk: Likewise.
	* testsuite/poke.pkl/sl-4.pk: Likewise.
	* testsuite/poke.pkl/sl-3.pk: Likewise.

2020-01-17  Jose E. Marchesi  <jemarch@gnu.org>

	* src/pkl-tab.y (function_type_specifier): Fix definition to not
	allow trailing commas.
	(function_type_arg_list): The list of arguments can't be empty.
	* etc/poke.g4: Likewise.
	* testsuite/poke.pkl/fun-types-diag-2.pk: New test.

2020-01-17  Jose E. Marchesi  <jemarch@gnu.org>

	* etc/poke.g4: New file.
	* HACKING (Appendix): Add mention to etc/poke.g4.
	(Grammarinator): New section.

2020-01-17  Jose E. Marchesi  <jemarch@gnu.org>

	* src/pvm-val.c (pvm_print_binary): Make non-static.
	* src/pvm-val.h: Prototype for pvm_print_binary.
	* src/pvm.jitter (PVM_PRINTI): Handle binary output.
	(PVM_PRINTL): Likewise.
	* testsuite/poke.pkl/printf-binary-1.pk: New test.
	* testsuite/poke.pkl/printf-binary-4.pk: Likewise.
	* testsuite/poke.pkl/printf-binary-3.pk: Likewise.
	* testsuite/poke.pkl/printf-binary-2.pk: Likewise.

2020-01-18 John Darrington <john@darrington.wattle.id.au>

	* configure.ac (AC_INIT): Change email address to poke-devel@gnu.org
	* bootstrap.conf: Remove MSGID_BUGS_ADDRESS
	* po/poke.pot: regenerate

2020-01-16  Jose E. Marchesi  <jemarch@gnu.org>

	* src/pk-dump.pk (dump): Add new argument ios and use it in the
	maps.
	* doc/poke.texi (dump): Document the :ios option.
	* testsuite/poke.cmd/dump-8.pk: New test.

2020-01-16  Jose E. Marchesi  <jemarch@gnu.org>

	* src/poke.c (pk_print_version): Update copyright years.

2020-01-18 John Darrington <john@darrington.wattle.id.au>

	* src/pk-repl.c (poke_getc): Use xzalloc instead of xmalloc.
	* src/pkl-ast.c (pkl_ast_make_node): ditto
	* src/pkl-env.c (pkl_env_new): ditto
	* src/pkl-parser.c (pkl_parser_init): ditto
	* src/pkl.c (pkl_new): ditto
	* src/pvm.c (pvm_init): ditto

2020-01-16  Darshit Shah  <darnir@gnu.org>

	* bootstrap.conf: Set --skip-po to be the default option.
	* testsuite/poke.map/maps-arrays-19.pk: Extend test to ensure e_EOF is
	thrown when reading through End-of-File.

2020-01-16  Jose E. Marchesi  <jemarch@gnu.org>

	* testsuite/poke.map/maps-arrays-19.pk: Fix test logic.

2020-01-18 John Darrington <john@darrington.wattle.id.au>

	* src/pkl.c: Use std macro for bug report address.

2020-01-14  Jose E. Marchesi  <jemarch@gnu.org>

	* src/pkl-anal.c (pkl_anal2_ps_offset): Remove unused local
	variable.

2020-01-14  Jose E. Marchesi  <jemarch@gnu.org>

	* HACKING (Using data files in tests): New section.
	(Writing tests that depend on a certain capability): Likewise.
	* testsuite/lib/poke-dg.exp (dg-require): Add a note.

2020-01-14  Jose E. Marchesi  <jemarch@gnu.org>

	* TODO: New task.

2020-01-14  Jose E. Marchesi  <jemarch@gnu.org>

	* src/pkl-typify.c (pkl_typify1_ps_trimmer): check that the
	operator of a trimming operation is either an array or a string.
	* testsuite/poke.pkl/trim-diag-5.pk: New test.

2020-01-14  Jose E. Marchesi  <jemarch@gnu.org>

	* src/pkl-typify.c (pkl_typify1_ps_struct_type_field): struct
	fields cannot be of type `any' nor `void'.
	* testsuite/poke.pkl/struct-types-diag-9.pk: New test.
	* testsuite/poke.pkl/struct-types-diag-10.pk: Likewise.

2020-01-14  Jose E. Marchesi  <jemarch@gnu.org>

	* src/pkl-pass.h (PKL_PASS_SUBPASS): fix detection of error when
	calling pkl_do_subpass.

2020-01-14  Jose E. Marchesi  <jemarch@gnu.org>

	* src/pkl.c (pkl_ice): do not dump files in /etc if --quiet is
	used in the command line.

2020-01-14  Jose E. Marchesi  <jemarch@gnu.org>

	* src/pkl-typify.c (pkl_typify1_ps_op_boolean): make sure the
	arguments to relational operators are integral.
	* testsuite/poke.pkl/and-diag-1.pk: New test.
	* testsuite/poke.pkl/xor-diag-1.pk: Likewise.
	* testsuite/poke.pkl/or-diag-1.pk: Likewise.

2020-01-13  Jose E. Marchesi  <jemarch@gnu.org>

	* src/pkl-tab.y: Do not try to pop lexical frames in <ast>
	destructors.

2020-01-13  Jose E. Marchesi  <jemarch@gnu.org>

	* src/pkl-typify.c (pkl_typify1_ps_cast): Casting to/from void is
	not allowed.
	* testsuite/poke.pkl/cast-void-diag-1.pk: New test.

2020-01-13  Jose E. Marchesi  <jemarch@gnu.org>

	* src/pkl-typify.c (pkl_typify1_ps_first_operand): Check the type
	of the operand for NEG, POS and BNOT.
	* testsuite/poke.pkl/neg-diag-1.pk: New test.
	* testsuite/poke.pkl/bnot-diag-1.pk: Likewise.
	* testsuite/poke.pkl/pos-diag-1.pk: Likewise.

2020-01-13  Jose E. Marchesi  <jemarch@gnu.org>

	* src/pkl-insn.def (PKL_INSN_OSETM): Define.
	* src/pvm.jitter (osetm): new instruction.
	* src/pkl-gen.c (pkl_gen_ps_op_intexp): Adapt to offsets.
	* src/pkl-asm.c (pkl_asm_insn_intop): Likewise.
	* testsuite/poke.pkl/neg-offsets-1.pk: New test.
	* testsuite/poke.pkl/bnot-offsets-1.pk: Likewise.
	* testsuite/poke.pkl/bnot-integers-1.pk: Renamed from bnot-1.pk
	* testsuite/poke.pkl/bnot-integers-2.pk: Likewise.

2020-01-13  Jose E. Marchesi  <jemarch@gnu.org>

	* src/pkl-typify.c (pkl_typify1_ps_cast): Check casts from arrays.
	* testsuite/poke.pkl/cast-array-diag-8.pk: New file.

2020-01-13  Jose E. Marchesi  <jemarch@gnu.org>

	* src/pkl-fold.c (pkl_fold_cdiv): Fix detection of division by zero
	for offsets with implicit magnitudes.
	(pkl_fold_div): Likewise.
	* testsuite/poke.pkl/cdiv-offsets-3.pk: New file.
	* testsuite/poke.pkl/div-offsets-4.pk: Likewise.

2020-01-13  Jose E. Marchesi  <jemarch@gnu.org>

	* src/pkl-fold.c (pkl_fold_mod): Fix detection of division by zero
	for offsets with implicit magnitudes.
	* testsuite/poke.pkl/mod-offsets-5.pk: New file.

2020-01-13  Jose E. Marchesi  <jemarch@gnu.org>

	* src/pkl-anal.c (pkl_anal1_ps_offset): New handler.
	(pkl_phase_anal1): Add handler.
	* testsuite/poke.pkl/offset-type-diag-3.pk: New test.
	* testsuite/poke.pkl/offsets-diag-2.pk: Likewise.
	* doc/poke.texi (Offset Literals): Document that the unit of
	offsets shall be bigger than 0.

2020-01-13  Jose E. Marchesi  <jemarch@gnu.org>

	* TODO: Several updates.

2020-01-13  Jose E. Marchesi  <jemarch@gnu.org>

	* src/pk-file.c (print_info_file): Use the IO's id as tags.
	(pk_cmd_info_files): Adapt accordingly.
	* testsuite/poke.cmd/file-mode.pk: Adjust accordingly.

2020-01-13  Jose E. Marchesi  <jemarch@gnu.org>

	* src/pkl-lex.l: Ignore form feed characters.
	* testsuite/poke.pkl/formfeedchar.pk: New file.
	* doc/poke.texi (Comments): New chapter.

2020-01-12  Jose E. Marchesi  <jemarch@gnu.org>

	* src/pvm-val.c (pvm_print_val): Fix printing of hexadecimal
	values with odd widths.
	* testsuite/poke.map/maps-uint-19.pk: Test for the above.

2020-01-12 John Darrington <john@darrington.wattle.id.au>

	* doc/poke.texi: Fixed various typos.

2020-01-12 Egeyar Bagcioglu <egeyar@gmail.com>

	* src/ios.c (ios_get): Remove.
	* src/ios.h (ios_get): Likewise.
	* src/pk-file.c (pk_cmd_file): Replace the bogus call to ios_get
	with ios_search_by_id.
	(pk_cmd_close): Replace the bogus call to ios_get with
	ios_search_by_id.

2020-01-12  Jose E. Marchesi  <jemarch@gnu.org>

	* testsuite/poke.pkl/chars-1.pk: New file.
	* testsuite/poke.pkl/chars-8.pk: Likewise.
	* testsuite/poke.pkl/chars-7.pk: Likewise.
	* testsuite/poke.pkl/chars-6.pk: Likewise.
	* testsuite/poke.pkl/chars-5.pk: Likewise.
	* testsuite/poke.pkl/chars-4.pk: Likewise.
	* testsuite/poke.pkl/chars-3.pk: Likewise.
	* testsuite/poke.pkl/chars-9.pk: Renamed from chars.pk

2020-01-12  Jose E. Marchesi  <jemarch@gnu.org>

	* src/pkl-lex.l (CHAR): Allow '\r' as character literals.
	* testsuite/poke.pkl/chars-2.pk: New file.

2020-01-12  Jose E. Marchesi  <jemarch@gnu.org>

	* src/ios.c (ios_read_string): Fix detection of EOF.

2020-01-12 Egeyar Bagcioglu <egeyar@gmail.com>

	* src/ios.c (ios_open): Add argument set_cur to control making
	the newly opened IO space the current IO space.
	* src/ios.h (ios_open): Add the new argument, set_cur.
	* src/poke.c (parse_args): Call ios_open with set_cur 1.
	* src/pk-file.c (pk_cmd_file): Likewise.
	* src/pvm.jitter (instruction open): Call ios_open with set_cur 0.
	* testsuite/poke.pkl/close-1.pk: Adjust.
	* testsuite/poke.pkl/set-ios-1.pk: Likewise.

2020-01-12 Egeyar Bagcioglu <egeyar@gmail.com>

	* src/pkl-gen.c (pkl_gen_ps_comp_stmt): Remove PKL_INSN_RETURN from
	PKL_AST_BUILTIN_CLOSE which returns void.
	* src/pvm.jitter (close): Add JITTER_DROP_STACK.

2020-01-11 Egeyar Bagcioglu <egeyar@gmail.com>

	* src/ios.c (ios_write_int_common): Add specifiers "static inline".

2020-01-05  Jose E. Marchesi  <jemarch@gnu.org>

	* src/ras: Stop claiming posix compatibility both as the current
	state and a goal.

2020-01-05  Jose E. Marchesi  <jemarch@gnu.org>

	* bootstrap.conf (gnulib_modules): Import module
	`update-copyright'.

2020-01-03 Egeyar Bagcioglu <egeyar@gmail.com>

	* testsuite/poke.map/maps-uint-write-01.pk: New test.
	* testsuite/poke.map/maps-uint-write-02.pk: Likewise.
	* testsuite/poke.map/maps-uint-write-03.pk: Likewise.
	* testsuite/poke.map/maps-uint-write-04.pk: Likewise.
	* testsuite/poke.map/maps-uint-write-05.pk: Likewise.
	* testsuite/poke.map/maps-uint-write-06.pk: Likewise.
	* testsuite/poke.map/maps-uint-write-07.pk: Likewise.
	* testsuite/poke.map/maps-uint-write-08.pk: Likewise.
	* testsuite/poke.map/maps-uint-write-09.pk: Likewise.
	* testsuite/poke.map/maps-uint-write-10.pk: Likewise.
	* testsuite/poke.map/maps-uint-write-11.pk: Likewise.
	* testsuite/poke.map/maps-uint-write-12.pk: Likewise.
	* testsuite/poke.map/maps-uint-write-13.pk: Likewise.
	* testsuite/poke.map/maps-uint-write-14.pk: Likewise.
	* testsuite/poke.map/maps-uint-write-15.pk: Likewise.
	* testsuite/poke.map/maps-uint-write-16.pk: Likewise.
	* testsuite/poke.map/maps-uint-write-17.pk: Likewise.
	* testsuite/poke.map/maps-uint-write-18.pk: Likewise.
	* testsuite/poke.map/maps-uint-write-19.pk: Likewise.
	* testsuite/poke.map/maps-uint-write-20.pk: Likewise.
	* testsuite/poke.map/maps-uint-write-21.pk: Likewise.
	* testsuite/poke.map/maps-uint-write-22.pk: Likewise.
	* testsuite/poke.map/maps-uint-write-23.pk: Likewise.
	* testsuite/poke.map/maps-uint-write-24.pk: Likewise.
	* testsuite/poke.map/maps-uint-write-25.pk: Likewise.
	* testsuite/poke.map/maps-uint-write-26.pk: Likewise.
	* testsuite/poke.map/maps-uint-write-27.pk: Likewise.
	* testsuite/poke.map/maps-uint-write-28.pk: Likewise.
	* testsuite/poke.map/maps-uint-write-29.pk: Likewise.
	* testsuite/poke.map/maps-uint-write-30.pk: Likewise.
	* testsuite/poke.map/maps-uint-write-31.pk: Likewise.
	* testsuite/poke.map/maps-uint-write-32.pk: Likewise.
	* testsuite/poke.map/maps-uint-write-33.pk: Likewise.
	* testsuite/poke.map/maps-uint-write-34.pk: Likewise.
	* testsuite/poke.map/maps-uint-write-35.pk: Likewise.
	* testsuite/poke.map/maps-uint-write-36.pk: Likewise.
	* testsuite/poke.map/maps-uint-write-37.pk: Likewise.
	* testsuite/poke.map/maps-uint-write-38.pk: Likewise.
	* testsuite/poke.map/maps-uint-write-39.pk: Likewise.
	* testsuite/poke.map/maps-uint-write-40.pk: Likewise.
	* testsuite/poke.map/maps-uint-write-41.pk: Likewise.
	* testsuite/poke.map/maps-uint-write-42.pk: Likewise.
	* testsuite/poke.map/maps-uint-write-43.pk: Likewise.
	* testsuite/poke.map/maps-uint-write-44.pk: Likewise.
	* testsuite/poke.map/maps-uint-write-45.pk: Likewise.
	* testsuite/poke.map/maps-uint-write-46.pk: Likewise.
	* testsuite/poke.map/maps-uint-write-47.pk: Likewise.
	* testsuite/poke.map/maps-uint-write-48.pk: Likewise.
	* testsuite/poke.map/maps-uint-write-49.pk: Likewise.
	* testsuite/poke.map/maps-uint-write-50.pk: Likewise.
	* testsuite/poke.map/maps-uint-write-51.pk: Likewise.
	* testsuite/poke.map/maps-uint-write-52.pk: Likewise.
	* testsuite/poke.map/maps-uint-write-53.pk: Likewise.
	* testsuite/poke.map/maps-uint-write-54.pk: Likewise.
	* testsuite/poke.map/maps-uint-write-55.pk: Likewise.
	* testsuite/poke.map/maps-uint-write-56.pk: Likewise.
	* testsuite/poke.map/maps-uint-write-57.pk: Likewise.
	* testsuite/poke.map/maps-uint-write-58.pk: Likewise.
	* testsuite/poke.map/maps-uint-write-59.pk: Likewise.
	* testsuite/poke.map/maps-uint-write-60.pk: Likewise.
	* testsuite/poke.map/maps-uint-write-61.pk: Likewise.
	* testsuite/poke.map/maps-uint-write-62.pk: Likewise.
	* testsuite/poke.map/maps-uint-write-63.pk: Likewise.
	* testsuite/poke.map/maps-uint-write-64.pk: Likewise.
	* testsuite/poke.map/maps-uint-write-65.pk: Likewise.
	* testsuite/poke.map/maps-uint-write-66.pk: Likewise.
	* testsuite/poke.map/maps-uint-write-67.pk: Likewise.
	* testsuite/poke.map/maps-uint-write-68.pk: Likewise.
	* testsuite/poke.map/maps-uint-write-69.pk: Likewise.
	* testsuite/poke.map/maps-uint-write-70.pk: Likewise.
	* testsuite/poke.map/maps-uint-write-71.pk: Likewise.
	* testsuite/poke.map/maps-uint-write-72.pk: Likewise.
	* testsuite/poke.map/maps-uint-write-73.pk: Likewise.
	* testsuite/poke.map/maps-uint-write-74.pk: Likewise.

2020-01-03 Egeyar Bagcioglu <egeyar@gmail.com>

	* src/ios.c (IOS_PUT_C_ERR_CHCK): New macro.
	(ios_write_int_fast): New function.
	(ios_write_int_common): Likewise.
	(ios_write_int): Rewrite.
	(ios_write_uint): Rewrite.

2020-01-03 Egeyar Bagcioglu <egeyar@gmail.com>

	* src/ios.c (ios_mask_first_byte): Replace this function with ...
	(IOS_CHAR_GET_LSB): ... this macro.
	(ios_mask_last_byte): Replace this function with ...
	(IOS_CHAR_GET_MSB): ... this macro.
	(ios_read_int_common): Replace the calls to ios_mask_first_byte
	and ios_mask_last_byte with IOS_CHAR_GET_LSB and
	IOS_CHAR_GET_MSB, respectively.

2019-12-29 John Darrington <john@darrington.wattle.id.au>

	* src/ios-dev-file.c (ios_dev_file_open): Use a more reliable
	method to determine the file's mode.
	(ios_dev_file_get_mode): New function.
	* src/ios-dev.h (struct ios_dev_if) [get_mode]: New member.
	* src/ios.c (ios_mode): Use method from implementation.
	* src/ios.h (IOS_M_RDONLY): New macro.
	* testsuite/poke.cmd/file-mode.pk: New file.

2019-12-22 John Darrington <john@darrington.wattle.id.au>

	* src/pkl.c (pkl_ast): Fix bugs dealing with path search.

2019-12-22 John Darrington <john@darrington.wattle.id.au>

	* src/pk-cmd.c (pk_cmd_exec_1): Properly initialise argc
	instead of relying on subsequent assignment.

2019-12-21 John Darrington <john@darrington.wattle.id.au>

	* src/pk-file.c (pk_cmd_file): Fix memory leaks and
	check for failures on opening file.

2019-12-21  Jose E. Marchesi  <jemarch@gnu.org>

	* src/std.pk (days_in_month): Simplify the code a bit.

2019-12-16  Dan Čermák  <dan.cermak@cgc-instruments.com>

	* src/pk-repl.c (pk_repl): fix memory leak of poke_history
	* src/pk-cmd.c (pk_cmd_exec): fix memory leak of ecmd
	* src/pk-cmd.c (pk_cmd_exec_1): fix memory leak of filename
	* src/pk-cmd.c (null_cmd): properly initialize struct

2019-12-15 John Darrington <john@darrington.wattle.id.au>

	*src/ios.c (ios_mask_last_byte) simplify
	*src/ios.c (ios_mask_first_byte) simplify

2019-12-16  Jose E. Marchesi  <jemarch@gnu.org>

	* src/pkl-asm.pks (atrim): The mka instruction expects the type of
	the array, not the type of the elements stored in the array.
	* testsuite/poke.pkl/trim-25.pk: New test.

2019-12-15 John Darrington <john@darrington.wattle.id.au>

	* doc/poke.texi (Date and Time Functions): New chapter.
	* src/std.pk (posix_time32): New type.
	* testsuite/poke.std/time32.pk: New file.

2019-12-15 John Darrington <john@darrington.wattle.id.au>

	* doc/poke.texi (Scripts): Elaborate on what scripts are
	(and what they are not).

2019-12-13  Jose E. Marchesi  <jemarch@gnu.org>

	* src/pkl-typify.c (pkl_typify1_ps_ass_stmt): Remove obsolete
	check.
	* testsuite/poke.pkl/ass-function-1.pk: New test.

2019-12-13  Dan Čermák  <dan.cermak@posteo.net>

	* src/pkl-env.c (hash_string): Avoid overflow of signed integers
	in hash calculation.

2019-12-13  Dan Čermák  <dan.cermak@posteo.net>

	* src/pk-cmd.c (pk_cmd_get_next_match): Fix buffer overflow.

2019-12-12  Dan Čermák  <dan.cermak@posteo.net>

	* src/pkl-ast.c (pkl_print_type): Fix call to fprintf to use "%s"
	to print a non-constant string.

2019-12-10  Jose E. Marchesi  <jemarch@gnu.org>

	* src/pkl-ast.c (pkl_ast_type_is_complete): Struct types having
	fields with labels are no complete types.
	(pkl_ast_sizeof_type): Assert if a struct type with field labels
	is not marked as complete.
	* testsuite/poke.pkl/offsets-diag-1.pk: New test.

2019-12-08 John Darrington <john@darrington.wattle.id.au>

	* src/pkl-lex. (CHAR): Accept \\ as a CHAR token.
	* testsuite/poke.pkl/chars.pk: Add new test.
	* doc/poke.texi (Characters): Document new escape sequence.

2019-12-01 John Darrington <john@darrington.wattle.id.au>

	* doc/poke.texi (Offset Literals):  Change the example to agree with the text.

2019-12-10  Jose E. Marchesi  <jemarch@gnu.org>

	* src/pkl-typify.c (pkl_typify1_ps_mul): Do not accept multiplying
	strings.
	* testsuite/poke.pkl/mul-strings-diag-1.pk: New test.

2019-12-10  Jose E. Marchesi  <jemarch@gnu.org>

	* src/pkl-tab.y (offset_type_specifier): Allow integer literals as
	offset units.
	* src/pkl-anal.c (pkl_anal1_ps_type_offset): New handler.
	(pkl_phase_anal1): Install handler.
	* testsuite/poke.pkl/casts-offsets-4.pk: New test.
	* testsuite/poke.pkl/cast-offsets-diag-3.pk: Likewise.
	* doc/poke.texi (Offset Types): Mention using integers as offset
	type units.

2019-12-09  Jose E. Marchesi  <jemarch@gnu.org>

	* src/pk-cmd.h: Document the value returned by pk_cmd_exec.
	* src/pk-cmd.c (pk_cmd_exec_script): Fix the value returned by the
	function to match the function prototype documentation.
	* src/poke.c (parse_args): Improve the check for the result value
	of pk_cmd_exec_script.
	(initialize_user): Likewise.

2019-12-05  Jose E. Marchesi  <jemarch@gnu.org>

	* src/pkl.c (pkl_ice): Use an hyperlink for the bug report
	address.
	* src/pkl-asm.c (pkl_asm_catch): Remove obsolete comment.
	* src/pkl-env.c (pkl_env_dup_toplevel): Likewise.

2019-12-05  Jose E. Marchesi  <jemarch@gnu.org>

	* src/pkl-insn.def: New instruction ASETO.
	* src/pvm.jitter (aseto): Define.

2019-12-05  Jose E. Marchesi  <jemarch@gnu.org>

	* src/pkl-typify.c (pkl_typify1_ps_cast): Detect invalid casts,
	and diagnose them.
	* testsuite/poke.pkl/cast-struct-diag-1.pk: New test.
	* testsuite/poke.pkl/cast-offsets-diag-2.pk: Likewise.
	* testsuite/poke.pkl/cast-offsets-diag-1.pk: Likewise.
	* testsuite/poke.pkl/cast-str-diag-1.pk: Likewise.
	* testsuite/poke.pkl/cast-struct-diag-2.pk: Likewise.

2019-12-05  Jose E. Marchesi  <jemarch@gnu.org>

	* src/pkl-fold.c: Define cdivo semantic routines for UUU and III
	cases.
	(pkl_fold_cdiv): Fold /^ operations on offsets.

2019-12-05  Jose E. Marchesi  <jemarch@gnu.org>

	* testsuite/poke.pkl/offset-arg-1.pk: New test.
	* testsuite/poke.pkl/offset-arg-2.pk: Likewise.

2019-12-05  Jose E. Marchesi  <jemarch@gnu.org>

	* src/pkl-fold.c: Define pkl_fold_gcd using gnulib's <gcd.c.>
	(EMUL_UUU): Define for gcd.
	(pkl_fold_gcd): Define handler.
	(pkl_phase_fold): Register handler.
	(OP_BINARY_OOI): Make sure operands are offsets
	before accessing their magnitude/units.
	(OP_BINARY_OOO): Likewise.
	(OP_BINARY_OOI): Fix handling of base_type.

	* src/pkl-promo.c (promote_offset): Support non-integer units.
	(pkl_promo_ps_op_div): Adjust to new API.
	(pkl_promo_ps_op_add_sub_mod): Likewise.
	(pkl_promo_ps_op_mul): Likewise.
	(pkl_promo_ps_op_rela): Likewise.
	(pkl_promo_ps_type_array): Likewise.
	(pkl_promo_ps_ass_stmt): Likewise.
	(pkl_promo_ps_funcall): Likewise.
	(pkl_promo_ps_return_stmt): Likewise.
	(pkl_promo_ps_func_arg): Likewise.
	(pkl_promo_ps_map): Likewise.
	(pkl_promo_ps_struct_type_field): Likewise.
	(pkl_promo_ps_op_in): Likewise.
	* src/pkl-ops.def: Define PKL_AST_OP_GCD.
	* src/pkl-typify.c (CASE_OFFSET): Use pkl_ast_make_binary_exp and
	do not assume the unit types are integers, but avoid superfluous
	casts whenever possible.
	(CASE_OFFSET): Likewise.
	* src/pkl.c (rest_of_compilation): Run a constant folding phase at
	the beginning of the middle end pass.
	* testsuite/poke.pkl/add-offsets-9.pk: New test.
	* testsuite/poke.pkl/eq-offsets-6.pk: Likewise.
	* testsuite/poke.pkl/eq-offsets-5.pk: Likewise.
	* testsuite/poke.pkl/mod-offsets-4.pk: Likewise.
	* testsuite/poke.pkl/mod-offsets-3.pk: Likewise.
	* testsuite/poke.pkl/div-offsets-3.pk: Likewise.
	* testsuite/poke.pkl/div-offsets-2.pk: Likewise.
	* testsuite/poke.pkl/mul-offsets-9.pk: Likewise.
	* testsuite/poke.pkl/sub-offsets-8.pk: Likewise.
	* testsuite/poke.pkl/sub-offsets-7.pk: Likewise.
	* testsuite/poke.pkl/add-offsets-10.pk: Likewise.

2019-12-01 John Darrington <john@darrington.wattle.id.au>

	* bootstrap.conf: Remove "system"

2019-12-04  Jose E. Marchesi  <jemarch@gnu.org>

	* src/pkl-gen.c (pkl_gen_pr_type_array): Do not calculate the
	array bound when building array types.
	* testsuite/poke.map/maps-arrays-18.pk: New test.

2019-12-04  Jose E. Marchesi  <jemarch@gnu.org>

	* src/pkl-trans.c (pkl_phase_transl): Install
	pkl_transl_{pr,ps}_map handlers for struct type fields.
	(pkl_transl_pr_type_struct): Only break the pass when into a map.
	* testsuite/poke.map/maps-arrays-17.pk: New test.

2019-12-04  Jose E. Marchesi  <jemarch@gnu.org>

	* src/pkl-typify.c (pkl_typify1_ps_if_stmt): New handler.
	(pkl_phase_typify1): Install it.
	* testsuite/poke.pkl/if-diag-1.pk: New test.
	* testsuite/poke.pkl/if-diag-2.pk: Likewise.
	* testsuite/poke.pkl/if-diag-3.pk: Likewise.

2019-12-03  Jose E. Marchesi  <jemarch@gnu.org>

	* pickles/elf.pk (Elf64_Sym): New type.
	(STB_LOCAL): New variable.
	(STB_GLOBAL): Likewise.
	(STB_WEAK): Likewise.
	(STB_LOOS): Likewise.
	(STB_HIOS): Likewise.
	(STB_LOPROC): Likewise.
	(STB_HIPROC): Likewise.
	(STV_DEFAULT): Likewise.
	(STV_INTERNAL): Likewise.
	(STV_HIDDEN): Likewise.
	(STV_PROTECTED): Likewise.

2019-12-01 John Darrington <john@darrington.wattle.id.au>

	* doc/poke.texi (dump): Numerous minor changes.

2019-12-01 Luca Saiu <positron@gnu.org>

	* src/pkl-insn.def (PKL_INSN_TUCK): Define new instruction.
	* src/pvm.jitter (rot, nrot): Simplify definition using Jitter
	macro.
	(tuck): New instruction.
	(revn): Add specialized arguments.  Use unsigned JITTER_ARGU0 to
	catch bugs more easily.
	(swap-over-to-tuck): New rewrite rule.
	(rot-swap-to-quake): Re-introduce deleted rewrite rule, which was
	actually correct.
	* pkl-asm.pks (remap, write, addo, subo, mulo, divo, modo, atrim)
	(cdivo, ais, bconc): Simplify and optimize using new instructions.
	* src/pkl-gen.pks (struct_field_mapper): Likewise.

2019-12-01 John Darrington <john@darrington.wattle.id.au>

	* src/pk_dump.pk (dump): New parameter cluster_by

2019-12-01 John Darrington <john@darrington.wattle.id.au>

	* doc/poke.texi (dump): Document the dump command.

2019-11-30 John Darrington <john@darrington.wattle.id.au>

	* testsuite/poke.std/crc32.pk: New file.

2019-11-30 John Darrington <john@darrington.wattle.id.au>

	* src/pk-cmd.c (pk_cmd_find):  Use STREQ instead of strcmp.

2019-11-29  Jose E. Marchesi  <jemarch@gnu.org>

	* src/pkl-gen.c (pkl_gen_pr_map): Fix bug in optimization.
	* testsuite/poke.pkl/map-offset-expr-1.pk: New test.

2019-11-29  Jose E. Marchesi  <jemarch@gnu.org>

	* src/pkl-asm.pks (atrim): Fix calculation of the resulting mapped
	array offset.
	* testsuite/poke.map/maps-trims-1.pk: New test.

2019-11-29  Jose E. Marchesi  <jemarch@gnu.org>

	* src/pvm.jitter (siz): Modify to generate a bit-offset in an
	ulong<64> instead of an offset.
	* src/pkl-gen.pks (off_plus_sizeof): Remove.
	(array_mapper): Adapt accordingly.
	(array_valmapper): Likewise.
	(struct_field_mapper): Likewise.
	* src/pkl-asm.pks (array_conv_siz): Likewise.
	* src/pkl-gen.c (pkl_gen_ps_op_attr): Likewise.

2019-11-29  Jose E. Marchesi  <jemarch@gnu.org>

	* src/pkl-gen.pks (array_valmapper): Adapt to bit-offsets.

2019-11-29  Jose E. Marchesi  <jemarch@gnu.org>

	* src/pkl-asm.pks (atrim): Adapt to bit-offsets.

2019-11-29  Jose E. Marchesi  <jemarch@gnu.org>

	* src/pkl-gen.c (pkl_gen_ps_op_attr): Convert the value returned
	by mgeto to an offset value.

2019-11-29  Jose E. Marchesi  <jemarch@gnu.org>

	* src/pvm-val.c (pvm_sizeof): Struct fields now store bit-offsets
	instead of offsets.

2019-11-29  Jose E. Marchesi  <jemarch@gnu.org>

	* src/pkl-gen.c (pkl_gen_pr_type_offset): Fix regression.

2019-11-29  Jose E. Marchesi  <jemarch@gnu.org>

	* src/pkl-gen.c (pkl_gen_pr_type_array): Convert sbounds in maps
	to bit-offsets.

2019-11-29  Jose E. Marchesi  <jemarch@gnu.org>

	* src/pkl-gen.pks (struct_writer): Adapt to bit-offsets.
	(struct_field_writer): Likewise.
	(array_writer): Likewise.

2019-11-29  Jose E. Marchesi  <jemarch@gnu.org>

	* src/pkl-gen.pks (struct_mapper): Use bit-offsets for the struct
	offsets.
	(struct_field_mapper): Likewise.
	(handle_struct_field_label): Likewise.
	(off_plus_sizeof): Likewise.

2019-11-29  Jose E. Marchesi  <jemarch@gnu.org>

	* src/pkl-gen.pks (array_mapper): Use bit-offsets for the array
	offsets and for sbound.

2019-11-29  Jose E. Marchesi  <jemarch@gnu.org>

	* src/pkl-gen.c (pkl_gen_pr_map): Convert map argument to
	bit-offset.
	(pkl_gen_pr_ass_stmt): Likewise.
	(pkl_gen_pr_type_offset): Do not convert to bit-offset.
	(pkl_gen_ps_type_integral): Likewise.
	(pkl_gen_ps_type_string): Likewise.
	* src/pvm.jitter: Remove invalid rot-swap-to-quake rewrite.

2019-11-29  Jose E. Marchesi  <jemarch@gnu.org>

	* src/pvm.jitter: Update comments to reflect that peek/poke
	instructions get bit-offsets, not regular offsets.

2019-11-24 John Darrington <john@darrington.wattle.id.au>
            * src/pk-file (pk_file_readable): New function.
            (pk_cmd_load_file): Use it to check files before
            opening.

2019-11-24 John Darrington <john@darrington.wattle.id.au>

	* src/pk-term.c: Remove unnecessary #include <sys/stat.h>

2019-11-28  Jose E. Marchesi  <jemarch@gnu.org>

	* testsuite/lib/poke-dg.exp (dg-data): Avoid appending duplicated
	file names to poke_data_files.
	(poke_finish): Fix deleting the temporary files.

2019-11-28  Jose E. Marchesi  <jemarch@gnu.org>

	* src/pvm.jitter: Add ios_write_string to the list of wrapped
	functions.
	(pokes): Implement instruction.
	* src/ios.c (ios_write_string): Implement.
	* testsuite/poke.map/ass-map-3.pk: New test.
	* testsuite/poke.map/ass-map-4.pk: Likewise.
	* testsuite/poke.map/ass-map-5.pk: Likewise.

2019-11-28  Jose E. Marchesi  <jemarch@gnu.org>

	* src/pkl-anal.c (pkl_anal1_ps_return_stmt): New handler.
	(pkl_phase_anal1): Register it.
	* testsuite/poke.pkl/return-diag-2.pk: New test.

2019-11-28  Jose E. Marchesi  <jemarch@gnu.org>

	* src/pkl-typify.c (pkl_typify1_ps_type_offset): New handler.
	(pkl_phase_typify1): Register it.
	* testsuite/poke.pkl/offset-type-diag-1.pk: New test.
	* testsuite/poke.pkl/offset-type-diag-2.pk: Likewise.

2019-11-24 John Darrington <john@darrington.wattle.id.au>

        * src/std.pk (crc32): New function.
        * doc/poke.texi (CRC Functions): New node.

2019-11-27  Jose E. Marchesi  <jemarch@gnu.org>

	* src/pvm.jitter (quake): New instruction.
	(rot-swap-to-quake): New rewrite rule.

2019-11-24 John Darrington <john@darrington.wattle.id.au>

	* src/pk-cmd.c (pk_cmd_exec_script): Use getline instead
	of a loop and getc.

2019-11-26  Jose E. Marchesi  <jemarch@gnu.org>

	* src/pvm-alloc.c (pvm_realloc): New function.
	* src/pkl-asm.c (pkl_asm_insn): Remove hard limit
	PKL_AST_MAX_POINTERS, reallocating memory as necessary.
	(pkl_asm_new): Initialize pointers to NULL.

2019-11-26  Jose E. Marchesi  <jemarch@gnu.org>

	* testsuite/lib/poke-dg.exp (poke-dg-test): Pass -q to poke to
	avoid reading ~/.pokerc.

2019-11-26  Jose E. Marchesi  <jemarch@gnu.org>

	* src/ios.c (IOS_GET_C_ERR_CHCK): Make sure to check get_c return
	value as an int before casting it.
	* src/ios-dev-file.c (ios_dev_file_getc): Do not rely on EOF ==
	IOD_EOF.

2019-11-22  Jose E. Marchesi  <jemarch@gnu.org>

	* src/pkl-ast.c (pkl_ast_type_is_complete): Handle function types.
	* src/pkl-typify.c (pkl_typify1_ps_op_unmap): New handler.
	* testsuite/poke.pkl/unmap-diag-1.pk: New test.

2019-11-22  Jose E. Marchesi  <jemarch@gnu.org>

	* src/pkl-ast.c (pkl_ast_type_is_complete): Fix handling of
	structs.

2019-11-22  Jose E. Marchesi  <jemarch@gnu.org>

	* src/pkl-ast.c (pkl_ast_type_mappable_p): New function.
	* src/pkl-typify.c (pkl_typify1_ps_map): Check for types that
	cannot be mapped and error about it.
	* testsuite/poke.pkl/map-diag-3.pk: Likewise.
	* testsuite/poke.pkl/map-diag-2.pk: Likewise.
	* testsuite/poke.pkl/map-diag-1.pk: New test.
	* testsuite/poke.pkl/map-diag-7.pk: Likewise.
	* testsuite/poke.pkl/map-diag-6.pk: Likewise.
	* testsuite/poke.pkl/map-diag-5.pk: Likewise.
	* testsuite/poke.pkl/map-diag-4.pk: Likewise.

2019-11-22  Jose E. Marchesi  <jemarch@gnu.org>

	* testsuite/poke.pkl/struct-types-diag-8.pk: Rewrite.

2019-11-22  Jose E. Marchesi  <jemarch@gnu.org>

	* src/pkl-tab.y (offset_type_specifier): Allow simple types only
	for the offset unit.

2019-11-19 John Darrington <john@darrington.wattle.id.au>

	* doc/poke.texi: Add indeces.

2019-11-19 John Darrington <john@darrington.wattle.id.au>

        * src/pk-dump.pk (print_ascii): New function. (print_hex) New function.
        (print_data): Deal properly with EOF and data not ending on 16#B boundary.
        * testsuite/poke.cmd/dump-5.pk: New file.
        * testsuite/poke.cmd/dump-6.pk: New file.
        * testsuite/poke.cmd/dump-7.pk: New file.

2019-11-17 John Darrington <john@darrington.wattle.id.au>

	* doc/poke.texi (Standard Integral Types): Correct size of nibble.

2019-11-21  Jose E. Marchesi  <jemarch@gnu.org>

	* doc/poke.texi (Field Constraints): New section.

2019-11-15  Jose E. Marchesi  <jemarch@gnu.org>

	* doc/poke.texi (__LINE__ and __FILE__): New chapter.

2019-11-15  Jose E. Marchesi  <jemarch@gnu.org>

	* src/pkl-gen.pks: Fix handling of sboundm.
	* testsuite/poke.map/maps-arrays-16.pk: New test.

2019-11-15  Jose E. Marchesi  <jemarch@gnu.org>

	* src/pkl-tab.y: New tokens UU_LINE_UU and UU_FILE_UU.
	* src/pkl-lex.l: Rules for __FILE__ and for __LINE__.
	* testsuite/poke.pkl/uu-line-1.pk: New test.
	* testsuite/poke.pkl/uu-file-1.pk: Likewise.

2019-11-15  Jose E. Marchesi  <jemarch@gnu.org>

	* man/Makefile.am (poke.1): Go back to depend on the source file
	to avoid distcheck to fail.  This time, make sure the executable
	exists before invoking help2man.

2019-11-15  Jose E. Marchesi  <jemarch@gnu.org>

	* pickles/leb128.pk: Remove trailing blanks.
	* testsuite/lib/poke-dg.exp: Likewise.
	* src/pvm.jitter: Likeise.
	* src/pkl-typify.c: Likewise.
	* src/pkl-tab.y: Likewise.
	* src/pkl-promo.c: Likewise.
	* src/pkl-gen.c: Likewise.
	* src/pkl-ast.h: Likewise.
	* src/pkl-ast.c: Likewise.
	* src/pk-editor.c: Likewise.
	* testsuite/poke.map/ass-map-1.pk: Remove empty lines at EOF.
	* testsuite/poke.std/atoi-9.pk: Likewise.
	* testsuite/poke.std/atoi-8.pk: Likewise.
	* testsuite/poke.std/atoi-7.pk: Likewise.
	* testsuite/poke.std/atoi-6.pk: Likewise.
	* testsuite/poke.std/atoi-5.pk: Likewise.
	* testsuite/poke.std/atoi-4.pk: Likewise.
	* testsuite/poke.std/atoi-3.pk: Likewise.
	* testsuite/poke.std/atoi-2.pk: Likewise.
	* testsuite/poke.std/atoi-13.pk: Likewise.
	* testsuite/poke.std/atoi-12.pk: Likewise.
	* testsuite/poke.std/atoi-11.pk: Likewise.
	* testsuite/poke.std/atoi-10.pk: Likewise.
	* testsuite/poke.std/atoi-1.pk: Likewise.
	* testsuite/poke.pkl/try-until-3.pk: Likewise.
	* testsuite/poke.pkl/strings-1.pk: Likewise.
	* testsuite/poke.pkl/ass-map-diag-2.pk: Likewise.
	* testsuite/poke.pkl/ass-map-diag-1.pk: Likewise.
	* testsuite/poke.map/maps-offsets-2.pk: Likewise.
	* testsuite/poke.map/maps-offsets-1.pk: Likewise.
	* testsuite/poke.map/maps-ios-1.pk: Likewise.
	* testsuite/poke.map/ass-map-2.pk: Likewise.
	* .x-sc_prohibit_atoi_atof: New file.
	* doc/poke.texi (IO Spaces): s/filesystem/file system/.
	* src/ios.c: Avoid double word in comment.
	* man/Makefile.am (poke.1): Do not use $< in this non-implicit
	rule.

2019-11-13 John Darrington <john@darrington.wattle.id.au>

	* src/pk-cmd.h (completer_t): New typedef.
	(pk_cmd) [completer]: New member;

2019-11-13 John Darrington <john@darrington.wattle.id.au>

	* src/pkl-env.h (pkl_ast_node_iter): New struct.
	(pkl_env_iter_begin): New declaration.
	(pkl_env_iter_next): New declaration.
	(pkl_env_iter_end): New declaration.
	* src/pkl-env.c (pkl_env_iter_begin): New function.
	(pkl_env_iter_next): New function.
	(pkl_env_iter_end): New function.
	(pkl_env_map_decls): Use them to implement this function.

2019-11-13 John Darrington <john@darrington.wattle.id.au>

	* src/pk-cmd.c (cmds): Rename to dot_cmds.
	(pk_cmd_init): Deal with the consequences.

2019-11-14  Jose E. Marchesi  <jemarch@gnu.org>

	* man/Makefile.am: New file.
	* Makefile.am (SUBDIRS): Add the man directory.
	* doc/poke.texi (pokerc): New chapter.
	* configure.ac: Initialize HELP2MAN.

2019-11-14  Jose E. Marchesi  <jemarch@gnu.org>

	* src/pkl-insn.def: peeklu, peekiu, pokelu and pokeiu get two
	arguments, not three.
	* testsuite/poke.pkl/struct-types-endian-1.pk: New test.

2019-11-13  Jose E. Marchesi  <jemarch@gnu.org>

	* src/pkl-gen.c (pkl_gen_ps_op_in): Delete commented out code.

2019-11-13  Jose E. Marchesi  <jemarch@gnu.org>

	* HACKING (Installing Obvious Changes): Fix typo

2019-11-13 John Darrington <john@darrington.wattle.id.au>

	* HACKING (Dejagnu): Fix typo.
	(libtextstyle): Fix typo.

2019-11-13 John Darrington <john@darrington.wattle.id.au>

	* src/pk-repl.c (pk_repl): Remove superfluous tests of the
	variable "line".

2019-11-13 John Darrington <john@darrington.wattle.id.au>

	* src/poke.c (pk_print_version): Update translatable strings.

2019-11-13  Jose E. Marchesi  <jemarch@gnu.org>

	* src/pkl-tab.y: Add missing trailing ';' in the try-until syntax
	rule.

2019-11-13  Jose E. Marchesi  <jemarch@gnu.org>

	* doc/poke.texi (Exceptions): Document the ranges of exceptions.

2019-11-13  Jose E. Marchesi  <jemarch@gnu.org>

	* testsuite/poke.pkl/get-ios-1.pk: New test.
	* testsuite/poke.pkl/get-ios-2.pk: Likewise.
	* testsuite/poke.pkl/set-ios-1.pk: Likewise.
	* testsuite/poke.pkl/close-1.pk: Likewise.
	* testsuite/poke.pkl/open-1.pk: Likewise.

2019-11-13  Jose E. Marchesi  <jemarch@gnu.org>

	* doc/poke.texi (IO Spaces): New section.
	(open): New subsection.
	(close): Likewise.
	(get_ios): Likewise.
	(set_ios): Likewise.
	(The Map Operator): Update to cover the ternary map operator.

2019-11-13  Jose E. Marchesi  <jemarch@gnu.org>

	* testsuite/lib/poke-dg.exp (dg-data): Accept a file name
	argument.
	(poke_finish): poke_data_files is now a list.
	* testsuite/poke.map/maps-ios-1.pk: New test.
	* testsuite/poke.map/maps-ios-2.pk: Likewise.
	* testsuite/poke.map/maps-ios-3.pk: Likewise.
	* testsuite/poke.map/maps-ios-4.pk: Likewise.
	* testsuite/poke.map/maps-ios-5.pk: Likewise.
	* testsuite/poke.map/maps-ios-6.pk: Likewise.
	* testsuite/poke.map/maps-ios-7.pk: Likewise.

2019-11-12  Jose E. Marchesi  <jemarch@gnu.org>

	* src/pvm.jitter (peeks): Take an IOS argument.
	(PVM_PEEK): Likewise.
	(PVM_POKE): Likewise.
	* src/pkl-gen.c (pkl_gen_pr_map): Pass the IO argument to the
	mappers.
	(pkl_gen_ps_type_integral): Take an IOS argument for mappers and
	writers.
	(pkl_gen_ps_type_string): Likewise.
	(pkl_gen_pr_type_offset): Likewise.
	(pkl_gen_pr_type_array): Likewise.
	(pkl_gen_pr_type_struct): Likewise.
	(pkl_gen_pr_ass_stmt): Pass IOS to the l-value map.
	* src/pkl-gen.pks (array_mapper): Likewise.
	(array_writer): Likewise.
	(struct_mapper): Likewise.
	(struct_field_mapper): Likewise.
	(op_unmap): Set ios to null.
	* src/pkl-asm.pks (write): Pass the mapped object's IOS to the
	writer.
	(remap): Pass the mapped object's IOS to the mapper.
	* src/pkl-tab.y (struct_type_specifier): Register 3 dummies in the
	compile-time lexical environment to reflect lexical changes in
	struct_mapper.
	* testsuite/poke.map/maps-strings-1.pk: New test.
	* testsuite/poke.map/maps-offsets-1.pk: Likewise.
	* testsuite/poke.map/maps-offsets-2.pk: Likewise.

2019-11-12  Jose E. Marchesi  <jemarch@gnu.org>

	* src/ios.c (struct ios): New field `id'.
	(ios_next_id): New static variable.
	(ios_open): Return the id of the opened ios.
	(ios_search_by_id): New function.
	* src/poke.c (parse_args): Adapt to the new interface of ios_open.
	* src/pvm.jitter (close): Use ios_search_by_id.

2019-11-12  Jose E. Marchesi  <jemarch@gnu.org>

	* src/pkl-ast.h (PKL_AST_BUILTIN_OPEN): Define.
	(PKL_AST_BUILTIN_CLOSE): Likewise.
	* src/pkl-tab.y (builtin): Handle BUILTIN_OPEN and BUILTIN_CLOSE.
	(BUILTIN_OPEN): New token.
	(BUILTIN_CLOSE): Likewise.
	* src/pkl-lex.l: Add __PKL_BUILTIN_OPEN__ and
	__PKL_BUILTIN_CLOSE__.
	* src/pkl-rt.pk (open): Define.
	(close): Likewise.
	* src/pkl-insn.def (open): New instruction.
	(close): Likewise.
	* src/pvm.jitter (open): New instruction.
	(close): Likewise.
	* src/pkl-gen.c (pkl_gen_ps_comp_stmt): Handle
	PKL_AST_BUILTIN_OPEN and PKL_AST_BUILTIN_CLOSE.

2019-11-11  Jose E. Marchesi  <jemarch@gnu.org>

	* src/pkl-ast.h (PKL_AST_BUILTIN_GET_IOS): Define.
	(PKL_AST_BUILTIN_SET_IOS): Likewise.
	* src/pkl-gen.c (pkl_gen_ps_comp_stmt): Handle get_ios and set_ios
	builtins.
	* src/pkl-insn.def: Define instructions PKL_INSN_PUSHIOS and
	PKL_INSN_POPIOS.
	* src/pvm.jitter (pushios): New instruction.
	(popios): Likewise.
	* src/pkl-rt.pk (get_ios): New function.
	(set_ios): Likewise.
	* src/pkl-lex.l: Rules for __PKL_BUILTIN_GET_IOS__ and
	__PKL_BUILTIN_SET_IOS__.
	* src/pkl-tab.y: Define tokens BUILTIN_GET_IOS and
	BUILTIN_SET_IOS.

2019-11-11  Jose E. Marchesi  <jemarch@gnu.org>

	* src/pkl-ast.c (pkl_ast_make_map): Get an `ios' argument.
	(pkl_ast_node_free): Handle the map ios.
	(pkl_ast_print_1): Likewise.
	* src/pkl-ast.h (struct pkl_ast_map): New attribute `ios'.
	* src/pkl-tab.y (map): Add ternary variant of the operator.
	* src/pkl-pass.c (pkl_do_pass_1): Visit the ios node of maps.
	* src/pkl-typify.c (pkl_typify1_ps_map): Check whether the IOS
	expression evaluates to an integral value.
	(pkl_typify1_ps_attr): The type of the 'io attribute is an
	int<32>.
	* src/pkl-promo.c (pkl_promo_ps_map): Promote the ios argument to
	the map operator.
	* src/pkl-gen.c (pkl_gen_ps_op_attr): Generate code for the 'ios
	attribute.
	* src/pkl-attrs.def: Define PKL_AST_ATTR_IOS.
	* src/pkl-insn.def: New instructions mgetio and msetio.
	* src/pvm.jitter (mgetio): New instruction.
	(msetio): Likewise.
	* testsuite/poke.pkl/map-ios-diag-1.pk: New test.
	* testsuite/poke.pkl/map-ios-diag-2.pk: Likewise.
	* testsuite/poke.pkl/attr-ios-diag-1.pk: Likewise.
	* testsuite/poke.pkl/attr-ios-diag-2.pk: Likewise.
	* src/pvm-val.h (PVM_VAL_IO): Define.
	(PVM_VAL_SET_IO): Likewise.
	(PVM_VAL_ARR_IO): Likewise.
	(PVM_VAL_SCT_IO): Likewise.
	(struct pvm_struct): New field io.
	(struct pvm_array): Likewise.
	* src/pvm-val.c (pvm_make_array): Initialize io.
	(pvm_make_struct): Likewise.

2019-11-12  Jose E. Marchesi  <jemarch@gnu.org>

	* src/pkl-lex.l: Handle token UNTIL.
	* src/pkl-tab.y (UNTIL): New token.
	* src/pkl-ast.h (PKL_AST_TRY_UNTIL_STMT_CODE): Define.
	(PKL_AST_TRY_UNTIL_STMT_EXP): Likewise.
	(struct pkl_ast_try_until_stmt): New struct.
	* src/pkl-ast.c (pkl_ast_make_try_until_stmt): New function.
	(pkl_ast_node_free): Handle try-until AST nodes.
	(pkl_ast_finish_breaks_1): Likewise.
	(pkl_ast_finish_returns_1): Likewise.
	(pkl_ast_print_1): Likewise.
	* src/pkl-pass.c (pkl_do_pass_1): Likewise.
	* src/pkl-typify.c (pkl_typify1_ps_try_until_stmt): New handler.
	* src/pkl-promo.c (pkl_promo_ps_try_until_stmt): Likewise.
	* src/pkl-gen.c (pkl_gen_pr_try_until_stmt): New handler.
	* doc/poke.texi (try-until): New section.
	* testsuite/poke.pkl/try-until-diag-1.pk: New test.
	* testsuite/poke.pkl/try-until-1.pk: Likewise.
	* testsuite/poke.pkl/try-until-2.pk: Likewise.
	* testsuite/poke.pkl/try-until-3.pk: Likewise.

2019-11-12 John Darrington <john@darrington.wattle.id.au>

	* src/pkl-lex.l (YYFATAL_ERROR): Redefine

2019-11-12 John Darrington <john@darrington.wattle.id.au>

	* src/std.pk (ltrim): New function.
	* src/std.pk (rtrim): New function.
	* doc/poke.texi (String Functions): New chapter.
	* testsuite/poke.std/ltrim.pk: New file.
	* testsuite/poke.std/rtrim.pk: New file.

2019-11-12 John Darrington <john@darrington.wattle.id.au>

        * src/pk-file.c (pk_cmd_file): Use strerror for reason.
        (pk_cmd_load_file): ditto.

2019-11-11  Jose E. Marchesi  <jemarch@gnu.org>

	* src/pkl-trans.c (pkl_trans1_ps_string): Handle \".
	* src/pvm-val.c (pvm_print_val): Likewise.
	* testsuite/poke.pkl/strings-1.pk: New test.
	* testsuite/poke.pkl/strings-2.pk: Likewise.
	* testsuite/poke.pkl/strings-3.pk: Likewise.
	* doc/poke.texi (String Literals): Document \".

2019-11-11 John Darrington <john@darrington.wattle.id.au>

	* src/pk-editor.c (pk_cmd_editor): Initialize newline

2019-11-11 John Darrington <john@darrington.wattle.id.au>

	* src/pk-repl.c (pk_repl): Use ~/.poke_history to persist repl
	commands.
	* doc/poke.texi (The REPL): Document the use of readline and the
	poke_history file.

2019-11-11 John Darrington <john@darrington.wattle.id.au>

        * doc/poke.texi (The REPL): Fix typo

2019-11-11  Jose E. Marchesi  <jemarch@gnu.org>

	* src/pk-print.c: Remove.
	* src/pk-cmd.c (print_cmd): Likewise.
	(cmds): Remove print_cmd.
	* src/Makefile.am (poke_SOURCES): Remove pk-print.c
	* testsuite/poke.map/maps-simple-1.pk: New test.
	* testsuite/poke.map/maps-simple-8.pk: Likewise.
	* testsuite/poke.map/maps-simple-7.pk: Likewise.
	* testsuite/poke.map/maps-simple-6.pk: Likewise.
	* testsuite/poke.map/maps-simple-5.pk: Likewise.
	* testsuite/poke.map/maps-simple-4.pk: Likewise.
	* testsuite/poke.map/maps-simple-3.pk: Likewise.
	* testsuite/poke.map/maps-simple-2.pk: Likewise.
	* testsuite/poke.pkl/sl-1.pk: Do not use .print.
	* testsuite/poke.map/maps-arrays-10.pk: Likewise.
	* testsuite/poke.map/maps-arrays-9.pk: Likewise.
	* testsuite/poke.map/maps-arrays-8.pk: Likewise.
	* testsuite/poke.map/maps-arrays-7.pk: Likewise.
	* testsuite/poke.map/maps-arrays-6.pk: Likewise.
	* testsuite/poke.map/maps-arrays-1.pk: Likewise.
	* testsuite/poke.map/valmaps-arrays.pk: Likewise.
	* testsuite/poke.map/trimmed-map-4.pk: Likewise.
	* testsuite/poke.map/trimmed-map-3.pk: Likewise.
	* testsuite/poke.map/trimmed-map-2.pk: Likewise.
	* testsuite/poke.map/trimmed-map.pk: Likewise.

2019-11-11  Jose E. Marchesi  <jemarch@gnu.org>

	* doc/poke.texi (.file): Add note about blank characters trimming
	from paths.

2019-11-11  Jose E. Marchesi  <jemarch@gnu.org>

	* src/pk-cmd.c (pk_cmd_exec_1): Do not include trailing blanks in
	tag arguments.

2019-11-11  Jose E. Marchesi  <jemarch@gnu.org>

	* doc/poke.texi (The isa Operator): New chapter.

2019-11-10  Jose E. Marchesi  <jemarch@gnu.org>

	* doc/poke.texi (Functions): New chapter.
	(Function Declarations): New section.
	(Optional Arguments): Likewise.
	(Variadic Functions): Likewise.
	(Calling Functions): Likewise.
	(Function Types): Likewise.

2019-11-10  Jose E. Marchesi  <jemarch@gnu.org>

	* HACKING (Write After Approval): Add John Darrington.

2019-11-09  John Darrington  <john@darrington.wattle.id.au>

	* src/pk-repl.c: Include signa.h.
	(poke_sigint_handler): New function.
	(pk_repl): Install signal handler for SIGINT.

2019-11-09  John Darrington  <john@darrington.wattle.id.au>

	* src/ras: Correct punctuation in default error message.

2019-11-09  John Darrington  <john@darrington.wattle.id.au>

	* src/pk-editor.c (pk_cmd_editor): Use xrealloc instead of
	realloc.

2019-11-09  John Darrington  <john@darrington.wattle.id.au>

	* src/pk-editor.c (pk_cmd_editor): Fix memory leak.

2019-11-09  Jose E. Marchesi  <jemarch@gnu.org>

	* configure.ac: Make libreadline a hard requirement.
	* HACKING (readline): Document that now a full implementation of
	readline is required.

2019-11-09  Egeyar Bagcioglu  <egeyar@gmail.com>

	* testsuite/poke.map/maps-int-01.pk: New test.
	* testsuite/poke.map/maps-int-02.pk: Likewise.
	* testsuite/poke.map/maps-int-03.pk: Likewise.
	* testsuite/poke.map/maps-int-04.pk: Likewise.
	* testsuite/poke.map/maps-int-05.pk: Likewise.
	* testsuite/poke.map/maps-int-06.pk: Likewise.
	* testsuite/poke.map/maps-int-07.pk: Likewise.
	* testsuite/poke.map/maps-int-08.pk: Likewise.
	* testsuite/poke.map/maps-int-09.pk: Likewise.
	* testsuite/poke.map/maps-int-10.pk: Likewise.
	* testsuite/poke.map/maps-int-11.pk: Likewise.
	* testsuite/poke.map/maps-int-12.pk: Likewise.
	* testsuite/poke.map/maps-int-13.pk: Likewise.
	* testsuite/poke.map/maps-int-14.pk: Likewise.
	* testsuite/poke.map/maps-int-15.pk: Likewise.
	* testsuite/poke.map/maps-int-16.pk: Likewise.
	* testsuite/poke.map/maps-int-17.pk: Likewise.
	* testsuite/poke.map/maps-int-18.pk: Likewise.
	* testsuite/poke.map/maps-int-19.pk: Likewise.
	* testsuite/poke.map/maps-int-20.pk: Likewise.
	* testsuite/poke.map/maps-int-21.pk: Likewise.
	* testsuite/poke.map/maps-int-22.pk: Likewise.
	* testsuite/poke.map/maps-int-23.pk: Likewise.
	* testsuite/poke.map/maps-int-24.pk: Likewise.
	* testsuite/poke.map/maps-int-25.pk: Likewise.
	* testsuite/poke.map/maps-int-26.pk: Likewise.
	* testsuite/poke.map/maps-int-27.pk: Likewise.
	* testsuite/poke.map/maps-int-28.pk: Likewise.
	* testsuite/poke.map/maps-int-29.pk: Likewise.
	* testsuite/poke.map/maps-int-30.pk: Likewise.
	* testsuite/poke.map/maps-int-31.pk: Likewise.
	* testsuite/poke.map/maps-int-32.pk: Likewise.
	* testsuite/poke.map/maps-int-33.pk: Likewise.
	* testsuite/poke.map/maps-int-34.pk: Likewise.
	* testsuite/poke.map/maps-int-35.pk: Likewise.
	* testsuite/poke.map/maps-int-36.pk: Likewise.
	* testsuite/poke.map/maps-int-37.pk: Likewise.
	* testsuite/poke.map/maps-int-38.pk: Likewise.
	* testsuite/poke.map/maps-int-39.pk: Likewise.
	* testsuite/poke.map/maps-int-40.pk: Likewise.
	* testsuite/poke.map/maps-int-41.pk: Likewise.
	* testsuite/poke.map/maps-int-42.pk: Likewise.
	* testsuite/poke.map/maps-int-43.pk: Likewise.
	* testsuite/poke.map/maps-int-44.pk: Likewise.
	* testsuite/poke.map/maps-int-45.pk: Likewise.
	* testsuite/poke.map/maps-int-46.pk: Likewise.
	* testsuite/poke.map/maps-int-47.pk: Likewise.
	* testsuite/poke.map/maps-int-48.pk: Likewise.
	* testsuite/poke.map/maps-int-49.pk: Likewise.
	* testsuite/poke.map/maps-int-50.pk: Likewise.

2019-11-08  Jose E. Marchesi  <jemarch@gnu.org>

	* doc/poke.texi (Unmapping): New section.

2019-11-08  Jose E. Marchesi  <jemarch@gnu.org>

	* src/pkl-tab.y (stmt): Set location of assignments to maps.
	* src/pkl-ast.c (pkl_ast_lvalue_p): Allow maps in lvalues.
	* src/pkl-typify.c (pkl_typify1_ps_ass_stmt): The type of a map in
	an l-value shall be simple.
	* src/pkl-gen.c (pkl_gen_pr_ass_stmt): Handle maps in l-values.
	* doc/poke.texi (Assignments): Document maps in l-values.
	* testsuite/poke.pkl/ass-map-diag-1.pk: New test.
	* testsuite/poke.pkl/ass-map-diag-2.pk: Likewise.
	* testsuite/poke.map/ass-map-1.pk: Likewise.
	* testsuite/poke.map/ass-map-2.pk: Likewise.

2019-11-08  Jose E. Marchesi  <jemarch@gnu.org>

	* doc/poke.texi (Conditionals): New chapter.
	(if-else): New section.
	(Loops): New chapter.
	(while): New section.
	(for-in): Likewise.

2019-11-08  Jose E. Marchesi  <jemarch@gnu.org>

	* doc/poke.texi (Exception Handling): New chapter.
	(Exceptions): New section.
	(try-catch): Likewise.
	(raise): Likewise.

2019-11-08  Jose E. Marchesi  <jemarch@gnu.org>

	* src/std.pk (substr): Remove.
	(strstr): Likewise.
	(format): Likewise.
	* testsuite/poke.std/substr.pk: Remove test.
	* testsuite/poke.std/strstr.pk: Likewise.

2019-11-08  Jose E. Marchesi  <jose.marchesi@oracle.com>

	* doc/poke.texi (Standard Integral Types): New chapter.
	(Standard Offset Types): Likewise.
	(Conversion Functions): Likewise.
	(catos): New section.
	(atoi): Likewise.
	(Sorting Functions): New chapter.
	(qsort): New section.

2019-11-08  Jose E. Marchesi  <jemarch@gnu.org>

	* src/pk-repl.c (banner): New function.
	(pk_repl): Call banner.
	(pk_repl_display_begin): Use rl_prompt instead of a literal
	string.

2019-11-08  Jose E. Marchesi  <jemarch@gnu.org>

	* src/std.pk (catos): Stop at the first null character '\0'.
	* testsuite/poke.std/catos-3.pk: New test.

2019-11-08  Jose E. Marchesi  <jemarch@gnu.org>

	* bootstrap.conf (gnulib_modules): Import the module unlink from
	gnulib.
	* src/pk-editor.c (pk_cmd_editor): Open result file and extract
	the new line from it.
	Remove the temporary file.
	* doc/poke.texi (.editor): New chapter.

2019-11-07  Jose E. Marchesi  <jemarch@gnu.org>

	* bootstrap.conf (gnulib_modules): Import `system' gnulib module.
	* src/pk-editor.c: New file.
	* src/pk-cmd.c (editor_cmd): New extern.
	(cmds): Add editor_cmd.
	* src/Makefile.am (poke_SOURCES): Add pk_editor.c.

2019-11-08  Jose E. Marchesi  <jemarch@gnu.org>

	* pickles/bpf.pk (BPF_Insn_Opcode._print): Simply using the `in'
	operator.
	(bpf_class_is_alujmp): Likewise.
	* pickles/btf.pk (BTF_Type): Likewise.

2019-11-08  Michael Drüing <michael@drueing.de>

	* src/std.pk (atoi): New function.
	* testsuite/poke.std/atoi-1.pk: New test.
	* testsuite/poke.std/atoi-2.pk: Likewise.
	* testsuite/poke.std/atoi-3.pk: Likewise.
	* testsuite/poke.std/atoi-4.pk: Likewise.
	* testsuite/poke.std/atoi-5.pk: Likewise.
	* testsuite/poke.std/atoi-6.pk: Likewise.
	* testsuite/poke.std/atoi-7.pk: Likewise.
	* testsuite/poke.std/atoi-8.pk: Likewise.
	* testsuite/poke.std/atoi-9.pk: Likewise.
	* testsuite/poke.std/atoi-10.pk: Likewise.
	* testsuite/poke.std/atoi-11.pk: Likewise.
	* testsuite/poke.std/atoi-12.pk: Likewise.
	* testsuite/poke.std/atoi-13.pk: Likewise.

2019-11-08  Jose E. Marchesi  <jose.marchesi@oracle.com>

	* HACKING (Writing poke Tests): New section.

2019-11-08  Jose E. Marchesi  <jemarch@gnu.org>

	* src/pkl-tab.y: Handle compound statements in the parser
	destructor.

2019-11-07  Jose E. Marchesi  <jemarch@gnu.org>

	* src/pk-repl.h: New file.
	* src/pk-repl.c: Likewise.
	* src/Makefile.am (poke_SOURCES): Add pk-repl.c and pk-repl.h
	* HACKING (Appendix): Add src/pk-repl.h and src/pk-repl.c to the
	list of sources.
	* src/poke.c: Include pk-repl.h
	(repl): Remove function.
	(main): Use pk_repl.

2019-11-06  Darshit Shah  <darnir@gnu.org>

    * bootstrap.conf: Exit out if jitter's bootstrap fails

2019-11-06  Jose E. Marchesi  <jemarch@gnu.org>

	* src/pk-term.c (pk_term_hyperlink): Fix guard.
	(pk_term_end_hyperlink): Likewise.

2019-11-06  Jose E. Marchesi  <jemarch@gnu.org>

	* HACKING (Write After Approval): Add Darshit Shah to the list of
	committers.

2019-11-05  Jose E. Marchesi  <jemarch@gnu.org>

	* testsuite/poke.pkl/union-diag-7.pk: New test.
	* src/pkl-tab.y (struct_type_field): Adjust location for $$ when
	the first token in the rule is empty.

2019-11-05  Jose E. Marchesi  <jemarch@gnu.org>

	* doc/poke.texi (Field Endianness): New section.

2019-11-05  Jose E. Marchesi  <jemarch@gnu.org>

	* src/pkl-gen.h (struct pkl_gen_payload): New field endian.
	* src/pkl-gen.pks (struct_field_mapper): Handle field endianness.
	* src/pkl-gen.c (pkl_gen_ps_type_integral): Likewise.
	* src/pkl-asm.c (pkl_asm_insn): Handle PKL_INSN_POKE.
	(pkl_asm_insn_poke): New function.
	* src/pkl-insn.def: Define PKL_INSN_POKE.
	* testsuite/poke.map/maps-structs-endian-1.pk: New test.

2019-11-05  Jose E. Marchesi  <jemarch@gnu.org>

	* src/pkl-ast.h (PKL_AST_STRUCT_TYPE_FIELD_ENDIAN): Define.
	(enum pkl_ast_endian): New entry PKL_AST_DFL.
	(struct pkl_ast_struct_type_field): New field endian.
	* src/pkl-ast.c (pkl_ast_make_struct_type_field): Handle the
	`endian' attribute.
	(pkl_ast_dup_type): Likewise.
	(pkl_ast_print_1): Likewise.
	* src/pkl-typify.c (pkl_typify1_ps_struct): Likewise.
	* src/pkl-lex.l: Tokens BIG and LITTLE.
	* src/pkl-tab.y (struct_type_field): handle endianness in fields.
	(endianness): New rule.
	* src/pkl-anal.c (pkl_anal2_ps_struct_type_field): New handler.
	(pkl_phase_anal2): Register handler.
	* testsuite/poke.pkl/struct-endian-diag-1.pk: New test.
	* testsuite/poke.pkl/struct-types-endian-diag-2.pk: Likewise.

2019-11-05  Jose E. Marchesi  <jemarch@gnu.org>

	* testsuite/Makefile.am (POKESTYLESDIR): Define when invoking
	dejagnu.
	* testsuite/lib/poke-dg.exp (dg-require): Mark the test as
	unsupported if appropriate.
	* testsuite/poke.pkl/printf-class-1.pk: Require libtextstyle.
	* testsuite/poke.pkl/printf-class-4.pk: Likewise.
	* testsuite/poke.pkl/printf-class-3.pk: Likewise.
	* testsuite/poke.pkl/printf-class-2.pk: Likewise.

2019-11-05  Jose E. Marchesi  <jemarch@gnu.org>

	* HACKING (Building): it is no longer necessary to pass
	--with-jitter to configure.

2019-11-05  Luca Saiu  <positron@gnu.org>

	* HACKING: Replace "program" to "routine".  Update data
	structure description.  Update debugging and configuration
	information as related to Jitter.  Minor rewording and grammar
	fixes.
	* TODO: Change "program" to "routine".
	* Makefile.am (SUBDIRS): Add jitter.
	* acinclude.m4: Remove file.
	* bootstrap.conf (bootstrap_post_import_hook): New function.
	* configure.ac: Include m4/jitter.m4, now copied from jitter by
	bootstrap.
	(AC_JITTER): Remove along with checks.  Replace with
	AC_JITTER_SUBPACKAGE, which includes tests.
	(--enable-debug, --disable-debug): Remove options.
	(ENABLE_DEBUG): Remove variable.  Remove substitution.
	(POKE_DEBUG): Remove Automake conditional.
	* src/Makefile.am (poke_CPPFLAGS, poke_CFLAGS, poke_LDADD)
	(poke_LDFLAGS): Unconditionalize.
	* src/pvm-val.h: Change to Jitter unified routine API.
	Include jitter/jitter-routine.h to break dependency cycle.
	Add comments.
	(struct pvm_cls): Rename field program to routine, type
	from struct jitter_program * to jitter_routine.
	Change type for field entry_point from void * to
	jitter_program_point.
	(pvm_program): Remove typedef.  Now the include cycle breaking works
	differently.
	* src/pvm-val.c: Change to Jitter unified routine API.
	* src/pk-cmd.c: Change to Jitter unified routine API.
	* src/pk-cmd.h: Change to Jitter unified routine API.
	* src/pk-print.c: Change to Jitter unified routine API.
	* src/pkl-asm.c: Change to Jitter unified routine API.
	* src/pkl-gen.c: Change to Jitter unified routine API.
	* src/pkl-gen.h: Change to Jitter unified routine API.
	* src/pkl.c: Change to Jitter unified routine API.
	* src/pkl.h: Change to Jitter unified routine API.
	* src/pvm-alloc.c: Change to Jitter unified routine API.
	* src/pvm-env.h: Change to Jitter unified routine API.
	* src/pvm.c: Change to Jitter unified routine API.
	* src/pvm.h: Change to Jitter unified routine API.
	* src/ras: Change to Jitter unified routine API.

2019-11-04  Jose E. Marchesi  <jemarch@gnu.org>

	* doc/poke.texi (Structs): New chapter.
	(Struct Literals): New section.
	(Struct Types): Likewise.
	(Unions): Likewise.
	(Pinned Structs): Likewise.
	(Struct Attributes): Likewise.
	(Methods): Likewise.
	(Declarations in Structs): Likewise.

2019-11-04  Jose E. Marchesi  <jemarch@gnu.org>

	* src/pkl-asm.pks (remap): Do not check for a null value.

2019-11-04  Jose E. Marchesi  <jemarch@gnu.org>

	* src/pkl-asm.pks (bconc): New macro.
	* src/pkl-asm.c (pkl_asm_insn_bconc): Use bconc macro.
	* src/pkl-fold.c (pkl_fold_bconc): New handler.
	* testsuite/poke.pkl/bconc-1.pk: New file.
	* testsuite/poke.pkl/bconc-2.pk: Likewise.
	* testsuite/poke.pkl/bconc-3.pk: Likewise.
	* testsuite/poke.pkl/bconc-4.pk: Likewise.
	* testsuite/poke.pkl/bconc-5.pk: Likewise.
	* testsuite/poke.pkl/bconc-6.pk: Likewise.

2019-11-04  Jose E. Marchesi  <jemarch@gnu.org>

	* etc/poke-ras-mode.el (poke-ras-mode): Indent labels properly.

2019-11-04  Jose E. Marchesi  <jemarch@gnu.org>

	* src/pkl-asm.pks (ais): Remove unused argument atype.
	* src/pkl-asm.c (pkl_asm_insn_ais): Adjust accordingly.

2019-11-04  Jose E. Marchesi  <jemarch@gnu.org>

	* HACKING: Add information about maintainers.

2019-11-03  Darshit Shah  <darnir@gnu.org>

	* m4/libtextstyle-hyperlink.m4: New file with autoconf macro to
	test for hyperlink support in libtextstyle
	* configure.ac: Invoke new macro AX_LIBTEXTSTYLE_HYPERLINK
	* src/pk-term.c (pk_term_hyperlink): Conditionally invoke the
	function styled_ostream_set_hyperlink based on whether
	libtextstyle supports it
	(pk_term_end_hyperlink): Same

2019-11-03  Luca Saiu  <positron@gnu.org>

	* src/Makefile.am (.pks.pkc): Do not rely on GNU Make extension.

2019-11-03  Egeyar Bagcioglu  <egeyar@gmail.com>

	* src/ios.c (ios_read_int): Rewrite.
	(ios_read_uint): Move the common functionality between read_ios_int
	and read_ios_uint from here ...
	(ios_read_int_common): ... to here.

2019-11-03  Darshit Shah  <darnir@gnu.org>

	* bootstrap.conf (MSGID_BUGS_ADDRESS): Fix bug reporting address
	(buildreq): Add a list of build prerequisites
	(gnulib_modules): Sort and split list into separate lines. Also
	deduplicate list (readline, getopt-gnu)
	Remove gendocs-template which is not a gnulib module

2019-11-03  Jose E. Marchesi  <jemarch@gnu.org>

	* src/pkl-insn.def: New instruction ais.
	* src/pkl-asm.c (pkl_asm_insn): Handle AIS.
	(pkl_asm_insn_ais): New function.
	* src/pkl-asm.pks (ais): New macro.
	* src/pkl-gen.c (pkl_gen_ps_op_in): Use PKL_INSN_AIS.
	* doc/poke.texi (Array Elements): New section.

2019-11-02  Jose E. Marchesi  <jemarch@gnu.org>

	* src/pkl-ops.def: Define IN operator.
	* src/pkl-tab.y: Rule for the IN binary operator.
	* src/pkl-typify.c (pkl_typify1_ps_op_in): New handler.
	(pkl_phase_typify1): Register handler.
	* src/pkl-promo.c (pkl_promo_ps_op_in): New handler.
	(pkl_phase_promo): Register handler.
	* src/pkl-asm.c (pkl_asm_insn_cmp): Add support for offsets.
	* src/pkl-gen.c (pkl_gen_ps_op_rela): Adjust accordingly.
	* src/pkl-gen.c (pkl_gen_ps_op_in): New handler.
	(pkl_phase_gen): Register handler.
	* testsuite/poke.pkl/in-diag-1.pk: New test.
	* testsuite/poke.pkl/in-diag-2.pk: Likewise.
	* testsuite/poke.pkl/in-diag-3.pk: Likewise.
	* testsuite/poke.pkl/in-diag-4.pk: Likewise.
	* testsuite/poke.pkl/in-3.pk: Likewise.
	* testsuite/poke.pkl/in-2.pk: Likewise.
	* testsuite/poke.pkl/in-1.pk: Likewise.

2019-11-02  Egeyar Bagcioglu  <egeyar@gmail.com>

        * src/ios.c (ios_read_uint): Fix the fast track for 40 bit integers.
        * testsuite/poke.map/maps-uint-41.pk: New test.
        * testsuite/poke.map/maps-uint-42.pk: Likewise.
        * testsuite/poke.map/maps-uint-43.pk: Likewise.
        * testsuite/poke.map/maps-uint-44.pk: Likewise.
        * testsuite/poke.map/maps-uint-45.pk: Likewise.
        * testsuite/poke.map/maps-uint-46.pk: Likewise.
        * testsuite/poke.map/maps-uint-47.pk: Likewise.
        * testsuite/poke.map/maps-uint-48.pk: Likewise.
        * testsuite/poke.map/maps-uint-49.pk: Likewise.
        * testsuite/poke.map/maps-uint-50.pk: Likewise.
        * testsuite/poke.map/maps-uint-51.pk: Likewise.
        * testsuite/poke.map/maps-uint-52.pk: Likewise.
        * testsuite/poke.map/maps-uint-53.pk: Likewise.
        * testsuite/poke.map/maps-uint-54.pk: Likewise.

2019-11-02  Egeyar Bagcioglu  <egeyar@gmail.com>

        * testsuite/poke.map/maps-uint-1.pk: New test.
        * testsuite/poke.map/maps-uint-2.pk: Likewise.
        * testsuite/poke.map/maps-uint-3.pk: Likewise.
        * testsuite/poke.map/maps-uint-4.pk: Likewise.
        * testsuite/poke.map/maps-uint-5.pk: Likewise.
        * testsuite/poke.map/maps-uint-6.pk: Likewise.
        * testsuite/poke.map/maps-uint-7.pk: Likewise.
        * testsuite/poke.map/maps-uint-8.pk: Likewise.
        * testsuite/poke.map/maps-uint-9.pk: Likewise.
        * testsuite/poke.map/maps-uint-10.pk: Likewise.
        * testsuite/poke.map/maps-uint-11.pk: Likewise.
        * testsuite/poke.map/maps-uint-12.pk: Likewise.
        * testsuite/poke.map/maps-uint-13.pk: Likewise.
        * testsuite/poke.map/maps-uint-14.pk: Likewise.
        * testsuite/poke.map/maps-uint-15.pk: Likewise.
        * testsuite/poke.map/maps-uint-16.pk: Likewise.
        * testsuite/poke.map/maps-uint-17.pk: Likewise.
        * testsuite/poke.map/maps-uint-18.pk: Likewise.
        * testsuite/poke.map/maps-uint-19.pk: Likewise.
        * testsuite/poke.map/maps-uint-20.pk: Likewise.
        * testsuite/poke.map/maps-uint-21.pk: Likewise.
        * testsuite/poke.map/maps-uint-22.pk: Likewise.
        * testsuite/poke.map/maps-uint-23.pk: Likewise.
        * testsuite/poke.map/maps-uint-24.pk: Likewise.
        * testsuite/poke.map/maps-uint-25.pk: Likewise.
        * testsuite/poke.map/maps-uint-26.pk: Likewise.
        * testsuite/poke.map/maps-uint-27.pk: Likewise.
        * testsuite/poke.map/maps-uint-28.pk: Likewise.
        * testsuite/poke.map/maps-uint-29.pk: Likewise.
        * testsuite/poke.map/maps-uint-30.pk: Likewise.
        * testsuite/poke.map/maps-uint-31.pk: Likewise.
        * testsuite/poke.map/maps-uint-32.pk: Likewise.
        * testsuite/poke.map/maps-uint-33.pk: Likewise.
        * testsuite/poke.map/maps-uint-34.pk: Likewise.
        * testsuite/poke.map/maps-uint-35.pk: Likewise.
        * testsuite/poke.map/maps-uint-36.pk: Likewise.
        * testsuite/poke.map/maps-uint-37.pk: Likewise.
        * testsuite/poke.map/maps-uint-38.pk: Likewise.
        * testsuite/poke.map/maps-uint-39.pk: Likewise.
        * testsuite/poke.map/maps-uint-40.pk: Likewise.
        * testsuite/poke.map/maps-uint-diag-1.pk: Likewise.

2019-11-02  Jose E. Marchesi  <jemarch@gnu.org>

	* src/pkl-fold.c (EMUL_UUU): For cdiv.
	(EMUL_III): Likewise.
	(pkl_fold_cdiv): New handler.
	* src/pkl-asm.pks (cdiv): New macro.
	(cdivo): New macro.
	* src/pkl-asm.c (pkl_asm_insn_cdivo, pvm_make_integral): New
	function.
	(pkl_asm_insn_cdiv): Likewise.
	(pkl_asm_insn_cdivo): Likewise.
	(pkl_asm_insn): Call pkl_asm_insn_cdiv and pkl_asm_insn_cdivo.
	* src/pkl-insn.def (PKL_INSN_CDIV): New instruction.
	(PKL_INSN_CDIVO): Likewise.
	* src/pkl-gen.c (pkl_gen_ps_op_ceildiv): New handler.
	(pkl_phase_gen): Register the handler.
	* src/pkl-promo.c (pkl_phase_promo): Register pkl_promo_ps_op_div
	to promote ceildiv nodes.
	* src/pkl-typify.c (pkl_typify1_ps_op_ceildiv): New handler.
	(pkl_phase_typify1): Register handler.
	(CASE_OFFSET): Handle ceildiv.
	* src/pkl-ops.def (PKL_AST_OP_CEILDIV): Define.
	* src/pkl-tab.y: New token CEILDIV.
	* src/pkl-lex.l: Rule for CEILDIV.
	* testsuite/poke.pkl/cdiv-offsets-2.pk: Likewise.
	* testsuite/poke.pkl/cdiv-offsets-1.pk: Likewise.
	* testsuite/poke.pkl/cdiv-integers-2.pk: Likewise.
	* testsuite/poke.pkl/cdiv-integers-1.pk: New test.
	* doc/poke.texi (Offset Operations): Document /^ for offsets.
	(Arithmetic Operators): Likewise for integers.

2019-11-02  Jose E. Marchesi  <jemarch@gnu.org>

	* doc/poke.texi (.set): The default endianness is big endian, not
	host endian.

2019-10-30  Jose E. Marchesi  <jemarch@gnu.org>

	* doc/poke.texi (Shebang): New section.
	(Scripts): Likewise.
	(Invoking poke): Likewise.

2019-10-30  Jose E. Marchesi  <jemarch@gnu.org>

	* src/pvm.jitter (pvm_literal_printer): Use poke_obase.
	(pvm_literal_printer_lo): Likewise.
	(strace): Likewise.

2019-10-29  Jose E. Marchesi  <jemarch@gnu.org>

	* pickles/bpf.pk (BPF_Insn_Offset): New type.
	(BPF_Insn): Use BPF_Insn_Offset.

2019-10-29  Jose E. Marchesi  <jemarch@gnu.org>

	* pickles/btf.pk (btf_types): New function.
	(btf_strings): Likewise.

2019-10-29  Jose E. Marchesi  <jemarch@gnu.org>

	* doc/poke.texi (Commanding poke): New chapter.
	(The REPL): New section.
	(Evaluation): New section.
	(Commands): Likewise.
	(Scripts): Likewise.
	(Shebang): Likewise.
	(.load): New chapter.

2019-10-29  Jose E. Marchesi  <jemarch@gnu.org>

	* doc/poke.texi (.vm): New chapter.
	(.vm disassemble): New section.

2019-10-29  Jose E. Marchesi  <jemarch@gnu.org>

	* src/pkl-fold.c (pkl_fold_pr_type): New handler.
	(pkl_phase_fold): Register handler.
	* src/pkl-promo.c (pkl_promo_pr_type): New handler.
	(pkl_phase_promo): Register handler.
	* src/pkl-typify.c (pkl_typify_pr_type): New handler.
	(pkl_phase_typify1): Register handler.
	Likewise.
	* src/pkl-anal.c: Do not define nor use a pkl_anal_ps_type
	handler.  It is unnecessary.
	* src/pkl-trans.c: Set the `compiled' flag of types AST nodes only
	in trans4.

2019-10-29  Jose E. Marchesi  <jemarch@gnu.org>

	* src/pkl-ast.h (struct pkl_ast_type): New field `compiled'.
	(PKL_AST_TYPE_COMPILED): Define.
	* src/pkl-anal.c (pkl_anal_pr_type): Define.
	(pkl_anal_ps_type): Define.
	(pkl_phase_anal1): Registers the handlers.
	(pkl_phase_anal2): Likewise.
	(pkl_phase_analf): Likewise.
	* src/pkl-trans.c (pkl_trans_pr_type): Define.
	(pkl_trans_ps_type): Define.
	(pkl_phase_trans1): Registers the handlers.
	(pkl_phase_trans2): Likewise.
	(pkl_phase_trans3): Likewise.
	(pkl_phase_trans4): Likewise.

2019-10-29  Jose E. Marchesi  <jemarch@gnu.org>

	* src/pkl-gen.c (pkl_gen_pr_decl): Avoid recompiling type closures
	(mapper, writer, constructor, etc) again and again.

2019-10-29  Jose E. Marchesi  <jemarch@gnu.org>

	* src/pkl-gen.pks (struct_constructor): Set/clear
	payload->in_constructor and not payload->in_mapper.
	* testsuite/poke.pkl/struct-types-6.pk: New test.

2019-10-29  Jose E. Marchesi  <jemarch@gnu.org>

	* doc/poke.texi (.set): New section.
	(.exit): Likewise.
	(.file): Likewise.
	(.info): Likewise.

2019-10-29  Jose E. Marchesi  <jemarch@gnu.org>

	* src/pkl-lex.l: Remove token TRIMOP.
	* src/pkl-tab.y: Use ':' instead of TRIMOP in trimmers rules.
	* src/std.pk (substr): Adapt to the new syntax.
	* trim.pk: Remove.
	* testsuite/poke.pkl/trim-1.pk: From trim.pk and adapted to new
	syntax.
	* testsuite/poke.pkl/trim-24.pk: Likewise.
	* testsuite/poke.pkl/trim-23.pk: Likewise.
	* testsuite/poke.pkl/trim-22.pk: Likewise.
	* testsuite/poke.pkl/trim-21.pk: Likewise.
	* testsuite/poke.pkl/trim-20.pk: Likewise.
	* testsuite/poke.pkl/trim-19.pk: Likewise.
	* testsuite/poke.pkl/trim-18.pk: Likewise.
	* testsuite/poke.pkl/trim-17.pk: Likewise.
	* testsuite/poke.pkl/trim-16.pk: Likewise.
	* testsuite/poke.pkl/trim-15.pk: Likewise.
	* testsuite/poke.pkl/trim-14.pk: Likewise.
	* testsuite/poke.pkl/trim-13.pk: Likewise.
	* testsuite/poke.pkl/trim-12.pk: Likewise.
	* testsuite/poke.pkl/trim-11.pk: Likewise.
	* testsuite/poke.pkl/trim-10.pk: Likewise.
	* testsuite/poke.pkl/trim-9.pk: Likewise.
	* testsuite/poke.pkl/trim-8.pk: Likewise.
	* testsuite/poke.pkl/trim-7.pk: Likewise.
	* testsuite/poke.pkl/trim-6.pk: Likewise.
	* testsuite/poke.pkl/trim-5.pk: Likewise.
	* testsuite/poke.pkl/trim-4.pk: Likewise.
	* testsuite/poke.pkl/trim-3.pk: Likewise.
	* testsuite/poke.pkl/trim-2.pk: Likewise.
	* testsuite/poke.map/trimmed-map.pk: Adapt to new syntax.
	* testsuite/poke.map/trimmed-map-4.pk: Likewise.
	* testsuite/poke.map/trimmed-map-3.pk: Likewise.
	* testsuite/poke.map/trimmed-map-2.pk: Likewise.

2019-10-29  Jose E. Marchesi  <jemarch@gnu.org>

	* doc/poke.texi (Array Indexing): New section.
	(Array Trimming): Likewise.
	(Array Attributes): Likewise.

2019-10-28  Jose E. Marchesi  <jemarch@gnu.org>

	* doc/poke.texi: New chapters and sections.

2019-10-28  Jose E. Marchesi  <jemarch@gnu.org>

	* doc/poke.texi (Integers): New chapter.
	(Integer Literals): New section.
	(Characters): Likewise.
	* testsuite/poke.pkl/printf-value-2.pk: Remove empty line at EOF.
	* testsuite/poke.pkl/printf-value-5.pk: Likewise.

2019-10-27  Jose E. Marchesi  <jemarch@gnu.org>

	* doc/poke.texi (Offsets): New chapter.
	(Why offsets): New section.
	(Offset values): Likewise.
	(Offset operations): Likewise.

2019-10-27  Jose E. Marchesi  <jemarch@gnu.org>

	* doc/poke.texi (Endianness): New chapter.
	(.set endian): New section.
	(Endian built-ins): Likewise.

2019-10-27  Jose E. Marchesi  <jemarch@gnu.org>

	* bootstrap.conf (gnulib_modules): Import the gendocs-template
	gnulib module.

2019-10-27  Jose E. Marchesi  <jemarch@gnu.org>

	* doc/poke.texi (Output): New chapter.
	(print): New section.
	(printf): Likewise.
	(Styling): Likewise.

2019-10-27  Jose E. Marchesi  <jemarch@gnu.org>

	* src/pkl-promo.c (pkl_promo_ps_print_stmt): Fix bug handling %v
	printf arguments.
	* pickles/bpf.pk: Use %v in imm64 pretty-printer.
	* testsuite/poke.pkl/printf-value-5.pk: New test.

2019-10-27  Jose E. Marchesi  <jemarch@gnu.org>

	* src/pvm.jitter (printv): Use the global poke_obase.
	* testsuite/poke.pkl/printf-value-1.pk: .set obase.
	* testsuite/poke.pkl/printf-value-2.pk: Likewise.
	* testsuite/poke.pkl/printf-value-3.pk: Likewise.
	* testsuite/poke.pkl/printf-value-4.pk: New file.

2019-10-26  Jose E. Marchesi  <jemarch@gnu.org>

	* src/pkl-ast.h (PKL_AST_PRINT_STMT_ARG_PRINT_VALUE_P): Define.
	* src/pkl-trans.c (pkl_trans1_ps_print_stmt): Handle %v tags in
	format strings.
	* src/pkl-typify.c (pkl_typify1_ps_print_stmt): Allow any type for
	%v.
	* src/pkl-asm.c (pkl_asm_insn_print): Issue a `printv' instruction
	to print values in %v tags.
	* src/pkl-insn.def: New instruction printv.
	* src/pvm.jitter (printv): Implement.
	* testsuite/poke.pkl/printf-value-1.pk: New test.
	* testsuite/poke.pkl/printf-value-2.pk: Likewise.
	* testsuite/poke.pkl/printf-value-3.pk: Likewise.

2019-10-26  Jose E. Marchesi  <jemarch@gnu.org>

	* HACKING (Writing Poke): Recommend using the #<...> convention
	for pretty-printed values.

2019-10-26  Jose E. Marchesi  <jemarch@gnu.org>

	* pickles/bpf.pk (BPF_Reg): Use styling when printing register
	names.
	(BPF_Insn_Opcode): Likewise for instruction mnemonics.
	* etc/poke-default.css (.insn-register): New class.
	(.insn-mnemonic): Likewise.

2019-10-26  Jose E. Marchesi  <jemarch@gnu.org>

	* pickles/bpf.pk (bpf_alu_opcodes): New variable.
	(bpf_jmp_opcodes): Likewise.
	(bpf_ldst_sizes): Likewise.
	(BPF_Insn_Opcode): Pretty printers.
	(BPF_Insn): Pretty printer for imm64.

2019-10-26  Jose E. Marchesi  <jemarch@gnu.org>

	* src/pkl-gen.c (pkl_gen_pr_op_and): New handler.
	(pkl_gen_pr_op_or): Likewise.
	(pkl_gen_ps_op_and): Remove.
	(pkl_gen_ps_op_or): Likewise.
	* testsuite/poke.pkl/and-13.pk: New test.
	* testsuite/poke.pkl/or-4.pk: Likewise.

2019-10-26  Jose E. Marchesi  <jemarch@gnu.org>

	* pickles/bpf.pk: New file.
	* pickles/btf.pk: Likewise.
	* pickles/Makefile.am (dist_pkgdata_DATA): Add bpf.pk and btf.pk.

2019-10-26  Egeyar Bagcioglu  <egeyar@gmail.com>

	* bootstrap.conf (gnulib_modules): Import the module byteswap from
	gnulib.
	* src/ios.c (IOS_GET_C_ERR_CHCK): Define.
	(IOS_READ_INTO_CHARRAY_1BYTE): Likewise.
	(IOS_READ_INTO_CHARRAY_2BYTES): Likewise.
	(IOS_READ_INTO_CHARRAY_3BYTES): Likewise.
	(IOS_READ_INTO_CHARRAY_4BYTES): Likewise.
	(IOS_READ_INTO_CHARRAY_5BYTES): Likewise.
	(IOS_READ_INTO_CHARRAY_6BYTES): Likewise.
	(IOS_READ_INTO_CHARRAY_7BYTES): Likewise.
	(IOS_READ_INTO_CHARRAY_8BYTES): Likewise.
	(IOS_READ_INTO_CHARRAY_9BYTES): Likewise.
	(ios_mask_first_byte): New function.
	(ios_mask_last_byte): Likewise.
	(ios_read_uint): Rewrite.

2019-10-25  Jose E. Marchesi  <jemarch@gnu.org>

	* HACKING (Writing RAS): New section.

2019-10-25  Jose E. Marchesi  <jemarch@gnu.org>

	* src/ras: Recognize empty .c lines without a trailing whitespace.

2019-10-25  Jose E. Marchesi  <jemarch@gnu.org>

	* pickles/future/bson.pk: Syntax-check fixes.
	* src/pkl.c: Likewise.
	* testsuite/poke.map/maps-structs-methods-5.pk: Likewise.
	* src/pkl-trans.c: Likewise.
	* src/pkl-gen.pks: Likewise.
	* src/pkl-gen.c: Likewise.
	* src/pkl-ast.c: Likewise.
	* src/pkl-anal.c: Likewise.
	* src/ios.c: Likewise.
	* pickles/leb128.pk: Likewise.
	* etc/poke-ras-mode.el: Likewise.
	* testsuite/poke.map/maps-unions-8.pk: Likewise.
	* testsuite/poke.pkl/struct-pretty-print-3.pk: Likewise.
	* testsuite/poke.pkl/struct-pretty-print-1.pk: Likewise.
	* testsuite/poke.pkl/printf-class-2.pk: Likewise.
	* testsuite/poke.pkl/printf-class-1.pk: Likewise.
	* testsuite/poke.map/maps-structs-methods-7.pk: Likewise.
	* testsuite/poke.map/maps-structs-methods-6.pk: Likewise.

2019-10-25  Jose E. Marchesi  <jemarch@gnu.org>

	* src/pvm.jitter (PVM_PEEK): Raise exceptionspa in case of IO
	end-of-file and generic IO error.
	(PVM_POKE): Likewise.
	(peeks): Likewise.
	* src/pkl-gen.c (pkl_gen_pr_map): Do not handle EOF.
	* src/pkl-rt.pk (_pkl_exception_handler): Handle E_io.
	* src/pkl-gen.pks (array_mapper): Adjust to the new handling of
	EOF.
	* testsuite/poke.map/maps-unions-7.pk: New test.
	* testsuite/poke.map/maps-unions-8.pk: Likewise.

2019-10-25  Jose E. Marchesi  <jemarch@gnu.org>

	* src/pkl-anal.c (pkl_anal1_ps_type_struct): Do not allow
	declarations after union fields.
	* testsuite/poke.map/maps-unions-6.pk: Likewise.
	* testsuite/poke.pkl/union-diag-6.pk: Likewise.
	* testsuite/poke.pkl/union-diag-5.pk: Likewise.
	* testsuite/poke.pkl/union-diag-4.pk: New test.

2019-10-24  Jose E. Marchesi  <jose.marchesi@oracle.com>

	* HACKING (Dejagnu): Mention as a dependency.

2019-10-24  Jose E. Marchesi  <jemarch@gnu.org>

	* src/pkl-ast.h (PKL_AST_BUILTIN_GET_ENDIAN): Define.
	(PKL_AST_BUILTIN_SET_ENDIAN): Likewise.
	* src/pkl-tab.y (BUILTIN_GET_ENDIAN): New token.
	(BUILTIN_SET_ENDIAN): Likewise.
	(builtins): New rule.
	(comp_stmt): Use rule `builtins'.
	* src/pkl-lex.l: Tokens for get_endian and set_endian built-ins.
	* src/pvm.jitter (pushend): New instruction.
	(popend): Likewise.
	* src/pkl-insn.def (PKL_INSN_PUSHEND): Define.
	(PKL_INSN_POPEND): Likewise.
	* src/pkl-rt.pk (get_endian): Define.
	(set_endian): Likewise.
	(ENDIAN_LITTLE): New variable.
	(ENDIAN_BIG): Likewise.
	* src/pkl-gen.c (pkl_gen_ps_comp_stmt): Generate code for
	PKL_AST_BUILTIN_GET_ENDIAN and PKL_AST_BUILTIN_SET_ENDIAN
	builtins.
	* testsuite/poke.pkl/get-endian-1.pk: New test.
	* testsuite/poke.pkl/set-endian-1.pk: Likewise.

2019-10-24  Jose E. Marchesi  <jemarch@gnu.org>

	* src/ios.c (ios_read_uint): Add support for reading 4-bit
	unsigned integers from addresses aligned to 8 or 4 bytes.

2019-10-23  Jose E. Marchesi  <jemarch@gnu.org>

	* pickles/Makefile.am (dist_pkgdata_DATA): Add leb128.pk

2019-10-22  Jose E. Marchesi  <jemarch@gnu.org>

	* testsuite/poke.pkl/struct-types-diag-8.pk: New file.
	* testsuite/poke.map/maps-structs-methods-6.pk: Likewise.
	* testsuite/poke.map/maps-structs-methods-7.pk: Likewise.

2019-10-22  Jose E. Marchesi  <jemarch@gnu.org>

	* src/pkl-typify.c (pkl_typify1_ps_struct_ref): fix compile-time
	detection of invalid fields in struct references.

2019-10-22  Jose E. Marchesi  <jemarch@gnu.org>

	* pickles/leb128.pk: Rewritten and moved from future/.
	* etc/poke-default.css (.leb128): New class.

2019-10-22  Jose E. Marchesi  <jemarch@gnu.org>

	* src/pkl-ast.h (struct pkl_ast_print_stmt): New field
	fmt_processed_p.
	(PKL_AST_PRINT_STMT_FMT_PROCESSED_P): Define.
	* src/pkl-trans.c (pkl_trans1_ps_print_stmt): Handle
	fmt_processed_p.
	* HACKING (Middle End Handlers should be Re-executable): New
	section.

2019-10-22  Jose E. Marchesi  <jemarch@gnu.org>

	* src/pkl-gen.pks (struct_mapper): Fix bug in method handling.
	* testsuite/poke.map/maps-structs-methods-5.pk: New file.

2019-10-22  Jose E. Marchesi  <jemarch@gnu.org>

	* src/pvm.h: Prototypes for pvm_pretty_print and
	pvm_set_pretty_print.
	* src/pvm.c (pvm_pretty_print): New function.
	(pvm_set_pretty_print): Likewise.
	(PVM_STATE_PRETTY_PRINT): Define.
	* src/pvm.jitter (state-struct-runtime-c): Add pretty_print.
	(state-initialization-c): Initialize pretty_print to 0.
	* src/pk-set.c (pk_cmd_set_pretty_print): New function.
	(set_pretty_print_cmd): New struct.
	(set_cmds): Add set-pretty_print_cmd.
	* src/pvm-val.h: Prototype for pvm_get_struct_method.
	Prototype for pvm_call_cls.
	* src/pvm-val.c (pvm_get_struct_method): New function.
	(pvm_call_pretty_printer): Likewise.
	* testsuite/poke.pkl/struct-pretty-print-1.pk: New file.
	* testsuite/poke.pkl/struct-pretty-print-2.pk: New file.
	* testsuite/poke.pkl/struct-pretty-print-3.pk: Likewise.
	* testsuite/poke.pkl/struct-pretty-print-4.pk: Likewise.

2019-10-22  Jose E. Marchesi  <jemarch@gnu.org>

	* src/pkl-typify.c (pkl_typify1_ps_struct_ref): Allow using dot
	notation to refer to struct methods.
	* src/pkl-trans.c (pkl_trans2_ps_struct_ref): Turn struct
	references to parameterless methods into funcalls.
	* src/pvm-val.c (pvm_ref_struct): Allow referencing to methods by
	name.
	* testsuite/poke.map/maps-structs-18.pk: New test.
	* testsuite/poke.map/maps-structs-methods-1.pk: Likewise.
	* testsuite/poke.map/maps-structs-methods-2.pk: Likewise.
	* testsuite/poke.map/maps-structs-methods-3.pk: Likewise.

2019-10-22  Jose E. Marchesi  <jemarch@gnu.org>

	* src/pvm.jitter (mksct): Change instruction to get a list of
	methods.
	* src/pkl-gen.pks (struct_mapper): Adapt to the new form of mksct.
	(struct_constructor): Likewise.
	* testsuite/poke.map/maps-structs-14.pk: New test.
	* testsuite/poke.map/maps-structs-15.pk: Likewise.
	* testsuite/poke.map/maps-structs-16.pk: Likewise.
	* testsuite/poke.map/maps-structs-17.pk: Likewise.

2019-10-18  Jose E. Marchesi  <jemarch@gnu.org>

	* src/pvm-val.h (PVM_VAL_SCT_METHOD): Define.
	(PVM_VAL_SCT_NMETHODS): Likewise.
	(pvm_make_struct): Add argument nmethods.
	(struct pvm_struct_method): New struct.
	(PVM_VAL_SCT_METHOD_NAME): Define.
	(PVM_VAL_SCT_METHOD_VALUE): Likewise.
	* src/pvm-val.c (pvm_make_struct): Likewise.
	* src/pvm.jitter (mksct): pass the number of methods to
	pvm_make_struct.

2019-10-22  Darkstar <michael@drueing.de>

	* src/poke.c: Several typos in comments fixed.
	(pk_print_version): Likewise.
	(initialize_user): Likewise.

2019-10-22  Jose E. Marchesi  <jemarch@gnu.org>

	* src/pkl-trans.c (pkl_trans1_ps_print_stmt): Avoid adding an
	empty suffix to the last arg when a %- tag finished the format
	string.

2019-10-22  Jose E. Marchesi  <jemarch@gnu.org>

	* configure.ac: Warn the user about not finding a full-fledged
	readline.

2019-10-21  Jose E. Marchesi  <jemarch@gnu.org>

	* src/poke.c (repl): print a newline when the user does Ctrl-D.

2019-10-21  Jose E. Marchesi  <jemarch@gnu.org>

	* src/Makefile.am (AM_YFLAGS): Do not pass -y to bison, as we are
	using non-POSIX capabilities.

2019-10-21  Jose E. Marchesi  <jemarch@gnu.org>

	* src/std.pk (catos): New function.
	* testsuite/poke.std/catos-1.pk: New file.
	* testsuite/poke.pkl/catos-2.pk: Likewise.

2019-10-21  Jose E. Marchesi  <jemarch@gnu.org>

	* src/pkl-lex.l (SHEBANG_COMMENT): New context.
	Rules to support multi-line #! ... !# comments.
	* src/poke.c (LOAD_AND_QUIT_ARG): Define.
	(print_help): Document -L.
	(parse_args): Implement -L.

2019-10-21  Jose E. Marchesi  <jemarch@gnu.org>

	* etc/poke-default.css (.error): Bold.

2019-10-21  Jose E. Marchesi  <jemarch@gnu.org>

	* testsuite/poke.cmd/set-error-on-warning.pk: New test.

2019-10-21  Jose E. Marchesi  <jemarch@gnu.org>

	* src/pkl.h: Make pkl_error and pkl_warning to get a `compiler'
	option.
	* src/pkl.c (pkl_error_internal): New function.
	(pkl_error): Rewrite to be a wrapper for pkl_error_internal.
	* src/pkl-pass.h (PKL_ERROR): Define.
	(PKL_WARNING): Likewise.
	* src/pkl-anal.c (pkl_anal2_ps_type_struct): Use PKL_WARNING.
	* src/pkl-parser.h (struct pkl_parser): New field `compiler'.
	Make pkl_parse_file and pkl_parse_buffer get a new argument
	`compiler'.
	* src/pkl-parser.c (pkl_parse_file): Get a `compiler' option.
	(pkl_parse_buffer): Likewise.
	* src/pkl.c (pkl_compile_file): Pass `compiler' to pkl_parse_file.
	(pkl_compile_expression): Pass `compiler' to pkl_parse_buffer.
	(pkl_compile_buffer): Likewise.
	(pkl_compile_statement): Likewise.
	* src/pkl-tab.y: Pass pkl_parser->compiler to pkl_error calls.
	* src/pkl-anal.c: Use PKL_ERROR instead of pkl_error for
	diagnostics.
	* src/pkl-fold.c: Likewise.
	* src/pkl-trans.c: Likewise.
	* src/pkl-typify.c: Likewise.

2019-10-20  Jose E. Marchesi  <jemarch@gnu.org>

	* etc/poke-default.css (.dump-ruler): New class.
	(.dump-address): Likewise.
	(.dump-ascii): Likewise.
	* src/pk-dump.pk (dump): Stylize output.

2019-10-20  Jose E. Marchesi  <jemarch@gnu.org>

	* testsuite/Makefile.am (check-DEJAGNU): Set POKESTYLESDIR.
	* testsuite/poke.pkl/printf-class-1.pk: New test.
	* testsuite/poke.pkl/printf-class-4.pk: Likewise.
	* testsuite/poke.pkl/printf-class-3.pk: Likewise.
	* testsuite/poke.pkl/printf-class-2.pk: Likewise.

2019-10-20  Jose E. Marchesi  <jemarch@gnu.org>

	* src/pkl-trans.c (pkl_trans1_ps_print_stmt): Fix diagnostic for
	unclosed styling class tags.
	* testsuite/poke.pkl/printf-diag-6.pk: New file.
	* testsuite/poke.pkl/printf-diag-7.pk: Likewise.
	* testsuite/poke.pkl/printf-diag-8.pk: Likewise.

2019-10-20  Jose E. Marchesi  <jemarch@gnu.org>

	* src/pkl-promo.c (pkl_promo_ps_print_stmt): Skip arguments
	without associated values.
	* src/pkl-typify.c (pkl_typify1_ps_print_stmt): Likewise.
	* src/pkl-gen.c (pkl_gen_pr_print_stmt): Generate code for styling
	class format directives.
	* src/pkl-trans.c (pkl_trans1_ps_print_stmt): Support %<class: and
	%> format directives.

2019-10-19  Jose E. Marchesi  <jemarch@gnu.org>

	* src/pkl-ast.h (struct pkl_ast_print_stmt_arg): New fields
	begin_sc and end_sc.
	(PKL_AST_PRINT_STMT_ARG_BEGIN_SC): Define.
	(PKL_AST_PRINT_STMT_ARG_END_SC): Likewise.
	* src/pkl-ast.c (pkl_ast_node_free): Dispose the memory of
	begin_sc and end_sc.
	(pkl_ast_print_1): Print begin_sc and end_sc fields.

2019-10-19  Jose E. Marchesi  <jemarch@gnu.org>

	* src/pvm.jitter (wrapped-functions): Add pk_term_class and
	pk_term_end_class.
	(begsc): New instruction.
	(endsc): Likewise.
	* src/pkl-insn.def: Define instructions begsc and endsc.

2019-10-19  Jose E. Marchesi  <jemarch@gnu.org>

	* src/pkl-pass.h (PKL_PASS_COMPILER): Define.
	(PKL_PASS_SUBPASS): Pass compiler to pkl_do_subpass.
	(PKL_PHASE_BEGIN_HANDLER): The node handler gets a compiler.
	(pkl_do_pass): Get a compiler argument.
	* src/pkl-pass.c (pkl_do_subpass): Handle new argument compiler.
	(pkl_do_pass): Likewise.
	(pkl_call_node_handlers): Likewise.
	(pkl_do_pass_1):  Likewise.
	(PKL_CALL_PHASES): Pass `compiler' to pkl_do_pass_1.
	(PKL_CALL_PHASES_SINGLE): Likewise.
	(PKL_PASS): Likewise.
	(PKL_PASS_CHAIN): Likewise.
	(pkl_do_pass_1): Likewise.
	(pkl_do_subpass): Likewise.
	* src/pkl.c (rest_of_compilation): Pass poke_compiler to
	pkl_do_pass.

2019-10-19  Jose E. Marchesi  <jemarch@gnu.org>

	* src/pkl.c (struct pkl_compiler): New field error_on_warning.
	(pkl_error_on_warning): New function.
	(pkl_set_error_on_warning): Likewise.
	* src/pkl.h: Prototypes for pkl_error_on_warning and
	pkl_set_error_on_warning.
	* src/pk-cmd.c (pk_cmd_exec_1): Support `-' characters in command
	names.
	* src/pk-set.c (set_error_on_warning_cmd): New variable.
	(pk_cmd_set_error_on_warning): New function.
	(set_cmds): Add set_error_on_warning_cmd.

2019-10-19  Jose E. Marchesi  <jemarch@gnu.org>

	* TODO (#B0 remove hard limit in PKL_AST_MAX_POINTERS): New todo
	entry.
	(#A1 fold "isa" expressions): Likewise.

2019-10-18  Jose E. Marchesi  <jemarch@gnu.org>

	* testsuite/poke.map/maps-unions-5.pk: New file.

2019-10-18  Jose E. Marchesi  <jemarch@gnu.org>

	* src/pkl-gen.pks (struct_mapper): Generate code for declarations.
	(struct_constructor): Likewise.
	* testsuite/poke.pkl/struct-types-2.pk: New file.
	* testsuite/poke.map/maps-structs-11.pk: Likewise.
	* testsuite/poke.pkl/struct-types-3.pk: Likewise.
	* testsuite/poke.pkl/struct-types-4.pk: Likewise.
	* testsuite/poke.map/maps-structs-12.pk: Likewise.
	* testsuite/poke.pkl/struct-types-5.pk: Likewise.
	* testsuite/poke.map/maps-structs-13.pk: Likewise.

2019-10-18  Jose E. Marchesi  <jemarch@gnu.org>

	* src/pkl-ast.h (struct pkl_ast_type): Add nelem and ndecl fields
	to struct types.
	* src/pkl-trans.c (pkl_trans1_ps_type_struct): Count number of
	fields and declarations.
	* src/pkl-ast.c (pkl_ast_print_1): Print nfield and ndecl of
	struct types.
	(pkl_ast_dup_type): Copy ndecl and nfield when
	duplicating struct types.
	(pkl_ast_make_struct_type): Get nfield and ndecl arguments.
	* src/pkl-typify.c (pkl_typify1_ps_struct): Pass extra arguments
	to pkl_ast_make_struct_type.
	* src/pkl-gen.c (pkl_gen_ps_type_struct): Use
	PKL_AST_TYPE_S_NFIELD.

2019-10-18  Jose E. Marchesi  <jemarch@gnu.org>

	* src/pkl-tab.y (struct_field_type): Fix location of diagnostic
	for duplicated struct elements.
	* src/pkl-anal.c (pkl_anal1_ps_struct): Improve diagnostic.
	* testsuite/poke.pkl/struct-types-diag-5.pk: New test.
	* testsuite/poke.pkl/struct-types-diag-6.pk: Likewise.
	* testsuite/poke.pkl/struct-types-diag-7.pk: Likewise.

2019-10-18  Jose E. Marchesi  <jemarch@gnu.org>

	* src/pkl-anal.c (pkl_nala1_ps_type_struct): Fix typo in variable
	names.

2019-10-18  Jose E. Marchesi  <jemarch@gnu.org>

	* src/pkl-gen.c (pkl_gen_pr_decl): Rename type_struct_fields to
	type_struct_elems.
	(pkl_gen_pr_type_struct): Likewise.
	* src/pkl-gen.pks: Adapt to the fact struct type elements can be
	either struct type fields or declarations.

2019-10-18  Jose E. Marchesi  <jemarch@gnu.org>

	* src/pkl-ast.c (pkl_ast_dup_type): Adapt to the fact struct type
	elements can be either struct type fields or declarations.
	(pkl_ast_sizeof_type): Likewise.
	(pkl_print_type): Likewise.

2019-10-18  Jose E. Marchesi  <jemarch@gnu.org>

	* src/pkl-typify.c (pkl_typify1_ps_struct_ref): Adapt to the fact
	struct type elements can be either struct type fields or
	declarations.
	(pkl_typify1_ps_scons): Likewise.

2019-10-18  Jose E. Marchesi  <jemarch@gnu.org>

	* src/pkl-anal.c (pkl_anal1_ps_type_struct): Adapt to the fact
	struct type elements can be either struct type fields or
	declarations.
	(pkl_anal2_ps_type_struct): Likewise.

2019-10-18  Jose E. Marchesi  <jemarch@gnu.org>

	* src/pkl-ast.h: Document that struct elements can be fields or
	declarations.
	* src/pkl-tab.y: Rename the struct_type_field_list rule to
	struct_type_elem_list.
	(struct_type_elem_list): Add declarations.

2019-10-18  Jose E. Marchesi  <jemarch@gnu.org>

	* src/pkl-anal.c (pkl_anal1_ps_type_struct): Rename
	struct_field_type to struct_type_field.
	(pkl_anal2_ps_type_struct): Likewise.
	* src/pkl-typify.c (pkl_typify1_ps_struct): Likewise.
	(pkl_typify1_ps_struct_ref): Likewise.
	(pkl_typify1_ps_scons): Likewise.
	(pkl_typify1_ps_attr): Likewise.
	* src/pkl-tab.y: Likewise.
	* src/pkl-promo.c (pkl_promo_ps_struct_type_field): Likewise.
	* src/pkl-pass.c (pkl_do_pass_1): Likewise.
	* src/pkl-gen.pks (handle_struct_field_name): Likewise.
	(check_struct_field_constraint): Likewise.
	(struct_mapper): Likewise.
	(struct_field_mapper): Likewise.
	* src/pkl-gen.c (pkl_gen_pr_type): Likewise.
	(pkl_gen_pr_type_array): Likewise.
	(pkl_gen_pr_struct_type_field): Likewise.
	* src/pkl-ast.h (enum pkl_ast_code): Likewise.
	(PKL_AST_STRUCT_TYPE_FIELD_NAME): Likewise.
	(PKL_AST_STRUCT_TYPE_FIELD_TYPE): Likewise.
	(PKL_AST_STRUCT_TYPE_FIELD_CONSTRAINT): Likewise.
	(PKL_AST_STRUCT_TYPE_FIELD_LABEL): Likewise.
	(struct pkl_ast_struct_type_field): Likewise.
	* src/pkl-ast.c (pkl_ast_make_struct_field_type): Likewise.
	(pkl_ast_dup_type): Likewise.
	(pkl_ast_sizeof_type): Likewise.
	(pkl_print_type): Likewise.
	(pkl_ast_node_free): Likewise.
	(pkl_ast_print_1): Likewise.

2019-10-17  Jose E. Marchesi  <jemarch@gnu.org>

	* src/pkl-asm.c (pkl_asm_pushlevel): Use pvm_alloc instead of
	malloc.
	(pkl_asm_new): Likewise.
	(pkl_asm_poplevel): Do not free memory.
	(pkl_asm_finish): Likewise.
	* src/pvm-alloc.c (pvm_alloc_initialize): Enable garbage
	collection.

2019-10-17  Jose E. Marchesi  <jemarch@gnu.org>

	* src/pkl.h: Add an additional POINTERS to pkl_compile_expression.
	* src/pkl.c (pkl_compile_expression): Likewise.
	* src/pk-cmd.c (pk_cmd_exec_1): Keep a `pointers' variable in the
	stack and pass it to pkl_compile_expression.
	* src/pvm-alloc.c (pvm_alloc_initialize): Disable garbage
	collection.

2019-10-16  Jose E. Marchesi  <jemarch@gnu.org>

	* src/pkl-asm.c (pkl_asm_new): fix pasm->pointers initialization.

2019-10-16  Jose E. Marchesi  <jemarch@gnu.org>

	* src/pkl-anal.c (pkl_anal2_ps_type_struct): adjust conditions for
	the "unreachable alternative in union" warning.

2019-10-16  Jose E. Marchesi  <jemarch@gnu.org>

	* pickles/future/bson.pk: Rewrite in modern Poke.

2019-10-16  Jose E. Marchesi  <jemarch@gnu.org>

	* src/pkl-gen.pks (struct_mapper): Raise E_constraint if no valid
	alternatives are found while mapping an union.
	* testsuite/poke.map/maps-unions-3.pk: Fix the test to reflect the
	above change.

2019-10-16  Jose E. Marchesi  <jemarch@gnu.org>

	* src/pvm.jitter (pvm_literal_printer_cast): flush output buffers
	to assure the right order in the output.
	(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.

2019-10-16  Jose E. Marchesi  <jemarch@gnu.org>

	* testsuite/poke.pkl/cast-array-diag-5.pk: Fix test.

2019-10-16  Jose E. Marchesi  <jemarch@gnu.org>

	* etc/poke-ras-mode.el: New file.
	* src/pkl-gen.pks: Use poke-ras-mode.
	* src/pkl-asm.pks: Likewise.
	* HACKING (Appendix): Mention etc/poke-ras-mode.el.

2019-10-16  Jose E. Marchesi  <jemarch@gnu.org>

	* src/ras: Support .label directives.
	* src/pkl-gen.pks (struct_mapper): Use .label.

2019-10-16  Jose E. Marchesi  <jemarch@gnu.org>
	    Bruno Haible <bruno@clisp.org>

	* HACKING (Boehm GC): New section.
	(Running an Uninstalled Poke): Mention POKESTYLESDIR.
	(Continuous Integration): New section.
	(Jitter): Clarify instructions on how to install jitter.

2019-10-15  Jose E. Marchesi  <jemarch@gnu.org>

	* testsuite/lib/poke-dg.exp (dg-command): Add a comment block
	explaining what the function does.
	(dg-command): Avoid a font-lock problem in Emacs.
	(dg-data): Fix indentation.

2019-10-15  Jose E. Marchesi  <jemarch@gnu.org>

	* TODO (#A0 fix multi-line warning messages): New todo entry.
	* HACKING (Future Developments): add note about supporting
	compile-time type checking for unions with alternatives with the
	same name.

2019-10-15  Jose E. Marchesi  <jemarch@gnu.org>

	* etc/poke-default.css: Remove trailing whitespaces.
	* src/pkl.c: Likewise.
	* src/poke.c: Likewise.
	* src/pvm-val.c: Likewise.

2019-10-15  Jose E. Marchesi  <jemarch@gnu.org>

	* src/pkl-gen.pks (struct_mapper): Support unions in the mapping
	algorithm.
	* testsuite/poke.map/maps-unions-1.pk: New file.
	* testsuite/poke.map/maps-unions-2.pk: Likewise.
	* testsuite/poke.map/maps-unions-3.pk: Likewise.
	* testsuite/poke.map/maps-unions-4.pk: Likewise.

2019-10-15  Jose E. Marchesi  <jemarch@gnu.org>

	* testsuite/poke.pkl/union-1.pk: Test fixed.

2019-10-15  Jose E. Marchesi  <jemarch@gnu.org>

	* src/pkl-anal.c (pkl_anal2_ps_type_struct): Pass an AST argument
	to pkl_warning.

2019-10-15  Jose E. Marchesi  <jemarch@gnu.org>

	* src/pkl-anal.c (pkl_anal2_ps_type_struct): New handler.
	(pkl_phase_anal2): Register pkl_anal2_ps_type_struct.
	* testsuite/poke.pkl/union-diag-1.pk: New file.
	* testsuite/poke.pkl/union-diag-2.pk: Likewise.
	* testsuite/poke.pkl/union-diag-3.pk: Likewise.

2019-10-15  Jose E. Marchesi  <jemarch@gnu.org>

	* src/pkl-ast.h (struct pkl_ast_type): New field union_p for
	struct types.
	(PKL_AST_TYPE_S_UNION): Define.
	(pkl_ast_make_struct_type): Get an union_p argument.
	* src/pkl-ast.c (pkl_ast_make_struct_type): Initialize union_p.
	(pkl_ast_dup_type): Handle union_p.
	(pkl_ast_print_1): Likewise.
	* src/pkl-tab.y (struct_type_specifier): Pass union_p to
	pkl_ast_make_struct_type.
	* src/pkl-typify.c (pkl_typify1_ps_struct): Likewise.

2019-10-15  Jose E. Marchesi  <jemarch@gnu.org>

	* src/pkl-lex.l: Support for token union.
	* src/pkl-tab.y (UNION): New token.
	(struct_or_union): New rule.
	(struct_type_specifier): Use struct_or_union.

2019-10-15  Jose E. Marchesi  <jemarch@gnu.org>

	* src/pkl.c (pkl_warning): Emit the filename containing the error.
	(pkl_error): Use <stdin> as the filename whenever necessary.
	(pkl_warning): Likewise.

2019-10-15  Jose E. Marchesi  <jemarch@gnu.org>

	* src/pkl.c (pkl_detailed_location): Get an additional argument
	specifying the style class to use for terminal output.
	(pkl_error): Pass the style class to pkl_detailed_location.
	(pkl_warning): Likewise.

2019-10-15  Jose E. Marchesi  <jemarch@gnu.org>

	* src/pkl.h: Make pkl_warning to get an AST argument.
	* src/pkl.c (pkl_detailed_location): New function.
	(pkl_error): Use pkl_detailed_location.
	(pkl_warning): Likewise.

2019-10-15  Jose E. Marchesi  <jemarch@gnu.org>

	* src/pk-file.c (pk_cmd_file): Use pk_printf instead of printf.
	(pk_cmd_close): Likewise.
	(print_info_file): Likewise.
	(pk_cmd_info_files): Likewise.
	(pk_cmd_load_file): Likewise.

2019-10-15  Jose E. Marchesi  <jemarch@gnu.org>

	* HACKING (libtextstyle): New section.

2019-10-14  Jose E. Marchesi  <jemarch@gnu.org>

	* src/pk-term.h: Prototypes for pk_term_hyperlink and
	pk_term_end_hyperlink.
	* src/pk-term.c (pk_term_hyperlink): New function.
	(pk_term_end_hyperlink): Likewise.
	* src/poke.c (pk_print_version): Use a terminal hyperlink for the
	GPLv3 webpage.

2019-10-14  Jose E. Marchesi  <jemarch@gnu.org>

	* HACKING (Terminal Handling): New chapter.
	(pk-term): New section.
	(Styling Classes): Likewise.
	(Debugging Styling): Likewise.

2019-10-14  Jose E. Marchesi  <jemarch@gnu.org>

	* configure.ac (ENABLE_DEBUG): ac_subst.
	(WITH_JITTER): Likewise.
	* Makefile.am (AM_DISTCHECK_CONFIGURE_FLAGS): Specify
	--with-jitter and --enable-debug options.
	* src/Makefile.am (poke_SOURCES): Add pkl-insn.def, pkl-ops.def
	and pkl-attrs.def.
	(BUILT_SOURCES): Add pvm-vm.h, pvm-vm1.c and pvm-vm2.c.

2019-10-10  Jose E. Marchesi  <jemarch@gnu.org>

	* etc/poke-default.css: New file.
	* src/pk-term.c: Likewise.
	* Makefile.am (SUBDIRS): Add etc/.
	* src/pvm.jitter: pk_printf is a wrapped function.
	Include pk-term.h in early-c.
	Use pk-term printing services in pretty printers and instructions.
	* src/pvm-val.h: pvm_print_string and pvm_print_val do not take a
	FILE* argument any longer.
	* src/pvm-val.c (pvm_print_binary): Likewise.
	(pvm_print_val): Likewise.
	(pvm_print_string): Likewise.
	* src/poke.c: Include pk-term.h.
	Support --color and --style long options.
	(print_help): Use print services from pk-term.
	(pk_print_version): Likewise.
	(finalize): Shutdown the pk-term subsystem.
	(repl): Likewise.
	(parse_args): Handle --color and -style.
	(initialize): Get argc and argv as arguments.
	(initialize): Initialize the pk-term subsystem.
	(main): Pass argc and argv to `initialize'.
	* src/pkl.c (pkl_new): Likewise.
	(pkl_error): Likewise.
	(pkl_warning): Likewise.
	(pkl_ice): Likewise.
	* src/pk-vm.c (pk_cmd_vm_disas_fun): Use print services from
	pk-term.
	(pk_cmd_vm_disas_map): Likewise.
	(pk_cmd_vm_disas_writ): Likewise.
	* src/pk-term.h: Include textstyle.h.
	Remove obsolete constants.
	Add prototypes for pk-term services.
	* src/pk-set.c: Include pk-term.h.
	(pk_cmd_set_obase): Use print services form pk-term.
	(pk_cmd_set_endian): Likewise.
	(pk_cmd_set_nenc): Likewise.
	* src/pk-print.c: Include pk-term.h.
	(pk_cmd_print): Use print services from pk-term.
	* src/pk-def.c: Include pk-term.h.
	(print_var_decl): Use print services from pk-term.
	(print_fun_decl): Likewise.
	* src/pk-cmd.c: Include pk-term.h.
	(pk_cmd_exec_1): Use print services from pk-term.
	(pk_cmd_exec): Likewise.
	* src/Makefile.am (poke_CPPFLAGS): Add $(top_builddir)/lib to the
	include path.
	* bootstrap.conf (gnulib_modules): Add textstyle-optional.
	* configure.ac: Use gl_LIBTEXTSTYLE_OPTIONAL.
	* src/Makefile.am (poke_LDADD): Link with libtextstyle.
	* testsuite/lib/poke-dg.exp (poke-dg-test): Pass --color=no to
	poke when running tests.
	* testsuite/lib/poke.exp (poke_start): Likewise.
	* HACKING (Appendix):List src/pk-term.c in sources.

2019-10-07  Jose E. Marchesi  <jemarch@gnu.org>

	* src/pkl.c (pkl_error): Fix truncation of source code sample in
	detailed error output.

2019-10-06  Jose E. Marchesi  <jemarch@gnu.org>

	* .x-sc_trailing_blank: Add TODO.
	* HACKING: Regenerate table of contents.

2019-10-05  Jose E. Marchesi  <jemarch@gnu.org>

	* HACKING (Deciding on What to Work on): New section referring to
	TODO.
	* TODO: Reformat and complete.

2019-10-05  Jose E. Marchesi  <jemarch@gnu.org>

	* doc/poke.texi (Flattening): Add a note about compile-time
	flattening of pinned structs.

2019-10-05  Jose E. Marchesi  <jemarch@gnu.org>

	* doc/poke.texi (String Indexing): New section.
	(String Concatenation): Likewise

2019-10-05  Jose E. Marchesi  <jemarch@gnu.org>

	* src/Makefile.am (poke_CPPFLAGS): Add $(top_builddir)/lib to the
	headers search path.

2019-10-04  Jose E. Marchesi  <jemarch@gnu.org>

	* HACKING (Submitting a Patch): Add a note about running `make
	syntax-check'.

2019-10-04  Jose E. Marchesi  <jemarch@gnu.org>

	* cfg.mk (local-checks-to-skip): Remove sc_trailing_blank.
	* .x-sc_trailing_blanks: New file.
	* pickles/elf.pk: Remove trailing blanks.
	* etc/poke-gdb.scm: Likewise.
	* doc/poke.texi: Likewise.
	* testsuite/poke.std/std.exp: Likewise.
	* testsuite/poke.pkl/try-catch-2.pk: Likewise.
	* testsuite/poke.pkl/structs.pk: Likewise.
	* testsuite/poke.pkl/promo-array-arg-diag-7.pk: Likewise.
	* testsuite/poke.pkl/promo-array-arg-8.pk: Likewise.
	* testsuite/poke.pkl/pkl.exp: Likewise.
	* testsuite/poke.pkl/loop-4.pk: Likewise.
	* testsuite/poke.pkl/loop-3.pk: Likewise.
	* testsuite/poke.pkl/funcall-def-diag-7.pk: Likewise.
	* testsuite/poke.pkl/funcall-def-diag-5.pk: Likewise.
	* testsuite/poke.pkl/funcall-def-2.pk: Likewise.
	* testsuite/poke.pkl/fun-types-4.pk: Likewise.
	* testsuite/poke.pkl/fun-types-3.pk: Likewise.
	* testsuite/poke.pkl/for-in-2.pk: Likewise.
	* testsuite/poke.pkl/defun-12.pk: Likewise.
	* testsuite/poke.pkl/defun-10.pk: Likewise.
	* testsuite/poke.pkl/break-while-2.pk: Likewise.
	* testsuite/poke.pkl/break-while-1.pk: Likewise.
	* testsuite/poke.pkl/break-for-1.pk: Likewise.
	* testsuite/poke.pkl/array-siz-1.pk: Likewise.
	* testsuite/poke.map/maps-structs-constraints-1.pk: Likewise.
	* testsuite/poke.map/maps-arrays-4.pk: Likewise.
	* testsuite/poke.map/map.exp: Likewise.
	* testsuite/poke.cmd/cmd.exp: Likewise.
	* testsuite/lib/poke.exp: Likewise.
	* testsuite/lib/poke-dg.exp: Likewise.
	* src/std.pk: Likewise.
	* src/ras: Likewise.
	* src/pvm.jitter: Likewise.
	* src/pkl-insn.def: Likewise.
	* src/pkl-gen.pks: Likewise.
	* src/pkl-asm.pks: Likewise.
	* src/pk-dump.pk: Likewise.

2019-10-04  Henner Zeller  <h.zeller@acm.org>

	* src/ios-dev.h: Remove trailing spaces.
	* src/ios.c: Likewise.
	* src/ios.h: Likewise.
	* src/pk-cmd.c: Likewise.
	* src/pk-def.c: Likewise.
	* src/pk-file.c: Likewise.
	* src/pk-misc.c: Likewise.
	* src/pk-print.c: Likewise.
	* src/pk-set.c: Likewise.
	* src/pk-vm.c: Likewise.
	* src/pkl-anal.c: Likewise.
	* src/pkl-asm.c: Likewise.
	* src/pkl-asm.h: Likewise.
	* src/pkl-ast.c: Likewise.
	* src/pkl-ast.h: Likewise.
	* src/pkl-env.c: Likewise.
	* src/pkl-fold.c: Likewise.
	* src/pkl-gen.c: Likewise.
	* src/pkl-lex.l: Likewise.
	* src/pkl-parser.c: Likewise.
	* src/pkl-pass.c: Likewise.
	* src/pkl-pass.h: Likewise.
	* src/pkl-promo.c: Likewise.
	* src/pkl-tab.y: Likewise.
	* src/pkl-trans.c: Likewise.
	* src/pkl-trans.h: Likewise.
	* src/pkl-typify.c: Likewise.
	* src/pkl.c: Likewise.
	* src/poke.c: Likewise.
	* src/pvm-alloc.h: Likewise.
	* src/pvm-env.c: Likewise.
	* src/pvm-val.c: Likewise.
	* src/pvm-val.h: Likewise.

2019-10-04  Jose E. Marchesi  <jemarch@gnu.org>

	* cfg.mk (local-checks-to-skip): Add sc_tight_scope.
	* .x-sc_makefile_TAB_only_indentation: New file.
	* .x-sc_prohibit_empty_lines_at_EOF: Likewise.
	* .x-sc_makefile_path_separator_check: Likewise.
	* .x-sc_prohibit_undesirable_word_seq: Likewise.
	* .x-sc_tight_scope: Likewise.
	* testsuite/poke.pkl/rand-1.pk: Remove empty lines at EOF.
	* ChangeLog: Likewise.

2019-10-03  Henner Zeller  <h.zeller@acm.org>

	* .gitignore: ignore src/*.o files.

2019-10-03  Henner Zeller  <h.zeller@acm.org>

	* src/pk-dump.pk (pk_dump_ascii): Default to 1.
	(dump): Provide ASCII output.

2019-10-03  Henner Zeller  <h.zeller@acm.org>

	* src/pkl-trans.c: Include gettext.h and define _ for i18n.
	(pkl_trans1_ps_print_stmt): Handle %c format tags.
	Add more specific (i18n'd) error messages in format-string
	parsing.
	* src/pvm.jitter (PVM_PRINTI): Handle %c.

2019-10-03  Jose E. Marchesi  <jemarch@gnu.org>

	* src/pkl.c (rest_of_compilation): Do not traverse node types in
	the lex pass.
	* src/pkl-trans.c (pkl_transl_pr_type_struct): New handler.
	* testsuite/poke.map/maps-arrays-15.pk: New test.

2019-10-03  Jose E. Marchesi  <jemarch@gnu.org>

	* HACKING (Building): Mention --skip-po to invoke bootstrap, and
	other updates.

2019-10-03  Jose E. Marchesi  <jemarch@gnu.org>

	* HACKING (Writing Poke): Add a note about using CamelCase for
	type names.

2019-10-02  Jose E. Marchesi  <jemarch@gnu.org>

	* src/std.pk (NULL): New variable.

2019-10-02  Jose E. Marchesi  <jemarch@gnu.org>

	* pickles/ctf.pk (ctf_section): Removed, as this replicates logic
	in elf_section_by_name.

2019-10-02  Jose E. Marchesi  <jemarch@gnu.org>

	* src/poke.c (print_help): Fix TRANSLATORS: commands to refer to
	poke.

2019-10-02  gettextize  <bug-gnu-gettext@gnu.org>

	* m4/lib-ld.m4: Upgrade to gettext-0.19.8.1.
	* m4/lib-link.m4: Upgrade to gettext-0.19.8.1.
	* m4/lib-prefix.m4: Upgrade to gettext-0.19.8.1.
	* configure.ac (AM_GNU_GETTEXT_VERSION): Bump to 0.19.8.

2019-10-02  Jose E. Marchesi  <jemarch@gnu.org>

	* Makefile.am (SUBDIRS): Add po/.

2019-10-02  Jose E. Marchesi  <jemarch@gnu.org>

	* pickles/elf.pk (Elf64_Addr): turn type into an offset.
	(Elf64_Rela): Adjust accordingly.

2019-10-02  Jose E. Marchesi  <jemarch@gnu.org>

	* pickles/elf.pk (elf_section_by_name): New function.
	(elf_section_by_type): Likewise.
	(SHT_DYNSYM): Define.
	(elf_string): Add comment with documentation.

2019-10-01  Jose E. Marchesi  <jemarch@gnu.org>

	* pickles/Makefile.am (dist_pkgdata_DATA): Distribute elf.pk and
	ctf.pk only.
	* pickles/future/bmp.pk: Moved from pickles/
	* pickles/future/tar.pk: Likewise.
	* pickles/future/swf.pk: Likewise.
	* pickles/future/pdp10.pk: Likewise.
	* pickles/future/mp3.pk: Likewise.
	* pickles/future/leb128.pk: Likewise.
	* pickles/future/jpeg.pk: Likewise.
	* pickles/future/id3v2.pk: Likewise.
	* pickles/future/id3v1.pk: Likewise.
	* pickles/future/gzip.pk: Likewise.
	* pickles/future/flv.pk: Likewise.
	* pickles/future/elf-future.pk: Likewise.
	* pickles/future/dwarf.pk: Likewise.
	* pickles/future/deflate.pk: Likewise.
	* pickles/future/bson.pk: Likewise.

2019-10-01  Jose E. Marchesi  <jemarch@gnu.org>

	* src/pk-file.c (pk_cmd_load_file): Try to load the specified file
	relative to the current working directory, then look in datadir.

2019-09-30  Jose E. Marchesi  <jemarch@gnu.org>

	* HACKING: (Nomenclature): New section.

2019-09-30  Jose E. Marchesi  <jemarch@gnu.org>

	* HACKING (Writing C): New section, referring to the GNU Coding
	Standards.
	(Submitting a Patch): New section.

2019-09-11  Jose E. Marchesi  <jemarch@gnu.org>

	* HACKING (readline): New section in Development Environment,
	about the dependency libreadline.

2019-09-07  Jose E. Marchesi  <jemarch@gnu.org>

	* src/pk-cmd.c (pk_cmd_exec_1): Avoid a buffer overrun when
	doing tilde expansion in file names.

2019-09-07  Jose E. Marchesi  <jemarch@gnu.org>

	* HACKING (Jitter): Document a set of recommended switches to use
	when configuring jitter.

2019-09-07  Jose E. Marchesi  <jemarch@gnu.org>

	* HACKING (Adding Compiler Built-Ins): New section.

2019-09-07  Jose E. Marchesi  <jemarch@gnu.org>

	* src/pk-cmd.c (skip_blanks): handle p == NULL.

2019-09-07  Jose E. Marchesi  <jemarch@gnu.org>

	* src/pkl-promo.c (pkl_promo_ps_op_unary): Initialize `restart'.
	* src/pkl-lex.l: Avoid a dead initialization.
	* src/pkl.c (pkl_error): Likewise.
	* src/pkl-typify.c (pkl_typify1_ps_funcall): Likewise.
	* src/pkl-gen.c (pkl_gen_pr_ass_stmt): Likewise.
	* src/pkl-asm.c (pkl_asm_insn): Avoid the possibility of a NULL
	deference.

2019-09-06  Jose E. Marchesi  <jemarch@gnu.org>

	* src/pkl-insn.def: New instruction RAND.
	* src/pvm.jitter (rand): New instruction.
	(wrapped-functions): Add wrapper for `random'.
	* bootstrap.conf (gnulib_modules): Add `random' gnulib module.
	* src/pkl-ast.h (PKL_AST_BUILTIN_RAND): Define.
	* src/pkl-gen.c (pkl_gen_ps_comp_stmt): Emit code for the RAND
	built-int.
	* src/pkl-lex.l: Recognize BUILTIN_RAND token.
	* src/pkl-tab.y: Define token BUILTIN_RANDR.
	(comp_stmt): New rule for builtin randr.
	* testsuite/poke.pkl/rand-1.pk: New file.

2019-09-06  Jose E. Marchesi  <jemarch@gnu.org>

	* HACKING (Jitter): Replace git:// URL with an http://, for
	jitter.
	(Development Environment): Add a note about setting POKEDATADIR to
	run an uninstalled poke.

2019-09-06  Jose E. Marchesi  <jemarch@gnu.org>

	* HACKING (Jitter): Add information on the dependency on jitter.
