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

	* configure.ac: Bump version to 2.1.
	* NEWS: Likewise.
	* doc/gendocs_template: Likewise.

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

	* configure.ac: Bump version to 2.0.92.
	* NEWS: Update.

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.


	(pk_cmd_proc): Likewise.

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>

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

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

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

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

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