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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

	* bootstrap.conf (bootstrap_epilogue): Define.

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

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

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

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

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

	* libpoke/pkl-ast.c: Likewise.

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

	* AUTHORS: Add Hannes Domani.

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

	* libpoke/libpoke.h (pk_make_int): Add new param of type `pk_compiler'.
	(pk_make_uint): Likewise.
	(pk_make_string): Likewise.
	(pk_make_offset): Likewise.
	(pk_make_struct): Likewise.
	(pk_make_array): Likewise.
	(pk_make_integral_type): Likewise.
	(pk_make_string_type): Likewise.
	(pk_make_any_type): Likewise.
	(pk_make_offset_type): Likewise.
	(pk_make_struct_type): Likewise.
	(pk_make_array_type): Likewise.
	* libpoke/pk-val.c (pk_make_int): Likewise.
	(pk_make_uint): Likewise.
	(pk_make_string): Likewise.
	(pk_make_offset): Likewise.
	(pk_make_struct): Likewise.
	(pk_make_array): Likewise.
	(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_ps_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.
