2022-05-04  Rutger van Beusekom  <rutger@dezyne.org>

	c++: Remove obsolete static dzn::coroutine::s_current.
	This is a follow-up to commit
	    8e9cb483c26ee91e19a3c1430b36a80ea48f4f62
	    c++: Fix illegal caused by deleting and re-instantiating the pump.

	* runtime/c++/dzn/coroutine.hh (coroutine::s_current)
	[HAVE_BOOST_COROUTINE]: Remove declaration.
	(coroutine::yield)[HAVE_BOOST_COROUTINE]: Do not set it.
	* runtime/c++/runtime.cc (s_current)[HAVE_BOOST_COROUTINE]: Remove
	instantiation.

2022-05-04  Jan (janneke) Nieuwenhuizen  <janneke@gnu.org>

	guix: dezyne: Update to 2.15.0.rc4.
	* guix/gnu/packages/dezyne.scm (dezyne)[source]: Update to 2.15.0.rc4.

2022-05-04  Rutger van Beusekom  <rutger@dezyne.org>
	    Rutger van Beusekom  <rutger@dezyne.org>

	test: Add deadlock_reply (thanks Perry).
	Reported by Perry van Wesel <perry.van.wesel@thermofisher.com>.

	* test/all/deadlock_reply: New test.
	* test/all/local.mk (REGRESSION_TESTS): Add it.

2022-05-04  Jan (janneke) Nieuwenhuizen  <janneke@gnu.org>
	    Rutger van Beusekom  <rutger@dezyne.org>

	vm: Deadlock on reply outside of provides context.
	* dzn/vm/goops.scm (<q-trigger>)[modeling?]: New field.
	* dzn/vm/step.scm (step-async-action-down, step-action-up): Set it.
	(step)[reply]: Check it to disallow reply in non-blocking modeling
	context.

2022-05-04  Rutger van Beusekom  <rutger@dezyne.org>

	test: Add pump_twice.
	Thanks to (logocp) Joran Jessurun <joran.jessurun@thermofisher.com>.

	* test/all/pump_twice: New test.
	* test/all/local.mk (REGRESSION_TESTS): Add it.

2022-05-04  Rutger van Beusekom  <rutger@dezyne.org>

	cs: Make global coroutine identifiers pump scoped.
	This cleanup brings cs in line with c++ and potentially fixes
	re-instantiating the pump by making global coroutine identifiers pump
	scoped, that might otherwise get assigned a different coroutine id,
	notably using id 0 for the first coroutine.  Id 0 would mean:
	not-handling which causes problems.

	* runtime/cs/dzn/context.cs (get_id): Remove get_id.
	* runtime/cs/dzn/coroutine.cs (coroutine), (get_id): Remove usage.
	* runtime/cs/pump.cs (create_context): Pass id to coroutine constructor.
	* runtime/cs/dzn/runtime.cs (call_in, call_out): Determine coroutine id,
	(defer, flush, handle): Pass it.
	(flush): Add template specialization.
	* dzn/templates/cs/flush@trigger: Determine coroutine id.

2022-05-04  Rutger van Beusekom  <rutger@dezyne.org>

	c++: Fix illegal caused by deleting and re-instantiating the pump.
	This is a follow-up to commit
	    0e44e35c7f4432867d27804646d7a3d93e1d59da
	    c++: Retype handling from bool to coroutine id (size_t).

	This fixes re-instantiating the pump by making global coroutine
	identifiers pump scoped, that might otherwise get assigned a different
	coroutine id, notably using id 0 for the first coroutine.  Id 0 would
	mean: not-handling which causes problems.

	Reported by Joran Jessurun <joran.jessurun@ajmail.nl> via IRC.

	* runtime/c++/dzn/context.hh (get_id): Remove get_id.
	* runtime/c++/dzn/coroutine.hh (coroutine, get_id): Remove usage.
	* runtime/c++/dzn/pump.hh (struct pump): Implement here.
	* runtime/c++/pump.cc (create_context): Pass id to coroutine constructor.
	* runtime/c++/dzn/runtime.hh (call_in, call_out): Determine coroutine id,
	(defer, flush, handle): Pass it.
	(flush): Add template specialization.
	* runtime/c++/runtime.cc (runtime::defer, runtime::flush,
	runtime::handle): Pass coroutine_id.
	* dzn/templates/c++/flush@trigger: Determine coroutine id.

2022-05-04  Rutger van Beusekom  <rutger@dezyne.org>

	test: Add compliance_blocking_async_race.
	* test/all/compliance_blocking_async_race: New test.
	* test/all/local.mk (REGRESSION_TESTS): Add it.

	makreel: Allow collateral blocking race after async.

2022-05-04  Jan (janneke) Nieuwenhuizen  <janneke@gnu.org>
	    Rutger van Beusekom  <rutger@dezyne.org>

	simulate: Avoid erroneous state update with non-matching trace.
	Reported by Perry van Wesel <perry.van.wesel@thermofisher.com>.

	By truncating a blocking trace for non-provides triggers, a
	non-compliant trace would--instead of being discarded--cause a state
	update of the provides port.

	* dzn/simulate.scm (check-provides-compliance): Do not truncate trace
	for non-provides trigger.

2022-05-04  Jan (janneke) Nieuwenhuizen  <janneke@gnu.org>

	simulate: Debug report check-compliance exit cases.
	* dzn/simulate.scm (check-provides-compliance): %debug print exit cases.

2022-04-29  Jan (janneke) Nieuwenhuizen  <janneke@gnu.org>

	guix: dezyne: Update to 2.15.0.rc3.
	* guix/gnu/packages/dezyne.scm (dezyne)[source]: Update to 2.15.0.rc3.

	test/language: Add copyright header to component-{bool,data,enum,int}.dzn.
	* test/language/component-bool.dzn,
	test/language/component-data.dzn,
	test/language/component-enum.dzn,
	test/language/component-int.dzn: Add copyright header.  Include extra
	empty lines to allow for new copyright holders without having to update
	all 22 tests.  This adds 50 extra lines.
	* test/dzn/language.scm ("bool literal", "bool local", "bool reply",
	"bool formal", "enum literal", "enum field", "enum local", "enum reply",
	"enum formal", "int literal", "int local", "int reply", "int formal",
	"data literal", "data local", "data formal", "bool var->formal", "enum
	var->formal", "int var->formal", "data var->formal", "data
	arg->formal"): Update accordingly, adding 50 to all line numbers.

2022-04-29  Jan (janneke) Nieuwenhuizen  <janneke@gnu.org>

	commands: Fail gracefully when using an invalid --queue-size option.
	Reported by Perry van Wesel <perry.van.wesel@thermofisher.com>.

	* dzn/command-line.scm (command): New procedure, factored-out from...
	(command-line:get): ...here.
	(command-line:get-number): Use it in new procedure.
	* dzn/commands/code.scm (main): Use it to fail gracefully if
	--queue-size is not a number.
	* dzn/commands/graph.scm (main): likewise.
	* dzn/commands/simulate.scm (main): Likewise.
	* dzn/code/makreel.scm (root->): Likewise.

2022-04-29  Rutger van Beusekom  <rutger@dezyne.org>

	test: Add match_blocking_race.
	* test/all/match_blocking_race: New test.
	* test/all/local.mk (REGRESSION_TESTS): Add it.

2022-04-29  Rutger van Beusekom  <rutger@dezyne.org>
	    Jan (janneke) Nieuwenhuizen  <janneke@gnu.org>

	simulate: Avoid <illegal> upon action from blocked port.
	Reported by Perry van Wesel <perry.van.wesel@thermofisher.com>.

	* dzn/vm/run.scm (run-to-completion*)[modeling?]: New inner define.  Use
	it to filter-out modeling traces when blocked on port, instead of
	also marking an out-action as <illegal> upfront.

2022-04-29  Jan (janneke) Nieuwenhuizen  <janneke@gnu.org>

	emacs: Add dzn-system (C-c C-s) displaying system view.
	* emacs/dzn-mode.el (dzn-dot-program): New variable.
	(dzn-system): Use it in new function.
	(dzn-mode-map): Bind it to C-c C-s.
	(dzn-command-menu): Add it to menu.

2022-04-29  Jan (janneke) Nieuwenhuizen  <janneke@gnu.org>

	emacs: Run simulate after verify.
	This resurrects inspecting verification errors by walking through the
	verification trace using the compilation buffer.

	* emacs/dzn-mode.el (dzn-daemon-url): Remove.
	(dzn-command-list): Remove obsolete commands.
	(dzn-pipe): New function.
	(dzn-verify): Use it to run simulate.
	* emacs/pre-inst-env.el: Fix thinko in comment.
	(ide:pre-inst-env): Rename to...
	(pre-inst-env): ..this.

2022-04-27  Jan (janneke) Nieuwenhuizen  <janneke@gnu.org>

	guix: dezyne: Update to 2.15.0.rc2.
	* guix/gnu/packages/dezyne.scm (dezyne)[source]: Update to 2.15.0.rc2.

	doc: Update `NEWS' and `ANNOUNCE-2.15.0'.
	* NEWS (Simulation): Mention the interface livelock check, external
	queue-full check and -C,--no-compliance, `--no-interface-livelock', and
	`-Q,--no-queue-full' options,
	(Noteworthy bug fixes): Mention well-formedness hang and an interface
	shadowing its namespace.
	* doc/announce/ANNOUNCE-2.15.0: Likewise.

2022-04-27  Rutger van Beusekom  <rutger@dezyne.org>

	doc: Update `ROADMAP'.
	* ROADMAP (Release 2.15): Move tau-loop issues...
	(Release 2.18): ...here.
	(Release 2.15): Move done issues...
	(DONE): ...here.
	(Release 2.16): Add interleaving/ladders.
	(Release 2.19): Add active system / thread-safe-shell.

2022-04-27  Jan (janneke) Nieuwenhuizen  <janneke@gnu.org>

	build: Fix typo in release commit message.
	* Makefile.am (release): Remove stray ": ".

2022-04-27  Rutger van Beusekom  <rutger@dezyne.org>

	makreel: Fix performance when using multiple provides ports.
	This reverts to the former provides definition for non-blocking.
	Blocking taus lead to exponential growth of provides process with
	increasing number of ports.

	* dzn/templates/makreel.scm (provides-r2c-blocking-proc): Declare
	dedicated template for blocking.
	* dzn/templates/makreel/provides-r2c-blocking-proc@port: Implement it.
	* dzn/templates/makreel/model@component: Use it.
	* dzn/templates/makreel/provides-out@port: Merge blocking and
	non-blocking approaches.
	* dzn/templates/makreel/provides-r2c-proc@port: Revert to non-blocking
	implementation.
	* test/all/compliance_fork_provides/baseline/verify/compliance_fork_provides:
	Remove p_right.world.
	* test/all/compliance_fork_provides/trace: Likewise.

2022-04-26  Jan (janneke) Nieuwenhuizen  <janneke@gnu.org>

	test: Add space.import_interface_shadow.
	* test/all/space.import_interface_shadow: New test.
	* test/all/local.mk (REGRESSION_TESTS): Add it.

	test: Add space.interface_shadow.
	* test/all/space.interface_shadow: New test.
	* test/all/local.mk (REGRESSION_TESTS): Add it.

2022-04-26  Jan (janneke) Nieuwenhuizen  <janneke@gnu.org>

	tree: Search for name inside namespace first.
	This fixes finding the namespace instead of the item inside the
	namespace, if the item has the same name as the namespace.

	* dzn/parse/lookup.scm (search): When looking up a name in a namespace
	first search inside the namespace.

2022-04-26  Jan (janneke) Nieuwenhuizen  <janneke@gnu.org>

	ast: Search for name inside namespace first.
	This fixes finding the namespace instead of the item inside the
	namespace, if the item has the same name as the namespace.

	Reported by Joran Jessurun <joran.jessurun@ajmail.nl> via IRC.

	* dzn/ast.scm (ast:lookup-n): When looking up a name in a namespace
	first search inside the namespace.

2022-04-26  Jan (janneke) Nieuwenhuizen  <janneke@gnu.org>

	simulate: Cleanup setting of errors.
	No semantic changes, layouting only.

	* dzn/vm/step.scm (step)[illegal]: Let error to break long line.
	* dzn/vm/run.scm (run-external): Likweise.
	* dzn/vm/step.scm (step-async-action-down): Likewise.
	(step)[reply]: Likewise.
	(step)[trigger-retun]: Likewise.
	* dzn/vm/util.scm (enqueue, assign, make-pc): Likewise.

2022-04-25  Rutger van Beusekom  <rutger@dezyne.org>
	    Jan (janneke) Nieuwenhuizen  <janneke@gnu.org>

	simulate: Typo: Match return strictly when blocked on boundary.
	* dzn/vm/run.scm (extend-trace): Use the non-released orig-pc to
	determine being blocked on boundary.
	* test/all/collateral_blocking_reply/collateral_blocking_reply.dzn (iblock):
	Make non-deterministic by also dading false reply.

2022-04-25  Jan (janneke) Nieuwenhuizen  <janneke@gnu.org>

	simulate: Add -Q,--no-queue-full option.
	* dzn/commands/simulate.scm (parse-opts): Add --no-queue-full
	(main): Pass it to...
	* dzn/simulate.scm (simulate): ...new #:queue-full-check? parameter
	here.  Likewise, pass it to...
	(simulate*): ...new #:queue-full-check? parameter here.
	Likewies, pass it to...
	(simulate**): ...new #:queue-full-check? parameter here.
	Likewise, pass it to...
	(run-trail):  ...new #:queue-full-check? parameter here.
	Likewise, pass it to...
	(end-report): ...new #:queue-full-check? parameter here.  Only
	run check-external-queue-full if set.
	* doc/dezyne.texi (Invoking dzn simulate): Document it.

	simulate: Add --no-interface-livelock option.
	* dzn/commands/simulate.scm (parse-opts): Add --no-interface-livelock
	(main): Pass it to...
	* dzn/simulate.scm (simulate): ...new #:interface-livelock-check? parameter
	here.  Likewise, pass it to...
	(simulate*): ...new #:interface-livelock-check? parameter here.
	Likewies, pass it to...
	(simulate**): ...new #:interface-livelock-check? parameter here.
	Likewise, pass it to...
	(run-trail):  ...new #:interface-livelock-check? parameter here.
	Likewise, pass it to...
	(end-report): ...new #:interface-livelock-check? parameter here.  Only
	run check-interface-livelock if set.
	* doc/dezyne.texi (Invoking dzn simulate): Document it.

2022-04-22  Rutger van Beusekom  <rutger@dezyne.org>

	test: queuefull_external: Add trace and simulate baseline.
	* test/all/queuefull_external/trace: New file.
	* test/all/queuefull_external/baseline/simulate/queuefull_external,
	test/all/queuefull_external/baseline/simulate/queuefull_external.stderr:
	Update baseline.

2022-04-22  Rutger van Beusekom  <rutger@dezyne.org>
	    Jan (janneke) Nieuwenhuizen  <janneke@gnu.org>

	simulate: Support external <queue-full> at EOT.
	* dzn/vm/run.scm (run-external-modeling)[pc]: New specialization.
	* dzn/simulate.scm (end-report)[check-external-queue-full]: Use it in
	new inner procedure.  Invoke it to report <queue-full> at EOT.

2022-04-22  Jan (janneke) Nieuwenhuizen  <janneke@gnu.org>
	    Rutger van Beusekom  <rutger@dezyne.org>

	vm: Support external <queue-full>.
	* dzn/vm/util.scm (pc->string): Produce "<queue-full>" instead of
	"<deadlock>" when status is <queue-full-error>.
	* dzn/vm/run.scm (run-external-modeling)[update-state]: Also copy
	the #:status.  Do not filter-out traces with <queue-full-error>.
	* dzn/vm/run.scm (run-requires)[event-executed?]: Also return #true for
	PCs with their #:status set.

2022-04-22  Rutger van Beusekom  <rutger@dezyne.org>

	test: livelock_recurse: Remove component.
	* test/all/livelock_recurse/livelock_recurse.dzn (livelock_recurse):
	Remove.  Move recursive function to...
	(ihello): ..here.  Rename to...
	(livelock_recurse): ...this.

2022-04-22  Rutger van Beusekom  <rutger@dezyne.org>
	    Jan (janneke) Nieuwenhuizen  <janneke@gnu.org>

	simulate: Also check for livelock in interfaces.
	* dzn/vm/run.scm (livelock?): When simulating an interface, also check
	for livelock.
	(run-silent): New specialization.  Factored-out from...
	* dzn/simulate.scm (check-interface-determinism): ...here.
	(check-interface-livelock): Use it in new procedure.
	* dzn/simulate.scm (run-trail): Use it to check for livelock in
	interface at EOT.
	* test/all/livelock_interface0/baseline/simulate/livelock_interface0:
	Add baseline.

	simulate: Check for livelock in interface at EOT.
	* dzn/simulate.scm (check-interface-determinism)[get-silent-traces]:
	Factor-out from...
	[check-silence]: ...here.
	[check-livelock]: New inner procedure.  Use it to check for livelock.

2022-04-22  Rutger van Beusekom  <rutger@dezyne.org>

	test: queuefull_component1: Rename from livelock_synchronous2.
	* test/all/livelock_synchronous2: Rename to...
	* test/all/queuefull_component1: ...this.

2022-04-21  Jan (janneke) Nieuwenhuizen  <janneke@gnu.org>

	wfc: Fix hang looking up interface of port.
	This manifested as a hang when a component or a port has same name as an
	interface.

	Reported by Joran Jessurun <joran.jessurun@ajmail.nl> via IRC.

	* dzn/ast.scm (.type)[port]: Lookup interface in parent scope of
	component-model.  This avoids finding ourselves.
	* dzn/wfc.scm (wfc)[foreign]: Check for re-definition.
	* test/all/parse_duplicate_declaration: Rename to...
	* test/all/parse_duplicate_definition: ...this.  Add foreign and
	component redefinition.
	* test/all/wf_declaredBefore: Rename to...
	* test/all/wf_definedBefore: ...this.

2022-04-21  Jan (janneke) Nieuwenhuizen  <janneke@gnu.org>

	test: Add hello_match.
	* test/all/hello_match: New test.
	* test/all/local.mk (REGRESSION_TESTS): Add it.

	simulate: Set event <match-error> before running compliance check.
	* dzn/simulate.scm (run-sut): When an event does not result in any
	traces, set <match-error> before running check-provides-compliance*.
	* test/all/compliance_invalid_action/trace: Change to verification
	trace.
	* test/all/compliance_invalid_action/baseline/simulate: Update baseline.

2022-04-21  Jan (janneke) Nieuwenhuizen  <janneke@gnu.org>

	simulate: Do not skip zip for error trace.
	This is a follow-up to commit
	    3e9fa783627056e9c6daf667fa1d293b64b80f10
	    simulate: Fix location for modeling-triggered provides out events.

	* dzn/simulate.scm (check-provides-compliance): Also zip if status is
	set.

2022-04-21  Jan (janneke) Nieuwenhuizen  <janneke@gnu.org>

	test: Add hello_locations.
	* test/all/hello_locations: New test.
	* test/all/local.mk (HELLO_TESTS): Add it.

	simulate: Fix location of provides in event.
	* dzn/simulate.scm (zip): Instead of resetting statement, remove
	error-pc from port-trace-prefix.
	* dzn/vm/report.scm (complete-split-arrows-pcs): For <q-out> location,
	make sure to use component <on>.

2022-04-21  Jan (janneke) Nieuwenhuizen  <janneke@gnu.org>

	Revert "DRAFT simulate: Fix location of provides in event."
	This breaks the location of <q-in> events.

	This reverts commit 27271bf182642954def25a7dbb5c79023cda9099.

2022-04-20  Jan (janneke) Nieuwenhuizen  <janneke@gnu.org>

	guix: dezyne: Update to 2.15.0.rc1.
	* guix/gnu/packages/dezyne.scm (dezyne)[source]: : Update to 2.15.0.rc1.

2022-03-25  Jan (janneke) Nieuwenhuizen  <janneke@gnu.org>

	doc: Update `NEWS' and `ANNOUNCE-2.15.0'.
	* NEWS (Language): Mention `blocking' port qualifier.
	(Verification): Remove mention of -B,--no-blocking option.
	(Simultion): Likewise.
	(Views): Mention hiding of returns.
	Documentation): Mention blocking.
	* doc/announce/ANNOUNCE-2.15.0: Update accordingly.

2022-04-20  Jan (janneke) Nieuwenhuizen  <janneke@gnu.org>

	simulate: Fix location of provides in event.
	* dzn/simulate.scm (zip): Keep <on> in port trace prefix, so that
	SET-TRIGGER-LOCATIONS can pick-up its location.

2022-04-20  Jan (janneke) Nieuwenhuizen  <janneke@gnu.org>

	simulate: Fix location for modeling-triggered provides out events.
	Always zip port traces, not only for provides events.  This has ZIP use
	the actual actions from the port trace (with location), also for
	modeling-triggered out events, rather than synthesizing one.

	* dzn/simulate.scm (zip)[statement-equal?]: Also compare triggers; this
	avoids mistaking the modeling <trigger-return> for an out event
	<trigger-return>.
	(check-provides-compliance): Remove provides-trigger?
	condition for zipping.

2022-03-18  Rutger van Beusekom  <rutger@dezyne.org>

	graph: Enable provides returns in state diagram.
	Removing all returns is a bad idea for blocking: It is essential to see
	when a blocking call returns.  Using --hide=actions or --hide=returns
	now hides all non-valued action returns.

	* dzn/commands/graph.scm (parse-opts): Mention "returns" for --hide.
	(main): Pass #:returns? to...
	* dzn/explore.scm (state-diagram): ...new #:returns? parameter here.
	Likewise, pass it to...
	(lts-remove): ...here, removing non-valued action returns if set.
	(rtc-lts->state-diagram): Do not remove returns.
	* doc/dezyne.texi (Invoking dzn graph): Document it.

2022-04-20  Jan (janneke) Nieuwenhuizen  <janneke@gnu.org>

	doc: Fix two typos in blurb.
	* README: Add missing "is" and "by".  The sentence is still weird.
	* doc/dezyne.texi (Introduction): Likewise.

	test: Add collateral_blocking_multiple_provides2.
	* test/all/collateral_blocking_multiple_provides2: New test.
	* test/all/local.mk (REGRESSION_TESTS): Add it.

	graph: Allow blocking enabled events from free provides port.
	* dzn/vm/util.scm (rtc-triggers): New method, factored-out from...
	(rtc-trigger): ...here.
	(pc->string): Cater for non-RTC PCs: Include #:instance, #:statement,
	and rtc-triggers.
	* dzn/explore.scm (run-to-completion**): Update in accordance with ...
	dzn/vm/run.scm (run-to-completion*): ...this.
	(pc->rtc-lts)[collateral?]: Remove new collateral PC
	if already present, even if not at head of list.
	(pc->rtc-lts)[run-label]: Use blocked-on-boundary-collateral-release.

2022-04-20  Jan (janneke) Nieuwenhuizen  <janneke@gnu.org>

	simulate: Allow blocking enabled events from free provides port.
	This enables the interleaving of events from a free provides port when a
	system is blocked on a blocking requires port, and collaterally blocking
	on a component that is blocked in such a way.

	* dzn/vm/runtime.scm (runtime:port)[runtime:component]: Change
	specialization to...
	[runtime:instance]: ...this.
	* dzn/vm/util.scm (rtc-labels): Only include <rtc> labels when PC is
	switchable.
	(blocked-on-boundary-entry?): Cater for event #f.
	(blocked-on-boundary-collateral-release, blocked-on-boundary-provides?:
	New methods.
	(collateral-block): Also consider being blocked-on-boundary?.
	* dzn/vm/run.scm (mark-collateral-blocked): Cater for systems with
	multiple provides ports.
	(run-to-completion*): Only block if port is set.  Use
	blocked-on-boundary-provides to determine illegal-trace.
	(run-to-completion*-context-switch): Use
	blocked-on-boundary-collateral-release to release collaterally blocked
	coroutines.
	* dzn/vm/step.scm (begin-step)[runtime-instance]: Also report
	<blocked-error> if boundary port is already engaged.
	* dzn/vm/step.scm (step-action-down): Also collaterally block if
	port is blocked-on-boundary?.
	* dzn/simulate.scm (end-report): Skip refusal check for blocked trace.
	(run-trail): Also consider blocked-on-boundary? for blocked traces.

2022-04-20  Jan (janneke) Nieuwenhuizen  <janneke@gnu.org>

	simulate: Refactor to remove #:collateral-blocked?.
	This moves the #:collateral-blocked? state into #:blocked in preparation
	of allowing blocking enabled events from free provides port in system
	context.

	* dzn/vm/goops.scm (<program-counter>): Remove #:collateral-blocked?
	(write): Do not print it.
	* dzn/vm/util.scm (block): New method, factored-out from...
	* dzn/vm/step.scm (step)[block]: ...here.
	* dzn/vm/util.scm (blocked-action): Rename to...
	(blocked-on-action?): ...this.
	(blocked-on-boundary?, blocked-on-boundary-entries,
	blocked-on-boundary-entry?, blocked-on-boundary-statements,
	blocked-on-boundary-reset, blocked-on-boundary-switch-context): New methods.
	(reset-replies): Update accordingly.
	(rtc-program-counter-equal?, pc-equal?): Likewise.
	* dzn/vm/run.scm (mark-collateral-blocked): Update accordingly.
	* dzn/simulate.scm (check-provides-compliance,
	check-provides-compliance+, run-sut, end-report, run-trail): Likewise.
	* dzn/explore.scm (run-to-completion**, pc->rtc-lts): Likewise.
	* test/all/blocking_queuefull,
	test/all/blocking_queuefull_reply: Update labels in baseline.

2022-04-20  Rutger van Beusekom  <rutger@dezyne.org>

	doc: Update blocking; add collateral blocking.
	* doc/dezyne.texi (Ideas and Concepts): Move section up.
	(Execution Semantics): Add multiple provides; update blocking; add
	collateral blocking; process feedback Jos Onokiewicz.
	(Formal Verification): Minor update.
	(Armoring): Add system diagram; process feedback Jos Onokiewicz.
	* doc/semantics/embrace.dzn,
	doc/semantics/embrace2.dzn,
	doc/semantics/ibye.dzn: Remove.
	* doc/semantics/async_multiple_provides.dzn,
	doc/semantics/blocking_multiple_provides.dzn,
	doc/semantics/blocking_requires.dzn,
	doc/semantics/collateral_multiple_provides.dzn,
	doc/semantics/ihello.dzn,
	doc/semantics/ihelloworld.dzn,
	doc/semantics/iworld.dzn,
	doc/semantics/multiple_provides.dzn,
	doc/semantics/mux.dzn: New examples.
	* doc/semantics/block.dzn,
	doc/semantics/collateral.dzn,
	doc/semantics/proxy.dzn: Update naming and blocking annotation.
	* doc/semantics/local.mk (DOCUMENTATION_SEMANTICS): Update accordingly.
	* doc/images/armor.png: Add system diagram.
	* doc/images/async_multiple_provides.png,
	doc/images/block.png,
	doc/images/blocking_multiple_provides.png,
	doc/images/collateral0.png,
	doc/images/collateral1.png,
	doc/images/collateral_multiple_provides.png,
	doc/images/multiple_provides.png: Add sequence diagram.
	* doc/images/local.mk (dist_info_images_DATA): Update accordingly.

	doc: Remove unused semantics examples.
	* doc/semantics/bye.dzn,
	doc/semantics/cancel.dzn: Remove.

2022-04-20  Jan (janneke) Nieuwenhuizen  <janneke@gnu.org>

	report: Refactor <unknown-file>.
	* dzn/vm/report.scm (location-prefix): Robustify against missinng ast,
	return "<unknown-file>: " when no location present.
	(initial-error-message): Remove "<unknown-file> :" fall-backs.
	(final-error-messages): Likewise.

2022-04-20  Paul Hoogendijk  <paul@dezyne.org>

	wfc: Check for superfluous blocking annotations on ports.
	* dzn/wfc.scm (binding-direction): Check for superfluous blocking.
	(blocking-ports): Likewise.
	* test/all/wf_blocking_port/wf_blocking_port.dzn: Trigger superfluous
	blocking errors.
	* test/all/wf_blocking_port/baseline/verify/wf_blocking_port.stderr:
	Update baseline.

2022-04-20  Jan (janneke) Nieuwenhuizen  <janneke@gnu.org>
	    Rutger van Beusekom  <rutger@dezyne.org>

	simulate: Also zip port trace after earlier occurrence in trace.
	* dzn/simulate.scm (zip): Search for insertion location on non-reversed
	trace, and use next pc to see if merging has occurred.  When
	trace-prefix is empty, check trace-suffix if port-trace-prefix is
	already zipped.

2022-04-20  Jan (janneke) Nieuwenhuizen  <janneke@gnu.org>
	    Rutger van Beusekom  <rutger@dezyne.org>

	simulate: Also synthesize return when occurring earlier in trace.
	When ZIP must synthesize a <trigger-return> for a port in a trace where
	such a return occurs more than once, do so correctly; i.e., do not skip
	second synthesizing because there is already a synthesized return
	present.

	* dzn/simulate.scm (zip): Add PREVIOUS as loop parameter and use it to
	check it for RETURN-PC, instead of using FIND on TRACE.

2022-04-20  Jan (janneke) Nieuwenhuizen  <janneke@gnu.org>

	test: Add blocking_mux.
	* test/all/blocking_mux/blocking_mux.dzn: New test.
	* test/all/local.mk (REGRESSION_TESTS): Add it.

2022-04-20  Jan (janneke) Nieuwenhuizen  <janneke@gnu.org>
	    Rutger van Beusekom  <rutger@dezyne.org>

	simulate: Do not zip port trace before early return.
	This avoids zipping the port trace at the wrong place for longer traces.

	* dzn/simulate.scm (zip): Also compare instance when finding trace.

2022-04-20  Jan (janneke) Nieuwenhuizen  <janneke@gnu.org>
	    Rutger van Beusekom  <rutger@dezyne.org>

	simulate: Fix instable direction of split-arrow for <trigger-return>.
	This fixes resolving the port of a <trigger-return> in certain cases,
	which in turn fixes the direction in split-arrow output.

	* dzn/vm/ast.scm (.port): Start lookup in parent, like we it is done for
	<trigger>, as a <trigger-return> is created after a <trigger>.

2022-04-20  Jan (janneke) Nieuwenhuizen  <janneke@gnu.org>
	    Rutger van Beusekom  <rutger@dezyne.org>

	simulate: Correctly sythesize returns for collateral block.
	This also accumulates collaterally blocked traces which is needed to
	correctly synthesize a return, while reporting them partially.  For a
	return to be synthesized, the initiating trigger must be present on the
	trace.

	* dzn/misc.scm (split-lists): New procedure.
	* dzn/simulate.scm (run-trail)[split-collateral-trace]: New inner
	method.  Use them to partially report collaterally blocked traces and
	continue with the remainder.

2022-04-20  Jan (janneke) Nieuwenhuizen  <janneke@gnu.org>
	    Rutger van Beusekom  <rutger@dezyne.org>

	simulate: Skip only collateral-blocking trigger in compliance check.
	This raising a compliance error for unfinished blocked traces while
	adding a return for unfinished blocking traces that contain a
	collateral-blocking trigger.

	* dzn/simulate.scm (check-provides-compliance+): Move check for
	rtc-block-trigger into loop, instead of skipping the whole loop when
	there is a rtc-block-trigger.

2022-04-20  Jan (janneke) Nieuwenhuizen  <janneke@gnu.org>
	    Rutger van Beusekom  <rutger@dezyne.org>

	simulate: Use system port in system compliance error.
	* dzn/vm/util.scm (trigger->system-trigger): New method.
	* dzn/simulate.scm (check-provides-compliance): Use it to change
	component port to system port in compliance error.
	* test/all/compliance_system_provides_bool: Update baseline.

	simulate: Cater for compliance error on <trigger-return>.
	* dzn/vm/util.scm (trigger->component-trigger): Remove <trigger> type
	from trigger parameter.

2022-04-20  Rutger van Beusekom  <rutger@dezyne.org>

	test: Add compliance_failures_blocking_race.
	* test/all/compliance_failures_blocking_race: New test.
	* test/all/local.mk (REGRESSION_TESTS): Add it.

	test: Add blocking_cancel_race_bool.
	* test/all/blocking_cancel_race_bool/blocking_cancel_race_bool.dzn: New
	test.
	* test/all/local.mk (REGRESSION_TESTS): Add it.

2022-04-20  Jan (janneke) Nieuwenhuizen  <janneke@gnu.org>

	simulate: Support valued return for collateral block.
	* dzn/vm/util.scm (return-labels): Always use return values for valued
	return.
	* dzn/vm/run.scm (extend-trace)[mark-pc]: Always use strict matching
	for trigger-return in collateral-blocked pc.

2022-04-20  Jan (janneke) Nieuwenhuizen  <janneke@gnu.org>

	test: blocking_cancel_race: Add synchronous notify.
	* test/all/blocking_cancel_race/blocking_cancel_race.dzn (iblock): Add
	notify.
	(blocking_cancel_race): Likewise.

	squas! blocking_cancel_race.

2022-04-20  Jan (janneke) Nieuwenhuizen  <janneke@gnu.org>

	graph: Support synchronous out events when collaterally blocked.
	* dzn/explore.scm (pc->rtc-lts): Only run RTC on blocked action.
	* dzn/vm/util.scm (pc->string): Use string representation of
	collateral-blocked? statement.

	simulate: Support synchronous out events when collaterally blocked.
	* dzn/vm/util.scm (pop-collateral-blocked-pc): Retain actual value
	of #:collateral-blocked?.
	(blocked-action?): New procedure.
	* dzn/vm/run.scm (run-to-completion*): Use it to cater for synchronous out events.
	(blocked-action?): New procedure.
	* dzn/vm/util.scm (rtc-event?): New procedure.
	* dzn/vm/run.scm (run-to-completion*-context-switch): Use it to
	determine adding return event to trace.
	(mark-collateral-blocked): Also block on actions.
	Store actual statement in #:collateral-blocked?.
	(filter-compliance-error): New method.
	(run-to-completion*): Return <implicit-illegal-error> for action on
	collateral-blocked port to allow getting filtered-out when valid traces
	are present.
	* dzn/vm/step.scm (step)[end-report]: Before flushing, reset handling.
	* dzn/simulate.scm (labels-filter-blocked-ports): Do not filter-out
	<rtc> events.
	(run-trail): Use it to filter-out compliance errors
	(run-sut): Skip compliance check for blocked action.

2022-04-20  Jan (janneke) Nieuwenhuizen  <janneke@gnu.org>

	simulate: Avoid quadratic duplication of blocked traces each event.
	This is a follow-up to commit
	    02275057535ec2eb1898e9ffefe796067d0b0d66
	    simulate: Avoid quadratic duplication of traces with each new event.

	* dzn/simulate.scm (run-trail): Deduplicate valid-traces so that also
	blocked traces are deduplicated.

2022-04-20  Jan (janneke) Nieuwenhuizen  <janneke@gnu.org>

	test: Add blocking_queuefull_reply.
	* test/all/blocking_queuefull_reply: New test.
	* test/all/local.mk (REGRESSION_TESTS): Add it.

	test: Add collateral_blocking_reply.
	* test/all/collateral_blocking_reply: New test.
	* test/all/local.mk (REGRESSION_TESTS): Add it.

	vm: Avoid missing reply error in collateral block context.
	* dzn/vm/util.scm (reset-replies): Do not reset replies if PC is
	.collatral-blocked?.

	test: collateral_blocking_reorder: Remove cul-de-sac.
	* test/all/collateral_blocking_reorder/collateral_blocking_reorder.dzn (proxy_block):
	Remove cul-de-sac.
	* test/all/collateral_blocking_reorder/trace,
	test/all/collateral_blocking_reorder/main.cc,
	test/all/collateral_blocking_reorder/main.cs,
	test/all/multiple_parallel_blocking/trace,
	test/all/multiple_parallel_blocking/main.cc,
	test/all/multiple_parallel_blocking/main.cs: Update accordingly.

2022-04-20  Rutger van Beusekom  <rutger@dezyne.org>

	test: hello_sync_out_reply: Rename from hello_blocking_sync.
	* test/all/hello_blocking_sync: Rename to...
	* test/all/hello_sync_out_reply: ...this.
	* test/all/local.mk (REGRESSION_TESTS): Update accordingly.

	cs: Allow reply on out event.
	* dzn/templates/code.scm (foreign-event-slot): Move to...
	* dzn/templates/c++.scm (foreign-event-slot): ...here.
	* dzn/templates/cs.scm (foreign-event-slot, foreign-valued-event-slot):
	New templates.
	* dzn/templates/cs/method@on: Make void.  Move return...
	* dzn/templates/cs/event-slot@trigger,
	dzn/templates/cs/valued-event-slot@trigger: ...here.  Add flush.  Move
	qout tracing...
	* runtime/cs/dzn/runtime.cs (call_out): ...here.
	(valued_helper,handle): Move flush...
	(defer): ...here.
	(flush): Reset handling.
	* dzn/templates/cs/flush@trigger,
	dzn/templates/cs/foreign-event-slot@trigger,
	dzn/templates/cs/foreign-reply@bool,
	dzn/templates/cs/foreign-reply@enum,
	dzn/templates/cs/foreign-reply@int,
	dzn/templates/cs/foreign-reply@void,
	dzn/templates/cs/foreign-return@type,
	dzn/templates/cs/foreign-return@void,
	dzn/templates/cs/foreign-valued-event-slot@trigger: New files.

	c++: Allow reply on out event.
	* dzn/code.scm (code:return)[trigger]: New specialization.
	(code:return)[on]: Use it.
	* dzn/templates/c++/declare-method@trigger: Make void.
	* test/all/foreign_reply/c++/Foreign.hh (w_world): Add missing return.
	* test/all/hello_namespace_foreign/c++/library_foreign.cc: Reformat.
	* dzn/templates/c++/methods@on: Move return...
	* dzn/templates/c++/valued-event-slot@trigger: ...here.  Add flush.
	Move qout tracing...
	* runtime/c++/dzn/runtime.hh (call_out): ...here.
	(handle): Move flush...
	* runtime/c++/runtime.cc (runtime::defer): ...here.
	runtime::flush): Reset handling.
	* dzn/templates/c++/flush@trigger,
	dzn/templates/c++/foreign-event-slot@trigger,
	dzn/templates/c++/foreign-reply@bool,
	dzn/templates/c++/foreign-reply@enum,
	dzn/templates/c++/foreign-reply@int,
	dzn/templates/c++/foreign-reply@void,
	dzn/templates/c++/foreign-return@type,
	dzn/templates/c++/foreign-return@void: New files.
	* dzn/templates/c++/header-model@foreign: Use them.
	* dzn/templates/code.scm (foreign-event-slot, flush, foreign-reply,
	foreign-return):New tepmlates.

2022-04-20  Jan (janneke) Nieuwenhuizen  <janneke@gnu.org>

	vm: Release a port only once.
	This fixes graph hanging because of ever longer released ports list.

	* dzn/vm/step.scm (step)[reply]: Only add port to released if it is not
	already present.

2022-04-20  Jan (janneke) Nieuwenhuizen  <janneke@gnu.org>

	cs: No collateral_block at the bottom.
	* runtime/cs/dzn/runtime.cs (call_out): Remove collateral_block.:
	* test/all/collateral_blocking_reorder/main.cs,
	test/all/multiple_parallel_blocking/main.cs,
	test/all/collateral_blocking_reorder/trace,
	test/all/multiple_parallel_blocking/trace: Update.
	* test/all/collateral_blocking_reorder/META,
	test/all/multiple_parallel_blocking/META: Enable cs.

	c++: No collateral_block at the bottom.
	* runtime/c++/dzn/runtime.hh (call_out): Remove collateral_block.
	* test/all/collateral_blocking_reorder/main.cc,
	test/all/multiple_parallel_blocking/main.cc,
	test/all/collateral_blocking_reorder/trace,
	test/all/multiple_parallel_blocking/trace: Update.
	* test/all/collateral_blocking_reorder/META,
	test/all/multiple_parallel_blocking/META: Enable c++.

	simulate: Do not dispose [queue-full] errors on requires event.
	* dzn/vm/run.scm (run-requires): Only filter for errors, remove special
	treatment for illegals and discarding of errors.
	* test/all/blocking_queuefull/META: Enable simulate.

2022-04-20  Rutger van Beusekom  <rutger@dezyne.org>

	test: Add blocking_race_async.
	* test/all/blocking_race_async: New test.
	* test/all/local.mk (REGRESSION_TESTS): Add it.

	test: Add blocking_race.
	* test/all/blocking_race/blocking_race.dzn: New test.
	* test/all/local.mk (REGRESSION_TESTS): Add it.

2022-04-20  Jan (janneke) Nieuwenhuizen  <janneke@gnu.org>

	graph: Allow blocking enabled races to enter the queue.
	* dzn/explore.scm (run-to-completion**): Return nil for provides trigger
	when .collateral-blocked? and for requires trigger on
	.collateral-blocked?  port.
	* (pc->rtc-lts): Cater for .collateral-blocked? pc.
	* test/all/blocking_cancel_race/META,
	test/all/cancel_guarantee/META,
	test/all/cancel_guarantee2/META,
	test/all/cancel_guarantee3/META,
	test/all/illegal_blocking_race/META: Remove, enabling lts.

2022-04-20  Jan (janneke) Nieuwenhuizen  <janneke@gnu.org>

	simulate: Allow blocking enabled races to enter the queue.
	This replaces the previous, deadlocking collateral-blocked
	implementation and enables collateral blocking before the return of a
	blocking requires port to allow modeling events.

	* dzn/simulate.scm (labels-filter-blocked-ports): Do not filter requires
	ports.
	(check-provides-compliance): Cater for .collateral-blocked? trace.
	(run-trail): Likewise.
	(check-provides-compliance+): Likewise.  Cater for return trigger.
	(run-sut): Likewise.  Remove mark-collateral-block.  Skip compliance
	check when .collateral-blocked?, except for error trace.
	(end-report): Likewise, skip refusals check.
	* dzn/vm/ast.scm (ast:blocking?)[runtime-port]: New specialization.
	* dzn/vm/goops.scm (<state>)[collateral-blocked?]: Move field to...
	(<program-counter>): ...here.
	* dzn/vm/goops.scm (write): Print it.
	* dzn/vm/run.scm (mark-collateral-block): Rename to...
	(mark-collateral-blocked): ...this.  Rewrite for usage from extend-trace
	instead of post processing.
	(extend-trace): Use it to interrupt upon <trigger-return> from a
	blocking requires port.
	(run-to-completion*): Return <illegal-error> for provides trigger when
	.collateral-blocked? and for requires trigger on .collateral-blocked?
	port.
	(run-to-completion*-context-switch): Cater for return trigger on
	.collateral-blocked? pc.
	(run-requires): Skip flush for .collateral-blocked? pc.
	* dzn/vm/step.scm (begin-step): Remove collateral-blocked? check.
	(step)[trigger-return]: Reset #:collateral-blocked?.
	* dzn/vm/util.scm (pop-collateral-blocked-pc): New method.
	(return-labels): Include return label for .collateral-blocked? PC.
	*(async-event?): Do not mistake return trigger for async event.  Do not
	filter release-ports when .collateral-blocked?
	(get-collateral-blocked?, reset-collateral-blocked,
	set-collateral-blocked): Remove.
	(serialize-header): Remove .collateral-blocked?.
	(pc->string): Add .collateral-blocked?.
	(rtc-program-counter-equal?): Likewise.
	(pc-equal?): Likewise.
	* test/all/blocking_cancel_race/META,
	test/all/illegal_blocking_race/META: Enable simulate.
	* test/all/illegal_blocking_race: Update trace and baseline.

2022-04-20  Jan (janneke) Nieuwenhuizen  <janneke@gnu.org>

	simulate: No collateral-block at the bottom.
	* dzn/vm/step.scm (step-action-up): Remove collateral-block.
	* test/all/collateral_blocking_reorder/trace,
	test/all/multiple_parallel_blocking/trace: Update.
	* test/all/collateral_blocking_reorder/META,
	test/all/multiple_parallel_blocking/META: Disable c++, cs.

2022-04-20  Rutger van Beusekom  <rutger@dezyne.org>

	test: all/local.mk: Whitespace.
	* test/all/local.mk (REGRESSION_TESTS): Whitespace fixes.

	test: Add blocking_cancel_race.
	* test/all/blocking_cancel_race: New test.
	* test/all/local.mk (REGRESSION_TESTS): Add it.

	makreel: Allow blocking enabled races to enter the queue.
	* dzn/templates/makreel.scm (provides-hide),
	dzn/templates/makreel/provides-hide@port: Remove.
	* dzn/templates/makreel/component-allow-requires@port,
	dzn/templates/makreel/component-comm-requires@port,
	dzn/templates/makreel/component-hide-requires@port,
	dzn/templates/makreel/event-act@interface,
	dzn/templates/makreel/event-act@port,
	dzn/templates/makreel/external-proc@port,
	dzn/templates/makreel/interface-action-proc@port,
	dzn/templates/makreel/proc@interface,
	dzn/templates/makreel/provides-allow@port,
	dzn/templates/makreel/queue-allow-requires@port,
	dzn/templates/makreel/semantics-allow-requires@port,
	dzn/templates/makreel/semantics-async-requires@port,
	dzn/templates/makreel/semantics-blocked-rtc-requires@port,
	dzn/templates/makreel/semantics-requires@port,
	dzn/templates/makreel/trigger-name@modeling-event: Remove
	collateral_block, collateral_block'.
	* dzn/templates/makreel/model@component (provides): Remove provides-hide.
	(semantics_provides, semantics_provides_unblocked,
	semantics_provides_unblocked_switch_context): Remove pending
	parameter.
	* test/all/cancel_guarantee,
	test/all/cancel_guarantee2
	test/all/deadlock_cancel_guarantee: Remove.
	* test/all/deadlock_early_embrace: Rename to...
	* test/all/blocking_queuefull: ...this.
	* test/all/deadlock_collateral_embrace: Rename to...
	* test/all/illegal_blocking_race: ...this.  Cater for race.
	* test/all/blocking_queuefull/META: New file.
	* test/all/local.mk (REGRESSION_TESTS): Update accordingly.
	* test/all/compliance_blocking_double_release,
	test/all/illegal_external_nonsynchronous,
	test/all/livelock_synchronous_illegal,
	test/all/queuefull_external_sync: Update baseline.

2022-04-20  Jan (janneke) Nieuwenhuizen  <janneke@gnu.org>

	test: Add deadlock_early_embrace.
	* test/all/deadlock_early_embrace: New test.
	* test/all/local.mk (REGRESSION_TESTS): Add it.

	simulate: Find early collateral embrace deadlock.
	* dzn/vm/step.scm (mark-liveness?): Cater for checking liveness on
	ports.
	* dzn/simulate.scm (event-traces-alist): Update accordingly.
	* dzn/vm/run.scm (mark-collateral-block): Also consider modeling events
	on reuires ports at begin of trace.
	* test/all/semantics/baseline/semantics.org: Update baseline.

2022-04-20  Rutger van Beusekom  <rutger@dezyne.org>

	wfc: Allow reply on requires out without blocking.
	* dzn/wfc.scm (reply-in-on): Do not flag error for reply on requires
	trigger.
	* test/all/wf_replyOnOutEvent: Remove test.
	* test/all/local.mk (PARSER_TESTS): Remove it.

	test: Add cancel_guarantee2.
	* test/all/cancel_guarantee2/cancel_guarantee2.dzn: New test.
	* test/all/local.mk (REGRESSION_TESTS): Add it.

	test: Add cancel_guarantee.
	* test/all/cancel_guarantee/cancel_guarantee.dzn: New test.
	* test/all/local.mk (REGRESSION_TESTS): Add it.

2022-04-20  Jan (janneke) Nieuwenhuizen  <janneke@gnu.org>

	test: deadlock_collateral_embrace: Remove compliance error.
	This makes the failure case (deadlock not found) much more noticable.

	* test/all/deadlock_collateral_embrace/deadlock_collateral_embrace.dzn (itransaction):
	Make "complete" event optional.
	* test/all/deadlock_collateral_embrace/baseline/simulate/deadlock_collateral_embrace,
	test/all/deadlock_collateral_embrace/baseline/simulate/deadlock_collateral_embrace.stderr:
	Update baseline.

2022-04-20  Jan (janneke) Nieuwenhuizen  <janneke@gnu.org>

	simulate: Remove -B,--no-blocking option.
	* dzn/commands/simulate.scm (parse-opts): Remove -B,--no-blocking option.
	(main): Do not forward #:cancel-guarantee.
	* dzn/simulate.scm (simulate, simulate*): Likewise.  Remove #:cancel-guarantee
	parameter.
	(simulate**): Likewise.  Do not set %cancel-guarantee.
	(run-sut): Do not check it.
	* dzn/vm/step.scm (%cancel-guarantee?): Remove it.
	* doc/dezyne.texi (Invoking dzn simulate): Remove -B,--no-blocking
	option.

	simulate: Consider blocking port qualifier for cancel_guarantee.
	* dzn/vm/run.scm (mark-collateral-block): Use blocking port qualifier.

	doc: Update for blocking port qualifier.
	* doc/dezyne.texi (Ports): Include "blocking" qualifier, and document
	when it must be used.
	* doc/examples/join.dzn,
	doc/parse/nested-blocking.dzn,
	doc/parse/out-binding-reversed.dzn,
	doc/parse/requires-port-reply.dzn,
	doc/semantics/block.dzn,
	doc/semantics/blocking.dzn,
	doc/semantics/collateral.dzn,
	doc/semantics/embrace.dzn,
	doc/semantics/embrace2.dzn,
	doc/semantics/indirect_blocking_multiple_external_out.dzn,
	doc/semantics/indirect_blocking_out.dzn: Annotate blocking port
	qualifier.
	* doc/parse/binding-mismatch-direction.texi,
	doc/parse/binding-mismatch-external.texi: Regenerate.

2022-04-20  Paul Hoogendijk  <paul@dezyne.org>

	test: Add test/all/wf_blocking_port.
	* test/all/wf_blocking_port: New test.
	* test/all/local.mk (PARSER_TESTS): Add it.

2022-04-20  Paul Hoogendijk  <paul@deyne.org>

	wfc: Check blocking qualifiers for ports and bindings.
	* dzn/wfc.scm (binding-type): Also report binding errors in blocking
	port qualifiers.
	(blocking-ports): New method.
	(wfc)[foreign]: Use it to report errors in blocking port qualifiers.
	[component]: Likewise

2022-04-20  Jan (janneke) Nieuwenhuizen  <janneke@gnu.org>

	squash! wfc: Normalize bindings in binding-direction check.

2022-04-20  Paul Hoogendijk  <paul@deyne.org>

	wfc: Normalize bindings in binding-direction check.
	* dzn/ast.scm (ast:normalize): New method.
	* dzn/wfc.scm (binding-direction): Use it to simplify check.
	* test/all/wf_bindingExternals/baseline/verify/wf_bindingExternals.stderr,
	test/all/wf_bindingPortDirection/baseline/verify/wf_bindingPortDirection.stderr:
	Update baseline.

	wfc: Remove dead code.
	* dzn/wfc.scm (wfc)[component-model]: Remove.

2022-04-20  Jan (janneke) Nieuwenhuizen  <janneke@gnu.org>

	makreel: Consider blocking port qualifier for cancel_guarantee.
	* dzn/ast.scm (ast:blocking?)[action]: New method.
	* dzn/code/makreel.scm (%cancel-guarantee): Remove.
	(makreel:switch-context): Use blocking aspect of port instead.
	(root->): Do not set it.
	* dzn/commands/verify.scm (parse-opts): Remove -B,--no-blocking option.
	* dzn/templates/makreel/model@component (semantics_provides_unblocked):
	Remove pending parameter.
	* dzn/templates/makreel/semantics-provides-unblocked-switch-context@port,
	dzn/templates/makreel/semantics-provides@port: Update.
	* doc/dezyne.texi (Blocking in system context): Remove mention of
	-B,--no-blocking option.
	(Invoking dzn code): Likewise.
	(Invoking dzn verify): Likewise.

	makreel: Remove obsolete pending parameter.
	* dzn/templates/makreel/model@component (semantics_async,
	semantics_async_ack): Remove unused pending parameter.
	* dzn/templates/makreel/model@component,
	dzn/templates/makreel/semantics-async-flush@port,
	dzn/templates/makreel/semantics-async-qout@port,
	dzn/templates/makreel/semantics-provides-unblocked-replies@port,
	dzn/templates/makreel/semantics-requires@port: Update.

2022-04-20  Rutger van Beusekom  <rutger@dezyne.org>

	test: Annotate blocking on ports.
	* test/all/async_blocking/async_blocking.dzn,
	test/all/blocking-local-state-diagram/blocking-local-state-diagram.dzn,
	test/all/blocking_binding/blocking_binding.dzn,
	test/all/blocking_bottom_system/blocking_bottom_system.dzn,
	test/all/blocking_double_release/blocking_double_release.dzn,
	test/all/blocking_external/blocking_external.dzn,
	test/all/blocking_function_reply/blocking_function_reply.dzn,
	test/all/blocking_if_reply/blocking_if_reply.dzn,
	test/all/blocking_imperative/blocking_imperative.dzn,
	test/all/blocking_local/blocking_local.dzn,
	test/all/blocking_multiple_provides/blocking_multiple_provides.dzn,
	test/all/blocking_multiple_provides0/blocking_multiple_provides0.dzn,
	test/all/blocking_multiple_provides2/blocking_multiple_provides2.dzn,
	test/all/blocking_multiple_provides3/blocking_multiple_provides3.dzn,
	test/all/blocking_normalize/blocking_normalize.dzn,
	test/all/blocking_provides_state/blocking_provides_state.dzn,
	test/all/blocking_release/blocking_release.dzn,
	test/all/blocking_requires/blocking_requires.dzn,
	test/all/blocking_requires_normalize/blocking_requires_normalize.dzn,
	test/all/blocking_shell/blocking_shell.dzn,
	test/all/blocking_system/blocking_system.dzn,
	test/all/blocking_system2/blocking_system2.dzn,
	test/all/blocking_system3/blocking_system3.dzn,
	test/all/blocking_system4/blocking_system4.dzn,
	test/all/blocking_system_diamond/blocking_system_diamond.dzn,
	test/all/collateral_blocking_backdoor/collateral_blocking_backdoor.dzn,
	test/all/collateral_blocking_bridges/collateral_blocking_bridges.dzn,
	test/all/collateral_blocking_double_release/collateral_blocking_double_release.dzn,
	test/all/collateral_blocking_multiple_provides/collateral_blocking_multiple_provides.dzn,
	test/all/collateral_blocking_release/collateral_blocking_release.dzn,
	test/all/collateral_blocking_reorder/collateral_blocking_reorder.dzn,
	test/all/collateral_blocking_reorder_bypass/collateral_blocking_reorder_bypass.dzn,
	test/all/collateral_blocking_shell/collateral_blocking_shell.dzn,
	test/all/collateral_blocking_shell2/collateral_blocking_shell2.dzn,
	test/all/collateral_blocking_top/collateral_blocking_top.dzn,
	test/all/collateral_double_blocked/collateral_double_blocked.dzn,
	test/all/collateral_double_blocked_out/collateral_double_blocked_out.dzn,
	test/all/compliance_blocking_double_release/compliance_blocking_double_release.dzn,
	test/all/compliance_blocking_multiple_provides/compliance_blocking_multiple_provides.dzn,
	test/all/compliance_blocking_out/compliance_blocking_out.dzn,
	test/all/compliance_failures_blocking/compliance_failures_blocking.dzn,
	test/all/deadlock_blocking_compliance/deadlock_blocking_compliance.dzn,
	test/all/deadlock_blocking_flush/deadlock_blocking_flush.dzn,
	test/all/deadlock_blocking_guard/deadlock_blocking_guard.dzn,
	test/all/deadlock_blocking_inevitable/deadlock_blocking_inevitable.dzn,
	test/all/deadlock_blocking_optional/deadlock_blocking_optional.dzn,
	test/all/deadlock_blocking_replies/deadlock_blocking_replies.dzn,
	test/all/deadlock_cancel_guarantee/deadlock_cancel_guarantee.dzn,
	test/all/deadlock_collateral_embrace/deadlock_collateral_embrace.dzn,
	test/all/deadlock_port_blocked/deadlock_port_blocked.dzn,
	test/all/double_collateral_blocking_shell/double_collateral_blocking_shell.dzn,
	test/all/double_hello_block/double_hello_block.dzn,
	test/all/hello_block/hello_block.dzn,
	test/all/hello_blocking_asynchronous_sync_out/hello_blocking_asynchronous_sync_out.dzn,
	test/all/hello_blocking_external/hello_blocking_external.dzn,
	test/all/hello_blocking_multiple_out/hello_blocking_multiple_out.dzn,
	test/all/hello_blocking_sync/hello_blocking_sync.dzn,
	test/all/hello_inevitable_blocking_sync_out/hello_inevitable_blocking_sync_out.dzn,
	test/all/indirect_blocking_multiple_external_out/indirect_blocking_multiple_external_out.dzn,
	test/all/indirect_blocking_out/indirect_blocking_out.dzn,
	test/all/multiple_parallel_blocking/multiple_parallel_blocking.dzn,
	test/all/parse_out_binding/parse_out_binding.dzn,
	test/all/second_reply_blocking/second_reply_blocking.dzn,
	test/all/wf_blockingInblocking/wf_blockingInblocking.dzn,
	test/all/wf_blockingReply/wf_blockingReply.dzn,
	test/all/wf_foreign_conflict/wf_foreign_conflict.dzn: Annotate blocking
	on port.

2022-04-20  Jan (janneke) Nieuwenhuizen  <janneke@gnu.org>

	complete: Cater for blocking on port.
	* dzn/parse/complete.scm (complete:root): Suggest "blocking" if
	applicable.
	* test/dzn/language.scm ("component-requires requires"):
	("component-requires external"),
	("component-requires injected"),
	("component-requires external injected"),
	("component-requires injected external"),
	("import requires"): Update expectiation.

	peg: Support blocking qualifier on port.
	* dzn/parse/peg.scm (peg:parse): Parse "blocking" as qualifier on port.
	* dzn/goops.scm (<port>)[blocking?]: New field.
	* dzn/parse/ast.scm (parse-tree->ast): Set it according to parse tree.
	* dzn/ast.scm (ast:blocking?): Use it in new method.

	makreel: Remove dead code.
	* dzn/code/makreel.scm (ast:blocking?, ast:provides-blocking?,
	ast:requires-blocking?): Remove.

	goops: Use #:external? and #:injected?.
	* dzn/goops.scm (<port>)[external]: Rename to...
	[external?]: ...this.
	[injected]: Rename to...
	[injected?]: ..this.
	* dzn/parse/ast.scm (parse-tree->ast): Update accordingly.
	* dzn/ast.scm (ast:external?, ast:injected?): Likewise.
	* dzn/code/dzn.scm (dzn:external, dzn:injected): Likewise.
	* dzn/templates/cs.scm (required-port-init): Likewise.
	* dzn/vm/runtime.scm (runtime:create-instances): Likewise.
	* dzn/wfc.scm (wfc)[port],
	(binding-direction, missing-bindings): Likewise.

2022-04-20  Jan (janneke) Nieuwenhuien  <janneke@gnu.org>
	    Rutger van Beusekom  <rutger@dezyne.org>

	simulate: Find collateral embrace deadlock present in trace.
	* dzn/vm/step.scm (mark-liveness?): Allow liveness check for port
	instance too.
	* dzn/vm/util.scm (mark-collateral-block): Move to...
	* dzn/vm/run.scm (mark-collateral-block): ...here.  Walk through trace
	to also find collateral embrace deadlock already present in trace.  Also
	consider dynamic aspect of port willing to fire modeling event.
	(run-external-modeling): Disable %liveness.
	* test/all/deadlock_collateral_embrace/baseline/simulate/deadlock_collateral_embrace,
	test/all/deadlock_collateral_embrace/baseline/simulate/deadlock_collateral_embrace.stderr,
	test/all/semantics/baseline/semantics.org: Update baseline.

2022-04-20  Jan (janneke) Nieuwenhuizen  <janneke@gnu.org>

	doc: Fix typo.
	* doc/dezyne.texi (Blocking in system context): Typo.

2022-04-20  Rutger van Beusekom  <rutger@dezyne.org>

	test: Add queue_size_four.
	* test/all/queue_size_four/queue_size_four.dzn: New test.
	* test/all/local.mk (REGRESSION_TESTS): Add it.

	test: Add queue size to dzn traces.
	* test/dzn/dzn.scm (run-traces): Pass --queue-size.

	test: Support queue size.
	* test/dzn/dzn.scm (queue-size): New META accessor.
	(run-verify): Use here
	(run-simulate-trace): here
	(run-lts): and here.

2022-04-20  Paul Hoogendijk  <paul@dezyne.org>

	vm: Avoid false livelock due to queuing of events.
	* dzn/vm/util.scm (serialize): Also serialize queue.

	* test/all/livelock_synchronous2/baseline/simulate/livelock_synchronous2,
	test/all/queuefull_component0/baseline/simulate/queuefull_component0:
	Update baseline.

2022-04-20  Jan (janneke) Nieuwenhuizen  <janneke@gnu.org>

	graph: Retain correct TOs when collapsing transitions.
	* dzn/explore.scm (rtc-lts->state-diagram): Also re-calulate TOs after
	deleting duplicate traces.

2022-04-20  Jan (janneke) Nieuwenhuizen  <janneke@gnu.org>

	graph: Do not merge plain and collaterally released nodes in LTS.
	This is a follow-up to commit
	    1012a16d6e684bc8904b4468e0a96813c034857a
	    graph: Do not merge plain and collaterally released nodes in LTS.

	* dzn/explore.scm (pc->rtc-lts): Use actual from-pc in pc+traces,
	instead of pc with #:collateral-instance reset.  Also start all traces
	with from-pc.
	(lts-remove)[remove-state]: Do not remove #:blocked, #:collateral,
	and #:released from pc.
	* test/all/blocking-local-state-diagram/baseline/default.dot: Update baseline.

2022-04-20  Jan (janneke) Nieuwenhuizen  <janneke@gnu.org>

	simulate: Skip compliance check at EOT for blocked trace.
	This fixes simulating doc/examples/blocking.dzn.

	* dzn/simulate.scm (run-sut): At end of trace, skip compliance check for
	blocked pc.

2022-04-20  Jan (janneke) Nieuwenhuizen  <janneke@gnu.org>

	simulate: Fix for --no-compliance: allow empty port traces.
	This is a follow-up to commit
	    aa042c9e16f99e27849943d959d1ca579149815b
	    simulate: Add -C,--no-compliance option.

	* dzn/simulate.scm (check-provides-compliance): Also skip compliance
	error when there are no port traces.

2022-04-20  Rutger van Beusekom  <rutger@dezyne.org>

	makreel: Also switch-context for valued events.
	This is a follow-up to commit
	    af60d8c02d005a97d09a5fdd3895f26ea0dafc46
	    makreel: Find deadly embraced collaterally blocked coroutines.

	* dzn/templates/makreel/proc-assign@action: Add #x:switch-context.

2022-04-20  Jan (janneke) Nieuwenhuizen  <janneke@gnu.org>

	guix: dezyne: Update to 2.15.0.rc0.
	* guix/gnu/packages/dezyne.scm (dezyne)[source]: : Update to 2.15.0.rc0.

2022-01-21  Jan (janneke) Nieuwenhuizen  <janneke@gnu.org>

	doc: Add ANNOUNCE-2.15.0.
	* doc/announce/ANNOUNCE-2.15.0: New file.

	doc: Update `NEWS'.
	* NEWS (Changes in 2.15.0 since 2.14.0): New section.

2022-01-05  Jan (janneke) Nieuwenhuizen  <janneke@gnu.org>
	    Rutger van Beusekom  <rutger@dezyne.org>

	doc: Update `ROADMAP'.
	* ROADMAP: Fix typo.
	(Release 2.15): Mention failing of Alarm lts.  Remove alpha_local2,
	compound_local_assign_call.  Move done items...
	(DONE): ...here.
	(Release 2.15): Move wip-stitch...
	(Release 2.17): ...here.  Move defer to...
	(Release 2.18): ...here.
	(Release 3.0): Move module specification to...
	(Release 2.19): ...here.

2022-03-18  Rutger van Beusekom  <rutger@dezyne.org>

	doc: Describe collateral blocking.
	* doc/dezyne.texi (Blocking in system context): New section.
	* doc/semantics/block.dzn,
	doc/semantics/blocking.dzn,
	doc/semantics/bye.dzn,
	doc/semantics/cancel.dzn,
	doc/semantics/collateral.dzn,
	doc/semantics/embrace.dzn,
	doc/semantics/embrace2.dzn,
	doc/semantics/iblock.dzn,
	doc/semantics/ibye.dzn,
	doc/semantics/ihello.dzn,
	doc/semantics/proxy.dzn: New files.
	* doc/semantics/local.mk (DOCUMENTATION_SEMANTICS): Add them.

	test: Add deadlock_collateral_embrace.
	* test/all/deadlock_collateral_embrace: New test.
	* test/all/local.mk (REGRESSION_TESTS): Add it.

2022-03-21  Jan (janneke) Nieuwenhuizen  <janneke@gnu.org>

	simulate: Add -C,--no-compliance option.
	* dzn/commands/simulate.scm (parse-opts): Add -C,--no-compliance option.
	(main): Pass it to...
	* dzn/simulate.scm (simulate): ...new #:compliance-check? parameter
	here.  Likewise, pass it to...
	(simulate*): ...new #:compliance-check? parameter here.  Likewies, pass
	it to...
	(simulate**): ...new #:compliance-check? parameter here.  Use it to
	set...
	(%compliance-check?): ...this new parameter.
	(compliance-check): Do not report compliance errors unless
	%compliance-check is set.
	* doc/dezyne.texi (Invoking dzn simulate): Document it.

	simulate: Refactor deadlock-report.
	* dzn/simulate.scm (end-report)[deadlock-report]: Nemove status juggling.

	simulate: Do not use <end-of-trail> for plain end.
	* dzn/simulate.scm (run-sut): Do not set <end-of-trail> when there is no
	event.
	(run-trail): Stop when there is no async pending, and no event.

2022-03-14  Rutger van Beusekom  <rutger@dezyne.org>

	test: blocking_requires: Canonicalize.
	* test/all/blocking_requires/blocking_requires.dzn: Use canonical names.

2022-03-15  Rutger van Beusekom  <rutger@dezyne.org>

	test: Camera: Update for cancel guarantee.
	* test/all/Camera/Camera.dzn (Driver): Reorder acquisition and optics
	actions to avoid collateral deadlock.

2022-03-14  Rutger van Beusekom  <rutger@dezyne.org>

	test: Add requires_twice.
	* test/all/requires_twice: New test.
	* test/all/local.mk (REGRESSION_TESTS): Add it.

2022-03-15  Rutger van Beusekom  <rutger@dezyne.org>

	test: Add deadlock_cancel_guarantee.
	* test/all/deadlock_cancel_guarantee: New test.
	* test/all/local.mk (REGRESSION_TESTS): Add it.

2022-03-15  Jan (janneke) Nieuwenhuizen  <janneke@gnu.org>
	    Rutger van Beusekom  <rutger@dezyne.org>

	simulate: Support cancel guarantee for collateral block.
	* dzn/vm/goops.scm (<state>)[collateral-blocked?]: New field.
	* dzn/vm/step.scm (begin-step): When set and not running a modeling
	event, raise <blocked-error>.
	* dzn/vm/util.scm (get-collateral-blocked?, mark-collateral-block,
	reset-collateral-blocked?, set-collateral-blocked?): New methods.
	(serialize)[state]: Refactor to use...
	(serialize)[state, port]: ...this.  Include collateral-blocked.
	* dzn/commands/simulate.scm (parse-opts): Add -B,--no-blocking option.
	(main): Pass it to...
	* dzn/simulate.scm (simulate): ...new #:cancel-guarantee? parameter
	here.  Likewise, pass it to...
	(simulate*): ...new #:cancel-guarantee? parameter here.  Likewise,
	pass it to...
	(simulate**):  ...new #:cancel-guarantee? parameter here.  Use it to set
	%cancel-guarantee? parameter.
	(run-sut): Use it to enable collateral blocking cancel guarantee.
	* dzn/vm/step.scm (%cancel-guarantee?): New parameter.
	* doc/dezyne.texi (Invoking dzn simulate): Document it.

2022-03-17  Jan (janneke) Nieuwenhuizen  <janneke@gnu.org>

	makreel: Remove duplicated port accessor methods.
	* dzn/ast.scm (ast:requires-port*)[port]: New specialization.
	(ast:required+async): Rename to...
	(ast:requires+async-port*): ...this.  Update callers.
	* dzn/code/makreel.scm (ast:async-ports, ast:provides-ports,
	ast:requires-ports, ast:requires+async-ports): Remove.  Update callers
	to use ast:--port* variants.
	* dzn/templates/makreel.scm: Update callers.
	* dzn/verify/pipeline.scm (component-taus): Update caller.

2022-03-09  Rutger van Beusekom  <rutger@dezyne.org>

	makreel: Find deadly embraced collaterally blocked coroutines.
	Report the possibility of deadlock due to collateral blocking as a
	result of a blocked action on another port and a semicolon prioritized
	interaction with the collaterally blocked port.

	* dzn/ast.scm (ast:requires?)[action]: New specification.
	* dzn/commands/code.scm (parse-opts): Add -B,--no-blocking flag.
	* dzn/commands/verify.scm (parse-opts): Likewise.
	* doc/dezyne.texi (Invoking dzn code): Document it.
	(Invoking dzn verify): Likewise.
	(%cancel-guarantee?): New parameter.
	* dzn/code/makreel.scm (root->): Initialize it.
	(makreel:switch-context): Use it in new method.
	* dzn/templates/makreel.scm (requires-port-construct, switch-context,
	semantics-provides-unblocked-modeling,
	semantics-provides-unblocked-switch-context,
	semantics-provides-blocking-requires, provides-hide): New templates.
	* dzn/templates/makreel/model@component (requires_ports): New sort.
	(interface_behavior): Add collateral_block after modeling event.
	(component_behavior): Add switch_context after requires out action.
	(semantics_provides_unblocked): Add pending, switch parameters.
	Allow modeling event on other requires ports after requires port action,
	because it can possibly collaterally block.
	(semantics_provides_blocking, semantics_provides_skip_blocked,
	semantics_provides_blocked, semantics_async): Allow switch_context.
	* dzn/templates/makreel/component-allow-requires@port,
	dzn/templates/makreel/component-comm-requires@port,
	dzn/templates/makreel/component-hide-requires@port,
	dzn/templates/makreel/event-act@interface,
	dzn/templates/makreel/event-act@port,
	dzn/templates/makreel/external-proc@port,
	dzn/templates/makreel/interface-action-proc@port,
	dzn/templates/makreel/proc@action,
	dzn/templates/makreel/proc@interface,
	dzn/templates/makreel/provides-allow@port,
	dzn/templates/makreel/queue-allow-requires@port,
	dzn/templates/makreel/semantics-allow-requires@port,
	dzn/templates/makreel/semantics-async-requires@port,
	dzn/templates/makreel/semantics-blocked-rtc-requires@port,
	dzn/templates/makreel/semantics-comm-requires@port,
	dzn/templates/makreel/semantics-provides-blocked-requires@port,
	dzn/templates/makreel/semantics-provides-skip-blocked-requires@port,
	dzn/templates/makreel/semantics-provides-unblocked@port,
	dzn/templates/makreel/semantics-provides@port,
	dzn/templates/makreel/semantics-rename-requires@port,
	dzn/templates/makreel/semantics-requires@port,
	dzn/templates/makreel/trigger-name@modeling-event: Update.
	* dzn/templates/makreel/provides-hide@port,
	dzn/templates/makreel/requires-port-construct@port,
	dzn/templates/makreel/semantics-provides-blocking-requires@port,
	dzn/templates/makreel/semantics-provides-unblocked-modeling@port,
	dzn/templates/makreel/semantics-provides-unblocked-switch-context@port,
	dzn/templates/makreel/switch-context@action: New files.

2022-03-16  Jan (janneke) Nieuwenhuizen  <janneke@gnu.org>

	doc: examples/simple-state-machine: Avoid cancel guarantee deadlock.
	* doc/examples/simple-state-machine.dzn (simple_state_machine): Reverse
	order of "r1.hello" and "r2.hello".

2022-03-14  Rutger van Beusekom  <rutger@dezyne.org>

	collateral_blocking_reorder: Ignore out-event due to blocked action.
	This prepares for cancel guarantee.

	* test/all/collateral_blocking_reorder/collateral_blocking_reorder.dzn (proxy_block):
	Skip e.world when idle.

2022-03-09  Paul Hoogendijk  <paul@dezyne.org>

	test: Add collateral_blocking_reorder_bypass.
	* test/all/collateral_blocking_reorder_bypass: New test.
	* test/all/local.mk (REGRESSION_TESTS): Add it.

2022-03-21  Jan (janneke) Nieuwenhuizen  <janneke@gnu.org>

	test: collateral_double_blocked_out: Enable lts, simulate.
	* test/all/collateral_double_blocked_out/META: Remove "lts", "simulate"
	from "skip".

2022-03-10  Jan (janneke) Nieuwenhuizen  <janneke@gnu.org>

	simulate: Avoid false-positive provides fork for blocking
	* dzn/simulate.scm (check-provides-fork): Check for initial provides
	trigger.

2022-03-09  Jan (janneke) Nieuwenhuizen  <janneke@gnu.org>

	test: compliance_fork_provides: Remove compliance failure.
	* test/all/compliance_fork_provides/compliance_fork_provides.dzn (compliance_fork_provides):
	Remove compliance failure.
	* test/all/compliance_fork_provides/trace,
	test/all/compliance_fork_provides/baseline/verify/compliance_fork_provides,
	test/all/compliance_fork_provides/baseline/simulate/compliance_fork_provides:
	Update accordingly.

	simulate: Remove compliance provides fork check at EOT.
	* dzn/simulate.scm (end-report)[trace-check-provides-fork,
	component-check-provides-fork]: Remove inner defines.
	(rtc-lts-node->traces, rtc-lts->traces): Remove.

2022-03-09  Jan (janneke) Nieuwenhuizen  <janneke@gnu.org>

	Revert "simulate: Speed-up provides-fork check."
	This reverts commit cd207436cdc84eec55492edea0d36b6fd4d0d7bd.

	The speed-up is nice, but it appears the check can be removed
	altogether.

2022-03-09  Jan (janneke) Nieuwenhuizen  <janneke@gnu.org>

	simulate: Speed-up provides-fork check.
	This decreases the provides fork check time for collateral_blocking_double_release
	from 2'30" to 25"...still pretty slow.

	From the partial refusals LTS, rtc-lts->traces generates 330 distinct
	traces, without delete-duplicates we get 47,238 traces (in only 14").

	* dzn/vm/report.scm (trace->string-trail): Rename to...
	(trace->string-trail-unmemoized):
	(trace->string-trail): New memoizing procedure.
	* dzn/simulate.scm (rtc-lts->traces): Use lset-adjoin instead of append
	and delete-duplicates.

2022-02-24  Jan (janneke) Nieuwenhuizen  <janneke@gnu.org>

	state-diagram: Nicer blocked labels.
	* dzn/vm/util.scm (pc->string-state-diagram): Add blocking, collateral
	prefixes.

2022-02-23  Jan (janneke) Nieuwenhuizen  <janneke@gnu.org>

	graph: Include modeling events in LTS.
	* dzn/explore.scm (rtc-lts->lts): Set %modeling? when generating trace.
	* dzn/vm/report.scm (pc-event?)[runtime:port,trigger]: Always modeling
	events when %modeling? is set.
	(pc->event)[runtime:port,initial-compound, trigger]: Cater for modeling
	event with port.
	* test/dzn/dzn.scm (run-lts): Refactor.  Include modeling events in
	taus.

2022-02-22  Rutger van Beusekom  <rutger@dezyne.org>

	vm: Also hash blocking prefix locations.
	This fixes the deadlock_collateral_blocking LTS.

	* dzn/vm/report.scm (location-prefix): New method.
	(initial-error-message): Use it.
	(step->location): Move to...
	* dzn/ast.scm (ast:location->string): ...here.
	* dzn/vm/step.scm (step)[reply]: Update accordingly.
	* dzn/vm/util.scm (rtc-pc): Cleanup.
	(pc->statements): New method.
	(pc->string): Use it to include blocking locations.

2022-02-22  Jan (janneke) Nieuwenhuizen  <janneke@gnu.org>

	normalize: Fix locations of synthesized elements.
	* dzn/vm/normalize.scm (normalize-compounds): Use location instead of ast.
	(transform-end-of-on): Likewise.

	test: Add collateral_blocking_double_release.
	* test/all/collateral_blocking_double_release: New test.
	* test/all/local.mk (REGRESSION_TESTS): Add it.

2022-02-18  Jan (janneke) Nieuwenhuizen  <janneke@gnu.org>

	test: Add collateral_blocking_top.
	* test/all/collateral_blocking_top: New test.
	* test/all/local.mk (REGRESSION_TESTS): Add it.

2022-02-16  Jan (janneke) Nieuwenhuizen  <janneke@gnu.org>

	test: Add double_hello_block.
	* test/all/double_hello_block: New test.
	* test/all/local.mk (REGRESSION_TESTS): Add it.

	test: Add blocking_release.
	* test/all/blocking_release/blocking_release.dzn: New test.
	* test/all/local.mk (REGRESSION_TESTS): Add it.

2022-02-15  Paul Hoogendijk  <paul@dezyne.org>

	test: Add compliance_blocking_double_release
	* test/all/compliance_blocking_double_release: New test.
	* test/all/local.mk (REGRESSION_TESTS): Add it.

2022-02-15  Rutger van Beusekom  <rutger@dezyne.org>

	test: Add compliance_blocking_multiple_provides.
	* test/all/compliance_blocking_multiple_provides: New test.
	* test/all/local.mk (REGRESSION_TESTS): Add it.

2022-02-11  Jan (janneke) Nieuwenhuizen  <janneke@gnu.org>

	test: Add collateral_blocking_release.
	* test/all/collateral_blocking_release: New test.
	* test/all/local.mk (REGRESSION_TESTS): Add it.

2022-02-03  Jan (janneke) Nieuwenhuizen  <janneke@gnu.org>

	test: Enable traces, lts in META for collateral blocking tests.
	* test/all/blocking_double_release/META,
	test/all/blocking_multiple_provides/META,
	test/all/blocking_multiple_provides2/META,
	test/all/blocking_multiple_provides3/META,
	test/all/blocking_system_diamond/META,
	test/all/collateral_blocking_backdoor/META,
	test/all/collateral_blocking_multiple_provides/META,
	test/all/collateral_blocking_reorder/META,
	test/all/collateral_blocking_shell/META,
	test/all/collateral_blocking_shell2/META,
	test/all/double_collateral_blocking_shell/META,
	test/all/multiple_parallel_blocking/META: Remove "traces", "lts".

2022-03-21  Paul Hoogendijk  <paul@dezyne.org>

	traces: End in node that is receptive for all provides ports.
	* dzn/lts.scm (generate-trace): New parameter provides-ports.
	(idle-node?): Does node receive a provides-in event for all provides
	ports?
	(allowed-end?): Use idle-node?
	* dzn/commands/traces.scm: Pass provides ports to lts->traces.

2022-02-18  Jan (janneke) Nieuwenhuizen  <janneke@gnu.org>

	simulate: Allow port.return as eligible event.
	* dzn/ast.scm (ast:return-values)[event]: Parameterize void value.
	(ast:return-values)[port]: New specialization.
	* dzn/vm/run.scm (%strict?): Move to...
	* dzn/vm/util.scm (%strict?): ...here.
	(rtc-labels, return-labels, blocked-port, blocked-ports): New methods.
	(labels)[pc]: New specialization.
	* dzn/simulate.scm (event-traces-alist): Cater for context switch.  Also
	add return labels.
	(labels-filter-blocked-ports): Do not filter-out return triggers for
	blocked ports.
	* test/all/second_reply_blocking/baseline/simulate/second_reply_blocking:
	Update baseline.

2022-02-17  Jan (janneke) Nieuwenhuizen  <janneke@gnu.org>

	simulate: Support multiple provides RTC events.
	* dzn/vm/run.scm (run-to-completion-unmemoized): Possibly postpone
	context switch when simulating too.
	(run-to-completion*): Do not reset instance.
	(run-to-completion*-context-switch): New method.
	* dzn/simulate.scm (run-sut): Use it.  Do not reset instance.  At end of
	trail, run 'rtc if applicable.
	(event-traces-alist): Update accordingly.
	* dzn/vm/util.scm (return-trigger?): New method.

	simulate: Cater for multiple provides RTC events in compliance check.
	* dzn/simulate.scm (check-provides-compliance): Drop prefix of trace
	until last occurrence trigger.

2022-02-21  Jan (janneke) Nieuwenhuizen  <janneke@gnu.org>

	graph: Do not merge plain and collaterally released nodes in LTS.
	* dzn/vm/goops.scm (<program-counter>)[collateral-instance]: New field.
	* dzn/vm/util.scm (switch-context): Set it after collateral release.
	(pc->string): Include it.
	* dzn/vm/step.scm (step)[block]: Forward it to new pc.
	* dzn/explore.scm (pc->rtc-lts): Reset it before new run.

2022-03-21  Jan (janneke) Nieuwenhuizen  <janneke@gnu.org>

	test: collateral_double_blocked: Enable lts, simulate.
	* test/all/collateral_double_blocked/META: Remove "lts", "simulate" from
	"skip".

2022-02-15  Rutger van Beusekom  <rutger@dezyne.org>

	graph: Support multiple provides RTC events.
	* dzn/vm/runtime.scm (runtime:runtime-provides-port*): New method.
	* dzn/vm/run.scm (run-to-completion-unmemoized)[previous-provides?,
	must-switch?]: New inner defines.  Use them to postpone context switch
	to enable provides api loop.
	(run-to-completion-unmemoized): Cater for 'rtc event.
	(run-to-completion): Likewise.
	* dzn/explore.scm (pc->rtc-lts)[run-label]: New inner define.  Use it to
	cater for running 'rtc event.:

2022-02-17  Rutger van Beusekom  <rutger@dezyne.org>

	vm: Parameterize %debug.
	This fixes the debug printing in compiled modules with Guile 3.0.

	* dzn/vm/util.scm (%debug?): Change to parameter.
	(%debug): Update accordingly.
	* dzn/simulate.scm (simulate*): Likewise.
	* dzn/explore.scm (pc->modeling-lts, lts->aut, state-diagram): Likewise.
	:

2022-02-16  Rutger van Beusekom  <rutger@dezyne.org>

	vm: Support reply value per blocked port.
	* dzn/vm/goops.scm (<state>)[reply]: Change to an alist indexed by port
	name.
	(write): Update accordingly.
	* dzn/vm/step.scm (begin-step): Likewise.
	(step)[reply]: Likewise.
	* dzn/vm/util.scm (get-reply, reset-replies): Likewise.
	(assign): Likewise.
	(reset-reply): New method.

2022-02-14  Rutger van Beusekom  <rutger@dezyne.org>

	makreel: Allow semicolon separated multiple provides interaction.
	Give priority of semicolon separated multiple provides events over
	run to completion of released ports.

	* dzn/templates/makreel/model@component (list2set, remove_port): New map, eqn.
	(semantics_provides_blocking, semantics_reply): Make released
	parameter a List.
	(semantics_provides_blocked): Likewise.  Use it to release head of
	released first.
	* dzn/templates/makreel/semantics-blocked-rtc-requires@port,
	dzn/templates/makreel/semantics-port-in-released-or@port,
	dzn/templates/makreel/semantics-provides-blocked-ports@port,
	dzn/templates/makreel/semantics-provides-blocked-replies@port,
	dzn/templates/makreel/semantics-provides-blocking-provides@port,
	dzn/templates/makreel/semantics-provides-skip-blocked-replies@port,
	dzn/templates/makreel/semantics-provides-unblocked-replies@port,
	dzn/templates/makreel/semantics-provides-unblocked@port,
	dzn/templates/makreel/semantics-reply@port,
	dzn/templates/makreel/semantics-requires@port: Update.

2022-02-11  Rutger van Beusekom  <rutger@dezyne.org>

	makreel: Prioritize run to completion for last provides event.
	This prioritizes the run to completion of the running provides event
	over any other released multiple provides events.

	* dzn/templates/makreel/model@component (semantics_provides_blocked): Add rtc parameter.
	(semantics_blocked_rtc): Likewise.  Set it to provides port after event occurred.
	(semantics_reply): Likewise.  Guard reordered reply with rtc port.
	* dzn/templates/makreel/semantics-async-qout@port,
	dzn/templates/makreel/semantics-blocked-rtc-provides@port,
	dzn/templates/makreel/semantics-blocked-rtc-requires@port,
	dzn/templates/makreel/semantics-provides-blocked-ports@port,
	dzn/templates/makreel/semantics-provides-blocked-replies@port,
	dzn/templates/makreel/semantics-provides-unblocked-replies@port,
	dzn/templates/makreel/semantics-reply@port,
	dzn/templates/makreel/semantics-requires@port: Update.

2022-02-21  Jan (janneke) Nieuwenhuizen  <janneke@gnu.org>

	graph: Do not merge distinct collaterally blocked nodes in LTS.
	* dzn/vm/util.scm (pc->string): Include all collaterally blocked
	instances.

2022-02-02  Jan (janneke) Nieuwenhuizen  <janneke@gnu.org>

	graph: Do not merge distinct blocked nodes in LTS.
	This fixes the LTS of test/all/blocked_system.

	* dzn/vm/util.scm (pc->string): Include all blocked triggers.

2022-01-27  Paul Hoogendijk  <paul@dezyne.org>

	test: blocking_system_diamond: Canonicalize, add trace and main.
	* test/all/blocking_system_diamond/blocking_system_diamond.dzn: Use
	canonical names.
	* test/all/blocking_system_diamond/META,
	test/all/blocking_system_diamond/main.cc,
	test/all/blocking_system_diamond/main.cs,
	test/all/blocking_system_diamond/trace: New files.

	test: Add test blocking_system_diamond.
	* test/all/blocking_system_diamond: New test.

2022-03-21  Jan (janneke) Nieuwenhuizen  <janneke@gnu.org>

	test: collateral_blocking_bridges: Enable lts.
	* test/all/collateral_blocking_bridges/META: Remove "lts" from "skip".

2022-02-02  Jan (janneke) Nieuwenhuizen  <janneke@gnu.org>

	simulate: Detect collateral block on boundary.
	This is a follow-up to commit
	    8d2b49ed096c4093633569d08c981463da481d40
	    simulate: Implement collateral block.

	That commit only considers collaterally blocking for actions, a boundary
	component is first entered in begin-step instead.

	* dzn/vm/step.scm (begin-step): Set <blocked-error> if instance is
	collaterally blocked.

2022-01-29  Jan (janneke) Nieuwenhuizen  <janneke@gnu.org>

	test: collateral_blocking_reorder: Add proxy.
	A component that blocks collaterally at the edge of a system is not
	observable in the trace.  Only once it is released, the first event of
	the trace is printed.

	By adding a proxy between the edge of the system and the collaterally
	blocking component, the collaterally blocking thread is observable when
	it starts running.

	* test/all/collateral_blocking_reorder/collateral_blocking_reorder.dzn
	(proxy_release): New component.
	(Block): Rename to...
	(blocked): ...this.
	(collateral_blocking_reorder): Update accordingly and add proxy_release.
	* test/all/collateral_blocking_reorder/trace,
	test/all/multiple_parallel_blocking/trace: Update accordingly.

2022-01-29  Jan (janneke) Nieuwenhuizen  <janneke@gnu.org>

	test: blocking_shell: Canonicalize.
	* test/all/blocking_shell/blocking_shell.dzn: Use canonical names.
	* test/all/blocking_shell/trace.0,
	test/all/blocking_shell/trace.1,
	test/all/blocking_shell/trace.2: Update.

2022-01-29  Jan (janneke) Nieuwenhuizen  <janneke@gnu.org>

	test: collateral_blocking_multiple_provides: Add proxies.
	A component that blocks collaterally at the edge of a system is not
	observable in the trace.  Only once it is released, the first event of
	the trace is printed.

	By adding a proxy between the edge of the system and the collaterally
	blocking component, the collaterally blocking thread is observable when
	it starts running.

	* test/all/collateral_blocking_multiple_provides/collateral_blocking_multiple_provides.dzn
	(proxy_left, proxy_right): New components.
	(collateral_blocking_multiple_provides): Add them.

2022-01-28  Jan (janneke) Nieuwenhuizen  <janneke@gnu.org>

	test: collateral_blocking_bridges: Add proxy.
	A component that blocks collaterally at the edge of a system is not
	observable in the trace.  Only once it is released, the first event of
	the trace is printed.

	By adding a proxy between the edge of the system and the collaterally
	blocking component, the collaterally blocking thread is observable when
	it starts running.

	* test/all/collateral_blocking_bridges/collateral_blocking_bridges.dzn
	(top_proxy): New component.
	(collateral_blocking_bridges): Add it below top.
	* test/all/collateral_blocking_bridges/trace: Rename to...
	* test/all/collateral_blocking_bridges/trace2: ...this.
	* test/all/collateral_blocking_bridges/trace,
	* test/all/collateral_blocking_bridges/trace1: New files.
	* test/all/collateral_blocking_bridges/main.cc: Cater for all traces.
	* test/all/collateral_blocking_bridges/main.cs: Likewise.

2022-01-28  Jan (janneke) Nieuwenhuizen  <janneke@gnu.org>

	test: Add collateral_blocking_backdoor.
	This shows the need for implementing collateral block in the simulator.

	* test/all/collateral_blocking_backdoor: New test.
	* test/all/local.mk (REGRESSION_TESTS): Add it.

2022-02-21  Jan (janneke) Nieuwenhuizen  <janneke@gnu.org>

	vm: Add collateral-released list.
	* dzn/vm/goops.scm (<program-counter>)[collateral-released]: New field.
	* dzn/vm/goops.scm (write): Use it.
	* dzn/vm/step.scm (step)[block]: Also copy collateral-released.
	* dzn/vm/step.scm (step)[trigger-return]: After releasing a blocked pc,
	move releasing port to collateral-released if collateral needs releasing
	with this port.
	* dzn/vm/util.scm (switch-context): Use collateral-released to release
	a collaterally blocked pc.

2022-03-09  Jan (janneke) Nieuwenhuizen  <janneke@gnu.org>

	vm: Do not release a blocked PC with a next blocking event.
	* dzn/vm/step.scm (step)[reply]: Only release if ports are identical, or
	port is requires.

2022-01-28  Jan (janneke) Nieuwenhuizen  <janneke@gnu.org>

	simulate: Implement collateral block.
	When attempting to perforing an action on a blocked component, the
	current coroutine blocks collaterally.

	* dzn/vm/goops.scm (<program-counter>)[collateral]: New field.
	(write): Show it.
	* dzn/vm/step.scm (step-action-down): If other component is blocked,
	block collaterally.
	(step-action-up): Likewise.
	(step)[block]: In the skip-block case, remove only the current port
	from #:released.  When blocking, also pass #:collateral and #:released
	fields.
	(step)[trigger-return]: Release blocked port.
	* dzn/vm/util.scm (pc->string): Add #:collateral.
	(pc->string-state-diagram): Likewise.
	(rtc-program-counter-equal?): Also compare #:collateral and #:released.
	(pc-equal?): Likewise.
	(ast:equal?)[program-counter program-counter]: New specialization.
	(get-handling): Avoid get-state without instance.
	* dzn/vm/run.scm (extend-trace)[blocked-collaterally?]: New inner
	define.  Use it to remove collaterally-blocked action from trace.
	* dzn/explore.scm (pc->rtc-lts)[collateral?]: New inner define.
	[run-labels]: Use it in new inner define to remove gratuitously added
	collaterally blocked coroutines.
	(lts-remove)[remove-state]: Also reset #:collateral and #:released.
	* dzn/simulate.scm (check-provides-compliance): Cater for collateral
	block.
	(check-provides-compliance+): Likewise.
	* dzn/vm/util.scm (rtc-block-pc, rtc-block-trigger): New methods.
	(rtc-trigger): Avoid last on empty list.
	* dzn/explore.scm (pc->rtc-lts)[collateral?, run-labels]: New inner
	defines.  Use them to cater for collateral block.

2022-01-31  Jan (janneke) Nieuwenhuizen  <janneke@gnu.org>

	simulate: Add debugging for livelock.
	* dzn/vm/run.scm (livelock?): Show livelock detection.

2022-01-30  Jan (janneke) Nieuwenhuizen  <janneke@gnu.org>

	simulate: Set handling to coroutine-id.
	A program-counter stored in the #:blocked list models a blocked
	coroutine.  The id of the coroutine is needed to implement collateral
	blocking.

	* dzn/vm/goops.scm (<state>)[handling?]: Rename field to...
	[handling]: ...this.
	* dzn/vm/util.scm (get-handling?): Rename to...
	(get-handling): ...this.
	(set-handling?): Rename to...
	(set-handling!): ...this.  Remove parameter; set handling to current
	coroutine-id.
	(reset-handling!): New method.
	(flush): Update accordingly.
	* dzn/vm/step.scm (begin-step): Likewise.
	(step)[block]: Likewise.
	[end-of-on]: Likewise.

2022-01-30  Jan (janneke) Nieuwenhuizen  <janneke@gnu.org>

	simulate: Add coroutine-id to program-counter.
	* dzn/vm/goops.scm (<program-counter>)[id]: New field.
	(pc:next-id): New generator function.
	* dzn/vm/step.scm (step)[block]: Use it.
	* dzn/vm/util.scm (make-pc): Use it.
	(switch-context): Update #:id field.

2022-01-25  Rutger van Beusekom  <rutger@dezyne.org>

	test: Add blocking_double_release.
	* test/all/blocking_double_release: New test.
	* test/all/local.mk (REGRESSION_TESTS): Add it.

2022-01-27  Jan (janneke) Nieuwenhuizen  <janneke@gnu.org>

	cs: Support multiple release.
	* runtime/cs/dzn/pump.cs (pump.unblocked]: Change to List.
	(pump.switch_context]: Likewise.
	* runtime/cs/pump.cc (pump.context_switch): Update accodingly.
	(pump.collateral_release): Likewise.
	(pump.block): Likewise.
	(pump.release): Likewise.  Add debugging.
	(pump.run): Add debugging and asserts.

2022-01-28  Jan (janneke) Nieuwenhuizen  <janneke@gnu.org>
	    Rutger van Beusekom  <rutger@dezyne.org>

	simulate: Support multiple release.
	Instead of the released port, keep a list of released ports.  When a
	coroutine releases two blocked ports in one call, the second release
	must not overwrite the first.

	* dzn/simulate.scm (zip)[statement-equal?]: New inner define.  Use it to
	fix thinko: make adding of <trigger-return> idempotent.
	* dzn/simulate.scm (check-provides-compliance+): Run compliance check
	for all <trigger-return>s on a released trace.
	* dzn/vm/goops.scm (<program-counter>)[released]: Change to a list.
	(write): Update accordingly.
	* dzn/vm/util.scm (switch-context): Likewise.
	* dzn/vm/step.scm (step)[reply]: Likewise.
	[block]: Likewise.

2022-01-26  Rutger van Beusekom  <rutger@dezyne.org>
	    Jan (janneke) Nieuwenhuizen  <janneke@gnu.org>

	c++: Support multiple release.
	* runtime/c++/dzn/pump.hh (struct pump)[unblocked]: Change to vector.
	[switch_context]: Likewise.
	* runtime/c++/pump.cc (pump::context_switch): Update accodingly.
	(pump::collateral_release): Likewise.
	(pump::block): Likewise.
	(pump::release): Likewise.  Add debugging.
	(pump::operator()): Add debugging and asserts.

2022-01-27  Jan (janneke) Nieuwenhuizen  <janneke@gnu.org>

	test: collateral_blocking_bridges: Enable cs.
	* test/all/collateral_blocking_bridges/META: Remove "cs" from "skip".

	test: collateral_blocking_bridges: Enable simulate.
	* test/all/collateral_blocking_brigdes/META: Remove "simulate" from
	"skip".

2022-01-26  Rutger van Beusekom  <rutger@dezyne.org>

	test: Add blocking_multiple_provides0.
	* test/all/blocking_multiple_provides0: New test.
	* test/all/local.mk (REGRESSION_TESTS): Add it.

2022-01-26  Jan (janneke) Nieuwenhuizen  <janneke@gnu.org>

	simulate: Switch-context at run-to-completion.
	* dzn/vm/goops.scm (<unblock>): Remove.
	(rtc?)[trace]: New specialization.
	* dzn/vm/step.scm (step)[end-of-on]: Remove two cases to create
	<unbock>.
	[unblock]: Remove specialization.  Factor-out unblocking to...
	* dzn/vm/util.scm (switch-context): ...this new method.
	* dzn/vm/run.scm (run-to-completion-unmemoized): Use it when traces are
	run-to-completion, and re-enter loop for traces that are runnable again.

2022-01-21  Rutger van Beusekom  <rutger@dezyne.org>

	test: Remove import_strip_component.
	Component behaviors are not stripped anymore.

	* test/all/import_strip_component: Remove.
	* test/all/local.mk (REGRESSION_TESTS, XFAIL_TESTS): Remove it.

2022-01-20  Paul Hoogendijk  <paul@dezyne.org>

	test: Add hello_blocking_asynchronous_sync_out.
	* test/all/hello_blocking_asynchronous_sync_out: New test.
	* test/all/local.mk (REGRESSION_TESTS): Add it.

	test: Add hello_blocking_multiple_out.
	* test/all/hello_blocking_multiple_out: New test.
	* test/all/local.mk (REGRESSION_TESTS): Add it.

2022-03-10  Jan (janneke) Nieuwenhuizen  <janneke@gnu.org>

	test: collateral_double_blocked_out: Support cs.
	* test/all/collateral_double_blocked_out/META: Remove "cs" from "skip".

	test: collateral_double_blocked_out: Support c++.
	* test/all/collateral_double_blocked_out_out/META: Skip other languages
	instead of "execute".
	* test/all/collateral_double_blocked_out/main.cc: New file.

2022-01-18  Paul Hoogendijk  <paul@dezyne.org>

	test: Add collateral_double_blocked_out.
	* test/all/collateral_double_blocked_out: New test.
	* test/all/local.mk (REGRESSION_TESTS): Add it.

2022-03-10  Jan (janneke) Nieuwenhuizen  <janneke@gnu.org>

	test: collateral_double_blocked: Support cs.
	* test/all/collateral_double_blocked/main.cs: New file.
	* test/all/collateral_double_blocked/META[skip]: Remove "cs" from "skip".

	test: collateral_double_blocked: Support c++.
	* test/all/collateral_double_blocked_out/META: Skip other languages
	instead of "execute".
	* test/all/collateral_double_blocked/main.cc: New file.

2022-01-18  Paul Hoogendijk  <paul@dezyne.org>

	test: Add collateral_double_blocked.
	* test/all/collateral_double_blocked: New test.
	* test/all/local.mk (REGRESSION_TESTS): Add it.

	test: Add compliance_failures_blocking.
	* test/all/compliance_failures_blocking: New test.
	* test/all/local.mk (REGRESSION_TESTS): Add it.

2022-01-19  Rutger van Beusekom  <rutger@dezyne.org>
	    Jan (janneke) Nieuwenhuizen  <janneke@gnu.org>

	simulate: Support blocking refusal of return.
	* dzn/simulate.scm (end-report)[refusals-report]: Add check for blocked
	port in when component is stable, create "return" refusal for trigger.
	* dzn/vm/report.scm (final-error-messages): Report "return" refusal for
	trigger.

2022-01-10  Paul Hoogendijk  <paul@dezyne.org>

	test: Add blocking_multiple_provides3.
	* test/all/blocking_multiple_provides3: New test.
	* test/all/local.mk (REGRESSION_TESTS): Add it.

2021-12-20  Paul Hoogendijk  <paul@dezyne.org>

	test: Add blocking_multiple_provides2 (simultaneous blocking calls).
	* test/all/blocking_multiple_provides2: New test.
	* test/all/local.mk (REGRESSION_TESTS): Add it.

2022-01-18  Jan (janneke) Nieuwenhuizen  <janneke@gnu.org>

	test: Enable verification of multiple-provides components.
	* test/all/async_blocking_missing_ack/META,
	test/all/async_blocking_verify/META,
	test/all/blocking_multiple_provides/META,
	test/all/collateral_blocking_multiple_provides/META,
	test/all/collateral_blocking_reorder/META,
	test/all/double_collateral_blocking_shell/META,
	test/all/multiple_parallel_blocking/META: Add model #f.
	* test/all/async_blocking_ranking_disorder/META,
	test/all/blocking_bottom_system/META,
	test/all/collateral_blocking_async/META: New files.

2021-11-18  Jan (janneke) Nieuwenhuizen  <janneke@gnu.org>

	graph: Remove blocked port list from state.
	* dzn/explore.scm (lts-remove): Make blocked list empty.
	(state-diagram): Remove self transition when states overlap due to removal.

2021-12-15  Rutger van Beusekom  <rutger@dezyne.org>

	test: compliance_failures_multiple_provides: Make deterministic.
	* test/all/compliance_failures_multiple_provides/compliance_failures_multiple_provides.dzn
	(compliance_failures_multiple_provides)[w]: Rename to...
	[w1]: ..this.
	[w2]: Add port.
	Use it to make behavior deterministic.

2021-12-03  Rutger van Beusekom  <rutger@dezyne.org>
	    Jan (janneke) Nieuwenhuizen  <janneke@gnu.org>
	    Paul Hoogendijk  <paul@dezyne.org>

	verify: Support blocking and multiple provides.
	* dzn/code/makreel.scm (<port-pair>): Add <port-pair>
	(.port.name)[port-pair],
	(.other.name)[port-pair],
	(ast:provides-ports)[port]: New specializations.
	(makreel:provides-pair*, markreel:provides-reply,
	makreel:provides-reset-reply, akreel:multiple-provides?,
	makreel:negate-multiple-provides?): New methods.
	* dzn/commands/traces.scm (lts-hide-internal-labels): Hide <blocking>
	event.
	* dzn/lts.scm (parse-label): Handle 'blocking event, translate to
	<blocking>.
	* dzn/templates/makreel.scm (action-proc, reorder-provides,
	reorder-blocking, reorder-flush, reorder-block, reorder-comm-provides,
	reorder-allow-provides, reorder-allow-requires, reorder-rename-provides,
	reorder-rename-requires, semantics-provides-blocked-internal,
	semantics-provides-replies, provides-out-proc-provides): Remove.
	(reply-values, reordered, component-behavior-rename-requires,
	semantics-provides-reply-init, semantics-provides-reset-reply-pair,
	semantics-provides-reset-reply, semantics-provides-reply-pair,
	semantics-provides-reply, semantics-provides-unblocked-missing-replies,
	semantics-reply ast:provides-port, semantics-blocked-rtc-provides,
	semantics-blocked-rtc-requires): New templates.
	(semantics-provides-unblocked-replies,
	semantics-provides-blocked-requires): Update.
	* dzn/templates/makreel/provides-out-proc-provides@port,
	dzn/templates/makreel/provides-out-proc@component,
	dzn/templates/makreel/reorder-allow-provides@port,
	dzn/templates/makreel/reorder-allow-requires@port,
	dzn/templates/makreel/reorder-block@port,
	dzn/templates/makreel/reorder-blocking@port,
	dzn/templates/makreel/reorder-comm-provides@port,
	dzn/templates/makreel/reorder-flush@port,
	dzn/templates/makreel/reorder-provides@port,
	dzn/templates/makreel/reorder-rename-provides@port,
	dzn/templates/makreel/semantics-provides-blocked-internal@component,
	dzn/templates/makreel/semantics-provides-replies@port: Remove.
	* dzn/templates/makreel/reorder-rename-requires@port: Rename to...
	dzn/templates/makreel/component-behavior-rename-requires@port: ...this.
	* dzn/templates/makreel/action-proc@component: Remove and move into...
	dzn/templates/makreel/model@component: ...this.
	(reply_values): New sort.
	(find, remove): Rename to...
	(find_async, remove_async): ...this.
	(provides_r2c): Add ports parameter.
	(provides_out): Pull to toplevel.
	(provides_parallel): Update accordingly.
	(component_behvior): Add rename for requires out -> qout.
	(component_reorder, component_reorder_block, component_reorder_parallel,
	component_reorder_comm, component_reorder_allow, component_reordered): Remove.
	(semantics_provides_unblocked): Add reply parameter.
	(semantics_async, semantics_async_allow_ack): Add blocked, released,
	reply parameters.
	(semantics_provides_blocking, semantics_provides_skip_blocked,
	semantics_provides_blocked, semantics_reply, semantics_blocked_rtc): New
	processes.
	(semantics, semantics_provides): Use them.  Implement reply reorder,
	missing reply, second reply, and multiple parallel blocked ports.
	* dzn/templates/makreel/async-parallel-port@port,
	dzn/templates/makreel/component-hide-provides@port,
	dzn/templates/makreel/provides-allow@port,
	dzn/templates/makreel/provides-r2c-proc@port,
	dzn/templates/makreel/reply-sort@interface,
	dzn/templates/makreel/semantics-allow-provides@port,
	dzn/templates/makreel/semantics-async-qout@port,
	dzn/templates/makreel/semantics-comm-provides@port,
	dzn/templates/makreel/semantics-provides-blocked-async@port,
	dzn/templates/makreel/semantics-provides-blocked-provides@port,
	dzn/templates/makreel/semantics-provides-blocked-qmt-async@port,
	dzn/templates/makreel/semantics-provides-blocked-qmt@port,
	dzn/templates/makreel/semantics-provides-blocked-requires@port,
	dzn/templates/makreel/semantics-provides-unblocked-replies@port,
	dzn/templates/makreel/semantics-provides-unblocked@port,
	dzn/templates/makreel/semantics-provides@port,
	dzn/templates/makreel/semantics-rename-provides@port,
	dzn/templates/makreel/semantics-requires@port: Update.
	* dzn/templates/makreel/and-infix,
	dzn/templates/makreel/or-infix: New grammar.
	dzn/templates/makreel/other-type-constructor@interface,
	dzn/templates/makreel/other_@port,
	dzn/templates/makreel/provides-out@port,
	dzn/templates/makreel/r2c-to-provides-bmp@port,
	dzn/templates/makreel/reordered@port,
	dzn/templates/makreel/reply-values@port,
	dzn/templates/makreel/semantics-blocked-rtc-provides@port,
	dzn/templates/makreel/semantics-blocked-rtc-requires@port,
	dzn/templates/makreel/semantics-port-in-released-or@port,
	dzn/templates/makreel/semantics-provides-blocked-ports@port,
	dzn/templates/makreel/semantics-provides-blocked-replies@port,
	dzn/templates/makreel/semantics-provides-blocking-provides@port,
	dzn/templates/makreel/semantics-provides-reply-init@port,
	dzn/templates/makreel/semantics-provides-reply-pair@port-pair,
	dzn/templates/makreel/semantics-provides-reply@port,
	dzn/templates/makreel/semantics-provides-reset-reply-pair@port-pair,
	dzn/templates/makreel/semantics-provides-reset-reply@port,
	dzn/templates/makreel/semantics-provides-skip-blocked-replies@port,
	dzn/templates/makreel/semantics-provides-skip-blocked-requires@port,
	dzn/templates/makreel/semantics-provides-unblocked-missing-replies@port,
	dzn/templates/makreel/semantics-reply@port,
	dzn/templates/makreel/to-provides-bmp@port: New files.

2021-11-29  Rutger van Beusekom  <rutger@dezyne.org>

	vm: Reset handling when blocked.
	* dzn/vm/step.scm (step)[block]: In new coroutine/program-counter, reset
	handling.

	graph: Support collateral block.
	* dzn/explore.scm (pc->rtc-lts): Filter-out <blocked-error>s.

2021-11-01  Rutger van Beusekom  <rutger@dezyne.org>

	test: Add blocking_bottom_system.
	* test/all/blocking_bottom_system: New test.
	* test/all/local.mk (REGRESSION_TESTS): Add it.

2021-11-02  Jan (janneke) Nieuwenhuizen  <janneke@gnu.org>

	simulate: Support release from other multiple provides port.
	This postpones resuming running the released pc until after finishing
	the current run to completion, notably including the synthesized trigger
	return.

	* dzn/vm/step.scm (step)[end-of-on]: In case PC is released, set its
	statement to <unblock> and push the <trigger-return> to run first.

2021-11-01  Rutger van Beusekom  <rutger@dezyne.org>

	simulate: Fix missing <external> -> for blocking at the bottom.
	* dzn/simulate.scm (zip): Determine instance from port-trace, via
	port-instance and other-port.

2021-11-01  Jan (janneke) Nieuwenhuizen  <janneke@gnu.org>

	test: double_collateral_blocking_shell: Enable simulate.
	* test/all/double_collateral_blocking_shell/META: Remove "simulate" from "skip".

	test: multiple_parallel_blocking: Enable simulate.
	* test/all/multiple_parallel_blocking/META: Remove "simulate" from "skip".

	test: collateral_blocking_reorder: Enable simulate.
	* test/all/collateral_blocking_reorder/META: Remove "simulate" from "skip".

	test: collateral_blocking_multiple_provides: Enable simulate.
	* test/all/collateral_blocking_multiple_provides/META: Remove "simulate" from "skip".

	test: blocking_multiple_provides: Enable simulate.
	* test/all/blocking_multiple_provides/META: Remove "simulate" from "skip".

	test: collateral_blocking_shell: Enable simulate.
	* test/all/collateral_blocking_shell/META: Remove "simulate" from "skip".

2021-10-27  Rutger van Beusekom  <rutger@dezyne.org>

	test: Add collateral_blocking_async.
	* test/all/collateral_blocking_async: New test.
	* test/all/local.mk (REGRESSION_TESTS): Add it.
	(XFAIL_TESTS): Add it.

	cs: Support collateral_blocking and tracing for async.
	* dzn/templates/cs/async-event-slot@trigger: Use call_in instead of
	handle to consider blocking collaterally.
	* runtime/cs/dzn/meta.cs (async_base): New class.
	(async): Derive from it.
	* runtime/cs/dzn/runtime.cs (call_out): Use that to skip tracing for
	async.

	test: multiple_parallel_blocking: Support cs.
	* test/all/multiple_parallel_blocking/META: Enable "cs".
	* test/all/multiple_parallel_blocking/main.cs: New file.

2021-10-22  Rutger van Beusekom  <rutger@dezyne.org>

	test: double_collateral_blocking_shell: Support cs.
	* test/all/double_collateral_blocking_shell/META: Enable "cs".
	* test/all/double_collateral_blocking_shell/main.cs: New file.

2021-10-26  Rutger van Beusekom  <rutger@dezyne.org>

	test: collateral_blocking_multiple_provides: Support cs.
	* test/all/collateral_blocking_multiple_provides/META: Enable "cs".
	* test/all/collateral_blocking_multiple_provides/main.cs: New file.

2021-10-27  Rutger van Beusekom  <rutger@dezyne.org>

	test: blocking_multiple_provides: Support cs.
	* test/all/blocking_multiple_provides/META: Enable "cs".
	* test/all/blocking_multiple_provides/main.cs: New file.

2021-10-26  Rutger van Beusekom  <rutger@dezyne.org>

	cs: Maintain component stack for collateral block.
	When a blocked coroutine is released, all collaterally blocked
	coroutines that were blocked because of this blocked coroutine must be
	released.  The port of the blocking coroutine is stored in collaterally
	blocked coroutines too.  To do so, a component stack is maintained per
	coroutine.  When collaterally blocking on a component, the originally
	blocking coroutine and the blocking port is looked-up using the
	component stacks.

	* runtime/cs/dzn/runtime.cs (runtime.component_stack,
	blocked_port_component_stack): New variables.
	(runtime.call_helper): Push and pop component onto component_stack.
	Update call to collateral_block.
	(call_out): Likewise.
	* runtime/cs/pump.cc (port_block): Park component_stack on
	blocked_port_component_stack.
	(pump.collateral_block): Add component and runtime parameters.  Park
	component_stack to blocked_port_component_stack.  Set blocked port in
	collaterally blocked coroutine.  After unblock, merge component stacks.
	(pump.collateral_release): Ony release collaterally blocked stacks if
	the port matches.
	(pump.release): Add runtime parameter.  Swap component_stack with the
	blocked_component_stack.
	(pump.collateral_release_skip_block): New method.  If a coroutine is
	collaterally blocked on the blocking component, unblock it.
	(pump.block): Use it.  Unless a collaterally blocked coroutine was
	released, update port of collaterally blocked coroutine.

2022-01-27  Jan (janneke) Nieuwenhuizen  <janneke@gnu.org>

	cs: context: Disable some debugging.
	* runtime/cs/dzn/context.cs (context, call, do_block, do_release,
	do_finish): Comment-out debugging.

	cs: Refactor coroutine and pump.
	* runtime/cs/dzn/coroutine.cs (coroutine.released): Remove.
	* runtime/cs/dzn/pump.cs (pump.find_self): Split assert to give more
	info on failure.
	(pump.release): Set finished instead of released.
	(pump.context_switch): New method.
	(pump.create_context): Use it and simlpify.

	cs: Factor-out remove_finished_coroutines.
	* runtime/cs/dzn/pump.cs (pump.remove_finished_coroutines): New method.
	Factor-out from...
	(pump.run): ...here, and...
	(pump.block): ...here.

2021-11-15  Jan (janneke) Nieuwenhuizen  <janneke@gnu.org>

	cs: Rename "info" to "State".
	Run

	    sed -i -e s,infos,states,g -e 's,\<info\>,State,g' \
	       runtime/cs/dzn/* $(grep -l info dzn/templates/cs/*)

	* runtime/cs/dzn/container.cs,
	runtime/cs/dzn/pump.cs,
	runtime/cs/dzn/runtime.cs: Rename "Info", "infos" to "State", "states".

2021-10-26  Rutger van Beusekom  <rutger@dezyne.org>

	cs runtime: set unblocked to port.
	* runtime/cs/dzn/pump.cs (pump::unblocked): Use Object instead of bool.
	(pump::pump, pump::create_context): Update accordingly.
	(pump::collateral_release): Set it to blocked.port instead of true.

2021-10-22  Rutger van Beusekom  <rutger@dezyne.org>

	test: collateral_blocking_reorder: Support cs.
	* test/all/collateral_blocking_reorder/META: Enable "cs".
	* test/all/collateral_blocking_reorder/main.cs: New file.

2021-10-25  Rutger van Beusekom  <rutger@dezyne.org>

	cs: Support collateral blocking reorder.
	* runtime/cs/dzn/runtime.cs (dzn.Port.other): New method.
	(runtime.call_out): Use it.

2022-01-25  Jan (janneke) Nieuwenhuizen  <janneke@gnu.org>

	cs: Add port to dzn.port.Meta.
	* runtime/cs/dzn/runtime.cs (dzn.Port): New class.
	(runtime.call_in, runtime.call_out): Remove <Port> template.
	* dzn/templates/cs/model@interface: Inherit from it, remove
	dzn_meta member and initialization.
	* runtime/cs/dzn/meta.cs (port.Meta.Provides)[port]: New member.
	(port.Meta.Requuires)[port]: New member.
	(async): Inherif from dzn.Port, remove dzn_meta member and
	initialization.
	* dzn/templates/cs/provided-port-init@port,
	dzn/templates/cs/required-port-init@port: Initialize them.
	* test/all/collateral_blocking_shell/main.cs,
	test/all/collateral_blocking_shell2/main.cs: Likewise.

2021-10-26  Rutger van Beusekom  <rutger@dezyne.org>

	pump.cs: Reduce diff with c++.
	* runtime/cs/dzn/pump.cs (pump::remove_finished_coroutines): Remove.
	Inline assignment...
	(pump::create_context): ...here, and...
	(pump::collateral_release): ...here.

2022-01-07  Rutger van Beusekom  <rutger@dezyne.org>

	cs runtime: Align timer handling with c++, fixing deadlock.
	This fixes a deadlock when using timers with timeout 1.

	* runtime/cs/dzn/pump.cs (worker)[service_timers]: Remove definition,
	inline body.  Remove extra call to service_timers.  Service queue before
	timers.

2021-10-25  Rutger van Beusekom  <rutger@dezyne.org>

	cs: Retype handling from bool to coroutine id.
	* dzn/templates/cs/block@blocking-compound: Move handling, flush to...
	* runtime/cs/dzn/pump.cs (port_block): ...here.
	* runtime/cs/dzn/runtime.cs (info::handling): Use int instead of bool.
	(runtime::flush, runtime::defer, runtime::valued_helper,
	runtime::handle, runtime::call_in): Update accordingly.

2021-11-15  Jan (janneke) Nieuwenhuizen  <janneke@gnu.org>

	cs: Reset skip_block at start of new event.
	* dzn/templates/cs/event-slot@trigger: Remove port from skip_block.
	* dzn/templates/cs/valued-event-slot@trigger: Likewise.

2021-10-27  Rutger van Beusekom  <rutger@dezyne.org>

	build cs: Enable debug tracing and asserts.
	* test/lib/build.cs.make: Build with DEBUG.

2021-10-22  Rutger van Beusekom  <rutger@dezyne.org>

	test: Add async_blocking_missing_ack.
	* test/all/async_blocking_missing_ack: New test.
	* test/all/local.mk (REGRESSION_TESTS, XFAIL_TESTS): Add it.

	test: Add async_blocking_verify.
	* test/all/async_blocking_verify: New test.
	* test/all/local.mk (REGRESSION_TESTS, XFAIL_TESTS): Add it.

2021-10-22  Jan (janneke) Nieuwenhuizen  <janneke@gnu.org>

	test: Add async_blocking_ranking_disorder.
	When compiled with -D DZN_ASYNC_TRACING=1, this shows that
	collateral-block causes a reversal of async execution.

	* test/all/async_blocking_ranking_disorder: New test.
	* test/all/local.mk (REGRESSION_TESTS, XFAIL_TESTS): Add it.

2021-09-21  Jan (janneke) Nieuwenhuizen  <janneke@gnu.org>

	c++: Enable async tracing with DZN_ASYNC_TRACING.
	* runtime/c++/dzn/runtime.hh (DZN_ASYNC_TRACING): New define.
	(call_out): Use it to enable tracing for async.
	* dzn/templates/c++/async-event-slot@trigger,
	dzn/templates/c++/async-req-event-slot@trigger: Likewise.

2021-10-22  Jan (janneke) Nieuwenhuizen  <janneke@gnu.org>

	c++: Have async respect collateral-block.
	* runtime/c++/dzn/meta.hh.in (struct async_base): New base class for...
	(async): ...this.
	* dzn/templates/c++/header-model@interface (struct #x:model-name)
	[~#x:model-name]: Make polymorphic by adding virtual destructor.
	* runtime/c++/dzn/runtime.hh (struct runtime)[call_out]: Use
	dynamic_cast to avoid tracing of async port.
	* dzn/templates/c++/async-event-slot@trigger: Use call_out instead of
	handle.
	* dzn/templates/c++/async-req-event-slot@trigger: Cleanup: remove return.
	* runtime/c++/pump.cc (pump::operator()): Insert break in worker to
	continue with coroutine released by async event.

2021-10-22  Jan (janneke) Nieuwenhuizen  <janneke@gnu.org>

	test: async_ranking_disorder: Remove.
	This test did not demonstrate anything interesting; an illegal was
	triggered because model Top did not verify.

	* test/all/async_ranking_disorder: Remove.
	* test/all/local.mk (REGRESSION_TESTS): Remove it.

2022-01-25  Rutger van Beusekom  <rutger@dezyne.org>

	test: Add collateral_blocking_bridges.
	* test/all/collateral_blocking_bridges: New test.
	* test/all/local.mk (REGRESSION_TESTS): Add it.

2021-08-23  Jan (janneke) Nieuwenhuizen  <janneke@gnu.org>

	test: Add collateral_blocking_multiple_provides.
	* test/all/collateral_blocking_multiple_provides/META,
	test/all/collateral_blocking_multiple_provides/collateral_blocking_multiple_provides.dzn,
	test/all/collateral_blocking_multiple_provides/main.cc,
	test/all/collateral_blocking_multiple_provides/trace: New files.
	* test/all/local.mk (REGRESSION_TESTS): Add test.

	test: Add double_collateral_blocking_shell.
	* test/all/double_collateral_blocking_shell/META,
	test/all/double_collateral_blocking_shell/double_collateral_blocking_shell.dzn,
	test/all/double_collateral_blocking_shell/main.cc,
	test/all/double_collateral_blocking_shell/trace: New files.
	* test/all/local.mk (REGRESSION_TESTS): Add test.

2021-08-11  Rutger van Beusekom  <rutger@dezyne.org>

	test: Add blocking_multiple_provides.
	* test/all/blocking_multiple_provides/META,
	test/all/blocking_multiple_provides/blocking_multiple_provides.dzn,
	test/all/blocking_multiple_provides/trace: New files.
	* test/all/local.mk (REGRESSION_TESTS): Add test.

2021-08-23  Jan (janneke) Nieuwenhuizen  <janneke@gnu.org>

	test: Add multiple_parallel_blocking.
	* test/all/multiple_parallel_blocking/META,
	test/all/multiple_parallel_blocking/main.cc,
	test/all/multiple_parallel_blocking/multiple_parallel_blocking.dzn,
	test/all/multiple_parallel_blocking/trace: New files.
	* test/all/local.mk (REGRESSION_TESTS): Add test.

2021-11-02  Jan (janneke) Nieuwenhuizen  <janneke@gnu.org>

	test: collateral_blocking_shell: Reduce waiting, complete trace.
	* test/all/collateral_blocking_shell/main.cc (main): Add missing
	w0.return, w1.return.  Sleep only 50ms instead of 200.
	* test/all/collateral_blocking_shell/main.cs: Likewise.
	* test/all/collateral_blocking_shell/trace: Insert missing w0.return,
	w1.return.

2021-09-21  Jan (janneke) Nieuwenhuizen  <janneke@gnu.org>

	test: Remove wf_blockingMultipleProvides.
	The restriction of using blocking in the context of multiple provides
	has been lifted.

	* test/all/wf_blockingMultipleProvides/baseline/verify/wf_blockingMultipleProvides.stderr,
	test/all/wf_blockingMultipleProvides/wf_blockingMultipleProvides.dzn: Remove.
	* test/all/local.mk (PARSER_TESTS): Remove test.

2021-11-02  Jan (janneke) Nieuwenhuizen  <janneke@gnu.org>

	wfc: Remove restriction for multiple provides with blocking.
	* dzn/wfc.scm (wfc)[blocking]: Remove check for multiple provides.
	* doc/dezyne.texi (Cannot use blocking ith multiple provides ports):
	Remove section.
	* doc/parse/blocking-multiple-provides.dzn: Remove.
	* doc/parse/local.mk (DEZYNE_PARSE_EXAMPLES): Remove it.
	doc/parse/blocking-multiple-provides.texi: Remove.

2021-08-18  Rutger van Beusekom  <rutger@dezyne.org>
	    Jan (janneke) Nieuwenhuizen  <janneke@gnu.org>

	c++: Maintain component stack for collateral block.
	When a blocked coroutine is released, all collaterally blocked
	coroutines that were blocked because of this blocked coroutine must be
	released.  The port of the blocking coroutine is stored in collaterally
	blocked coroutines too.  To do so, a component stack is maintained per
	coroutine.  When collaterally blocking on a component, the originally
	blocking coroutine and the blocking port is looked-up using the
	component stacks.

	* dzn/templates/c++/header-model@interface (struct component): Move meta
	to first position in struct.
	* runtime/c++/dzn/container.hh (container): Likewise.
	* runtime/c++/dzn/meta.hh.in (async): Likewise.
	* runtime/c++/dzn/runtime.hh (runtime::component_stack,
	blocked_port_component_stack): New variables.
	(runtime::call_helper): Push and pop
	component onto component_stack.  Update call to collateral_block.
	(call_out): Likewise.
	* runtime/c++/pump.cc (port_block): Park component_stack on
	blocked_port_component_stack.
	(pump::collateral_block): Add component and runtime parameters.  Park
	component_stack to blocked_port_component_stack.  Set blocked port in
	collaterally blocked coroutine.  After unblock, merge component stacks.
	(pump::collateral_release): Ony release collaterally blocked stacks if
	the port matches.
	(pump::release): Add runtime parameter.  Swap component_stack with the
	blocked_component_stack.
	(pump::collateral_release_skip_block): New method.  If a coroutine is
	collaterally blocked on the blocking component, unblock it.
	(pump::block): Use it.  Unless a collaterally blocked coroutine was
	released, update port of collaterally blocked coroutine.
	* runtime/c++/dzn/pump.hh (pump::collateral_release_skip_block): Declare
	it.
	(pump::block, pump::collateral_block, pump::release) Update prototypes.

2022-01-26  Rutger van Beusekom  <rutger@dezyne.org>

	c++: Refactor coroutine and pump.
	* runtime/c++/dzn/coroutine.hh (struct coroutine)[released]: Remove.
	* runtime/c++/pump.cc (find_self): Split assert to give more info on
	failure.
	* runtime/c++/pump.cc (pump::release): Set finished instead of released.
	(pump::context_switch): New method.
	(pump::create_context): Use it and simlpify.
	* runtime/c++/dzn/pump.hh (pump::context_switch): Declare it.

2021-08-18  Rutger van Beusekom  <rutger@dezyne.org>

	c++ runtime: set unblocked to port.
	* runtime/c++/dzn/pump.hh (pump::unblocked): Use void* instead of bool.
	* runtime/c++/pump.cc (pump::pump): Update accordingly.
	(pump::collateral_release): Likewise.
	(pump::release): Set to blocked->port instead of true.

	test: Add collateral_blocking_reorder.
	* test/all/collateral_blocking_reorder/META,
	test/all/collateral_blocking_reorder/collateral_blocking_reorder.dzn,
	test/all/collateral_blocking_reorder/trace,
	test/all/collateral_blocking_reorder/main.cc: New files.
	* test/all/local.mk (REGRESSION_TESTS): Add test.

2021-08-18  Rutger van Beusekom  <rutger@dezyne.org>
	    Jan (janneke) Nieuwenhuizen  <janneke@gnu.org>

	c++: Support collateral blocking reorder.
	* runtime/c++/dzn/meta.hh.in (port.other): New function.
	* runtime/c++/dzn/runtime.hh (call_out): Use it to collaterally block a
	new coroutine re-entering a blocked component.

2022-01-24  Rutger van Beusekom  <rutger@dezyne.org>

	c++: Add port to dzn.port.meta.
	* runtime/c++/dzn/meta.hh.in (port.meta.provide)[port]: New member.
	(port.meta.require)[port]: New member.
	* dzn/templates/c++/provided-member-initializer@port,
	dzn/templates/c++/required-member-initializer@port: Initialize them.
	* test/all/collateral_blocking_shell/main.cc,
	test/all/collateral_blocking_shell2/main.cc,
	test/all/hello_namespace_foreign/c++/library_foreign.cc: Likewise.

	c++: Rename dzn.port.meta's port to name, and address to component.
	* runtime/c++/dzn/meta.hh.in (port.meta.provide)[port]: Rename to...
	(port.meta.provide)[name]: ..this
	(port.meta.provide)[address]: ..this
	(port.meta.provide)[component]: ..this
	(port.meta.require)[port]: Rename to...
	(port.meta.require)[name]: ..this
	(port.meta.require)[address]: ..this
	(port.meta.require)[component]: ..this
	* dzn/templates/c++/injected-instance-meta-initializer@instance,
	dzn/templates/c++/injected-require-initializer@port,
	dzn/templates/c++/injected-require-initializer@port,
	dzn/templates/c++/main-provided-port-init@port,
	dzn/templates/c++/main-required-port-init@port: Update accordingly.
	dzn/templates/c++/shell-provided-meta-initializer@port,
	dzn/templates/c++/shell-required-meta-initializer@port,
	* runtime/c++/dzn/meta.hh.in (path): Likewise.
	* runtime/c++/dzn/runtime.hh (trace, trace_out, trace_qin, trace_qout,
	call_out): Likewise.
	* test/all/async_calling_context/c++/main.cc,
	test/all/async_context/main.cc,
	test/all/async_order/main.cc,
	test/all/async_order2/main.cc,
	test/all/async_prio/main.cc,
	test/all/async_prio2/main.cc,
	test/all/async_prio3/main.cc,
	test/all/async_rank/main.cc,
	test/all/async_ranking/main.cc,
	test/all/async_shell/c++/main.cc,
	test/all/async_simple/main.cc,
	test/all/async_synccb/main.cc,
	test/all/async_synccb2/main.cc,
	test/all/blocking_binding/main.cc,
	test/all/blocking_shell/c++/main.cc,
	test/all/calling_context/main.cc,
	test/all/collateral_blocking_shell/main.cc,
	test/all/collateral_blocking_shell2/main.cc,
	test/all/data_full/main.cc,
	test/all/exception_wrappers/c++/main.cc,
	test/all/hello_injected/main.cc,
	test/all/shell_injected/c++/main.cc: Likewise.

2021-08-18  Rutger van Beusekom  <rutger@dezyne.org>

	c++: Retype handling from bool to coroutine id (size_t).
	* dzn/templates/c++/block@blocking-compound (dzn): Move handling,flush to.
	* runtime/c++/pump.cc (port_block): ...here.  Add new component
	parameter.
	* runtime/c++/dzn/runtime.hh (state::handling): Use size_t instead of
	bool.
	(runtime:handling, runtime:handle): Update accordingly.
	* runtime/c++/runtime.cc (runtime::handling): Likewise.

	c++ runtime: Refactor state.
	* runtime/c++/dzn/runtime.hh (struct state): New type.
	(queues): Replace by...
	(states): ...this new member.
	(external, handling, deferred, queue, performs_flush): Update
	accordingly.

2021-09-21  Jan (janneke) Nieuwenhuizen  <janneke@gnu.org>

	test: Support boost::coroutine.
	* test/all/blocking_shell/c++/main.cc,
	test/all/collateral_blocking_shell/main.cc,
	test/all/collateral_blocking_shell2/main.cc: Include thread.

2021-08-20  Jan (janneke) Nieuwenhuizen  <janneke@gnu.org>

	c++ runtime: Resurrect boost::coroutine.
	* runtime/c++/dzn/coroutine.hh[HAVE_BOOST_COROUTINE]: Include
	boost/coroutine/all.hpp.
	[HAVE_BOOST_COROUTINE](context, yield, forced_unwind): New typedefs.
	(coroutine::s_current): Declare new static variable.
	(countine::coroutine)[HAVE_BOOST_COROUTINE]: Initialize it and "this->id"
	to from "this".
	(coroutine::get_id)[HAVE_BOOST_COROUTINE]: Return it.
	(coroutine::yield_to)[HAVE_BOOST_COROUTINE]: Update coroutine::s_current.
	(coroutine::call)[HAVE_BOOST_COROUTINE]: Alternative impementation.
	* runtime/c++/runtime.cc (coroutine::s_current): Define it.

2021-08-18  Rutger van Beusekom  <rutger@dezyne.org>

	c++ runtime: Add get_id to coroutine.
	* runtime/c++/dzn/coroutine.hh (coroutine::id): Change to size_t.
	(coroutine::get_id): New static methodr.
	(coroutine::coroutine): Use it to initialize id.

	c++ runtime: Refactor coroutine & context.
	* runtime/c++/dzn/context.hh (context): Remove third constructor.

	c++ runtime: Remove boost coroutine support.
	* runtime/c++/dzn/coroutine.hh[HAVE_BOOST_COROUTINE]: Remove.

2022-03-17  Jan (janneke) Nieuwenhuizen  <janneke@gnu.org>
	    Rutger van Beusekom  <rutger@dezyne.org>

	doc: Split-up armor example.
	* doc/examples/armor.dzn: Split-out to...
	* doc/examples/bottom_armor.dzn,
	doc/examples/ipermissive.dzn,
	doc/examples/istrict.dzn,
	doc/examples/iwatchdog.dzn,
	doc/examples/proxy.dzn,
	doc/examples/top_armor.dzn: ...these new files.
	* doc/examples/local.mk (DEZYNE_EXAMPLES): Add them.
	* doc/dezyne.texi (Armoring): Update accordingly.

2022-03-04  Rutger van Beusekom  <rutger@dezyne.org>

	wfc: Fix crash in function parameter check.
	* dzn/wfc.scm (wfc)[signature]: Prevent passing state as out parameter
	via a function.
	* test/all/function_out_state: New test.
	* test/all/local.mk (REGRESSION_TESTS): Add it.

2022-03-11  Jan (janneke) Nieuwenhuizen  <janneke@gnu.org>

	simulate: Robustify against "provides external".
	Reported by Joran Jessurun <joran.jessurun@ajmail.nl> via IRC.

	* dzn/vm/runtime.scm (runtime:create-instances)[invert-direction]:
	Clear #:external flag.
	* dzn/vm/run.scm (run-external-modeling): Also check ast:requires?
	instead of only ast:external?
	* dzn/vm/runtime.scm (runtime:create-instances): Likewise.
	* dzn/vm/step.scm (step-action-down): Likewise.

2022-02-18  Jan (janneke) Nieuwenhuizen  <janneke@gnu.org>

	test: semantics: Fix trace for external_multiple_out1.
	This is a follow-up to commit
	    a286f4fbc14f8be083521df28dd57656c062c8b5
	    Add external_multiple_out1, and external_multiple_out2.

	* test/bin/semantics.sh: Oops, correct trace for
	test/all/external_multiple_out1.dzn.
	* test/all/semantics/baseline/semantics.org (external_multiple_out1):
	Update baseline.

2022-02-18  Jan (janneke) Nieuwenhuizen  <janneke@gnu.org>

	simulate: Add debugging for <match> failure.
	* dzn/simulate.scm (run-sut): Add debugging.
	* dzn/vm/run.scm (run-external): Likewise.

2022-02-17  Jan (janneke) Nieuwenhuizen  <janneke@gnu.org>

	simulate: Report shortest trace instead of arbitrary one.
	* dzn/vm/report.scm (report)[trace<]: New inner define.  Use it to sort
	traces before reporting.

2022-02-17  Jan (janneke) Nieuwenhuizen  <janneke@gnu.org>

	vm: Filter-out implicit illegals early.
	This avoids keeping an implicit illegal after an <on> was executed.

	* dzn/vm/run.scm (run-to-completion-unmemoized): Filter-out
	<implicit-illegal-error> early.

2022-02-02  Jan (janneke) Nieuwenhuizen  <janneke@gnu.org>

	simulate: Avoid empty location with compliance error trigger.
	* dzn/vm/report.scm (final-error-messages): Fall back to trigger
	location if event has no location.

2022-01-21  Rutger van Beusekom  <rutger@dezyne.org>

	simulate: Friendlier wording of compliance errors.
	* dzn/vm/report.scm (final-error-messages): Use "performs" instead of
	"accept" for component, use "expect" for port for compliance messag.
	* test/all: Update baseline.

2022-02-11  Jan (janneke) Nieuwenhuizen  <janneke@gnu.org>

	test: bin/rename: Allow invocation from toplevel.
	* test/bin/rename: If invoked from toplevel, cd to test.

2022-02-11  Jan (janneke) Nieuwenhuizen  <janneke@gnu.org>

	test: bin/rename: Fix a regression in renaming the baseline.
	This is a follow-up to commit
	    9736897f8a79f5b57e16972c9996b681584c41a5
	    test: rename: Support renaming into different directory.

	* test/bin/rename: Substitute from_base and to_base in baseline too.

2022-02-07  Jan (janneke) Nieuwenhuizen  <janneke@gnu.org>

	copyright-header.scm: test: Add missing headers to c++ header files.
	* build-aux/copyright-header.scm (code-file?): Include c header files too.
	* test/all/Camera/c++/CMOS.hh,
	test/all/Camera/c++/Contrast.hh,
	test/all/Camera/c++/Lens.hh,
	test/all/Camera/c++/Memory.hh,
	test/all/Camera/c++/Shutter.hh,
	test/all/hello_namespace_foreign/c++/library_foreign.hh: Add missing
	headers.

2022-02-03  Rutger van Beusekom  <rutger@dezyne.org>

	wfc: Report "unknown type: ..." instead of "<unknown-type> expected".
	This fixes:

	    type mismatch: expected `<unknown type>', found: `...'

	* dzn/wfc.scm (argument-type-check): Ignore type resolve failure, since
	unknown types are handled elsewhere in wfc.
	* test/all/undefined/formal_type/formal_type.dzn,
	test/all/undefined/formal_type/baseline/verify/formal_type.stderr: New files.
	* test/all/local.mk (PARSER_TESTS): Add test.
	* test/all/undefined/component/argument_seen/baseline/verify/argument_seen.stderr,
	test/all/wf_actionInExpression/baseline/verify/wf_actionInExpression.stderr:
	Update baseline.

2022-02-01  Jan (janneke) Nieuwenhuizen  <janneke@gnu.org>

	debian: Update copyright, fix typo.
	* debian/copyright (Source): Typo.
	(Copyright): Update to 2022.

2022-01-26  Paul Hoogendijk  <paul@dezyne.org>

	wfc: Do not allow using extern data in a binary expression.
	Extern data must not be used in binary expressions.

	* test/all/wf_expressionExpected/wf_expressionExpected.dzn: Test it.
	* test/all/wf_expressionExpected/baseline/verify/wf_expressionExpected.stderr:
	Update baseline.
	* dzn/wfc.scm (no-extern-expression): New method.
	(binary-equal-no-extern-type): ...this and use it.
	* dzn/wfc.scm (wfc)[equal]: Update caller.
	* dzn/wfc.scm (wfc)[not-equal]: Update caller.

2022-01-27  Jan (janneke) Nieuwenhuizen  <janneke@gnu.org>

	simulate: Avoid car on empty list.
	* dzn/simulate.scm (check-provides-compliance): Handle empty set of
	traces.

2022-01-25  Jan (janneke) Nieuwenhuizen  <janneke@gnu.org>

	Allow implicit temporaries for return.
	* dzn/wfc.scm (tail-recursion): Also find recursion in reply and return.
	(call-context): Allow <action> and <call> in <return> too.
	* dzn/normalize.scm (add-explicit-temporaries): Cater for <return>.
	* test/all/hello_implicit_enum/hello_implicit_enum.dzn: Test returning
	a valued action.
	* test/all/hello_implicit_temporaries/hello_implicit_temporaries.dzn:
	Likewise.
	* test/all/wf_functionTailRecursion/wf_functionTailRecursion.dzn (Intf5,
	Intf6, Intf7): Test retursion detection for reply and return.

2022-01-27  Jan (janneke) Nieuwenhuizen  <janneke@gnu.org>

	test: bin/rename: Also process handwritten main.
	* test/bin/rename: Run sed on any main.*.

2022-01-19  Rutger van Beusekom  <rutger@dezyne.org>

	dzn/pipe: Fix adding exit stati of piped-processes.
	* dzn/pipe.scm (pipeline->string),
	(pipeline->port): Handle signal exit status in pipeline.

2021-12-17  Paul Hoogendijk  <paul@verum.com>

	test: Add determinism_out.
	* test/all/determinism_out/determinism_out.dzn,
	* test/all/determinism_out/trace,
	* test/all/determinism_out/baseline/verify/determinism_out (model),
	* test/all/determinism_out/baseline/verify/determinism_out.stderr (verify),
	* test/all/determinism_out/baseline/simulate/determinism_out,
	* test/all/determinism_out/baseline/simulate/determinism_out.stderr: New files.
	* test/all/local.mk (HELLO_TESTS): Add determinism_out.

	verify: Also consider synchronous out-events in determinism check.
	* dzn/verify/pipeline.scm (deterministic-labels): Include qout labels.
	* test/all/compliance_failures_multiple_provides/compliance_failures_multiple_provides.dzn:
	Remove non-determinism.

2022-01-21  Jan (janneke) Nieuwenhuizen  <janneke@gnu.org>

	explore: Remove deprecated command.
	* dzn/commands/explore.scm: Remove.
	* dzn/commands/local.mk (dist_%C%_scm_DATA): Remove it.
	* Makefile.am (dist_man_MANS): Remove dzn-explore.1.
	* doc/dezyne.texi (Invoking dzn explore): Remove section.

	simulate: Add ,quit and ,state commands.
	* dzn/vm/util.scm (%commands): Add ,quit and ,state.
	(%help-info): Document them.
	(read-input): Update accondingly.  On empty input, recurse.  On EOF,
	exit.

	trace: Add trail to JSON.
	* dzn/trace.scm (steps->trail): New procedure, factor-out from...
	(trace:format-trace): ...here.
	(trace:steps->json): Use it to add trail to JSON.

2022-01-19  Jan (janneke) Nieuwenhuizen  <janneke@gnu.org>

	build-aux/dezyne.org: Update Joran's email.
	Run build-aux/dezyne.sh.

	* build-aux/dezyne-org.sh: Use joran.jessurun@ajmail.nl.
	* test/all/async_shell/async_shell.dzn: Update.
	* test/all/system_mix_bindings/system_mix_bindings.dzn: Update.

2022-01-19  Rutger van Beusekom  <rutger@dezyne.org>

	wfc: Move foreign_conflict to well-formedness.
	* dzn/wfc.scm (wfc)[foreign]: New specialization.
	* test/all/foreign_conflict: Rename to...
	* test/all/wf_foreign_conflict: ...this.
	* test/all/local.mk (PARSER_TESTS): Add it.
	(REGRESSION_TESTS, XFAIL_TESTS): Remove foreign_conflict.
	* test/all/wf_declaredBefore/wf_declaredBefore.dzn (wf_declaredBefore):
	Add empty behavior to avoid foreign-conflict wfc error.

	test: Add wf_missing_bindings.
	* test/all/wf_missing_bindings: New test.
	* test/all/local.mk (PARSER_TESTS): Add it.

	wfc: Reimplement missing-bindings, fixes unbound instance.
	* dzn/wfc.scm (missing-bindings)[port,instance]: Remove specializations.
	[system]: Rewrite.
	* test/all/wf_bindingPortNotBound/baseline/verify/wf_bindingPortNotBound.stderr:
	Update accordingly
	* doc/parse/binding-two-wildcards.texi,
	doc/parse/instance-port-not-bound.texi,
	doc/parse/port-not-bound.texi: Regenerate.

2022-01-19  Jan (janneke) Nieuwenhuizen  <janneke@gnu.org>

	test: Remove failures_nondet_optional.
	After the removal of non-determisisme in the interface, this test is
	already covered by compliance_failures_optional.

	* test/all/failures_nondet_optional: Remove.
	* test/all/local.mk (REGRESSION_TESTS): Remove it.

2022-01-18  Rutger van Beusekom  <rutger@dezyne.org>

	test: Add assign_formal.
	* test/all/assign_formal/assign_formal.dzn: New test.
	* test/all/local.mk (REGRESSION_TESTS): Add it.

2022-01-18  Rutger van Beusekom  <rutger@dezyne.org>

	vm: Fix crash when assigning to a formal.
	This implements assign for formals.

	Reported by Vladimir Ivin <vladimir.ivin@thermofisher.com>.

	* dzn/vm/util.scm (assign)[program-counter]: Remove <variable> typing
	of variable parameter.
	[program-counter formal action],
	[program-counter formal expression],
	[program-counter formal call]: New specializations.

2022-01-10  Rutger van Beusekom  <rutger@dezyne.org>

	vm: Avoid unbounded recursion for system with foreign components.
	Adding async Ranking in a system that includes a foreign component that
	has both provides and requires ports (don't do that!) would enter
	endless recursion.

	* dzn/vm/runtime.scm (runtime:rank!): Skip <runtime:foreign>s.

2021-12-16  Jan (janneke) Nieuwenhuizen  <janneke@gnu.org>

	Remove silence feature.
	* dzn/goops.scm (<on>)[silent?]: Remove field.
	* dzn/parse/ast.scm (parse-tree->ast): Do not call mark-silent.
	* dzn/wfc.scm (wfc)[on]: Do not call modeling-silent.
	(modeling-silent): Remove.
	* dzn/parse/silence.scm: Remove.
	* dzn/parse/local.mk (dist_%C%_scm_DATA): Remove it.
	* test/all/hello_interface_silent,
	test/all/hello_silent,
	test/all/illegal_async_silent,
	test/all/illegal_silent,
	test/all/illegal_silent_external,
	test/all/silent_nondet,
	test/all/silent_optional,
	test/all/silent_optional_broken,
	test/all/silent_optional_function,
	test/all/silent_provides,
	test/all/silent_unused_out,
	test/all/wf_modelingSilent: Remove.
	* test/all/local.mk (HELLO_TESTS, PARSER_TESTS, REGRESSION_TESTS):
	Update accordingly.
	* test/dzn/dzn.scm (no-interface-determinism?): Remove.
	(run-verify): Remove usage of --no-interface-determinism flag.
	(run-simulate-trace): Likewise.
	* dzn/verify/pipeline.scm (mcrl2:verify-interface-asserts): Remove usage
	of --no-interface-determinism flag.
	* dzn/commands/verify.scm (parse-opts): Remove
	--no-interface-determinism flag.
	* dzn/vm/run.scm (run-silent): Factor-out running external modeling
	to...
	(run-external-modeling): ...here.
	(run-interface): Remove run-silent.
	(run-to-completion*): Use run-external-modeling instead of run-silent.
	* dzn/vm/step.scm (step-action-down): Likewise.
	* dzn/code/makreel.scm (makreel:trigger-name): Do not use .silent? or
	create <silent-trigger>.
	(makreel:silent): Remove.
	* dzn/templates/makreel.scm (silent): Remove.
	* dzn/templates/makreel/proc@the-end: Do not call it.
	* dzn/templates/makreel/silent@the-end: Remove.
	* dzn/templates/makreel/component-allow-requires@port,
	dzn/templates/makreel/component-hide-async@port,
	dzn/templates/makreel/component-hide-requires@port,
	dzn/templates/makreel/event-act@interface,
	dzn/templates/makreel/event-act@port,
	dzn/templates/makreel/interface-action-proc@port,
	dzn/templates/makreel/modeling-sort@interface,
	dzn/templates/makreel/proc@interface,
	dzn/templates/makreel/proc@the-end,
	dzn/templates/makreel/provides-allow@port,
	dzn/templates/makreel/provides-rename@port,
	dzn/templates/makreel/queue-allow-requires@port,
	dzn/templates/makreel/semantics-allow-requires@port: Remove silent,
	silent', silent_end, silent_end'.
	* dzn/simulate.scm (pc->provides-traces,
	provides-instance-traces-alist): Remove procedures.
	(rtc-lts->traces): Remove #:prefix-set? and #:continue-on-silent?
	parameters.
	(check-provides-compliance): Remove port-traces-alist parameter.  Update
	callers.  Use simple run-to-completion on port-event or modeling-names
	to calculate port traces.
	[run-provides-modeling]: New inner procedure.
	(check-provides-compliance+): Remove port-traces-alist parameter.
	Update callers.
	(check-provides-compliance*): Likewise.
	(check-deadlock): Update caller.
	(run-sut): Update caller.
	* test/all/hello_nondet/hello_nondet.dzn (hello_nondet): Rewrite to use
	simple, observable non-determinism.
	* test/all/compliance_failures_illegal/baseline/simulate/compliance_failures_illegal.stderr:
	Update baseline.

2022-01-18  Jan (janneke) Nieuwenhuizen  <janneke@gnu.org>

	test: compliance_failures_inevitable: Rename from compliance_failures_inevitable2.
	* test/all/compliance_failures_inevitable2: Rename to...
	* test/all/compliance_failures_inevitable: ...this.
	* test/all/local.mk (REGRESSION_TESTS): Update accordingly.

2022-01-19  Jan (janneke) Nieuwenhuizen  <janneke@gnu.org>

	test: Update rename for removal of reorder.
	* test/bin/rename: Remove special casing for verify.

2022-01-18  Jan (janneke) Nieuwenhuizen  <janneke@gnu.org>

	test: Remove compliance_failures_inevitable.
	After the removal of non-determisisme in the interface, this test is
	already covered by compliance_failures_optional.

	* test/all/compliance_failures_inevitable:: Remove test.
	* test/all/local.mk (REGRESSION_TESTS): Remove it.

2021-12-15  Rutger van Beusekom  <rutger@dezyne.org>

	test blocking_external: Rename from blocking_silent_external.
	No silence here.  Also canonicalize.

	* test/all/blocking_silent_external: Rename to:
	* test/all/blocking_external: This.
	* test/all/local.mk (REGRESSION_TESTS): Update accordingly.

2022-01-18  Jan (janneke) Nieuwenhuizen  <janneke@gnu.org>

	test: Support gcc-11.
	Reported by Joran Jessurun <joran@ajmail.nl> via IRC.

	* test/all/LegoBallSorter/lego_usb.hh,
	test/all/calling_context/main.cc,
	test/all/collateral_blocking_shell/main.cc,
	test/all/collateral_blocking_shell2/main.cc,
	test/all/foreign_optional/c++/main.cc: Include <limits>.
	* test/all/LegoBallSorter/gui.cc: Likewise.  Update for file2file.
	* test/all/LegoBallSorter/makefile (DZN): New variable.
	(CCACHE): Do not depend on `which'.
	(code, runtime): Update for new tree layout.
	* test/all/LegoBallSorter/timer.hh: Update for file2file.

2022-01-06  Rutger van Beusekom  <rutger@dezyne.org>

	test: Add illegal_optional.
	* test/all/illegal_optional: New test.
	* test/all/local.mk (REGRESSION_TESTS): Add it.

2022-01-06  Rutger van Beusekom  <rutger@dezyne.org>

	graph: Do not add redundant implicit illegal trace from LTS.
	This is a follow-up to commit
	    b2bc02cac306e641e0ff4f9a89b957aeef0a83dd
	    simulate: Support implicit interface illegals.

	The implicit-illegal trace should only be added in the absence of any
	other trace.

	* dzn/vm/run.scm (filter-implicit-illegal-only): Thinko: fix matching of
	implicit illegal trace.
	* dzn/explore.scm (pc->rtc-lts): Only remove duplicate implicit illegals
	for same label (i.e., not for 'external).

2022-01-07  Jan (janneke) Nieuwenhuizen  <janneke@gnu.org>

	test: hello_foreign_file: Resurrect scheme.
	* test/all/hello_foreign_file/scheme/stranger.scm: Use iworld module.

2022-01-06  Jan (janneke) Nieuwenhuizen  <janneke@gnu.org>

	test: Enable foreign_conflict.
	* test/all/local.mk (REGRESSION_TESTS): Add foreign_conflict.

2022-01-22  Paul Hoogendijk  <paul@dezyne.org>

	ast: Memoize ast:lookup-variable.
	* dzn/ast.scm (ast:lookup-variable): Rename to...
	(ast:lookup-variable-): ...this.
	(ast:lookup-variable): New memoizing method.

	ast: Dramatically improve performance of ast:eq?.
	* dzn/ast.scm (ast:eq?)[ast ast]: Special-case comparing to self and
	compare parent path lazily by recursing.
	(ast:id-path): Remove.

2022-01-05  Rutger van Beusekom  <rutger@dezyne.org>

	test: Add resolve_formal.
	* test/all/resolve_formal/resolve_formal.dzn: New test.
	* test/all/local.mk (REGRESSION_TESTS): Add it.

2022-01-05  Rutger van Beusekom  <rutger@dezyne.org>
	    Jan (janneke) Nieuwenhuizen  <janneke@gnu.org>

	ast: Two fixes for resolving of variables.
	* dzn/ast.scm (ast:statement-prefix): New method.
	(ast:lookup-var): Rename to...
	(ast:lookup-variable): ...this.  Add "statements" parameter and use it
	to correctly resolve or ignore local variable definitions.
	(.variable): Update callers.
	* test/all/local.mk (XFAIL_TESTS): Remove resolve_member.

2022-01-06  Jan (janneke) Nieuwenhuizen  <janneke@gnu.org>

	test: resolve_member: Rename from alpha_local2.
	* test/all/alpha_local2/alpha_local2.dzn: Rename to...
	*test/all/resolve_member/resolve_member.dzn: ...this.
	* test/all/local.mk (REGRESSION_TESTS, XFAIL_TESTS): Update accordingly.

2022-01-06  Jan (janneke) Nieuwenhuizen  <janneke@gnu.org>
	    Rutger van Beusekom  <rutger@dezyne.org>

	ast: Use full name for subints.
	* dzn/ast.scm (ast:full-name)[int]: Use user-defined name if available.
	* dzn/code.scm (code:reply-type)[int, trigger]: Add specializations.
	[ast, reply]: Rewrite to use them.
	* test/all/wf_expressionExpected/baseline/verify/wf_expressionExpected.stderr: Update.

2022-01-05  Jan (janneke) Nieuwenhuizen  <janneke@gnu.org>

	test: Describe creation of baseline in test/all/README.
	* test/all/README: Describe creation of verify and simulate baseline for
	compliance0.

	test: Add test/bin/update.sh.
	* test/bin/update.sh: New file.

	test: Do not filter-out '(state ' from baseline.
	* test/dzn/dzn.scm (run-simulate-trace): Do not run filter-stdout on
	error trace.
	* test/all/*/baseline/simulate/*: Update accordingly.

	test: compliance0: Canonicalize.
	* test/all/compliance0/compliance0.dzn: Use canonical names.  Remove
	[true] guards.
	* test/all/compliance0/trace,
	test/all/compliance0/baseline/simulate/compliance0,
	test/all/compliance0/baseline/simulate/compliance0.stderr,
	test/all/compliance0/baseline/verify/compliance0,
	test/all/compliance0/baseline/verify/compliance0.stderr: Update accordingly.

	test/lts: Distribute baseline under CC0-1.0.
	* test/lts/README: Update to use CC0-1.0.

2022-01-06  Jan (janneke) Nieuwenhuizen  <janneke@gnu.org>

	test: Remove compound_local_assign_call.
	This is superseeded by hello_unused_assign.

	* test/all/compound_local_assign_call/compound_local_assign_call.dzn: Remove.
	* test/all/local.mk (REGRESSION_TESTS): Remove it.

2021-12-21  Rutger van Beusekom  <rutger@dezyne.org>
	    Jan (janneke) Nieuwenhuizen  <janneke@gnu.org>

	test: Add hello_unused_assign.
	* test/all/hello_unused_assign: New test.
	* test/all/local.mk (REGRESSION_TESTS): Add it.

2021-12-21  Rutger van Beusekom  <rutger@dezyne.org>
	    Jan (janneke) Nieuwenhuizen  <janneke@gnu.org>

	makreel: Avoid syntax error of assign of unused variable.
	Pop variables going out of scope.

	* dzn/code/makreel.scm (last-statement?: New procedure.
	(makreel:assign-call-parameter): Use it in new method.
	* dzn/templates/makreel.scm (assign-call-parameter): Use it in new template.
	* dzn/templates/makreel/assign-call@assign: Use it to move parameter to...
	* dzn/templates/makreel/assign-call-parameter@assign: ...here.
	* dzn/templates/makreel/assign-call@variable: Likewise, move parameter to...
	* dzn/templates/makreel/assign-call-parameter@variable: ...here.
	* test/all/local.mk (XFAIL_TESTS): Remove compound_local_assign_call.

2021-12-21  Rutger van Beusekom  <rutger@dezyne.org>

	test: Add foreign_injected.
	* test/all/foreign_injected: New test.
	* test/all/local.mk (REGRESSION_TESTS): Add it.

2022-01-07  Jan (janneke) Nieuwenhuizen  <janneke@gnu.org>

	scheme: Support foreign injected trace output.
	* dzn/ast.scm (ast:direction)[port]: New specialization.
	* dzn/templates/scheme/injected-require-initializer@port: Use it in new
	template.
	* dzn/templates/scheme/model@component: Use it.

2022-01-06  Jan (janneke) Nieuwenhuizen  <janneke@gnu.org>

	cs: Support foreign injected trace output.
	* dzn/templates/cs/injected-require-initializer@port: New file.
	* dzn/templates/cs/model@component: Use it.

	simulate: Support foreign injected trace.
	* dzn/vm/run.scm (extend-trace): Use trace->trail for debug logging too.
	* dzn/vm/report.scm (pc->event)[action]: Cater for foreign injected
	port.

2021-12-21  Rutger van Beusekom  <rutger@dezyne.org>

	c++: Support foreign injected trace output.
	* dzn/ast.scm (ast:injected-port*): New method.
	* dzn/templates/code.scm (injected-require-initializer): Use it in new template.
	(injected-port-require-override): Likewise
	* dzn/templates/c++/injected-port-require-override@port,
	dzn/templates/c++/injected-require-initializer@port: New template
	files.
	* dzn/templates/c++/event-slot@trigger: Use them.

	simulate: Support foreign injected.
	* dzn/vm/report.scm (complete-split-arrows-pcs): Cater for forein injected port.
	* dzn/vm/runtime.scm (runtime:other-port-unmemoized): Likewise.

2021-12-20  Jan (janneke) Nieuwenhuizen  <janneke@gnu.org>

	doc: Comment-out "Binary Installation".
	* doc/dezyne.texi (Installation): Reword intro.
	(Binary Installation): Comment-out.

2021-12-17  Jan (janneke) Nieuwenhuizen  <janneke@gnu.org>

	makreel: Respect --model when generating code.
	This fixes running the debug output of the pipeline.

	* dzn/code/makreel.scm (ast->): Use makreel:get-model when model is set.

2021-12-16  Jan (janneke) Nieuwenhuizen  <janneke@gnu.org>

	doc: Update `ROADMAP'.
	* ROADMAP (Release 2.14): Move done items...
	(DONE): ...here.
	(Release 2.14): Remove.  Move todo items...
	(Release 2.15): ...here.  Add removal of silent from...
	(Release 2.17): ...here.  Remove silent improvement suggestion.

2021-12-14  Jan (janneke) Nieuwenhuizen  <janneke@gnu.org>

	doc: Move Dezyne-IDE manual to download.verum.com.
	* .texinfo/htmlxref.cnf (V): New variable.
	(dezyne-ide): Use it for Dezyne-IDE manual.

2021-11-26  Rutger van Beusekom  <rutger@dezyne.org>

	doc: Add section "Foreign Component".
	* doc/dezyne.texi (Code Integration): Reword.
	(Integrating C++ Code): Likewise.
	(Foreign Component): New section.
	* doc/examples/foreign.cc,
	doc/examples/foreign.hh,
	doc/examples/hello_foreign.dzn: New files.
	* doc/examples/local.mk (DEZYNE_EXAMPLES): Add them.

2022-02-01  Jan (janneke) Nieuwenhuizen  <janneke@gnu.org>

	test: bin/run: Support --enable-languages="".
	* test/bin/run.in (main): Handle empty list of languages.

2021-12-07  Jan (janneke) Nieuwenhuizen  <janneke@gnu.org>

	build-aux/copyright header.scm: Also skip email update commits.
	Run:
	    build-aux/copyright-header.scm

	* build-aux/copyright-header.scm (author-copyright-line): Use custom
	format, remove prefix and SED hackery.  Only look at first line of
	message, but skip "email" and "dezyne.org" too.
	* (skip?): Do not skip .gitignore.
	(main): Always filter-out skip? files.

2021-12-07  Jan (janneke) Nieuwenhuizen  <janneke@gnu.org>

	guix: dezyne: Fix lint error in synopsis.
	* guix/gnu/packages/dezyne.scm (dezyne): Remove article.

2021-12-02  Jan (janneke) Nieuwenhuizen  <janneke@gnu.org>

	doc: Post-release update.
	* doc/announce/ANNOUNCE-2.14.0: Add checksums.
	* Makefile.am (--previous-version): Bump to 2.14.0.

2021-12-06  Jan (janneke) Nieuwenhuizen  <janneke@gnu.org>

	guix: dezyne: Update to 2.14.0.
	* guix/gnu/packages/dezyne.scm (dezyne)[source]: : Update to 2.14.0.

	doc: Add `ANNOUNCE-2.14.0'.
	* doc/announce/ANNOUNCE-2.14.0: New file.

	doc: Update `NEWS'.
	* NEWS (Changes in 2.14.0 since 2.13.3): Mention release as free
	software, mostly reuse compliancy, well-formedness updates and
	documentation rewrite.

2021-12-06  Jan (janneke) Nieuwenhuizen  <janneke@gnu.org>

	Revert "build: Distribute test baseline data as binary tarball."
	Luckily, this klugde is not necessary.

	This reverts commit dbeea7372140a8a4c64638b0a61260033fcce3bd.

2021-12-06  Jan (janneke) Nieuwenhuizen  <janneke@gnu.org>

	build: Distribute test baseline data as binary tarball.
	Fixes https://savannah.nongnu.org/task/?16067.
	Reported via savannah by Ineiev <ineiev@gnu.org>.

	* Makefile.am (am__tar): Move tar flags to...
	(TAR_FLAGS): ...new variable here.
	(TEST_BASELINE): New variable.
	(dist-hook): Use it to remove test baseline data from tarball.
	(test-data): New target.

2021-12-06  Jan (janneke) Nieuwenhuizen  <janneke@gnu.org>

	debian: Update and bump to 2.14.0.
	* debian/changelog (2.14.0-0): New release.
	* debian/copyright (Source): Update to use savannah url.  Include GFDL
	for the documentation.
	* debian/watch (opts): Update to use dezyne.org url.
	* debian/dzn.lintian-overrides: Update package name.

2021-12-06  Jan (janneke) Nieuwenhuizen  <janneke@gnu.org>

	doc: Remove "Programming Index".
	The idea was to document Dezyne internals for programmers, and while
	that is still a good idea, there is no point in carrying an empty
	chapter until then.

	* doc/dezyne.texi (Programming Index): Remove.

2021-12-06  Jan (janneke) Nieuwenhuizen  <janneke@gnu.org>

	doc: Remove "Glossary".
	One of the last bits of the original manual, which did not have an
	index.  Not really useful.

	* doc/dezyne.texi (Glossary): Remove.

2021-12-06  Jan (janneke) Nieuwenhuizen  <janneke@gnu.org>

	doc: Cleanups to "Glossary".
	* doc/dezyne.texi (Glossary): Cleanups, add references.

	doc: Add "Conditions for using Dezyne".
	* doc/dezyne.texi (Conditions for Using Dezyne): New section.

2021-12-06  Jan (janneke) Nieuwenhuizen  <janneke@gnu.org>

	Add https://reuse.software copyright and license specification.
	Note that reuse-0.13.0 fails to recocgnise these license files:

	   COPYING: GPL-3.0
	   COPYING.AGPL: AGPL-3.0
	   COPYING.CC0: CC0-1.0
	   COPYING.LESSER: LGPL-3.0
	   doc/fdl-1.3.texi: FDL-1.3

	and will complain about it.

	* .reuse/dep5: New file.
	* Makefile.am (EXTRA_DIST): Add it.

2021-12-06  Jan (janneke) Nieuwenhuizen  <janneke@gnu.org>

	build: Add target: check-reuse.
	Running

	    make check-reuse

	copies the standard GNU license COPYING.* and doc/fdl-1.3.texi files to
	the reuse 3.0 specified mandatory location, runs "reuse lint" and cleans
	up.

	* Makefile.am (check-reuse): New target.

2021-12-06  Jan (janneke) Nieuwenhuizen  <janneke@gnu.org>

	copyright-header: Support .gitignore.
	* build-aux/copyright-header.scm (script-file?): Add ".gitignore".
	(author-unique): Add entries for rutger@dezyne.org and paul@dezyne.org.
	* .gitignore: Add missing header.

	build: Use "COPYING" and "COPYING.AGPL", remove "COPYING.GPL'.
	* COPYING: Rename to...
	* COPYING.AGPL: ...this.
	* COPYING.GPL: Rename to...
	* COPYING: ...this.

	guix: dezyne: Update for inclusion in GNU Guix.
	* guix/gnu/packages/dezyne.scm (dezyne)[build-inputs]: Remove autoconf,
	automake, gnu-gettext, help2man, perl, texinfo, zip.  These are needed
	for development from Git.
	[propagated-inputs]: Move to...
	[inputs]: ...here.
	(synopsis, description): Write meaningful content.
	(homepage): Update to https://dezyne.org.
	(arguments): Refactor "wrap-binaries" stage.
	(licenses): Update.
	* guix.scm (dezyne.git)[native-inputs]: New override for development
	from Git.

2021-12-06  Jan (janneke) Nieuwenhuizen  <janneke@gnu.org>

	build: Do not rebuild man pages by default.
	Automake builds man pages after everything is built, upon make install.
	This removes the dependency on help2man and perl for tarball builds.

	* Makefile.am (doc/dzn.1): Remove dependencies.
	(doc/dzn-%.1): Likewise.

2021-12-06  Jan (janneke) Nieuwenhuizen  <janneke@gnu.org>

	simulate: Show GNU-compliant startup and help messages.
	* dzn/vm/util.scm (%commands, %help-info, %copying-info, %startup-info,
	%warranty-info): New variables.
	(show-eligible): Add ",help" and ",show" commands to readline
	completion.
	(read-input): Handle commands.
	* dzn/simulate.scm (run-trail): Show %startup-info on interactive
	startup.

	dzn: Show GNU-compliant version information.
	* configure.ac: Use "Dezyne" for package name.
	* Makefile.am (do_subst): Add @PACKAGE_NAME@.
	* dzn/config.scm.in (%package-name, %copyright-info, %license-info): New
	variables.
	(%version): Rename to...
	(%package-version): ...this.
	* dzn/command-line.scm (show-version-and-exit): Use them in new
	procedure.
	* dzn/script.scm (parse-opts): Use it.
	* dzn/templates/dzn.scm (version): Use %package-version.
	* dzn/templates/c++-exception-wrappers.scm (version): Likewise.

	doc: Update `ROADMAP'.
	* ROADMAP (Release 2.14): Move done tasks...
	(DONE): ...here.

	doc: Update `README'.
	* README: Update to use new description from "Introduction".
	(SUBTITLE): Update from manual.
	(Requirements): Update from manual.
	(Contact): Mention the bug database at gitlab.

	doc: Update `HACKING' with info dir hints.
	* HACKING (Adding dezyne to the toplevel info menu.): New section.

2021-12-06  Rutger van Beusekom  <rutger@dezyne.org>

	doc: Update chapter "Execution Semantics".
	* doc/dezyne.texi (Execution Semantics): Add intro.
	* doc/semantics/external_multiple_out.dzn: Rename to...
	* doc/semantics/external_multiple_out3.dzn: ...this.
	* doc/semantics/external_multiple_out1.dzn,
	doc/semantics/external_multiple_out2.dzn: New files.
	* doc/semantics/local.mk (DOCUMENTATION_SEMANTICS): Update accordingly.
	* build-aux/update-semantics.sh: Update accordingly.
	* doc/images/external_multiple_out.png: Remove.
	* doc/images/external_multiple_out1.png,
	doc/images/external_multiple_out2.png,
	doc/images/external_multiple_out3.png: New files.
	* doc/images/local.mk (dist_info_images_DATA): Update accordingly.

	test: Add external_multiple_out1, and external_multiple_out2.
	* test/all/external_multiple_out: Rename to...
	* test/all/external_multiple_out3: ...this.
	* test/all/external_multiple_out1,
	test/all/external_multiple_out3: New tests.
	* test/all/local.mk (SEMANTICS_TESTS): Update accordingly.
	* test/bin/semantics.sh: Likewise.
	* test/all/semantics/baseline/semantics.org: Update baseline.

	doc: Add chapter "Defensive Design".
	* doc/dezyne.texi (Defensive Design): New chapter.
	* doc/examples/armor.dzn: New file.
	* doc/examples/local.mk (DEZYNE_EXAMPLES): Add it.

	doc: "Code Integration": Replace ASCII diagram with PNG.
	* doc/images/some_system.png: New file.
	* doc/images/local.mk (dist_info_images_DATA): Add it.
	* doc/dezyne.texi (Code Integration): Reword intro.
	(Integrating C++ Code): Use it to replace ASCCI
	diagram.  Move examples out to...
	* doc/examples/some_component.dzn,
	doc/examples/some_component.hh,
	doc/examples/some_interface.dzn,
	doc/examples/some_interface.hh,
	doc/examples/some_system.dzn: these new files.
	* doc/examples/local.mk (DEZYNE_EXAMPLES): Add them.

2021-12-06  Jan (janneke) Nieuwenhuizen  <janneke@gnu.org>

	dzn: Drop the global -j,--json option.
	The --json option is a remnant of the pre-2.10 cloud-based
	implementation.  It was only used by dzn parse and dzn traces.

	On dzn traces, it printed the names of the traces to stdout after all
	traces were generated; dzn --verbose traces will now do that as progress
	on stderr.

	The irregular "working-directory" in the AST and the move to guile-json4
	have broken dzn --json parse in two ways.

	* dzn/script.scm (parse-opts): Remove json option.
	* dzn/commands/parse.scm (main): Remove attempt to produce json output.
	* dzn/commands/traces.scm (model->traces): Remove json option.  Pass
	verbose? to...
	* dzn/lts.scm (lts->traces): ...here, using the new #:verbose?
	parameter.  Likewise, pass it to..
	(generate-trace): ..here, using the new #:verbose? parameter.  When
	verbose?, print name of trace file to stderr.
	* doc/dezyne.texi (Invoking dzn): Remove it.

2021-12-06  Jan (janneke) Nieuwenhuizen  <janneke@gnu.org>

	build: Allow DRAFT gen-announce to succeed without tarball.
	* Makefile.am (gen-announce): Modify announce-gen to not fail without
	tarball.  Update release procedure.

2021-12-06  Jan (janneke) Nieuwenhuizen  <janneke@gnu.org>

	trace: Oops, use --trace instead of --trail.
	Trace only takes code or simulator arrow traces and split-arrow traces.

	* dzn/commands/trace.scm (parse-opts): Oops, use --trace for the input;
	trace does not take a trail or event trace.
	* doc/dezyne.texi (Invoking dzn trace): Update.

2021-12-06  Jan (janneke) Nieuwenhuizen  <janneke@gnu.org>

	doc: Update "Invoking dzn ...".
	* doc/dezyne.texi (direntry): Complete.
	(menu): Add node descriptions.
	(Invoking dzn): Add some background and explanations.
	(Invoking dzn code): Likewise.
	(Invoking dzn graph): Likewise.
	(Invoking dzn language): Likewise.
	(Invoking dzn lts): Likewise.
	(Invoking dzn parse): Likewise.
	(Invoking dzn simulate): Likewise.
	(Invoking dzn trace): Likewise.
	(Invoking dzn verify): Likewise.

	doc: Scale images for PDF and break long lines.
	* doc/dezyne.texi (Binary Installation): Break lines.
	(Hello World!): Likewise.
	(A Simple State Machine): Scale images for PDF.
	(A Camera Example): Likewise.
	(The Lego Ball Sorter): Likewise.
	(Error Handling and Recovery): Add whitespace.
	(Extern Data Type): Break lines.
	(Variable): Likewise.

2021-12-06  Jan (janneke) Nieuwenhuizen  <janneke@gnu.org>

	doc: Break long lines in well-formedness error messages.
	Lines longer than 72 characters look bad in the PDF doc.

	* Makefile.am (%.texi): Use fmt and sed to break lines of more than 72
	characters.
	* doc/parse/: Run make update-doc.

2021-12-06  Jan (janneke) Nieuwenhuizen  <janneke@gnu.org>

	doc: Re-generate trace images of "Execution Semantics".
	* build-aux/update-semantics.sh: New file.
	* Makefile.am (EXTRA_DIST): Add it.
	* doc/images/direct_in.png,
	doc/images/direct_multiple_out1.png,
	doc/images/direct_multiple_out2.png,
	doc/images/direct_out.png,
	doc/images/external_multiple_out.png,
	doc/images/indirect_blocking_multiple_external_out.png,
	doc/images/indirect_blocking_out.png,
	doc/images/indirect_in.png,
	doc/images/indirect_multiple_out1.png,
	doc/images/indirect_multiple_out2.png,
	doc/images/indirect_multiple_out3.png,
	doc/images/indirect_out.png: Remove.
	* doc/images/direct_in.svg,
	doc/images/direct_multiple_out1.svg,
	doc/images/direct_multiple_out2.svg,
	doc/images/direct_out.svg,
	doc/images/external_multiple_out.svg,
	doc/images/indirect_blocking_multiple_external_out.svg,
	doc/images/indirect_blocking_out.svg,
	doc/images/indirect_in.svg,
	doc/images/indirect_multiple_out1.svg,
	doc/images/indirect_multiple_out2.svg,
	doc/images/indirect_multiple_out3.svg,
	doc/images/indirect_out.svg: New files.
	* doc/dezyne.texi (Execution Semantics): Update accordingly.
	* doc/images/README: Mention creation using Dezyne-P5.
	* doc/images/local.mk (dist_info_images_DATA): Update accordingly.

2021-12-06  Rutger van Beusekom  <rutger@dezyne.org>

	doc: Add @node's to "Execution Semantics".
	* doc/dezyne.texi (Execution Semantics): Add @node for each section.

	doc: Add chapter "Ideas and Concepts".
	* doc/dezyne.texi (Ideas and Concepts): New chapter.

2021-12-06  Jan (janneke) Nieuwenhuizen  <janneke@gnu.org>

	Update Henk's email address throughout.
	Run

	    build-aux/dezyne-org.sh

	* build-aux/copyright-header.scm (author-unique): Use hank@mudball.nl.
	* build-aux/dezyne-org.sh: Likewise.

2021-12-06  Jan (janneke) Nieuwenhuizen  <janneke@gnu.org>

	wfc: Avoid crash on undefined event parameter type.
	Avoid using ast:in-triggers during well-formednes, it needs a correct
	AST.  Instead, do a harmless, robust event lookup.

	This is a follow-up to commit
	    e15fb712cf24075970614d97aeddc1784d73a490
	    test: Add parse_behaviour_without_trigger.

	Reported by Michael van de Ven <michael.van.de.ven@thermofisher.com> via
	IRC.

	* dzn/wfc.scm (wfc:provides-in-event*, wfc:requires-out-event*,
	wfc:trigger-event*): New methods.
	(wfc)[component]: Use wfc:trigger-event* instead of
	ast:in-triggers.

2021-12-06  Jan (janneke) Nieuwenhuizen  <janneke@gnu.org>

	test: Add blocking-local-state-diagram.
	* test/all/blocking-local-state-diagram: New test.
	* test/all/local.mk (REGRESSION_TESTS): Add it.

2021-12-06  Jan (janneke) Nieuwenhuizen  <janneke@gnu.org>

	vm: Avoid deadlock in state diagram through leakage of locals.
	On a blocked thread, the popping of local variables was postponed to
	just before the return after the release.  As the state diagram uses a
	hash of the state, as an unintended consequence the state of a blocked
	thread included local variables.  This caused for states to artificially
	differ where they should have been the same, leading to deadlocks.

	* dzn/vm/step.scm (step)[block]: In a blocking context, pop locals.
	[end-of-on, trigger-return]: In a blocking context, skip pop locals.

2021-12-06  Jan (janneke) Nieuwenhuizen  <janneke@gnu.org>

	lts: Cleanup toplevel, remove unused options.
	* dzn/lts.scm (aut-file-format-error, validate-aut-file, print-metrics):
	Remove.
	(write-lts): Rename to...
	(display-lts): ...this, and refactor.
	* dzn/commands/lts.scm (parse-opts): Remove --list-accepts,
	--list-events, --deterministic, --metrics, --validate.
	(main): Rewrite.
	* test/dzn/lts.scm (test:main): Remove obsolete tests.
	* doc/dezyne.texi (Invoking dzn lts): Update accordingly.

	doc: Add intro to chapter "Code Integration".
	* doc/dezyne.texi (Code Integration): Add intro.
	(Integrating C++ Code): Remove "Purpose" section.

	doc: Move "Well-formedness -- System" to the end of the chapter.
	* doc/dezyne.texi ("Well-formedness -- System"): Move to the end of the
	chapter.

	doc: Use @node's and @menu's in "Well-formedness".
	* doc/dezyne.texi (Well-formedness): Add @node, run
	texinfo-all-menus-update.

	doc: Add section "Must specify provides-port with reply on out-trigger".
	* doc/dezyne.texi (Must specify provides-port with reply on
	out-trigger): New section.
	* doc/parse/requires-reply-needs-provides-port.dzn: New file.
	* doc/parse/local.mk (DEZYNE_PARSE_EXAMPLES): Add it.
	* doc/parse/requires-reply-needs-provides-port.texi: New file.

	wfc: Use "requires-out trigger" instead of "out-event".
	* dzn/wfc.scm (reply-without-port): Use "requires-out trigger".
	(reply-in-on): Likewise.
	* test/all/wf_replyOnOutEvent/baseline/verify/wf_replyOnOutEvent.stderr,
	test/all/wf_replyOnOutEventMultiplePort/baseline/verify/wf_replyOnOutEventMultiplePort.stderr:
	Update baseline.

	doc: Add section "Must specify provides-port with reply".
	* doc/dezyne.texi ("Must specify provides-port with reply"): New
	section.
	* doc/parse/function-reply-needs-provides-port.dzn: New file.
	* doc/parse/local.mk (DEZYNE_PARSE_EXAMPLES): Add it.
	* doc/parse/function-reply-needs-provides-port.texi: New file.

	doc: Update "Well-formedness" section names to actual error message.
	* doc/dezyne.texi (Well-formedness): Rename all sections to actual error
	messages.  Many changes throughout.
	* doc/parse/call-in-member-definition.dzn: New file.
	* doc/parse/local.mk (DEZYNE_PARSE_EXAMPLES): Add it.
	* doc/parse/call-in-member-definition.texi: New file.
	* doc/parse: Update.

	wfc: Use "info" for "of instance: ..." message.
	* dzn/wfc.scm (missing-bindings): Use wfc-info.
	* test/all/wf_bindingPortNotBound/baseline/verify/wf_bindingPortNotBound.stderr:
	Update baseline.

	wfc: Use "defined before" instead of "declared before".
	* dzn/wfc.scm (re-declaration): Rename to...
	(re-definition): ...this.  Use "defined before", "defined here".  Update
	callers.
	* test/all/parse_duplicate_declaration/baseline/verify/parse_duplicate_declaration.stderr,
	test/all/wf_NameClash/baseline/verify/wf_NameClash.stderr,
	test/all/wf_declaredBefore/baseline/verify/wf_declaredBefore.stderr:
	Update baseline.

	wfc: Typo remove redundant "error: ".
	* dzn/wfc.scm (missing-return): Remove "error: ".
	* test/all/wf_functionReturnValue/baseline/verify/wf_functionReturnValue.stderr:
	Update baseline.

	wfc: Use "cannot use" instead of "no .. allowed".
	* dzn/wfc.scm (tail-recursion): Use "cannot use".  Use wfc-info for
	statement after call.
	* test/all/wf_functionTailRecursion/baseline/verify/wf_functionTailRecursion.stderr:
	Update baseline.

	wfc: Drop "valued" in "valued call", "valued action".
	* dzn/wfc.scm (call-context): Remove "valued" for return expression and
	complex expression error.
	* test/all/wf_actionInExpression/baseline/verify/wf_actionInExpression.stderr:,
	test/all/wf_functionInExpression/baseline/verify/wf_functionInExpression.stderr:
	Update baseline.

	wfc: Use "otherwise guard" consistently.
	* dzn/wfc.scm (wfc)[guard]: Use "otherwise guard".
	* test/all/wf_otherwiseWithNonGuard/baseline/verify/wf_otherwiseWithNonGuard.stderr:
	Update baseline.

	wfc: Use "cannot use .." instead of "not supported (yet)".
	* dzn/wfc.scm (wfc)[blocking}: Reword.
	* dzn/wfc.scm (tail-recursion): Likewise.
	* test/all/wf_blockingMultipleProvides/baseline/verify/wf_blockingMultipleProvides.stderr,
	* test/all/wf_functionTailRecursion/baseline/verify/wf_functionTailRecursion.stderr:
	Update baseline.

	wfc: Use "must define" instead of "must have".
	* dzn/wfc.scm (wfc)[interface]: Use "must define".
	[component]: Likewise.
	* test/all/parse_component_without_trigger/baseline/verify/parse_component_without_trigger.stderr,
	test/all/wf_componentNeedsProvides/baseline/verify/wf_componentNeedsProvides.stderr,
	test/all/wf_componentNeedsTrigger/baseline/verify/wf_componentNeedsTrigger.stderr,
	test/all/wf_interfaceMustDefineBehavior/baseline/verify/wf_interfaceMustDefineBehavior.stderr,
	test/all/wf_interfaceMustDefineEvent/baseline/verify/wf_interfaceMustDefineEvent.stderr:
	Update baseline.

	wfc: Disallow formal-binding to non-data member variable.
	* dzn/wfc.scm (wfc)[formal-binding]: Also assert that variable is of
	type <extern>.
	* test/all/parse_out_binding/parse_out_binding.dzn: Test it.
	* test/all/parse_out_binding/baseline/verify/parse_out_binding.stderr:
	Update baseline.

	wfc: Add missing colons and quotes.
	* dzn/wfc.scm (single-quote): New procedure.
	(wfc)[instance]: Add missing colon.
	(wfc)[int]: Add missing quotes.
	[reply]: Likewise.
	[enum-literal]: Likewise.
	[field-test]: Likewise.
	[end-point]: Likewise.
	[binding]: Likewise.
	* test/all/parse_parameter_mismatch/baseline/verify/parse_parameter_mismatch.stderr,
	test/all/parse_type_mismatch/baseline/verify/parse_type_mismatch.stderr,
	test/all/wf_actionInExpression/baseline/verify/wf_actionInExpression.stderr,
	test/all/wf_bindingSameType/baseline/verify/wf_bindingSameType.stderr,
	test/all/wf_parameterDataType/baseline/verify/wf_parameterDataType.stderr,
	test/all/wf_replyOnOutEventMultiplePort/baseline/verify/wf_replyOnOutEventMultiplePort.stderr,
	test/all/wf_replyOnType/baseline/verify/wf_replyOnType.stderr,
	test/all/wf_subintMinMax/baseline/verify/wf_subintMinMax.stderr,
	test/all/wf_typeerror/baseline/verify/wf_typeerror.stderr,
	test/all/wf_undefined/baseline/verify/wf_undefined.stderr: Update baseline.

2021-12-06  Rutger van Beusekom  <rutger@dezyne.org>

	doc: Add section "Joining Activities".
	* doc/dezyne.texi (Joining Activities): New section.
	* doc/examples/ca.dzn: Remove.
	* doc/examples/join.dzn: New file.
	* doc/examples/local.mk (DEZYNE_EXAMPLES): Update accordingly.

2021-12-06  Jan (janneke) Nieuwenhuizen  <janneke@gnu.org>

	doc: Add section "Formal Binding".
	* doc/dezyne.texi (Formal Binding): New section.
	(Component On): Add formal-binding to grammar and mention its use in
	blocking.
	(Blocking): Reword the intro.

	doc: Describe non-determinism in "Dezyne Language Reference".
	* doc/dezyne.texi (On): Describe allowed and disallowed (unobservable)
	non-determinism.
	(Component On): Describe disallowed non-determinism.

	doc: Rewrite chapter "Formal Verification".
	* doc/dezyne.texi ("Verifying Models"): Rename to...
	("Formal Verification"): ...this, and rewrite.
	* doc/examples/illegal-requires.dzn: New file.
	* doc/examples/local.mk (DEZYNE_EXAMPLES): Add it.

2021-12-06  Rutger van Beusekom  <rutger@dezyne.org>

	doc: Rewrite the "Purpose" section.
	* doc/dezyne.texi (Purpose): Rewrite.
	(Principles): Remove.
	(Typical use of Dezyne): Remove.
	(The Dezyne Application Domain): Remove.

2021-12-06  Rutger van Beusekom  <rutger@deyne.org>

	doc: Rewrite the "Introduction" chapter.
	* doc/dezyne.texi (Introduction): Rewrite.

2021-12-06  Jan (janneke) Nieuwenhuizen  <janneke@gnu.org>
	    Rutger van Beusekom  <rutger@dezyne.org>

	doc: Add section "The Lego Ball Sorter".
	* doc/dezyne.texi (The Lego Ball Sorter): New section.
	* doc/images/LegoBallSorter-system.png,
	doc/images/MaterialHandler-system.png: New files.
	* doc/images/local.mk (dist_info_images_DATA): Add them.

	doc: Add section "A Camera Example".
	* doc/dezyne.texi (A Camera Example): New section.
	* doc/images/Camera-state.png,
	doc/images/Camera-system.png: New files.
	* doc/images/local.mk (dist_info_images_DATA): Add them.

	doc: Add section "A Simple State Machine".
	* doc/dezyne.texi (A Simple State Machine): New section.
	* doc/examples/ihello-bool.dzn: New file.
	* doc/examples/local.mk (DEZYNE_EXAMPLES): Add it.
	* doc/images/ihello-bool.png: New file.
	* doc/images/local.mk (dist_info_images_DATA): Add it.

	doc: Add chapter "Getting Started".
	* doc/dezyne.texi (Getting Started): New chapter.
	* doc/examples/hello-world.dzn,
	doc/examples/ihello-world.dzn: New files.
	* doc/examples/local.mk (DEZYNE_EXAMPLES): Add them.

2021-12-06  Paul Hoogendijk  <paul@dezyne.org>

	doc: Typos in chapter "Installation".
	* doc/dezyne.texi (Installation): Fix two typos.

2021-12-06  Jan (janneke) Nieuwenhuizen  <janneke@gnu.org>

	doc: Typos and fixes in chapter "Installation".
	* doc/dezyne.texi (Installation): Typos, remove mention of Dezyne-IDE.

2021-12-06  Jan (janneke) Nieuwenhuizen  <janneke@gnu.org>

	doc: Add some sections to chapter "Contributing".
	Parts taken from/heavily inspired by GNU Guix.

	* doc/dezyne.texi (Building from Git): New section.
	(The Perfect Setup): Remove mention of Dezyne-IDE.
	(Submitting Patches): New section.
	(Coding Style): New section.
	* doc/dezyne.texi (Requirements): Nitpicks.

2021-12-06  Jan (janneke) Nieuwenhuizen  <janneke@gnu.org>
	    Rutger van Beusekom  <rutger@dezyne.org>

	doc: Add section "Async Ports".
	* doc/dezyne.texi (Async Ports): New section.
	* doc/examples/dzn.async.dzn: New file.
	* doc/examples/local.mk (DEZYNE_EXAMPLES): Add it.

2021-12-06  Jan (janneke) Nieuwenhuizen  <janneke@gnu.org>

	doc: Whitespace fixes.
	* doc/dezyne.texi (Glossary): Add newlines.
	* doc/semantics/direct_in.dzn,
	doc/semantics/direct_multiple_out.dzn,
	doc/semantics/direct_multiple_out1.dzn,
	doc/semantics/direct_multiple_out2.dzn,
	doc/semantics/direct_out.dzn,
	doc/semantics/external_multiple_out.dzn,
	doc/semantics/indirect_blocking_multiple_external_out.dzn,
	doc/semantics/indirect_blocking_out.dzn,
	doc/semantics/indirect_in.dzn,
	doc/semantics/indirect_multiple_out.dzn,
	doc/semantics/indirect_multiple_out1.dzn,
	doc/semantics/indirect_multiple_out2.dzn,
	doc/semantics/indirect_multiple_out3.dzn,
	doc/semantics/indirect_out.dzn: Add whitespace.

2021-12-06  Jan (janneke) Nieuwenhuizen  <janneke@gnu.org>
	    Rutger van Beusekom  <rutger@dezyne.org>

	doc: Add chapter "Dezyne Language Reference".
	* doc/dezyne.texi (The Dezyne Modeling Language): Merge with...
	(Dezyne Systax): ...this into...
	(Dezyne Language Reference): ...a full rewrite of this new chapter.
	* doc/examples/decompose2-proxy.dzn,
	doc/examples/decompose2.dzn,
	doc/examples/function-call-status.dzn,
	doc/examples/icode.dzn,
	doc/examples/iconsole.dzn,
	doc/examples/imotion2.dzn,
	doc/examples/imotion3.dzn,
	doc/examples/imotion4.dzn,
	doc/examples/imperative-action.dzn,
	doc/examples/iprocess-safety1.dzn,
	doc/examples/iprocess-safety2.dzn,
	doc/examples/iprotocol-stack.dzn,
	doc/examples/iprotocol-stack1.dzn,
	doc/examples/isensor.dzn,
	doc/examples/itimer.dzn,
	doc/examples/itimer2.dzn,
	doc/examples/isiren.dzn,
	doc/examples/isiren1.dzn,
	doc/examples/isiren2.dzn,
	doc/examples/message-handler.dzn: Remove files.
	* doc/examples/inevitable-optional.dzn,
	doc/examples/remote-timer-proxy.dzn,
	doc/examples/top-middle-bottom.dzn: New files.
	* doc/examples/local.mk (DEZYNE_EXAMPLES): Update accordingly.

2021-12-06  Jan (janneke) Nieuwenhuizen  <janneke@gnu.org>

	doc: Update `ROADMAP'.
	* ROADMAP: Mention 2.14 is to be the free software release.
	(Release 2.14): Move documentation and free-software items from...
	(Release 3.0): ...here.

2021-12-06  Jan (janneke) Nieuwenhuizen  <janneke@gnu.org>

	test: Convert META to scheme, omit copyright header.
	Run
	    ./pre-inst-env build-aux/convert-meta.scm

	* test/all/*/META: Convert to scheme.
	* test/dzn/dzn.scm (get-meta): Use read instead of json-string>-alist.
	(skip?): Use symbol 'skip instead of string, and assq-ref.  Remove 'known.
	(get-meta-flag): Use assq-ref.
	(flush?): Use symbol instead of string.
	(thread-pool?): Likewise.
	(thread-safe-shell?): Likewise.
	(code-options): Likewise.
	(model?): Likewise.
	(model-unset?): Likewise.
	(trace-format): Likewise.
	(non-strict?): Likewise.
	(no-interface-determinism?): Likewise.

2021-12-06  Jan (janneke) Nieuwenhuizen  <janneke@gnu.org>

	build: Ensure git timestamp command fails in tarball build.
	When the git timestamp check fails, the .tarball-timestamp fallback is
	properly used.  When a tarball is unpacked within another git archive,
	git does not fail but does not provide a timestamp, making the build
	fail.

	* Makefile.am (dist-hook): Distribute empty .git file.

2021-12-06  Rutger van Beusekom  <rutger@dezyne.org>

	doc: Remove dezyne-tutorial.
	* doc/dezyne-tutorial.texi: Remove.
	* doc/dezyne.texi (direntry): Remove it.
	* Makefile.am (info_TEXINFOS): Remove it.  Also remove dezyne-tutorial
	rules, dependencies and targets.
	* .texinfo/htmlxref.cnf (D): Remove entries for dezyne-tutorial.
	* .gitignore: Remove dezyne-tutorial entries.
	* doc/examples/ArmourIBVIRR.dzn,
	* doc/images/ArmouredSystemIBVIRR_system.png,
	doc/images/ArmouredSystemIIPRB_system.png,
	doc/images/ArmouredSystemIIPRE_system.png,
	doc/images/ArmouredSystemIIPRV_system.png,
	doc/images/ArmouredSystemISOE_system.png,
	doc/images/ArmouredSystemMAOE_system.png,
	doc/images/ArmouredSystemMSOE_system.png,
	doc/images/ArmouredSystemOENABP_system.png,
	doc/images/ArmouredSystemREIR_system.png,
	doc/images/AsyncTutorialFig1.png,
	doc/images/AsyncTutorialFig2.png,
	doc/images/AsyncTutorialFig3.png,
	doc/images/AsyncTutorialFig4.png,
	doc/images/AsyncTutorialFig5.png,
	doc/images/AsyncTutorialFig6.png,
	doc/images/AsyncTutorialFig7.png,
	doc/images/AsyncTutorialFig8.png,
	doc/images/AsyncTutorialFig9.png,
	doc/images/code_icon.75.png,
	doc/images/code_icon.png,
	doc/images/eclipse_1.75.png,
	doc/images/eclipse_1.png,
	doc/images/eclipse_2.75.jpg
	doc/images/eclipse_2.jpg
	doc/images/eclipse_3.75.png,
	doc/images/eclipse_3.png,
	doc/images/error_msg.png,
	doc/images/error_msg_2.png,
	doc/images/explore.png,
	doc/images/generated.png,
	doc/images/github.png,
	doc/images/menu_code.png,
	doc/images/multiple_markers.png,
	doc/images/sequence1.png,
	doc/images/sequence_1.png,
	doc/images/sequence_2.png,
	doc/images/sequence_3.png,
	doc/images/sequence_4.png,
	doc/images/sequence_5.png,
	doc/images/sequence_6.png,
	doc/images/sequence_7.png,
	doc/images/sequence_8.png,
	doc/images/simulate_icon.75.png,
	doc/images/simulate_icon.png,
	doc/images/state_1.png,
	doc/images/state_2.png,
	doc/images/state_3.jpg
	doc/images/system_1.png,
	doc/images/system_2.75.png,
	doc/images/system_2.png,
	doc/images/system_3.png,
	doc/images/system_4.png,
	doc/images/system_5.png,
	doc/images/system_6.png,
	doc/images/system_7.png,
	doc/images/system_8.png,
	doc/images/system_diagram1.png,
	doc/images/system_diagram2.png,
	doc/images/update_icon.75.png,
	doc/images/update_icon.png,
	doc/images/verification_error_1.75.png,
	doc/images/verification_error_1.png,
	doc/images/verify_icon.75.png,
	doc/images/verify_icon.png,
	doc/images/verify_results.75.png,
	doc/images/verify_results.png,
	doc/images/watch_1.png,
	doc/images/watch_2.png: Remove.

2021-12-06  Jan (janneke) Nieuwenhuizen  <janneke@gnu.org>

	build-aux: Add convert-meta.scm
	* build-aux/convert-meta.scm: New file.

	test: Remove redundant model override METAs.
	* test/all/inner.space/META,
	test/all/name.space/META,
	test/all/simple.space/META: Remove.

2021-12-06  Jan (janneke) Nieuwenhuizen  <janneke@gnu.org>

	test: Remove "cannot execute" from METAs.
	The test driver skips execution of error models.

	* test/all/compliance0/META,
	test/all/compliance_livelock/META,
	test/all/compliance_requires_illegal/META,
	test/all/deadlock_blocking_guard/META,
	test/all/deadlock_blocking_inevitable/META,
	test/all/deadlock_blocking_optional/META,
	test/all/deadlock_component0/META,
	test/all/deadlock_component1/META,
	test/all/determinism0/META,
	test/all/determinism1/META,
	test/all/determinism_async/META,
	test/all/illegal_component0/META,
	test/all/queuefull_external/META: Remove.
	* test/all/illegal_external_nonsynchronous/META,
	test/all/livelock_iterator/META,
	test/all/livelock_recurse/META,
	test/all/livelock_synchronous/META,
	test/all/livelock_synchronous2/META,
	test/all/livelock_synchronous_illegal/META,
	test/all/livelock_unfold/META,
	test/all/queuefull_external_sync/META: Remove skip "excute".

2021-12-06  Jan (janneke) Nieuwenhuizen  <janneke@gnu.org>

	test: Remove "code<2.8" from METAs.
	* test/all/hello_optional_flush/META: Remove skip code<2.8.0.
	* test/all/hello_tick/META: Remove.

	test: Remove "system model cannot run" METAs.
	* test/all/compliance_nonsynchronous_sync/META,
	test/all/compliance_system_provides_bool/META,
	test/all/hello_enum/META,
	test/all/hello_foreign/META,
	test/all/hello_foreign_file/META,
	test/all/hello_foreign_path/META,
	test/all/hello_int/META,
	test/all/hello_system/META,
	test/all/hello_systems/META,
	test/all/hellocheckcompbindings/META,
	test/all/silent_nondet/META,
	test/all/silent_optional/META,
	test/all/silent_optional_broken/META,
	test/all/silent_optional_function/META,
	test/all/system_helloworld/META,
	test/all/system_inevitable/META,
	test/all/system_nondet_out/META,
	test/all/system_nondet_reply/META,
	test/all/system_optional/META,
	test/all/system_out/META,
	test/all/system_out_internal/META,
	test/all/system_out_two/META,
	test/all/system_reply_bool/META,
	test/all/system_reply_enum/META: Remove.
	* test/all/LegoBallSorter/META,
	test/all/async_rank/META,
	test/all/async_ranking/META,
	test/all/blocking_system/META,
	test/all/blocking_system2/META,
	test/all/blocking_system3/META,
	test/all/blocking_system4/META,
	test/all/compliance_livelock/META,
	test/all/determinism_async/META
	test/all/hello_import_component/META,
	test/all/hello_injected/META: Remove known/skip "run" and "run"
	comment.

	test: Remove METAs from well-formedness tests.
	* test/all/wf_*/META: Remove.

2021-12-06  Jan (janneke) Nieuwenhuizen  <janneke@gnu.org>

	test/language: Distribute README.
	Fixes https://savannah.nongnu.org/task/?16067.
	Reported via savannah by Ineiev <ineiev@gnu.org>.

	* test/language/local.mk (EXTRA_DIST): Add README.

2021-12-06  Jan (janneke) Nieuwenhuizen  <janneke@gnu.org>

	doc/semantics: Distribute README.
	* doc/semantics/local.mk (EXTRA_DIST): Add README.
	* doc/semantics/local.mk (TUTORIAL_SEMANTICS): Rename to...
	(DOCUMENTATION_SEMANTICS): ...this.

2021-12-06  Jan (janneke) Nieuwenhuizen  <janneke@gnu.org>

	doc/images: Distribute README.
	Fixes https://savannah.nongnu.org/task/?16067.
	Reported via savannah by Ineiev <ineiev@gnu.org>.

	* doc/images/local.mk (EXTRA_DIST): Add README.

2021-12-06  Jan (janneke) Nieuwenhuizen  <janneke@gnu.org>

	dzn/templates: Distribute README.
	Fixes https://savannah.nongnu.org/task/?16067.
	Reported via savannah by Ineiev <ineiev@gnu.org>.

	* dzn/templates/local.mk (EXTRA_DIST): Add README.

2021-12-06  Jan (janneke) Nieuwenhuizen  <janneke@gnu.org>

	debian: Add README.
	The debian/ directory is not distributed, neither is this file.

	* debian/README: New file.

2021-12-06  Jan (janneke) Nieuwenhuizen  <janneke@gnu.org>

	Remove scm2json.
	Fixes https://savannah.nongnu.org/task/?16067.
	Reported via savannah by Ineiev <ineiev@gnu.org>.

	* bin/scm2json.in: Remove.
	* Makefile.am (EXTRA_DIST): Remove it.
	(bin_SCRIPTS): Remove scm2json.
	* dzn/scm2json.scm: Remove.
	* dzn/local.mk (dist_%C%_scm_DATA): Remove it.

2021-12-06  Jan (janneke) Nieuwenhuizen  <janneke@gnu.org>

	build: Distribute emacs.
	* emacs/local.mk: New file.

2021-12-06  Jan (janneke) Nieuwenhuizen  <janneke@gnu.org>

	emacs: Add and update copyright headers.
	Fixes https://savannah.nongnu.org/task/?16067.
	Reported via savannah by Ineiev <ineiev@gnu.org>.

	* emacs/pre-inst-env.el: Add copyright header.
	* emacs/dzn-mode.el: Update copyright header.

2021-12-06  Jan (janneke) Nieuwenhuizen  <janneke@gnu.org>

	build-aux/copyright-header.scm: Do not skip emacs directory.
	* build-aux/copyright-header.scm (skip?): Remove "emacs/".

	AUTHORS: Add legalese.
	* AUTHORS (legalese): New section.

2021-12-06  Jan (janneke) Nieuwenhuizen  <janneke@gnu.org>

	Update COPYING.GPL, COPYING.LESSER from latest upstream.
	Fixes https://savannah.nongnu.org/task/?16067.
	Reported via savannah by Ineiev <ineiev@gnu.org>.

	Run:

	    wget -O COPYING https://www.gnu.org/licenses/agpl-3.0.txt
	    wget -O COPYING.GPL https://www.gnu.org/licenses/gpl-3.0.txt
	    wget -O COPYING.LESSER https://www.gnu.org/licenses/lgpl-3.0.txt

	* COPYING.GPL,
	COPYING.LESSER: Use https URLs.

2021-12-06  Jan (janneke) Nieuwenhuizen  <janneke@gnu.org>

	doc/semantics: Distribute under the GFDL and AGPL.
	Fixes https://savannah.nongnu.org/task/?16067.
	Reported via savannah by Ineiev <ineiev@gnu.org>.

	* doc/semantics/README: Specify either the GFDL-1.3+ without invariant
	sections, or the AGPL-3+.

2021-12-06  Rutger van Beusekom  <rutger@dezyne.org>

	doc/parse: Add README.
	Fixes https://savannah.nongnu.org/task/?16067.
	Reported via savannah by Ineiev <ineiev@gnu.org>.

	* doc/parse/README: New file.
	* doc/parse/local.mk (EXTRA_DIST): Add it.

2021-12-06  Jan (janneke) Nieuwenhuizen  <janneke@gnu.org>

	build: Distribute doc/examples.
	Fixes https://savannah.nongnu.org/task/?16067.
	Reported via savannah by Ineiev <ineiev@gnu.org>.

	* Makefile.am: Include doc/examples/local.mk.

2021-12-06  Rutger van Beusekom  <rutger@dezyne.org>

	doc/examples: Add README.
	Fixes https://savannah.nongnu.org/task/?16067.
	Reported via savannah by Ineiev <ineiev@gnu.org>.

	* doc/examples/README: New file.
	* doc/examples/local.mk (EXTRA_DIST): Add it.

2021-11-26  Rutger van Beusekom  <rutger@dezyne.org>

	dzn/templates/README: Distribute snippets under the CC0-1.0
	Fixes https://savannah.nongnu.org/task/?16067.
	Reported via savannah by Ineiev <ineiev@gnu.org>.

	* dzn/templates/README: Add c, c++, dot, dzn.  Update license.

2021-11-26  Jan (janneke) Nieuwenhuizen  <janneke@gnu.org>

	test: lts: Add README.
	Fixes https://savannah.nongnu.org/task/?16067.
	Reported via savannah by Ineiev <ineiev@gnu.org>.

	* test/lts/README: New file.
	* test/lts/local.mk (EXTRA_DIST): Add it.

2021-11-26  Jan (janneke) Nieuwenhuizen  <janneke@gnu.org>

	test: semantics, state-diagram: Move test data to baseline directory.
	Fixes https://savannah.nongnu.org/task/?16067.
	Reported via savannah by Ineiev <ineiev@gnu.org>.

	* test/all/semantics/semantics.org: Move to...
	* test/all/semantics/baseline/semantics.org: ...here.

	* test/all/semantics/run: Update accordingly.

	* test/all/state-diagram/default.dot: Move to...
	* test/all/semantics/baseline/default.dot: ...here.

	* test/all/state-diagram/hide-actions.dot: Move to...
	* test/all/semantics/baseline/hide-actions.dot: ...here.

	* test/all/state-diagram/hide-labels.dot: Move to...
	* test/all/semantics/baseline/hide-labels.dot: ...here.

	* test/all/state-diagram/remove-extended.dot: Move to...
	* test/all/semantics/baseline/remove-extended.dot: ...here.

	* test/all/state-diagram/remove-ports.dot: Move to...
	* test/all/semantics/baseline/remove-ports.dot: ...here.

	* test/all/state-diagram/run: Update accordingly.

2021-11-12  Jan (janneke) Nieuwenhuizen  <janneke@gnu.org>

	build: Distribute test/all/README.
	This is a follow-up to commit
	    e830c17f16c51cdaa406d56ea8317380b7f93c46
	    test: Add README to clarify license of baseline.

	* test/all/local.mk (EXTRA_DIST): Add %D%/ prefix to README.

2021-12-02  Jan (janneke) Nieuwenhuizen  <janneke@gnu.org>

	Distribute test data under the CC0-1.0.
	* test/all/README: Update copyright and license status.

	Distribute images under the CC0-1.0.
	* doc/images/README: Update copyright and license status.

2021-12-01  Jan (janneke) Nieuwenhuizen  <janneke@gnu.org>

	build: Add COPYING.CC0.
	* COPYING.CC0: New file.
	* Makefile.am (EXTRA_DIST): Add it.

2021-11-12  Jan (janneke) Nieuwenhuizen  <janneke@gnu.org>

	simulate: Avoid crash in reporting of compliance error.
	This is a follow-up to commit
	    b2bc02cac306e641e0ff4f9a89b957aeef0a83dd
	    simulate: Support implicit interface illegals.

	* dzn/vm/util.scm (trigger->string)[initial-compound]: New
	specialization.

2021-11-12  Jan (janneke) Nieuwenhuizen  <janneke@gnu.org>

	Deprecate "behaviour", use "behavior" throughout.
	Run

	    sed -i -e s,behaviour,behavior,g \
	        -e s,Behaviour,Behavior,g \
	        -e s,BEHAVIOUR,BEHAVIOR,g \
	        $(find * -type f \
	          | grep -Ev 'NEWS|peg.scm|complete.scm|doc/announce|hello_usuk')

	    for i in $(find . -name '*behaviour*'); do \
	       git mv $i $(echo $i | sed s,behaviour,behavior,g); \
	    done

	    for i in $(find . -name '*Behaviour*'); do \
	       git mv $i $(echo $i | sed s,Behaviour,Behavior,g); \
	    done

	   ln -sf continuation@behavior dzn/templates/makreel/then-continuation@behavior
	   ln -sf continuation@behavior dzn/templates/makreel/else-continuation@behavior

	* dzn/parse/peg.scm (peg:parse): Rename "behaviour" to "behavior",
	except in keyword definition.
	* dzn/parse/complete.sc: Likewise.
	* dzn/templates/dzn/behaviour@behaviour: Rename to...
	* dzn/templates/dzn/behavior@behavior: ...this.
	* doc/parse/interface-without-behaviour.dzn: Rename to...
	* doc/parse/interface-without-behavior.dzn: ...this.
	* doc/parse/interface-without-behaviour.texi: Rename to...
	* doc/parse/interface-without-behavior.texi: ...this.
	* test/all/wf_interfaceMustDefineBehaviour/META: Rename to...
	* test/all/wf_interfaceMustDefineBehavior/META: ...this.
	* test/all/wf_interfaceMustDefineBehaviour/wf_interfaceMustDefineBehaviour.dzn:
	Rename to...
	* test/all/wf_interfaceMustDefineBehavior/wf_interfaceMustDefineBehaviour.dzn:
	...this.
	* test/language/component-behaviour.dzn: Rename to...
	* test/language/component-behavior.dzn: ...this.
	* test/language/interface-behaviour.dzn: Rename to...
	* test/language/interface-behavior.dzn: ...this.
	* dzn/templates/makreel/continuation@behaviour: Rename to...
	* dzn/templates/makreel/continuation@behavior: ...this.
	* dzn/templates/makreel/else-continuation@behaviour: Rename to...
	* dzn/templates/makreel/else-continuation@behavior: ...this.
	* dzn/templates/makreel/function-return@behaviour: Rename to...
	* dzn/templates/makreel/function-return@behavior: ...this.
	* dzn/templates/makreel/interface-reorder@behaviour: Rename to...
	* dzn/templates/makreel/interface-reorder@behavior: ...this.
	* dzn/templates/makreel/proc@behaviour: Rename to...
	* dzn/templates/makreel/proc@behavior: ...this.
	* dzn/templates/makreel/reorder-end@behaviour: Rename to...
	* dzn/templates/makreel/reorder-end@behavior: ...this.
	* dzn/templates/makreel/then-continuation@behaviour: Rename to...
	* dzn/templates/makreel/then-continuation@behavior: ...this.
	* test/all/parse_locations/baseline/parse_locations,
	* test/all/parse_peg_locations/baseline/parse_peg_locations: Update
	baseline.

2021-11-12  Jan (janneke) Nieuwenhuizen  <janneke@gnu.org>

	test: Prepare regression tests for behavior rename.
	* test/all/compliance_external/compliance_external.dzn,
	test/all/compliance_single_to_multiple/compliance_single_to_multiple.dzn,
	test/all/deadlock_blocking_optional/deadlock_blocking_optional.dzn,
	test/all/deadlock_component0/deadlock_component0.dzn,
	test/all/deadlock_component1/deadlock_component1.dzn,
	test/all/deadlock_interface0/deadlock_interface0.dzn,
	test/all/deadlock_interface1/deadlock_interface1.dzn,
	test/all/deadlock_port_blocked/deadlock_port_blocked.dzn,
	test/all/illegal_silent_external/illegal_silent_external.dzn: Remove
	usage of hanging braces.  Update baseline accordingly.

	test: Prepare language tests for behavior rename.
	* test/dzn/language.scm ("component8",
	"component9",
	"component9a",
	"component10",
	"component10a"
	"typo"): Use #:line #:column instead of #:offset.

	test: Add hello_usuk.
	* test/all/hello_usuk/hello_usuk.dzn: New test.
	* test/all/local.mk (HELLO_TESTS): Add it.

	peg: Also allow US English spelling of "behavior".
	* dzn/parse/peg.scm (peg:parse): Add "behavior" as optional spelling
	for the "behaviour" keyword.
	* dzn/parse/complete.scm (complete:root): Likewise.
	* NEWS (Changes in 2.14.0 since 2.13.3): Mention in and update to
	"behavior".

2021-11-11  Jan (janneke) Nieuwenhuizen  <janneke@gnu.org>

	doc: Remove stale information from `HACKING'.
	* HACKING (GNU/Linux binary pack (generic, relocatable)): Remove section.
	(MinGW cross build): Likewise.

2021-11-11  Jan (janneke) Nieuwenhuizen  <janneke@gnu.org>

	build: Include COPYING.GPL (needed by COPYING.LESSER).
	The Lesser GPL (COPYING.LESSER) is written as additional permissions to
	the GPL (COPYING.GPL).

	Fixes https://savannah.nongnu.org/task/?16067.
	Reported via savannah by Ineiev <ineiev@gnu.org>.

	* COPYING.GPL: New file.
	* Makefile.am (EXTRA_DIST): Add it.

2021-11-11  Jan (janneke) Nieuwenhuizen  <janneke@gnu.org>

	guix: dezyne: Update to 2.14.0.rc2.
	* guix/gnu/packages/dezyne.scm (dezyne)[source]: : Update to 2.14.0.rc2.

2021-11-03  Jan (janneke) Nieuwenhuizen  <janneke@gnu.org>

	doc: Update `NEWS'.
	* NEWS (Changes in 2.14.0 since 2.13.3): Update description of new graph
	--backend=state feature.

2021-11-08  Jan (janneke) Nieuwenhuizen  <janneke@gnu.org>

	Use @dezyne.org addresses throughout.
	Run:

	* build-aux/dezyne-org.sh: New file.

2021-11-04  Jan (janneke) Nieuwenhuizen  <janneke@gnu.org>

	debian: Update and bump to 2.14.0.rc1.
	Note that this uses the mCRL2 .deb from mcrl2.org.

	* debian/changelog (2.14.0.rc1-0): New upstream release.
	* debian/control (Build-Depends): Update name, website and dependencies.
	* debian/copyright (Upstream-Name): Update.
	(Files runtime/*): New section.

2021-11-10  Jan (janneke) Nieuwenhuizen  <janneke@gnu.org>

	test: Add missing copyright headers for run scripts.
	Run
	    build-aux/copyright-header.scm $(find test/all -name run)

	* test/all/exception_wrappers/run,
	test/all/importPath/run,
	test/all/parse_locations/run,
	test/all/parse_peg_locations/run,
	test/all/parse_preprocessed_foo/run,
	test/all/parse_preprocessed_imported_bar/run,
	test/all/parse_preprocessed_imported_baz/run,
	test/all/semantics/run,
	test/all/wf_importPathErr/run: Add header.

2021-11-10  Jan (janneke) Nieuwenhuizen  <janneke@gnu.org>

	build-aux/copyright-header.scm: Include run scripts.
	* build-aux/copyright-header.scm (script-file?): Include "/run$".

2021-11-08  Rutger van Beusekom  <rutger.van.beusekom@verum.com>

	c++: Avoid -Wuninitialized warning when initializing meta.
	* dzn/templates/c++/meta@component: Move initialisation of require meta
	field ...
	* dzn/templates/c++/model@component: ... to component constructor ...
	* dzn/templates/c++/model@system: ... and system constructor.

2021-11-10  Rutger van Beusekom  <rutger.van.beusekom@verum.com>

	test: Add compliance_failures_inevitable_optional.
	* test/all/compliance_failures_inevitable_optional: New test.
	* test/all/local.mk (REGRESSION_TESTS): Add it.

	simulate: Report inevitablity and optionality for refusals.
	* dzn/simulate.scm (modeling-lts->observables): Maintain inevitable and
	optional trigger for event, to be properly handled by ...
	(end-report): and finally used in ...
	* dzn/vm/report.scm (final-error-messages): In case of non-compliance
	inform the user which events were promised inevitability and those that
	are optionally.
	* test/all/compliance_failures_choice,
	test/all/compliance_failures_inevitable,
	test/all/compliance_failures_inevitable2,
	test/all/compliance_failures_multiple_provides,
	test/all/compliance_failures_optional,
	test/all/compliance_liveock: Update baseline.

2021-11-09  Jan (janneke) Nieuwenhuizen  <janneke@gnu.org>

	test: Add blocking_provides_state.
	Reported by Paul Hoogendijk <paul.hoogendijk@verum.com>.

	* test/all/blocking_provides_state: New test.
	* test/all/local.mk (REGRESSION_TESTS): Add it.

2021-11-09  Jan (janneke) Nieuwenhuizen  <janneke@gnu.org>

	simulate: Fix compliance check for blocking trace.
	This fixes the compliance check for blocking in combination with a
	stateful provides port.

	Reported by Paul Hoogendijk <paul.hoogendijk@verum.com>.

	* dzn/simulate.scm (check-provides-compliance): Refactor truncation of
	trace.  Do not reset event to zip port return in case of blocking,
	rather factor-out to...
	(check-provides-compliance+): ...this new procedure.
	(run-sut): For provides trigger, always use initial pc for compliance
	check.
	* test/all/blocking_system2/baseline/simulate/blocking_system2: Update
	baseline.

2021-11-11  Jan (janneke) Nieuwenhuizen  <janneke@gnu.org>

	simulate: Remove dead code.
	* dzn/simulate.scm (zip): Remove unused instance.

	vm: Robustify trigger->component-trigger.
	* dzn/vm/util.scm (trigger->component-trigger): Return #f instead of
	crashing when there is no port, or no other-port.

2021-11-02  Rutger van Beusekom  <rutger.van.beusekom@verum.com>

	simulate: Consider only suffix of blocking trace for compliance check.
	* dzn/simulate.scm (check-provides-compliance): Drop prefix from blocked
	trace before running incremental compliance check.

2021-11-09  Jan (janneke) Nieuwenhuizen  <janneke@gnu.org>

	simulate: Fix compliance check for released blocking trace.
	The compliance check for a released blocking trace would use an
	intermediate state for the provides port.  Use the initial PC
	for a released blocking trace instead.

	* dzn/simulate.scm (run-sut): Use initial PC for compliance check.

2021-11-02  Rutger van Beusekom  <rutger.van.beusekom@verum.com>

	simulate: Remove blocked ports from eligibles.
	* dzn/simulate.scm (labels-filter-blocked-ports): New procedure.
	(end-report): Use it.

2021-11-08  Paul Hoogendijk  <paul.hoogendijk@verum.com>

	parse: Remove quadratic behaviour of calculating newlines vector.
	* dzn/parse/ast.scm (newline): Use cons instead of append; reverse end
	result.

2021-11-08  Paul Hoogendijk  <paul.hoogendijk@verum.com>

	parse: Improve performance by avoiding stat storm.
	Canoicalize-path is very expensive on Windows.

	* dzn/parse.scm (file+import-content-alist)
	[canonicalize-path-memoized]: New inner define: Memoized version of
	canoicalize-path, and use it.

2021-11-03  Rutger van Beusekom  <rutger.van.beusekom@verum.com>

	test: Add state-diagram.
	* test/all/state-diagram: New test.
	* test/all/local.mk (HELLO_TESTS): Add it.

2021-11-03  Rutger van Beusekom  <rutger.van.beusekom@verum.com>

	graph: Support -H,--hide and -R,--restrict for state diagram.
	This implements hiding of the port state in a clean way and adds
	hiding of extended state and labels and actions.

	* dzn/commands/graph.scm (parse-opts): Add -H,--hide and -R,--restrict.
	(main): Pass ports?, extended?, actions? and labels? to...
	* dzn/explore.scm (state-diagram): ...here.  Add new keyword
	parameters #:ports?, #:extended?, #:actions? and #:labels.  Filter LTS
	using ...
	(lts-remove): This new procedure.
	* doc/dezyne.texi (Invoking dzn graph): Document it.

2021-11-04  Jan (janneke) Nieuwenhuizen  <janneke@gnu.org>

	graph: Avoid gaps in LTS' state numbering.
	* dzn/explore.scm (pc->rtc-lts): Remove pre-allocation of state numbers.

	graph: Move delete-duplicates from DOT/JSON to state-diagram.
	* dzn/vm/report.scm (trace-equal?): New procedure, split-out from...
	* dzn/vm/run.scm (run-to-completion-unmemoized): ...here, and,
	* dzn/simulate.scm (rtc-lts->traces): ...here.
	* dzn/explore.scm (rtc-lts->state-diagram): Use custom delete-duplicates
	on to and transition.
	(state-diagram->dot): Remove "strict".
	(state-diagram->json): Remove simplistic delete-duplicates.
	* dzn/vm/util.scm (rtc-program-counter-equal-state-diagram?): Remove.

2021-11-05  Jan (janneke) Nieuwenhuizen  <janneke@gnu.org>

	Revert "explore: Generate diagram for component behaviour."
	The original patch combined two features: ignoring requires port
	interaction altogether and hiding port state from the LTS.

	The ignoring of requires port interaction is not a useful feature and
	the hiding of port state will be implemented in a cleaner way.

	This reverts commit 82db4ea8c343b8b0525385faaa1080b0778e6ef2.

2021-10-25  Rutger van Beusekom  <rutger.van.beusekom@verum.com>

	test: Add livelock_async_choice.
	* test/all/livelock_async_choice: New test.
	* test/all/local.mk (REGRESSION_TESTS): Add it.

2021-10-25  Rutger van Beusekom  <rutger.van.beusekom@verum.com>

	simulate: Support async livelock with choice.
	When processing an async event, make sure to flush the whole async
	queue.

	* dzn/vm/run.scm (run-async): Remove.
	(flush-async-event): New method.
	(run-to-completion*): Use flush-async-event and flush-async instead of
	run-async-event and run-async.

2021-11-03  Jan (janneke) Nieuwenhuizen  <janneke@gnu.org>

	simulate: Use <non-deterministic> in trace instead of <determinism>.
	* dzn/simulate.scm (check-interface-determinism): Use "non-deterministic" as message.
	* dzn/vm/run.scm (mark-determinism-error): Likewise.
	* test/all: Update baseline.

	verify: Use <non-deterministic> in trace instead of <deterministic>.
	* dzn/verify/pipeline.scm (report-fail): Rename error for deterministic
	check to non-deterministic.
	* test/all: Update baseline.

2021-11-02  Rutger van Beusekom  <rutger.van.beusekom@verum.com>

	simulate: Use <non-compliance> in trace instead of <compliance>.
	* dzn/simulate.scm (check-provides-fork, check-requires-provides-fork,
	check-provides-compliance): Use "non-compliance" as error message.
	* dzn/vm/report.scm (initial-error-message): Use message of compliance
	error.
	* test/all: Update baseline.

	verify: Use <non-compliance> trace instead of <compliance>.
	* dzn/verify/pipeline.scm (report-fail): Rename error for compliance
	check to non-compliance.
	* test/all: Update baseline.

2021-11-03  Jan (janneke) Nieuwenhuizen  <janneke@gnu.org>

	simulate: Ensure modeling event is executed in run-interface.
	This fixes false positive unobservably non-deterministic errors.

	Reported by Joran Jessurun <joran.jessurun@gmail.com> via IRC.

	* dzn/vm/run.scm (run-interface): Filter traces: modeling event must be
	executed.
	* test/all/hello_optional_nondet: New test.
	* test/all/local.mk (REGRESSION_TESTS): Add it.

2021-11-02  Rutger van Beusekom  <rutger.van.beusekom@verum.com>

	simulate: Fix false positive unobservably non-deterministic.
	* dzn/vm/ast.scm (ast:equal?)[end-of-trail]: New specialization.
	* dzn/simulate.scm (check-interface-determinism): Remove dead copy.
	(check-interface-determinism): Add start of traces instead of end of
	traces to silent traces.
	* test/all/hello_modeling_nondet: New test.
	* test/all/local.mk (REGRESSION_TESTS): Add it.

2021-11-01  Jan (janneke) Nieuwenhuizen  <janneke@gnu.org>

	simulate: Skip compliance fork check for systems.
	* dzn/simulate.scm (check-provides-compliance): Only call
	check-provides-fork and check-requires-provides-fork if sut is a
	component.

2021-11-03  Jan (janneke) Nieuwenhuizen  <janneke@gnu.org>

	simulate: Avoid crash in compliance check.
	* dzn/simulate.scm (check-provides-compliance): Avoid trace rewrite on
	emtpy trace.

2021-10-22  Rutger van Beusekom  <rutger.van.beusekom@verum.com>

	simulate: Avoid crash in deadlock check.
	* dzn/simulate.scm (event-traces-alist): Also match empty trace.

2021-10-13  Jan (janneke) Nieuwenhuizen  <janneke@gnu.org>

	doc: Move well-formedness examples to files, generate messages.
	* doc/dezyne.texi (Well-formedness): Remove outdated and fabricated
	parse error messages and replace them by including output from dzn parse.
	Update and move examples to...
	* doc/parse/action-discard-value.dzn,
	doc/parse/action-in-complex-expression.dzn,
	doc/parse/action-in-member-definition.dzn,
	doc/parse/action-outside-on.dzn,
	doc/parse/assign-outside-on.dzn,
	doc/parse/binding-cycle-elaborate.dzn,
	doc/parse/binding-cycle.dzn,
	doc/parse/binding-mismatch-direction.dzn,
	doc/parse/binding-mismatch-external.dzn,
	doc/parse/binding-two-wildcards.dzn,
	doc/parse/binding-wildcard-requires.dzn,
	doc/parse/blocking-in-interface.dzn,
	doc/parse/blocking-multiple-provides.dzn,
	doc/parse/call-discard-value.dzn,
	doc/parse/call-in-complex-expression.dzn,
	doc/parse/component-action-used-as-trigger.dzn,
	doc/parse/component-provides-without-trigger.dzn,
	doc/parse/component-requires-without-trigger.dzn,
	doc/parse/component-trigger-used-as-action.dzn,
	doc/parse/component-without-provides.dzn,
	doc/parse/event-with-bool-parameter.dzn,
	doc/parse/function-missing-return.dzn,
	doc/parse/function-not-tail-recursive.dzn,
	doc/parse/imperative-illegal.dzn,
	doc/parse/injected-with-out-event.dzn,
	doc/parse/inout-parameter-on-out-event.dzn,
	doc/parse/instance-port-not-bound.dzn,
	doc/parse/interface-action-used-as-trigger.dzn,
	doc/parse/interface-function-illegal.dzn,
	doc/parse/interface-if-illegal.dzn,
	doc/parse/interface-trigger-used-as-action.dzn,
	doc/parse/interface-without-behaviour.dzn,
	doc/parse/interface-without-event.dzn,
	doc/parse/mixing-declarative.dzn,
	doc/parse/mixing-imperative.dzn,
	doc/parse/nested-blocking.dzn,
	doc/parse/nested-on.dzn,
	doc/parse/otherwise-without-guard.dzn,
	doc/parse/out-binding-reversed.dzn,
	doc/parse/out-parameter-on-out-event.dzn,
	doc/parse/port-bound-twice.dzn,
	doc/parse/port-not-bound.dzn,
	doc/parse/recursive-system.dzn,
	doc/parse/requires-port-reply.dzn,
	doc/parse/return-outside-function.dzn,
	doc/parse/second-otherwise.dzn,
	doc/parse/valued-out-event.dzn: ...these new files.
	* doc/parse/local.mk: Add them to new file.
	* Makefile.am: Include it.
	(update-doc): New target to generate parse output.

	doc: Many cleanups.
	* doc/dezyne.texi: Remove duplicate sections.
	Remove redundant whitespace.
	Mark keywords with @b{} in initial examples.
	Use @code{} when quoting code in text.
	Remove all 'my' and 'My' prefixes.
	Remove all iCantReadThis casing and most Capital case from examples.
	Move full Dezyne examples out to...
	* doc/examples/ imessage-handler.dzn,
	doc/examples/ca.dzn,
	doc/examples/compliance-multiple-provides-fork.dzn,
	doc/examples/decompose2-proxy.dzn,
	doc/examples/decompose2.dzn,
	doc/examples/function-call-status.dzn,
	doc/examples/icode.dzn,
	doc/examples/iconsole.dzn,
	doc/examples/imotion1.dzn,
	doc/examples/imotion2.dzn,
	doc/examples/imotion3.dzn,
	doc/examples/imotion4.dzn,
	doc/examples/imotion5.dzn,
	doc/examples/imperative-action.dzn,
	doc/examples/inner-space.dzn,
	doc/examples/iprocess-safety1.dzn,
	doc/examples/iprocess-safety2.dzn,
	doc/examples/iprotocol-stack.dzn,
	doc/examples/iprotocol-stack1.dzn,
	doc/examples/isensor.dzn,
	doc/examples/isimple-protocol.dzn,
	doc/examples/isiren.dzn,
	doc/examples/isiren1.dzn,
	doc/examples/isiren2.dzn,
	doc/examples/itimer.dzn,
	doc/examples/itimer2.dzn,
	doc/examples/message-handler.dzn: ...these new files.
	* doc/examples/local.mk (DEZYNE_EXAMPLES): Add them.

2021-10-20  Jan (janneke) Nieuwenhuizen  <janneke@gnu.org>

	test: Add parse_mixing_imperative.
	* dzn/parse/ast.scm (parse-tree->ast): Cater for guard without
	statement.
	* dzn/wfc.scm (wfc)[guard]: Likewise.
	* test/all/parse_mixing_imperative: New test.
	* test/all/local.mk (PARSER_TESTS): Add it.

2021-11-09  Jan (janneke) Nieuwenhuizen  <janneke@gnu.org>

	test: Add README to clarify license of baseline.
	* test/all/README: New file.
	* test/all/local.mk (EXTRA_DIST): Add it.

2021-11-09  Jan (janneke) Nieuwenhuizen  <janneke@gnu.org>

	build: Retain copyright and license when generating ChangeLog.
	Fixes https://savannah.nongnu.org/task/?16067.
	Reported via savannah by Ineiev <ineiev@gnu.org>.

	* Makefile.am (gen-ChangeLog $(distdir)/ChangeLog): Include copyright
	and license part of ChangeLog stub.

2021-11-09  Jan (janneke) Nieuwenhuizen  <janneke@gnu.org>

	build: Distribute COPYING.LESSER too.
	* Makefile.am (EXTRA_DIST): Add COPYING.LESSER.

2021-11-09  Jan (janneke) Nieuwenhuizen  <janneke@gnu.org>

	test: Add mising copyright headers.
	Run

	    build-aux/copyright-header.scm $(git ls-files test '*.cc' '*.cs' '*.sh')

	and also remove version tags.

	* test/all/async_calling_context/c++/main.cc,
	test/all/async_calling_context/cs/main.cs,
	test/all/async_shell/c++/main.cc,
	test/all/async_shell/cs/main.cs,
	test/all/blocking_shell/c++/main.cc,
	test/all/blocking_shell/cs/main.cs,
	test/all/hello_namespace_foreign/c++/library_foreign.cc,
	test/all/shell_injected/c++/main.cc,
	test/all/shell_injected/cs/main.cs,
	test/bin/semantics.sh: Add header.

2021-11-09  Jan (janneke) Nieuwenhuizen  <janneke@gnu.org>

	build-aux/copyright-header.scm: Include .cc and .cs as code file.
	* build-aux/copyright-header.scm (code-file?): Add cc,cs.
	(main): Remove debugging.

2021-10-25  Jan (janneke) Nieuwenhuizen  <janneke@gnu.org>

	guix: dezyne: Update to 2.14.0.rc1.
	* guix/gnu/packages/dezyne.scm (dezyne)[source]: : Update to 2.14.0.rc1.

2021-10-21  Jan (janneke) Nieuwenhuizen  <janneke@gnu.org>

	doc: Update `NEWS'.
	* NEWS (Changes in 2.14.0 since 2.13.3): Mention fixing of #29.

2021-10-25  Jan (janneke) Nieuwenhuizen  <janneke@gnu.org>

	wfc: Allow only one action or call in an (in)equality expression.
	This is a follow-up to commit
	    c4012253534be1b10db39ed9670adddc43b54114
	    Allow implicit temporaries for valued actions and calls.

	* dzn/wfc.scm (call-context): Only allow action or call at left side
	of (in)equality.
	* test/all/wf_actionInExpression/wf_actionInExpression.dzn: Test it.
	* test/all/wf_actionInExpression/baseline/verify/wf_actionInExpression.stderr:
	Update baseline.
	* test/all/wf_functionInExpression/wf_functionInExpression.dzn: Test it.
	* test/all/wf_functionInExpression/baseline/verify/wf_functionInExpression.stderr:
	Update baseline.

2021-10-25  Jan (janneke) Nieuwenhuizen  <janneke@gnu.org>

	wfc: Run check on individual arguments.
	* dzn/wfc.scm (wfc)[arguments]: Run wfc on individual arguments.
	* test/all/wf_actionInExpression/wf_actionInExpression.dzn: Test it.
	* test/all/wf_actionInExpression/baseline/verify/wf_actionInExpression.stderr:
	Update baseline.
	* test/all/wf_functionInExpression/wf_functionInExpression.dzn: Test it.
	* test/all/wf_functionInExpression/baseline/verify/wf_functionInExpression.stderr:
	Update baseline.
	* test/all/undefined/component/argument/baseline/verify/argument.stderr,
	test/all/undefined/component/argument_seen/baseline/verify/argument_seen.stderr:
	Update baseline.

2021-10-23  Jan (janneke) Nieuwenhuizen  <janneke@gnu.org>

	test: Remove explicit temporaries.
	* test/all/LegoBallSorter/ConstrainedAxis.dzn,
	test/all/LegoBallSorter/Conveyor.dzn,
	test/all/LegoBallSorter/EndConstrainedAxis.dzn,
	test/all/LegoBallSorter/HomeConstrainedAxis.dzn,
	test/all/LegoBallSorter/TouchSensor.dzn,
	test/all/end_of_trail/end_of_trail.dzn,
	test/all/foreign_reply/foreign_reply.dzn,
	test/all/hello_choice_reply/hello_choice_reply.dzn,
	test/all/hello_complete_reply/hello_complete_reply.dzn,
	test/all/hello_silent/hello_silent.dzn,
	test/all/hello_system_reply/hello_system_reply.dzn,
	test/all/illegal_async_silent/illegal_async_silent.dzn,
	test/all/livelock_iterator/livelock_iterator.dzn,
	test/all/silent_optional/silent_optional.dzn,
	test/all/silent_unused_out/silent_unused_out.dzn,
	test/all/system_nondet_reply/system_nondet_reply.dzn,
	test/all/system_reply_bool/system_reply_bool.dzn: Remove explicit temporaries.
	* test/all/illegal_async_silent/baseline/simulate/illegal_async_silent:
	Update baseline.

	doc: Remove explicit temporaries.
	* doc/dezyne-tutorial.texi: Remove explicit temporaries.
	* doc/dezyne.texi: Likewise.
	* doc/examples/ArmourIBVIRR.dzn: Likewise.
	* doc/examples/ArmourIBVIRRError.dzn: Liewise.

2021-10-23  Jan (janneke) Nieuwenhuizen  <janneke@gnu.org>

	normalize: Fix crash on implicit temporary in a function.
	This is a follow-up to commit
	    c4012253534be1b10db39ed9670adddc43b54114
	    Allow implicit temporaries for valued actions and calls.

	* dzn/normalize.scm (add-explicit-temporaries): Also add temporaries in
	functions.
	* test/all/hello_implicit_temporaries/hello_implicit_temporaries.dzn:
	Test it.

2021-10-23  Jan (janneke) Nieuwenhuizen  <janneke@gnu.org>

	normalize: Fix crash on implicit temporary of interface-scoped type.
	This is a follow-up to commit
	    c4012253534be1b10db39ed9670adddc43b54114
	    Allow implicit temporaries for valued actions and calls.

	* dzn/normalize.scm (add-explicit-temporaries): Use full scope of
	expression type for variable.
	* test/all/hello_implicit_enum/hello_implicit_enum.dzn:
	Test it.

2021-10-22  Jan (janneke) Nieuwenhuizen  <janneke@gnu.org>

	normalize: Fix crash on implicit temporary in a compound.
	This is a follow-up to commit
	    063481882538930b8cf20f061f1045799cd152b1
	    normalize: Only create compound for explicit temporary when necessary.

	Reported by Joran Jessurun <joran.jessurun@gmail.com> via IRC.

	* dzn/normalize.scm (add-explicit-temporaries): Oops, do not add extra
	list in <if> and <reply>.
	* test/all/hello_implicit_temporaries/hello_implicit_temporaries.dzn:
	Test it.

2021-10-22  Jan (janneke) Nieuwenhuizen  <janneke@gnu.org>

	test: Remove obsolete languages selection construct.
	* test/all/async_shell/META,
	test/all/blocking_shell/META,
	test/all/collateral_blocking_shell/META,
	test/all/collateral_blocking_shell2/META: Remove obsolete "languages":["c++"].

2021-10-21  Jan (janneke) Nieuwenhuizen  <janneke@gnu.org>

	explore: Show warning when bailing out because of livelock.
	* dzn/explore.scm (pc->rtc-lts): Print warning when bailing out.

2021-10-21  Paul Hoogendijk  <paul.hoogendijk@verum.com>

	test: Add compliance_livelock_escape.
	* test/all/compliance_livelock_escape: New test.
	* test/all/local.mk (REGRESSION_TESTS, XFAIL_TESTS): Add it.

2021-10-14  Jan (janneke) Nieuwenhuizen  <janneke@gnu.org>

	test: Add compliance_fork_requires.
	* test/all/compliance_fork_requires: New test.
	* test/all/local.mk (REGRESSION_TESTS): Add it.

2021-10-20  Jan (janneke) Nieuwenhuizen  <janneke@gnu.org>

	simulate: Support detection or requires Y-fork.
	* dzn/vm/goops.scm (<fork-error>)[action]: New field.
	* dzn/vm/report.scm (final-error-messages): Use it to report Y-fork.
	* dzn/simulate.scm (action-other-provides-port?): Factor-out from...
	(check-provides-fork): ...here.
	(check-requires-provides-fork): New method.
	(check-provides-compliance): Use it.

2021-10-15  Jan (janneke) Nieuwenhuizen  <janneke@gnu.org>

	test: Add parse_out_binding.
	* dzn/ast.scm (.variable)[formal-binding]: Fix resolving by starting to
	look parent scope.
	* dzn/wfc.scm (wfc)[out-binding]: Remove; <out-binding>s are only
	created during normalization.
	(wfc)[formal-binding]: New specialization.
	(wfc)[formals]: Use it.
	* test/all/parse_out_binding: New test.
	* test/all/local.mk (PARSER_TESTS): Add it.

	test: Add parse_out_binding_argument.
	* test/all/parse_out_binding_argument: New test.
	* test/all/local.mk (PARSER_TESTS): Add it.

	test: Add parse_on_without_statement.
	* dzn/parse/ast.scm (parse-tree->ast): Also create-node> if statement is
	missing.
	* dzn/wfc.scm (wfc)[on]: Report missing statement.
	* test/all/parse_on_without_statement: New test.
	* test/all/local.mk (PARSER_TESTS): Add it.

2021-10-14  Jan (janneke) Nieuwenhuizen  <janneke@gnu.org>

	wfc: Reverse reporting of second otherwise error and info.
	* dzn/wfc.scm (wfc): Report second otherwise as error, first as info.
	* test/all/wf_otherwiseWithOtherwise/baseline/verify/wf_otherwiseWithOtherwise.stderr: Update
	baseline.

	test: Add parse_behaviour_without_trigger.
	* dzn/wfc.scm (wfc)[component-model]: Report error if there is no
	trigger.
	* test/all/parse_component_without_trigger: New test.
	* test/all/local.mk (PARSER_TESTS): Add it.
	* test/all/wf_componentNeedsTrigger/baseline/verify/wf_componentNeedsTrigger.stderr:
	Update baseline.

	wfc: Use <info> for informational messages, use defined throughout.
	* dzn/goops.scm (<info>): New status type.
	* dzn/wfc.scm (wfc:report-error): Support it.
	(wfc-info): New procedure.
	(wfc): Use it for informational messages.  Also use "defined" for event
	and port instead of "declared".
	* test/all: Update baseline.

2021-10-20  Jan (janneke) Nieuwenhuizen  <janneke@gnu.org>

	test: parse_import_self: Add baseline and enable.
	* test/all/parse_import_self: Add baseine.
	* test/all/local.mk (PARSER_TESTS): Add it.

	test: parse_assign_void: Add baseline and enable.
	* test/all/parse_assign_void: Add baseine.
	* test/all/local.mk (PARSER_TESTS): Add it.

2021-10-14  Jan (janneke) Nieuwenhuizen  <janneke@gnu.org>

	peg: Make types, events, behaviour optional.
	* dzn/parse/peg.scm (peg:parse): Relax parser to allow empty
	types-and-events, make behaviour optional.
	* dzn/parse/ast.scm (parse-tree->ast): Cater for missing
	types-and-events and behaviour.  Rewrite using srfi-71.
	* dzn/wfc.scm (wfc)[interface]: Check for at least one event.
	* test/all/wf_interfaceMustDefineBehaviour,
	* test/all/wf_interfaceMustDefineEvent: Update baseline.
	* dzn/parse/complete.scm (complete:root): Cater for incomplete or empty
	types-and-events.

2021-10-05  Jan (janneke) Nieuwenhuizen  <janneke@gnu.org>

	test: Add livelock_unfold.
	* test/all/livelock_unfold: New test.
	* test/all/local.mk (REGRESSION_TESTS): Add it.

	simulate: Run <loop>...<livelock> part of trail trice.
	* dzn/vm/util.scm (string->trail): Copy the trail beyond <loop> and add
	it twice to the trail.
	* test/all/livelock_synchronous_illegal/trace: Add livelock trace with
	<loop>.
	* test/all/livelock_synchronous_illegal/baseline/simulate/livelock_synchronous_illegal,
	test/all/livelock_synchronous_illegal/baseline/simulate/livelock_synchronous_illegal.stderr:
	Update baseline.

2021-10-04  Rutger van Beusekom  <rutger.van.beusekom@verum.com>

	trace: Insert <loop> message for --format=json.
	* dzn/trace.scm (step->communication): Handle messages without location
	too.
	(trace:steps->json): Synthesize arrow for <loop> message.

2021-10-01  Jan (janneke) Nieuwenhuizen  <janneke@gnu.org>

	simulate: Mark start of livelock with <loop>.
	* dzn/vm/util.scm (pc:ast:eq?): Rename to...
	(pc:ast:equal?): ...this.
	(pc-equal?): Update accordingly and actually use it.  Remove call to
	rtc-program-counter-equal?, instead incorporate bits of it.  Remove
	.TRAIL equality and .STATEMENT eq-ness.
	* dzn/vm/run.scm (livelock?): Return the index of the end of the
	livelock loop.  Skip <end-of-on> statements.
	(extend-trace, flush-async-trace, flush-async): Update accordingly,
	passing the index to...
	(mark-livelock-error): ...here.  Add index parameter.  Use it to insert
	<loop> message.  Also truncate trace to only show first loop.
	* test/all/livelock_async/baseline/simulate/livelock_async,
	test/all/livelock_async/baseline/simulate/livelock_async.stderr,
	test/all/livelock_async_cancel/baseline/simulate/livelock_async_cancel,
	test/all/livelock_async_cancel/baseline/simulate/livelock_async_cancel.stderr,
	test/all/livelock_recurse/baseline/simulate/livelock_recurse,
	test/all/livelock_synchronous/baseline/simulate/livelock_synchronous,
	test/all/livelock_synchronous/baseline/simulate/livelock_synchronous.stderr:
	Update baseline.

2021-10-08  Jan (janneke) Nieuwenhuizen  <janneke@gnu.org>

	simulate: Prepend location before <error> markers too.
	* dzn/vm/report.scm (pc->event): Use ast from error instead of #f.
	* test/all/compliance_failures_illegal/baseline/simulate/compliance_failures_illegal.stderr:
	Update baseline.

2021-10-05  Jan (janneke) Nieuwenhuizen  <janneke@gnu.org>

	test: livelock_synchronous, livelock_synchronous2: Skip LTS.
	* test/all/livelock_synchronous/META: Skip lts.
	* test/all/livelock_synchronous/baseline/verify/livelock_synchronous,
	test/all/livelock_synchronous/baseline/verify/livelock_synchronous.stderr:
	Update baseline.
	* test/all/livelock_synchronous2/META: Skip lts.
	* test/all/livelock_synchronous2/baseline/verify/livelock_synchronous2,
	test/all/livelock_synchronous2/baseline/verify/livelock_synchronous2.stderr:
	Update baseline.
	test/all/local.mk (XFAIL_TESTS): Remove both tests.

2021-09-24  Paul Hoogendijk  <paul.hoogendijk@verum.com>

	lts: Add <loop> marker at beginning of livelock loop.
	* dzn/lts.scm (make-edge-loop): New procedure.
	(assert-livelock): Use it to insert <loop> marker.
	* test/dzn/lts.scm (test:assert-livelock): Add <loop> edges.
	* test/all/livelock_async/baseline/verify/livelock_async,
	test/all/livelock_async_cancel/baseline/verify/livelock_async_cancel,
	test/all/livelock_component/baseline/verify/livelock_component,
	test/all/livelock_interface0/baseline/verify/livelock_interface0,
	test/all/livelock_iterator/baseline/verify/livelock_iterator,
	test/all/livelock_recurse/baseline/verify/livelock_recurse,
	test/all/livelock_synchronous_illegal/baseline/verify/livelock_synchronous_illegal:
	Update baseline.

2021-10-05  Jan (janneke) Nieuwenhuizen  <janneke@gnu.org>

	simulate: Do not copy error-pc to create complement arrow.
	* test/all/range_local/baseline/simulate/range_local: Update baseline.

	vm: Do not check error-trace for livelock.
	* dzn/vm/run.scm (extend-trace): Do not call livelock? if status is set.

2021-10-20  Jan (janneke) Nieuwenhuizen  <janneke@gnu.org>

	guix: dezyne: Update to 2.14.0.rc0.
	* guix/gnu/packages/dezyne.scm (dezyne)[source]: : Update to 2.14.0.rc0.

	doc: Update `NEWS'.
	* NEWS (Changes in 2.14.0 since 2.13.3): New section.

	doc: Update `ROADMAP'.
	* ROADMAP (Release 2.14): Move done items...
	(DONE): ...here.
	(Release 2.17): Add some notes aboout documentation.

	test: Update to use dzn graph.
	* test/dzn/dzn.scm (run-lts): Update to use "graph".

	graph: New command.
	* dzn/explore.scm (state-diagram): Add #:behaviour? parameter.  Use it
	instead of --verbose kludge.
	* dzn/code.scm (code): New entry point, split-out from...
	* dzn/commands/code.scm (main): ...here.
	* dzn/commands/graph.scm: New file.
	* dzn/commands/local.mk (dist_%C%_scm_DATA): Add it.
	* dzn/commands/simulate.scm (main): Remove obsolete "behaviour" option.
	* dzn/commands/explore.scm (main): Likewise.
	* dzn/code/json.scm (system-diagram): New procedure.
	(ast->): Use it.
	* dzn/code/dot.scm (system-diagram): New procedure.
	(ast->): Use it.
	(dependency-diagram): New procedure.
	* doc/dezyne.texi (Invoking dzn graph): New section.
	(Invoking dzn explore): Note deprecation.
	(Invoking dzn lts): Refer to dzn graph.
	* Makefile.am (dist_man_MANS): Add dzn-graph.1.

2021-10-20  Rutger van Beusekom  <rutger.van.beusekom@verum.com>

	dot: System and dependency diagram.
	* dzn/code/dot.scm: New file.
	* dzn/code/local.mk (dist_%C%_scm_DATA): Add it.
	* dzn/templates/dot.scm: New file.
	* dzn/templates/local.mk (dist_nocompile_%C%_scm_DATA): Add it.
	* dzn/templates/dot: New template directory.
	* dzn/templates/local.mk (EXTRA_DIST): Add it.
	* dzn/vm/ast.scm (ast:async?)[runtime:port]: New specialization.
	* dzn/vm/runtime.scm (runtime:path->instance): Resurrect for AST with
	strings.
	(runtime:other-port-unmemoized):  Robustify against unbound ports.
	(runtime:rank!): Likewise.

	Co-written-by: Jan (janneke) Nieuwenhuizen <janneke@gnu.org>

2021-10-20  Jan (janneke) Nieuwenhuizen  <janneke@gnu.org>

	wfc: Refactor to split multiple use of call-context.
	* dzn/ast.scm (ast:member?): New method.
	* dzn/wfc.scm (call-context): Use it and move imperative statement check
	to...
	(imperative-context): ...this new procedure.
	(wfc)[compound],
	[variable],
	[assign],
	[if],
	[illegal],
	[reply]: Use it instead of call-context.
	[var]: Move member variable check inline.

2021-10-20  Paul Hoogendijk  <paul.hoogendijk@verum.com>

	test: Add 5 'undefined identifier' tests.
	* test/all/undefined/and,
	test/all/undefined/group,
	test/all/undefined/not,
	test/all/undefined/reply,
	test/all/undefined/return: New tests.
	* test/all/local.mk (PARSER_TESTS): Add them.

2021-10-20  Paul Hoogendijk  <paul.hoogendijk@verum.com>

	parse: Gracefully handle unknown identifier.
	This is a follow-up to commit:
	    e047e93e79c5afc0c35b8e16fdbffcdbf16b3227
	    peg: Avoid redundant skipping during fallback.

	Reported by Michael van de Ven <michael.van.de.ven@thermofisher.com> via
	IRC.

	* dzn/parse/tree.scm (tree:record): Add tree node 'unknown-identifier.
	* dzn/parse/peg.scm: (define-peg-string-patterns): Keep
	unknown-identifier explicitly in parse-tree.
	* dzn/parse/complete.scm (complete:root): Handle 'unknown-identifier.
	* dzn/goops.scm (<undefined>): Add new type...
	* dzn/parse/ast.scm (helper): ...and map tree-node 'unknown-identifier
	onto it.
	* dzn/wfc.scm: (wfc)[undefined]: New specialization.
	(wfc)[guard],[if],[var]: Rewrite check for string?
	(argument-type-check, assign, reply-in-on, call-context): Likewise.  Add
	check for <var> at global scope.
	(typed-expression): Add undefined check.
	* test/all/parse_missing_event,
	test/all/wf_variableInitExpression,
	test/all/undefined/guard,,
	test/all/undefined/if,
	test/all/wf_actionInExpression,
	test/all/wf_functionInExpression,
	test/all/wf_interfaceMustDefineBehaviour,
	test/all/wf_interfaceMustDefineEvent,
	test/all/wf_variableInitExpression: Update baseline.

2021-10-20  Jan (janneke) Nieuwenhuizen  <janneke@gnu.org>

	normalize: Only create compound for explicit temporary when necessary.
	* dzn/normalize.scm (add-explicit-temporaries)[add-temporary]: Return
	list of statements when parent is a compound.  Splice it into compound.

	test: Add hello_implicit_enum.
	* test/all/hello_implicit_enum/hello_implicit_enum.dzn: New file.
	* test/all/local.mk (REGRESSION_TESTS): Add it.

	test: Add hello_implicit_temporaries.
	* test/all/hello_implicit_temporaries/hello_implicit_temporaries.dzn:
	New file.
	* test/all/local.mk (REGRESSION_TESTS): Add test.

2021-10-20  Jan (janneke) Nieuwenhuizen  <janneke@gnu.org>
	    Rutger van Beusekom  <rutger.van.beusekom@verum.com>

	Allow implicit temporaries for valued actions and calls.
	This patch allows implicit temporaries for valued actions and calls as
	if-expression and reply-expression.

	* dzn/wfc.scm (call-context): Allow valued action and call.
	* dzn/normalize.scm (add-explicit-temporaries): New procedure.
	* dzn/vm/normalize.scm (vm:normalize): Use it.
	* dzn/code/makreel.scm (makreel:om): Use it.
	* doc/dezyne.texi (Interface and Component Behaviour): Mention actions
	and functions in simple expressions.  Remove valued action in interface.
	* test/all/wf_actionInExpression/wf_actionInExpression.dzn: Use
	action in compound expression.
	* test/all/wf_actionInExpression/baseline/verify/wf_actionInExpression.stderr:
	Update baseline.
	* test/all/wf_functionInExpression/wf_functionInExpression.dzn: Use call
	in compound expression.
	* test/all/wf_functionInExpression/baseline/verify/wf_functionInExpression.stderr:
	Update baseline.
	* test/all/wf_actionValueDiscarded/baseline/verify/wf_actionValueDiscarded.stderr,
	test/all/wf_functionValueDiscarded/baseline/verify/wf_functionValueDiscarded.stderr,
	test/all/wf_undefined_function/baseline/verify/wf_undefined_function.stderr:
	Update baseline.

2021-10-20  Jan (janneke) Nieuwenhuizen  <janneke@gnu.org>

	test: Remove explicit interface illegals part 2: remove.
	Remove the uncommented illegals and add copyright lines.  This changes
	no dezyne code (or scheme code) but has a large impact on the locations
	in the baseline.

	* test/all: Remove commented interface illegals; update baseline.

2021-10-20  Jan (janneke) Nieuwenhuizen  <janneke@gnu.org>

	test: Remove explicit interface illegals part 1: comment-out.
	Commenting-out interface illegals only has a small baseline impact: It
	changes the error location in the baseline of five tests.

	Run
	    sed -i \
	      -re 's,^( *on (a|cb|e|hello|bye|cruel|world): illegal;),//\1,' \
	     $(find test -name '*.dzn')

	* test/all: Comment-out interface illegals.
	* test/all/compliance_requires_illegal,
	test/all/illegal_garbage,
	test/all/illegal_requires,
	test/all/illegal_requires2,
	test/all/illegal_system_requires: Update baseline.

2021-10-20  Jan (janneke) Nieuwenhuizen  <janneke@gnu.org>

	test: LegoBallSorter: Remove explicit interface illegals.
	* test/all/LegoBallSorter/Conveyor.dzn (IConvey): Remove illegals.
	* test/all/LegoBallSorter/IConstrainedMove.dzn (IConstrainedMove): Likewise.
	* test/all/LegoBallSorter/IFeed.dzn (IFeed): Likewise.
	* test/all/LegoBallSorter/Inspector.dzn (IInspect): Likewise.
	* test/all/LegoBallSorter/LightSensor.dzn (ILightSense): Likewise.
	* test/all/LegoBallSorter/MaterialHandler.dzn (IHandle, Handle,
	ITransfer, Transfer, IRetain): Likewise.
	* test/all/LegoBallSorter/Motor.dzn (IMove): Likewise.
	* test/all/LegoBallSorter/Stage.dzn (IMove2D): Likewise.
	* test/all/LegoBallSorter/TouchSensor.dzn (ITouchSense): Likewise.
	* test/all/LegoBallSorter/foreign_timer.dzn (itimer): Likewise.

	test: Camera: Remove explicit interface illegals.
	* test/all/Camera/Acquisition.dzn (ISensor, IAcquisition): Remove
	illegals.
	* test/all/Camera/Camera.dzn (IControl): Likewise.
	* test/all/Camera/Optics.dzn (ILens, IFocus, FocusControl, IOptics):
	Likewise.

	test: AlarmSystem: Remove explicit interface illegals.
	* test/all/AlarmSystem/AlarmSystem.dzn (ISiren, ISensor, IConsole,
	Alarm): Remove illegals.

	test: Alarm: Remove explicit interface illegals.
	* test/all/Alarm/Alarm.dzn (IConsole, ISensor, ISiren): Remove illegals.
	* test/all/Alarm/META: New file.
	* test/all/Alarm/baseline/simulate/Alarm,
	test/all/Alarm/baseline/simulate/Alarm.stderr,
	test/all/Alarm/baseline/verify/Alarm.stderr: Update baseline.

2021-10-20  Jan (janneke) Nieuwenhuizen  <janneke@gnu.org>

	test: Add illegal_interface_incomplete.
	* test/all/illegal_interface_incomplete/baseline/simulate/illegal_interface_incomplete,
	test/all/illegal_interface_incomplete/baseline/simulate/illegal_interface_incomplete.stderr,
	test/all/illegal_interface_incomplete/illegal_interface_incomplete.dzn,
	test/all/illegal_interface_incomplete/trace: New files.
	* test/all/local.mk (HELLO_TESTS): Add test.

	Co-written-by: Rutger van Beusekom <rutger.van.beusekom@verum.com>.

2021-10-20  Jan (janneke) Nieuwenhuizen  <janneke@gnu.org>

	simulate: Support implicit interface illegals.
	* dzn/vm/normalize.scm (transform-end-of-on): Remove support for
	<complete>.
	* dzn/simulate.scm (run-trail): Filter implicit-illegal traces.
	* dzn/vm/step.scm (step)[initial-compound]: Add <implicit-illegal-error>
	traces in interface too, for non-modeling events.
	* dzn/vm/run.scm (filter-implicit-illegal-only): New procedure.
	* dzn/explore.scm (pc->rtc-lts): Use it.

2021-10-20  Jan (janneke) Nieuwenhuizen  <janneke@gnu.org>

	verify: Support implicit interface illegals.
	* dzn/goops.scm (<incomplete>): Remove.
	(<illegal>)[incomplete]: Remove field.
	* dzn/wfc.scm (wfc)[inclomplete]: Remove.
	* dzn/templates/dzn/statement@incomplete,
	dzn/templates/makreel/proc@incomplete: Remove files.
	* dzn/normalize.scm (triples:->on-guard*): Remove marking <illegal> as
	incomplete.
	(add-illegals): Add <declarative-illegal> for interface.
	* dzn/lts.scm (parse-label): Remove support for incomplete.
	* dzn/templates/makreel/external-proc@port,
	dzn/templates/makreel/model@component,
	dzn/templates/makreel/proc@interface,
	dzn/templates/makreel/queue-proc@component,
	dzn/templates/makreel/source@root: Remove incomplete.
	* dzn/verify/pipeline.scm (report-fail): Remove support for <complete>.
	* doc/dezyne.texi (Interfaces as abstraction of a component's
	behaviour): Remove illegal from examples.  Remove mention of
	completeness and mention implicit illegals.
	(Verifying Models): Remove completeness.
	* doc/dezyne-tutorial.texi (States and Illegal Events Asserts): Also
	mention implicit illegals for interfaces.
	* test/all/incomplete: Rename to...
	* test/all/hello_incomplete: ...this.  Add some state, remove baseline.
	* test/all/hello_incomplete/META: Remove.
	* test/all/local.mk (REGRESSION_TESTS): Move incomplete to...
	(HELLO_TESTS): ...hello_incomplete here.

	Co-written-by: Rutger van Beusekom <rutger.van.beusekom@verum.com>.

2021-10-20  Rutger van Beusekom  <rutger.van.beusekom@verum.com>

	trace: Support system error trace for --format=json.
	* dzn/trace.scm (trace:steps->json): Default to first component instance
	otherwise '(sut).

2021-10-20  Jan (janneke) Nieuwenhuizen  <janneke@gnu.org>

	test: Remove empty baselines.
	* test/all/compliance_system_provides_bool/baseline/verify/compliance_system_provides_bool,
	test/all/failures_nondet_optional/baseline/verify/failures_nondet_optional,
	test/all/hello_two/baseline/verify/hello_two,
	test/all/illegal_system_requires/baseline/verify/illegal_system_requires,
	test/all/livelock_synchronous_illegal/baseline/simulate/livelock_synchronous_illegal.stderr,
	test/all/parse_assign_void/baseline/verify/parse_assign_void: Remove.

2021-10-19  Jan (janneke) Nieuwenhuizen  <janneke@gnu.org>

	test: hellocheckcompbindings, hellochecksystembindings: Rename trace.
	* test/all/hellocheckcompbindings/hellocheckcompbindings.trace: Rename
	to...
	* test/all/hellocheckcompbindings/trace: ...this.
	* test/all/hellochecksystembindings/hellochecksystembindings.trace:
	Rename to...
	* test/all/hellochecksystembindings/trace: ...this.

	doc: Add find recipe to `HACKING'.
	* HACKING (Regression test): Add example with multiple names.

	doc: Distribute tutorial examples.
	* Makefile.am (dist_info_images_DATA): Move image file list...
	* doc/images/local.mk: ...here.
	* Makefile.am (EXTRA_DIST): Move tutorial semantics file list...
	* doc/semantics/local.mk: ...here.

	simulate: Do not insert status mid-trace in zip.
	* dzn/simulate.scm (zip): Clear status on port-trace-prefix.

2021-10-19  Jan (janneke) Nieuwenhuizen  <janneke@gnu.org>

	test: Add undefined/component/enum_as_action.
	This avoids a triggering in internal error, running ast:in? on an
	<enum>.

	* dzn/wfc.scm (action)[action]: Do not assume event is an <event> even
	if it resolved.
	(wfc)[formals]: Likewise.
	* test/all/undefined/component/enum_as_action: New test.
	* test/all/local.mk (PARSER_TESTS): Add it.

	Reported by Michael van de Ven <michael.van.de.ven@thermofisher.com> via
	IRC.

2021-10-19  Jan (janneke) Nieuwenhuizen  <janneke@gnu.org>

	test: deadlock_blocking_guard: Remove obsolete interface baseline.
	* test/all/deadlock_blocking_guard/baseline/verify/ISimpleBlockingGuard:
	Remove obsolete baseline.

	explore: Generate diagram for component behaviour.
	* dzn/ast.scm (ast:return-values)[action]: New specialization.
	* dzn/vm/util.scm (%explore-behaviour?): New parateter.
	(state->string)[state]: Use it to omit port state for component
	behaviour diagram.
	* dzn/explore.scm (state->scm)[state]: Likewise.
	(run-to-completion**): Use it to skip run-requires for
	(state-diagram): Use it to component behaviour state diagram unless
	--verbose is used.
	component behaviour diagram.
	* dzn/vm/step.scm (step-action-down): Use it to skip running the
	requires ort for component behaviour diagram.

2021-10-19  Jan (janneke) Nieuwenhuizen  <janneke@gnu.org>

	test: Remove duplicate undefined/component tests.
	These tests needlessly repeat the generic tests that use an
	interface.

	* test/all/undefined/component/guard,
	test/all/undefined/component/if,
	test/all/undefined/component/var: Remove tests.
	* test/all/local.mk (PARSER_TESTS): Remove them.

2021-10-19  Jan (janneke) Nieuwenhuizen  <janneke@gnu.org>

	test: undefined/var: Rename from undefined/interface/var.
	* test/all/undefined/interface/var: Move to...
	* test/all/undefined/var: ...here.
	* test/all/local.mk (PARSER_TESTS): Update accordingly.

	test: undefined/if: Rename from undefined/interface/if.
	* test/all/undefined/interface/if: Move to...
	* test/all/undefined/if: ...here.
	* test/all/local.mk (PARSER_TESTS): Update accordingly.

	test: undefined/guard: Rename from undefined/interface/guard.
	* test/all/undefined/interface/guard: Move to...
	* test/all/undefined/guard: ...here.
	* test/all/local.mk (PARSER_TESTS): Update accordingly.
	* .gitignore: Ignore test output in undefined subdirectory.

	test: rename: Support renaming into different directory.
	* test/bin/rename: Avoid attempting rename of .dzn file name and
	baselines the file name itself is unchanged, i.e., only the directory
	level changes.  Also rename directory in local.mk.

	wfc: Fix check for declarative illegal in formals check.
	* dzn/wfc.scm (wfc)[formals]: Allow only toplevel illegal, do not use
	tree-collect.

	test: parse_interface_parens: Remove cruft.
	* test/all/parse_interface_parens/.err,
	test/all/parse_interface_parens/.out: Remove files.

	doc: Update `README'.
	* README (Requirements): Add Guile-JSON 4 as requirement.

	verify: Use code makreel --init in debug pipeline.
	* dzn/verify/pipeline.scm (pretty-verify-pipeline): Use code --init,
	remove cat and echo.

	makreel: Add --init option.
	* dzn/commands/code.scm (parse-opts): Add --init option.
	* dzn/code/makreel.scm (makreel:init-process): New procedure.
	(root->): Use it when --init is set.
	* dzn/verify/pipeline.scm (in-out:dzn->makreel): Use it.
	* doc/dezyne.texi (Invoking dzn code): Document it.

	doc: Update mCRL2 requirement.
	* doc/dezyne.texi (Requirements): Bump mCRL2 to 202106.0.  Remove m4.
	* README (Requirements): Likewise.  Update Guile requirement.  Mention
	optional Guile-JSON dependency.

	guix: Remove mcrl2-changeword.
	* guix/gnu/packages/dezyne.scm (m4-changeword): Remove.

	guix: dezyne: Remove m4-changeword dependency.
	* guix/gnu/packages/dezyne.scm (dezyne)[inputs]: Remove m4-changeword.

2021-07-07  Jan (janneke) Nieuwenhuizen  <janneke@gnu.org>

	verify: Remove m4-cw from pipeline.
	Starting from the mcrl2-202106.0 release, the m4 hack for performance is
	no longer necessary.

	* configure.ac: Do not check for m4-cw.
	* dzn/templates/makreel/source@root: Remove m4 preamble.
	* dzn/verify/pipeline.scm (in-out:makreel->mcrl2): Remove.
	(in-out.pipeline): Remove it from pipeline.
	(in-out:dzn->makreel): Append init to makreel.
	(pretty-verify-pipeline): Update debug printing.
	* dzn/templates/makreel/interface-action-proc@port: Add "proc".
	* dzn/templates/makreel/external-proc@port,
	dzn/templates/makreel/interface-action-proc@port,
	dzn/templates/makreel/model@component,
	dzn/templates/makreel/proc@interface,
	dzn/templates/makreel/queue-proc@component,
	dzn/templates/makreel/source@root: Remove m4 defines.

2021-10-07  Jan (janneke) Nieuwenhuizen  <janneke@gnu.org>

	verify: Strictly consider interfaces used by component.
	* dzn/code/makreel.scm (ast:interface*): Move to...
	* dzn/ast.scm (ast:interface*): ...here.  Strictly return interfaces for
	the component's ports.

2021-09-21  Jan (janneke) Nieuwenhuizen  <janneke@gnu.org>

	guix: dezyne: Use guile-3.0.5.
	The pack-binaries use guile-3.0.5; using the same version makes
	development easier.

	* guix/gnu/packages/dezyne.scm (guile-3.0-latest): Redefine to
	guile-3.0.5.

2021-07-08  Jan (janneke) Nieuwenhuizen  <janneke@gnu.org>

	guix: Bump to 9bd65f05833fb2d1a28c25d431a82dd752046c09.
	* guix.scm: Bump to 9bd65f05833fb2d1a28c25d431a82dd752046c09.

2021-10-07  Jan (janneke) Nieuwenhuizen  <janneke@gnu.org>

	build: Previous release is 2.13.3.
	* Makefile.am (--previous-version): Update to 2.12.3.

	doc: Update windows URL to x86_64, mention the need for 7zip.
	* doc/dezyne.texi (Binary Installation): Update windows URL to x86_64,
	mention the need for using 7zip.

2021-10-05  Jan (janneke) Nieuwenhuizen  <janneke@gnu.org>

	guix: dezyne: Update to 2.13.3.
	* guix/gnu/packages/dezyne.scm (dezyne)[source]: : Update to 2.13.3.

	doc: Update `NEWS'.
	* NEWS (Changes in 2.13.3 since 2.13.2): Mention --queue-size bug in
	explore.

2021-10-05  Rutger van Beusekom  <rutger.van.beusekom@verum.com>

	doc: Update `ROADMAP' (renumber).
	* ROADMAP (Release 2.13.3): Remove.  Merge todo items into...
	(Release 2.14): ...here.  Renamed from 2.13.4.
	(Renamed 2.13.5): Rename to ...
	(Release 2.15): ..this
	(Renamed 2.13.6): Rename to ...
	(Release 2.16): ..this
	(Release 2.14): Rename to...
	(Release 2.17): ...this.

	vm: Avoid crash on on <queue-full>.
	* dzn/vm/run.scm (run-flush): Do not flush a pc in error.

	explore: Fix for setting of -q,--queue-size.
	* dzn/commands/explore.scm (main) Convert queue-size option from string
	to number.

2021-10-04  Jan (janneke) Nieuwenhuizen  <janneke@gnu.org>

	guix: dezyne: Update to 2.13.3.rc2.
	* guix/gnu/packages/dezyne.scm (dezyne)[source]: : Update to 2.13.3.rc2.

2021-10-04  Rutger van Beusekom  <rutger.van.beusekom@verum.com>

	doc: Update `NEWS'.
	* NEWS (Changes in 2.13.3 since 2.13.2): Add new items.

2021-10-04  Jan (janneke) Nieuwenhuizen  <janneke@gnu.org>

	doc: Update `ROADMAP'.
	* ROADMAP (Release 2.13.3): Move done items...
	(DONE): ...here.

	test: Add determinism_deadlock.
	* test/all/determinism_deadlock/META,
	test/all/determinism_deadlock/baseline/simulate/determinism_deadlock,
	test/all/determinism_deadlock/baseline/simulate/determinism_deadlock.stderr,
	test/all/determinism_deadlock/baseline/verify/determinism_deadlock,
	test/all/determinism_deadlock/baseline/verify/determinism_deadlock.stderr,
	test/all/determinism_deadlock/baseline/verify/determinism_inevitable.stderr,
	test/all/determinism_deadlock/determinism_deadlock.dzn,
	test/all/determinism_deadlock/trace: New files.
	* test/all/local.mk (REGRESSION_TESTS): Add test.

2021-10-04  Rutger van Beusekom  <rutger.van.beusekom@verum.com>

	explore: Early bail out on livelock.
	* dzn/explore.scm (pc->rtc-lts): Bailout on first livelock.
	* dzn/vm/run.scm (run-to-completion-unmemoized): idem
	* test/all/livelock_async/META,
	test/all/livelock_async_cancel/META,
	test/all/livelock_recurse/META,
	test/all/livelock_synchronous_illegal/META: Skip LTS for livelock models.

2021-10-02  Jan (janneke) Nieuwenhuizen  <janneke@gnu.org>

	simulate: Find deadlock in a non-deterministic interface.
	* dzn/simulate.scm (check-deadlock): Cater for an <end-of-trail> PC.
	(end-report)[interface-deadlock-report]: New procedure.  Use it for
	finding deadlock in interfaces.

2021-10-01  Rutger van Beusekom  <rutger.van.beusekom@verum.com>

	parse: Re-allow newlines between dollars.
	* dzn/parse/peg.scm (peg:parse): Remove restriction on newline in dollar
	rule.
	* test/all/dollars/c++/foobar.h: Rename to...
	* test/all/dollars/c++/foo.h: ...this.
	* test/all/dollars/c++/bar.h: New file.
	* test/all/dollars/c++/includes.dzn: Use them by adding newlines between
	dollars.
	* test/all/dollars/cs/includes.dzn: Add newlines between dollars.
	* test/all/dollars/c/foobar.h: Rename to...
	* test/all/dollars/c/foo.h: ...this.
	* test/all/dollars/c/bar.h: New file.
	* test/all/newlines_between_dollars: Remove test.
	* test/all/local.mk (PARSER_TESTS): Remove it.

2021-10-01  Jan (janneke) Nieuwenhuizen  <janneke@gnu.org>

	simulate: Resurrect --verbose.
	* dzn/vm/report.scm (pc-step?)[program-counter]: Call pc-event with
	program counter instead of status.
	(pc->step)[program-counter]: Prepend program-counter to result.
	* dzn/vm/report.scm (pc->arrow): Cater for (async) actions without other
	port.

2021-09-30  Jan (janneke) Nieuwenhuizen  <janneke@gnu.org>

	test: Add space.space.
	* test/all/space.space/ihello.dzn,
	test/all/space.space/space.space.dzn: New files.
	* test/all/local.mk (REGRESSION_TESTS): Add test.

	ast: Fix instance type lookup in shadowing namespace.
	* dzn/ast.scm (.type)[instance]: Look down before looking up to avoid
	finding a namespace of the same name.

	test: Add imported.space.
	* test/all/imported.space/ihello.dzn,
	test/all/imported.space/imported.space.dzn,
	test/all/imported.space/iworld.dzn: New files.
	* test/all/local.mk (REGRESSION_TESTS): Add test.

2021-09-30  Jan (janneke) Nieuwenhuizen  <janneke@gnu.org>

	ast: Have ast:get-model not default to imported model.
	This fixes #46.

	* dzn/ast.scm (ast:get-model): When model-name is not specified, select
	default from non-imported models.

2021-09-29  Rutger van Beusekom  <rutger.van.beusekom@verum.com>

	test: parse_interface_parens Add baseline and remove from XFAIL.
	* test/all/parse_interface_parens/baseline/verify/parse_interface_parens.stderr:
	New file
	* test/all/local.mk (XFAIL_TESTS): Remove entry.

2021-09-29  Jan (janneke) Nieuwenhuizen  <janneke@gnu.org>

	trace: Keep message if location differs for --format=json.
	* dzn/trace.scm (message-equal?): New procedure.
	(trace:steps->json): Use it.

	test: Reduce set of "hello" tests.
	* test/all/local.mk (HELLO_TESTS): Move deadlock_component1,
	daedlock_interface1, determinism_silent ...
	(REGRESSION_TESTS): ...here.

	test: Add determinism_modeling.
	* test/all/determinism_modeling/META,
	test/all/determinism_modeling/baseline/simulate/determinism_modeling,
	test/all/determinism_modeling/baseline/simulate/determinism_modeling.stderr,
	test/all/determinism_modeling/baseline/verify/determinism_modeling,
	test/all/determinism_modeling/baseline/verify/determinism_modeling.stderr,
	test/all/determinism_modeling/determinism_modeling.dzn,
	test/all/determinism_modeling/trace: New files.
	* test/all/local.mk (REGRESSION_TESTS): Add test.

2021-09-29  Jan (janneke) Nieuwenhuizen  <janneke@gnu.org>

	simulate: Find non-silent unobservable non-deterministic errors.
	Also check non-silent traces for non-determinism.

	This is a follow-up to commit
	    c12bfe7530bf3cb8af87ef5efafdb2b23c0ccfd9a
	    simulate: Add non-deterministic check for interfaces.

	* dzn/simulate.scm (check-silence): Move into...
	(check-interface-determinism): New procedure.
	(end-report): Update to use it.
	(run-trail): Use it.
	* test/all/determinism_interface/baseline/simulate/determinism_interface,
	test/all/determinism_interface/baseline/simulate/determinism_interface.stderr,
	test/all/determinism_silent/baseline/simulate/determinism_silent,
	test/all/determinism_silent/baseline/simulate/determinism_silent.stderr:
	Update baseline.

2021-09-30  Jan (janneke) Nieuwenhuizen  <janneke@gnu.org>

	vm: Refactor run-silent to return traces.
	* dzn/vm/run.scm (run-silent): Return traces instead of PCs.
	(run-silent)[event]: Update caller.
	* dzn/vm/step.scm (step-action-down): Likewise.

	simulate: Move empty-trail check to run-trail.
	* dzn/simulate.scm (simulate): Move empty-trail check...
	 (run-trail): ...here.

	simulate: Use error location of each individual determinism trace.
	* dzn/vm/report.scm (initial-error-message): For <determinism-error> use
	location of each individual trace.
	* test/all/determinism0/baseline/simulate/determinism0,
	test/all/determinism0/baseline/simulate/determinism0.stderr,
	test/all/determinism1/baseline/simulate/determinism1,
	test/all/determinism1/baseline/simulate/determinism1.stderr,
	test/all/determinism_async/baseline/simulate/determinism_async,
	test/all/determinism_async/baseline/simulate/determinism_async.stderr:
	Update baseline.

2021-09-29  Jan (janneke) Nieuwenhuizen  <janneke@gnu.org>

	misc: Cleanup merge-alist2.
	* dzn/misc.scm (merge-alist2): Use generic naming instead of event,
	traces.

	vm: Use actual location of trigger in on.
	* dzn/vm/report.scm (set-trigger-locations): Find the trigger in the on
	and use that location.

2021-09-28  Jan (janneke) Nieuwenhuizen  <janneke@gnu.org>

	test: Add livelock_synchronous_illegal.
	* test/all/livelock_synchronous_illegal/META,
	test/all/livelock_synchronous_illegal/baseline/simulate/livelock_synchronous_illegal,
	test/all/livelock_synchronous_illegal/baseline/simulate/livelock_synchronous_illegal.stderr,
	test/all/livelock_synchronous_illegal/baseline/verify/livelock_synchronous_illegal,
	test/all/livelock_synchronous_illegal/baseline/verify/livelock_synchronous_illegal.stderr,
	test/all/livelock_synchronous_illegal/livelock_synchronous_illegal.dzn,
	test/all/livelock_synchronous_illegal/trace: New files.
	* test/all/local.mk (REGRESSION_TESTS): Add test.

	simulate: Perform shallow run for deadlock check and eligibles.
	* dzn/vm/step.scm (%liveness?): New parameter.
	(mark-liveness?): Use it in new procedure to mark a PC <end-of-trail>
	when an imperative statement is reached.
	(step)[guard,on,compound]: Use it to stop when reaching an imperitive
	statement.
	* dzn/simulate.scm (event-traces-alist): Set %liveness? to perform a
	shallow run.
	(eligible-labels, check-deadlock): Cater for traces ending with
	<end-of-trail>.
	* test/all/compliance_fork_provides/trace: Use non-empty trace to
	trigger the fork compliance error.

2021-09-28  Jan (janneke) Nieuwenhuizen  <janneke@gnu.org>

	vm: Reset reply before starting step.
	This is a follow-up to commit
	    30837f29168f22d93c6eded3fd1741f1d64d2a61
	    vm: Maintain reply per instance.

	* dzn/vm/step.scm (begin-step)[runtime:instance]: Reset reply for
	current instance when running a provides port trigger.
	[runtime:port]: Reset reply for current instance.

2021-09-28  Jan (janneke) Nieuwenhuizen  <janneke@gnu.org>

	simulate: Do not shadow livelock in eligibles and deadlock check.
	* dzn/simulate.scm (eligible-labels): Ignore livelock error for an event
	being eligible.
	(check-deadlock): Ignore livelock error when marking an event to
	deadlock.

	complete: Support imports.
	* dzn/parse/complete.scm (annotate-dir, dzn-file?, list-dir,
	strip-prefix, complete:imports): New procedures.
	(complete): Add #:imports parameter and pass it...
	(complete:root): ...here.  Add #:imports parameter.  Support IMPORT.
	* test/language/import/import.dzn,
	* test/language/import/lib/lib.dzn: New files.
	* test/dzn/language.scm (resolve-file): Do no prepend "test/language/"
	if file exists.
	(test-complete): Add #:imports keyword.
	("imports",
	"imports path",
	"imports lib/",
	"imports lib",
	"imports lib ../"): Use it in new tests.
	* test/language/local.mk (EXTRA_DIST): Add them.

2021-09-24  Paul Hoogendijk  <paul.hoogendijk@verum.com>

	verify: Restrict list of taus for ltscompare to bare minimum.
	* dzn/verify/pipeline.scm (event-returns): Only add "return" for
	an in-event.  Together with...
	(enum-literal->event): ...this, move into...
	(event-alphabet): ...here.  Only add ".qout" version for an out-event.
	Add docstring.
	(compliance-taus): Only hide events which are present in the behaviour
	of the model, so look for all triggers and actions present.  Add docstring.

2021-09-25  Jan (janneke) Nieuwenhuizen  <janneke@gnu.org>

	test: blocking_system2: Add simulatior baseline.
	* test/all/blocking_system2/META: Set trace-format "trace".
	* test/all/blocking_system2/baseline/simulate/blocking_system2: New file.

2021-09-24  Rutger van Beusekom  <rutger.van.beusekom@verum.com>

	simulate: Fix split-arrows for blocking_system2,3.
	Zip used to prepend the port trace prefix before the component trace.
	For system traces with multiple blocking components, a port trace may
	need to inserted mid-trace: just before the component handles the
	trigger.

	* dzn/ast.scm (ast:equal?)[trigger]: New specialization.
	* dzn/simulate.scm (zip): Add trigger parameter.  Use it to find proper
	location in the component trace to insert the port trace.  Also, do not
	insert the port trace twice.  Do not synthesize an action twice.  Be
	more strict in matching the component action with the port action; also
	consider runtime instance.
	(check-provides-compliance): Update caller.  Only reset PC for external
	triggers in a blocked context.  When resetting event for a blocked PC
	and a requires trigger, use the last trigger-return to find the matching
	trigger.

2021-09-25  Jan (janneke) Nieuwenhuizen  <janneke@gnu.org>

	test: Default to split-arrow trace for baseline.
	* test/dzn/dzn.scm (run-simulate-trace): Switch default to "trace" when
	baseline is present.
	* test/all/*/baseline/simulate: Update.

	test: Rename blocked_system traces.
	* test/all/blocking_system/BlockedSystem1.trace: Move to...
	* test/all/blocking_system/trace: ..this.
	* test/all/blocking_system2/BlockedSystem2.trace: Move to...
	* test/all/blocking_system2/trace: ..this.
	* test/all/blocking_system3/BlockedSystem3.trace: Move to...
	* test/all/blocking_system3/trace: ..this.
	* test/all/blocking_system4/BlockedSystem4.trace: Move to...
	* test/all/blocking_system4/trace: ..this.

2021-09-24  Rutger van Beusekom  <rutger.van.beusekom@verum.com>

	simulate: Read trigger only once per set of traces.
	* dzn/simulate.scm (run-sut): Add event parameter.  Move reading of
	input...
	(run-trail): ...here.

2021-09-24  Jan (janneke) Nieuwenhuizen  <janneke@gnu.org>

	test: Add deadlock_blocking_compliance.
	* test/all/deadlock_blocking_compliance/baseline/simulate/deadlock_blocking_compliance,
	test/all/deadlock_blocking_compliance/baseline/simulate/deadlock_blocking_compliance.stderr,
	test/all/deadlock_blocking_compliance/baseline/verify/deadlock_blocking_compliance,
	test/all/deadlock_blocking_compliance/baseline/verify/deadlock_blocking_compliance.stderr,
	test/all/deadlock_blocking_compliance/deadlock_blocking_compliance.dzn,
	test/all/deadlock_blocking_compliance/trace: New files.
	* test/all/local.mk (REGRESSION_TESTS): Add test.

2021-09-24  Rutger van Beusekom  <rutger.van.beusekom@verum.com>

	test: deadlock_blocking_inevitable: Canonicalize.

	step: Avoid skipping <block> when flush is required.
	* dzn/vm/step.scm (step)[block]: When queue is not empty, continue with
	pc instad of with continuation.
	* test/all/deadlock_blocking_flush/baseline/simulate/deadlock_blocking_flush,
	test/all/deadlock_blocking_flush/baseline/simulate/deadlock_blocking_flush.stderr,
	test/all/deadlock_blocking_flush/baseline/verify/deadlock_blocking_flush,
	test/all/deadlock_blocking_flush/baseline/verify/deadlock_blocking_flush.stderr,
	test/all/deadlock_blocking_flush/deadlock_blocking_flush.dzn,
	test/all/deadlock_blocking_flush/trace: New files.
	* test/all/local.mk (REGRESSION_TESTS): Add test.

	step: Do not release a blocked PC with a next blocking event.
	* dzn/vm/step.scm (step)[reply]: Only release pc on a requires trigger,
	or a non-blocking provides trigger.
	* test/all/deadlock_blocking_replies/baseline/simulate/deadlock_blocking_replies,
	test/all/deadlock_blocking_replies/baseline/simulate/deadlock_blocking_replies.stderr,
	test/all/deadlock_blocking_replies/baseline/verify/deadlock_blocking_replies,
	test/all/deadlock_blocking_replies/baseline/verify/deadlock_blocking_replies.stderr,
	test/all/deadlock_blocking_replies/deadlock_blocking_replies.dzn,
	test/all/deadlock_blocking_replies/trace: New files.
	* test/all/local.mk (REGRESSION_TESTS): Add test.

2021-09-23  Jan (janneke) Nieuwenhuizen  <janneke@gnu.org>

	trace: Also show q-out events for --format=diagram.
	* dzn/trace.scm (step:steps->diagram): Support q-out event.
	(trace:format-trace): Do not remove q-out events for component trace.
	* test/all/semantics/semantics.org: Update baseline.

	trace: Handle header with similar instance names.
	* dzn/trace.scm (step:steps->diagram): Start looking for matching name
	in header line beyond current position.  Also, use minimum length of 1
	for arrows and zero for padding.

	guix: dezyne: Update to 2.13.3.rc1.
	* guix/gnu/packages/dezyne.scm (dezyne)[source]: : Update to 2.13.3.rc1.

2021-09-21  Jan (janneke) Nieuwenhuizen  <janneke@gnu.org>

	doc: Update `ROADMAP'.
	* ROADMAP (Release 2.13.3): Move done items...
	(DONE): ...here.
	(Release 2.14): Plan to remove silent.  Fix lookup work item.

2021-09-20  Jan (janneke) Nieuwenhuizen  <janneke@gnu.org>

	doc: Update `NEWS'.
	* (Changes in 2.13.3 since 2.13.2): Add new items.

2021-09-23  Jan (janneke) Nieuwenhuizen  <janneke@gnu.org>

	vm: Hide client when printing state of PC.
	* dzn/vm/goops.scm (write)[system-state]: Filter-out client.

2021-09-22  Jan (janneke) Nieuwenhuizen  <janneke@gnu.org>

	complete: Support partial behaviour,system keyword.
	* dzn/parse/complete.scm (complete:component): New procedure, split-out
	from...
	(complete:root): ...here.  Use it to handle toplevel PORTS.
	* test/language/interface6a.dzn,
	test/language/component1d.dzn: New files.
	* test/language/local.mk (EXTRA_DIST): Add them.
	* test/dzn/language.scm ("interface6a",
	"component1d"): Use them in new tests.
	("component1c",
	"component-empty"): Update baseline.

	explore: Hide state of client.
	* dzn/vm/util.scm (state->string)[state]: For client port, skip variables.
	* dzn/explore.scm (state->scm)[state]: Likewise.

2021-09-22  Jan (janneke) Nieuwenhuizen  <janneke@gnu.org>

	vm: Update the state before checking for range-error.
	This avoids having an unevaluated expression in the state after a range
	error.

	* dzn/vm/util.scm (assign)[state,variable,top]: Change to...
	[pc,variable,top]: ...this.
	[pc,variable,expression]: Update caller.
	* dzn/vm/util.scm (update-variable): Update accordingly.  Take PC
	instead of STATE parameter.
	(update-state): Update accordingly.

2021-09-23  Jan (janneke) Nieuwenhuizen  <janneke@gnu.org>

	test: Add hello_interface_silent.
	* test/all/hello_interface_silent/META,
	* test/all/hello_interface_silent/hello_interface_silent.dzn: New files.
	* test/all/local.mk (HELLO_TESTS): Add test.

	simulate: Make run-interface run silent separately for in-event.
	* dzn/vm/run.scm (run-interface): Run run-silent separately.  Only
	re-add event on trail when running an out-event.

2021-09-22  Jan (janneke) Nieuwenhuizen  <janneke@gnu.org>

	test: Re-enable verify for non-observable non-deterministic interfaces.
	* test/dzn/dzn.scm (no-interface-determinism?): New procedure.
	(run-verify): Use it.
	* test/all/compliance_failures_inevitable/META,
	test/all/failures_nondet_optional/META,
	test/all/hello_nondet/META,
	test/all/hello_silent/META,
	test/all/illegal_async_silent/META,
	test/all/illegal_silent/META,
	test/all/silent_provides/META,
	test/all/silent_unused_out/META: Set "no-interface-determinism?" to true.
	* test/all/compliance_failures_inevitable/baseline/verify/compliance_failures_inevitable.stderr,
	test/all/failures_nondet_optional/baseline/verify/failures_nondet_optional,
	test/all/failures_nondet_optional/baseline/verify/failures_nondet_optional.stderr,
	test/all/illegal_async_silent/baseline/verify/illegal_async_silent.stderr,
	test/all/illegal_silent/baseline/verify/illegal_silent.stderr,
	Update baseline.

2021-09-13  Paul Hoogendijk  <paul.hoogendijk@verum.com>

	verify: Add --no-interface-determinism option.
	* dzn/commands/verify.scm (parse-opts): Add --no-interface-determinism
	option.
	* dzn/verify/pipeline.scm (in-out:aut-dpweak-bisim->verify-component):
	Use it to skip check.
	* dzn/verify/pipeline.scm (mcrl2:verify-compliance): Use it to skip check.
	* doc/dezyne.texi (Invoking dzn verify): Document it.

2021-09-23  Jan (janneke) Nieuwenhuizen  <janneke@gnu.org>

	verify: Rewrite pipeline debugging to avoid warning.
	* dzn/verify/pipeline.scm (unmemoized-verify-pipeline): Move if outside
	of format.

2021-09-20  Paul Hoogendijk  <paul.hoogendijk@verum.com>

	verify: Add memoization of LTS for interface non-determinism check.
	* dzn/verify/pipeline.scm (in-out:dzn->aut-dpweak-bisim-cached): New
	procedure.
	(in-out:aut->aut-weak-trace): Change "model-name"'silent to optional and inevitable.
	(pretty-verify-pipeline): For pipeline debug commands, hide the dzn
	command for the "verify-interface" pipelines.
	(unmemoized-verify-pipeline): For pipeline debug commands, insert an
	extra line-continuation and pipe symbol for the "aut-dpweak-bisim"
	output.
	(verify-pipeline-wrapper): New procedure.
	(memoizing-verify-pipeline): Use it.
	(verify-pipeline): Use it to avoid pipeline memoization when running the
	pipeline in debug mode.
	(mcrl2:verify-interface-asserts): Remove the check for the deterministic
	result.

2021-09-08  Paul Hoogendijk  <paul.hoogendijk@verum.com>

	verify: Add deterministic check of interfaces.
	* dzn/verify/pipeline.scm (in-out:lpsconstelm->lpsparelm): Rename to...
	(in-out:lps->lpsparelm): ...this.
	(in-out:lpsparelm->aut): Rename to...
	(in-out:lps->aut): ...this.
	(in-out:aut->aut-weak-trace): Change to procedure.  For interfaces, map
	"model-name"'silent to tau.
	(in-out:aut-dpweak-bisim->aut-failures): Rename to...
	(in-out:aut->aut-failures): ...this.
	(in-out:aut-dpweak-bisim->verify-interface): Rename to...
	(in-out:aut->verify-interface): ..this.
	(in-out:aut->verify-interface-nondet): New variable.
	(in-out.pipeline): Update accordingly.  Use weak-trace instead of
	dpweak-bisim for LTS of interfaces.
	(report-fail): Add reporting of non-deterministic interfaces.
	(mcrl2:verify-interface-asserts): Run both verify-interface and
	verify-interface-nondet.  Add handling of results of determistic check
	on interfaces.
	* test/all/hello_nondet/META,
	test/all/hello_silent/META: Disable verify.
	* test/all/*/baseline/verify/*: Update verify baseline.

	lts: Add deterministic check of interfaces.
	* dzn/lts.scm (assert-partially-deterministic):
	  Add support for <state> labels; all <state> labels indepentent of parameters are the same.

	makreel: Add state vector event self loop for RTC nodes.
	* dzn/templates/makreel.scm (global-state-type, state-sum,
	members-name): New templates.
	* dzn/templates/makreel/event-act@interface,
	dzn/templates/makreel/global-state-type@variable,
	dzn/templates/makreel/members-name-grammar,
	dzn/templates/makreel/members-name@variable,
	dzn/templates/makreel/pair-grammar,
	dzn/templates/makreel/state-sum@variable,
	dzn/templates/makreel/sum-grammar: Use them in new files.
	* dzn/templates/makreel/proc@interface: Use them.
	* test/dzn/dzn.scm (run-lts): Also filter <state>.

	lts: Add support for state vector events.
	* dzn/lts.scm (remove-state-edges): Add remove state events...
	(deadlock-nodes): ...called from here.
	(parse-label): Add 'state' node with arguments to parser.
	(cleanup-label): Support cleaning of state events plus parameters.

2021-09-22  Jan (janneke) Nieuwenhuizen  <janneke@gnu.org>

	test: Skip verify for non-observable non-deterministic interfaces.
	* test/all/compliance_failures_inevitable/META,
	test/all/failures_nondet_optional/META,
	test/all/hello_nondet/META,
	test/all/hello_silent/META,
	test/all/illegal_silent/META,
	test/all/silent_provides/META,
	test/all/silent_unused_out/META: New files.
	* test/all/illegal_async_silent/META: Include verify in skip.

	test: Add determinism_silent.
	* test/all/determinism_silent/META,
	test/all/determinism_silent/baseline/simulate/determinism_silent,
	test/all/determinism_silent/baseline/simulate/determinism_silent.stderr,
	test/all/determinism_silent/determinism_silent.dzn,
	test/all/determinism_silent/trace: New files.
	test/all/local.mk (HELLO_TESTS): Add test.

	test: Add determinism_interface.
	* test/all/determinism_interface/META,
	test/all/determinism_interface/baseline/simulate/determinism_interface,
	test/all/determinism_interface/baseline/simulate/determinism_interface.stderr,
	test/all/determinism_interface/determinism_interface.dzn,
	test/all/determinism_interface/trace: New files.
	test/all/local.mk (HELLO_TESTS): Add test.

2021-09-23  Jan (janneke) Nieuwenhuizen  <janneke@gnu.org>

	simulate: Add --no-interface-determinism option.
	* dzn/commands/simulate.scm (parse-opts): Add --no-interface-determinism
	option.
	(main): Pass #:interface-determinism-check? to...
	* dzn/simulate.scm (simulate): ...here, using new #:interface-determinism-check?
	parameter.  Pass it to...
	(simulate*): ...here.  Likewise to...
	(run-trail): ...here.  Likewise to...
	(end-report): ...here.  Use it to switch check-silence.
	* doc/dezyne.texi (Invoking dzn simulate): Document it.

2021-09-21  Jan (janneke) Nieuwenhuizen  <janneke@gnu.org>

	simulate: Nicer determinism error message.
	* dzn/vm/report.scm (initial-error-message): Add nicer and specific and
	wording for interface and component non-determinism.
	* test/all/determinism0/baseline/simulate/determinism0,
	test/all/determinism0/baseline/simulate/determinism0.stderr,
	test/all/determinism1/baseline/simulate/determinism1,
	test/all/determinism1/baseline/simulate/determinism1.stderr,
	test/all/determinism_async/baseline/simulate/determinism_async,
	test/all/determinism_async/baseline/simulate/determinism_async.stderr:
	Update baseline.

2021-09-17  Jan (janneke) Nieuwenhuizen  <janneke@gnu.org>

	simulate: Add non-deterministic check for interfaces.
	* dzn/simulate.scm (check-silence): New method.
	(end-report): Use it.
	* test/all/hello_nondet/META: Skip simulate.

2021-09-22  Jan (janneke) Nieuwenhuizen  <janneke@gnu.org>

	vm: Remove dead code.
	* dzn/vm/step.scm (step)[list]: Remove.

2021-09-20  Jan (janneke) Nieuwenhuizen  <janneke@gnu.org>

	complete: Add support for partial if-expression.
	* test/language/partial-if-expression.dzn: New file.
	* test/language/local.mk (EXTRA_DIST): Add it.
	* test/dzn/language.scm ("partial-if-expression"): Use it in new test.
	* dzn/parse/complete.scm: Handle toplevel complete expression for IF and
	GUARD.

2021-09-20  Rutger van Beusekom  <rutger.van.beusekom@verum.com>

	wfc: Add check for undefined functions.
	This is a follow-up to commit
	    e047e93e79c5afc0c35b8e16fdbffcdbf16b3227
	    peg: Avoid redundant skipping during fallback.

	which now allows undefined variables in expresison.  This check prevents
	horrible errors in mCRL2.

	* dzn/wfc.scm (defined-function): New method.
	(wfc)[call]: Use it.
	* test/all/wf_undefined_function: New test.
	* test/all/local.mk (PARSER_TESTS): Add it.

2021-09-20  Jan (janneke) Nieuwenhuizen  <janneke@gnu.org>

	complete: Add support for partial trigger name.
	* dzn/parse/complete.scm (complete:root): Handle toplevel OR in the
	context of ON.
	* test/language/partial-trigger-name.dzn: New file.
	* test/language/local.mk (EXTRA_DIST): Add it.
	* test/dzn/language.scm ("partial-trigger-name"): Use it in new test.

2021-09-20  Rutger van Beusekom  <rutger.van.beusekom@verum.com>

	c++: Resurrect default initializing reply member values.
	* dzn/templates/c++/reply-member-initializer@bool,
	dzn/templates/c++/reply-member-initializer@enum,
	dzn/templates/c++/reply-member-initializer@int: New template files.
	* dzn/templates/c++/model@component: Use them.

	test: Add hello_function_void_bool_if.
	* test/all/hello_function_void_bool_if/META,
	* test/all/hello_function_void_bool_if/hello_function_void_bool_if.dzn:
	New files.
	* test/all/local.mk (HELLO_TESTS): Add test.

	makreel: Fix call return for back-to-back function calls.
	* dzn/code/makreel.scm (step-into-assign/variable): Factor-out from...
	(makreel:continuation)[ast]: ...here.
	(fix-function): Remove.
	(makreel:then-continuation)[else]: Use step-into-assign/variable
	instead.
	(makreel:then-continuation)[if]: Likewise.  Make uniform by returning a
	list.
	* dzn/wfc.scm (wfc:continuation): Update accordingly.

2021-09-21  Rutger van Beusekom  <rutger.van.beusekom@verum.com>

	test: Add inevitable_performance.

2021-09-20  Rutger van Beusekom  <rutger.van.beusekom@verum.com>

	vm: Fix unbounded run-silent.
	This is a follow-up to commit
	    02fd7ddafe016cf69e6f7b0770c0c706129f2797
	    simulate: Make run-require always execute its event.

	* dzn/vm/run.scm (run-silent): Oops, do not return original PC.

2021-09-17  Jan (janneke) Nieuwenhuizen  <janneke@gnu.org>

	test: deadlock_optional_out_only: Rename from deadlock_interface_out_only.
	* test/all/deadlock_interface_out_only: Rename to...
	* test/all/deadlock_optional_out_only: ...this.
	* test/all/local.mk (REGRESSION_TESTS): Update accordingly.

	simulate: Remove deadlock for interfaces with inevitable trace.
	* dzn/simulate.scm (check-deadlock): Filter "optional" interface traces.
	Remove special cased deadlock for interface with only out-events.

2021-09-17  Rutger van Beusekom  <rutger.van.beusekom@verum.com>

	test: Add hello_reply.
	* test/all/hello_reply/hello_reply.dzn: New file.
	* test/all/local.mk (HELLO_TESTS): Add it.

	test: Add hello_system_reply.
	* test/all/hello_system_reply/META,
	test/all/hello_system_reply/baseline/simulate/hello_system_reply,
	test/all/hello_system_reply/hello_system_reply.dzn,
	test/all/hello_system_reply/trace: New files.
	* test/all/local.mk (HELLO_TESTS): Add test.

	vm: Maintain reply per instance.
	* dzn/vm/goops.scm (<program-counter>): Move REPLY field to...
	(<state>): ...here.
	(write)[program-counter,state]: Update accordingly.
	* dzn/vm/run.scm (run-to-completion-unmemoized)[choice-label]: Use
	<trigger-return>'s value instead of REPLY.
	* dzn/vm/run.scm (extend-trace, run-interface, run-to-completion*):
	Remove reset of REPLY field.
	* dzn/vm/util.scm (get-reply, set-reply, reset-replies): New methods.
	(assign):
	* dzn/vm/step.scm (step): Use them.
	* dzn/explore.scm (run-to-completion**): Use reset-replies instead of
	setting REPLY.
	* dzn/simulate.scm (event-traces-alist, run-state): Use reset-replies.

	goops: Move trigger-return to vm, drop expression.
	* dzn/goops.scm (<trigger-return>): Move to...
	* dzn/vm/goops.scm (<trigger-return>): ...here.  Remove EXPRESSION
	field.
	* dzn/ast.scm (ast:rescope): Remove support for <trigger-return>.
	(.port)[trigger-return]: Move to...
	* dzn/vm/ast.scm (.port): ...here.

	simulate: Move determining return value from report to step.
	* dzn/vm/report.scm (pc->event, pc->arrow)[trigger-return]: Do no look
	at reply value.
	(pc->event,pc->arrow)[runtime:port,trigger-return]: Do not look at
	<trigger-return>'s EXPESSION.
	(pc->event,pc->arrow)[runtime:component,trigger-return]: Likewise.
	* dzn/vm/report.scm (label->string): Update to look at EVENT.NAME only.
	* dzn/vm/step.scm (step)[end-of-on]: Copy REPLY value into
	<trigger-return>'s EVENT-NAME.
	* test/all/end_of_trail/baseline/simulate/end_of_trail.stderr,
	* test/all/end_of_trail_interface/baseline/simulate/end_of_trail_interface.stderr,
	* test/all/livelock_iterator/baseline/simulate/livelock_iterator.stderr:
	Update baseline.

2021-09-16  Jan (janneke) Nieuwenhuizen  <janneke@gnu.org>

	guix: dezyne: Update to 2.13.3.rc0.
	* guix/gnu/packages/dezyne.scm (dezyne)[source]: : Update to 2.13.3.rc0.

	doc: Update `NEWS'.
	* NEWS (Changes in 2.13.3 since 2.13.2): New section.

	doc: Update `ROADMAP'.
	* ROADMAP (Release 2.13.3): Update.  Move done items...
	(DONE): ...here.

	complete: Add support for incomplete system bindings.
	* dzn/parse/complete.scm (complete:root): Cater for toplevel 'END-POINT
	and handle partially filled END-POINT in BINDING.
	* test/language/system-binding.dzn (system_hello): Add incomplete
	end-points.
	* test/dzn/language.scm ("system end-point provides instance. on",
	"system end-point requires instance. on",
	"system end-point provides instance",
	"system end-point provides instance on",
	"system end-point requires instance",
	"system end-point requires instance on",
	"system end-point provides instance incomplete",
	"system end-point provides instance on incomplete",
	"system end-point requires instance incomplete",
	"system end-point requires instance on incomplete"): Use them in new tests.

	complete: Add support for partial enum-literal.
	* dzn/parse/complete.scm (complete:root): Cater for toplevel SCOPE and
	ENUM-LITERAL.
	* test/language/partial-enum-literal.dzn: New file.
	* test/language/local.mk (EXTRA_DIST): Add it.
	* test/dzn/language.scm ("partial-enum-literal",
	"partial-enum-literal on"): Use it in new test.

	tree: Memoize tree:top* and context:root-top*.
	* dzn/parse/tree.scm (tree:top*): Memoize.
	(context:root-top*): New memoized procedure, factored-out from.
	(context:top*): ...here.

	complete: Add support for partial type-name.
	* dzn/parse/complete.scm (complete:root): Recurse upward for complete
	COMPOUND-NAME.  Add handler for TYPE-NAME.
	* test/language/partial-type-name.dzn: New file.
	* test/language/local.mk (EXTRA_DIST): Add it.
	* test/dzn/language.scm ("partial-type-name",
	 "partial-type-name on" ): Use it in new tests.

	complete: Add support for incomplete variable.
	* dzn/parse/complete.scm (complete:root): Only recurse deeper for
	incomplete expressions, and only if the expression's value is complete.
	* test/language/variable-incomplete.dzn: New file.
	* test/language/local.mk (EXTRA_DIST): Add it.
	* test/dzn/language.scm ("variable-incomplete"): Use it in new test.
	* test/language/interface11.dzn,
	test/language/interface12.dzn: Remove trailing newline.

	complete: Add support for partial interface name.
	* test/language/component1b.dzn: New file.
	* test/language/component1.dzn: Move to...
	* test/language/component1c.dzn: ..this.
	* test/language/component1a.dzn: Move to...
	* test/language/component1.dzn: ..this.
	* test/language/local.mk (EXTRA_DIST): Add component11c.dzn.
	* dzn/parse/complete.scm (complete:root): Handle compoud-name for a
	port's interface.
	* test/dzn/language.scm ("component1"): Move to...
	("component1c"): ...this.
	("component1b",
	"component1b --point=15,10",
	"component1b --point=15,11",
	"component1b --point=15,12"): Move to...
	("component1a",
	"component1a --point=15,10",
	"component1a --point=15,11",
	"component1a --point=15,12"): ...this.
	("component1b",
	"component1b --point=15,11"): New tests.

	language: Show offset and tree of context when using -d,--debug.
	* dzn/commands/language.scm: When debug?, show offset and tree.

	complete: Add support for assign.
	* dzn/parse/tree.scm (.var): Cater for ASSIGN.
	* dzn/parse/lookup.scm (.type): Likewise.
	* dzn/parse/complete.scm (complete:root): Likewise.  Remove dead code.
	Complete statement of ON.
	* test/language/component11.dzn:
	test/language/component11a.dzn
	test/language/component12.dzn
	test/language/component12a.dzn: New files.
	* test/language/local.mk (EXTRA_DIST): Add them.
	* test/dzn/language.scm ("component11",
	"component11a"
	"component12",
	"component12a"): Use them in new tests.
	("import statemement",
	"import event variable expression",
	"on imported triggers",
	"on->imported trigger-port"): Update location.
	("type->imported enum"):
	("import event assign expression"): New test.
	* test/language/import.dzn (hello_enum): Add requires port and
	assignment.

	test/language: Add simple expresion tests.
	* test/language/interface13.dzn,
	test/language/interface13a.dzn: New files.
	* test/language/local.mk (EXTRA_DIST): Add them.
	* test/dzn/language.scm ("interface13",
	"interface13a"): Use them in new tests.

2021-09-16  Rutger van Beusekom  <rutger.van.beusekom@verum.com>

	lookup: Return #f when import resolving fails.
	* dzn/parse/lookup.scm (resolve-import): Return #f when file-name is #f.
	* test/language/import-nonexistent.dzn: New file.
	* test/language/local.mk (EXTRA_DIST): Add it.
	* test/dzn/language.scm ("import nonexistent"): Use it in new test.

2021-09-16  Jan (janneke) Nieuwenhuizen  <janneke@gnu.org>

	complete: Add support for action in variable.
	* dzn/parse/complete.scm (complete:root): For ACTION, try variable scope
	first.
	* test/dzn/language.scm ("on imported triggers",
	"space-ihello space nest types"): New tests.

	test/language: Add more import namespace completion tests.
	* test/dzn/language.scm ("space-hello space interfaces",
	"space-hello space types",
	"space-hello types"): New tests.

	test/language: Add namespace completion tests.
	* test/language/space-ihello.dzn (space.ihello.Bool): New type.
	(space.nest): New namespace.
	(space.foo): New component.
	(foo): New component.
	* test/language/space-hello.dzn (iworld): New interface.
	(space.goodbye): Remove.
	(space.hello): New component.
	(hello): New component.
	* test/dzn/language.scm ("provides interfaces, imported, namespace"):
	Rename to...
	("space-hello space interfaces"): ...this, and update.
	("port->namespace-interface"): Update.
	* test/dzn/language.scm ("space-ihello space nest types"):
	"space-ihello space types",
	"space-ihello types",
	"space-ihello space interfaces",
	"space-ihello interfaces"): New tests.

	complete: Add support for component with incomplete action.
	* test/language/component-incomplete-action.dzn: New file.
	* test/language/local.mk (EXTRA_DIST): Add it.
	* test/dzn/language.scm ("component-incomplete-action before port",
	"component-incomplete-action after port",
	"component-incomplete-action after behaviour",
	"component-incomplete-action behaviour",
	"component-incomplete-action behaviour end",
	"component-incomplete-action on"): New tests.

	complete: Add support for component with incomplete ports.
	* test/language/component-incomplete-port.dzn: New file.
	* test/language/local.mk (EXTRA_DIST): Add it.
	* test/dzn/language.scm ("component-incomplete-port before port",
	"component-incomplete-port after port",
	"component-incomplete-port after behaviour",
	"component-incomplete-port behaviour",
	"component-incomplete-port behaviour end",
	"component-incomplete-port on"): New tests.

	complete: Enhance support for enum variable without expression.
	* dzn/parse/complete.scm (tree:at-location-incomplete?): New procedure.
	(complete:context): Use it.
	(complete:root): For actions, handle position in relation to behaviour
	an on.
	* test/language/enum-variable-expression-missing.dzn: New file.
	* test/language/local.mk (EXTRA_DIST): Add it.
	* test/dzn/language.scm ("enum-variable-expression missing"): Use it in
	new test.

	complete: Fixes for before, in, and after incompete behaviour.
	* dzn/parse/complete.scm (tree:at-location?): No longer ignore
	end-location when incomplete?.
	(tree:after-location?, tree:before-location): False if also at location.
	(tree:around-location?): True if at location.
	(tree:at-location-incomplete?): New procedure.
	(complete:context): Use it.
	(complete:root): Fix completion for before,
	in and after an incomplete behaviour.
	* test/dzn/language.scm ("component1",
	"component1a"): Update baseline.

	complete: Handle damaged parse-tree.
	* dzn/parse/complete.scm (complete:root): When o is not a tree, travel
	up in context until we reach one, and recurse.

	test/language: Make models well-formed.
	* test/language/ihello.dzn (ihello): Remove parentheses after event.
	* test/language/space-ihello.dzn (ihello): Likewise.
	* test/language/import.dzn (hello_enum): Use variable with valued call.
	* test/language/interface9b.dzn (I): Make bar an out event.
	* test/language/interface9c.dzn (I): Likewise.
	* test/dzn/language.scm ("interface9b",
	"interface9c"): Update baseline.

	complete: Add support for illegal.
	* dzn/parse/complete.scm (complete:trigger-names): Add illegal when the
	on has no statements and the last trigger is complete.
	(complete:statements): Add illegal when there are no statements.
	* test/language/component5a.dzn: New file.
	* test/language/local.mk (EXTRA_DIST): Add it.
	* test/dzn/language.scm ("component5a"): Use it in new test.
	"component4",
	"component5",
	"component9a",
	"component10"): Update baseline.

	language: Add --line option as alias for --point.
	* dzn/commands/language.scm (parse-opts): Add --line.
	(main): Use it.

	complete: Use srfi-71 instead of receive.
	* dzn/parse/complete.scm (tree:around-location?): Replace receive by
	regular let from srfi-71.

	test/language: Revert semantic naming for interface test.
	* test/language/interface-I-enum-in.dzn,
	test/language/interface-I-in.dzn,
	test/language/interface-I-in2.dzn,
	test/language/interface-I-open.dzn,
	test/language/interface-I.dzn: Remove files.
	* test/language/component0.dzn,
	test/language/interface0.dzn,
	test/language/interface1.dzn,
	test/language/interface1b.dzn: New files.
	* test/dzn/language.scm: Update accordingly.  Strip extra level of
	naming from all tests.
	* test/language/local.mk (EXTRA_DIST): Update accordingly.

	complete: Fix interface names from other namespace.
	* dzn/parse/tree.scm (context:trigger*, context:variable*,
	context:type*, context:type*): New procedures.
	* dzn/parse/complete.scm (complete:interface-names): Use
	context:interface* include namespace.  Sort names.
	(complete:root): Update callers.
	* test/dzn/language.scm ("completion provides interfaces, imported,
	namespace"): Update baseline.

	complete: Remove duplication of completion procedures.
	* dzn/parse/tree.scm (tree:top*->context*): New procedure.
	(context:interface*, context:component*, context:model*): Use it to
	create new procedures.
	* dzn/parse/complete.scm (complete:type): Add #:actions? and #:type
	parameters.  Resolve type using context by default, do not include
	actions when actions? set to #f.
	(complete:for-type, complete:on): Remove.
	(complete-literal, complete-for-type, complete:behaviour): Refactor
	using complete:type.
	(complete:function): Rename to...
	(complete:reply): ...this, and refactor.
	(complete:reply): New procedure.

	complete: Simplify fall-back in complete:root.
	* dzn/parse/complete.scm (complete:root): Split fall-back case in two.

	tree: Cleanup tree:name, reduce its use.
	* dzn/parse/tree.scm (.name): Cater for formal and function.  Return #f
	for root.
	(tree:name): Simlify using .name.
	* dzn/parse/lookup.scm (search): Use .name instead of tree:name.
	* dzn/parse/complete.scm (complete:root): Likewise.

	tree: Rename tree:context? and parent-context.
	* dzn/parse/tree.scm (tree:context?): Rename to...
	(context?): ...this.
	(parent-context): Rename to...
	(context:parent): ...this.
	(tree*->context*): New procedure.
	(context:event*, context:formal*, context:function*, context:port*,
	context:trigger*, context:variable*): Use it to refactor.

	complete: Use uniform naming.
	* dzn/parse/complete.scm (at-location?): Rename to...
	(tree:at-location?): ...this.
	(after-location?): Rename to...
	(tree:after-location?): ...this.
	(around-location?): Rename to...
	(tree:around-location?): ...this.
	(before-location?): Rename to...
	(tree:before-location?): ...this.
	(context:event-names): Rename to...
	(complete:event-names): ...this.
	(context:interface-names): Rename to...
	(complete:interface-names): ...this.
	(context:port-event-names): Rename to...
	(complete:port-event-names): ...this
	(context:trigger-names): Rename to...
	(complete:trigger-names): ...this
	(context:action-names): Rename to...
	(complete:action-names): ...this.
	(tree:function-names): Rename to...
	(complete:function-names): ...this.
	(context:enum-value-names): Rename to..
	(complete:enum-literal-names): ...this.
	(tree:int-value-names):  Rename to...
	(complete:int-literal-names): ...this.
	(tree:enum-field-test): Rename to...
	(complete:field-test-names): ...this.
	(context:type-value-names): Rename to...
	(complete:type-literal-names): ...this.
	(complete-enum-literal): Rename to...
	(complete:enum-literal): ...this.
	(complete-literal): Rename to...
	(complete:literal): ...this.
	(complete-for-type): Rename to...
	(complete:for-type): ...this.
	(context:complete-for-type): Rename to...
	(complete:type): ...this.
	(complete-function): Rename to...
	(complete:function): ...this.
	(complete-on): Rename to...
	(complete:on): ...this.
	(complete:boolean-expressions): Rename to...
	(complete:boolean-expression): ...this.
	(instance-ports): Move into...
	(instance-ports-alist): ...here.
	(complete-other-end-point): Rename to...
	(complete:other-end-point): ...this.
	(behaviour-top): Rename to...
	(complete:behaviour): ...this.
	(context:on-type): Rename to...
	(.type-of-on): ...this.
	(context:statements): Rename to...
	(complete:statements): ...this.
	(system-top): Rename to...
	(complete:system): ...this.
	(context:complete): Rename to...
	(complete:root): ...this.
	And update all callers.

	complete: Use context to avoid type leakage.

	complete: Add support for else.
	* dzn/parse/complete.scm (context:statements): Add offset parameter.
	Use it to determine whether to complete ELSE.
	(context:complete): Update callers.  Make sure to pass valid context.

	complete: Add support damaged for expression.
	* dzn/parse/tree.scm (.value): Cater for damaged expression.
	* dzn/parse/complete.scm (context:statements): Handle damaged expression.

	complete: Add support for if-statement.
	* dzn/parse/tree.scm (.else, then): New procedures.
	(.value): Cater for partially parsed expression.
	(tree:imperative): Add skip-statement.
	* dzn/parse/complete.scm (context:statements): Include "if".
	(context:complete): Cater for 'if.
	* test/dzn/language.scm ("language component5", "language component6",
	"language component6a", "language component6b", "language component10",
	"language component10a"): Update baseline.

	complete: Cleanup context:complete.
	* dzn/parse/complete.scm (context:complete): Use predicates instead of
	destructors.

	complete: Cleanup direction accessors.
	* dzn/parse/tree.scm (.direction): Cater for 'direction.
	(tree:direction): New procedure.
	* dzn/parse/complete.scm (tree:type-name,
	.direction, tree:event-dir, tree:port-dir): Remove.
	(context:event-names, context:port-event-names): Update callers.

	complete: Use context resolving instead of manual lookup.

	complete: Add support for otherwise.
	* dzn/parse/complete.scm (context:complete): ALso return "otherwise" for
	'otherwise expression.
	* test/dzn/language.scm ("language interface10",
	"language interface10a"): Update tests.

	complete: Add support for arguments.
	* dzn/parse/tree.scm (context:stripped-dotted-name, tree:argument*): New
	procedures.
	(context:full-name): Filter-out null strings here, instead of...
	(context:dotted-name): ...here.
	* dzn/parse/lookup.scm (.function): New procedure.
	* dzn/parse/complete.scm (context:type-names): Simplify using
	context:stripped-dotted-name.  Sort.
	(tree:enum-value-names): Rename to...
	(context:enum-value-names): ...this.  Take a context and add optional
	context parameter.
	(tree:type-value-names): Rename to...
	(context:type-value-names): ...this.  Take a context and add optional
	context parameter.
	(complete-enum: Remove.
	(complete-enum-literal, complete-literal, context:complete-for-type,
	complete-function, complete-on, context:complete): Update callers.
	* test/dzn/language.scm ("language interface I { enum E; in _",
	"completion component-state"
	"completion component-enum member",
	"completion component-enum local",
	"completion enum local",
	"completion enum reply",
	"completion enum formal",
	"completion bool local",
	"completion bool reply",
	"completion bool formal",
	"completion int local",
	"completion int reply",
	"completion int formal"): Update baseline.

2021-09-16  Rutger van Beusekom  <rutger.van.beusekom@verum.com>

	peg: Avoid redundant skipping during fallback.
	* dzn/parse/peg.scm (peg:parse): Add # after formal.  Allow
	unknown-identifier in not-expresssion.
	* test/all/undefined/component/argument/baseline/verify/argument.stderr,
	test/all/undefined/component/argument_seen/baseline/verify/argument_seen.stderr,
	test/all/undefined/component/guard/baseline/verify/guard.stderr,
	test/all/undefined/component/if/baseline/verify/if.stderr,
	test/all/undefined/interface/guard/baseline/verify/guard.stderr,
	test/all/undefined/interface/if/baseline/verify/if.stderr,
	test/all/wf_variableInitExpression/baseline/verify/wf_variableInitExpression.stderr:
	Update baseline.

2021-09-16  Jan (janneke) Nieuwenhuizen  <janneke@gnu.org>

	wfc: Gracefully handle undeclared argument.
	* dzn/goops.scm (<arguments>): Inherit from <locationed> too.
	* dzn/wfc.scm (argument-type-check): Add arguments parameter.  Use it to
	report unidentified identifier when argument is a string.
	(wfc)[arguments]: Update caller.

	wfc: Gracefully handle bare string as guard expression.
	* dzn/wfc.scm (wfc)[guard]: If EXPRESSION is a string, generate an
	undefined identifier error.

	complete: Fix for incomplete enum variable.
	* dzn/parse/complete.scm (context:complete): Sue complete-enum for
	incomplete enum variable too.

	complete: Add support for formals.
	* dzn/parse/lookup.scm (.type): Cater for 'formal.
	* dzn/parse/complete.scm (context:complete): Complete it.

	complete: Add support for optional, inevitable.
	* dzn/parse/complete.scm (context:trigger-names): Add "optional",
	"inevitable" for interface.
	* test/dzn/language.scm ("language interface9"): "language interface9a",
	"language interface9b", "language interface9c", "language interface9d"):
	Update baseline.

	tree: Robustifications for fall-back tree.
	* dzn/parse/tree.scm (.event-name): Cater for incomplete action.
	(.port-name): Likewise.
	(context:full-name): Cater for scopes without name.

	complete: Include type names at toplevel behaviour.
	* dzn/parse/complete.scm (context:enum-names, context:int-names,
	complete:type-names): Remove.
	(complete-enum-literal, complete-literal, context:complete-for-type,
	complete-function, complete-on, context:complete): Update to use
	context:type-names.

	complete: Fix completion of interface types.
	* dzn/parse/tree.scm (context:top*, context:type*): New procedures.
	(tree:scope?): Add EXTERN, INT.
	(.type-name): Use tree:context? instead of null?.
	* dzn/parse/complete.scm (context:type-names): Use them to include the
	(interface) namespace for (interface) types.
	(complete:types-names): Remove "bool", "void".
	* test/language/interface-enum.dzn: Add blank line.
	* test/dzn/language.scm ("language component7"): Update baseline.
	("completion interface-enum"): Add test.
	* test/dzn/language.scm ("language component5", "language component6",
	"language component6a", "language component6b", "language component10",
	"language component10a"): Update baseline.

	complete: Add support for reply expression.
	* dzn/parse/tree.scm (.expression): Cater for reply.
	* dzn/parse/complete.scm (context:members): Only run
	tree:variable* on valid scope.
	(context:on-type): New procedure, factored-out from...
	(context:statements): ...here.  Includde variable names.
	(context:complete): Use context-on-type to support reply.

	complete: Add support completing of reply.
	* dzn/parse/tree.scm (context:bool, context:void): New variables.
	* dzn/parse/complete.scm (context:trigger*): New procedure.
	(context:statements): Use it.
	* dzn/parse/lookup.scm (tree:lookup): Move lookup of bool,
	void to...
	(context:lookup): ...here.

	complete: Add support for return in function.
	* dzn/parse/complete.scm (context:statements): New procedure.
	(context:complete): Use it.

	complete: Add support for skip statement.
	* dzn/parse/complete.scm (context:complete): Complete on skip-statement.

2021-09-16  Jan (janneke) Nieuwenhuizen  <janneke@gnu.org>

	complete: Stop recursion when no tree found.
	This may happen for fall-back trees.

	* dzn/parse/complete.scm (context:statements): Return null on #f.

2021-09-16  Jan (janneke) Nieuwenhuizen  <janneke@gnu.org>

	complete: Add support for event type.
	* dzn/parse/lookup.scm (.type): Cater for event.
	* dzn/parse/tree.scm (tree:name): Likewise.
	* dzn/parse/complete.scm (context:complete): Likewise.

	complete: Add support for system completion.
	* dzn/parse/tree.scm (.instances-and-bindings, .left, .right): New
	procedures.
	(.type-name): Cater for 'instance.
	(tree:dotted-name): Likewise.
	(context:port*): New procedure.
	* dzn/parse/lookup.scm (.instance): New procedure.
	(.port): Cater for 'instance.
	(.type): Likewise.
	* dzn/parse/complete.scm (instance-ports, instance-ports-alist):
	instance-binding): complete-other-end-point): system-top): New
	procedures.
	* dzn/parse/complete.scm (context:complete): Use them to complete system
	and binding.
	* test/language/system.dzn: Update.
	* test/language/system-binding.dzn: New file.
	* test/language/local.mk (EXTRA_DIST): Add it.
	* test/dzn/language.scm ("completion system before ports"
	("completion system between ports",
	("completion system after ports",
	("completion system before instance",
	("completion system after instance",
	("completion system after binding",
	("completion system binding port provides",
	("completion system binding port requires",
	("completion system binding instance provides",
	("completion system binding instance requires",
	("completion system end-point provides",
	("completion system end-point requires"): Use them in new tests.

	tree: Add tree:list-model*.
	* dzn/parse/tree.scm (tree:model*): Rename to...
	(tree:list-model*): ...this.
	* dzn/commands/parse.scm (list-models): Update caller.
	* dzn/parse/tree.scm (context:collect,
	tree:model*): New procedures.

	lookup: Add context resolving.
	* dzn/parse/lookup.scm (.event, .port, .type): New procedures.

	peg: Support partially parsing of binding and end-points.
	* dzn/parse/peg.scm (peg:parse): Add # after second end-point.

	language: stress: Strip /**/ comments.
	* dzn/parse/stress.scm (tipex-comments): Include /*..*/ in comment
	regexp.

	language: stress: Whitespace expression for assign expectations.
	* dzn/parse/stress.scm (assert-completions)[make-hole]: Whitespace
	expression for assign at offset.

	language: stress: Whitespace dangling parameter lists.
	* dzn/parse/stress.scm (assert-completions): Whitespace any dangling
	parameter list instead of only for reply.

2021-09-16  Jan (janneke) Nieuwenhuizen  <janneke@gnu.org>

	language: stress: Add filtered to remove some expectations.
	This removes completion tests for "behaviour", "system", and user type
	declarations.

	* dzn/parse/stress.scm (filtered): New procedure.
	(stress): Use it.

2021-09-16  Jan (janneke) Nieuwenhuizen  <janneke@gnu.org>

	language: stress: Whitespace expression in variable expectation.
	* dzn/parse/stress.scm (assert-completions)[make-hole]: Whitespace
	expression for variable at offset.

	language: stress: Whitespace parentheses after reply expectiation.
	* dzn/parse/stress.scm (assert-completions)[make-hole]: Whitespace
	parentheses and expression after a whitespaced reply.

	language: Support -d,--debug for stress.
	* dzn/commands/language.scm (main): Pass #:debug? to...
	* dzn/parse/stress.scm (stress): ...here.  Add new #:debug? parameter,
	pass it to...
	(assert-completions): ...here.  Add new #:debug? parameter.  Dump string
	to util-<offset>.dzn in debug mode.

	language: stress: Fix offset of identifier snippets.
	* dzn/parse/stress.scm (completion-heuristics): Use match:start as
	offset from identifiers-regex matches too.

	language: stress: Refactor to allow dumping failed snippets.
	* dzn/parse/stress.scm (test:complete): Uncurry.  Take
	already-whitespaced string.
	(assert-completions): Add #:file-name parameter.
	[make-hole]: New inner procedure.
	[assert-completion]: Dump <file-name>-<offset>.dzn if snippet completion
	fails.

	language: stress: Fix off-by one.
	* dzn/parse/stress.scm (test:complete): Fix off by one.

2021-09-16  Rutger van Beusekom  <rutger.van.beusekom@verum.com>

	language: Add -s,--stress option for complete.
	This adds a stress test for the Dezyne Language completion.

	* dzn/parse/stress.scm: New file.
	* dzn/parse/local.mk (dist_%C%_scm_DATA): Add it.
	* dzn/commands/language.scm (parse-opts): Add -s,--stress.
	(main): Call stress if used.

2021-09-16  Jan (janneke) Nieuwenhuizen  <janneke@gnu.org>

	complete: Fixes for toplevel interface, component, and behaviour.
	* test/language/interface-behaviour.dzn: New file.
	* test/dzn/language.scm ("language interface-behaviour before",
	"language interface-behaviour after",
	"language interface-behaviour before on",
	"language interface-behaviour between on",
	"language interface-behaviour after on"): Use it in new tests.
	* test/language/local.mk (EXTRA_DIST): Add it.

	complete: Fixes for "provides", "requires", and "on".
	* dzn/parse/complete.scm (context:complete): Return provides, requires
	when positioned before behaviour.
	* test/language/component-behaviour.dzn,
	test/language/component-provides.dzn: Add spacing.
	* test/dzn/language.scm ("completion component-provides"): Rename to...
	("completion component-provides before"): ...this and update.
	("completion component-provides"): Rename to...
	("completion component-provides inside"): ...this and update.
	("completion component-behaviour before",
	"completion component-provides after"): New tests.
	("completion component-behaviour"): Rename to...
	("completion component-behaviour behaviour"): ...this and update.
	("completion component-behaviour"): Rename to...
	("completion component-behaviour end"): ...this and update.

	complete: Add support for port completion in complete component.
	* dzn/parse/complete.scm (context:complete):
	* test/language/component-behaviour.dzn: Add behaviour.
	* test/dzn/language.scm ("completion component-provides"): New test.
	("completion component-behaviour"): Update.

	complete: Add support for port qualifiers.
	* test/language/component-requires.dzn: New file.
	* test/dzn/language.scm ("completion component-requires provides"
	"completion component-requires requires",
	"completion component-requires external",
	"completion component-requires injected",
	"completion component-requires external injected",
	"completion component-requires injected external"): Use it in new tests.
	* test/language/local.mk (EXTRA_DIST): Add it.

	complete: Add support for data.
	* test/language/component-data.dzn: New file.
	* test/dzn/language.scm ("completion data literal",
	"completion data local",
	"completion data formal",
	"lookup data var->formal"): Use it in new tests.
	* test/language/local.mk (EXTRA_DIST): Add it.

	complete: Add support for bool and int.
	* test/language/component-bool.dzn,
	test/language/component-int.dzn: New files.
	* test/language/local.mk (EXTRA_DIST): Add them.
	* test/dzn/language.scm ("completion bool literal",
	"completion bool local",
	"completion bool reply",
	"completion bool formal",
	"lookup bool var->formal",
	"completion int literal",
	"completion int local",
	"completion int reply",
	"completion int formal",
	"lookup int var->formal"): Use it in new tests.
	* dzn/parse/tree.scm (tree:bool,tree:void): New variables.
	(tree:type?): Use them to cater for bool, int, void.
	(.value): Cater for literal.
	(.name): Cater for bool, int, void.
	* dzn/parse/complete.scm (complete-literal): New procedure.
	(context:complete): Use it to complete at literal.

	complete: Support completion in function.
	* dzn/parse/tree.scm (.name): Cater for formal.
	(.type-name): Likewise.
	(tree:variable*): Cater for function.
	(is-a?): Cater for raw string.
	(tree:name-equal?): Likewise.
	(tree:scope+name): Likewise.
	* dzn/parse/complete.scm (context:locals): Include formals.
	(complete-enum-literal): Cater for function.
	(complete-function, filter-self): New procedures.
	(context:complete): Use them.
	(complete-on): Include function names.
	* test/language/component-enum.dzn: Use Bool as formal type, add formal
	reference.
	* test/dzn/language.scm ("completion enum field",
	"completion enum local",
	"completion enum reply"): Update baseline.
	("completion enum formal",
	"lookup enum var->formal"): New tests.

	complete: Avoid unbounded recursion.
	* dzn/parse/complete.scm (context:complete): Do not recurse for var.

	language: Exit early upon lookup failure.
	* dzn/commands/language.scm (main): Avoid collateral error when lookup
	failed.

2021-09-16  Jan (janneke) Nieuwenhuizen  <janneke@gnu.org>

	parse: Flatten fall-back tree.
	This avoids untyped tree elements, such as ... ((action ...) ...).

	* dzn/parse.scm (peg:flatten-tree): New procedure.
	(string->parse-tree): Use it when using the fall-back parser.

2021-09-16  Jan (janneke) Nieuwenhuizen  <janneke@gnu.org>

	test/language: Add tests for enum field with comments.
	* test/language/enum.dzn (Tri_bool): New enum with comments.
	(ihell): Use it.
	* test/dzn/language.scm ("completion enum-literal with comment",
	"lookup enum-literal->field with comment"): New tests.

	tree: Cater for comments in enum definition.
	* dzn/parse/tree.scm (.name): Cater for comment attached to name.
	(tree:id*): Use .name instead of destructor.

	test/language: Add blocking tests.
	* test/language/blocking.dzn: New file.
	* test/dzn/language.scm ("lookup import-double.space prefix",
	"lookup reply-port->port"): Use it in new tests.
	* test/language/local.mk (EXTRA_DIST): Add it.

	test: blocking_binding: Use canonical names.
	* test/all/blocking_binding/blocking_binding.dzn: Canonicalize.
	* test/all/blocking_binding/main.cc,
	* test/all/blocking_binding/main.cs,
	test/all/blocking_binding/main.js: Update accordingly.

	lookup: Support lookup of blocking out-binding.
	* dzn/parse/lookup.scm (tree:lookup-var): Cater for trigger-formal.
	(resolve-var): Likewise.
	(context-lookup-definition): Likewise.

	lookup: Support lookup of reply port.
	* dzn/parse/tree.scm (.port-name): Cater for reply.
	* dzn/parse/lookup.scm (resolve-port): Rename to...
	(resolve-interface): ...this.
	(context-lookup-definition): Update caller.
	(resolve-interface): New procedure.
	(context-lookup-definition): Use it to lookup reply port.

	test/language: Add variable expression lookup test.
	* test/language/lookup.dzn: Add variable reference in variable
	expression.
	* test/dzn/language.scm ("lookup variable-expression->variable"): Use it
	in new test.

	lookup: Support lookup of variable in expression.
	* dzn/parse/tree.scm (tree:statement?): Export.
	* dzn/parse/lookup.scm (tree:lookup-var): Use it to also resolve
	expression.

	test/language: Add completion tests.
	* test/language/interface9b.dzn: Move to...
	* test/language/interface9a.dzn: ...here.
	* test/language/component2c.dzn,
	* test/language/interface9b.dzn,
	* test/language/interface9c.dzn,
	* test/language/interface9d.dzn,
	test/language/interface9c.dzn: New files.
	* test/language/local.mk (EXTRA_DIST): Add them.
	* test/dzn/language.scm ("language component2c",
	"language interface9a",:
	"language interface9c"): New tests.

2021-09-07  Jan (janneke) Nieuwenhuizen  <janneke@gnu.org>

	complete: Complete at empty on, empty triggers, and comment.
	* dzn/parse/complete.scm (context:complete): Handle empty triggers,
	empty on and comment.

2021-09-06  Jan (janneke) Nieuwenhuizen  <janneke@gnu.org>

	test/language: Add five completion tests.
	* test/language/component3.dzn: Move to...
	* test/language/component3a.dzn: ...this.
	* test/language/component2.dzn: Move to...
	* test/language/component3.dzn: ...this.
	* test/language/component2.dzn,
	test/language/component2a.dzn,
	test/language/component2b.dzn,
	test/language/component6a.dzn,
	test/language/component6b.dzn,
	test/language/interface8a.dzn,
	test/language/interface8b.dzn: New files.
	* test/language/local.mk (EXTRA_DIST): Add them.
	* test/dzn/language.scm ("language component3"): Move to...
	("language component3a"): ...this.
	("language component2"): Move to...
	("language component3"): ...this.
	("language component2",
	"language component2a",
	"language component2b",
	"language component6a",
	"language component6b",
	"language interface8a",
	"language interfa8e8b"): New tests.

2021-09-06  Rutger van Beusekom  <rutger.van.beusekom@verum.com>

	complete: Better completion for behaviour, guard, and on.
	* dzn/parse/complete.scm (context:complete): Add completion for
	'behaviour-statements.  Rewrite matchers for 'guard and 'on.

2021-09-10  Jan (janneke) Nieuwenhuizen  <janneke@gnu.org>

	peg: Avoid crash popping from empty variable stack.
	* dzn/parse/peg.scm (peg:parse)[-add-var-]: Do not pop when no stack is
	available.

2021-09-07  Rutger van Beusekom  <rutger.van.beusekom@verum.com>

	peg: Make the empty variable-stack the empty list.
	* dzn/parse/peg.scm (peg:parse)[variable-stack]: Change to a list of
	null.
	[enter-frame,exit-frame,-add-var-,-var-]: Update accordingly.

2021-09-06  Rutger van Beusekom  <rutger.van.beusekom@verum.com>

	peg: Avoid accidentally parsing white-space.
	* dzn/parse/peg.scm (peg:parse): Use skip-parser for reset and
	enter/exit frame.
	* test/all/parse_locations/baseline/parse_locations,
	test/all/parse_peg_locations/baseline/parse_peg_locations: Update baseline.

2021-09-14  Jan (janneke) Nieuwenhuizen  <janneke@gnu.org>

	lookup: Add memoization.
	* dzn/parse/lookup.scm (search-import, search, widen-to-imports,
	context:lookup): Wrap in pure-funcq.

2021-09-06  Jan (janneke) Nieuwenhuizen  <janneke@gnu.org>

	test/language: Add namespace tests.
	* test/language/double.space.dzn:
	test/language/import-double.space.dzn: New files.
	* test/language/local.mk (EXTRA_DIST): Add them.
	* test/dzn/language.scm ("lookup double.space",
	"lookup double.space prefix",
	"lookup import-double.space",
	"lookup import-double.space prefix"): Use them in new tests.

	test/language: Add global tests.
	* test/language/global.space.dzn: New file.
	* test/language/local.mk (EXTRA_DIST): Add it.
	* test/dzn/language.scm ("lookup global.space global",
	"lookup global.space namespaced"): Use it in new tests.

	lookup: Support explicit global.
	* dzn/parse/tree.scm (.global): New procedure.
	* dzn/parse/lookup.scm (context:lookup): Cater for 'global.
	(context-lookup-definition): Likewise.
	(lookup-definition): Likewise.

2021-03-29  Rutger van Beusekom  <rutger.van.beusekom@verum.com>

	parse: Make global namespace reference explicit.
	* dzn/parse/peg.scm (peg:parse): Allow optional global scope for
	enum-literal and compound-name.
	* dzn/parse/ast.scm (parse-tree->ast): Update accordingly.
	* test/dzn/language.scm ("lookup port->imported-interface, with
	fallback"): Remove.

2021-03-25  Jan (janneke) Nieuwenhuizen  <janneke@gnu.org>

	lookup: Refactor to breadth-first and to allow memoization.
	* dzn/commands/language.scm (main): Update caller.
	* dzn/parse/lookup.scm (lookup-import): Rename to...
	(search-import): ...this.
	(lookup-imported): Remove.
	(look-in-scope): Rename to...
	(search): ...this, rewrite.
	(lookdown): Rename to...
	(widen-to-parent): ...this, rewrite.
	(widen-to-imports, search-or-widen-to-imports): New procedures.
	(context:lookup): Rewrite.
	(tree:lookup): Rewrite.
	* dzn/parse/tree.scm (tree:type-name, context:type-name, debug-name):
	New procedures.
	* dzn/parse/tree.scm (.name): Cater for models and types without name.

2021-09-10  Paul Hoogendijk  <paul.hoogendijk@verum.com>

	verify: Use --exclude-tau option to reduce command-line length.
	* dzn/verify/pipeline.scm (component-exclude-taus): New procedure.
	(model-taus): Use it.

	lts: Add --exclude-tau option.
	* dzn/commands/lts.scm (parse-opts): Add --exclude-tau option.
	(main): Pass it to...
	* dzn/lts.scm (lts-hide): ...here, adding new parameter.  Handle it.
	* test/dzn/lts.scm (test:lts-hide,
	test:lts-tau-loops): Update accordingly.

2021-08-16  Paul Hoogendijk  <paul.hoogendijk@verum.com>

	verify: Remove event names from taus to reduce command-line length.
	* dzn/verify/pipeline.scm (component-taus)[port-taus]: Remove inner
	procedure.  Use port-name only.

	lts: Allow prefixes for taus.
	* dzn/lts.scm: Filter on prefix of TAU too.

2021-09-08  Rutger van Beusekom  <rutger.van.beusekom@verum.com>

	simulate: Avoid quadratic duplication of traces with each new event.
	* dzn/simulate.scm (run-trail): When debug?, show number of traces.
	Remove duplicate PCs before recursing.

2021-09-07  Jan (janneke) Nieuwenhuizen  <janneke@gnu.org>

	pre-inst-env: Add ./emacs to EMACSLOADPATH.
	* build-aux/pre-inst-env.in (EMACSLOADPATH): Add $abs_top_srcdir/emacs.

2021-09-06  Jan (janneke) Nieuwenhuizen  <janneke@gnu.org>

	language: Cache parse tree for command-line use.
	* dzn/commands/language.scm (main)[file-name->parse-tree): Cache
	parse-alist.

2021-09-04  Jan (janneke) Nieuwenhuizen  <janneke@gnu.org>

	.dir-locals.el: Expand directory name for Geiser.
	* .dir-locals.el (prefix-dir-locals-dir): Expand the directory name
	added to geiser-guile-load-path.

2021-09-03  Jan (janneke) Nieuwenhuizen  <janneke@gnu.org>

	guix: dezyne: Update to 2.13.2.
	* guix/gnu/packages/dezyne.scm (dezyne)[source]: : Update to 2.13.2.

	doc: Update 'NEWS'.
	* NEWS (Changes in 2.13.2 since 2.13.1): New section.

	doc: Update 'ROADMAP'.
	* ROADMAP (Release 2.13.3): Rename from 2.13.0.
	Add XFAIL external_blocking_livelock and Simulator UX.
	(Release 2.13.4): New section.
	(Release 2.13.5): Likewise.
	(Release 2.13.6): Likewise.
	(DONE): Update.

	trace: Synthesize complement for all split-arrow orphans.
	* dzn/trace.scm (merge-communications)[second-half?]: New inner procedure.
	[merge-able?]: Rewrite in terms of first-half? and second-half?.
	[synthesize-complement]: Extract new inner procedure.
	(merge-communications): Anywhere in the trace, a missing first
	half-arrow or missing second half-arrow is synthesized and added to the
	steps.

2021-09-02  Jan (janneke) Nieuwenhuizen  <janneke@gnu.org>

	simulate: Cleanup compliance trace debugging.
	* dzn/simulate.scm (check-provides-compliance): Only print prepared
	port-trail and sut-trail.

	trace: In case of split-arrow error, also preserve input errors.
	* dzn/trace.scm (merge-communications): Append split-arrows errors to
	input error messages.

	simulate: Fix modeling livelock in interface.
	* dzn/vm/run.scm (run-interface): Do not add event to trail if it is a
	modeling events.

	simulate: Cleanup (.ast (.type (%sut))).
	* dzn/ast.scm (ast:type)[model]: New specialization.
	* dzn/vm/runtime.scm (runtime:ast-model): New method.
	(runtime:%sut-model): Use it.
	* dzn/vm/util.scm (provides/requires-trigger?): Use it.
	* dzn/vm/run.scm (mark-livelock-error): Use it.
	(run-external): Use it.
	* dzn/explore.scm (state-diagram->dot): Use it.
	* dzn/simulate.scm (check-deadlock): Use it.
	(run-sut): Use it.
	(end-report): Use it.

2021-09-02  Rutger van Beusekom  <rutger.van.beusekom@verum.com>

	test: Add hello_external_inevitable.
	* test/all/hello_external_inevitable/hello_external_inevitable.dzn: New file.
	* test/all/local.mk (HELLO_TESTS): Add it.

	simulate: Make trail determine external q-out.
	* test/all/semantics/semantics.org (external_multiple_out): Update
	accordingly.
	* dzn/vm/run.scm (external-trigger?): New function ...
	(external-trigger-in-q?): Rename from external-event? ...
	(run-external): ... and use it.
	(run-to-completion*): ... and here too.
	* test/all/semantics/semantics.org (external_multiple_out)
	test/all/compliance_external_inevitable/baseline/simulate/compliance_external_inevitable,
	test/all/compliance_external_inevitable/baseline/simulate/compliance_external_inevitable.stderr:
	Update baseine.

	test: Add illegal_external_inevitable.
	* test/all/illegal_external_inevitable/baseline/simulate/illegal_external_inevitable,
	test/all/illegal_external_inevitable/baseline/simulate/illegal_external_inevitable.stderr,
	test/all/illegal_external_inevitable/baseline/verify/illegal_external_inevitable,
	test/all/illegal_external_inevitable/baseline/verify/illegal_external_inevitable.stderr,
	test/all/illegal_external_inevitable/illegal_external_inevitable.dzn,
	test/all/illegal_external_inevitable/trace: New files.
	* test/all/local.mk (REGRESSION_TESTS): Add test.

	simulate: Prioritize reporting <illegal> over other errors.
	* dzn/vm/run.scm (filter-illegal+implicit-illegal): New procedure.
	* dzn/simulate.scm (end-report): Use it.

2021-09-01  Jan (janneke) Nieuwenhuizen  <janneke@gnu.org>

	simulate: Refactor report.
	* dzn/vm/report.scm (report): Be explicit about reporting the first trace.

	simulate: Use all traces to determine eligibles and deadlock.
	* dzn/simulate.scm (end-report)[deadlock-report]: Determine deadlock
	using all traces at once; [eligible]: Split-out to...
	(eligible-labels)[traces]: ...this new specialization.
	(event-traces-alist)[async-trace->alist]: Also include async traces.
	(event-traces-alist)[list]: New specialization.
	(eligible-labels)[list]: Remove specialization.
	(eligible-labels)[pc, list]: Remove pc parameter.
	(end-report, run-trail): Update accordingly.

2021-09-02  Jan (janneke) Nieuwenhuizen  <janneke@gnu.org>

	misc: Add merge-alist utilities.
	* dzn/misc.scm (merge-alist2, merge-alist-list): New procedures.

2021-09-01  Jan (janneke) Nieuwenhuizen  <janneke@gnu.org>

	simulate: Remove "is-not-deadlock?".
	* dzn/simulate.scm (is-not-deadlock?): Remove.
	(eligible-labels): Use (negate .status) instead.
	(check-deadlock): Likewise.

2021-09-01  Rutger van Beusekom  <rutger.van.beusekom@verum.com>

	simulate: Hide external q-in in split-arrows trace.
	* dzn/vm/report.scm (pc-arrow?): Hide external out events.
	(complete-split-arrows-pcs): Do not synthesize <q-in> for external out
	events.  Set parent of action to interface, not port.
	* test/all/semantics/semantics.org (external_multiple_out,
	indirect_blocking_multiple_external_out): Update accordingly.

2021-09-01  Jan (janneke) Nieuwenhuizen  <janneke@gnu.org>

	simulate: Fix parent when synthesizing actions.
	* dzn/vm/report.scm (complete-split-arrows-pcs): Set parent of action to
	interface, not port.

2021-09-01  Rutger van Beusekom  <rutger.van.beusekom@verum.com>

	simulate: Hide state of client.
	* dzn/vm/util.scm (serialize)[state]: For client port, skip variables.

	test: Add hello_blocking_external.
	* test/all/hello_blocking_external/hello_blocking_external.dzn: New file.
	* test/all/local.mk (HELLO_TESTS): Add it.

2021-09-01  Rutger van Beusekom  <rutger.van.beusekom@verum.com>

	simulate: Add initial <exernal>.port.event for blocked trace.
	This fixes hello_blocking_external.

	* dzn/simulate.scm (zip): Make idempotent.
	(check-provides-compliance): Zip blocked trace like any other.
	(run-sut): At end-of-trail run check-provides-compliance.

2021-08-31  Rutger van Beusekom  <rutger.van.beusekom@verum.com>

	test: Add compliance_external_inevitable.
	Reproduce external compliance not reported by dzn simulate as reported
	by Joran Jessurun <joran.jessurun@ajmail.com>.

	* test/all/compliance_external_inevitable/baseline/simulate/compliance_external_inevitable,
	test/all/compliance_external_inevitable/baseline/simulate/compliance_external_inevitable.stderr,
	test/all/compliance_external_inevitable/baseline/verify/compliance_external_inevitable,
	test/all/compliance_external_inevitable/baseline/verify/compliance_external_inevitable.stderr,
	test/all/compliance_external_inevitable/compliance_external_inevitable.dzn,
	test/all/compliance_external_inevitable/trace: New files.
	* test/all/local.mk (REGRESSION_TESTS): Add test.

2021-09-01  Jan (janneke) Nieuwenhuizen  <janneke@gnu.org>

	simulate: Make run-require always execute its event.
	The run-requires procedure had implicit handling of silent events.  This
	mechanism allowed generating traces where the event itself did not
	execute.

	This fixes compliance_external_inevitable.

	* dzn/vm/util.scm (dequeue-external): Robustify against unset queue.
	* dzn/vm/run.scm (run-requires): Continue with event-executed? traces.
	(run-to-completion*): Run run-silent before run-requires.
	(run-to-completion-unmemoized)[reset-postponed-match]: Instead of taking
	the first of traces, reset them all and run delete-duplicates on them.

2021-08-31  Jan (janneke) Nieuwenhuizen  <janneke@gnu.org>

	simulate: Always show labels for --format=trace.
	* dzn/simulate.scm (end-report): Set #:eligible when calling report.

	simulate: Report location of <imperative>s in determinism errors.
	* dzn/vm/run.scm (mark-determinism-error): Look for <on> instead fo
	<initial-compound>.
	* test/all/determinism0/baseline/simulate/determinism0,
	test/all/determinism0/baseline/simulate/determinism0.stderr,
	test/all/determinism1/baseline/simulate/determinism1,
	test/all/determinism1/baseline/simulate/determinism1.stderr,
	test/all/determinism_async/baseline/simulate/determinism_async,
	test/all/determinism_async/baseline/simulate/determinism_async.stderr:
	Update baseline.

2021-08-30  Rutger van Beusekom  <rutger.van.beusekom@verum.com>

	simulate: Fix action-equal? with runtime:instance in zip.
	* dzn/simulate.scm (zip)[action-equal?]: Use runtime port-instance
	instead of port-name.

	trace: Filter out non-error messages in JSON.
	* dzn/trace.scm (trace:steps->json): When there is no "error:"
	message (e.g., "info: end-of-trail ..."), ignore all messages.

	trace: Accept and complete last dangling split-arrow.
	* dzn/trace.scm (merge-communications): Synthesize second half of
	dangling split-arrow.

	report: For synthesized return use location of matching action.
	* dzn/vm/report.scm (complete-split-arrows-pcs)[action-matches?]: New
	inner define.  Use it to set location of synthesized <trigger-return>.

2021-08-30  Jan (janneke) Nieuwenhuizen  <janneke@gnu.org>

	trace: Synthesize event for error messages in --format=json.
	* dzn/trace.scm (communication->string): Add #:locations?
	parameter.
	(merge-communications): Set line instead of location
	for message, also set line with location and actual location.
	(lifeline-event->scm): Make message structured: location and text.
	(trace:steps->json): Instead of adding messages to last event, sythesize
	an arrow from sut -> sut and add messages there.
	* dzn/trace.scm (location-string->scm-location): Split-off from...
	(lifeline-activity->scm): ...here.
	* dzn/trace.scm (lifeline-event->scm): Use it to produce structured
	location in structured message.

2021-08-29  Jan (janneke) Nieuwenhuizen  <janneke@gnu.org>

	test: livelock_synchronous2: Update baseline.
	* test/all/livelock_synchronous2/baseline/simulate/livelock_synchronous2,
	test/all/livelock_synchronous2/baseline/simulate/livelock_synchronous2.stderr: Update.

	trace: Split-off library.
	* dzn/commands/trace.scm (trace:format-trace, ...): Split-off library
	to...
	* dzn/trace.scm: ...this new file.
	* dzn/local.mk (dist_%C%_scm_DATA): Add it.
	* dzn/commands/simulate.scm,
	dzn/vm/report.scm,
	test/dzn/dzn.scm: Update module import.

	trace: Remove command-line:get from library.
	* dzn/commands/trace.scm (communication->string): Always use location if
	available.
	(step:steps->diagram): Add #:locations? parameter.
	(communication->code): Likewise.
	(step->code): Likewise, and pass it.
	(main): Pass it.

	trace: Drop --json support for --format=sexp.
	* dzn/commands/trace.scm (trace:format-trace): For format "sexp", just
	return the sexp.

	trace: Remove seqdiag support.
	* dzn/commands/trace.scm (<seqdiag:step>): Remove type
	(seqdiag:get-model, seqdiag:sequence->trail, seqdiag:step->string,
	json-vector->list, seqdiag:sexp->location, seqdiag:sequence->steps,
	seqdiag:sexp->steps, seqdiag:format-trace, format-trace): Remove
	procedure.
	(main): Call trace:format-trace directly.

	trace: Remove unused procedure.
	* dzn/commands/trace.scm (trace:step->trace:code): Remove.

2021-08-27  Jan (janneke) Nieuwenhuizen  <janneke@gnu.org>

	parse: Remove obsolete export.
	* dzn/parse.scm (exports): Remove preprocess.

2021-08-27  Rutger van Beusekom  <rutger.van.beusekom@verum.com>

	vm: Fix memoization of run-to-completion by distinguishing on root.
	* dzn/vm/run.scm (run-to-completion): Add root-id to key.

2021-08-26  Jan (janneke) Nieuwenhuizen  <janneke@gnu.org>

	vm: Use forgetful memoization in run-to-completion.
	* dzn/vm/run.scm (run-to-completion): Use weak-key-hash-table and
	add gc-buffer for key.

	simulate: Optimize filter-root.
	* dzn/ast.scm (ast:model*): New specialization.
	* dzn/simulate.scm (filter-root): Use it instead of mis-using
	runtime:create-instances.

2021-08-26  Rutger van Beusekom  <rutger.van.beusekom@verum.com>

	simulate: Add library entry point to allow memoizations in daemon.
	* dzn/simulate.scm (simulate**): New entry point, allowing memoization
	of root, sut, instances and dependents. Split-off from...
	(simulate*): ...this.
	(filter-root): Extracted from simulate*

2021-08-27  Rutger van Beusekom  <rutger.van.beusekom@verum.com>

	simulate: Fix for setting of queue-size.
	This is a follow-up to commit

	    d6f468f1af2be6778be1197d25f7067220fa0265
	    vm: Support queue-size.

	* dzn/commands/simulate.scm: Use string->number on --queue-size input.

2021-08-25  Rutger van Beusekom  <rutger.van.beusekom@verum.com>

	simulate: Synthesize arrow for empty component-acceptance compliance.
	* dzn/vm/goops.scm (<synth-trigger>): New type.
	* dzn/vm/report.scm (complete-split-arrows-pcs): Use it to create
	a complement split-arrow for compliance error where component-acceptance
	is unset.
	* dzn/vm/report.scm (pc-arrow?)[synth-trigger]: New specialization.
	(pc->arrow)[synth-trigger]: Likewise.
	* dzn/commands/trace.scm (merge-communications): Avoid using
	inevitable,optional event.

	test: Add illegal_pessimism_external.
	* test/all/illegal_pessimism_external/baseline/simulate/illegal_pessimism_external,
	test/all/illegal_pessimism_external/baseline/simulate/illegal_pessimism_external.stderr,
	test/all/illegal_pessimism_external/baseline/verify/illegal_pessimism_external,
	test/all/illegal_pessimism_external/baseline/verify/illegal_pessimism_external.stderr,
	test/all/illegal_pessimism_external/illegal_pessimism_external.dzn,
	test/all/illegal_pessimism_external/trace: New files.
	* test/all/local.mk (REGRESSION_TESTS): Add test.

	simulate: Stop when an error trace is found.
	* dzn/simulate.scm (run-trail): Stop and end-report when there is an
	error trace.

	explore: Ignore external queue in state equality for --format=json.
	* dzn/vm/util.scm (rtc-program-counter-equal-state-diagram): New method.
	* dzn/explore.scm (state-diagram->json): Use it instead of pc->string
	equality.

	explore: Display tau transitions with an empty label.
	* dzn/explore.scm (state-diagram->dot): Use "" instead of "tau".
	(state-diagram->json): Likewise.

	explore: Have DOT remove duplicate transitions for --format=dot.
	* dzn/explore.scm (state-diagram->dot): Add strict.

	explore: Hide external queue in state labels.
	* dzn/vm/util.scm (pc->string-state-diagram): New method.
	* dzn/explore.scm (state-diagram->dot): Use it instead of pc->string.

	explore: Fix states without a named label in --format=dot.
	* dzn/explore.scm (state-diagram->dot): Add missing string-append.

	trace: Gracefully handle missing split arrow complement.
	* dzn/commands/trace.scm (merge-communications): When split-arrow steps
	do not match, insert an error and truncate the trace.

2021-07-25  Jan (janneke) Nieuwenhuizen  <janneke@gnu.org>

	vm: Optimise livelock check.
	* dzn/ast.scm (ast:equal?)[pair]: New specialization.
	* dzn/vm/util.scm (async-ports): Outline from...
	(pc->string): ...here.
	(rtc-program-counter-equal): New method.
	(pc:eq?): Rename to...
	(pc-equal?): Use it instead of pc->string equality.
	(trace-head:eq?): Update caller.
	* dzn/vm/run.scm (livelock?): Likewise.

2021-08-24  Rutger van Beusekom  <rutger.van.beusekom@verum.com>

	simulate: Optimise simulate* performance.
	* dzn/simulate.scm (simulate*): filter-root to do less work.

	normalize: Optimise purge-data and annotate-otherwise.
	* dzn/normalize.scm (purge-data): Reduce amount of work by
	short-circuiting match.
	* dzn/vm/normalize.scm (annotate-otherwise): Reduce amount of work by
	short-circuiting match.

	vm: Refactor run-to-completion.
	* dzn/vm/run.scm (run-to-completion): Pull (%exploring?) condition up.

2021-08-23  Rutger van Beusekom  <rutger.van.beusekom@verum.com>

	test: Add external_blocking_livelock (#33).
	This demonstrates bug #33
	    https://gitlab.com/dezyne/dezyne-issues/-/issues/33

	* test/all/external_blocking_livelock/external_blocking_livelock.dzn,
	test/all/external_blocking_livelock/baseline/verify/external_blocking_livelock,
	test/all/external_blocking_livelock/baseline/verify/external_blocking_livelock.stderr:
	New files.
	* test/all/local.mk (REGRESSION_TESTS): Add it.
	(XFAIL_TESTS): Likewise.

2021-08-17  Rutger van Beusekom  <rutger.van.beusekom@verum.com>

	simulate: Compute provide port traces only once.
	* dzn/simulate.scm (pc->provides-traces,
	provides-instance-traces-alist): Split-out from...
	(check-provides-compliance): ...here.  Add parameter port-traces-alist.
	(check-provides-compliance*): Use them to pre-calculate
	port-traces-alist and pass them.
	(check-deadlock): Likewise.

2021-08-18  Jan (janneke) Nieuwenhuizen  <janneke@gnu.org>

	simulate: Fix provides port traces calculation and performance.
	This is a follow-up to
	    317358036f331297d0fc06dfa213a1c02507a7e0
	    simulate: Support silent events on provides port.

	This fixes very bad performance for some models that use async.

	Reported by Joran Jessurun <joran.jessurun@ajmail.com>.

	* dzn/simulate.scm (check-provides-compliance)[pc->provides-traces]:
	Reset #:async and #:external in PC before creating LTS.

2021-08-16  Rutger van Beusekom  <rutger.van.beusekom@verum.com>

	guix: dezyne: Update to 2.13.1.
	* guix/gnu/packages/dezyne.scm (dezyne)[source]: : Update to 2.13.1.

2021-07-23  Jan (janneke) Nieuwenhuizen  <janneke@gnu.org>

	doc: Update 'NEWS'.
	* NEWS (Changes in 2.13.1 since 2.13.0): New section.

2021-07-27  Rutger van Beusekom  <rutger.van.beusekom@verum.com>

	vm/util.scm: Display eligible context in interactive simulation.
	* dzn/vm/util.scm (show-eligible): Add parameter, display action for
	eligible choices.

	test: Add injected_dangling.
	* test/all/injected_dangling/META,
	test/all/injected_dangling/injected_dangling.dzn,
	test/all/injected_dangling/trace: New files.
	test/all/local.mk (REGRESSION_TESTS): Add test.

2021-07-27  Jan (janneke) Nieuwenhuizen  <janneke@gnu.org>

	vm: Support dangling injected port.
	* dzn/vm/runtime.scm
	(runtime:create-instances): For dangling injected port instances, create boundary
	counterpart.
	 (runtime:other-port-): Rename to...
	(runtime:other-port-unmemoized): ...this.  Find counterpart of dangling
	injected port.
	(runtime:rank!)[runtime:component-model]: Skip injected ports.

	vm: Refactor runtime:system* and rename to runtime:create-instances.
	* dzn/vm/runtime.scm (runtime:system*): Rename to
	runtime:create-instances.
	(runtime:create-instances): Refactor.

	test: hello_async: Remove trace and handwritten main.
	* test/all/hello_async/main.cc,
	test/all/hello_async/trace: Remove files.

	test: Add async_provides.
	* test/all/async_provides/META,
	test/all/async_provides/async_provides.dzn,
	test/all/async_provides/trace: New files.
	* test/all/local.mk (REGRESSION_TESTS): Add test.

2021-07-27  Jan (janneke) Nieuwenhuizen  <janneke@gnu.org>

	simulate: Run compliance check on deadlock trace.
	Calling check-provides-compliance fixes the split-arrows output by
	zipping the provides port trace.

	* dzn/simulate.scm (check-deadlock): Unless simulating an interface,
	run check-provides-compliance.

2021-07-27  Jan (janneke) Nieuwenhuizen  <janneke@gnu.org>

	simulate: Run compliance check after flushing async.
	Call check-provides-compliance* updates the provides port and fixes the
	split-arrows format by zipping the provides port trace.

	* dzn/simulate.scm (run-sut): After flush-async, call
	check-provides-compliance* to update provides ports.

2021-07-27  Jan (janneke) Nieuwenhuizen  <janneke@gnu.org>

	simulate: Do not run deadlock check on an illegal trace.
	* dzn/simulate.scm (end-report): Skip exception for illegal trace to run
	deadlock check.
	* test/all/deadlock_implicit/baseline/simulate/deadlock_implicit,
	test/all/deadlock_implicit/baseline/simulate/deadlock_implicit.stderr,
	test/all/illegal_garbage/baseline/simulate/illegal_garbage: Update baseline.

	simulate: Add first observable async action to eligible labels.
	* dzn/simulate.scm (eligible-labels): Also generate async traces and add
	first observable actions.

2021-07-25  Paul Hoogendijk  <paul.hoogendijk@verum.com>

	wfc: Add type check for ports of a binding.
	* dzn/wfc.scm (binding-type): New method.
	(wfc)[system]: Use it.
	* test/all/wf_bindingSameType/baseline/verify/wf_bindingSameType.stderr,
	* test/all/wf_bindingSameType/wf_bindingSameType.dzn: New files.
	* test/all/local.mk (PARSER_TESTS): Add test.

2021-07-24  Jan (janneke) Nieuwenhuizen  <janneke@gnu.org>

	simulate: Support --format=diagram.
	* dzn/commands/simulate.scm (parse-opts): Add -i,--internal.  Add
	"diagram" to format option.
	(main): Pass #:internal? to...
	* dzn/simulate.scm (simulate): ...here, using new #:internal?
	parameter.  Pass it to...
	(simulate*): Likewise to...
	(run-trail): ...here.  Likewise to...
	(end-report): ...here, and to...
	* dzn/vm/report.scm (report): ...here.  Use it for "diagram" format;
	When format is "diagram", show trace as ASCCI diagram.
	* doc/dezyne.texi (Invoking dzn simulate): Document new options.

2021-08-16  Jan (janneke) Nieuwenhuizen  <janneke@gnu.org>

	simulate: Avoid displaying duplicate choice labels.
	* dzn/ast.scm (ast:equal?)[action]: New specialization.
	* dzn/vm/run.scm (run-to-completion-unmemoized): Use it to avoid
	creating duplicate labels.

2021-07-23  Jan (janneke) Nieuwenhuizen  <janneke@gnu.org>

	simulate: Use GNU Readline and interactive use fixups.
	* dzn/vm/run.scm (interactive?): Remove check for %next-input.
	(%next-input): Move to ...
	* dzn/vm/util.scm (%next-input): ...here.
	(read-input): Remove input prompt.  Cater for string-based input from
	readline.
	(show-eligible): Reset it in new function, setting-up readline
	completion and prompt.
	* dzn/simulate.scm (run-trail): Use it instead of printing eligible
	prompt.
	* dzn/vm/run.scm (run-to-completion-unmemoized): Likewise.
	* dzn/simulate.scm (simulate): Close input port when a trail was given,
	i.e., when not running in interactive mode.

2021-07-24  Jan (janneke) Nieuwenhuizen  <janneke@gnu.org>

	build: Add guile-readline dependency.
	* configure.ac: Check for guile-readline.
	* README (Requirements): Mention it.
	* doc/dezyne.texi (Requirements): Likewise.

	guix: dezyne: Add guile-readline.
	* guix/gnu/packages/dezyne.scm (dezyne)[propagated-inputs]: Add
	guile-readline.
	[arguments]: Add guile-readline to paths in wrap-binaries stage.

2021-07-24  Jan (janneke) Nieuwenhuizen  <janneke@gnu.org>

	simulate: Remove duplicate traces introduced by provides silent events.
	This is a follow-up to commit
	    317358036f331297d0fc06dfa213a1c02507a7e0
	    simulate: Support silent events on provides port.

	* dzn/simulate.scm (rtc-lts->traces): Do not return duplicate traces.

2021-07-19  Rutger van Beusekom  <rutger.van.beusekom@verum.com>

	test: collateral_blocking_shell2: Avoid using pump's destructor.
	The pump dtor in c++ hides the missing release of the
	collateral_blocked.  This reproduces the #23 as reported by Perry Wesel
	<perry.van.wesel@thermofisher.com>

	* test/all/collateral_blocking_shell2/main.cc (main): Wait for futures
	instead of falling into the pump's destructor.

2021-07-23  Rutger van Beusekom  <rutger.van.beusekom@verum.com>

	c++ runtime: collateral_release after unblock.
	* runtime/c++/dzn/pump.hh (collateral_block_lambda): Remove member.
	(unblocked): New member.
	* runtime/c++/pump.cc (collateral_block): Use member function instead of
	lambda.
	(pump::pump): Initialize it.
	(pump::release): Set it.
	(pump::create_context): Use it for collateral-release.
	(pump::collateral_release): Unset it.
	(pump::remove_finished_coroutines): Rename from finish.
	* runtime/cs/dzn/pump.cs: (unblocked): New member.
	(pump::release): Set it.
	(pump::create_context): Use it for collateral-release.
	(pump::collateral_release): Unset it.
	(pump::remove_finished_coroutines): Rename from finish.

	c++ context: Disable some debugging.
	* runtime/c++/dzn/context.hh (context, call, do_block, do_release,
	do_finish): Comment-out debugging.

	test: collateral_blocking_shell: Sleep less.
	* test/all/collateral_blocking_shell/main.cc (main): Reduce sleep by
	factor 10 to 200ms.

2021-07-22  Rutger van Beusekom  <rutger.van.beusekom@verum.com>

	test: wf_functionReturnValue: Add missing cases.
	* test/all/wf_functionReturnValue/wf_functionReturnValue.dzn: Also test
	empty function, non-returning else and several more variants with
	IF-statements.

	wfc: Report missing return for non-returning else and empty body.
	* dzn/wfc.scm (missing-return): Rewrite.
	* test/all/wf_functionReturnValue/baseline/verify/wf_functionReturnValue.stderr:
	Update baseline.

2021-07-23  Jan (janneke) Nieuwenhuizen  <janneke@gnu.org>

	peg: Parse body of function as regular compound.
	* dzn/parse/peg.scm (peg:parse): Parse body of function as regular compound.
	* dzn/parse/ast.scm (parse-tree->ast): Remove function without body.

	test: Add end_of_trail_interface_action.
	* test/all/end_of_trail_interface_action/META,
	test/all/end_of_trail_interface_action/baseline/simulate/end_of_trail_interface_action,
	test/all/end_of_trail_interface_action/baseline/simulate/end_of_trail_interface_action.stderr,
	test/all/end_of_trail_interface_action/end_of_trail_interface_action.dzn,
	test/all/end_of_trail_interface_action/trace: New files.
	* test/all/local.mk (REGRESSION_TESTS): Add test.

2021-07-22  Jan (janneke) Nieuwenhuizen  <janneke@gnu.org>

	test: Add end_of_trail_interface.
	* test/all/hello_interface/META: Fix comment.
	* test/all/end_of_trail_interface/META,
	test/all/end_of_trail_interface/baseline/simulate/end_of_trail_interface,
	test/all/end_of_trail_interface/baseline/simulate/end_of_trail_interface.stderr,
	test/all/end_of_trail_interface/end_of_trail_interface.dzn,
	test/all/end_of_trail_interface/trace: New files.
	* test/all/local.mk (REGRESSION_TESTS): Add test.

	simulate: Remove choice-point events from some traces.
	* dzn/vm/run.scm (run-to-completion-unmemoized): Reset statement in
	choice-point pc.
	* dzn/simulate.scm (pc->modeling-lts): Set %exploring?.

	simulate: Remove "sut." prefix from choice labels for interface.
	* dzn/vm/run.scm (run-to-completion-unmemoized)[choose-postponed-match]:
	Do not prepend "sut." when simulating an interface.
	* dzn/vm/report.scm (final-error-messages): Likewise.
	(end-of-trail-labels): Likewise.

	simulate: Skip deadlock check if choice labels available.
	* dzn/simulate.scm (end-report): Only run deadlock check for traces
	without errors or illegal traces.

	trace: Support interface traces for --format=diagram.
	* dzn/commands/trace.scm (step:steps->diagram)[port-instance->name): Use
	"client" if path is empty.

2021-07-21  Jan (janneke) Nieuwenhuizen  <janneke@gnu.org>

	report: Fix injected-related crash in split-arrows format.
	* dzn/vm/report.scm (pc-arrow?)[runtime-port trigger-return]: Avoid
	fetching triggers from synthesized ast which has no <on>.
	(complete-split-arrows-pcs): Do not synthesize an extra <trigger-return>
	if next already is a port.

2021-07-21  Rutger van Beusekom  <rutger.van.beusekom@verum.com>

	test: Add function_early_return for implicit compounds.
	* test/all/function_early_return/META,
	test/all/function_early_return/function_early_return.dzn: New files.
	* test/all/local.mk (REGRESSION_TESTS): Add test.

2021-07-22  Rutger van Beusekom  <rutger.van.beusekom@verum.com>

	normalize: Do not add return to valued functions.
	This is a follow-up to commit
	    50eaf2454ce1404ab8ce208a26ddac0c97ea9005.
	    makreel: Fix early function return.

	* dzn/normalize.scm (add-function-return): Skip non-void function.

2021-07-21  Jan (janneke) Nieuwenhuizen  <janneke@gnu.org>

	vm: Pop solitary variable.
	* dzn/vm/step.scm (step)[variable]: If variable is not in a compound,
	pop it before continuing.

	vm: Recursively pop function nested scope variables upon early return.
	* dzn/vm/step.scm (function-return): New method.
	(continuation)[return]: Use it.

2021-07-22  Jan (janneke) Nieuwenhuizen  <janneke@gnu.org>

	vm: Avoid crash in runtime:other-port for injected.
	* dzn/vm/runtime.scm (runtime:other-port-): Return #f instead of calling
	.container on #f.
	* dzn/vm/report.scm (complete-split-arrows-pcs): Cater for
	runtime:other-port returning #f.

2021-07-21  Rutger van Beusekom  <rutger.van.beusekom@verum.com>

	c++: shell: Add ranking.
	* dzn/templates/c++/model@shell-system: Add missing system-rank template.

2021-07-21  Rutger van Beusekom  <rutger.van.beusekom@verum.com>

	test: Add async_ranking_disorder.
	Reported by Joran Jessurun <joran.jessurun@ajmail.com>.

	* test/all/async_ranking_disorder/async_ranking_disorder.dzn,
	test/all/async_ranking_disorder/trace: New files
	* test/all/local.mk (REGRESSION_TESTS, XFAIL_TESTS): Add test.

2021-07-21  Jan (janneke) Nieuwenhuizen  <janneke@gnu.org>

	simulate: Fix location of <q-out>.
	* dzn/vm/report.scm (complete-split-arrows-pcs): Refactor recursion to obtain
	on location to add to q-out.

2021-07-20  Rutger van Beusekom  <rutger.van.beusekom@verum.com>

	makreel: Avoid forking random global state for process numbers.
	* dzn/code/makreel.scm (%id-alist, %next-alist): New parameters.
	(root->): Set them.
	(mcrl2:process-identifier): Use them instead of global values.  Remove
	redundant model from ast key.

2021-08-16  Rutger van Beusekom  <rutger.van.beusekom@verum.com>

	cs: Implement collateral_blocking_shell* mains in cs.

2021-07-26  Jan (janneke) Nieuwenhuizen  <janneke@gnu.org>

	Revert "test: Add collateral_blocking_shell3."
	Joran's bug report was captured in async_ranking_disorder.

	This reverts commit 666bfcf908ca28d58342cd1e9154fdf4ba64c3f4.

2021-07-26  Jan (janneke) Nieuwenhuizen  <janneke@gnu.org>

	Revert "test: collateral_blocking_shell3: Support cs."
	Joran's bug report was captured in async_ranking_disorder.

	This reverts commit 65a6df387cf5aa4b729d44f8c3d8c7c59f108960.

2021-07-20  Jan (janneke) Nieuwenhuizen  <janneke@gnu.org>

	doc: Post-release update.
	* doc/announce/ANNOUNCE-2.13.0: Update hashes.

	guix: dezyne: Update to 2.13.0.
	* guix/gnu/packages/dezyne.scm (dezyne)[source]: : Update to 2.13.0.

2021-07-16  Jan (janneke) Nieuwenhuizen  <janneke@gnu.org>

	doc: Update 'NEWS' and 'ANNOUNCE-2.13.0'.
	* NEWS (Noteworthy bug fixes): Mention fixing of #23.
	* doc/announce/ANNOUNCE-2.13.0: Likewise.

2021-07-19  Jan (janneke) Nieuwenhuizen  <janneke@gnu.org>

	test: collateral_blocking_shell3: Support cs.
	* test/all/collateral_blocking_shell3/main.cs: New file.
	* test/all/collateral_blocking_shell3/META: Remove cs from skip.

	test: collateral_blocking_shell2: Support cs.
	* test/all/collateral_blocking_shell2/main.cs: New file.
	* test/all/collateral_blocking_shell2/META: Remove cs from skip.

2021-07-08  Rutger van Beusekom  <rutger.van.beusekom@verum.com>

	cs: Event on blocked port blocks using collateral-block.
	* runtime/cs/dzn/pump.cs (blocked_p): New method.
	* runtime/cs/dzn/locator.cs (try_get): New method.
	* runtime/cs/dzn/pump.cs (port_blocked_p, collateral_block):
	Use it in New procedures.
	* runtime/cs/dzn/runtime.cs (call_in, call_out): Use it
	collateral_block when port is blocked.
	* dzn/templates/cs/event-slot@trigger,
	dzn/templates/cs/main-port-connect-out@trigger,
	dzn/templates/cs/valued-event-slot@trigger: Pass port instead of meta.
	* test/all/async_calling_context/cs/main.cs (connect_ports): Update accordingly.
	* test/all/async_shell/cs/main.cs: Likewise.
	* test/all/blocking_shell/cs/main.cs: Likewise.
	* test/all/shell_injected/cs/main.cs: Likewise.

2021-07-05  Rutger van Beusekom  <rutger.van.beusekom@verum.com>

	test: Add collateral_blocking_shell3.
	Attempt to reproduce problem reported by logocp.

	* test/all/collateral_blocking_shell3/META,
	test/all/collateral_blocking_shell3/collateral_blocking_shell3.dzn,
	test/all/collateral_blocking_shell3/main.cc,
	test/all/collateral_blocking_shell3/trace: New files.
	* test/all/local.mk (REGRESSION_TESTS): Add test.

2021-07-05  Rutger van Beusekom  <rutger.van.beusekom@verum.com>

	test: Add collateral_blocking_shell2.
	Test next event on blocked port.

	* test/all/collateral_blocking_shell2/META,
	test/all/collateral_blocking_shell2/collateral_blocking_shell2.dzn,
	test/all/collateral_blocking_shell2/main.cc,
	test/all/collateral_blocking_shell2/trace: New files.
	* test/all/local.mk (REGRESSION_TESTS): Add test.

2021-07-05  Rutger van Beusekom  <rutger.van.beusekom@verum.com>

	c++: Event on blocked port blocks using collateral-block.
	* dzn/templates/c++/event-slot@trigger,
	dzn/templates/c++/main-port-connect-out@trigger: Pass port instead of meta.
	* runtime/c++/pump.cc (pump::blocked_p): New member.
	(port_blocked_p): New helper function.
	* runtime/c++/dzn/runtime.hh (call_helper): Use it to call
	collateral_block when port is blocked.
	* test/all/async_calling_context/c++/main.cc (connect_ports): Update
	accordingly.
	* test/all/async_shell/c++/main.cc (connect_ports): Likewise.
	* test/all/blocking_shell/c++/main.cc (connect_ports): Update
	accordingly.
	* test/all/hello_namespace_foreign/c++/library_foreign.cc (foreign::foreign):
	Likewise.
	* test/all/shell_injected/c++/main.cc (connect_ports): Likewise.

2021-07-19  Rutger van Beusekom  <rutger.van.beusekom@verum.com>

	test: collateral_blocking_shell: Support cs.
	* test/all/collateral_blocking_shell/main.cs: New file.
	* test/all/collateral_blocking_shell/META: Remove cs from skip.

2021-07-19  Jan (janneke) Nieuwenhuizen  <janneke@gnu.org>

	cs: Remove early collateral_release.
	* runtime/cs/dzn/pump.cs (create_context): Do not collateral_release
	upon release.

2021-07-19  Rutger van Beusekom  <rutger.van.beusekom@verum.com>

	cs: Make thread safe shells IDisposable.
	* dzn/templates/cs/model@shell-system: Make IDisposable.
	(pump): Use public access specifier.
	(Dispose): New method.

2021-06-29  Jan (janneke) Nieuwenhuizen  <janneke@gnu.org>

	test: Add collateral_blocking_shell.
	* test/all/collateral_blocking_shell/collateral_blocking_shell.dzn,
	test/all/collateral_blocking_shell/META,
	test/all/collateral_blocking_shell/main.cc,
	test/all/collateral_blocking_shell/trace: New files.
	* test/all/local.mk (REGRESSION_TESTS): Add test.

2021-07-01  Rutger van Beusekom  <rutger.van.beusekom@verum.com>

	c++: Remove early collateral_release.
	* runtime/c++/pump.cc (create_context): Do not collateral_release
	upon release.
	* runtime/c++/pump.cc (collateral_block): Add debug printing.

2021-07-19  Rutger van Beusekom  <rutger.van.beusekom@verum.com>

	trace: Cater for absolute file-names on Windows.
	* dzn/commands/trace.scm (trace-parse): Allow colon in file-name.
	* dzn/parse/util.scm (string->location): Likewise.

2021-07-19  Jan (janneke) Nieuwenhuizen  <janneke@gnu.org>

	doc: Update 'NEWS' and 'ANNOUNCE-2.13.0'.
	* NEWS (Noteworthy bug fixes): Mention fixing of #27.
	* doc/announce/ANNOUNCE-2.13.0: Likewise.

2021-07-14  Rutger van Beusekom  <rutger.van.beusekom@verum.com>

	test: function_reply_early_return.
	Fixes: <https://gitlab.com/dezyne/dezyne-issues/-/issues/27>.

	* test/all/function_reply_early_return/function_reply_early_return.dzn,
	test/all/function_reply_early_return/META:
	New files.
	* test/all/local.mk (REGRESSION_TESTS): Add test.

2021-07-16  Jan (janneke) Nieuwenhuizen  <janneke@gnu.org>

	makreel: Fix early function return.
	* dzn/vm/normalize.scm (add-function-return): Move to...
	* dzn/normalize.scm (add-function-return): ...here.
	* dzn/code/makreel.scm (makreel:add-function-return): Remove.
	(makreel:om): Use add-function-return instead.

	verify: Also show normalized ast for -dd.
	* dzn/commands/verify.scm (main): Pretty print ast for debugity > 1.

2021-07-15  Jan (janneke) Nieuwenhuizen  <janneke@gnu.org>

	guix: dezyne: Update to 2.13.0.rc1.
	* guix/gnu/packages/dezyne.scm (dezyne)[source]: : Update to 2.13.0.rc1.

2021-07-06  Jan (janneke) Nieuwenhuizen  <janneke@gnu.org>

	doc: Update 'ANNOUNCE-2.13.0'.
	* doc/announce/ANNOUNCE-2.13.0: Update from NEWS files.

2021-07-15  Jan (janneke) Nieuwenhuizen  <janneke@gnu.org>

	doc: Update 'NEWS'.
	* NEWS (Verification, Code generation): Mention new enum-literal
	representation in the trace format.
	(Noteworthy bug fixes): Mention async multiple-definition fix.

2021-06-29  Jan (janneke) Nieuwenhuizen  <janneke@gnu.org>

	guix: dezyne: Install NEWS.
	* guix/gnu/packages/dezyne.scm (dezyne)[arguments]: Add
	'install-readmes' phase.

2021-07-15  Jan (janneke) Nieuwenhuizen  <janneke@gnu.org>

	guix: dezyne: Update from pack.
	* guix/gnu/packages/dezyne.scm (dezyne)[arguments]: Remove DATADIR, LANG
	settings.

2021-07-13  Jan (janneke) Nieuwenhuizen  <janneke@gnu.org>

	parse: Avoid multiple definitions of async using parameters.
	Reported by Joran Jessurun <joran.jessurun@gmail.com> via IRC.

	* test/all/async_types/async_types.dzn (async_types_interference): New
	component; copy of
	(async_types).
	* test/all/async_types/interference.dzn: New file.
	* dzn/parse/ast.scm (annotate-ast): Compare formals using every
	ast:equal?  Fixes adding multiple definitions.

2021-07-15  Jan (janneke) Nieuwenhuizen  <janneke@gnu.org>

	cs: Async in runtime.
	This fixes async_types.

	* runtime/cs/dzn/meta.cs (dzn.async): New generic.
	* dzn/code/cs.scm (cs:formals, cs:async-signature-name,
	cs:async-interface*): New methods.
	(cs:arguments)[action]: Add exception for async clr: do not add calling
	context.
	(cs:model): Filter-out ast:async? interfaces.
	* dzn/templates/cs.scm (async-signature-name,
	async-port-declare-delegate): New templates.
	* dzn/templates/cs/async-port-declare-delegate@interface: New template.
	* dzn/templates/cs/async-port-declare@port,
	dzn/templates/cs/async-port-init@port: Update to use delegate.
	* dzn/templates/cs/async-clr-event-slot@trigger: Remove formals.

2021-07-15  Jan (janneke) Nieuwenhuizen  <janneke@gnu.org>

	.dir-locals: Set java indent.
	* .dir-locals.el (java-mode): New entry.

	ast: Recognize async interfaces with parameters.
	* dzn/ast.scm (ast:async?): Compare dzn.async prefix instead of full name.

2021-07-09  Jan (janneke) Nieuwenhuizen  <janneke@gnu.org>

	trace: Use ":" as separator in enum literals.
	* dzn/lts.scm (cleanup-label): Use ":" instead of "_" as separator in
	enum literals.
	* dzn/commands/trace.scm (trace-parse, step->communication,
	trace:steps->json): Likewise.
	* dzn/templates/c++/enum-field-to-string@enum-field: Likewise.
	* dzn/templates/c++/string-to-enum@enum-field: Likewise.
	* dzn/vm/goops.scm (->sexp): Likewise.
	* dzn/vm/report.scm (label->string): Likewise.
	* dzn/vm/util.scm (string->value): Likewise.
	(sexp->value): Likewise.
	* runtime/cs/dzn/container.cs (string_to_value, to_string): Likewise.
	* runtime/cs/dzn/runtime.cs (call_in): Likewise.
	* dzn/verify/pipeline.scm (enum-literal->event): Likewise.
	* test/all/Camera/trace,
	test/all/Camera/trace.1,
	test/all/Camera/trace.2,
	test/all/Camera/trace.3,
	test/all/blocking_shell/trace.1,
	test/all/blocking_system4/BlockedSystem4.trace,
	test/all/data_full/trace,
	test/all/illegal_async_silent/baseline/simulate/illegal_async_silent,
	test/all/illegal_async_silent/baseline/verify/illegal_async_silent
	test/all/illegal_async_silent/trace,
	test/all/semantics/semantics.org,
	test/all/system_reply_enum/trace: Update trace.

2021-07-13  Jan (janneke) Nieuwenhuizen  <janneke@gnu.org>

	lts: Remove redundant states, transitions from structured output.
	This info is unused and moreover, it is present in the LTS.

	* dzn/commands/lts.scm (main): Remove redundant states and transitions
	info from structured output.
	* dzn/verify/pipeline.scm (result-split): Split on first colon only.
	(get-trace): Update accordingly.
	(get-info): Remove.
	(report-fail): Remove info from parameter list.
	(report-ok): Likewise.
	(report): Likweise.
	(mcrl2:verify-interface-asserts): Do not get-info, do not pass it to report.
	(mcrl2:verify-component-asserts): Likewise.

2021-07-09  Jan (janneke) Nieuwenhuizen  <janneke@gnu.org>

	vm: Deduplication of external choice points.
	* dzn/vm/run.scm (run-to-completion-unmemoized)[choice-labels]: New
	procedure.  Use it to avoid defining a choice point when labels are
	identical.

	simulate: Fix crashes in split-arrows report.
	* dzn/vm/report.scm (complete-split-arrows-pcs): Fix parent of q-in,
	use statement instead of next-statement for return location.

2021-07-08  Rutger van Beusekom  <rutger.van.beusekom@verum.com>

	vm: Memoize modeling-names.
	This speeds-up running the LegoBallSorter's "Handle" by a factor of 2.

	* dzn/vm/util.scm (modeling-names): Rename to...
	(modeling-names-unmemoized): ...this.
	(modeling-names): New memoizing procedure.

2021-07-07  Jan (janneke) Nieuwenhuizen  <janneke@gnu.org>

	scheme: Fix q-in logging.
	* runtime/scheme/dzn/runtime.scm (dzn:trace-qin): Use component path on
	both sides.

	test: step_state: Skip for scheme.
	* test/all/step_state/META: Add scheme to skip.

	test: hello_state_out: Support for scheme.
	* dzn/code/scheme.scm (wrap-lonely-variable): New procedure.
	(scheme:om): Use it in new procedure.
	(ast->): Use it instead of code:om.

2021-07-06  Jan (janneke) Nieuwenhuizen  <janneke@gnu.org>

	guix: dezyne: Update to 2.13.0.rc0.
	* guix/gnu/packages/dezyne.scm (dezyne)[source]: : Update to 2.13.0.rc0.

2021-06-29  Jan (janneke) Nieuwenhuizen  <janneke@gnu.org>

	doc: Add ANNOUNCE-2.13.0.
	* doc/announce/ANNOUNCE-2.13.0: New file.

2021-04-26  Jan (janneke) Nieuwenhuizen  <janneke@gnu.org>

	doc: Update 'NEWS'.
	* NEWS (Changes in 2.13.0 since 2.12.0): New section.

2021-04-16  Jan (janneke) Nieuwenhuizen  <janneke@gnu.org>

	doc: Update 'ROADMAP'.
	* ROADMAP (Release 2.13): Further specify 2.13 release.  Move some items to...
	(Release 2.14): ...here, and done items...
	(DONE): ...here.

2021-07-05  Jan (janneke) Nieuwenhuizen  <janneke@gnu.org>

	simulate: Support injected in split-arrows format.
	* dzn/vm/report.scm (complete-split-arrows-pcs): Sythesize return for
	injected port too.
	(pc->arrow)[trigger-return]: Handle sythesized injected return.  Add
	arrow to injected return.

2021-07-01  Jan (janneke) Nieuwenhuizen  <janneke@gnu.org>

	simulate: Synthesize <q-in> for out actions only.
	* dzn/vm/report.scm (complete-split-arrows-pcs): Guard <q-in>
	synthesizing for ast:out? actions.

2021-06-30  Jan (janneke) Nieuwenhuizen  <janneke@gnu.org>

	trace: Handle split-arrows mismatch gracefully.
	* dzn/commands/trace.scm (merge-communications): Check if split-arrows
	steps match.  If they don't, stop and add an error message.
	(communication-complete?): New predicate.
	(communication->string, communication->code): Use it and refactor error
	case.

	c++-exception-wrappers: Oops, avoid crash without --output option.
	* dzn/code/c++-exception-wrappers.scm (dump-name): Remove.
	(ast->): Update to use code-util:file-name.

	c++-exception-wrappers: Update example to support zero exceptions.
	* runtime/examples/exception_context.hh (operator()): Check exception
	queue size before referencing first element.

2021-06-29  Jan (janneke) Nieuwenhuizen  <janneke@gnu.org>

	wfc: Avoid field access on a boolean.
	Fixes: <https://gitlab.com/dezyne/dezyne-issues/-/issues/19>.

	* dzn/wfc.scm (wfc)[field-test]: Only look-up fields for a boolean
	type.  Allows proper type-mismatch reporting.
	* test/all/parse_type_mismatch/parse_type_mismatch.dzn: Add test case.
	* test/all/parse_type_mismatch/baseline/verify/parse_type_mismatch.stderr:
	Update baseline.

2021-06-29  Jan (janneke) Nieuwenhuizen  <janneke@gnu.org>

	wfc: Avoid lookup of arguments of undefined function.
	Fixes: <https://gitlab.com/dezyne/dezyne-issues/-/issues/18>.

	* dzn/wfc.scm (wfc)[arguments]: Skip argument check when function is
	undefined.
	* test/all/undefined/interface/function/function.dzn,
	* test/all/undefined/interface/function/baseline/verify/function.stderr:
	New files.
	* test/all/local.mk (PARSER_TESTS): Add test.

2020-09-20  Jan (janneke) Nieuwenhuizen  <janneke@gnu.org>

	test: Add ASCII diagrams of simulator semantics.
	* test/bin/semantics.sh: New script.
	* Makefile.am (EXTRA_DIST): Add it
	* test/all/semantics/run,
	test/all/semantics/semantics.org: New files.

2021-06-29  Jan (janneke) Nieuwenhuizen  <janneke@gnu.org>

	test: systems_hello: Add synchronous out event.
	* test/all/system_hello/system_hello.dzn (ihello)[world]: New out event.
	(hello): Use it.
	* test/all/system_hello/trace: Update accordingly.

2021-06-28  Jan (janneke) Nieuwenhuizen  <janneke@gnu.org>

	simulate: For systems, run deadlock check on ports only.
	* test/all/blocking_system/BlockedSystem1.trace: Use trace to
	non-deadlock state.
	* test/all/state_deadlock/baseline/simulate/state_deadlock: Update
	accordingly.
	* test/all/local.mk (XFAIL_TESTS): Remove it.

2021-06-25  Rutger van Beusekom  <rutger.van.beusekom@verum.com>

	simulate: Synthesize provides-out actions for split-arrows.
	* dzn/vm/report.scm (complete-split-arrows-pcs): For the boundary
	provides port, synthesize actions that were created by a <q-trigger>.

2021-06-25  Jan (janneke) Nieuwenhuizen  <janneke@gnu.org>

	simulate: Cleanup run-silent.
	* dzn/vm/run.scm (run-silent): Update state of original pc instead of
	re-inserting original-PCs fields.

	test: blocking_silent_external: Rename from hello_blocked_external.
	* test/all/hello_blocked_external: Rename to...
	* test/all/blocking_silent_external: ...this.
	* test/all/local.mk (REGRESSION_TESTS): Update accordingly.

	test: illegal_silent_external: Rename from illegal_external.
	* test/all/illegal_external: Rename to...
	* test/all/illegal_silent_external: ...this.
	* test/all/local.mk (REGRESSION_TESTS): Update accordingly.

2021-06-24  Jan (janneke) Nieuwenhuizen  <janneke@gnu.org>

	simulate: Re-implement refusals using LTS stability.
	* dzn/simulate.scm (pc->modeling-lts): New method.
	(modeling-lts-stable?, modeling-lts->observables): New procedures.
	(end-report): Use them to rewrite refusals check.
	* test/all/local.mk (XFAIL_TESTS): Remove
	compliance_failures_inevitable2.

2021-06-24  Jan (janneke) Nieuwenhuizen  <janneke@gnu.org>

	simulate: Run compliance check on prefix of blocked trace.
	When a blocking trace is completed, a full compliance check is done.
	However, the initial blocking trigger may already contain a compliance
	error.

	* test/all/compliance_blocking_out/baseline/simulate/compliance_blocking_out.stderr,
	* test/all/compliance_blocking_out/baseline/simulate/compliance_blocking_out:
	Update baseline
	* dzn/simulate.scm (check-provides-compliance): Use initial PC when
	blocked.  For a blocked trace, match prefix only.
	(check-provides-compliance*): Do not skip blocked trace set.

2021-06-25  Jan (janneke) Nieuwenhuizen  <janneke@gnu.org>

	simulate: Oops, zip provides port trace only.
	* dzn/simulate.scm (check-provides-compliance): Only zip provides port
	trace.

2021-06-23  Jan (janneke) Nieuwenhuizen  <janneke@gnu.org>

	vm: Fix for illegal_async_silent.
	* dzn/vm/run.scm (run-silent): Oops, do not reset trigger.
	* test/all/illegal_async_silent: Update baseline.
	* test/all/local.mk (XFAIL_TESTS): Remove test.
	* dzn/vm/run.scm (run-silent):

2021-06-23  Rutger van Beusekom  <rutger.van.beusekom@verum.com>

	simulate: Refactor determinism check.
	* dzn/vm/run.scm (non-deterministic?): New procedure.  Split out from...
	(extend-trace): ...here.
	(run-to-completion-unmemoized): Use it.

2021-06-23  Jan (janneke) Nieuwenhuizen  <janneke@gnu.org>

	test: Add end_of_trail_action2.
	* test/all/end_of_trail_action2/META,
	test/all/end_of_trail_action2/baseline/simulate/end_of_trail_action2,
	test/all/end_of_trail_action2/baseline/simulate/end_of_trail_action2.stderr,
	test/all/end_of_trail_action2/end_of_trail_action2.dzn,
	test/all/end_of_trail_action2/trace: New files.
	* test/all/local.mk (REGRESSION_TESTS): Add test.

	simulate: Refactor run-to-completion-unmemoized.
	* dzn/vm/run.scm (run-to-completion-unmemoized)[loop]: New inner
	define.  Move other procedures out of loop.

	simulate: Synchronize trace on observable choice.
	* dzn/vm/run.scm (mark-determinism-error): Remove procedure.
	(run-to-completion-unmemoized): Remove caller.
	(extend-trace): Instead of extending the trace with only one step,
	introduce a loop.  For a declarative statement, keep extending the trace
	until all traces reach an imperative statement.  Check for
	non-determinism.  For an imperative statement, keep extending the trace
	until there is an observable statement.

	test: Add end_of_trail_action.
	* test/all/end_of_trail_action/META,
	test/all/end_of_trail_action/baseline/simulate/end_of_trail_action,
	test/all/end_of_trail_action/baseline/simulate/end_of_trail_action.stderr,
	test/all/end_of_trail_action/end_of_trail_action.dzn,
	test/all/end_of_trail_action/trace: New files.
	* test/all/local.mk (REGRESSION_TESTS): Add test.

	simulate: For action choice, show action.
	* dzn/vm/report.scm (pc->event)[postponed-match]: New specialization.
	* dzn/vm/run.scm (run-to-completion-unmemoized)[reply-label]: Rename
	to...
	[choice-label]: ...this and also support action choices.
	[choose-postponed-match, mark-end-of-trail]: Use it.

2021-06-23  Jan (janneke) Nieuwenhuizen  <janneke@gnu.org>

	simulate: Fix crash in report.
	This fixes

	    ./pre-inst-env dzn simulate -l --state -I ../../ide/wip/dzn ../../ide/wip/dzn/all.dzn

	Reported by Rob Wieringa <rob.wieringa@verum.com>.

	* dzn/vm/report.scm (complete-split-arrows-pcs): Guard <q-in> creation
	with existance of next.

2021-06-22  Jan (janneke) Nieuwenhuizen  <janneke@gnu.org>

	simulate: Remove <error>s from input trail.
	* dzn/vm/util.scm (string->trail): Remove events that start with "<".
	(string->trail+model): New procedure, factored-out from...
	* dzn/simulate.scm (simulate): ...here.  Use it.

	test: failures_second_inevitable: Rename from second_inevitable.
	* test/all/second_inevitable/second_inevitable.dzn: Rename to...
	* test/all/failures_second_inevitable/failures_second_inevitable.dzn: ...this.
	* test/all/local.mk (REGRESSION_TESTS): Update accordingly.

	test: failures_nondet_optional: Renme from nondet_optional.
	* test/all/nondet_optional/nondet_optional.dzn: Rename to...
	* test/all/failures_nondet_optional/failures_nondet_optional.dzn: ..this.
	* test/all/local.mk (REGRESSION_TESTS): Update accordingly.

	test: failures_nondet_inevitable: Rename from nondet_inevitable.
	* test/all/nondet_inevitable/nondet_inevitable.dzn: Rename to...
	* test/all/failures_nondet_inevitable/failures_nondet_inevitable.dzn: ...this.
	* test/all/local.mk (REGRESSION_TESTS): Update accordingly.

2021-06-22  Rutger van Beusekom  <rutger.van.beusekom@verum.com>

	test: Add failures_inevitable.
	* test/all/failures_inevitable/failures_inevitable.dzn: New file.
	* test/all/local.mk (REGRESSION_TESTS): Add it.

	test: Add compliance_failures_inevitable2.
	* test/all/compliance_failures_inevitable2/baseline/simulate/compliance_failures_inevitable2.stderr,
	test/all/compliance_failures_inevitable2/baseline/simulate/compliance_failures_inevitable2,
	test/all/compliance_failures_inevitable2/baseline/verify/compliance_failures_inevitable2.stderr,
	test/all/compliance_failures_inevitable2/baseline/verify/compliance_failures_inevitable2,
	test/all/compliance_failures_inevitable2/compliance_failures_inevitable2.dzn,
	test/all/compliance_failures_inevitable2/trace: New files.
	* test/all/local.mk (REGRESSION_TESTS): Add test.
	(XFAIL_TESTS): Likewise.

2021-06-21  Rutger van Beusekom  <rutger.van.beusekom@verum.com>

	simulate: Support compliance_failures_choice.
	Port traces were extended beyond one run to completion; such traces
	never match the component trace which stops after communicating with the
	provides port.

	* dzn/simulate.scm (rtc-lts->traces): Add #:continue-on-silent?
	parameter.
	* dzn/vm/report.scm (debug:lts->alist): New procedure.
	* test/all/local.mk (XFAIL_TESTS): Remove compliance_failures_choice.
	* test/all/compliance_failures_choice: Update baseline.

2021-06-20  Jan (janneke) Nieuwenhuizen  <janneke@gnu.org>

	doc: Add missing copyright READMEs.
	* doc/announce/README,
	doc/images/README,
	test/language/README,
	dzn/templates/README,
	doc/semantics/README: New files.

	doc: Update AUTHORS.
	* AUTHORS: Add main contributions and update email addresses.

2021-06-18  Jan (janneke) Nieuwenhuizen  <janneke@gnu.org>

	Update copyright lines.
	Run

	    build-aux/copyright-header.scm

	* README (Legalese): Add copyright year.
	* test/all/*: Update baseline.

2021-06-18  Jan (janneke) Nieuwenhuizen  <janneke@gnu.org>

	build-aux: Add copyright-header.scm.
	* build-aux/copyright-header.scm: New file.

2021-06-18  Rutger van Beusekom  <rutger.van.beusekom@verum.com>

	test: compliance_optional: Canonicalize.
	* test/all/compliance_optional/compliance_optional.dzn: Use canonical
	names.
	* test/all/compliance_optional/baseline/simulate/compliance_optional,
	test/all/compliance_optional/baseline/simulate/compliance_optional.stderr:
	Update accordingly.

	test: nondet_optional: Simplify and canonicalize.
	* test/all/nondet_optional/nondet_optional.dzn (ihello, iworld):
	Simplify and canonicalize.
	(nondet_optional): Update accordingly.

	test: component_modeling_loop: Canonicalize.
	* test/all/component_modeling_loop/component_modeling_loop.dzn (I):
	Rename to...
	(ihello): ...this.  Also rename events.
	(II): Rename to...
	(iworld): ...this.  Also rename events.
	(component_modeling_loop): Update accordingly.
	(i): rename to h.
	(ii): Rename to w.

	test: compliance_single_to_multiple: Simplify.
	* test/all/compliance_single_to_multiple/compliance_single_to_multiple.dzn: Simplify.
	* test/all/compliance_single_to_multiple/baseline/simulate/compliance_single_to_multiple.stderr,
	test/all/compliance_single_to_multiple/baseline/simulate/compliance_single_to_multiple: Update.

2021-06-18  Jan (janneke) Nieuwenhuizen  <janneke@gnu.org>

	test: compliance_out_two: Remove.
	* test/all/compliance_out_two/META,
	test/all/compliance_out_two/baseline/simulate/compliance_out_two,
	test/all/compliance_out_two/baseline/simulate/compliance_out_two.stderr,
	test/all/compliance_out_two/baseline/verify/compliance_out_two,
	test/all/compliance_out_two/baseline/verify/compliance_out_two.stderr,
	test/all/compliance_out_two/compliance_out_two.dzn,
	test/all/compliance_out_two/trace: Remove.
	* test/all/local.mk (REGRESSION_TESTS): Remove test.

2021-06-18  Rutger van Beusekom  <rutger.van.beusekom@verum.com>

	test: Add livelock_component.
	* test/all/livelock_component/META,
	test/all/livelock_component/livelock_component.dzn,
	test/all/livelock_component/baseline/simulate/livelock_component,
	test/all/livelock_component/baseline/simulate/livelock_component.stderr,
	test/all/livelock_component/trace: New files.
	* test/all/local.mk (HELLO_TESTS): Add test.

2021-06-17  Jan (janneke) Nieuwenhuizen  <janneke@gnu.org>

	explore: Export structured actions, state for state-diagram format=json.
	* dzn/explore.scm (state->json-scm): New method.
	(state-diagram->json): Use it to add structured state as "states".
	* dzn/vm/util.scm (state->string): Nitpicks.

	explore: Refactor state-diagram state.
	* dzn/explore.scm (rtc-lts->state-diagram): Pass PC instead of
	FROM-LABEL.
	(state-diagram->dot, state-diagram->json): Update accordingly.

2021-05-31  Rutger van Beusekom  <rutger.van.beusekom@verum.com>

	test: Add silent_provides.
	* test/all/silent_provides/silent_provides.dzn: New file.
	* test/all/local.mk (REGRESSION_TESTS): Add it.

2021-06-17  Jan (janneke) Nieuwenhuizen  <janneke@gnu.org>

	simulate: Support silent events on provides port.
	* dzn/explore.scm (pc->rtc-lts): Add #:labels parameter.
	* dzn/simulate.scm (check-provides-compliance): Use it to generate
	provides traces.

2021-06-16  Rutger van Beusekom  <rutger.van.beusekom@verum.com>

	simulate: Refactor trace generation from LTS.
	This prepares for silent provides.

	* dzn/simulate.scm (rtc-lts-node->traces): New procedure, split-out
	from...
	(rtc-lts->traces): ...this.  Refactor.  Add #:prefix-set? parameter.
	(end-report): Update accordingly.   Also factor-out...
	* dzn/vm/report.scm (trace->string-trail): ...this new procedure.

2021-06-16  Jan (janneke) Nieuwenhuizen  <janneke@gnu.org>

	trace: Add labels to interface trace format=json..
	* dzn/commands/trace.scm (trace:steps->json): Handle labels for
	interface trace.

	simulate: Support split-arrows trace for interface.
	* dzn/vm/report.scm (complete-split-arrows-pcs): Complete interface
	trace.
	(report): Remove unused #:header parameter.
	(pc->arrow)[initial-compound, action]: Handle "client" vs "sut" for
	interface trace.
	* dzn/simulate.scm (run-trail): Update caller.
	* dzn/vm/runtime.scm (runtime:instance->path): Use kinds "client" and "interface"
	for interface simulation.
	(runtime:kind): Use paths ("client") and (%sut) for interface
	simulation.
	(runtime:instance->string): Cater for interface trace.
	(runtime:system*)[runtime:port]: New specialization.
	* test/all/hello_interface/hello_interface.dzn (hello_interface)[world]:
	Add event.

	test: livelock_async_cancel: Add trace and simulate baseline.
	* test/all/livelock_async_cancel/baseline/simulate/livelock_async_cancel.stderr,
	test/all/livelock_async_cancel/baseline/simulate/livelock_async_cancel,
	test/all/livelock_async_cancel/trace: New files.

2021-06-15  Jan (janneke) Nieuwenhuizen  <janneke@gnu.org>

	simulate: Remove whitespace, none, from report.
	* dzn/vm/report.scm (final-error-messages): Remove whitespace, use `-'
	instead of `none' consistently.
	* test/all/*: Update baseline.

2021-06-14  Jan (janneke) Nieuwenhuizen  <janneke@gnu.org>

	vm: Exit non-zero upon match error.
	* dzn/vm/goops.scm (<match-error>): Inherit from <error> instead of
	<status>.

2021-06-14  Jan (janneke) Nieuwenhuizen  <janneke@gnu.org>

	verify: verbose to stderr.
	Also, remove obsolete verify result ordering from the regession test.

	* dzn/verify/pipeline.scm (report-ok, report-fail, report-skip): When
	verbose?, print to current-error-port.
	* test/bin/reorder.in: Remove.
	* configure.ac: Do not expand it.
	* test/dzn/dzn.scm (verification-reorder): Remove.
	(run-verify): Do net use it.
	* test/all/*: Update baseline.

2021-06-03  Jan (janneke) Nieuwenhuizen  <janneke@gnu.org>

	verify: Print model: <model-name> on trail.
	This enables loose command-line integration like

	    ./pre-inst-env dzn verify foo.dzn | ./pre-inst-env simulate foo.dzn

	* dzn/verify/pipeline.scm (report-fail): Print "model: <model-name>".
	* test/all/*: Update baselne.

2021-06-08  Jan (janneke) Nieuwenhuizen  <janneke@gnu.org>

	simulate: Parse model:<model-name> from input trail.
	* dzn/simulate.scm (simulate): If the input trail starts with
	model-name, use that as model and remove it from input trail.

2021-06-07  Jan (janneke) Nieuwenhuizen  <janneke@gnu.org>

	verify: Show refinement-trace, drop --json support.
	* dzn/verify/pipeline.scm (report-ok): Remove json support.
	(report-skip): Likewise.
	(report-fail): Likewise.  Remove interface-trace parameter.
	(report): Update accordingly.  Remove interface-trace parameter.
	(mcrl2:verify-interface-asserts): Update accordingly.
	(mcrl2:verify-component-asserts): Update accordingly, pass
	refinement-trace instead of component trace.

2021-06-19  Jan (janneke) Nieuwenhuizen  <janneke@gnu.org>

	test: Skip verify only for mCRL2-non-reproducible tests.
	* test/all/local.mk (NON_REPRODUCIBLE_TESTS): Move into...
	(REGRESSION_TESTS): ...here.
	* test/all/compliance_provides_illegal4/META,
	test/all/compliance_reply_bool/META: New files.
	* test/all/compliance_provides_illegal4/baseline/simulate/compliance_provides_illegal4.stderr:
	Update baseline.

2021-06-11  Jan (janneke) Nieuwenhuizen  <janneke@gnu.org>

	test: Add compliance_invalid_action.
	* test/all/compliance_invalid_action/baseline/simulate/compliance_invalid_action,
	test/all/compliance_invalid_action/baseline/simulate/compliance_invalid_action.stderr,
	test/all/compliance_invalid_action/baseline/verify/compliance_invalid_action,
	test/all/compliance_invalid_action/baseline/verify/compliance_invalid_action.stderr,
	test/all/compliance_invalid_action/compliance_invalid_action.dzn,
	test/all/compliance_invalid_action/trace: New files.
	* test/all/local.mk (REGRESSION_TESTS): Add test.

	simulate: Report invalid trigger in compliance error.
	* dzn/vm/goops.scm (<compliance-error>)[trigger]: New field.
	* dzn/simulate.scm (check-provides-compliance): Use it to store trigger
	when component trail is empty.
	* dzn/vm/report.scm (final-error-messages): Report it.

	simulate: Calculate and show eligible at end of trail.
	* dzn/simulate.scm (end-report): When at end of trail and not at a
	choice-point, calculate eligible for report.
	(check-deadlock): Cater for system deadlock.
	(end-report): Aslo check deadlock for systems.
	* test/all/state_deadlock/baseline/simulate/state_deadlock.stderr:
	Update to <deadlock>.

2021-06-14  Jan (janneke) Nieuwenhuizen  <janneke@gnu.org>

	test: Remove hello_optional_system.

2021-06-11  Jan (janneke) Nieuwenhuizen  <janneke@gnu.org>

	test: Camera: Add trace.
	* test/all/Camera/trace.2: Move to...
	* test/all/Camera/trace.3: ...new file.
	* test/all/Camera/trace.2: New image trace.

2021-06-10  Rutger van Beusekom  <rutger.van.beusekom@verum.com>

	test: Add compliance_optional.
	* test/all/compliance_optional/baseline/simulate/compliance_optional,
	* test/all/compliance_optional/baseline/simulate/compliance_optional.stderr,
	* test/all/compliance_optional/baseline/verify/compliance_optional,
	* test/all/compliance_optional/baseline/verify/compliance_optional.stderr,
	* test/all/compliance_optional/compliance_optional.dzn,
	* test/all/compliance_optional/trace,
	* test/all/hello_foreign/hello_foreign.dzn: New files.
	* test/all/local.mk (REGRESSION_TESTS): Add test.

	simulate: Check provides compliance for port refusal.
	* dzn/simulate.scm (check-provides-compliance): When a component trace
	exists, but no provides port traces, mark a <compliance-error>.
	* dzn/vm/report.scm (initial-error-message, final-error-messages):
	Handle the case of no port acceptances.

2021-06-15  Jan (janneke) Nieuwenhuizen  <janneke@gnu.org>

	simulate: Cleanup check-provides-compliance.
	* dzn/simulate.scm (check-provides-compliance): Remove attempt at refusal.
	* test/all/compliance_failures_illegal/baseline/simulate/compliance_failures_illegal,
	est/all/compliance_failures_illegal/baseline/simulate/compliance_failures_illegal.stderr:
	Update baseline.

2021-06-09  Jan (janneke) Nieuwenhuizen  <janneke@gnu.org>

	test: Add nondet_optional.
	* test/all/nondet_optional/nondet_optional.dzn,
	test/all/nondet_optional/trace: New files.
	* test/all/local.mk (REGRESSION_TESTS): Add test.

	test: Add nondet_inevitable.
	* test/all/nondet_inevitable/nondet_inevitable.dzn,
	test/all/nondet_inevitable/trace: New files.
	* test/all/local.mk (REGRESSION_TESTS): Add test.

2021-06-08  Jan (janneke) Nieuwenhuizen  <janneke@gnu.org>

	simulate: Print initial error message also to stdout.
	* dzn/vm/report.scm (report): Print initial message also stdout.
	* test/all/*: Update baselines.

	simulate: Typo in deterministic error.
	* dzn/vm/report.scm (initial-error-message): Remove extra newline.

	test: Add hello_garbage.
	* test/all/hello_garbage/baseline/simulate/hello_garbage,
	test/all/hello_garbage/baseline/simulate/hello_garbage.stderr,
	test/all/hello_garbage/baseline/verify/hello_garbage,
	test/all/hello_garbage/baseline/verify/hello_garbage.stderr,
	test/all/hello_garbage/hello_garbage.dzn,
	test/all/hello_garbage/trace: New files.
	* test/all/local.mk (REGRESSION_TESTS): Add test.

	simulate: Detect garbage on trail.
	* dzn/vm/run.scm (filter-match-error): Next to valid traces, also prefer
	any other error above match errors.
	* dzn/simulate.scm (run-trail): Use it.
	(run-sut): Report empty result as match error.
	* dzn/vm/report.scm (label->string): Handle model as ast.
	(final-error-messages): Report it.
	* test/all/incomplete/trace: Truncate trace.
	* dzn/simulate.scm (end-report): Filter match errors.

2021-06-07  Jan (janneke) Nieuwenhuizen  <janneke@gnu.org>

	test: Truncate compliance traces to refinement trace.
	* test/all/compliance_async/trace: Drop <illegal>.
	* test/all/compliance_blocking_out/trace: Truncate to refinement trace.
	* test/all/compliance_blocking_out/baseline/simulate/compliance_blocking_out,
	test/all/compliance_blocking_out/baseline/simulate/compliance_blocking_out.stderr:
	Update baseline.
	* test/all/compliance_livelock/trace: Truncate to refinement trace.
	* test/all/compliance_livelock/baseline/simulate/compliance_livelock.stderr:
	Update baseline.
	* test/all/compliance_nonsynchronous_sync/trace,
	test/all/compliance_out_sync/trace,
	test/all/compliance_out_two/trace,
	test/all/compliance_provides_bool/trace,
	test/all/compliance_provides_int/trace,
	test/all/compliance_provides_out/trace: Truncate to refinement trace.
	* test/all/compliance_provides_out/baseline/simulate/compliance_provides_out:
	Update baseline.
	* test/all/compliance_reply_bool/trace,
	test/all/compliance_single_to_multiple/trace,
	test/all/compliance_system_provides_bool/trace: Truncate to refinement trace.

2021-06-08  Jan (janneke) Nieuwenhuizen  <janneke@gnu.org>

	test: Add compliance_fork_provides.
	* test/all/compliance_fork_provides/baseline/simulate/compliance_fork_provides,
	test/all/compliance_fork_provides/baseline/simulate/compliance_fork_provides.stderr,
	test/all/compliance_fork_provides/baseline/verify/compliance_fork_provides,
	test/all/compliance_fork_provides/baseline/verify/compliance_fork_provides.stderr,
	test/all/compliance_fork_provides/compliance_fork_provides.dzn,
	test/all/compliance_fork_provides/trace: New files.
	* test/all/local.mk (REGRESSION_TESTS): Add test.

	simulate: Detect provides fork for empty trace.
	* dzn/simulate.scm (zip): New procedure, split-out from...
	(check-provides-compliance): ...here.
	(run-trail): For a multiple-provides model, call check-provides-fork.

2021-06-15  Jan (janneke) Nieuwenhuizen  <janneke@gnu.org>

	simulate: Detect provides fork.
	* dzn/simulate.scm (check-provides-fork): New procedure.
	(check-provides-compliance): Use it.
	* dzn/vm/goops.scm (<fork-error>): New type.
	* dzn/vm/report.scm (initial-error-message, final-error-messages):
	Report it.

2021-06-07  Jan (janneke) Nieuwenhuizen  <janneke@gnu.org>

	test: Add hello_if_action.
	* test/all/hello_if_action/hello_if_action.dzn: New file.
	* test/all/local.mk (HELLO_TESTS): Add it.

2021-06-04  Jan (janneke) Nieuwenhuizen  <janneke@gnu.org>

	test: Add second_inevitable.
	* test/all/second_inevitable/second_inevitable.dzn: New file.
	* test/all/local.mk (REGRESSION_TESTS): Add it.

2021-06-18  Rutger van Beusekom  <rutger.van.beusekom@verum.com>

	test: compliance_failures_choice: Update from compliance_out_inevitable_illegal.
	* test/all/compliance_out_inevitable_illegal:
	Rename to...
	* test/all/compliance_failures_choice: ...this.  Rewrite to trigger
	failures refusal.
	* test/all/local.mk (REGRESSION_TESTS): Update accordingly.
	(XFAIL_TESTS): Add test.

2021-05-22  Jan (janneke) Nieuwenhuizen  <janneke@gnu.org>

	test: compliance_out_inevitable_illegal: Add missing baselines.
	* test/all/compliance_out_inevitable_illegal/baseline/simulate/compliance_out_inevitable_illegal,
	test/all/compliance_out_inevitable_illegal/baseline/simulate/compliance_out_inevitable_illegal.stderr,
	test/all/compliance_out_inevitable_illegal/baseline/verify/compliance_out_inevitable_illegal.stderr:
	New files.
	* test/all/local.mk (XFAIL_TESTS): Remove test.

2021-06-08  Jan (janneke) Nieuwenhuizen  <janneke@gnu.org>

	test: Add compliance_failures_multiple_provides.
	* test/all/compliance_failures_multiple_provides/baseline/simulate/compliance_failures_multiple_provides,
	test/all/compliance_failures_multiple_provides/baseline/simulate/compliance_failures_multiple_provides.stderr,
	test/all/compliance_failures_multiple_provides/baseline/verify/compliance_failures_multiple_provides,
	test/all/compliance_failures_multiple_provides/baseline/verify/compliance_failures_multiple_provides.stderr,
	test/all/compliance_failures_multiple_provides/compliance_failures_multiple_provides.dzn,
	test/all/compliance_failures_multiple_provides/trace: New files.
	* test/all/local.mk (REGRESSION_TESTS): Add test.

2021-06-04  Jan (janneke) Nieuwenhuizen  <janneke@gnu.org>

	test: Add compliance_failures_inevitable.
	* test/all/compliance_failures_inevitable/baseline/simulate/compliance_failures_inevitable,
	test/all/compliance_failures_inevitable/baseline/simulate/compliance_failures_inevitable.stderr,
	test/all/compliance_failures_inevitable/baseline/verify/compliance_failures_inevitable,
	test/all/compliance_failures_inevitable/baseline/verify/compliance_failures_inevitable.stderr,
	test/all/compliance_failures_inevitable/compliance_failures_inevitable.dzn,
	test/all/compliance_failures_inevitable/trace: New files.
	* test/all/local.mk (REGRESSION_TESTS): Add test.

2021-06-20  Jan (janneke) Nieuwenhuizen  <janneke@gnu.org>

	test: compliance_failures_optional: Rename from compliance_out_inevitable.
	* test/all/compliance_out_inevitable: Rename to...
	* test/all/compliance_failures_optional: ...this.

2021-06-04  Jan (janneke) Nieuwenhuizen  <janneke@gnu.org>

	test: compliance_out_inevitable: Simplify.
	* test/all/compliance_out_inevitable/compliance_out_inevitable.dzn (ihello):
	Remove state.
	(iworld): Likewise.
	(compliance_out_inevitable): Likewise.
	* test/all/compliance_out_inevitable/baseline/simulate/compliance_out_inevitable,
	test/all/compliance_out_inevitable/baseline/verify/compliance_out_inevitable,
	test/all/compliance_out_inevitable/trace: Update accordinly.

2021-06-04  Rutger van Beusekom  <rutger.van.beusekom@verum.com>

	test: Add compliance_failures_illegal.
	* test/all/compliance_failures_illegal/baseline/simulate/compliance_failures_illegal,
	test/all/compliance_failures_illegal/baseline/simulate/compliance_failures_illegal.stderr,
	test/all/compliance_failures_illegal/baseline/verify/compliance_failures_illegal,
	test/all/compliance_failures_illegal/baseline/verify/compliance_failures_illegal.stderr,
	test/all/compliance_failures_illegal/compliance_failures_illegal.dzn,
	test/all/compliance_failures_illegal/trace: New files.
	* test/all/local.mk (REGRESSION_TESTS): Add test.

2021-06-04  Jan (janneke) Nieuwenhuizen  <janneke@gnu.org>

	simulate: Support failures-refinement refusals.
	* dzn/commands/simulate.scm (parse-opts): Add -R,--no-refusals.
	(main): Pass #:refusal-check? to...
	* dzn/simulate.scm (simulate): ...here, using new #:refusal-check?
	parameter.  Pass it to...
	(simulate*): Likewise to...
	(run-trail): ...here.  Add refusal check.
	(optional-trace?): Split-out from...
	(check-deadlock): ...here.
	(rtc-lts->traces): New procedure.
	* dzn/explore.scm (pc->rtc-lts): Add new stop predicate: TRACE-DONE?
	* dzn/vm/goops.scm (<refusals-error>): New type.
	* dzn/vm/report.scm (initial-error-message, final-error-messages):
	Handle it.
	* doc/dezyne.texi (Invoking dzn simulate): Document it.

2021-06-08  Jan (janneke) Nieuwenhuizen  <janneke@gnu.org>

	simulate: Fix other provides ports update for requires out events.
	* dzn/simulate.scm (check-provides-compliance): In case of a
	requires-out event, run compliance check for all for all provides ports.

2021-06-07  Jan (janneke) Nieuwenhuizen  <janneke@gnu.org>

	test: indirect_in: Remove refusals error.
	* test/all/indirect_in/indirect_in.dzn (U): Use in-event 'a' instead of
	'unused' out-event.
	(indirect_in): Update accordingly.

2021-06-03  Jan (janneke) Nieuwenhuizen  <janneke@gnu.org>

	simulate: Respect --trail='' as empty trail.
	* dzn/simulate.scm (simulate): Avoid interactive mode when --trail was
	supplied.

2021-06-04  Jan (janneke) Nieuwenhuizen  <janneke@gnu.org>

	test: livelock_iterator: Rename from livelock_component2.
	Simulator LTSs differ from verification LTSs.

	* test/all/livelock_component2: Rename to...
	* test/all/livelock_iterator: ...this.
	* test/all/livelock_iterator/META: Skip lts.
	* test/all/livelock_iterator/baseline/simulate/livelock_iterator,
	test/all/livelock_iterator/baseline/simulate/livelock_iterator.stderr:
	Update baseline.
	* test/all/local.mk (REGRESSION_TESTS): Update accordingly.
	(XFAIL_TESTS): Remove.

2021-06-18  Jan (janneke) Nieuwenhuizen  <janneke@gnu.org>

	test: component_modeling_loop: Rename from livelock_component1.
	There is no livelock in the component.

	* test/all/livelock_component1/META: Remove file.
	* test/all/livelock_component1: Rename to...
	* test/all/component_modeling_loop: ...this.
	* test/all/local.mk (HELLO_TESTS): Remove.
	* test/all/local.mk (REGRESSION_TESTS): Add.

2021-05-31  Jan (janneke) Nieuwenhuizen  <janneke@gnu.org>

	simulate: Support interactive use.
	* dzn/vm/run.scm (interactive?): New procedure.
	(extend-trace): Use it to avoid xoreading too often.
	(run-to-completion-unmemoized): When interactive?, resolve
	non-determining using user input.
	* dzn/simulate.scm (run-trail): Never use read-input unless
	current-input-port is not tty.  When interactive?, show eligible events
	before input prompt.

2021-05-27  Rutger van Beusekom  <rutger.van.beusekom@verum.com>

	test: Add hello_choice_action.
	* test/all/hello_choice_action/META,
	test/all/hello_choice_action/baseline/simulate/hello_choice_action,
	test/all/hello_choice_action/hello_choice_action.dzn,
	test/all/hello_choice_action/trace: New files.
	* test/all/local.mk (REGRESSION_TESTS): Add test.

	test: Add hello_complete_action.
	* test/all/hello_complete_action/META,
	test/all/hello_complete_action/baseline/simulate/hello_complete_action,
	test/all/hello_complete_action/hello_complete_action.dzn,
	test/all/hello_complete_action/trace: New files.
	* test/all/local.mk (REGRESSION_TESTS): Add test.

	test: add hello_complete_reply.
	* test/all/hello_complete_reply/META,
	test/all/hello_complete_reply/baseline/simulate/hello_complete_reply,
	test/all/hello_complete_reply/hello_complete_reply.dzn,
	test/all/hello_complete_reply/trace: New files.
	* test/all/local.mk (REGRESSION_TESTS): Add test.

2021-05-26  Jan (janneke) Nieuwenhuizen  <janneke@gnu.org>

	test: Add hello_choice_reply.
	* test/all/hello_choice_reply/META,
	test/all/hello_choice_reply/baseline/simulate/hello_choice_reply,
	test/all/hello_choice_reply/hello_choice_reply.dzn,
	test/all/hello_choice_reply/trace: New files.
	* test/all/local.mk (REGRESSION_TESTS): Add test.

2021-06-01  Rutger van Beusekom  <rutger.van.beusekom@verum.com>

	simulate: Support sparse choice-point trail.
	This allows for a simulation in non-strict mode to omit non-choice point
	events from the trail, even if they are observable, i.e., part of the
	strict trace.

	* dzn/vm/goops.scm (<postponed-match>): New type.
	(<end-of-trail>)[trigger]: Remove unused field.
	* dzn/vm/report.scm (label->string): Handle bare string.
	* dzn/vm/run.scm (filter-postponed-match): New procedure.
	(extend-trace): When non-strict, use <postponed-match-error> instead of
	<match-error> or <end-of-trail>.
	(run-to-completion-unmemoized): ...here.  When non-strict, reset
	<postponed-match-error> if there is only one choice, otherwise mark
	<end-of-trail>.

2021-05-31  Rutger van Beusekom  <rutger.van.beusekom@verum.com>

	simulate: Do not run silent on provides port.
	* dzn/simulate.scm (check-provides-compliance): Remove dead silence code.

2021-05-26  Jan (janneke) Nieuwenhuizen  <janneke@gnu.org>

	test: Add end_of_trail.
	This supports testing simulate for

	   * non-strict: without --strict
	   * spilt-arrows trace: --format=trace

	* test/all/end_of_trail/META,
	test/all/end_of_trail/baseline/simulate/end_of_trail,
	test/all/end_of_trail/baseline/simulate/end_of_trail.stderr,
	test/all/end_of_trail/end_of_trail.dzn,
	test/all/end_of_trail/trace: New files.
	* test/all/local.mk (REGRESSION_TESTS): Add test.
	* test/dzn/dzn.scm (filter-state): Strictly filter "(state ".
	(trace-format): New procedure.
	(non-strict?): New predicate.
	(run-simulate-trace): Use them.

2021-05-25  Jan (janneke) Nieuwenhuizen  <janneke@gnu.org>

	vm: Show eligible (return) events at end of trail.
	* dzn/vm/ast.scm (ast:label*)[end-of-trail]: New specialization.
	* dzn/vm/report.scm (label->string): Fully support <trigger-return>.
	(report): When eligible not part of labels, show eligible as labels too.
	* dzn/vm/run.scm (run-to-completion-unmemoized): At end of trail, or
	non-deterministic trace that needs input, mark <end-of-trail> with labels.
	* dzn/simulate.scm (check-provides-compliance): For provides port, use
	%exploring? instead of %strict?.

2021-05-26  Jan (janneke) Nieuwenhuizen  <janneke@gnu.org>

	test: Remove empty error baselines.
	* test/dzn/dzn.scm (run-simulate-trace): Treat non-existing baseline as
	empty.
	* test/all/compliance_livelock/baseline/verify/compliance_livelock.stderr,
	test/all/compliance_provides_illegal4/baseline/verify/compliance_provides_illegal4.stderr,
	test/all/hello_two/baseline/verify/hello_two.stderr,
	test/all/parse_assign_void/baseline/verify/parse_assign_void.stderr,
	test/all/parse_non_existent_import/baseline/verify/parse_non_existent_import: Remove.

	simulate: By default, use --format=trace.
	* dzn/commands/simulate.scm (main): Use "trace" as default.
	* test/dzn/dzn.scm (run-simulate-trace): Use --format=event.
	* doc/dezyne.texi (Invoking dzn simulate): Update accordingly.

2021-06-01  Jan (janneke) Nieuwenhuizen  <janneke@gnu.org>

	simulate: Remove duplication in check-provides-compliance.
	* dzn/simulate.scm (check-provides-compliance)[run-provides-port]: New
	inner procedure.

2021-05-28  Jan (janneke) Nieuwenhuizen  <janneke@gnu.org>

	vm: Cleanup rtc? and memoization.
	* dzn/vm/goops.scm (rtc?): Remove "previous unset is rtc?" hack.
	* dzn/vm/run.scm (run-to-completion): Include %sut in the key.
	(run-silent): Reset, and put back statement.

2021-05-26  Jan (janneke) Nieuwenhuizen  <janneke@gnu.org>

	test: Add livelock_async.
	* test/all/livelock_async/livelock_async.dzn,
	test/all/livelock_async/baseline/verify/livelock_async,
	test/all/livelock_async/baseline/verify/livelock_async.stderr: New files.
	* test/all/local.mk (REGRESSION_TESTS): Add test.

	test: Add illegal_async_req.
	* test/all/illegal_async_req/baseline/simulate/illegal_async_req,
	test/all/illegal_async_req/baseline/simulate/illegal_async_req.stderr,
	test/all/illegal_async_req/baseline/verify/illegal_async_req,
	test/all/illegal_async_req/baseline/verify/illegal_async_req.stderr,
	test/all/illegal_async_req/illegal_async_req.dzn,
	test/all/illegal_async_req/trace: New files.
	* test/all/local.mk (REGRESSION_TESTS): Add test.

2021-05-31  Rutger van Beusekom  <rutger.van.beusekom@verum.com>

	vm: Flag async req while ack is pending as illegal.
	* dzn/ast.scm (ast:async-port*)[component-model]: Move to ...
	[component]: ...this specialization.
	[component-model]: New specialization.
	* dzn/vm/runtime.scm (runtime:port*)[runtime:port]: New specialization.
	[runtime:instance]: Include async ports.
	* dzn/vm/runtime.scm (runtime:system*): Update to not include async
	ports in boundary ports.
	* dzn/vm/step.scm (step-async-action-down): Mark a req for a pending ack
	as illegal.  Use runtime:port instead of ast port for pending ack.
	* dzn/vm/goops.scm (write): Update accordingly.

2021-05-26  Jan (janneke) Nieuwenhuizen  <janneke@gnu.org>

	test: livelock_async_cancel: Rename from livelock_async.
	* test/all/livelock_async: Rename to...
	* test/all/livelock_async_cancel: ...this.

2021-05-26  Rutger van Beusekom  <rutger.van.beusekom@verum.com>

	vm: Livelock check cleanups.
	* dzn/vm/run.scm (did-provides-out?): Handle "<livelock>" event on trail.
	(livelock?): Use regular procedure define, use higher
	order functions instead of lambda, use unfold instead of atypical suffixes
	loop.

2021-05-31  Rutger van Beusekom  <rutger.van.beusekom@verum.com>

	simulate: Support async livelock.
	* dzn/explore.scm (process-async, check-mark-livelock): Remove.
	(did-provides-out?, flush-async, flush-async-trace): Move to...
	* dzn/vm/run.scm (did-provides-out?, flush-async, flush-async-trace):
	...here.
	* dzn/simulate.scm (run-sut): Use flush-async instead of run-async.

2021-05-22  Jan (janneke) Nieuwenhuizen  <janneke@gnu.org>

	test: illegal_async_silent: Add trace and simulate baseline.
	* test/all/illegal_async_silent/baseline/simulate/illegal_async_silent,
	test/all/illegal_async_silent/baseline/simulate/illegal_async_silent.stderr,
	test/all/illegal_async_silent/trace: New files.
	* test/all/local.mk (XFAIL_TESTS): Add test.

	test: determinism_async: Add trace and simulate baseline.
	* test/all/determinism_async/baseline/simulate/determinism_async,
	test/all/determinism_async/baseline/simulate/determinism_async.stderr,
	test/all/determinism_async/trace: New files.

	simulate: At end of trail, run pending async event.
	* dzn/vm/run.scm (run-async*): Export.
	* dzn/simulate.scm (run-sut): At end of trail, run async events.

2021-05-28  Paul Hoogendijk  <paul.hoogendijk@verum.com>

	traces: Don't allow a trace to end in a state with pending ACKs.
	* dzn/commands/traces.scm (mark-async, remove-mark-async): New
	procedures.
	(model->lts, model->traces): ): Use them.
	* dzn/lts.scm (generate-trace): Do not allow to end when ACK is pending.

2021-05-22  Jan (janneke) Nieuwenhuizen  <janneke@gnu.org>

	test: Remove symlink trees.
	* HACKING (Regression test): Remove example that uses symlink tree.
	* test/async,
	test/blocking,
	test/compliance,
	test/error,
	test/external,
	test/hello,
	test/import,
	test/namespace,
	test/parser,
	test/regression,
	test/semantics,
	test/smoke: Remove directories.

2021-05-27  Paul Hoogendijk  <paul.hoogendijk@verum.com>

	verify: Detect async ack=>req livelock.
	* dzn/verify/pipeline.scm (component-taus): If port is async, hide
	inevitable.
	* test/all/livelock_async/baseline/verify/livelock_async,
	test/all/livelock_async/baseline/verify/livelock_async.stderr: New
	files.

2021-05-31  Rutger van Beusekom  <rutger.van.beusekom@verum.com>

	test: compliance_nonsynchronous_sync: Complete trace for simulate.
	* test/all/compliance_nonsynchronous_sync/trace: Add missing h.return.

2021-06-18  Jan (janneke) Nieuwenhuizen  <janneke@gnu.org>

	test: hello_inevitable_hidden: Rename from livelock1.
	* test/all/livelock1/livelock1.dzn: Rename to...
	* test/all/hello_inevitable_hidden/hello_inevitable_hidden.dzn:
	...this.  Canonicalize.
	* test/all/local.mk (REGRESSION_TESTS): Update accordingly.

2021-05-22  Jan (janneke) Nieuwenhuizen  <janneke@gnu.org>

	test: livelock2: Remove.
	Only the interface livelocks, see livelock_interface.

	* test/all/livelock2/baseline/verify/ilivelock,
	test/all/livelock2/baseline/verify/livelock2.stderr,
	test/all/livelock2/baseline/verify/nolivelock,
	test/all/livelock2/livelock2.dzn,
	test/all/livelock2/trace: Remove files.
	* test/error/livelock2,
	test/regression/livelock2: Remove symlinks.
	* test/all/local.mk (REGRESSION_TESTS): Remove test.

2021-06-18  Jan (janneke) Nieuwenhuizen  <janneke@gnu.org>

	test: component_livelock0: Remove.
	* test/all/livelock_component0/META,
	test/all/livelock_component0/livelock_component0.dzn: Remove files.
	* test/all/local.mk (HELLO_TESTS): Remove.

2021-05-22  Jan (janneke) Nieuwenhuizen  <janneke@gnu.org>

	test: incomplete: Add trace and simulate baseline.
	* test/all/incomplete/baseline/simulate/incomplete,
	test/all/incomplete/baseline/simulate/incomplete.stderr,
	test/all/incomplete/trace: New files.

	test: illegal_interface.space: Add trace and simulate baseline.
	* test/all/illegal_interface.space/baseline/simulate/illegal_interface.space,
	test/all/illegal_interface.space/baseline/simulate/illegal_interface.space.stderr,
	test/all/illegal_interface.space/trace: New files.

	test: compliance_reply_bool: Add trace and simulate baseline.
	* test/all/compliance_reply_bool/baseline/simulate/compliance_reply_bool,
	test/all/compliance_reply_bool/baseline/simulate/compliance_reply_bool.stderr,
	test/all/compliance_reply_bool/trace: New files.

	simulate: Use location of initial compound for <determinism>.
	* dzn/vm/run.scm (mark-determinism-error): Truncate trace to component's
	initial-compound.
	* test/all/determinism0/baseline/simulate/determinism0.stderr,
	test/all/determinism1/baseline/simulate/determinism1.stderr: Update.

	test: compliance_reply_bool: Use canonical names.
	* test/all/compliance_reply_bool/compliance_reply_bool.dzn (I): Rename
	to...
	(ihello): ...this.  Use hello, bye instead of ia, ib.
	* test/all/compliance_reply_bool/baseline/verify/compliance_reply_bool:
	Update accordingly.
	* test/all/compliance_reply_bool/baseline/verify/compliance_reply_bool.stderr:
	New file.

	test: compliance_out_sync: Add trace and simulate baseline.
	* test/all/compliance_out_sync/baseline/simulate/compliance_out_sync,
	test/all/compliance_out_sync/baseline/simulate/compliance_out_sync.stderr,
	test/all/compliance_out_sync/trace: New files.

	test: compliance_out_sync: Use canonical names.
	* test/all/compliance_out_sync/compliance_out_sync.dzn (I): Rename to...
	(ihello): ...this.  Use hello, world instead of ia, oa.
	(compliance_out_sync): Update accordingly.
	test/all/compliance_out_sync/baseline/verify/compliance_out_sync: Update
	accordingly.

	test: compliance_out_nondet: Remove.
	* test/all/compliance_out_nondet/baseline/verify/compliance_out_nondet,
	test/all/compliance_out_nondet/baseline/verify/compliance_out_nondet.stderr,
	test/all/compliance_out_nondet/compliance_out_nondet.dzn: Remove files.
	* test/all/local.mk (REGRESSION_TESTS): Remove test.

	test: Alarm: Update trace and verify baseline, add simulate baseline.
	* test/all/Alarm/trace: Change to illegal trace.
	* test/all/Alarm/baseline/verify/Alarm,
	test/all/Alarm/baseline/verify/Alarm.stderr: Update for compliance skip.
	* test/all/Alarm/baseline/verify/IConsole,
	test/all/Alarm/baseline/verify/ISensor,
	test/all/Alarm/baseline/verify/ISiren: Remove.
	* test/all/Alarm/baseline/simulate/Alarm,
	test/all/Alarm/baseline/simulate/Alarm.stderr: New files.

	test: compliance_out_inevitable: Fix trace and add simulate baseline.
	* test/all/compliance_out_inevitable/trace: Change to compliance problem.
	* test/all/compliance_out_inevitable/baseline/simulate/compliance_out_inevitable,
	test/all/compliance_out_inevitable/baseline/simulate/compliance_out_inevitable.stderr:
	New files.

	test: range_assign: Add trace and simulate baseline.
	* test/all/range_assign/baseline/simulate/range_assign,
	test/all/range_assign/baseline/simulate/range_assign.stderr,
	test/all/range_assign/trace: New files.

	test: compliance_livelock: Add trace and simulate baseline.
	* test/all/compliance_livelock/baseline/simulate/compliance_livelock,
	test/all/compliance_livelock/baseline/simulate/compliance_livelock.stderr,
	test/all/compliance_livelock/trace: New files.

	test: Remove symlink trees.
	* HACKING (Regression test): Remove example that uses symlink tree.
	* test/async,
	test/blocking,
	test/compliance,
	test/error,
	test/external,
	test/hello,
	test/import,
	test/namespace,
	test/parser,
	test/regression,
	test/semantics: Remove directories.

	test: deadlock_blocking_optional: Add trace and simulate baseline.
	* test/all/deadlock_blocking_optional/baseline/simulate/deadlock_blocking_optional,
	test/all/deadlock_blocking_optional/baseline/simulate/deadlock_blocking_optional.stderr,
	test/all/deadlock_blocking_optional/trace: New files.

	simulate: Remove optional traces from deadlock check.
	* dzn/ast.scm (ast:optional?)[event,optional,trigger]: Add specialization.
	* dzn/simulate.scm (check-deadlock): Remove traces that contain an
	optional trigger.

	test: deadlock_reply_modeling: Add trace and simulate baseline.
	* test/all/deadlock_reply_modeling/baseline/simulate/deadlock_reply_modeling,
	test/all/deadlock_reply_modeling/baseline/simulate/deadlock_reply_modeling.stderr,
	test/all/deadlock_reply_modeling/trace: New files.

	vm: Set deadlock error when replying on a modeling event.
	* dzn/vm/step.scm (step)[reply]: For modeling event, deadlock.

	test: state_deadlock: Add trace and simulate baseline.
	* test/all/state_deadlock/state_deadlock (ihello): Fix completeness.
	* test/all/state_deadlock/baseline/simulate/state_deadlock,
	test/all/state_deadlock/baseline/simulate/state_deadlock.stderr,
	test/all/state_deadlock/trace: New files.

2021-05-21  Jan (janneke) Nieuwenhuizen  <janneke@gnu.org>

	trace: Do not lose labels when merging communications.
	* dzn/commands/trace.scm (merge-communications): Do not lose
	non-communication.

2021-04-07  Jan (janneke) Nieuwenhuizen  <janneke@gnu.org>

	trace: Support --format=json.
	Try:

	    ./pre-inst-env dzn simulate --trail=h.hello --format=trace test/all/helloworld/helloworld.dzn \
	        | ./pre-inst-env dzn trace --format=json

	    ./pre-inst-env dzn simulate --trail=p.hello --format=trace test/all/hello_system/hello_system.dzn \
	        | ./pre-inst-env dzn trace --format=json

	    ./pre-inst-env dzn simulate --format=trace test/all/Camera/Camera.dzn < test/all/Camera/trace.1 \
	        | ./pre-inst-env dzn trace --format=json

	* dzn/parse/util.scm (string->location): New procedure.
	* dzn/commands/trace.scm (q-in?): New procedure.
	(<lifeline-header>, <lifeline-activity>, <lifeline-label>,
	<lifeline-event>, <lifeline>): New types.
	(lifeline-header->scm, lifeline-activity->scm, lifeline-label->scm,
	lifeline-event->scm, lifeline->scm): New procedures.
	(trace:steps->json): Use them in new procedure.
	(trace:format-trace): Use it for format "json".
	(parse-opts): Mention "json".
	* doc/dezyne.texi (Invoking dzn trace): Document it.

2020-09-17  Jan (janneke) Nieuwenhuizen  <janneke@gnu.org>

	trace: Add --format=diagram.
	Try:

	    ./pre-inst-env dzn simulate --format=trace test/all/hello_bool/hello_bool.dzn -t h.hello \
	     | ./pre-inst-env dzn trace --format=diagram

	or with locations

	    ./pre-inst-env dzn simulate --locations --format=trace test/all/hello_bool/hello_bool.dzn -t h.hello \
	     | ./pre-inst-env dzn trace --format=diagram --locations

	    ./pre-inst-env dzn simulate --format=trace test/all/hello_system/hello_system.dzn \
	      < test/all/hello_system/trace \
	      | ./pre-inst-env dzn trace --format=diagram

	or, on a wide terminal

	    ./pre-inst-env dzn simulate --format=trace test/all/hello_system/hello_system.dzn \
	      < test/all/hello_system/trace \
	      | ./pre-inst-env dzn trace --format=diagram --internal

	    ./pre-inst-env dzn simulate --format=trace test/all/Camera/Camera.dzn \
	      < test/all/Camera/trace \
	      | ./pre-inst-env dzn trace --format=diagram

	* dzn/commands/trace.scm (parse-opts): Add -i,--internal.
	(format-trace): Pass it to...
	(trace:format-trace): ...here, using new #:internal? parameter.
	(trace-parse): Allow whitespace.
	(<communication>)[left-location,right-location]: New fields.
	(step->communication, merge-communications, step->event,
	trace:step->trace:code, serialize): Update accordingly.
	(communication-location, communication-instance->model-path,
	trail->string, instance->string, center, location-length,
	step:steps->diagram): New procedures.
	* doc/dezyne.texi (Invoking dzn trace): Document it.

2021-05-20  Jan (janneke) Nieuwenhuizen  <janneke@gnu.org>

	simulate: Support micro-step trace output.
	Using --format=trace --verbose also displays assignments, replies,
	function calls...

	* dzn/vm/report.scm (trace->steps, pc-step?, pc->step): New methods.
	(display-trace): Use it when verbose.

2021-05-20  Jan (janneke) Nieuwenhuizen  <janneke@gnu.org>

	vm: Cleanup: Remove statement->string.
	* dzn/vm/goops.scm (<labels>): New type.
	* dzn/vm/run.scm (extend-trace): Use it.  This avoids creating bare
	<node> objects.
	* dzn/vm/ast.scm (ast:label*): New method.
	* dzn/vm/report.scm (statement->string): Remove.
	(label->string): Remove bare <node> workaround.
	(end-of-trail-labels): Use them.  Remove bare <node>
	workaround.

2021-05-19  Jan (janneke) Nieuwenhuizen  <janneke@gnu.org>

	simulate: Support state reporting for every transition.
	* dzn/commands/simulate.scm (parse-opts): Add --state.
	(main): Pass it to...
	* dzn/simulate.scm (simulate): ...here, using new #:state parameter, and
	and on to...
	(simulate*): ...and here,
	(run-trail): ...and here,
	* dzn/vm/report.scm (report): ...and here,
	(display-trace): To here.  When state?, show state after every
	split-arrows pair.

	vm: Remove <trigger-return-trace>.
	* dzn/vm/goops.scm (<trigger-return-trace>): Remove.
	* dzn/vm/report.scm (statement->string): Remove it.

2021-05-17  Rutger van Beusekom  <rutger.van.beusekom@verum.com>

	simulate: Rewrite split-arrows output: --format=trace.
	The split-arrows output was inherited from the hysterical failed system
	simulator experiment.  It lacked provides the port trace, correct
	locations and suffered from accidental complexity.

	* dzn/vm/normalize.scm (normalize-compounds, transform-end-of-on,
	add-function-return): Set location on new elements.
	* dzn/vm/report.scm (trace->arrows, pc-arrow?, pc->arrow): New methods.
	(complete-split-arrows-pcs, set-trigger-locations): New procedures.
	(display-trace): Use them in full rewrite.

2021-05-14  Rutger van Beusekom  <rutger.van.beusekom@verum.com>

	vm: Refactor trace->trail.
	This prepares for a rewrite of display-trace; the split-arrows output.

	* dzn/vm/ast.scm (ast:external?)[instance, runtime:port,
	runtime:instance]: New specializations.
	(ast:provides?, ast:requires?)[runtime:instance]: New specializations.
	* dzn/vm/report.scm (trace->trail): Split-off
	(pc-event?, pc->event): These new methods.

2021-05-17  Jan (janneke) Nieuwenhuizen  <janneke@gnu.org>

	simulate: Zip provides port trace with component trace.
	This prepares for arrow trace output with correct locations.

	* dzn/simulate.scm (check-provides-compliance): Zip provides port trace
	with component trace.
	* dzn/vm/report.scm (pc-event?)[trigger-return]: Skip on requires port.

2021-05-20  Jan (janneke) Nieuwenhuizen  <janneke@gnu.org>

	vm: Do not add trigger-return statement for out-events.
	Out-events do not produce an observable "return" in the trail or
	trace (named event trace or arrow trace).  This avoids having to remove
	the return event afterwards.

	* dzn/vm/step.scm (step)[end-of-on]: Skip trigger-return for out events.

2021-04-06  Jan (janneke) Nieuwenhuizen  <janneke@gnu.org>

	trace: Pass all messages for --format=code,event.
	* dzn/commands/trace.scm (trace-parse): Exclude semicolon and newline
	from location.  Allow non-newline whitespace in messages.
	(eligible->string, header->string,
	labels->string, trail->string): New procedures.
	(step->code): Use them.
	(trace:format-trace): Do not filter-out messages for "event" format.

2021-05-21  Jan (janneke) Nieuwenhuizen  <janneke@gnu.org>

	doc: Update check recipes in 'HACKING'.
	* HACKING (Regression test): Replace broken error example with find
	hack.

2021-05-26  Jan (janneke) Nieuwenhuizen  <janneke@gnu.org>

	test: Add hello_local_bool.
	* test/all/hello_local_bool/hello_local_bool.dzn: New file.
	* test/all/local.mk (HELLO_TESTS): Add it.

2021-05-21  Jan (janneke) Nieuwenhuizen  <janneke@gnu.org>

	simulate: Support compliance_out_two: empty component trace compliance.
	When an interface event is not handled by the component, the component
	traces are empty.  This case is only tested in "compliance_out_two".  A
	trace file was missing, so we missed this case.

	* test/all/compliance_out_two/trace: New file.
	* test/all/compliance_out_two/baseline/simulate: Add baseline.
	* dzn/simulate.scm (check-provides-compliance): Support empty component
	trace.

2021-05-21  Jan (janneke) Nieuwenhuizen  <janneke@gnu.org>

	test: compliance_out_two: Use canonical names, add copyright header.
	* test/all/compliance_out_two/compliance_out_two.dzn (I): Rename to...
	(ihello): ...this.  Use hello, hi, world instead of e,f,cb.
	(compliance_out_two): Update accordingly.  Rename provides port to "h".
	* test/all/compliance_out_two/baseline/verify/compliance_out_two: Update
	accordingly.

	vm: Program-counter write nitpick.
	* dzn/vm/goops.scm (write)[program-counter]: Make run-to-completion
	state more explicit.

2021-05-19  Jan (janneke) Nieuwenhuizen  <janneke@gnu.org>

	simulate: Remove run-provides.
	* dzn/vm/run.scm (run-provides-port, run-provides): Remove.
	(run-to-completion*): Use run-to-completion* instead.

2021-05-20  Jan (janneke) Nieuwenhuizen  <janneke@gnu.org>

	test: parse_preprocessed_imported_baz: Remove generated output.
	* test/all/parse_preprocessed_imported_baz/parse_preprocessed_imported_baz.dzn:
	Remove file.
	* .gitignore: Ignore it.

2021-05-14  Jan (janneke) Nieuwenhuizen  <janneke@gnu.org>

	test: Camera: Make trace strict.
	* test/all/Camera/trace: Add missing events.

2021-05-17  Jan (janneke) Nieuwenhuizen  <janneke@gnu.org>

	test: Add semantics/indirect_in symlink.
	* test/semantics/indirect_in/: New symlink.

2021-05-12  Jan (janneke) Nieuwenhuizen  <janneke@gnu.org>

	verify: Use destruction (match) instead of car/cdr makramee.
	* dzn/verify/pipeline.scm (semi->newline): New procedure.
	(get-lts, get-trace): Use it.  Use match instead of with c[ad]+r, throw
	programming-error upon mismatch instead of failing on pair?.
	(get-line, get-info): Likewise.
	(report-ok, report-fail): Use match instead of with c[ad]+r.

2021-05-14  Jan (janneke) Nieuwenhuizen  <janneke@gnu.org>

	runtime c++: Guard setting of DZN_STATE_TRACING define.
	This allows using `-D DZN_STATE_TRACING=1' without editing the runtime.

	* runtime/c++/dzn/runtime.hh (DZN_STATE_TRACING): Only set to 0 if
	unset.

2021-05-12  Jan (janneke) Nieuwenhuizen  <janneke@gnu.org>

	verify: Do not suppress mcrl2 error messages in debug mode.
	This makes debugging mcrl2 friendlier: error messages are directly
	visible when using --debug.

	* dzn/verify/pipeline.scm (in-out:mcrl2->lps): When --debug, omit the
	--quite on mcrl22lps.

2021-05-12  Jan (janneke) Nieuwenhuizen  <janneke@gnu.org>

	verify: Use destruction (match) instead of car/cdr makramee.
	* dzn/verify/pipeline.scm (semi->newline): New procedure.
	(get-lts, get-trace): Use it.  Use match instead of with c[ad]+r, throw
	programming-error upon mismatch instead of failing on pair?.
	(get-line, get-info): Likewise.
	(report-ok, report-fail): Use match instead of with c[ad]+r.

2021-05-04  Rutger van Beusekom  <rutger.van.beusekom@verum.com>

	test: multiple_provides: Use canonical names.
	* test/all/multiple_provides/multiple_provides.dzn: Use ihello, hello,
	world.

2021-05-03  Rutger van Beusekom  <rutger.van.beusekom@verum.com>

	test: compliance_nonsynchronous_sync: Use canonical names.
	* test/all/compliance_nonsynchronous_sync/compliance_nonsynchronous_sync.dzn:
	Use ihello, iworld, hello, world.
	* test/all/compliance_nonsynchronous_sync/baseline: Update accordingly.

2021-04-30  Jan (janneke) Nieuwenhuizen  <janneke@gnu.org>

	lts: Avoid car on empty list.
	* dzn/lts.scm (assert-partially-deterministic):  Check edges before
	using CAR.
	(assert-deterministic): Likewise.

2021-05-11  Paul Hoogendijk  <paul.hoogendijk@verum.com>

	parse: Fix preprocessor line count off-by-one for more than one import.
	* dzn/parse.scm (string->file+import-content-alist): Remove bad copy of
	imported regex.
	* test/all/parse_preprocessed_imported_baz: New test.
	* test/all/local.mk (PARSER_TESTS): Add it.

2021-05-04  Jan (janneke) Nieuwenhuizen  <janneke@gnu.org>

	test: inner.space: Remove multiple provides.
	* test/all/inner.space/inner.space.dzn (ranger): Move out from...
	(space): ...here.

	test: importPath: Remove multiple provides.
	* test/all/importPath/importPath.dzn (importPath): Use I2 as requires.
	* test/all/importPath/I2.dzn (I2): Update accordingly.

2021-04-26  Jan (janneke) Nieuwenhuizen  <janneke@gnu.org>

	test: async_calling_context: Support scheme.
	* test/all/async_calling_context/scheme/language.dzn,
	* test/all/async_calling_context/scheme/main.scm: New files.
	* test/all/local.mk (REGRESSION_TESTS): Add async_calling_context.

	test: async_calling_context: Support cs.
	* dzn/templates/cs/async-req-event-slot@trigger: Add out-ref-local.
	* test/all/async_calling_context/async_calling_context.dzn: Move dollars to...
	* test/all/async_calling_context/c++/language.dzn: ...this new file.
	* test/all/async_calling_context/dzn/language.dzn,
	* test/all/async_calling_context/cs/main.cs: New files.

2021-04-21  Rutger van Beusekom  <rutger.van.beusekom@verum.com>

	test: Add async_calling_context: feature interaction.
	Fixes <https://gitlab.com/dezyne/dezyne-issues/-/issues/20>.
	Reported by Michael van de Ven <michael.van.de.ven@thermofisher.com>.

	* dzn/ast.scm (ast:async?)[action]: New specialization.
	* dzn/code.scm (code:arguments)[action]: Use it to skip adding
	calling-context for async clr.
	* dzn/code/c++.scm (c++:formal-type)[port]: Add code:formals
	indirection, to add calling-context if necessary.
	* dzn/templates/c++.scm (formal-type): Use it in new template.
	* dzn/templates/c++/async-clr-event-slot@trigger: Remove formals.
	* dzn/templates/dzn.scm (formal-type): Add missing comma-infix.
	* test/all/async_calling_context: New test.

2021-04-21  Jan (janneke) Nieuwenhuizen  <janneke@gnu.org>

	build: Add version comment when installing c runtime.
	* Makefile.am (install-data-hook): Add case for c.

2021-04-21  Jan (janneke) Nieuwenhuizen  <janneke@gnu.org>

	test: Add skip to META for failing c tests.
	We use the XFAIL mechanism only for supported languages.

	* test/all/alpha_shadow_port/META,
	test/all/hello_multiple_provides_requires/META,
	test/all/hello_out_data/META,
	test/all/multiple_provides/META: New file.
	* test/all/data_full/META,
	test/all/hello_injected/META: Skip c.

2021-04-20  Rutger van Beusekom  <rutger.van.beusekom@verum.com>

	c: Refactor foreign end-point.
	* dzn/code/c.scm (c:base-or-not): Rename to...
	(c:foreign-instance): ...this.
	* dzn/templates/c.scm (base-or-not-left, base-or-not-right): Remove.
	(base-or-not): Rename to...
	(foreign-instance): ...this.
	* dzn/templates/c/binding-instance@end-point: Use it.
	* dzn/templates/c/foreign-instance@end-point: New file.
	* dzn/templates/c/base-or-not-left@binding,
	dzn/templates/c/base-or-not-right@binding,
	dzn/templates/c/base-or-not-left@end-point,
	dzn/templates/c/base-or-not-right@end-point,
	dzn/templates/c/base-or-not@binding,
	dzn/templates/c/base-or-not@end-point: Remove.

	c: Remove method-prototype duplication.
	* dzn/templates/c.scm (method-prototype): Use standard accessor.
	(call-in-trigger-foreign): Remove.
	(method-prototypes): Rename to...
	(formal-method-prototype): ...this.
	* dzn/templates/c/method-prototypes@trigger: Remove.
	* dzn/templates/c/header-model@foreign: Use method-prototype.
	* dzn/templates/c/method-prototypes@trigger: Rename to...
	* dzn/templates/c/formal-method-prototype@trigger: ...this.

2021-04-20  Rutger van Beusekom  <rutger.van.beusekom@verum.com>

	c: Use model namespace prefix throughout.
	Some functions did not use the model namespace and instead used the
	model name as a suffix.

	* dzn/templates/c/call-in-trigger-foreign@trigger,
	dzn/templates/c/call-in-trigger-prototype@trigger,
	dzn/templates/c/call-in-trigger@trigger,
	dzn/templates/c/call-out-trigger-prototype@trigger,
	dzn/templates/c/call-out-trigger@trigger,
	dzn/templates/c/expression@call,
	dzn/templates/c/functions-declarations@function,
	dzn/templates/c/functions@function,
	dzn/templates/c/helper-in-trigger-prototype@trigger,
	dzn/templates/c/helper-in-trigger@trigger,
	dzn/templates/c/method-prototype@trigger,
	dzn/templates/c/method-prototypes@trigger,
	dzn/templates/c/method@trigger,
	dzn/templates/c/trigger-initialization@trigger: Use #x:model-parent-name _
	namespace prefix.
	* test/all/foreign_import_system/c/Foreign.c (w_world_Foreign): Rename
	to...
	(Foreign_w_world): ...this
	* test/all/foreign_optional/c/Foreign.c (w_world_Foreign): Rename
	to...
	(Foreign_w_world): ...this
	* test/all/foreign_reply/c/Foreign.c (w_world_Foreign): Rename
	to...
	(Foreign_w_world): ...this
	* test/all/hello_foreign/c/Foreign.c (w_world_Foreign): Rename
	to...
	(Foreign_w_world): ...this
	* test/all/hello_foreign_file/c/stranger.c (w_world_stranger): Rename
	to...
	(stranger_w_world): ...this.
	* test/all/hello_foreign_path/c/Foreign.c (w_world_Foreign): Rename
	to...
	(Foreign_w_world): ...this
	* test/all/hello_namespace_foreign/c/library_foreign.c (w_world_library_foreign):
	Rename to ...
	(library_foreign_w_world): ...this.

2021-04-20  Rutger van Beusekom  <rutger.van.beusekom@verum.com>

	c: Revisit system bindings.
	This rewrites system bindings that only somewhat worked for
	single-system cases.  It also removes redundant port storage in systems
	and makes port structs uniform.

	* dzn/code/c.scm (c:in-events?, c:out-events?, c:filter-in,
	c:filter-out): Remove.
	(internal-binding?): New procedure.
	(c:binding-provided, c:binding-required, c:external-binding,
	c:internal-binding): New methods.
	* dzn/templates/c.scm (binding-provided, binding-required,
	system-port-connect, connect-internal-ports):): Use them to fix system
	bindings.
	(system-port-declaration): New template.
	* dzn/templates/c.scm (in-event-definer, out-event-definer): Use
	standard AST accerrors.
	(in-event-struct-declare, out-event-struct-declare): Remove.
	* dzn/templates/c/connect-internal-ports@bindings: Remove indirection.
	* dzn/templates/c/header-model@interface: Always define in- and out
	structs.
	* dzn/templates/c/in-event-struct-declare@model,
	dzn/templates/c/out-event-struct-declare@model: Remove.
	* dzn/templates/c/source-model@system: Use struct-by-value assignment
	instead of explicit memcpy.  Remove port initialization.  Use
	connect-internal-ports.
	* dzn/templates/c/system-port-connect@binding: Update to fix binding.
	Remove connect-internal-ports.
	* dzn/templates/c/system-port-declaration@port: New file.
	* test/all/hello_system/trace: Add inevitable/requires trace.

2021-04-19  Jan (janneke) Nieuwenhuizen  <janneke@gnu.org>

	c: Fix log_flush warning.
	* dzn/templates/c/main-header@component (log_flush): Use closure.f's
	formal parameter list.

	c: Remove getline warning.
	* dzn/templates/c/main-includes@component: Enable _GNU_SOURCE extensions
	for getline.

	c: Whitepace cleanups.
	* dzn/code/c.scm (c:components): New method.
	* dzn/templates/c.scm (source-model): Use it.
	* dzn/templates/c/main@system: Remove, symlink to...
	* dzn/templates/c/main@component: ...this.
	* dzn/templates/c/source-model@interface: Remove.
	* dzn/templates/c/header-model@component,
	* dzn/templates/c/header@root,
	* dzn/templates/c/source-model@component,
	* dzn/templates/c/source@root: Indent template invocations to remove
	white space.
	* dzn/templates/c/call-in-trigger-foreign@trigger,
	dzn/templates/c/call-in-trigger@trigger,
	dzn/templates/c/call-out-trigger@trigger,
	dzn/templates/c/functions@function,
	dzn/templates/c/initialize@component,
	dzn/templates/c/initialize@foreign,
	dzn/templates/c/main-fill-event-map@component,
	dzn/templates/c/main-header@component: Add missing space.

	c: Remove stray TABs.
	* dzn/templates/c/enum-field-else-if@enum-field,
	dzn/templates/c/initialize@foreign,
	dzn/templates/c/main-content@component,
	dzn/templates/c/main-header@component,
	dzn/templates/c/provided-event-tracing-initialization@port,
	dzn/templates/c/required-event-tracing-initialization@port,
	dzn/templates/c/source-enum-string-function-definition@enum: Do not use TAB.

	test: hello_out_data: Rename from hellooutparam.
	* test/regression/hellooutparam: Rename to...
	* test/regression/hello_out_data: ...this.

	test: hello_namespace_foreign: Update for c.
	* test/all/hello_namespace_foreign/c/library_foreign.c,
	test/all/hello_namespace_foreign/c/library_foreign.h: New files.

2021-04-19  Jan (janneke) Nieuwenhuizen  <janneke@gnu.org>

	test: hello_foreign_file: Update for c.
	Test still fails.

	* test/all/hello_foreign_file/c/stranger.h,
	* test/all/hello_foreign_file/c/stranger.c: Update.
	* test/all/hello_foreign_file/META: Skip c.

2021-04-19  Jan (janneke) Nieuwenhuizen  <janneke@gnu.org>

	test: Update META for async, blocking.
	* test/all/async_shell/META,
	test/all/blocking_shell/META: Skip "c".
	* test/all/blocking_function_reply/META,
	test/all/blocking_if_reply/META,
	test/all/blocking_local/META,
	test/all/indirect_blocking_multiple_external_out/META,
	test/all/indirect_blocking_out/META: Skip c, javascript.

	test: foreign_import_system: Resurrect for c.
	* test/all/foreign_import_system/c/foreign.h: Rename to...
	* test/all/foreign_import_system/c/Foreign.h: ...this.  Update naming.
	* test/all/foreign_import_system/c/foreign.c: Rename to...
	* test/all/foreign_import_system/c/Foreign.c: ...this.  Update naming.

	test: dollars: Resurrect for c.
	* test/all/dollars/c/includes.dzn: New file.

	test: hello_foreign_path: Resurrect for c.
	* test/all/hello_foreign_path/c/Foreign.c: Fix include.

2021-04-19  Jan (janneke) Nieuwenhuizen  <janneke@gnu.org>

	c: Resurrect hello_data.
	* dzn/code/c.scm (c:comma): New method.
	* dzn/templates/c.scm (c-comma): Use it in new template.
	(method-pararm): Rename to...
	(method-formals): ...this.  Use formal-grammar.
	(call-in-function-extra-arguments): Remove.

	* dzn/templates/dzn/comma-infix,
	dzn/templates/c/formal-grammar: Add missing symlinks.
	* dzn/templates/c++/expression@data: Symlink to c++ instead of dzn.
	* dzn/templates/c/call-in-function-extra-arguments@ast,
	dzn/templates/c/call-in-function-extra-arguments@formal:
	* dzn/templates/c/helper-function-extra-arguments@ast: Remove.
	* dzn/templates/c/helper-function-extra-arguments@formal: Rename to...
	* dzn/templates/c/helper-function-arguments@formal: ..this.
	* test/all/hello_data/hello_data.dzn (hello_data): Move local dummy to
	member.  Use it in call.
	* dzn/templates/c/call-in-trigger-foreign@trigger,
	dzn/templates/c/call-in-trigger@trigger: Use #x:comma, #x:code-arguments.

2021-04-16  Rutger van Beusekom  <rutger.van.beusekom@verum.com>

	cs: Suppress unused warning.

2021-04-16  Jan (janneke) Nieuwenhuizen  <janneke@gnu.org>

	doc: Update guile-json requirement.
	* doc/dezyne.texi (Requirements): Update to guile-json-4.

2021-04-13  Rutger van Beusekom  <rutger.van.beusekom@verum.com>

	container: c++/cs: Test shells without additional threads.
	* runtime/c++/dzn/container.hh (match): Check for Factor-out...
	(trail_expect): ...this.
	(match_return): Use it.  Remove lock.
	(operator()): Have requires events bypass the pump.
	* runtime/cs/dzn/container.cs: Likewise.
	* test/all/blocking_shell/cs/main.cs (event_map): Remove threds.
	Add sleep for p.outer.foo.
	* test/all/blocking_shell/cs/container.cs: Remove.
	* test/all/blocking_shell/c++/main.cc: Regenerate.
	(event_map): Add sleep for p.outer.foo.
	* test/all/blocking_shell/c++/container.hh: Remove.

2021-04-26  Jan (janneke) Nieuwenhuizen  <janneke@gnu.org>

	build: Previous release is 2.12.0.
	* Makefile.am (--previous-version): Update to 2.12.0.

2021-06-15  Jan (janneke) Nieuwenhuizen  <janneke@gnu.org>

	doc Migrate to Libera.Chat.
	* README (Contact): Update to Libera.Chat.
	* ROADMAP: Likewise.
	* doc/dezyne.texi (Contributing): Likewise.

2021-04-15  Jan (janneke) Nieuwenhuizen  <janneke@gnu.org>

	doc: Post-release update.
	* doc/announce/ANNOUNCE-2.12.0: Update hashes.

	guix: dezyne: Update to 2.12.0.
	* guix/gnu/packages/dezyne.scm (dezyne)[source]: : Update to 2.12.0.

	doc: Add ANNOUNCE-2.12.0.
	* doc/announce/ANNOUNCE-2.12.0: New file.

	doc: Update 'ROADMAP'.
	* ROADMAP (Release 2.12): Remove review items.  Move XFAIL bugs to...
	(Release 2.13): ...here.

2021-04-15  Rutger van Beusekom  <rutger.van.beusekom@verum.com>

	doc: Updates to `NEWS', add references.
	* NEWS: Minor additions/fixes, including references to gitlab.

2021-04-13  Jan (janneke) Nieuwenhuizen  <janneke@gnu.org>

	guix: dezyne: Update to 2.12.0.rc3.
	* guix/gnu/packages/dezyne.scm (dezyne)[source]: : Update to 2.12.0.rc3.

	test: Typo in build.cs.make.
	* test/lib/build.cs.make (RUNTIME_SOURCES): Assign to this instead of
	OUT_SOURCES.

2021-02-12  Jan (janneke) Nieuwenhuizen  <janneke@gnu.org>

	doc: Update 'ROADMAP'.
	* ROADMAP (Release 2.12): Move done items...
	(DONE): ...here.
	(Release 2.13): New section.

2021-03-20  Jan (janneke) Nieuwenhuizen  <janneke@gnu.org>

	doc: Update `NEWS'.
	* NEWS (Changes in 2.12.0 since 2.11.0): New section.

2021-04-10  Jan (janneke) Nieuwenhuizen  <janneke@gnu.org>

	scheme: Fix async with a synchronous callback in a shell system.
	* dzn/templates/scheme/declare-async-req-method@trigger: Do not call ack
	directly, use event slot.  Do not flush.
	* runtime/scheme/dzn/runtime.scm (handle): Rename to ...
	(dzn:handle): ...this, and export.
	(call-in, defer, dzn:flush): Update callers.
	* dzn/templates/scheme/declare-async-method@trigger: New file avoid
	logging of `ack'.
	* dzn/templates/scheme/async-port-instance-declare@port: Use it.
	* dzn/templates/scheme.scm (declare-async-method): Declare it.
	* test/all/local.mk (REGRESSION_TESTS): Add async_shell.

2021-04-09  Rutger van Beusekom  <rutger.van.beusekom@verum.com>

	c++/cs: Fix async with a synchronous callback in a shell system.
	Reported by Joran Jessurun <joran.jessurun@gmail.com> via IRC.

	* test/all/async_shell: New test.
	* dzn/templates/c++/async-req-event-slot@trigger: Do not call ack
	directly, use event slot.  Remove flush.
	* dzn/templates/cs/async-req-event-slot@trigger: Likewise.
	* dzn/templates/c++/async-event-slot@trigger: New file to avoid logging
	of 'ack'.
	* dzn/templates/cs/async-event-slot@trigger: Likewise.

2021-04-13  Jan (janneke) Nieuwenhuizen  <janneke@gnu.org>

	vm: Small naming cleanup.
	* dzn/vm/run.scm (extend-trace): Use step instead of stapje.

2021-04-12  Jan (janneke) Nieuwenhuizen  <janneke@gnu.org>
	    Rutger van Beusekom  <rutger.van.beusekom@verum.com>

	vm: Fix flushing.
	Remove static <flush> from the ast.  Always flush self, and only flush
	other instance if it is not handling.  Also, flush before block.

	* dzn/vm/goops.scm (<flush>): Remove.
	* dzn/vm/normalize.scm (transform-action): Remove.
	(vm:normalize): Remove it.
	* dzn/vm/step.scm (begin-step)[runtime:component]: Set handling.
	(step)[flush]: Remove.
	[block]: Flush before blocking.
	[end-of-on]: Only flush other if not 'handling?'.  Also flush self.
	* test/all/system_flush: New test.
	* test/all/local.mk (REGRESSION_TESTS): Add it.

2021-04-12  Jan (janneke) Nieuwenhuizen  <janneke@gnu.org>

	vm: Fix parent of async q-trigger.
	* dzn/vm/step.scm (step-async-action-down): Fix parent.
	* dzn/vm/util.scm (rtc-trigger, rtc-port): New methods.

2021-04-09  Jan (janneke) Nieuwenhuizen  <janneke@gnu.org>

	peg: Avoid event formals leak into defined variables.
	* dzn/parse/peg.scm (peg:parse)[event]: Add enter-frame, exit-frame
	around formals.
	* test/all/local.mk (PARSER_TESTS): Add it.  Also add missing
	undefined/component/argument.
	* dzn/ast.scm (ast:type): Use and=> rather than compose.
	* test/all/undefined/component/argument_seen: New test.

2021-04-10  Jan (janneke) Nieuwenhuizen  <janneke@gnu.org>

	test: undefined/component/argument: Enable; update baseline.
	The current output seems much less nice than the baseline advertised;
	this was the consequence of

	    abf6b714b35b00149af368670c883fa4f6d6d3dd
	    peg: Fix deep backtracking on component-state.dzn.

	* test/all/local.mk (PARSER_TESTS): Add undefined/component/argument.
	* test/all/undefined/component/argument/baseline/verify/argument.stderr:
	Update baseline.

2021-04-12  Paul Hoogendijk  <paul.hoogendijk@verum.com>

	verify-pipeline: Remove unused parameter.
	* dzn/verify/pipeline.scm (mcrl2:verify-compliance): Remove aut parameter.
	(mcrl2:verify-component-asserts): Update caller.

	explore: Remove supefluous string-hash avoiding potential collisions.
	* dzn/explore.scm (pc->state-number): Remove string-hash.
	(pc->rtc-lts): Likewise.

2021-04-10  Jan (janneke) Nieuwenhuizen  <janneke@gnu.org>

	guile-3.0: Outline pure-funcq.
	This fixes memoization on Guile-3.0.  In Guile-3.0, inner procedures get
	a different pointer address on every invocation.

	* dzn/lts.scm (memoizing-cleanup-label): Move out from...
	(cleanup-aut): ...here.
	* dzn/verify/pipeline.scm (unmemoized-verify-pipeline): Move out from
	...
	(verify-pipeline): ...here.
	(memoizing-verify-pipeline): New procedure.
	(verification:partial): Use unmemoized-verify-pipeline because we want
	stdout? side-effect.

2021-04-08  Paul Hoogendijk  <paul.hoogendijk@verum.com>

	parse: Extend tree:record with missing record types.
	* dzn/parse/tree.scm (tree:record): Add missing types.

	parse: Make --list-models more robust.
	* dzn/commands/parse.scm (list-models): Use fall-back parsing and add
	exception handler.

2021-04-07  Paul Hoogendijk  <paul.hoogendijk@verum.com>

	parse: Have --list-models also show type.
	* dzn/parse/tree.scm (tree?): Change warn to programming warning.
	(tree:component?, tree:foreign? tree:system?): New procedures.
	* dzn/commands/parse.scm (list-models): Use them in new procedure.
	(main): Use it for --list-models.
	* doc/dezyne.texi (Invoking dzn parse): Document it.
	(Invoking dzn): Add missing commands.

2021-04-08  Rutger van Beusekom  <rutger.van.beusekom@verum.com>

	parse: List each model in file.
	* dzn/commands/parse.scm (main): Add list-models option.
	* dzn/parse/tree.scm (tree->context): New function.
	(context:collect): New function.
	(context:full-name): New function.
	(context:dotted-name): New function.
	(tree:model*): New function.

2021-04-08  Jan (janneke) Nieuwenhuizen  <janneke@gnu.org>

	verify: Oops, typo in MinGW dzn command.
	* dzn/config.scm.in (%dzn): Oops, remove `%' typo/thinko.

	simulate: Fix for eligible events with --format=trace.
	* dzn/vm/report.scm (report): Oops, handle <end-of-trail> without AST.

	build: Previous release is 2.11.0.
	* Makefile.am (gen-announce): Update to 2.11.0.

2021-04-06  Rutger van Beusekom  <rutger.van.beusekom@verum.com>

	cs: Support blocking_shell
	* test/all/blocking_shell/META: Enable cs execution.
	* test/all/blocking_shell/cs/main.cs: Execute provides in events in
	parallel.
	* test/all/blocking_shell/cs/container.cs: Synchronize additional
	threads with a sleep.
	* test/lib/build.cs.make (OUT_SOURCES): Enable overriding container.cs.

	cs: Add traceQin and traceQout.
	* dzn/templates/cs/event-slot@trigger: Format and add trace-q-out.
	* dzn/templates/cs/trace-q-out@trigger: See above.
	* runtime/cs/dzn/runtime.cs: Trace Q in, add traceQin and traceQout.

2021-04-05  Jan (janneke) Nieuwenhuizen  <janneke@gnu.org>

	guix: dezyne: Update to 2.12.0.rc2.
	* guix/gnu/packages/dezyne.scm (dezyne)[source]: : Update to 2.12.0.rc2.

	language: Support lookup of import.
	* dzn/parse/lookup.scm (resolve-import): New procedure.
	(context-lookup-definition): Use it for import lookups.
	(lookup-definition): Allow import lookups.  Handle 'root' as result.
	* dzn/commands/language.scm: Support looking-up imports.
	* test/dzn/language.scm (resolve-file): New procedure.
	(file-name->text): Use it.
	(test-lookup): Use it.
	("lookup import"): Test import lookup.

2021-04-02  Rutger van Beusekom  <rutger.van.beusekom@verum.com>

	verify: Support --out for large files.
	This fixes running pipelines of zero or one commands with large output.

	* dzn/pipe.scm (pipeline): Add #:output-port parameter.
	(pipeline->port): Use it in new function.
	* dzn/verify/pipeline.scm (verify-pipeline): Add #:stdout? parameter.
	(verification:partial): Use it to eliminate read-string and display.

2021-04-02  Paul Hoogendijk  <paul.hoogendijk@verum.com>

	verify: Perform label clean-up after ltsconvert.
	LTSs can become very large (tens of MBs).  After running "ltsconvert",
	the LTS can be orders of magnitute smaller, speeding up the cleanup.

	* dzn/verify/pipeline.scm (in-out.pipeline): Rename "makreel-aut" to
	"maut".  Introduce "maut-weak-trace" and "maut-dpweak-bisim" that take
	the raw makreel input.
	(in-out:makreel-aut->aut): Rename to...
	(in-out:maut->aut): ...this.

2021-04-02  Paul Hoogendijk  <paul.hoogendijk@verum.com>

	explore: Add end-line and end-column to location.
	* dzn/explore.scm (state-diagram->json): Add end-line and end-column to
	location.

2021-04-02  Paul Hoogendijk  <paul.hoogendijk@verum.com>

	verify: Memoize verify-pipeline call.
	This has verify-compliance use the already memoized LTS produced by
	verify-component.

	* dzn/verify/pipeline.scm (verify-pipeline): Memoize.
	(in-out:dzn->aut+provides-aut options): Use "verify-component" pipeline
	instead of "aut-failures".

2021-04-02  Paul Hoogendijk  <paul.hoogendijk@verum.com>

	lts: Memoize cleanup-label call.
	* dzn/lts.scm (cleanup-aut)[cleanup-memo]: Wrap cleanup-label in
	pure-funcq.

	explore: Add working-directory to json output.
	* dzn/goops.scm (.working-directory): Export accessor.
	* dzn/explore.scm (state-diagram): Use it to pass working-directory
	to...
	(state-diagram->json): ...here, using new optional working-directory
	parameter.  Add it to output.

2021-04-02  Jan (janneke) Nieuwenhuizen  <janneke@gnu.org>

	json: Keep foreigns.
	This fixes ctrl-clicking on foreigns in Dezyne-IDE's system diagram.

	* dzn/normalize.scm (remove-location): Keep foreigns.

2021-03-30  Jan (janneke) Nieuwenhuizen  <janneke@gnu.org>

	explore: Remove "sut" prefix from actions, remove void-return events.
	* dzn/explore.scm (rtc-lts->state-diagram): Remove "sut" prefix from
	actions, remove void-return events.

	explore: Cleanup state label.
	* dzn/vm/util.scm (state->string)[state]: Remove toplevel "sut=".  Remove "sut"
	prefix from state.  Return #f if no state found.
	(state->string)[system-state]: Use filter-map to remove empty states.

	guix: dezyne: Update to 2.12.0.rc1.
	* guix/gnu/packages/dezyne.scm (dezyne)[source]: : Update to 2.12.0.rc1.

	test: run-simulate skips simulate.
	* test/dzn/dzn.scm (run-simulate): Check for simulate skip.

	parse: Fix off-by-one line location in pre-processed imports.
	* dzn/parse.scm (string->file+import-content-alist): Include newline in
	imported-match.
	* test/all/parse_locations/baseline/parse_locations,
	* test/all/parse_preprocessed_imported_bar/baseline/verify/parse_preprocessed_imported_bar.stderr:
	Update baseline.

2021-03-30  Paul Hoogendijk  <paul.hoogendijk@verum.com>
	    Rutger van Beusekom  <rutger.van.beusekom@verum.com>
	    Jan (janneke) Nieuwenhuizen  <janneke@gnu.org>

	parse: Add working-directory to preprocess output and ast.
	* dzn/parse.scm (file->stream): Add #:dir to preprocess output.
	(file+import-content-alist): Return dir as second value.
	(string->file+import-content-alist): Likewise.
	(string->ast, parse-tree-alist->ast): Add #:working-directory parameter.
	Pass it to...
	* dzn/parse/ast.scm (parse-tree->ast): ...here.  Add #:working-directory
	parameter.  Set it to ...
	* dzn/goops.scm (<root>)[working-directory): ...this new field.
	* test/all/parse_locations/run: Uniquify working-directory.  Update
	baseline.

2021-03-30  Jan (janneke) Nieuwenhuizen  <janneke@gnu.org>

	normalize: Use record for triples.
	* dzn/normalize.scm (t-triple, t-on, t-guard, t-blocking, t-statement):
	Replace with...
	(<triple>): ...this new type.  Update callers.
	(triples:event-traversal): Rename to ...
	(normalize:event): ...this.
	 (triples:state-traversal): Rename to ...
	(normalize:state): ...this.
	(root->): Update caller.
	* dzn/code.scm (code:om): Update caller.
	* dzn/code/cs.scm (cs:om): Likewise.
	* dzn/code/makreel.scm (makreel:om): Likewise.

	wfc: Outline variable check.
	* dzn/wfc.scm (wfc)[model, variable]: Extract from...
	(wfc)[variable]: ...here.

	Remove Gash import and support for (unpatched) Guile-2.2.
	* gash/pipe.scm: Move to ...
	* dzn/pipe.scm: ...here.
	(forked:pipeline, forked:pipeline->string) Remove, i.e., always depend
	on piped-process.
	(piped-process:pipeline): Rename to...
	(pipeline): ...this.
	(piped-process:pipeline->string): Rename to...
	(pipeline->string): ...this.
	(pipeline*, pipeline*->string): New procedures.
	* configure.ac: Check for pipeline in (ice-9 popen).
	* gash/io.scm,
	gash/job.scm,
	gash/util.scm: Remove.
	* gash/local.mk: Remove.
	* Makefile.am: Remove include.
	* debian/control (Build-Depends): Update to Guile 3.0.
	* doc/dezyne.texi (Requirements): Likewise.

	Update 'AUTHORS'.
	* AUTHORS: Add list of imported files.

	dzn: Simplify command listing.
	* dzn/shell-util.scm (directory-exists?): Return DIR instead of #t.
	* dzn/shell-util.scm (list-directory): New procedure.
	* dzn/script.scm (parse-opts): Use it.

	explore: Handle tau events in state-diagram.
	* dzn/explore.scm (state-diagram->dot, state-diagram->json): Handle tau
	events.

	test: Add silent_unused_out.
	* test/all/silent_unused_out/silent_unused_out.dzn: New file.
	* test/all/local.mk (REGRESSION_TESTS): Add it.

2021-03-30  Rutger van Beusekom  <rutger.van.beusekom@verum.com>

	explore: Handle model-not-found and file without model gracefully.

2021-03-30  Jan (janneke) Nieuwenhuizen  <janneke@gnu.org>

	guix: dezyne: Update to 2.12.0.rc0.
	* guix/gnu/packages/dezyne.scm (dezyne)[source]: : Update to 2.12.0.rc0.

2021-03-30  Jan (janneke) Nieuwenhuizen  <janneke@gnu.org>
	    Rutger van Beusekom  <rutger.van.beusekom@verum.com>.

	vm: Remove global for livelock check.
	* dzn/vm/run.scm (livelock-limit): Rename to...
	(%livelock-trace-threshold): ...this, and change to a parameter.
	(livelock?): Update accordingly.

2021-03-30  Paul Hoogendijk  <paul.hoogendijk@verum.com>

	vm: Only check livelock for traces above a certain (dynamic) threshold.
	This fixes performance degradation.

	* dzn/vm/run.scm (livelock-limit): New global.  (livelock?): Use it as
	trace-threshold.  Return the livelock trace.
	(extend-trace): Use it.
	* dzn/explore.scm: Likewise.

2021-03-30  Paul Hoogendijk  <paul.hoogendijk@verum.com>

	test: Add missing parenthesis to function call in interface.

	vm: Avoid duplicate transactions for multiple actions on modeling event.
	* dzn/vm/run.scm (run-requires): Have first action on trace must match.

2021-03-30  Jan (janneke) Nieuwenhuizen  <janneke@gnu.org>

	vm: Memoize run-to-completion when exploring.
	* dzn/vm/run.scm (run-to-completion)[event]: Rename to...
	(run-to-completion-unmemoized): ...this.
	(run-to-completion): New generic procedure.  Memoize result
	when (%exploring?).
	* dzn/vm/run.scm (run-flush, run-async-event): Use
	run-to-completion-unmemoized.

	test: Add illegal_garbage.
	* test/all/illegal_garbage: New test.
	* test/all/local.mk (REGRESSION_TESTS): Add it.

	simulate: Exit at toplevel.
	* dzn/vm/report.scm (report): Do not exit, return status.
	* dzn/simulate.scm (run-trail): Return last status.
	* dzn/commands/simulate.scm (main): Exit here instead.

2021-03-30  Rutger van Beusekom  <rutger.van.beusekom@verum.com>

	simulate: Support compliance in blocking context.
	The compliance was disabled for blocking contexts, as compliance can
	only be checked after a system-run-to-completion, i.e., when the
	component is unblocked again.  This patch keeps the trail while in
	blocking context and postpones the compliance check until
	system-run-to-completion.

	* dzn/vm/goops.scm (<end-of-trail>): Inherit from <status> instead of
	<error>.
	* dzn/vm/report.scm (initial-error-message): Remove dead code.
	(final-error-messages): Only display info for <end-of-trail> when AST is
	set, i.e. when we stop midway a run-to-completion.
	(report): Do not exit; return status.
	* dzn/commands/simulate.scm (main): Instead, exit here.
	* dzn/simulate.scm (check-provides-compliance): For blocking context,
	use first event on trail.
	(run-component): Remove.  Move compliance check...
	(run-sut): ...here.  Change signature to take pc+blocked trace instead
	of pc.
	(run-trail): Update accordingly: For blocking context, do not report
	intermediate trail; instead hand it back to run-sut.
	* test/all/local.mk (XFAIL_TESTS): Remove compliance_blocking_out.

2021-03-30  Jan (janneke) Nieuwenhuizen  <janneke@gnu.org>

	simulate: Report eligible events.
	* dzn/simulate.scm (event-traces-alist, is-not-deadlock?): New
	methods, factor-out from...
	(check-deadlock): ...here.
	(eligible-labels): New method.
	(run-sut): Remove #:deadlock-check? parameter, move deadlock check...
	(run-trail): ...here.  Use eligible-labels to forward eligible to ...
	* dzn/vm/report.scm (report): ...here, using new #:eligible
	parameter.  Report eligible events at end of trace.

2021-03-30  Rutger van Beusekom  <rutger.van.beusekom@verum.com>
	    Jan (janneke) Nieuwenhuizen  <janneke@gnu.org>

	explore: Refactor; factor-out duplicated explore.
	* dzn/explore.scm (pc->state-number): New procedure.
	(pc->rtc-lts): New procedure, factor-out from...
	(explore): ...this.  Rename to...
	(rtc-lts->state-diagram): ...this and rewrite to take an rtc-lts.
	(state-diagram->dot): Update accordingly.
	(state-diagram->json): Likewise.
	(explore-lts): Rename to...
	(rtc-lts->lts): ...this, remove exploration and and rewrite to work take
	an rtc-lts.
	(graph->lts): Rename to...
	(lts->aut): ...this and rewrite.
	(lts, state-diagram): Update accordingly.
	* dzn/vm/util.scm (pc->string): Split <error> into <illegal> and
	<deadlock>.

2021-03-30  Jan (janneke) Nieuwenhuizen  <janneke@gnu.org>

	test: Enable queuefull tests in run-lts, run-simulate.
	    * test/dzn/dzn.scm (run-lts, run-simulate): Do not skip queuefull.

	test: Skip lts for failing queuefull tests.
	* test/all/queuefull_component0/META,
	test/all/queuefull_external_sync/META: Skip lts.

2021-03-30  Jan (janneke) Nieuwenhuizen  <janneke@gnu.org>

	vm: Support queue-size.
	TODO
	     FAIL: test/all/illegal_external (LTS)
	     FAIL: test/all/illegal_external_nonsynchronous2 (LTS)
	     FAIL: test/all/livelock_component2 (LTS)
	     FAIL: test/all/livelock_synchronous (LTS)
	     FAIL: test/all/livelock_synchronous2
	    +FAIL: test/all/queuefull_component0 (LTS)
	    +FAIL: test/all/queuefull_external_sync (LTS)

	* dzn/vm/goops.scm (<queue-full-error>)[instance]: New field.
	* dzn/vm/report.scm (initial-error-message): Use it.
	* dzn/vm/util.scm (%queue-size): New parameter.
	(enqueue): Use it and add ast parameter.
	(enqueue-external): Use it.
	* dzn/vm/step.scm (step-action-up): Update callers.
	* dzn/commands/explore.scm (parse-opts): Support -q,--queue-size=SIZE.
	(main): Pass it to...
	* dzn/explore.scm (state-diagram, lts): ...here, using new #:queue-size
	parameter.  Use it to set %queue-size.
	* dzn/commands/simulate.scm (parse-opts): Support -q,--queue-size=SIZE.
	(main): Pass it to...
	* dzn/simulate.scm (simulate): ...here, using new #:queue-size
	parameter.  Pass it to...
	(simulate): ...here, using new #:queue-size
	parameter.  Use it to set %queue-size.
	* doc/dezyne.texi (Invoking dzn explore),
	(Invoking dzn simulate): Document it.

2021-03-30  Jan (janneke) Nieuwenhuizen  <janneke@gnu.org>

	test: queuefull_component0: Add trace and simulate baseline.
	* test/all/queuefull_component0/queuefull_component0.dzn (queuefull_component0):
	Rewrite in hello meme.
	* test/all/queuefull_component0/baseline/verify/queuefull_component0: Update.
	* test/all/queuefull_component0/trace,
	test/all/queuefull_component0/baseline/simulate/queuefull_component0,
	test/all/queuefull_component0/baseline/simulate/queuefull_component0.stderr:
	New files.

2021-03-30  Jan (janneke) Nieuwenhuizen  <janneke@gnu.org>

	simulate: Add --format=trace.
	This adds detailed simulator output trace in "broken arrow" format,
	a.k.a. micro trace:

	    (header ((h) ihello provides) ((sut) helloworld component) ((w) iworld requires))
	    (state ((h)) ((sut)) ((w)))
	    <external>.h.hello -> ...
	    ... -> sut.h.hello
	    sut.w.world -> ...
	    ... -> <external>.w.world
	    ... <- <external>.w.return
	    sut.w.return <- ...
	    ... <- sut.h.return
	    <external>.h.return <- ...
	    (state ((h)) ((sut)) ((w)))
	    (trail h.hello w.world w.return h.return)
	    (eligible h.hello)

	that can optionally be prefixed by Dezyne source code locations.

	* dzn/vm/goops.scm (<trigger-return-trace>): New class.
	* dzn/vm/report.scm (statement->string): Support it.
	(trace-step?, display-trace): New methods.
	(report): Add #:header, #:trace, #:locations, and #:verbose parameters.
	Use them to invoke display-trace.
	* dzn/vm/util.scm (get-state)[system-state]: Factor-out from...
	(get-state)[program-counter]: ...here.
	(serialize-header)[state]: Change to...
	(serialize-header)[runtime:instance]: ...this.
	* dzn/commands/simulate.scm (parse-opts): Add -f,--format;
	-L,--locations; -v,--verbose.
	(main): Pass them to...
	* dzn/simulate.scm (simulate): ...here, using new
	parameters #:trace, #:locations, #verbose.  Likewise, pass to ...
	(run-trail): ...here.
	* doc/dezyne.texi (Invoking dzn simulate): Document it.

2021-03-30  Jan (janneke) Nieuwenhuizen  <janneke@gnu.org>

	test: Enable external tests in run-lts, run-simulate.
	* test/dzn/dzn.scm (run-lts, run-simulate): Do not skip external.

	test: Skip lts for failing external tests.
	* test/all/illegal_external/META,
	test/all/illegal_external_nonsynchronous/META,

2021-03-30  Jan (janneke) Nieuwenhuizen  <janneke@gnu.org>

	vm: Support external.
	TODO:
	    +FAIL: test/all/illegal_external (LTS)
	    +FAIL: test/all/illegal_external_nonsynchronous2 (LTS)
	     FAIL: test/all/livelock_component2 (LTS)
	     FAIL: test/all/livelock_synchronous (LTS)
	     FAIL: test/all/livelock_synchronous2

	* dzn/vm/goops.scm (<queue-full-error>): New class.
	(<program-counter>)[external-q]: New field.
	(external-q->string): New procedure.
	(write): Use it.
	* dzn/vm/util.scm (enqueue-external, dequeue-external): New methods.
	(pc->string): Add external queue.
	* dzn/vm/step.scm (step-action-up): Use external-q for external ports.
	(step)[block]: Copy #:external too.
	* dzn/vm/run.scm (non-deterministic?): Use pc->string instead of
	serialize-state.
	(run-silent): For external ports, allow non-silent traces too.
	(external-event?, run-external-q, run-external): New methods.
	(run-to-completion*): Use them.
	* dzn/explore.scm (process-external): New method.
	(run-to-completion**): Use it.  Update pseudo-event
	`#f' to 'async and 'external pseudo events.
	(explore, explore-lts): Update to use 'async and 'external labels.
	* dzn/vm/report.scm (trace->trail)[action,q-out]: Notice events on
	external port.

2021-03-30  Jan (janneke) Nieuwenhuizen  <janneke@gnu.org>

	vm: Memoize runtime:other-port.
	* dzn/vm/runtime.scm (runtime:other-port): Rename to...
	(runtime:other-port-): ...this.
	(runtime:other-port): New pure-funq'ed procedure.

	vm: Add specializations for ast:provides?, ast:requires?.
	* dzn/vm/ast.scm (ast:provides?)[runtime:port, instance]: New
	specializations.
	(ast:provides?)[runtime:port, instance]: Likewise.

	test: Enable livelock tests in run-lts, run-simulate.
	* test/dzn/dzn.scm (run-lts, run-simulate): Do not skip livelock.

	test: Mark livelock tests XFAIL.
	* test/all/local.mk (XFAIL_TESTS): Add livelock_component2,
	livelock_synchronous, livelock_synchronous2.

	test: livelock_component2: Add simulate baseline.
	* test/all/livelock_component2/baseline/simulate/livelock_component2,
	test/all/livelock_component2/baseline/simulate/livelock_component2.stderr:
	New files.

2021-03-30  Paul Hoogendijk  <paul.hoogendijk@verum.com>

	vm: Add async livelock check.
	* dzn/vm/run.scm (mark-livelock-error): Export.
	* dzn/explore.scm (check-mark-livelock): Use it in new procedure.
	(flush-async-trace): Use it.
	(flush-async): Add previous-trace parameter.
	(run-to-completion**): Update caller.
	* dzn/vm/util.scm (vm:ast:eq?)[trigger-return]: New specialization.

2021-03-30  Paul Hoogendijk  <paul.hoogendijk@verum.com>

	vm: Add livelock check.
	TODO:
	    +FAIL: test/all/livelock_component2 (LTS)
	    +FAIL: test/all/livelock_synchronous (LTS)
	    +FAIL: test/all/livelock_synchronous2

	* dzn/vm/goops.scm (<livelock-error>): New class.
	* dzn/vm/util.scm (pc:eq?, vm:ast:eq?): New methods.
	(mark-livelock-error, livelock?): New procedures.
	(extend-trace): Use them to detect livelock.
	* dzn/vm/run.scm (mark-livelock-error, livelock?): New procedures.
	(extend-trace): Use them.
	* test/all/livelock_recurse/trace,
	test/all/livelock_synchronous2: New tests.
	* test/all/local.mk (REGRESSION_TESTS): Add them.
	* dzn/vm/util.scm (state->string): Add queue.
	* test/all/livelock_synchronous/trace,
	test/all/livelock_synchronous/baseline/simulate/livelock_synchronous:
	Extend trace.
	* test/all/livelock_interface0,
	test/all/livelock_recurse: Update baseline.

2021-03-30  Jan (janneke) Nieuwenhuizen  <janneke@gnu.org>

	vm: Implement call/return elimination.
	* dzn/vm/step.scm (step)[call]: For tail calls: pop before calling.

	test: Enable deadlock tests in run-lts, run-simulate.
	* test/dzn/dzn.scm (run-lts, run-simulate): Do not skip deadlock.

	vm: Add deadlock check.
	* dzn/vm/goops.scm (<deadlock-error>): New class.
	* dzn/commands/simulate.scm (parse-opts): Add -D,--no-deadlock
	parameter.
	(main): Pass it to...
	(simulate*): ...here, using new #:deadlock-check? parameter, and pass
	it to...
	(simulate): ...here, using new #:deadlock-check parameter, and pass it
	to ...
	(run-sut): here, using new #:deadlock-check? parameter.  Use to call...
	(check-deadlock): ...this new method.
	(event->label-traces): New method.
	* dzn/vm/report.scm (final-error-messages): Report <blocked-error> as
	"deadlock" in trace.
	* doc/dezyne.texi (Invoking dzn simulate): Document it.

	test: Add run-lts stage.
	* test/dzn/dzn.scm (run-traces): Add --lts.  Do not skip when there is
	a handwritten trace.  Use --traces when there is no handwritten trace.
	(run-lts): New procedure.  Skip not-supported tests: deadlock, external,
	livelock, queuefull.
	(run-test): Use it.

	explore --state-diagram: Use --format=json to generate P5.
	* dzn/explore.scm (graph->json): New procedure.
	(state-diagram): Add #:format parameter.
	* dzn/commands/explore.scm (parse-opts): Add -f,--format option.
	(main): Pass it.

	explore: Support async.
	* dzn/explore.scm (process-async, did-provides-out?): New procedures.
	(flush-async): New method.
	(run-to-completion**): Use it.
	(explore): Apply also label #f.
	(explore-lts): Likewise.
	* dzn/vm/util.scm (pc->string): Add async queue.

	test: hello_interface: Do not skip lts.
	* test/all/hello_interface/META: Do not skip lts.

	explore: Refactor graph->lts.
	* dzn/explore.scm (graph->lts): Avoid car, cdr, etc.

2021-03-30  Paul Hoogendijk  <paul.hoogendijk@verum.com>

	explore: Add --lts.
	* dzn/vm/util.scm (pc->string): Make all error states the same, add
	blocked ports.
	* dzn/explore.scm (graph->lts, lts): New procedures.
	* dzn/commands/explore.scm (parse-opts): Add --lts, --state-diagram
	options.
	(main): Use them.
	* doc/dezyne.texi (Invoking dzn explore): Mention it.
	(Invoking dzn lts, Invoking dzn traces): Add a reference.

2021-03-30  Rutger van Beusekom  <rutger.van.beusekom@verum.com>

	explore: New command.
	* dzn/vm/util.scm (pc->string, pc->hash): New methods.
	* dzn/explore.scm: New file.
	* dzn/local.mk (dist_%C%_scm_DATA): Add it.
	* dzn/commands/explore.scm: New file.
	* dzn/commands/local.mk (dist_%C%_scm_DATA): Add it.
	* dzn/vm/run.scm (%exploring?): New parameter.
	(non-deterministic?): Use it to disable deterministism check.
	(run-to-completion, run-flush): run-async-event): Use it to skip illegal
	filtering.
	* doc/dezyne.texi (Invoking dzn explore): New section.
	* Makefile.am (dist_man_MANS): Build explore manual page.

2021-03-30  Jan (janneke) Nieuwenhuizen  <janneke@gnu.org>

	test: Enable blocking tests in run-simulate.
	* test/dzn/dzn.scm (run-simulate): Do not skip blocking.

2021-03-30  Rutger van Beusekom  <rutger.van.beusekom@verum.com>

	simulate: Support blocking.
	Compliance in blocking context is not supported.

	* dzn/vm/goops.scm (<block>): New class.
	(<program-counter>)[blocked,released?]: New fields.
	(write): Show them when they are interesting.
	* dzn/vm/normalize.scm (transform-action, transform-end-of-rule,
	transform-return): Cater for <blocking>.
	(set-blocking-reply-port): New procedure.
	(vm:normalize): Use it.
	* dzn/vm/step.scm (step)[trigger-return,end-of-rule,reply]: Cater
	for blocking.
	[block]: New specialization.
	* dzn/vm/step.scm (begin-step): Set error when port is blocked.
	(step)[reply]: Release port.
	(step)[blocking,block,unblock]: New specializations.
	(step)[end-of-on]: Handle release.
	(continuation)[blocking]: New specialization.
	* dzn/vm/run.scm (run-provides): Skip provides-compliance when
	a port is blocked.
	* test/all/local.mk (XFAIL_TESTS): Add compliance_blocking_out.

2021-03-30  Jan (janneke) Nieuwenhuizen  <janneke@gnu.org>

	test: Enable async tests in run-simulate.
	* test/dzn/dzn.scm (run-simulate): Do not skip async.

	simulate: Support async.
	* dzn/vm/goops.scm (<flush-async>): New class.
	(<program-counter>)[async]: New field.
	(write): Display it, if non-empty.
	* dzn/vm/step.scm (step)[action,trigger-return]: Cater for async
	ports.
	[flush-async]: New specialization.
	* dzn/vm/run.scm (run-async-event, run-async): New methods.
	(run-to-completion*): Cater for async events.
	* dzn/vm/ast.scm (ast:async?)[port,action,trigger]: New
	specializations.
	* dzn/vm/report.scm (trace->trail)[action,trigger-return]:
	Cater for async ports.

	test: Add run-simulate stage.
	* test/dzn/dzn.scm (filter-<flush>, filter-state): New procedures.
	(run-execute): Use them.
	(verify-only?): Rename to ...
	(error-model?): ...this.  Also check for simulate baseline.  Update
	users.
	(run-simulate-trace): New procedure.
	(run-simulate): Use it in new procedure.  Skip not-supported tests:
	async, block, deadlock, external, livelock, and queuefull.
	(run-test): Use it.

2021-03-30  Jan (janneke) Nieuwenhuizen  <janneke@gnu.org>

	trace: Update for simulate's new typed s-exp events.
	The simulator now prefixes s-expr events with their type:
	eligible, header, labels, state, trail.

	* dzn/commands/trace.scm (state->string): Add 'state prefix.
	(main): Default to "event".
	(parse-opts): Mention that.
	(trace:trace->steps): Add #:debug? parameter.
	(<eligible>,<header>,<labels>,<state>,<trail>): New types.
	(step->communication): Use them to allow new simulate events.

2021-03-30  Jan (janneke) Nieuwenhuizen  <janneke@gnu.org>

	simulate: New command.
	This commit resurrects some historical work from the previous system
	simulator project (step): evaluate, normalize, runtime, some utils.

	On top of that it adds ’vm’: a fresh approach that provides a
	reasonable alternative to the failed ’step’ project, enabling a rather
	straightforward implementation of blocking, async, deadlock, livelock,
	and external.

	* dzn/simulate.scm: New file.
	* dzn/local.mk (dist_%C%_scm_DATA): Add it.
	* dzn/commands/simulate.scm: New file.
	* dzn/commands/local.mk (dist_%C%_scm_DATA): Add it.
	* dzn/local.mk (dist_%C%_scm_DATA): Add it.
	* dzn/goops (.variable.name)[var]: New specialization.
	* dzn/ast.scm (ast:in?)[action]: New specialization.
	(ast:out?)[action]: Likewise.
	(ast:typed?)[type]: New specialization.
	(ast:typed?)[void]: New specialization.
	(ast:equal?): Fallback to equal?
	(ast:acceptance*): Move to
	* dzn/vm/ast.scm): ...new file here.
	* dzn/vm/evaluate.scm,
	dzn/vm/goops.scm,
	dzn/vm/normalize.scm,
	dzn/vm/report.scm,
	dzn/vm/runtime.scm,
	dzn/vm/run.scm,
	dzn/vm/step.scm,
	dzn/vm/util.scm: New files.
	* dzn/vm/local.mk: New file; add them.
	* Makefile.am: Include it.
	(dist_man_MANS): Build simulate manual page.
	* doc/dezyne.texi (Invoking dzn simulate): New section.

2021-03-30  Jan (janneke) Nieuwenhuizen  <janneke@gnu.org>

	ast: Use location for ast-list.
	* dzn/ast.scm (ast:location)[ast-list]: Use .location field if avaialable.

	test: Remove METAs for "run".
	* test/all/compliance_provides_illegal4/META,
	test/all/compliance_provides_illegal5/META,
	test/all/missing_reply/META,
	test/all/range_action/META,
	test/all/range_argument/META,
	test/all/range_assign/META,
	test/all/range_declaration/META,
	test/all/range_declaration_expression/META,
	test/all/range_expression/META,
	test/all/range_function/META,
	test/all/range_local/META,
	test/all/range_member/META,
	test/all/range_return/META,
	test/all/second_reply/META: Remove.

	test: Update foreign traces.
	* test/all/foreign_namespace/trace,
	test/all/hello_foreign_file/trace: Add foreign events.
	* test/all/hello_foreign/trace: Remove second round.

	test: Add compliance_blocking_out.
	* test/all/compliance_blocking_out: New test.
	* test/all/local.mk (REGRESSION_TESTS): Add it.

	test: Add illegal_silent.
	* test/all/illegal_silent: New test.
	* test/all/local.mk (REGRESSION_TESTS): Add it.

	test: Add compliance_implicit_illegal.
	* test/all/compliance_implicit_illegal: New test.
	* test/all/local.mk (REGRESSION_TESTS): Add it.

	test: Add deadlock_implicit.
	* test/all/deadlock_implicit: New test.
	* test/all/local.mk (HELLO_TESTS): Add it.

	test: illegal_external: Avoid queue-full.
	* test/all/illegal_external/illegal_external.dzn (illegal_external):
	Trigger illegal only; synchronous queue-full is already tested in
	queuefull_external_sync.

	test: illegal_external: Rename from illegal_hello_external.
	* test/all/illegal_hello_external: Rename to...
	* test/all/illegal_external: ...this.
	* test/all/local.mk (HELLO_TESTS): Move to...
	(REGRESSION_TESTS): ..to here.

	test: Add compliance_external.
	* test/all/compliance_external: New test.
	* test/all/local.mk (HELLO_TESTS): Add it.

	test: Add hello_external.
	* test/all/hello_external/hello_external.dzn: New test.
	* test/all/local.mk (HELLO_TESTS): Add it.

2021-03-30  Jan (janneke) Nieuwenhuizen  <janneke@gnu.org>

	test: compliance_nonsynchronous_sync: Rename from compliance_external_asynchronous_sync.
	This component tests neither async, nor external.

	* test/all/compliance_external_asynchronous_sync: Rename to...
	* test/all/compliance_nonsynchronous_sync: ...this.

2021-03-30  Jan (janneke) Nieuwenhuizen  <janneke@gnu.org>

	test: compliance_single_to_multiple: Rename from hello_single_to_multiple.
	* test/all/hello_single_to_multiple: Rename to...
	* test/all/compliance_single_to_multiple: ...this.

	test: Add hello_nondet_reply.
	* test/all/hello_nondet_reply/hello_nondet_reply.dzn: New file.
	* test/all/local.mk (REGRESSION_TESTS): Add it.

	test: Add foreign_reply.
	* test/all/foreign_reply/foreign_reply.dzn,
	test/all/foreign_reply/iworld.dzn,
	test/all/foreign_reply/c++/Foreign.hh,
	test/all/foreign_reply/c/Foreign.h,
	test/all/foreign_reply/c/Foreign.c,
	test/all/foreign_reply/cs/Foreign.cs,
	test/all/foreign_reply/javascript/Foreign.js,
	test/all/foreign_reply/scheme/Foreign.scm,
	test/all/foreign_reply/trace: New files.
	* test/all/local.mk (REGRESSION_TESTS): Add test.

2021-03-30  Rutger van Beusekom  <rutger.van.beusekom@verum.com>

	test: Add external_requires_twice, and failures.
	* test/all/external_requires_twice,
	test/all/illegal_requires_twice,
	test/all/illegal_external_requires_twice2: New tests.
	* test/all/local.mk (REGRESSION_TESTS): Add them.
	* test/error/illegal_exter_requires_twice,
	test/error/illegal_exter_requires_twice2: New symlinks.
	* test/external: New directory with symlinks.

2021-03-30  Jan (janneke) Nieuwenhuizen  <janneke@gnu.org>

	test: Add foreign_optional.
	The generated main('s event map) does not handle foreign events, in
	fact, events with multiple dots are ignored.

	* test/all/foreign_optional/foreign_optional.dzn,
	test/all/foreign_reply/iworld.dzn,
	test/all/foreign_reply/c++/Foreign.hh,
	test/all/foreign_reply/c++/main.cc,
	test/all/foreign_reply/c/Foreign.h,
	test/all/foreign_reply/c/Foreign.c,
	test/all/foreign_reply/c/main.c,
	test/all/foreign_reply/cs/Foreign.cs,
	test/all/foreign_reply/cs/main.cs,
	test/all/foreign_reply/javascript/Foreign.js,
	test/all/foreign_reply/javascript/main.js,
	test/all/foreign_reply/scheme/Foreign.scm,
	test/all/foreign_reply/scheme/main.scm,
	test/all/foreign_reply/trace: New files.
	test/all/foreign_optional/trace: New files.
	* test/all/local.mk (REGRESSION_TESTS): Add test.

2021-03-30  Jan (janneke) Nieuwenhuizen  <janneke@gnu.org>

	test: Add deadlock_port_blocked.
	* test/all/deadlock_port_blocked/baseline/simulate/deadlock_port_blocked,
	test/all/deadlock_port_blocked/baseline/simulate/deadlock_port_blocked.stderr,
	test/all/deadlock_port_blocked/deadlock_port_blocked.dzn: New files.

2021-03-30  Jan (janneke) Nieuwenhuizen  <janneke@gnu.org>

	test: Import semantic examples from documentation.
	* test/all/direct_in/direct_in.dzn,
	test/all/direct_in/trace: New files.

	* test/all/direct_out/direct_out.dzn,
	test/all/direct_out/trace: New files.

	* test/all/external_multiple_out/external_multiple_out.dzn,
	test/all/external_multiple_out/trace: New files.

	* test/all/indirect_blocking_multiple_external_out/indirect_blocking_multiple_external_out.dzn,
	test/all/indirect_blocking_multiple_external_out/trace: New files.

	* test/all/indirect_blocking_out/indirect_blocking_out.dzn,
	test/all/indirect_blocking_out/trace: New files.

	* test/all/indirect_in/indirect_in.dzn,
	test/all/indirect_in/trace: New files.

	* test/all/indirect_multiple_out1/indirect_multiple_out.dzn,
	* test/all/indirect_multiple_out1/indirect_multiple_out1.dzn,
	test/all/indirect_multiple_out1/trace: New files.

	* test/all/indirect_multiple_out2/indirect_multiple_out.dzn,
	test/all/indirect_multiple_out2/indirect_multiple_out2.dzn,
	test/all/indirect_multiple_out2/trace: New files.

	* test/all/indirect_multiple_out3/indirect_multiple_out.dzn,
	test/all/indirect_multiple_out3/indirect_multiple_out3.dzn,
	test/all/indirect_multiple_out3/trace: New files.

	* test/all/indirect_out/indirect_out.dzn,
	test/all/indirect_out/trace: New files.

	* test/all/local.mk: (SEMANTIC_TESTS): New variable.
	(FULL_TESTS): Add it.

	* test/semantics/direct_in/,
	test/semantics/direct_multiple_out1/,
	test/semantics/direct_multiple_out2/,
	test/semantics/direct_out/,
	test/semantics/external_multiple_out/,
	test/semantics/indirect_blocking_multiple_external_out/,
	test/semantics/indirect_blocking_out/,
	test/semantics/indirect_multiple_out1/,
	test/semantics/indirect_multiple_out2/,
	test/semantics/indirect_multiple_out3/,
	test/semantics/indirect_out/: New symlinks.

2021-03-30  Jan (janneke) Nieuwenhuizen  <janneke@gnu.org>

	test: compliance_external_asynchronous_sync: Add trace.
	* test/all/compliance_external_asynchronous_sync/trace: New file.

	test: queuefull_external_sync: Add trace and simulate baseline.
	* test/all/queuefull_external_sync/trace,
	* test/all/queuefull_external_sync/baseline/simulate/queuefull_external_sync,
	* test/all/queuefull_external_sync/baseline/simulate/queuefull_external_sync.stderr:
	New files.

2021-03-30  Paul Hoogendijk  <paul.hoogendijk@verum.com>

	test: livelock_interface0: Add simulate trace and baseline.
	* test/all/livelock_interface0/trace,test/all/livelock_interface0/baseline/simulate/livelock_interface0
	test/all/livelock_interface0/baseline/simulate/livelock_interface0.stderr: New files.

	test: illegal_hello_external: Add simulate trace and baseline.
	* test/all/illegal_hello_external/trace,test/all/illegal_hello_external/baseline/simulate/illegal_hello_external
	test/all/illegal_hello_external/baseline/simulate/illegal_hello_external.stderr: New files.

2021-03-30  Jan (janneke) Nieuwenhuizen  <janneke@gnu.org>

	test: illegal_external_nonsynchronous: Rename from illegal_external_asynchronous2.
	* test/all/illegal_external_asynchronous2: Rename to...
	* test/all/illegal_external_nonsynchronous: ...this.

2021-03-30  Paul Hoogendijk  <paul.hoogendijk@verum.com>

	test: illegal_external_asynchronous2: Add simulate trace and baseline.
	* test/all/illegal_external_asynchronous2/trace,test/all/illegal_external_asynchronous2/baseline/simulate/illegal_external_asynchronous2
	test/all/illegal_external_asynchronous2/baseline/simulate/illegal_external_asynchronous2.stderr: New files.

	test: illegal_component0: Add simulate trace and baseline.
	* test/all/illegal_component0/trace,test/all/illegal_component0/baseline/simulate/illegal_component0
	test/all/illegal_component0/baseline/simulate/illegal_component0.stderr: New files.

	test: hello_single_to_multiple: Add simulate trace and baseline.
	* test/all/hello_single_to_multiple/trace,
	test/all/hello_single_to_multiple/baseline/simulate/hello_single_to_multiple
	test/all/hello_single_to_multiple/baseline/simulate/hello_single_to_multiple.stderr: New files.

	test: deadlock_interface_out_only: Add simulate trace and baseline.
	* test/all/deadlock_interface_out_only/trace,test/all/deadlock_interface_out_only/baseline/simulate/deadlock_interface_out_only
	test/all/deadlock_interface_out_only/baseline/simulate/deadlock_interface_out_only.stderr: New files.

	test: deadlock_interface1: Add simulate trace and baseline.
	* test/all/deadlock_interface1/trace,test/all/deadlock_interface1/baseline/simulate/deadlock_interface1
	test/all/deadlock_interface1/baseline/simulate/deadlock_interface1.stderr: New files.

	test: deadlock_interface0: Add simulate trace and baseline.
	* test/all/deadlock_interface0/trace,test/all/deadlock_interface0/baseline/simulate/deadlock_interface0
	test/all/deadlock_interface0/baseline/simulate/deadlock_interface0.stderr: New files.

	test: deadlock_component1: Add simulate trace and baseline.
	* test/all/deadlock_component1/trace,test/all/deadlock_component1/baseline/simulate/deadlock_component1
	test/all/deadlock_component1/baseline/simulate/deadlock_component1.stderr: New files.

	test: deadlock_component0: Add simulate trace and baseline.
	* test/all/deadlock_component0/trace,test/all/deadlock_component0/baseline/simulate/deadlock_component0
	test/all/deadlock_component0/baseline/simulate/deadlock_component0.stderr: New files.

	test: deadlock_blocking_inevitable: Add simulate trace and baseline.
	* test/all/deadlock_blocking_inevitable/trace,test/all/deadlock_blocking_inevitable/baseline/simulate/deadlock_blocking_inevitable
	test/all/deadlock_blocking_inevitable/baseline/simulate/deadlock_blocking_inevitable.stderr: New files.

	test: deadlock_blocking_guard: Add simulate trace and baseline.
	* test/all/deadlock_blocking_guard/trace,test/all/deadlock_blocking_guard/baseline/simulate/deadlock_blocking_guard
	test/all/deadlock_blocking_guard/baseline/simulate/deadlock_blocking_guard.stderr: New files.

	test: compliance_provides_int: Add simulate trace and baseline.
	* test/all/compliance_provides_int/trace,test/all/compliance_provides_int/baseline/simulate/compliance_provides_int
	test/all/compliance_provides_int/baseline/simulate/compliance_provides_int.stderr: New files.

	test: compliance_out_inevitable_illegal: Add simulate trace and baseline.
	* test/all/compliance_out_inevitable_illegal/trace,test/all/compliance_out_inevitable_illegal/baseline/simulate/compliance_out_inevitable_illegal
	test/all/compliance_out_inevitable_illegal/baseline/simulate/compliance_out_inevitable_illegal.stderr: New files.

	test: compliance_out_inevitable: Add simulate trace and baseline.
	* test/all/compliance_out_inevitable/trace,test/all/compliance_out_inevitable/baseline/simulate/compliance_out_inevitable
	test/all/compliance_out_inevitable/baseline/simulate/compliance_out_inevitable.stderr: New files.

	test: compliance0: Add trace and simulate baseline.
	* test/all/compliance0/trace,
	* test/all/compliance0/baseline/simulate/compliance0,
	* test/all/compliance0/baseline/simulate/compliance0.stderr: New files.

	test: livelock_component1: Remove verify baseline.
	* test/all/livelock_component1/baseline/verify: Remove.

	test: livelock_component0: Remove verify baseline.
	* test/all/livelock_component0/baseline/verify: Remove.

2021-03-30  Jan (janneke) Nieuwenhuizen  <janneke@gnu.org>

	test: second_reply_blocking: Add simulate baseline.
	* test/all/second_reply_blocking/baseline/simulate/second_reply_blocking,
	* test/all/second_reply_blocking/baseline/simulate/second_reply_blocking.stderr:
	New files.
	* test/all/second_reply_blocking/SimpleBlockingTwoReply.trace: Rename to...
	* test/all/second_reply_blocking/trace: ...this.

	test: second_reply: Add trace and simulate baseline.
	* test/all/second_reply/trace,
	* test/all/second_reply/baseline/simulate/second_reply,
	* test/all/second_reply/baseline/simulate/second_reply.stderr: New
	files.

	test: range_return: Add trace and simulate baseline.
	* test/all/range_return/trace,
	* test/all/range_return/baseline/simulate/range_return,
	* test/all/range_return/baseline/simulate/range_return.stderr: New
	files.

	test: range_member: Add trace and simulate baseline.
	* test/all/range_member/trace,
	* test/all/range_member/baseline/simulate/range_member,,
	* test/all/range_member/baseline/simulate/range_member.stderr: New files.

	test: range_local: Add trace and simulate baseline.
	* test/all/range_local/trace,
	* test/all/range_local/baseline/simulate/range_local,
	* test/all/range_local/baseline/simulate/range_local.stderr: New files.

	test: range_function: Add trace and simulate baseline.
	* test/all/range_function/trace,
	* test/all/range_function/baseline/simulate/range_function,
	* test/all/range_function/baseline/simulate/range_function.stderr: New
	files.

	test: range_expression: Add trace and simulate baseline.
	* test/all/range_expression/trace,
	* test/all/range_expression/baseline/simulate/range_expression,
	* test/all/range_expression/baseline/simulate/range_expression.stderr:
	New files.

	test: range_declaration_expression: Add trace and simulate baseline.
	* test/all/range_declaration_expression/trace,
	* test/all/range_declaration_expression/baseline/simulate/range_declaration_expression,
	* test/all/range_declaration_expression/baseline/simulate/range_declaration_expression.stderr:
	New files.

	test: range_declaration/trace: Add trace and simulate baseline.
	* test/all/range_declaration/trace,
	test/all/range_declaration/baseline/simulate/range_declaration,
	test/all/range_declaration/baseline/simulate/range_declaration.stderr:
	New files.

	test: range_argument: Add trace and simulate baseline.
	* test/all/range_argument/trace,
	* test/all/range_argument/baseline/simulate/range_argument,
	* test/all/range_argument/baseline/simulate/range_argument.stderr: New
	files.

	test: range_action: Add trace and simulate baseline.
	* test/all/range_action/trace,
	* test/all/range_action/baseline/simulate/range_action,
	* test/all/range_action/baseline/simulate/range_action.stderr: New files.

	test: missing_reply: Add trace and simulate baseline.
	* test/all/missing_reply/trace,
	test/all/missing_reply/baseline/simulate/missing_reply,
	test/all/missing_reply/baseline/simulate/missing_reply.stderr: New files.

	test: livelock_component: Add trace.
	* test/all/livelock_component2/trace: New file.

	test: integer_expressions: Actually test !=.
	* test/all/integer_expressions/integer_expressions.dzn: Fail if != fails.

	test: illegal_system_requires: Update trace, add baseliine.
	test/all/illegal_system_requires/baseline/debug/trace,
	test/all/illegal_system_requires/baseline/debug/trace.stderr: Remove.
	* test/all/illegal_system_requires/trace: Remove trailing illegal.
	* test/all/illegal_system_requires/baseline/simulate/illegal_system_requires,
	test/all/illegal_system_requires/baseline/simulate/illegal_system_requires.stderr,
	* test/all/illegal_system_requires/baseline/verify/illegal_system_requires: New files.
	* test/all/illegal_system_requires/META: Remove.

	test: illegal_requires_out: Add simulate baseliine.
	* test/all/illegal_requires_out/baseline/debug/trace,
	test/all/illegal_requires_out/baseline/debug/trace.stderr: Remove.
	* test/all/illegal_requires_out/baseline/simulate/illegal_requires_out,
	test/all/illegal_requires_out/baseline/simulate/illegal_requires_out.stderr:
	New file.

	test: illegal_requires2: Update trace, add simulate baseliine.
	* test/all/illegal_requires2/baseline/debug/trace,
	test/all/illegal_requires2/baseline/debug/trace.stderr: Remove.
	* test/all/illegal_requires2/trace: Update.
	* test/all/illegal_requires2/baseline/simulate/illegal_requires2,
	test/all/illegal_requires2/baseline/simulate/illegal_requires2.stderr:
	New files.

	test: illegal_requires: Update trace, add simulate baseliine.
	* test/all/illegal_requires/baseline/debug/trace,
	test/all/illegal_requires/baseline/debug/trace.stderr: Remove.
	* test/all/illegal_requires/trace: Update.
	* test/all/illegal_requires/baseline/simulate/illegal_requires,
	test/all/illegal_requires/baseline/simulate/illegal_requires.stderr: New
	files.

	test: illegal_provides: Add simulate baseliine.
	* test/all/illegal_provides/baseline/debug/trace,
	test/all/illegal_provides/baseline/debug/trace.stderr: Remove.
	* test/all/illegal_provides/baseline/simulate/illegal_provides,
	test/all/illegal_provides/baseline/simulate/illegal_provides.stderr: New file.

	test: determinism1: Add simulate trace and baseliine.
	* test/all/determinism1/trace,
	test/all/determinism1/baseline/simulate/determinism1,
	test/all/determinism1/baseline/simulate/determinism1.stderr: New files.

	test: determinism0: Add simulate trace and baseliine.
	* test/all/determinism0/trace,
	test/all/determinism0/baseline/simulate/determinism0,
	test/all/determinism0/baseline/simulate/determinism0.stderr: New files.

	test: compliance_requires_illegal: Add simulate baseline.
	* test/all/compliance_requires_illegal/baseline/debug/trace,
	test/all/compliance_requires_illegal/baseline/debug/trace.stderr: Remove.
	* test/all/compliance_requires_illegal/baseline/simulate/compliance_requires_illegal,
	test/all/compliance_requires_illegal/baseline/simulate/compliance_requires_illegal.stderr:
	New file.

	test: compliance_provides_out: Add simulate baseline.
	* test/all/compliance_provides_out/baseline/debug/trace,
	test/all/compliance_provides_out/baseline/debug/trace.stderr: Remove.
	* test/all/compliance_provides_out/baseline/simulate/compliance_provides_out,
	test/all/compliance_provides_out/baseline/simulate/compliance_provides_out.stderr:
	New file.

	test: compliance_provides_illegal5: Add simulate baseline.
	*test/all/compliance_provides_illegal5/baseline/debug/trace,
	test/all/compliance_provides_illegal5/baseline/debug/trace.stderr: Remove.
	* test/all/compliance_provides_illegal5/baseline/simulate/compliance_provides_illegal5,
	test/all/compliance_provides_illegal5/baseline/simulate/compliance_provides_illegal5.stderr:
	New file.

	test: compliance_provides_illegal4: Add simulate baseline.
	* test/all/compliance_provides_illegal4/baseline/debug/trace,
	test/all/compliance_provides_illegal4/baseline/debug/trace2,
	test/all/compliance_provides_illegal4/baseline/debug/trace2.stderr,
	test/all/compliance_provides_illegal4/trace2,
	test/all/compliance_provides_illegal4/baseline/debug/trace.stderr: Remove.
	* test/all/compliance_provides_illegal4/baseline/simulate/compliance_provides_illegal4,
	test/all/compliance_provides_illegal4/baseline/simulate/compliance_provides_illegal4.stderr:
	New files.

	test: compliance_provides_bool: Add simulate baseline.
	* test/all/compliance_provides_bool/baseline/debug/step/trace,
	test/all/compliance_provides_bool/baseline/debug/step/trace.stderr,
	test/all/compliance_provides_bool/baseline/debug/trace,
	test/all/compliance_provides_bool/baseline/debug/trace.stderr: Remove.
	*test/all/compliance_provides_bool/baseline/simulate/compliance_provides_bool,
	test/all/compliance_provides_bool/baseline/simulate/compliance_provides_bool.stderr:
	New file.

	test: livelock_synchronous: Rename from hello_synchronous_livelock.
	* test/all/hello_synchronous_livelock: Rename to...
	* test/all/livelock_synchronous: ...this.

	test: compliance_async: Add simulate trace and baseline.
	* compliance_async/trace,compliance_async/baseline/simulate/compliance_async
	compliance_async/baseline/simulate/compliance_async.stderr: New files.

	test: compliance_async: Rename from compliance_async.
	* test/all/async_context3: Rename to...
	* test/all/compliance_async: ...this.

	test: livelock_async: Rename from async_context2.
	* test/all/async_context2: Rename to...
	* test/all/livelock_async: ...this.

	test: deadlock_interface_out_only: Rename from hello_interface_out_only.
	* test/all/hello_interface_out_only: Rename to ...
	* test/all/deadlock_interface_out_only: ...this.

	test: livelock_interface0: Remove dead code.
	* test/all/livelock_interface0/livelock_interface0.dzn (DummyI, DummyC):
	Remove.

	test: deadlock_interface0, deadlock_interface1: Remove dead code.
	* test/all/deadlock_interface0/deadlock_interface0.dzn (DummyI, DummyC):
	Remove
	* test/all/deadlock_interface1/deadlock_interface1.dzn (DummyI, DummyC):
	Remove.

	test: blocking_system4: Truncate trace.
	* test/all/blocking_system4/BlockedSystem4.trace: Remove second round.

	test: determinism0: Fix comment.
	* test/all/determinism0/determinism0.dzn: Reword comment.

	test: system-hello: Remove META.
	* test/all/system_hello/META: Remove.

	test: Camera: Clean copies, add traces, add c++ foreigns.
	* test/all/Camera/Camera_2.dzn,
	test/all/Camera/Camera_3a.dzn,
	test/all/Camera/Camera_3b.dzn,
	test/all/Camera/Camera_3c.dzn,
	test/all/Camera/SimpleCamera.dzn,
	test/all/Camera/InitialCamera.dzn: Remove.
	* test/all/Camera/ihal.dzn: Remove.
	* test/all/Camera/Camera.dzn (Optics, Acquisition): Move to...
	Optics.dzn: ...here, and...
	Acquisition.dzn: ...here.
	* test/all/Camera/c++/CMOS.hh,
	test/all/Camera/c++/Contrast.hh:
	test/all/Camera/c++/Lens.hh:
	test/all/Camera/c++/Memory.hh:
	test/all/Camera/c++/Shutter.hh: New files.

	test: Add compliance_system_provides_bool.
	* test/all/compliance_system_provides_bool: New test.
	* test/all/local.mk (REGRESSION_TESTS): Add it.
	* test/compliance/compliance_system_provides_bool: New symink.

	test: Add system_hello_world.
	* test/all/system_hello_world/system_hello_world.dzn: New file.
	* test/all/local.mk (REGRESSION_TESTS): Add it.

	test: Add step_state.
	* test/all/step_state: New test.
	* test/all/local.mk (REGRESSION_TESTS): Add it.

	test: Add inevitable_multiple_requires.
	* test/all/inevitable_multiple_requires/inevitable_multiple_requires.dzn:
	New file.
	* test/all/local.mk (REGRESSION_TESTS): Add it.

	test: Add hello_out_state.
	* test/all/hello_out_state/hello_out_state.dzn: New file.
	* test/all/local.mk (HELLO_TESTS): Add it.
	* test/hello/hello_out_state: New symlink.

	test: Add hello_nondet.
	* test/all/hello_nondet/hello_nondet.dzn: New file.
	* test/all/local.mk (HELLO_TESTS): Add it.
	* test/hello/hello_nondet: New symlink.
	* test/all/hello_nondet/META: New file, skip build.

	test: Add AlarmSystem.
	* test/all/AlarmSystem/AlarmSystem.dzn: New test.

	test: Add missing symlinks.
	* test/smoke/parse_syntax,
	test/smoke/parse_type_mismatch: New symlinks.

2021-03-30  Jan (janneke) Nieuwenhuizen  <janneke@gnu.org>

	wfc: Fix two bugs.
	This fixes

	    interface I {
	      in void e();
	      behaviour { on e: f(); }
	    }

	and

	    interface I {
	      in void e();
	      enum E { A };
	      behaviour { on e: E.A v = E.A; }
	    }

	as reported by Paul Hoogendijk <paul.hoogendijk@verum.com> on verum-devel.

	* dzn/wfc.scm (wfc)[arguments]: Avoid looking-up formals of undefined
	function.
	(type-name)[string]: New specialization.

2021-03-30  Jan (janneke) Nieuwenhuizen  <janneke@gnu.org>

	ast: Fix ast:async? for port.
	* dzn/ast.scm (ast:async?)[port]: New specialization.
	[trigger]: Use it.

	build: Distribute C runtime.
	* runtime/local.mk (runtime_c_dzndir,dist_runtime_c_dzn_DATA,
	runtime_cdir, dist_runtime_c_DATA): New variables.

	build: Support cs, remove --with-courage.
	* configure.ac: Remove --with-courage for language cs.
	* test/lib/local.mk (EXTRA_DIST): Distribute build.cs.make.
	* Makefile.am (install-data-hook): Add version comment when distributing
	cs.
	* runtime/local.mk (runtime_cs_dzndir, dist_runtime_cs_dzn_DATA): New
	variables.

	test: blocking_shell: Skip execute for cs.
	* test/all/blocking_shell/META: Skip cs:execute.

	test: blocking_shell: Rename from shell.
	* test/all/shell: Rename to...
	* test/all/blocking_shell: ..this.
	* test/all/blocking/blocking_shell: New symlink.

	parse: Change -p,--peg to -p,--skip-wfc.
	* dzn/commands/parse.scm (parse): Change -p,--peg to -p,--skip-wfc.
	* doc/dezyne.texi (Invoking dzn): Update accordingly.
	* test/all/parse_locations/run (base): Update to use --skip-wfc.

2021-03-30  Jan (janneke) Nieuwenhuizen  <janneke@gnu.org>

	json: Remove behaviour and most locations.
	This reduces the system diagram for Dezyne-IDE's daemon (all.dzn) from
	1M to 130KB.

	* dzn/normalize.scm (remove-location, remove-behaviour): New procedures.
	* dzn/code/json.scm (ast->): Use them.

2021-03-30  Jan (janneke) Nieuwenhuizen  <janneke@gnu.org>

	test: Factor-out get-meta-flag.
	* test/dzn/dzn.scm (get-meta-flag): Factor-out from...
	(flush?, thread-pool?, thread-safe-shell?): ...these.

2021-03-30  Jan (janneke) Nieuwenhuizen  <janneke@gnu.org>

	runtime c++: Oops, disable thread_pool by default.
	Reported by Michael van de Ven <michael.van.de.ven@thermofisher.com>.

	* runtime/c++/dzn/context.hh (defer)[DZN_THREAD_POOL]: Oops, add missing
	'!' and inline.
	* test/lib/build.c++.make ($(OUT)/test): Replace default thread_pool.o
	with $(THREAD_POOL_O).
	* runtime/c++/dzn/context.hh:
	* test/dzn/dzn.scm (thread-pool?): New procedure to read 'thread-pool'
	from META.
	(run-build): Use it.
	* test/all/shell/META: Set thread-pool.

2021-03-30  Jan (janneke) Nieuwenhuizen  <janneke@gnu.org>

	lts:: Resurrect unit tests, cleanups, and fix compile warnings.
	* test/lts: Import test files.
	* test/lts/local.mk: List them in new file.
	* Makefile.am: Include it.
	* test/dzn/lts.scm: Update and enable tests.
	* dzn/commands/lts.scm (main): Rename options
	--accepts to --list-accepts,
	--events to --list-events,
	--nondet to --deterministic-labels.
	* dzn/verify/pipeline.scm (in-out:aut-dpweak-bisim->verify-component):
	Update accordingly.
	* dzn/lts.scm (text->line-list): New procedure, split off from...
	(text-file->line-list): ...this.
	(aut-file->lts): Rename to...
	(aut-text->lts): ...this.
	(aut-file->lts): Use it in new procedure.

	guix: dezyne: Use guile-json-4.
	* guix/gnu/packages/dezyne.scm (guile3.0-json-1): Remove.
	(dezyne)[propagated-inputs]: Use guile-json-4.

	test: Support guile-json-4.
	* test/dzn/dzn.scm (get-meta): New procedure, using guile-json-4
	compatible json-string->alist-scm.  Factored-out from
	(skip?, flush?, thread-safe-shell?, code-options, model?, model-unset?): These.
	* test/all/async_flush/META,
	test/all/compliance_provides_bool/META,
	test/all/compliance_provides_out/META,
	test/all/hello_inevitable_sync_out/META,
	test/all/hello_multiple_out/META,
	test/all/hello_optional_flush/META,
	test/all/illegal_provides/META,
	test/all/shell/META,
	test/all/shell_injected/META: Use true and false values, not strings.

	dzn: Cleanups.
	* dzn/misc.scm: Remove unused modules.

	misc: Clean-out, add json-string->alist-scm.
	* dzn/commands/trace.scm (json->alist-scm): Remove.
	(json-string->alist-scm): Move to...
	* dzn/misc.scm (json-string->alist-scm): ...here, and add guile-json-4
	compatibility.
	(*eof*, =1, >1, null-is-#f, stdout, stderr,->join, ->string): Remove.
	Also remove many unused procedures.
	* dzn/code/javascript.scm (javascript:namespace-setup): Rewrite
	without ->join, ->string.
	* dzn/fifo.scm: Remove.
	* dzn/local.mk (dist_%C%_scm_DATA): Remove it.
	* dzn/indent.scm (eat-space): Rewrite without *eof*.
	(indent): Likewise, and without =1.
	* dzn/parse/ast.scm (parse-tree->ast): Rewrite without null-is-#f.
	* dzn/scm2json.scm (parse-opts): Rewrite without >1, stdout.
	* dzn/templates/c++.scm (check-bindings-list): Rewrite without ->join.
	* dzn/verify/pipeline.scm (report-ok, report-skip): Rewrite without
	stdout, stderr.
	* dzn/ast.scm: Rewrite without stderr.  Remove commented debug code.
	* dzn/commands/trace.scm: Likewise.
	* dzn/commands/traces.scm: Likewise.
	* dzn/lts.scm (cleanup-label): Likewise.
	* dzn/normalize.scm (add-reply-port): Likewise.
	* dzn/wfc.scm (wfc:report-error): Likewise.

	guix: dezyne: Use guile-3.0-latest.
	* guix/gnu/packages/dezyne.scm (dezyne)[inputs,native-inputs]: Use
	guile-3.0-latest.

	guix: Bump to 0d8d499036f632e03f63bdaf36b02861ea52b3e6.
	* guix.scm: Bump to 0d8d499036f632e03f63bdaf36b02861ea52b3e6.

2021-03-30  Jan (janneke) Nieuwenhuizen  <janneke@gnu.org>

	verify: Support guile-3.0.
	This works around <https://bugs.gnu.org/47245>.

	* dzn/verify/pipeline.scm (%dzn): Remove redefinition.  Move mingw
	support to ..
	* dzn/config.scm.in (%dzn): ...here.

2021-03-30  Jan (janneke) Nieuwenhuizen  <janneke@gnu.org>

	lts: Export some symbols, typos.
	* dzn/lts.scm (dzn): Expport lts->alphabet, lts-stable-accepts,
	remove-illegal, rm-tau-loops, run, print-metrics, text->edge,
	validate-aut-file.

	hello: Include missing command-line.
	* dzn/commands/hello.scm (dzn): Include (dzn command-line).

	ast: Typo.
	* dzn/ast.scm (ast:full-name): Typo.

	normalize: Typo.
	* dzn/normalize.scm (ast->): Use ast:pretty-print.

	c++: Remove dead code.
	* dzn/code/c++.scm (c++:type-name)[binding]: Remove unused function.

	parse/ast: Remove dead code.
	* dzn/parse/ast.scm (parse-tree->ast): Remove dead clause.

	Compile fixes for guile-3.0.5.
	* gash/util.scm (disjoin, conjoin): Use arguments instead of
	"(. arguments)".
	* gash/pipe.scm (spawn): Likewise.
	* dzn/misc.scm (disjoin, conjoin): Likewise.

2021-03-30  Jan (janneke) Nieuwenhuizen  <janneke@gnu.org>
	    Rutger van Beusekom  <rutger.van.beusekom@verum.com>

	parse: Invoke imported-from lazily.
	This fixes parsing performance problem of a system with many includes.
	Reported by Erik Oerlemans <erik.oerlemans@philips.com>.

	* dzn/parse.scm
	* dzn/parse.scm
	(string->parse-tree): Use #:content-alist parameter instead of optional
	imported-from.  Pass content-alist to ...
	(peg:handle-syntax-error): ...here, using new #:content-alist
	parameter.  Pass it to ...
	(peg:error-message): ...here, pass it to ...
	(peg:imported-from->message): ...here.  Take content-alist
	instead of imported-from, and invoke imported-from.

2021-03-30  Jan (janneke) Nieuwenhuizen  <janneke@gnu.org>

	verify: Error traces end with <error> event.
	* dzn/lts.scm (cleanup-error): New procedure, moved out from...
	(cleanup-label): ...here.
	* dzn/lts.scm (remove-illegal, deadlock-nodes): Use
	<declarative-illegal>.
	(lts->traces): Use <illegal>.
	* dzn/commands/traces.scm (lts-hide-internal-labels): Use
	<declarative-illegal>, <illegal>.
	* dzn/verify/pipeline.scm (in-out:aut-dpweak-bisim->verify-component):
	Use --illegal=<illegal>.
	(hide-illegal-labels): Move filtering of
	illegals to...
	(hide-internal-labels): ...new procedure here.
	(mcrl2:verify-compliance): Use it.
	(report-fail): Have error trace end with
	<error> event.
	* test/all/async_context3/baseline/verify/async_context3,
	test/all/compliance_external_asynchronous_sync/baseline/verify/compliance_external_asynchronous_sync,
	test/all/compliance_livelock/baseline/verify/compliance_livelock,
	test/all/compliance_out_inevitable/baseline/verify/compliance_out_inevitable,
	test/all/compliance_out_inevitable_illegal/baseline/verify/compliance_out_inevitable_illegal,
	test/all/compliance_out_sync/baseline/verify/compliance_out_sync,
	test/all/compliance_out_two/baseline/verify/compliance_out_two,
	test/all/compliance_provides_bool/baseline/verify/compliance_provides_bool,
	test/all/compliance_provides_illegal4/baseline/verify/compliance_provides_illegal4,
	test/all/compliance_provides_int/baseline/verify/compliance_provides_int,
	test/all/compliance_provides_out/baseline/verify/compliance_provides_out,
	test/all/compliance_reply_bool/baseline/verify/compliance_reply_bool,
	test/all/hello_single_to_multiple/baseline/verify/hello_single_to_multiple:
	Add <compliance>.
	* test/all/compliance_out_nondet/baseline/verify/compliance_out_nondet,
	test/all/deadlock_blocking_guard/baseline/verify/deadlock_blocking_guard,
	test/all/deadlock_blocking_inevitable/baseline/verify/deadlock_blocking_inevitable,
	test/all/deadlock_blocking_optional/baseline/verify/deadlock_blocking_optional,
	test/all/deadlock_component0/baseline/verify/deadlock_component0,
	test/all/deadlock_component1/baseline/verify/deadlock_component1,
	test/all/deadlock_interface0/baseline/verify/deadlock_interface0,
	test/all/deadlock_interface1/baseline/verify/deadlock_interface1,
	test/all/deadlock_reply_modeling/baseline/verify/deadlock_reply_modeling:
	test/all/determinism_async/baseline/verify/determinism_async,
	test/all/hello_interface_out_only/baseline/verify/hello_interface_out_only,
	test/all/illegal_external_asynchronous2/baseline/verify/illegal_external_asynchronous2,
	test/all/illegal_hello_external/baseline/verify/illegal_hello_external,
	test/all/illegal_interface.space/baseline/verify/illegal_interface.space,
	test/all/illegal_provides/baseline/verify/illegal_provides,
	test/all/illegal_provides/baseline/verify/illegal_provides,
	test/all/illegal_requires2/baseline/verify/illegal_requires2: Add
	<deadlock>.
	* test/all/compliance_provides_illegal5/baseline/verify/compliance_provides_illegal5,
	test/all/compliance_requires_illegal/baseline/verify/compliance_requires_illegal,
	test/all/illegal_async_silent/baseline/verify/illegal_async_silent,
	test/all/illegal_component0/baseline/verify/illegal_component0,
	test/all/illegal_external_asynchronous2/baseline/verify/illegal_external_asynchronous2,
	test/all/illegal_requires/baseline/verify/illegal_requires,
	test/all/illegal_requires2/baseline/verify/illegal_requires2,
	test/all/illegal_requires_out/baseline/verify/illegal_requires_out: Add
	<illegal>.
	* test/all/hello_synchronous_livelock/baseline/verify/hello_synchronous_livelock,
	* test/all/livelock2/baseline/verify/livelock2,
	* test/all/livelock_component2/baseline/verify/livelock_component2,
	* test/all/livelock_interface0/baseline/verify/livelock_interface0,
	* test/all/livelock_interface0/baseline/verify/livelock_interface0:
	Add <livelock>.
	* test/all/missing_reply/baseline/verify/missing_reply: Add
	<missing-reply>.
	* test/all/queuefull_component0/baseline/verify/queuefull_component0,
	test/all/queuefull_external/baseline/verify/queuefull_external,
	test/all/queuefull_external_sync/baseline/verify/queuefull_external_sync:
	Add <queue-full>.
	* test/all/range_action/baseline/verify/range_action,
	test/all/range_argument/baseline/verify/range_argument,
	test/all/range_assign/baseline/verify/range_assign,
	test/all/range_declaration/baseline/verify/range_declaration,
	test/all/range_declaration_expression/baseline/verify/range_declaration_expression,
	test/all/range_expression/baseline/verify/range_expression,
	test/all/range_function/baseline/verify/range_function,
	test/all/range_local/baseline/verify/range_local,
	test/all/range_member/baseline/verify/range_member,
	test/all/range_return/baseline/verify/range_return: Add <range-error>.
	* test/all/second_reply/baseline/verify/second_reply,
	test/all/second_reply_blocking/baseline/verify/second_reply_blocking: Add <second-reply>.
	* test/all/range_return/baseline/verify/range2: Remove.

	verification: Memoize root->makreel.
	* dzn/verify/pipeline.scm (root+model->makreel): New pure function.
	(in-out:dzn->makreel): Use it.

2021-03-30  Jan (janneke) Nieuwenhuizen  <janneke@gnu.org>
	    Rutger van Beusekom  <rutger.van.beusekom@verum.com>

	verify: Drop interface name prefix from trace.
	* dzn/lts.scm (cleanup-aut): Add #:prefix parameter; if set, drop
	prefix from label.
	* dzn/commands/lts.scm (main): Pass --prefix option.
	* dzn/verify/pipeline.scm (in-out:aut-makreel->aut): Use --prefix
	option for interfaces.
	(interface-taus): Do not add interface name
	prefix.
	* test/all/deadlock_interface1/baseline/verify/deadlock_interface1,
	test/all/reply_modeling/baseline/verify/deadlock_reply_modeling,
	test/all/illegal_interface.space/baseline/verify/illegal_interface.space,
	test/all/incomplete/baseline/verify/incomplete.stderr,
	test/all/range_argument/baseline/verify/range_argument,
	test/all/range_assign/baseline/verify/range_assign,
	test/all/range_function/baseline/verify/range_function,
	test/all/range_local/baseline/verify/range_local,
	test/all/range_return/baseline/verify/range_return: Remove
	interface prefix.

2021-03-30  Jan (janneke) Nieuwenhuizen  <janneke@gnu.org>

	verify: Include imports in debug command line.
	* dzn/command-line.scm (dzn:options): New procedure.
	(dzn:multi-opt): Use it.
	(command:command-line): Use it in new procedure.
	* dzn/script.scm (main): Use it.
	* dzn/verify/pipeline.scm (pretty-verify-pipeline): Use it to include
	imports.

2021-03-30  Jan (janneke) Nieuwenhuizen  <janneke@gnu.org>

	verify: Support pretty printing of pipeline commands.
	Running

	   dzn --debug verify hello.dzn

	now shows the actual pipelines with their commands, ready for use on
	the command line.

	* dzn/verify/pipeline.scm (pretty-verify-pipeline): New procedure.
	(verify-pipeline): Use it.
	* doc/dezyne.texi (Invoking dzn verify): Mention it.

2021-03-30  Jan (janneke) Nieuwenhuizen  <janneke@gnu.org>

	verify: Add --out option; support running of partial pipeline.
	* dzn/commands/verify.scm (parse-opts): Remove unsupported -d,--debug
	option.  Add --out option.
	 (main): Use it to call...
	* dzn/verify/pipeline.scm (verification:partial): ...this new procedure.
	* doc/dezyne.texi (Invoking dzn verify): Document it, together with
	missing -I,--import flag.
	* gash/pipe.scm (piped-process:pipeline): Use inner procedure instead of
	lambda.  Throw when attempting to use a procedure inside the command
	line.

2021-03-30  Rutger van Beusekom  <rutger.van.beusekom@verum.com>
	    Jan (janneke) Nieuwenhuizen  <janneke@gnu.org>

	verify: Refactor verification pipeline.
	* dzn/templates/makreel/source@root: Use M4 macro init_process instead
	of #x:init.
	* dzn/templates/makreel/interface-proc@interface (name'interface_internal):
	Rename name'silent_end' to tau_void.
	(name'interface): Hide name'end.
	* dzn/code/makreel.scm (makreel:.name, makreel:name): New methods.
	(verify:scope-name): Renae to ...
	(makreel:unticked-dotted-name): ...this.
	(makreel:get-model): New specialization.
	* dzn/verify/traces.scm (parse-tree2text, cleanup-lts): Move to ...
	* dzn/lts.scm (cleanup-label, cleanup-aut): ...here.
	* dzn/verify/traces.scm (rename-lts-actions): Move to ...
	* dzn/verify/pipeline.scm (hide-internal-labels): ...here.
	(execute): Remove.
	(in-out:pipeline): New variable.
	(verify-pipeline): Use it in new procedure.
	(mcrl2:verify-interface-asserts): Use it, rename from...
	(mcrl2:verify-interface): ...this.
	, mcrl2:verify-component-asserts): Use it.
	(mcrl2:verify-compliance): Use it, rename from do-refinement.
	(mcrl2:verify-interface): New procedure.
	* dzn/commands/verify.scm (models-for-verification): Inline.
	(ast:interface*): Remove.
	(model->mcrl2, verify-makreel): Move to ...
	* dzn/verify/pipeline.scm: ...here.
	* dzn/verify/traces.scm: Remove.
	* dzn/verify/local.mk (dist_%C%_scm_DATA): Remove it.

2021-03-30  Jan (janneke) Nieuwenhuizen  <janneke@gnu.org>

	test: illegal_interface.space: Rename from hello.interface_namespace.
	* test/all/illegal_interface.space: Rename to...
	* test/all/hello.interface_namespace: ...this.

	test: deadlock_reply_modeling: Rename from reply_modeling.
	* test/all/reply_modeling: Rename to...
	* test/all/deadlock_reply_modeling: ...this.
	* test/all/local.mk (REGRESSION_TESTS): Update accordingly.

	test: illegal_async_silent: Rename from async_silent.
	* test/all/async_silent: Rename to...
	* test/all/illegal_async_silent: ...this.
	* test/all/local.mk (REGRESSION_TESTS): Update accordingly.

	test: determinism_async: Rename from async_nondet.
	* test/all/async_nondet: Rename to ...
	* test/all/determinism_async: ...this.
	* test/all/local.mk (REGRESSION_TESTS): Update accordingly.

	parse/complete: Add missing tree:int-value-names.
	* dzn/parse/complete.scm (tree:int-value-names): New procedure.

	parse/tree: Add missing .direction, .from, .range, .to.
	* dzn/parse/tree.scm (.direction, .from, .range, .to.): New procedures.

	language: Support completion of partial field test: "var.".
	* dzn/parse/peg.scm (peg:parse): Do not skip "var", "var." in partial
	field tests "var", "var."
	* dzn/parse/complete.scm (context:complete): Support Handle partial
	field test: "var."
	* test/dzn/language.scm ("language interface12"),
	("language interface12a"): New tests, using...
	* test/language/interface12.dzn,
	test/language/interface12a.dzn: New files.
	* test/language/local.mk (EXTRA_DIST): Add them.

	language: Support completion of partial field-test: "var".
	* dzn/parse/tree.scm (is-a?): Return value instead of #t.
	* dzn/parse/complete.scm (context:complete): Complete enum variable in
	expression to field-test values.
	* test/dzn/language.scm ("language interface11",
	"language interface11a"): New tests, using...
	* test/language/interface11.dzn,
	test/language/interface11a.dzn: New files.
	* test/language/local.mk (EXTRA_DIST): Add them.

	language: Support completion of guard expressions.
	* dzn/parse/peg.scm (peg:parse)[behaviour-statements]: Do not hide.
	Fixes uniformity of parse tree.
	* dzn/parse/ast.scm (parse-tree->ast): Handle it.
	* dzn/parse/tree.scm (.behaviour-statements): New procedure.
	(tree:record): Add behaviour-statements.
	(tree:scope?, tree:declaration*, tree:declaration*, tree:function*,
	tree:statement*, tree:variable*): Cater for behaviour-statements.
	(tree:type*): Also look in interfaces.
	* dzn/parse/complete.scm (context:locals, context:members,
	context:complete): Use behaviour-statements instead of behaviour-compound.
	* dzn/parse/complete.scm (context:enum-names, context:int-names,
	context:type-names): Always look in root for types.
	(complete:variable-names): Support lookup without type.
	(complete:boolean-expressions): Use it in new procedure.
	(context:complete): Support incomplete guard.
	* dzn/parse/lookup.scm (tree:lookup-var): Use behaviour-statements
	instead of behaviour-compound.
	* test/dzn/language.scm ("language interface10",
	"language interface10a"): New tests.
	* test/language/interface10.dzn,
	test/language/interface10a.dzn: New files.
	* test/language/local.mk (EXTRA_DIST): Add them.

	language: Support completion of field in field-test.
	* dzn/parse/complete.scm (context:complete): Handle field-test.
	* test/language/enum.dzn (enum Bool): Swap fields.
	* test/dzn/language.scm ("completion field-test field"): Test it.
	("lookup field-test->enum-field"): Update accordingly.

	language: Handle --point=L.C.
	* dzn/commands/language.scm (main): In string->number, use any
	non-digit as a separator.  This avoids generating a float when using
	".", which hangs the loop in line-column->offset.

	code: Add 'Generated by' comment.
	* dzn/templates/c++-exception-wrappers/header@root,
	dzn/templates/c++/header@root,
	dzn/templates/c++/main@component,
	dzn/templates/c++/source@root,
	dzn/templates/c/header@root,
	dzn/templates/cs/main@component,
	dzn/templates/cs/source@root,
	dzn/templates/javascript/main@component,
	dzn/templates/javascript/source@root,
	dzn/templates/makreel/source@root,
	dzn/templates/scheme/main@component,
	dzn/templates/scheme/source@root: Add "Generated by dzn code ..." comment.

	doc: Update 'NEWS'.
	* NEWS (Changes in 2.10.1-thermo-fisher since 2.10.1): New section.

	build: Oops, distribute c++-exception-wrappers templates.
	* dzn/templates/local.mk (EXTRA_DIST): Add c++-exception-wrappers.
	Fixes building dezyne-language-c++-exception-wrappers language pack.

2021-03-30  Rutger van Beusekom  <rutger.van.beusekom@verum.com>

	c++-exception-wrapperr: Do not fail when --calling-context is missing.
	* dzn/code/c++-exception-wrappers.scm (c++ew:calling-context-type-name):
	Add fallback.

	c++: runtime: Add thread_pool support.
	* runtime/c++/thread_pool.cc (class dzn::thread::pool): New class
	(dzn::thread::defer): New function using class pool.
	* runtime/c++/dzn/context.hh (dzn::thread::defer)[!DZN_THREAD_POOL]: New
	function.
	(class context): Use thread::pool::defer.

2021-03-30  Johri van Eerd  <johri.van.eerd@verum.com>

	c++-exception-wrappers: New language.
	This adds the experimental c++ exception wrapper code generator for
	Thermo Fisher Scientific.

	* configure.ac: Add --enable-c++-exception-wrappers argument.  Define
	Automake conditional `have_cxx_exception_wrappers'.
	* dzn/code/local.mk (dist_%C%_scm_DATA): Use it to conditionally build
	and distribute exception wrappers.
	* dzn/templates/local.mk (dist_nocompile_%C%_scm_DATA): Likewise.
	* dzn/ast.scm (ast:system*): Add (ast:system* (o <root>)).
	* dzn/code/c++.scm: Export some procedures for...
	* dzn/code/c++-exception-wrappers.scm (dzn): ...this new file.
	* dzn/templates/c++-exception-wrappers.scm: New file.
	* dzn/templates/c++-exception-wrappers/: New template language.
	* test/all/exception_wrapper: New test.
	* test/all/local.mk (REGRESSION_TESTS)[have_cxx_exception_wrappers]: Add
	it.
	* test/lib/build.c++.make (CALLING_CONTEXT_HH): New variable.

2020-09-16  Jan (janneke) Nieuwenhuizen  <janneke@gnu.org>

	trace: Factor-out 'step:trace->structured'.
	* dzn/commands/trace.scm (trace->steps): Rename to ...
	(trace:trace->steps): ... this.
	(trace:trace->structured): New procedure.
	(step:format-trace): Rename to ...
	(trace:format-trace): ...this.  Use it.

2021-01-18  Jan (janneke) Nieuwenhuizen  <janneke@gnu.org>

	test: hello_imported: Comment comp.
	* test/all/hello_imported/hello_imported.dzn (comp): Comment.

2021-02-18  Jan (janneke) Nieuwenhuizen  <janneke@gnu.org>

	traces: Throw exception if LTS fails.
	* dzn/commands/traces.scm (model->lts): Throw if lts is empty.

	code: Use ast-> entry point with parameters.
	* dzn/code.scm (%calling-context, %queue-size): %shell): New
	parameters.
	(code:add-calling-context, code:add-calling-context-argument,
	code:add-calling-context-formal): Use %calling-context instead of
	command-line:get.
	(code:annotate-shells): Use %shell instead of command-line:get.
	* dzn/commands/code.scm (main): Set them.  Invoke ast-> with #:dir
	and #:model parameters.
	* dzn/code/c++.scm (root->): Rename to ...
	(ast->): ...this.
	* dzn/code/c.scm (root->): Rename to ...
	(ast->): ...this.
	* dzn/code/cs.scm (formals, cs:args): Use %calling-context instead of
	(root->): Rename to ...
	(ast->): ...this.
	* dzn/code/dzn.scm (root->): Rename to ...
	(ast->): ...this.
	* dzn/code/javascript.scm (root->): Rename to ...
	(ast->): ...this.
	* dzn/code/makreel.scm (ast->): Add #:dir, #:model parameters.
	(makreel:queue-length): Use %queue-size instead of command-line:get.
	* dzn/code/scheme.scm (root->): Rename to ...
	(ast->): ...this.
	* dzn/code/json.scm (ast->): Add #:dir, #:model parameters.

2021-02-18  Jan (janneke) Nieuwenhuizen  <janneke@gnu.org>

	code: Rename calls, rcalls, async, reqs, clrs.
	* dzn/templates/code.scm (calls): Rename to ...
	(event-slot): ...this.
	(rcalls): Rename to...
	(valued-event-slot): ...this.
	(async): Rename to...
	(async-event-slot): ...this.
	(reqs): Rename to...
	(async-req-event-slot): ...this.
	(clrs): Rename to...
	(async-crl-event-slot): ...this.
	* dzn/templates/c++/header-model@foreign,
	dzn/templates/c++/model@component,
	dzn/templates/cs/model@component,
	dzn/templates/cs/model@foreign: Update accordingly.

	* dzn/templates/c++/calls@trigger: Rename to...
	dzn/templates/c++/event-slot@trigger: ..this
	* dzn/templates/c++/rcalls@trigger: Rename to...
	dzn/templates/c++/valued-event-slot@trigger: ..this
	* dzn/templates/c++/async@trigger: Rename to...
	dzn/templates/c++/async-event-slot@trigger: ..this
	* dzn/templates/c++/reqs@trigger: Rename to...
	dzn/templates/c++/async-req-event-slot@trigger: ..this
	* dzn/templates/c++/clrs@trigger: Rename to...
	dzn/templates/c++/async-clr-event-slot@trigger: ..this

	* dzn/templates/cs/calls@trigger: Rename to...
	dzn/templates/cs/event-slot@trigger: ..this
	* dzn/templates/cs/rcalls@trigger: Rename to...
	dzn/templates/cs/valued-event-slot@trigger: ..this
	* dzn/templates/cs/async@trigger: Rename to...
	dzn/templates/cs/async-event-slot@trigger: ..this
	* dzn/templates/cs/reqs@trigger: Rename to...
	dzn/templates/cs/async-req-event-slot@trigger: ..this
	* dzn/templates/cs/clrs@trigger: Rename to...
	dzn/templates/cs/async-clr-event-slot@trigger: ..this

2021-02-18  Jan (janneke) Nieuwenhuizen  <janneke@gnu.org>

	code: Strip trailing whitepace, default to newline-infix.
	* dzn/templates.scm (compile): Delete trailing whitespace.
	* dzn/templates.scm (define-templates-base): Use newline infix as
	default instead of empty separator.
	* dzn/templates/dzn/double-newline-infix: New grammar.
	* dzn/templates/c.scm,
	dzn/templates/cs.scm,
	dzn/templates/code.scm,
	dzn/templates/dzn.scm,
	dzn/templates/javascript.scm,
	dzn/templates/makreel.scm,
	dzn/templates/scheme.scm: Remove newline-infix.  Add
	double-newline-infix for model.

	dzn: Also generate imports, global types.
	* dzn/ast.scm (ast:import*): New method.
	* dzn/templates/dzn.scm (import): Use it in new template.
	(source): Remove dzn:model accessor.
	(model): New template definition.
	* dzn/templates/dzn/source@root: Use them.
	* dzn/templates/dzn/model@component:
	dzn/templates/dzn/model@foreign,
	dzn/templates/dzn/source@interface,
	dzn/templates/dzn/model@system: New symlinks.
	* dzn/templates/dzn/behaviour@behaviour: Add newline.

	cs: Whitespace cleanups.
	* dzn/templates/cs.scm: Add newline-infix to templates.
	* dzn/templates/cs/statement@illegal: Indent macro.
	* dzn/templates/cs/statement@guard: Indent macro, add newline.

	code: Cleanups.
	* dzn/code.scm: Sort into categories.
	(injected-instances): Rename to ...
	(code:injected-instances): ...this.  Remove old implementation.
	(non-injected-instances): Rename to...
	(code:non-injected-instances): ...this.  Remove old implementation.
	(code:name, code:scope.name, code:scope-type-name): Remove.

	dzn: Cleanups.
	* dzn/code/dzn.scm: Sort into categories.
	(code:class-member?, unspecified?): Remove.
	(dzn:annotate-shells): Move to...
	* dzn/code.scm (code:annotate-shells): ...here.

	test: Fix broken link.
	* test/regression/wf_replyRequiredPort/: Update to...
	* test/regression/wf_replyRequiresPort/: ...this.

2021-02-17  Jan (janneke) Nieuwenhuizen  <janneke@gnu.org>

	test: hello_foreign_path: Rename cs Foreign.
	* test/all/hello_foreign_path/cs/glue.cs: Rename to...
	* test/all/hello_foreign_path/cs/Foreign.cs: ...this.

	test: Import multiple_provides.
	* test/all/multiple_provides/multiple_provides.dzn: New file.
	* test/all/local.mk (REGRESSION_TESTS): Add it.

2021-02-12  Jan (janneke) Nieuwenhuizen  <janneke@gnu.org>

	test: Import hello_injected.
	* test/all/hello_injected: Import.
	* test/all/local.mk (HELLO_TESTS): Add it.

2021-03-23  Jan (janneke) Nieuwenhuizen  <janneke@gnu.org>

	cs: Remove flush from foreign.
	* dzn/templates/cs/model@foreign: Set flushes to false.

2021-02-12  Jan (janneke) Nieuwenhuizen  <janneke@gnu.org>

	cs: Initialize name of injected requires port.
	* dzn/templates/cs/injected-instance-initializer@instance: Set name.

2020-05-11  Jan (janneke) Nieuwenhuizen  <janneke@gnu.org>

	test: Import data_full.
	The notorious `Dataparam'.

	TODO:
	  * devise a way to test against trace, to avoid handwritten main's
	  * split in series of nice data tests

	* test/all/data_full/: New test.
	* test/all/local.mk (REGRESSION_TESTS): Add it.
	* test/all/data_full/main.c,
	test/all/data_full/main.cc,
	test/all/data_full/main.cs,
	test/all/data_full/main.js,
	test/all/data_full/main.scm: Resurrect.
	* test/lib/build.javascript.make ($(OUT)/test): Update handwritten-main
	support.

2021-02-17  Jan (janneke) Nieuwenhuizen  <janneke@gnu.org>

	makreel: Remove dead templates.
	Try:

	    for i in $(grep define-templat dzn/templates/makreel.scm | cut -d' ' -f 2 | sed -e s,^,x:, -e 's,),,');\
	        do if ! grep $i dzn/templates/makreel/* > /dev/null; then echo dead: $i; fi; done

	* dzn/templates/makreel.scm (behaviour-with-optional-proc,
	behaviour-without-optional-proc, non-optional-proc, optional-proc,
	continuation-haakjes, continuation-identifier-call,
	semantics-requires-flush-provides,
	semantics-requires-flush-provides-provides,
	semantics-requires-flush-requires, semantics-requires-provides,
	semantics-requires-requires, semantics-flush-provides,
	semantics-qmt-flush-provides, semantics-flush-requires, provides-hide): Remove.
	* dzn/code/makreel.scm (makreel:behaviour-with-optional-proc,
	makreel:behaviour-without-optional-proc, makreel:non-optional-proc,
	makreel:optional-proc): Remove.

2021-02-17  Jan (janneke) Nieuwenhuizen  <janneke@gnu.org>

	c: Remove dead templates.
	Try:

	    for i in $(grep define-templat dzn/templates/c.scm | cut -d' ' -f 2 | sed -e s,^,x:, -e 's,),,'); \
	        do if ! grep $i dzn/templates/c/* > /dev/null; then echo dead: $i; fi; done

	* dzn/templates/c.scm (event-arguments, enum-name-global-local):
	Remove.
	* dzn/code/c.scm (c:global-or-local-enum-name): Remove.

2021-02-17  Jan (janneke) Nieuwenhuizen  <janneke@gnu.org>

	cs: Remove dead templates.
	Try:

	    for i in $(grep define-templat dzn/templates/cs.scm | cut -d' ' -f 2 | sed -e s,^,x:, -e 's,),,'); \
	        do if ! grep $i dzn/templates/cs/* > /dev/null; then echo dead: $i; fi; done

	* dzn/templates/cs.scm (delegate-type, event-type, formal-type,
	instance-declaration, delegate-formal-type, delegate-signature): Remove.
	(func-return-type): Rename to ...
	(function-return-type): ...this.
	* dzn/templates/cs/shell-provided-in@trigger: Update accordingly.
	* dzn/code/cs.scm (cs:delegate-formal-type): Remove.
	* dzn/templates/cs/func-return-type@trigger: Rename to...
	* dzn/templates/cs/function-return-type@trigger: ...this.

2021-02-17  Jan (janneke) Nieuwenhuizen  <janneke@gnu.org>

	scheme: Remove dead templates.
	Try:

	    for i in $(grep define-templat dzn/templates/scheme.scm | cut -d' ' -f 2 | sed -e s,^,x:, -e 's,),,'); \
	        do if ! grep $i dzn/templates/scheme/* > /dev/null; then echo dead: $i; fi; done

	* dzn/templates/scheme.scm (scheme-namespace-setup,
	constructor-parameters, main-event-map-flush-provides): Remove.
	* dzn/code/scheme.scm (scheme:namespace-setup,
	scheme:constructor-parameters): Remove.

2021-02-17  Jan (janneke) Nieuwenhuizen  <janneke@gnu.org>

	c++: Remove dead templates.
	Try:

	    for i in $(grep define-t dzn/templates/c++.scm | cut -d' ' -f 2 | sed -e s,^,x:, -e 's,),,'); \
	        do if ! grep $i dzn/templates/c++/* > /dev/null; then echo dead: $i; fi; done

	* dzn/code/c++.scm (c++:name, c++:argument_n, c++:optional-type): Remove.
	* dzn/templates/c++.scm (name, optional-type, prefix-formals-type,
	prefix-arguments-n, injected-meta-initializer): Remove.

2021-02-17  Jan (janneke) Nieuwenhuizen  <janneke@gnu.org>

	code: Remove dead templates.
	Try:

	    for i in $(grep define-templat dzn/templates/code.scm | cut -d' ' -f 2 | sed -e s,^,x:, -e 's,),,'); \
	        do if ! grep $i dzn/templates/*/* > /dev/null; then echo dead: $i; fi; done

	* dzn/templates/code.scm (parameters, instance-initializer): Remove.
	* dzn/code.scm (code:parameters): Remove.

2021-02-17  Jan (janneke) Nieuwenhuizen  <janneke@gnu.org>

	dzn: Remove dead templates.
	Try:

	    for i in $(grep define-templat dzn/templates/dzn.scm | cut -d' ' -f 2 | sed -e s,^,x:, -e 's,),,'); \
	        do if ! grep $i dzn/templates/*/* > /dev/null; then echo dead: $i; fi; done

	* dzn/templates/dzn.scm (expand-blocking): Remove.
	* dzn/code/dzn.scm (dzn:expand-blocking): Remove.

2021-02-17  Jan (janneke) Nieuwenhuizen  <janneke@gnu.org>

	cs: Template cleanups.
	* dzn/templates/cs.scm: Sort templates into categories.  Remove
	multi-line lambdas.
	(cs:formal-binding, out-ref-local, dzn-prefix,
	default-ref, default-out, =expression): Move to...
	* dzn/code/cs.scm (cs:formal-binding, out-ref-local, dzn-prefix,
	default-ref, default-out, =expression): ...here.
	(cs:func-return-type, cs:return-statement, cs:return-temporary-assign,
	cs:return-temporary, cs:non-primitive, cs:data): New procedure.

	javascript: Template cleanups.
	* dzn/templates/javascript.scm: Sort templates into categories.

	scheme: Template cleanups.
	* dzn/templates/scheme.scm: Sort templates into categories.

	c++: Template cleanups.
	* dzn/code/c++.scm: Do not export template procedures.
	* dzn/templates/c++.scm: Sort templates into categories.

	code: Template cleanups.
	* dzn/templates/code.scm: Sort templates into categories.

	dzn: Template cleanups.
	* dzn/templates/dzn.scm: Sort templates into categories.

	makreel: Remove dead templates.
	* dzn/templates/makreel/=expression@expression,
	dzn/templates/makreel/=expression@extern,
	dzn/templates/makreel/action-arguments@expression,
	dzn/templates/makreel/async-parallel@component,
	dzn/templates/makreel/behaviour-with-optional-proc@behaviour,
	dzn/templates/makreel/behaviour-without-optional-proc@behaviour,
	dzn/templates/makreel/continuation-haakjes@ast,
	dzn/templates/makreel/event@trigger,
	dzn/templates/makreel/non-optional-proc@behaviour,
	dzn/templates/makreel/non-optional-proc@skip,
	dzn/templates/makreel/optional-proc@behaviour,
	dzn/templates/makreel/provides-hide@port,
	dzn/templates/makreel/semantics-flush-provides@port,
	dzn/templates/makreel/semantics-flush-requires@port,
	dzn/templates/makreel/semantics-qmt-flush-provides@port,
	dzn/templates/makreel/semantics-requires-flush-provides-provides@port,
	dzn/templates/makreel/semantics-requires-flush-provides@port,
	dzn/templates/makreel/semantics-requires-flush-requires@port,
	dzn/templates/makreel/semantics-requires-provides@port,
	dzn/templates/makreel/semantics-requires-requires@port,
	dzn/templates/makreel/statement@incomplete: Remove.

	c: Remeve dead templates.
	* dzn/templates/c/event-arguments@ast,
	dzn/templates/c/event-arguments@formal,
	dzn/templates/c/function-type@bool,
	dzn/templates/c/function-type@enum,
	dzn/templates/c/function-type@void,
	dzn/templates/c/header-f-ptr-definition@event,
	dzn/templates/c/in-event@event,
	dzn/templates/c/port-reply-helper@type,
	dzn/templates/c/port-reply-helper@void,
	dzn/templates/c/return-function@function,
	dzn/templates/c/return-function@return,
	dzn/templates/c/self-or-not@ast,
	dzn/templates/c/self-or-not@variable: Remove.

	cs: Remove dead templates.
	* dzn/templates/cs/argument-type@ast,
	dzn/templates/cs/delegate-formal-type@type,
	dzn/templates/cs/delegate-return-type@type,
	dzn/templates/cs/delegate-signature@event,
	dzn/templates/cs/delegate-type@type,
	dzn/templates/cs/delegate-type@void,
	dzn/templates/cs/deref@ast,
	dzn/templates/cs/event-type@type,
	dzn/templates/cs/event-type@void,
	dzn/templates/cs/flush-provides@port,
	dzn/templates/cs/formal-type@formal,
	dzn/templates/cs/formal-type@type,
	dzn/templates/cs/formals@formal,
	dzn/templates/cs/instance-declare-dzn-tracing@instance,
	dzn/templates/cs/main-formal-binding-assign@formal-binding,
	dzn/templates/cs/meta@component,
	dzn/templates/cs/out-binding-lambda@port,
	dzn/templates/cs/signature@formal: Remove.

	javascript: Remmove dead templates.
	* dzn/templates/javascript/formal-type@formal,
	dzn/templates/javascript/function-type@type,
	dzn/templates/javascript/prefix-formals-type@formal: Remove.

	scheme: Remove dead templates.
	* dzn/templates/scheme/component-port@end-point,
	dzn/templates/scheme/formal-type@formal,
	dzn/templates/scheme/function-type@type,
	dzn/templates/scheme/main-event-map-flush-provides@port,
	dzn/templates/scheme/prefix-formals-type@formal: Remove.

2021-02-17  Jan (janneke) Nieuwenhuizen  <janneke@gnu.org>

	c++: Remove dead templates.
	Try:

	    diff -u <(grep -ho 'x:[^]" ();]*' dzn/templates/c++/* | sed s,x:,, | sort -u) \
	        <(ls dzn/templates/c++ | grep @ | sed s,@.*,, | sort -u) | grep ^[-+]\
	        | LANG= sort

	* dzn/templates/c++/foreign-header@foreign: Move to...
	* dzn/templates/c++/header-model@foreign: ...this.
	* dzn/templates/c++/foreign-source@foreign: Move to...
	* dzn/templates/c++/model@foreign: ...this.
	* dzn/templates/c++/header-include@file-name: Remove.
	dzn/templates/c++/injected-binding-declare@binding,
	dzn/templates/c++/instance-set-state-argument@instance,
	dzn/templates/c++/instance-set-state-argument@system,
	dzn/templates/c++/pure-virtual-method-declare@trigger,
	dzn/templates/c++/meta-shell@system,
	dzn/templates/c++/prefix-formals-type@formal: Remove.

2021-02-17  Jan (janneke) Nieuwenhuizen  <janneke@gnu.org>

	code: Remove dead templates.
	* dzn/templates/dzn/variable-expression@expression,
	dzn/templates/c++/variable-expression@expression,
	dzn/templates/c/variable-expression@expression,
	dzn/templates/makreel/variable-expression@expression: Remove.

2021-02-17  Jan (janneke) Nieuwenhuizen  <janneke@gnu.org>

	dzn: Remove dead templates.
	Try:

	    diff -u <(grep -ho 'x:[^]" ();]*' dzn/templates/dzn/* | sed s,x:,, | sort -u) \
	        <(ls dzn/templates/dzn | grep @ | sed s,@.*,, | sort -u) | grep ^[-+]\
	        | LANG= sort

	note that `dzn' carries some base template files, symlinked by other
	languages; not all are dead.

	* dzn/templates/dzn/expression-not@equal,
	dzn/templates/dzn/port-event@event,
	dzn/templates/dzn/port-event@port: Remove.
	* dzn/code/dzn.scm (dzn:scope+name): Inline into...
	(dzn:enum-literal): ...this.

2021-02-17  Jan (janneke) Nieuwenhuizen  <janneke@gnu.org>

	code: Remove dead symlinks.
	* dzn/templates/c++/direction@direction,
	dzn/templates/c++/header@foreign,
	dzn/templates/c/expression-not@equal,
	dzn/templates/javascript/direction@direction,
	dzn/templates/makreel/expression-not@equal,
	dzn/templates/scheme/direction@direction: Remove.

	html: Remove language.
	* dzn/templates/html: Remove.

2021-02-16  Jan (janneke) Nieuwenhuizen  <janneke@gnu.org>

	test c: Fix for generated main in sub directory.
	* test/lib/build.scheme.make ($(OUT)/test): Typo.

	test: Add parse_assign_void.
	* dzn/wfc.scm (call-context): Fix typo.
	* test/all/parse_assign_void/baseline/verify/parse_assign_void.stderr,
	test/all/parse_assign_void/parse_assign_void.dzn: New files.

2021-02-15  Jan (janneke) Nieuwenhuizen  <janneke@gnu.org>

	makreel: Move .variable.name to goops.
	* dzn/code/makreel.scm (.variable.name)[action]: Move to...
	* dzn/goops.scm (.variable.name) [action]: ...here.

	goops: Cleanups.
	* dzn/goops.scm: Do not export <*-node>s.  Remove commented-code.
	(<acceptances>, <action-out>, <compliance-error>, <no-match>, <<q-in>,
	<q-out>, <q-trigger>): Remove old "step" remnants.

	ast: Remove old "step" remnants.
	* dzn/ast.scm (ast:acceptance*): Remove.

2021-01-22  Jan (janneke) Nieuwenhuizen  <janneke@gnu.org>

	traces: Add --traces option.
	* dzn/commands/traces.scm (parse-opts): Add --traces option.
	(model->traces): Use it to force trace output with --lts.
	* doc/dezyne.texi (Invoking dzn traces): Mention it.

2021-01-20  Jan (janneke) Nieuwenhuizen  <janneke@gnu.org>

	traces: Remove dead code, resurrect --lts.
	* dzn/lts.scm (lts->traces): Remove unused lts? option.
	* dzn/commands/traces.scm (model->traces): Update caller.  Remove
	creation and removal of unused temp dir.  Remove unused "commands".
	Write lts when --lts.
	* doc/dezyne.texi (Invoking dzn traces): Mention it, also mention the
	use of mCRL2.
	(Invoking dzn lts): Add index entries.

2020-09-16  Jan (janneke) Nieuwenhuizen  <janneke@gnu.org>

	trace: Factor-out 'step:trace->structured'.
	* dzn/commands/trace.scm (trace->steps): Rename to ...
	(trace:trace->steps): ... this.
	(trace:trace->structured): New procedure.
	(step:format-trace): Rename to ...
	(trace:format-trace): ...this.  Use it.

2021-01-29  Jan (janneke) Nieuwenhuizen  <janneke@gnu.org>

	ast: get-model: Throw if model-name not found.
	* dzn/ast.scm (ast:get-model): When model-name is given, throw
	exception if not found.
	* dzn/commands/parse.scm (parse): Catch it unless --debug.
	* dzn/parse.scm (parse:handle-exceptions): Handle it.
	* test/all/parse_import_both/baseline/verify/parse_import_both.stderr,
	test/all/parse_import_twice/baseline/verify/parse_import_twice.stderr:
	Update baseline.

2021-02-01  Jan (janneke) Nieuwenhuizen  <janneke@gnu.org>

	.gitignore: Ignore manual pages.
	* .gitignore: Ignore doc/*.1.

2021-01-22  Jan (janneke) Nieuwenhuizen  <janneke@gnu.org>

	.dir-locals: Add with-directory-excursion.
	* .dir-locals.el (scheme-mode): Add with-directory-excursion.

2021-02-12  Jan (janneke) Nieuwenhuizen  <janneke@gnu.org>

	test: Add parse_interface_parens.
	This should either exit with a parse error, or verify OK.  It generates
	invalid mCRL2

	    [parser::error]   Line 251, column 32: syntax error after '='
	    [parser::error]     Stack'parse_interface_parens' = struct stack_empty'parse_interface_parens'

	* test/all/parse_interface_parens/parse_interface_parens.dzn: New test.
	* test/all/local.mk (PARSER_TESTS): Add it.
	(XFAIL_TESTS): Add it.

2021-02-10  Jan (janneke) Nieuwenhuizen  <janneke@gnu.org>

	test: Add alpha_local2.
	This test generates broken c++ code:

	    test/all/alpha_local2/out/c++/alpha_local2.cc: In member function ‘bool alpha_local2::h_hello()’:
	    test/all/alpha_local2/out/c++/alpha_local2.cc:28:26: error: ‘bx’ was not declared in this scope
	       this->reply_bool = bx;
	                          ^~
	* test/all/alpha_local2/alpha_local2.dzn: New test.
	* test/all/local.mk (REGRESSION_TESTS): Add it.
	(XFAIL_TESTS): Add it.

2021-01-20  Rutger van Beusekom  <rutger.van.beusekom@verum.com>

	test: Add compound_local_assign_call.
	This test generates invalid mCRL2 code:

	    compound_local_assign_call'5(return_value: Bool) = compound_local_assign_call'6(l'1 = return_value);
	    compound_local_assign_call'6 = h'reply (ihello'Void(void)) . compound_local_assign_call'7 ;

	* test/all/compound_local_assign_call/compound_local_assign.dzn: New
	test.
	* test/all/local.mk (REGRESSION_TESTS): Add it.
	(XFAIL_TESTS): Add it.

2021-02-11  Jan (janneke) Nieuwenhuizen  <janneke@gnu.org>

	code: Remove om:bind.
	* dzn/code.scm (om:port-bind?): Rename to...
	(code:port-bind?): ...this.
	(code:port-name, code:instance-name): Update users.
	(om:port-bind, om:bind): Remove.
	* dzn/templates/code.scm (system-port-connect): Update user.

	code: Remove code:language.
	* dzn/code.scm (code:language): Remove.

	dzn: Remove dzn:->string.
	* dzn/code.scm (code:type-name): Remove dzn:->string.
	* dzn/code/c++.scm (c++:type-name): Likewise.
	* dzn/code/dzn.scm (dzn:data): Likewise.
	(dzn:->string): Remove it.
	* dzn/templates/dzn/type-name@data: New template.
	dzn/templates/c++/type-name@data,
	dzn/templates/cs/type-name@data: New symlink.
	* dzn/templates/dzn/data@top: New file.

	code: Remove code:scope+name.
	* dzn/code/dzn.scm (dzn:model-full-name): New method.
	* dzn/code.scm (code:fullscope): Remove.
	(code:scope+name): Remove.
	(code:scope.name)[enum-literal]: New specialization.
	(code:enum-scope)[enum,field-test]: Remove specialization.
	(code:enum-model-scope): Remove.

	code: Remove header- template.
	* dzn/templates/code.scm (header-): Remove.
	* dzn/code.scm (code:x-header-): Remove.

	code: Remove "mortal sin".
	* dzn/code.scm (code:main-out-arg-define-formal, code:trace-q-out):
	Remove "mortal sin".

	c++: Move specialization out of code.
	* dzn/code.scm (code:dzn-locator): Move to ...
	* dzn/code/c++.scm (c++:dzn-locator): ...here.
	* dzn/templates/c++.scm (dzn-locator): Update accordingly.
	* dzn/templates/c++/dzn-locator@instance: New file.

	code: Remove %language parameter.
	* dzn/code.scm (code:main-out-arg, code:variable-name): Remove
	%language parameterization.
	* dzn/commands/code.scm (main): Likewise.
	* dzn/commands/verify.scm (model->mcrl2): Likewise.
	* dzn/command-line.scm (%language): Remove.

	code: Remove entangled toplevel.
	* dzn/code/dzn.scm (%x:source, dzn:extension, %dzn:indenter,
	pipe, dzn:indent): Remove.
	* dzn/code.scm (%x:header, %x:main, have-non-interface-models?,
	code:dump, code:dump-main, code:foreign?, code:header?, code:module,
	code:skel-file, ast->, code:root->): Remove.

	test: hello_foreign: Resurrect for c.
	* dzn/templates/c/include-guard@foreign: New file.
	* test/all/hello_foreign/c/foreign.h: Rename to...
	* test/all/hello_foreign/c/Foreign.h: ..this.  Update accordingly.
	* test/all/hello_foreign/c/foreign.c: Rename to...
	* test/all/hello_foreign/c/Foreign.c: ..this.  Update accordingly.

	c: Update expressions.
	dzn/templates/c/: Update expressions: link to dzn.

	javascript: Remove dead template.
	* dzn/templates/javascript/member-name@variable: Remove.

	c: Update for #:name => #:ids.
	* dzn/code/c.scm (c:formal-data-type): Use ast:name.
	(c:type-name): Likewise.

	test: Resurrect c.
	* test/lib/build.c.make (DEVELOPMENT): New variable.
	(RUNTIME_SOURCES): Use it in new variable.
	(RUNTIME_O): Use it in new variable.
	($(OUT)/test): Use it.  Remove unused MAIN_O.
	* test/lib/build.c++.make ($(OUT)/test): Remove unused MAIN_O.
	* test/lib/local.mk (EXTRA_DIST): Add it.

	code: Update symbol->enum-field to string->enum-field.
	* dzn/code.scm (symbol->enum-field): Rename to...
	(string->enum-field): ...this.
	* dzn/code/c++.scm (c++:enum-field->string): Update users.
	* dzn/code/c.scm (c:get-enum-fields-of-enum): Likewise.

	c: Ast fixes for symbol -> string.
	* dzn/code/c.scm (c:namespace-upcase, c:enum-complete-name-upcase):
	Use string-upcase.

	c: Refactor toplevel.
	* dzn/code/c.scm (root->): New procedure.
	(c:root->): Remove.
	(ast->): Update accordingly.

	build: Help autoconf-2.69 to accept c11 as c99.
	* configure.ac: Accept have_cxx11=true alongside ac_cv_prog_cc_c99.

	cs: Refactor toplevel.
	* dzn/code/cs.scm (root->): New procedure.
	(cs:root->): Remove.
	(ast->): Update accordingly.

	javascript: Refactor toplevel.
	* dzn/code/javascript.scm (root->): New procedure.
	(javascript:root->): Remove.
	(ast->): Update accordingly.

	scheme: Refactor toplevel.
	* dzn/indent.scm (indent): Rename parameter "#:indent" to "#:width".
	* dzn/code-util.scm (code-util:indenter): Add keyword arguments
	"#:width", "#:open", "#:close", "#:no-indent".
	* dzn/code/scheme.scm (root->): Use them in new procedure.
	(scheme:root->): Remove.

	runtime cs: Typo, fixes async rank.
	* runtime/cs/dzn/pump.cs (dzn): Use k.Key instead of k.Key.t: Use full
	Key (Deadline: timeout + rank) to sort timers.

	test: async_ranking: Print ranking in main.cs.
	* test/all/async_ranking/main.cs (Main): Print ranking.

2021-02-10  Jan (janneke) Nieuwenhuizen  <janneke@gnu.org>

	cs: Ast fixes for symbol -> string.
	* dzn/code/cs.scm (direction, formals, cs:args): ): Use symbol for
	direction.

	cs: Namespace fix.
	* dzn/templates/cs.scm (bind-interface-name): Use ast:full-name.  Fixes
	hello_namespace_foreign.

	c++: Remove unused include-statement template.
	* dzn/templates/c++.scm (include-statement): Remove.

	build: Remove GNU make'ism.
	* Makefile.am (GPG_KEY_ID): Use regular assign.  Fixes automkae warning.

	test: hello_namespace_foreign: Add foreign.cs.
	* test/all/hello_namespace_foreign/cs/foreign.cs: New file.

	cs: Do not expand imported foreigns.
	* dzn/code/cc.scm (cs:model): Remove foreign exception.

	code: Do not expand imported foreigns.
	* dzn/code.scm (code:model): Remove foreign exception.

	test: code: Use language include directory, instead of "dzn".
	* test/dzn/dzn.scm (run-code): Add language-specific include directory
	instead of "dzn".
	* test/all/dollars/javascript/includes.dzn: New file.

	test: async_rank: Add main.cs.
	* test/all/async_rank/main.cs: New file.

	test: async_order2: Hardcode trace 2 test in main.cs.
	* test/all/async_order2/main.cs (Main): Update from main.cc.

	test: async_order: Hardcode trace 2 test in main.cs.
	* test/all/async_order/main.cs (Main): Update from main.cc.

	test: cs: Ignore generated main when a handwritten main exists.
	* test/lib/build.cs.make (MAIN): Remove.
	(IN_SOURCES, OUT_SOURCES, RUNTIME_SOURCES): New
	variables.
	($(OUT)/test.exe): Use them.

	test: hello_foreign: Fixes for cs.
	* test/all/hello_foreign_file/cs/glue.cs: Remove.
	* test/all/hello_foreign/cs/foreign.cs: Rename to...
	* test/all/hello_foreign/cs/Foreign.cs: ..this.
	(foreign): Rename to ...
	(Foreign): ...this.

	cs: Ast fixes for #:name -> #:ids.
	* dzn/code/cs.scm (formals, cs:args): Use #:ids instead of #:name.

	c++: Do not expand imported foreigns.
	* dzn/code/c++.scm (c++:model): Remove foreign exception.
	* test/all/hello_foreign_file/c++/stranger.hh: Fix include guards.
	Include "foreign.hh".
	* test/all/hello_foreign_file/c++/stranger.cc: Include "stranger.hh"
	instead of "hello_foreign_file.hh".

	test: Add foreign_import_system.

	runtime cs: Skip foreign events.
	* runtime/cs/dzn/container.cs: Skip events with multiple dots.

	scheme: Fix local variable in blocking context.
	* test/all/blocking_local/blocking_local.dzn: New test.
	* test/all/local.mk (REGRESSION_TESTS): Add it.
	* dzn/templates/scheme/statement@blocking-compound: Use
	"#x:let-variable" instead of "begin".

	scheme: Fix blocking reply in if-clause.
	* test/all/blocking_if_reply/blocking_if_reply.dzn: New test.
	* test/all/local.mk (REGRESSION_TESTS): Add it.
	* dzn/templates/scheme/statement@reply: Wrap assign and release in
	begin.

	test: Disable shell for javascript.
	* test/all/shell/META: Skip execute for javascript.

	test: hello_local: Remove trace.
	* test/all/hello_local/trace: Remove.

2021-02-09  Jan (janneke) Nieuwenhuizen  <janneke@gnu.org>

	scheme: Whitespace cleanups.
	* dzn/templates/scheme.scm (declare-method, declare-async-req-method,
	declare-async-clr-method, expand-on, injected-port-instance-declare,
	injected-member-initializer, provided-port-instance-declare,
	required-port-instance-declare, async-port-instance-declare,
	non-injected-instance-declare, provided-port-reference-declare,
	required-port-reference-declare, provided-port-reference-initializer,
	required-port-reference-initializer, header-data,
	out-binding-initializer): Add newline-infix.
	* dzn/templates/scheme.scm: Remove traling newlines.  Indent template
	invocations, so that "indent" can remove expansion to zero.

	javascript: Whitespace cleanups.
	* dzn/templates/javascript.scm (require-module): Add newline-infix.
	* dzn/templates/javascript: Remove trailing newlines.

	code: Remove code:name.name.
	* dzn/templates/dzn/source@namespace: Remove unused template.
	* dzn/templates/dzn/define-type@extern,
	dzn/templates/javascript/enum-definer@enum:
	dzn/templates/javascript/global-enum-definer@enum: Use ast:name
	instead of code:name.name.
	* dzn/code.scm (code:name.name): Remove.

2021-02-08  Jan (janneke) Nieuwenhuizen  <janneke@gnu.org>

	c++: Whitespace cleanups.
	* dzn/templates/code.scm,
	dzn/templates/c++.scm: Use newline-infix for accessors.
	* dzn/templates/c++: Remove trailing newlines.  Indent template
	invocations, so that "indent" can remove expansion to zero.

	dzn: Whitespace cleanups.
	* dzn/templates/dzn/declare-instance@instance,
	dzn/templates/dzn/in-event@event,
	dzn/templates/dzn/statement@if,
	dzn/templates/dzn/system@system: Whitespace fixes.

2021-02-08  Jan (janneke) Nieuwenhuizen  <janneke@gnu.org>

	indent: Remove empty lines that contain whitespace.
	Assuming that hard newlines in templates have no trailing whitespace,
	then empty lines are produced by a template expanding to nothing.

	* dzn/indent.scm (eat-space): Return space eaten.
	(indent): Refactor.  Remove empty lines with trailing whitespace.

2021-02-08  Jan (janneke) Nieuwenhuizen  <janneke@gnu.org>

	templates: Enable debugging, cleanups.
	Template debugging can be enabled by setting the environment variables

	   DZN_DEBUG_TEMPLATE=x
	   DZN_DEBUG_TEMPLATE2=x
	   DZN_DEBUG_TEMPLATE_ACCESSOR=x

	* dzn/templates.scm (display-primitive): Rename to...
	(display-template): ...this.
	(tree->body): Cleanups, enable debugging with environment variables.

2021-02-05  Rutger van Beusekom  <rutger.van.beusekom@verum.com>

	c++: Remove glue code generation.
	* doc/dezyne.texi (Migrating from ASD to Dezyne): Remove.
	* dzn/code.scm (code:glue): Remove.  Update callers.
	* dzn/glue.scm: Remove.
	* dzn/local.mk (dist_%C%_scm_DATA): Remove it.
	* dzn/templates/glue.scm: Remove.
	* dzn/templates/local.mk: (dist_nocompile_%C%_scm_DATA): Remove it.
	* dzn/code/c++.scm: Do not include it.
	(c++:header-model-glue): Remove.
	* dzn/templates/c++: Remove glue.

	c++: Refactor toplevel.
	* dzn/code/dzn.scm (dzn-async?: Move to...
	* dzn/ast.scm (ast:async?)[interface]: ...this new specialization.
	Update users.
	(ast:base-name): New method.
	* dzn/code-util.scm (code-util:foreign-conflict?,
	code-util:generate-source?): New methods.
	* dzn/code/c++.scm (root->): Use them in new procedure.
	(c++:dump, c++:root->): Remove.
	(ast->): Update accordingly.
	* test/all/hello_foreign_conflict: Rename to...
	* test/all/foreign_conflict: ...this.
	* test/all/local.mk (XFAIL_TESTS): Move here.

2021-02-05  Jan (janneke) Nieuwenhuizen  <janneke@gnu.org>

	dzn: Refactor toplevel.
	* dzn/code-util.scm: New file.
	* dzn/local.mk (dist_%C%_scm_DATA): Add it.
	* dzn/code/dzn.scm (root->): Use it in new procedure.  This removes
	dependency on dzn:dump, dzn:extension, dzn:indenter, dzn:language,
	%language, and %x:source.
	(ast->): Use it.
	(dzn:dump, dzn:file2file, dzn:om): Remove.

2021-02-12  Jan (janneke) Nieuwenhuizen  <janneke@gnu.org>

	c++msvc11: Remove remnants.
	* runtime/c++-msvc11/pump.cc,
	runtime/c++-msvc11/runtime.cc,
	test/all/shell/c++-msvc11/main.cc: Remove.
	* test/lib/build.c++-msvc11.make: Remove.

2021-02-05  Jan (janneke) Nieuwenhuizen  <janneke@gnu.org>

	c++03: Remove.
	* runtime/c++03/dzn/container.hh,
	runtime/c++03/dzn/coroutine.hh,
	runtime/c++03/dzn/locator.hh,
	runtime/c++03/dzn/meta.hh.in,
	runtime/c++03/dzn/pump.hh,
	runtime/c++03/dzn/runtime.hh,
	runtime/c++03/pump.cc,
	runtime/c++03/runtime.cc: Remove runtime.
	* .gitignore: Update accordingly.
	* configure.ac: Remove checks for boost and c++03.  Remove "have_c++03"
	conditional.
	* dzn/code/c++03.scm: Remove.
	* dzn/code/local.mk (dist_%C%_scm_DATA, dist_noinst_DATA): Remove it.
	* dzn/templates/c++03.scm: Remove.
	* dzn/templates/c++03: Remove templates.
	* test/all/empty_dollars/META,
	test/all/hello_namespace_shadow/META: Remove exception for c++03.

2021-02-05  Jan (janneke) Nieuwenhuizen  <janneke@gnu.org>

	c++-msvc11: Remove remnants.
	The code module for c++-msvc11 was not ported to 2.10; some files
	remained in the archive, though.

	* runtime/c++-msvc11/dzn/meta.hh.in: Remove file.
	* .gitignore: Update accordingly.
	* runtime/c++-msvc11/dzn/container.hh,
	runtime/c++-msvc11/dzn/context.hh,
	runtime/c++-msvc11/dzn/coroutine.hh,
	runtime/c++-msvc11/dzn/locator.hh,
	runtime/c++-msvc11/dzn/pump.hh,
	runtime/c++-msvc11/dzn/runtime.hh: Remove symlink.

2021-02-15  Rutger van Beusekom  <rutger.van.beusekom@verum.com>

	parse: Filter duplicate imports based on prefix.
	* dzn/parse.scm (file+import-content-alist): Use canonicalization to
	avoid importing a file twice.
	* test/all/parse_duplicate_import_prefix: New test.
	* test/all/local.mk (PARSER_TESTS): Add it.

	parse: Fix import error.
	* dzn/parse.scm (parse:handle-exceptions): Update wording.
	(file+import-content-alist): Throw exception when imported file is not
	found.
	(imported-from): Add docstring.
	* test/all/parse_non_existent_import: New test.
	* test/all/local.mk (PARSER_TESTS): Add it.

2021-01-22  Jan (janneke) Nieuwenhuizen  <janneke@gnu.org>

	verify: Fix parse-error in trace.
	Reported by Joran Jessurun <joran.jessurun@gmail.com> via IRC.

	* dzn/verify/traces.scm (parse): Add port-scope to 'flush'.  Fixes
	parse-error for flush in namespace.

2021-02-10  Jan (janneke) Nieuwenhuizen  <janneke@gnu.org>

	test: async_prio: Typo fix.
	* test/all/async_prio/main.scm (main): Typo.

2021-02-03  Jan (janneke) Nieuwenhuizen  <janneke@gnu.org>

	Revert "REVERTME Use binary tarball suffixes for ANNOUNCE."
	This reverts commit d57bcaf9cab732fe6c145034b18b5eb33fe7a5df.

	doc: Add gitlab dezyne bug list.
	* doc/dezyne.texi (Contributing): Mention bug list.

2021-01-05  Rutger van Beusekom  <rutger.van.beusekom@verum.com>

	doc: Add bug reporting to Contributing.

2021-01-07  Jan (janneke) Nieuwenhuizen  <janneke@gnu.org>

	doc: Update ANNOUNCE-2.11.0.
	* doc/announce/ANNOUNCE-2.11.0: Fix issues link.

2021-01-04  Rutger van Beusekom  <rutger.van.beusekom@verum.com>

	doc: Update ANNOUNCE-2.11.0.
	* doc/announce/ANNOUNCE-2.11.0: Post-release update: add hashes.
	Reword, add bug reporting.  Update dzn-lsp version.

2021-01-04  Jan (janneke) Nieuwenhuizen  <janneke@gnu.org>

	build: Oops use `$(PACKAGE)' as default for gen-announce.
	* Makefile.am (--package-name): Use $(PACKAGE).

2020-12-24  Jan (janneke) Nieuwenhuizen  <janneke@gnu.org>

	guix: dezyne: Update to 2.11.0.
	* guix/gnu/packages/dezyne.scm (dezyne)[source]: : Update to 2.11.0.

2020-12-18  Jan (janneke) Nieuwenhuizen  <janneke@gnu.org>

	doc: Add ANNOUNCE-2.11.0.
	* doc/announce/ANNOUNCE-2.11.0: New file.

	doc: Update `ROADMAP'.
	* ROADMAP (Release 2.11): Remove, moving items to ...
	(Release 2.12): ...here when open, and to...
	(DONE): ...here when done.

2020-12-15  Jan (janneke) Nieuwenhuizen  <janneke@gnu.org>

	guix: dezyne: Update to 2.11.0.rc10.
	* guix/gnu/packages/dezyne.scm (dezyne)[source]: : Update to 2.11.0.rc10.

2020-12-11  Jan (janneke) Nieuwenhuizen  <janneke@gnu.org>

	guix: dezyne: Update to 2.11.0.rc9.
	* guix/gnu/packages/dezyne.scm (dezyne)[source]: : Update to 2.11.0.rc9.

2020-12-09  Jan (janneke) Nieuwenhuizen  <janneke@gnu.org>

	guix: dezyne: Update to 2.11.0.rc8.
	* guix/gnu/packages/dezyne.scm (dezyne)[source]: : Update to 2.11.0.rc8.

2020-12-07  Jan (janneke) Nieuwenhuizen  <janneke@gnu.org>

	guix: dezyne: Update to 2.10.1.
	* guix/gnu/packages/dezyne.scm (dezyne)[source]: : Update to 2.10.1.

2020-12-04  Jan (janneke) Nieuwenhuizen  <janneke@gnu.org>

	guix: dezyne: Update to 2.11.0.rc7.
	* guix/gnu/packages/dezyne.scm (dezyne)[source]: : Update to 2.11.0.rc7.

2020-12-02  Jan (janneke) Nieuwenhuizen  <janneke@gnu.org>

	guix: dezyne: Update to 2.11.0.rc6.
	* guix/gnu/packages/dezyne.scm (dezyne)[source]: : Update to 2.11.0.rc6.

2020-11-27  Jan (janneke) Nieuwenhuizen  <janneke@gnu.org>

	guix: dezyne: Update to 2.11.0.rc5.
	* guix/gnu/packages/dezyne.scm (dezyne)[source]: : Update to 2.11.0.rc5.

2020-11-25  Jan (janneke) Nieuwenhuizen  <janneke@gnu.org>

	guix: dezyne: Update to 2.11.0.rc4.
	* guix/gnu/packages/dezyne.scm (dezyne)[source]: : Update to 2.11.0.rc4.

2020-11-19  Jan (janneke) Nieuwenhuizen  <janneke@gnu.org>

	guix: dezyne: Update to 2.11.0.rc3.
	* guix/gnu/packages/dezyne.scm (dezyne)[source]: : Update to 2.11.0.rc3.

2020-11-04  Jan (janneke) Nieuwenhuizen  <janneke@gnu.org>

	guix: dezyne: Update to 2.11.0.rc2.
	* guix/gnu/packages/dezyne.scm (dezyne)[source]: : Update to 2.11.0.rc2.

2020-10-24  Jan (janneke) Nieuwenhuizen  <janneke@gnu.org>

	guix: dezyne: Update to 2.11.0.rc1.
	* guix/gnu/packages/dezyne.scm (dezyne)[source]: : Update to 2.11.0.rc1.

2020-07-06  Jan (janneke) Nieuwenhuizen  <janneke@gnu.org>

	guix: Update hash.
	* guix/gnu/packages/dezyne.scm (dezyne): Update hash.

2020-09-24  Jan (janneke) Nieuwenhuizen  <janneke@gnu.org>

	REVERTME Use binary tarball suffixes for ANNOUNCE.
	* Makefile.am (gen-announce): Use x86_64-linux.tar.gz, i686-windows.zip.

2020-08-14  Jan (janneke) Nieuwenhuizen  <janneke@gnu.org>

	build: Add dezyne-tutorial.
	* .gitignore: Update.
	* Makefile.am (html-manual, html-tutorial): New targets.
	(html): Use them.
	(doc/html/dezyne-tutorial/index.html): New target.
	(publish): Also publish tutorial.
	(doc/version-tutorial.texi): New target.

2020-07-08  Jan (janneke) Nieuwenhuizen  <janneke@gnu.org>
	    Rob Wieringa  <Rob.Wieringa@verum.com>.

	doc: Add dezyne-tutorial.
	TODO: Remove Eclipse, general review.  Move (parts) into dezyne-ide?


	* doc/dezyne-tutorial.texi: Initial import.

2020-03-25  Jan Nieuwenhuizen  <janneke@gnu.org>

	doc: Update `HACKING'.
	* HACKING: Add info for Documentation hacking.

2020-03-25  Jan Nieuwenhuizen  <janneke@gnu.org>

	doc: Add Programming Index'.
	TODO: sort/split @cindex entries

	* doc/dezyne.texi (Concept Index): Rename from `Index'.
	(Programming Index): New node.

2020-12-14  Jan (janneke) Nieuwenhuizen  <janneke@gnu.org>

	doc: Update 'NEWS'.
	* NEWS: Release update.

2020-12-08  Jan (janneke) Nieuwenhuizen  <janneke@gnu.org>

	doc: Update 'ROADMAP'.
	* ROADMAP (Release 2.11, unsorted): Remove cruft.  Move done items...
	(DONE): ...here.

2020-12-21  Jan (janneke) Nieuwenhuizen  <janneke@gnu.org>

	build: Parameterize package-name for gen-announce.
	* Makefile.am (--package-name): Use $(PACKAGE_NAME).

2020-12-18  Jan (janneke) Nieuwenhuizen  <janneke@gnu.org>

	parse: Do not use include path to resolve top level file.
	This makes "dzn parse -I . /no/such/dir/hello.dzn" fail instead of silently
	picking-up ./hello.dzn.

	* dzn/parse.scm (file+import-content-alist): Refactor: Move initial
	read of loop.  Move pre-processing check out of loop.  Do not accumulate
	import path.
	(imported-file-names): Remove loop.
	* test/all/parse_import_both/ihello.dzn,
	test/all/parse_import_both/one.dzn,
	test/all/parse_import_both/parse_import_both.dzn,
	test/all/parse_import_both/two.dzn,
	test/all/parse_import_both/baseline/verify/parse_import_both.stderr: New
	test with baseline.
	* test/all/parse_import_twice/ihello.dzn
	test/all/parse_import_twice/parse_import_twice.dzn,
	test/all/parse_import_twice/baseline/verify/parse_import_twice.stderr:
	New test with baseline.

2020-12-17  Jan (janneke) Nieuwenhuizen  <janneke@gnu.org>

	parse: Support --parse-tree and --peg and file stream.
	* dzn/parse.scm (file->ast): Oops, pass #:parse-tree? #:skip-wfc? to
	string->ast.

2020-12-15  Jan (janneke) Nieuwenhuizen  <janneke@gnu.org>

	lookup: Support port,event lookup for illegal triggers.
	* dzn/parse/tree.scm (.event-name, .port-name): Support
	illegal-trigger.
	* dzn/parse/lookup.scm (resolve-trigger): Handle illegal-trigger.
	(context-lookup-definition): Expect illegal-trigger.
	* test/language/illegal.dzn: New file.
	* test/language/local.mk (EXTRA_DIST): Add it.
	* test/dzn/language.scm ("lookup illegal interface trigger->event"),
	("lookup illegal trigger->port"),
	("lookup illegal trigger->event"): Use it in new tests.

2020-12-14  Jan (janneke) Nieuwenhuizen  <janneke@gnu.org>

	build: Avoid installation of disabled languages.
	* dzn/code/local.mk (dist_noinst_%C%_scm_DATA): Change to
	(dist_noinst_DATA): ..this.
	* dzn/templates/local.mk
	* dzn/templates/local.mk (dist_nocompile_%C%_scm_DATA): When disabled, use...
	(dist_noinst_DATA): ...this.

2020-12-15  Jan (janneke) Nieuwenhuizen  <janneke@gnu.org>

	cat, ls: Remove commands.
	* Makefile.am (dist_man_MANS): Remove entries for dzn-cat.1 and
	dzn-ls.1.
	* doc/dezyne.texi ("Invoking dzn cat"),
	("Invoking dzn ls"): Remove.
	* dzn/commands/cat.scm,
	dzn/commands/ls.scm: Remove.
	* dzn/commands/local.mk (dist_%C%_scm_DATA): Remove them.
	* dzn/config.scm.in (%root-dir): Remove.

2020-12-14  Jan (janneke) Nieuwenhuizen  <janneke@gnu.org>

	cat, ls: Support reading from DZN_FSROOT.
	* dzn/config.scm.in (%root-dir): Use DZN_FSROOT if set.
	* dzn/commands/cat.scm (main): Handle /share.
	* dzn/commands/ls.scm (main): Likewise.

2020-12-14  Jan (janneke) Nieuwenhuizen  <janneke@gnu.org>

	build: Do not add c++ when --enable-languages is given.
	This supports building --enable-languages=scheme without adding c++.

	* configure.ac: Set have_cxx11 to false if not in enable_languages.

2020-12-14  Jan (janneke) Nieuwenhuizen  <janneke@gnu.org>

	test: language: Complete interface names in incomplete port.
	* dzn/parse/complete.scm (context:complete): Complete interface names
	in incomplete port.
	* test/language/component1b.dzn: Add more trailing whitespace.
	* test/dzn/language.scm ("language component1b --point=15,10"):
	("language component1b --point=15,11"),
	("language component1b --point=15,12"),
	("language component1b --point=16,0"): Use it in new tests.

2020-12-11  Rutger van Beusekom  <rutger.van.beusekom@verum.com>

	peg: Remove %peg:fall-back? condition.
	* dzn/parse/peg.scm (-enter-frame-): Remove condition.
	(-exit-frame-): idem.
	(-add-var-): idem.
	(-var-): idem.

2020-12-10  Rutger van Beusekom  <rutger.van.beusekom@verum.com>

	peg: import-skip-parser: Parse to */ or EOF for imports.
	* dzn/parse/peg.scm (peg-eof): Add EOF skip parser.
	(peg-block-strict): Rename.
	(peg-import-skip): New skip parser for imports.
	(peg:import-skip-parse): Export peg-import-skip.
	* dzn/parse.scm (imported-file-names): Use peg:import-skip-parse.
	(peg:syntax-error->message): Extend match for strings.

	parse: Refactor error handling.
	* dzn/parse.scm (peg:syntax-error-message): Remove function.
	(peg:handle-syntax-error): Remove duplicate condition, inline removed function.
	(string->parse-tree): Add comment.

2020-12-10  Jan (janneke) Nieuwenhuizen  <janneke@gnu.org>

	language: Better support for namespaces.
	* dzn/parse/tree.scm (.name): Support namespace.
	* dzn/parse/lookup.scm (look-in-scope): Always look in imports when at
	root.
	(lookup-n): When moving out of a namespace, add its scope to the name.
	(resolve-port): Lookup interfaces in namespace too.
	* test/language/space-hello.dzn,
	test/language/space-ihello.dzn: New files.
	* test/language/local.mk (EXTRA_DIST): Add them.
	* test/dzn/language.scm ("completion provides interfaces, imported, namespace"),
	("lookup port->namespace-interface"): Use them in new tests.

2020-12-10  Jan (janneke) Nieuwenhuizen  <janneke@gnu.org>

	peg: Add namespace-root indirection for elements.
	This produces a well-behaved namespace root in the parse tree.

	* dzn/parse/peg.scm (peg:parse)[namespace]: Move (type / namespace /
	interface / component) to...
	[namespace-root]: ...here.
	* dzn/parse/ast.scm (parse-tree->ast)[namespace-root]: Add matcher.
	[namespace]: Update accordingly.
	* dzn/parse/tree.scm (.namespace-root): New procedure.
	(tree:declaration*, tree:top*): Use it.

2020-12-11  Jan (janneke) Nieuwenhuizen  <janneke@gnu.org>

	test: language: Add component1a, component1b.
	* test/language/component1a.dzn,
	test/language/component1b.dzn: New files.
	* test/language/local.mk (EXTRA_DIST): Add them.
	* test/dzn/language.scm ("language component1a"),
	("language component1b"): Use them in new tests.
	* dzn/parse/complete.scm (context:complete): Add port-qualifiers.

2020-12-17  Jan (janneke) Nieuwenhuizen  <janneke@gnu.org>

	test: Add parse_missing_event.
	* test/all/parse_missing_event/parse_missing_event.dzn: New test.
	* test/all/parse_missing_event/baseline/verify/parse_missing_event.stderr:
	With baseline.
	* test/all/local.mk (PARSER_TESTS): Add it.

2020-11-11  Jan (janneke) Nieuwenhuizen  <janneke@gnu.org>

	test: Add parse_parameter_mismatch.
	* test/all/parse_parameter_mismatch/parse_parameter_mismatch.dzn: New test.
	* test/all/parse_parameter_mismatch/baseline/verify/parse_parameter_mismatch.stderr:
	With baseline.
	* test/all/local.mk (PARSER_TESTS): Add it.
	* dzn/wfc.scm (argument-type-check): New procedure.
	(wfc)[<arguments>]: New specialization.
	[<action>,<call>]: Use it.
	[<formals>]: New specialization.
	[<trigger>]: Use it.
	* dzn/ast.scm (.event, ast:event-formal): Robustify agains non
	well-formed ast.
	* test/all/wf_undefined/baseline/verify/wf_undefined.stderr: Update baseline.

2020-12-04  Jan (janneke) Nieuwenhuizen  <janneke@gnu.org>

	language: Support completion lookup in imports.
	* dzn/parse/complete.scm (complete): Add parameter #:resolve-file.
	* dzn/parse/tree.scm (tree:model*): Remove.
	(tree:top*): Resolve imports.
	(tree:namespace*, tree:component*, tree:interface*): Use it.
	* test/dzn/language.scm (test-complete): Add parameter #:file-name->parse-tree.
	("completion provides imported interfaces",
	"completion on imported triggers"):  New tests.

2020-12-03  Jan (janneke) Nieuwenhuizen  <janneke@gnu.org>

	language: Refactor lookup in imports.
	* test/language/ienum.dzn,
	test/language/ihello-enum.dzn,
	test/language/ihello-int.dzn,
	test/language/ihello.dzn,
	test/language/iint.dzn,
	test/language/import.dzn: New files.
	* test/language/local.mk (EXTRA_DIST): Add them.
	* test/dzn/language.scm:
	("lookup call->function",
	"lookup on->imported trigger-port",
	"lookup port->imported-interface",
	("lookup type->imported enum"): Use them in new tests.
	* dzn/parse/lookup.scm (%file-name->parse-tree): Move to..
	* dzn/parse/tree.scm (%file-name->parse-tree): ...here.
	(%resolve-file): New parameter.
	(lookup-location): Add #:resolve-file parameter.
	(lookup-definition): Likewise.

	language: Add file-name to lookup result.
	* dzn/parse/tree.scm (tree:file-name): New procedure.
	(tree:add-file-name): New procedure.
	(.end, .file-name, .pos): Support locations with file-name.
	* dzn/parse/lookup.scm (tree:lookup-var): Use it to
	return location with file-name.
	(look-in-scope): Likewise.  Add context parameter.
	(lookdown): Likewise.  Update callers.
	(lookup-n): Likewise.
	(tree:->location): New procedure.
	(lookup->location): Remove.
	(lookup-location):
	* dzn/commands/language.scm (lookup): Remove kludge to add file-name
	to result.

	parse: Add file-name to root.
	* dzn/parse.scm (string->parse-tree): Add file-name to root.
	* dzn/parse/ast.scm (parse-tree->ast): Handle file-name.

	language: Use debugity and stderr instead of verbose and stdout.
	* dzn/commands/language.scm (main): Use debugity and stderr instead of
	verbose and stdout.

2020-12-02  Jan (janneke) Nieuwenhuizen  <janneke@gnu.org>

	language: Support function lookup.
	* dzn/parse/tree.scm (.name): Support 'call.
	(.function-name): New procedure.
	* dzn/parse/lookup.scm (resolve-call): New procedure.
	(context-lookup-definition): Use them to lookup function.
	* test/language/function.dzn: New file.
	* test/language/local.mk (EXTRA_DIST): Add it.
	* test/dzn/language.scm ("lookup call->function"): New test.

2020-11-30  Jan (janneke) Nieuwenhuizen  <janneke@gnu.org>

	test: language: Support completion of enum literal, field, local, reply.
	* dzn/parse/complete.scm ( context:locals, context:members,
	complete:variable-names, complete-enum, complete:type-names,
	complete-enum-literal, complete-on): New procedures.
	(complete): Use them, to pass new tests:
	* test/language/component-enum.dzn: New file.
	* test/language/local.mk (EXTRA_DIST): Add it.
	* test/dzn/language.scm ("completion enum literal"),
	("completion enum field"),
	("completion enum local"),
	("completion enum reply"): Use them in new tests.
	("completion component-enum local"): Update.

	language: Support typed expression completion.
	* dzn/parse/complete.scm (at-location?): When incomplete, ignore end
	location.
	(context:event-names): Add #:predicate keyword parameter.
	(context:port-event-names): Add #:event-predicate parameter, pass it.
	(context:trigger-names): Likewise.
	(context:action-names): Likewise.
	(tree:function-names): New procedure.
	(complete): Use them, to pass new tests:
	* test/language/component-enum-local.dzn,
	test/language/component-enum-member.dzn: New files.
	* test/language/local.mk (EXTRA_DIST): Add them.
	* test/dzn/language.scm ("completion component-enum member"),
	("completion component-enum local"): Use them in new tests.

2020-11-27  Jan (janneke) Nieuwenhuizen  <janneke@gnu.org>
	    Johri van Eerd  <johri.van.eerd@verum.com>

	language: Add formals to completion of trigger.
	* test/language/component-on.dzn: New file.
	* test/language/local.mk (EXTRA_DIST): Add it.
	* dzn/parse/complete.scm (tree:port-event-names): Add formals to
	completion of trigger.
	(complete): Add case for component-on.dzn.
	* test/dzn/language.scm ("completion component-on"): New test.
	("language component2", "language component3", "language component4",
	"language component5", "language component6", "language component9",
	"language component9a", "language component10", "language
	component10a"): Update to add triggers.

2020-11-27  Jan (janneke) Nieuwenhuizen  <janneke@gnu.org>

	lookup: Fix field-test lookup of field.
	Reported by Paul Hoogendijk <paul.hoogendijk@verum.com> via IRC.

	* test/language/enum.dzn: New file.
	* test/language/local.mk (EXTRA_DIST): Add it.
	* test/dzn/language.scm ("lookup field-test->var", "lookup
	field-test->enum-field"): Use it, fix broken baseline.
	* dzn/parse/lookup.scm (resolve-field-test): Oops, do not shadow
	"name".

2020-11-26  Jan (janneke) Nieuwenhuizen  <janneke@gnu.org>
	    Johri van Eerd  <johri.van.eerd@verum.com>

	language: Add completion tests.
	* test/language/component-behaviour.dzn,
	test/language/component-empty.dzn,
	test/language/component-provides.dzn,
	test/language/component-state.dzn: New files.
	* test/language/local.mk (EXTRA_DIST): Add them.
	* test/dzn/language.scm ("completion component-empty", "completion
	component-provides", "completion component-behaviour", "completion
	component-state"): Use them in new tests.
	* dzn/parse/complete.scm (tree:port-event-names): Add formals.
	(tree:int-names, tree:type-names, tree:enum-value-names,
	tree:type-value-names): New procedures.
	(complete): Use them to fix new completion tests.

2020-11-26  Jan (janneke) Nieuwenhuizen  <janneke@gnu.org>

	language: Make ,COLUMN optional in --point=LINE[,COLUMN].
	* dzn/commands/language.scm (parse-opts): COLUMN is optional and
	defaults to 0.
	(main)[string->point]: Support missing column.

2020-11-25  Rutger van Beusekom  <rutger.van.beusekom@verum.com>

	complete: Add test and fix trigger and action completion.
	* dzn/parse/complete.scm (complete): New completion meme.
	* test/dzn/language.scm ("language component3"): Fix expectation.
	("language component4"): Fix expectation.
	("language component9"): New test.
	("language component9a"): New test.
	("language component10"): New test.
	("language component10a"): New test.
	* test/language/component9.dzn: New test input.
	* test/language/component9a.dzn: New test input.
	* test/language/component10.dzn: New test input.
	* test/language/component10a.dzn: New test input.
	* test/language/local.mk (EXTRA_DIST): Add them.

2020-11-23  Rutger van Beusekom  <rutger.van.beusekom@verum.com>

	parse: Regular parse before fall-back.

2020-11-27  Jan (janneke) Nieuwenhuizen  <janneke@gnu.org>

	commands: Allow options after file names.
	Revert long standing thinko, we need to stop parsing to find the command
	in the top level script; the command scripts can be more relaxed.

	* dzn/commands/cat.scm (parse-opts): Remove #:stop-at-first-non-option.
	* dzn/commands/code.scm (parse-opts): Likewise.
	* dzn/commands/hello.scm (parse-opts): Likewise.
	* dzn/commands/language.scm (parse-opts): Likewise.
	* dzn/commands/ls.scm (parse-opts): Likewise.
	* dzn/commands/parse.scm (parse-opts): Likewise.
	* dzn/commands/trace.scm (parse-opts): Likewise.
	* dzn/commands/traces.scm (parse-opts): Likewise.
	* dzn/commands/verify.scm (parse-opts): Likewise.
	* dzn/scm2json.scm (parse-opts): Likewise.

2020-11-23  Jan (janneke) Nieuwenhuizen  <janneke@gnu.org>

	parse: Add -f,--fall-back option.
	* dzn/commands/parse.scm (parse-opts): Add -f,--fall-back option.
	(parse): Use it to enable %peg:fall-back? parser.

2020-11-20  Jan (janneke) Nieuwenhuizen  <janneke@gnu.org>

	test: language: Start lookup test suite.
	* test/dzn/language.scm (test-context): New procedure, split out
	from...
	(test-complete): ...here.
	(file-name->parse-tree): New procedure.
	(test-lookup): Use it.
	("lookup"): New test suite.
	* test/language/deep-space-enum.dzn,
	test/language/ilookup.dzn,
	test/language/int.dzn,
	test/language/interface-enum.dzn,
	test/language/lookup.dzn,
	test/language/namespace-enum.dzn,
	test/language/system.dzn: New files.
	* test/language/local.mk (EXTRA_DIST): Update accordingly.

2020-11-21  Jan (janneke) Nieuwenhuizen  <janneke@gnu.org>

	language: Add -l,--lookup option.
	* dzn/commands/language.scm (main): Add -c,--complete and -l,--lookup
	options.  Add support for --lookup.

2020-11-20  Jan (janneke) Nieuwenhuizen  <janneke@gnu.org>

	test: language: Refactor "complete" test.
	* test/dzn/language.scm (assert-completion-options, assert-completion,
	assert-completion-offset): Remove.
	(test-complete): New procedure.
	("language"): Use it to refactor tests.  Move baselines to test code.
	("language interface0"): Rename to ...
	("language empty"): ...this.
	("language interface1"): Rename to ...
	("language interf_"): ...this.
	("language interface1b"): Rename to ...
	("language interface _"): ...this.
	("language interface2"): Rename to ...
	("language interface-I"): ...this.
	("language interface3"): Rename to ...
	("language interface I {"): ...this.
	("language interface4"): Rename to ...
	("language interface I { in _"): ...this.
	("language interface5"): Rename to ...
	("language interface I { ..; in _"): ...this.
	* test/language/interface2.dzn: Rename to ...
	* test/language/interface-I.dzn: ...this.
	* test/language/interface3.dzn: Rename to ...
	* test/language/interface-I-open.dzn: ...this.
	* test/language/interface4.dzn: Rename to ...
	* test/language/interface-I-in.dzn: ...this.
	* test/language/interface5.dzn: Rename to ...
	* test/language/interface-I-in2.dzn: ...this.
	* test/language/interface-I-enum-in.dzn
	* test/language/component0.dzn,
	test/language/interface0.dzn,
	test/language/interface1.dzn,
	test/language/interface1b.dzn: Remove.
	* test/language/component0.dzn.baseline,
	test/language/component1.dzn.baseline,
	test/language/component2.dzn.baseline,
	test/language/component3.dzn.baseline,
	test/language/component4.dzn.baseline,
	test/language/component5.dzn.baseline,
	test/language/component6.dzn.baseline,
	test/language/component7.dzn.baseline,
	test/language/component8.dzn.baseline,
	test/language/interface0.dzn.baseline,
	test/language/interface1.dzn.baseline,
	test/language/interface1b.dzn.baseline,
	test/language/interface5b.dzn.baseline,
	test/language/interface6.dzn.baseline,
	test/language/interface7.dzn.baseline,
	test/language/interface8.dzn.baseline,
	test/language/interface9.dzn.baseline,
	test/language/interface9b.dzn.baseline,
	test/language/typo.dzn.baseline: Remove.
	* test/language/local.mk (EXTRA_DIST): Update accordingly.

2020-11-19  Jan (janneke) Nieuwenhuizen  <janneke@gnu.org>

	parse/util: New library.
	* dzn/parse/util.scm: New file.
	* dzn/parse/local.mk (dist_%C%_scm_DATA): Add it.

	parse/lookup: New library.
	* dzn/parse/lookup.scm: New file.
	* dzn/parse/local.mk (dist_%C%_scm_DATA): Add it.

	parse/complete: Move and split-off completion library.
	* dzn/completion.scm: Move to ...
	* dzn/local.mk (dist_%C%_scm_DATA): ...remove it here...
	* dzn/parse/complete.scm: ...here, and split-out to...
	* dzn/parse/tree.scm: ...new file here.
	* dzn/parse/local.mk (dist_%C%_scm_DATA): Add them.
	* dzn/commands/language.scm: Update user.

2020-12-04  Jan (janneke) Nieuwenhuizen  <janneke@gnu.org>

	peg: Move port qualifiers out of direction.
	This produces a well-behaved port in the parse tree.

	* dzn/parse/peg.scm (peg:parse)[port-direction]: Move external?, injected? to...
	[port-qualifiers]: ...here.
	[port]: Add port-qualifiers.
	* dzn/parse/ast.scm (parse-tree->ast)[port]: Update accordingly.

2020-11-30  Jan (janneke) Nieuwenhuizen  <janneke@gnu.org>

	peg: Fix tree for behaviour, behaviour-compound.
	* dzn/parse/peg.scm (peg:parse)[behaviour-compound]: Move '*' ...
	[behaviour-statements]: ...here.

	peg: Fix deep backtracking on component-state.dzn.
	* dzn/parse/peg.scm (peg:parse)[not-expression]: Remove
	"!unknown-identifier".
	[assign,if-statement]: Add `#' for fall-back.
	* test/all/wf_variableInitExpression/baseline/verify/wf_variableInitExpression.stderr,
	test/all/undefined/interface/if/baseline/verify/if.stderr,
	test/all/undefined/interface/guard/baseline/verify/guard.stderr,
	test/all/undefined/component/if/baseline/verify/if.stderr,
	test/all/undefined/component/guard/baseline/verify/guard.stderr: Update baseline.

2020-11-23  Jan (janneke) Nieuwenhuizen  <janneke@gnu.org>

	peg: Remove add-var from parse-tree.
	* dzn/parse/peg.scm (peg:parse)[add-var]: Use body instead of all.
	* dzn/parse/ast.scm (parse-tree->ast): Remove case for 'add-var.

2020-11-13  Rutger van Beusekom  <rutger.van.beusekom@verum.com>

	parse: Expose file+import-content-alist and imported-from for LSP.
	* dzn/parse.scm (file+import-content-alist): Change imports parameter
	to keyword #:imports, add #:content-alist parameter.

2020-11-11  Rutger van Beusekom  <rutger.van.beusekom@verum.com>

	peg: Disallow newlines between dollars.
	* dzn/parse/peg.scm (dollars-no-skip): New function to disable skip
	parsing for dollars.
	* test/all/newlines_between_dollars/*: Add test.
	* test/all/local.mk (PARSER_TESTS): Add test.

2020-11-02  Rutger van Beusekom  <rutger.van.beusekom@verum.com>

	Add 'dzn language'.
	* dzn/commands/language.scm: New file for command.
	* dzn/commands/local.mk (dist_%C%_scm_DATA): Add it.
	* dzn/completion.scm: New library for completion.
	* dzn/local.mk (dist_%C%_scm_DATA): Add it.
	* test/dzn/language.scm: New test for completion.
	* test/language/*: New test input and baselines for completion.
	* test/language/local.mk: New file to add them.
	* Makefile.am: Include it.
	(dist_man_MANS): Add doc/dzn-language.1.
	* doc/dezyne.texi ("Invoking dzn language"): New section.

2020-11-26  Rutger van Beusekom  <rutger.van.beusekom@verum.com>

	peg/codegen: Stop fall-back skipping whithout progress.
	* dzn/peg/codegen.scm (%fall-back-skip-at): New parameter.
	(fall-back-skip): Use it to stop when there is no progress.

	dzn/peg/codegen: Cleanup.
	* dzn/peg/codegen.scm (fall-back-skip): Catch 'syntax-error.
	(cg-and): Remove commented out code.

2020-11-12  Jan (janneke) Nieuwenhuizen  <janneke@gnu.org>

	parse: Refactor interface for IDE.
	* dzn/commands/parse.scm (dump-model-stream, parse-): Remove.
	(handle-parser-exceptions): Move to ...
	* dzn/parse.scm (parse:handle-exceptions) ... here.
	(file->ast): Use it to handle exceptions, except when new #:debug?
	parameter is set.
	(file->stream): Likewise, and and rename from...
	(preprocess): ...this.

2020-11-03  Rutger van Beusekom  <rutger.van.beusekom@verum.com>

	parse, parse/peg: Report errors derived from PEG grammar.
	* dzn/parse.scm (peg:imported-from->message): Refactor to idiom.
	(peg:syntax-error->message): Handle unknown identifiers.
	* dzn/parse/peg.scm (peg:parse): Refactor PEG grammar to show
	cohesion.
	* test/all/undefined/*: Add undefined identifier tests.
	* test/all/*/baseline/*.stderr: Update baselines accordingly.

2020-10-28  Rutger van Beusekom  <rutger.van.beusekom@verum.com>

	parse: Expose string->parse-tree in preparation for completion.
	* dzn/parse.scm (parse-file+import-content-alist): Refactor into ...
	(string->parse-tree): New function.

	parse/ast, parse/peg: Rename data to dollars.
	* dzn/parse/peg.scm (peg:parse): Use DOLLARS instead of DATA.
	* dzn/parse/ast.scm (parse-tree->ast): Update accordingly.
	* test/all/parse_import_path/baseline/verify/parse_import_path.stderr,
	test/all/parse_preprocessed_foo/baseline/verify/parse_preprocessed_foo.stderr,
	test/all/parse_preprocessed_imported_bar/baseline/verify/parse_preprocessed_imported_bar.stderr,
	test/all/parse_syntax/baseline/verify/parse_syntax.stderr: Update baseline.

2020-10-30  Rutger van Beusekom  <rutger.van.beusekom@verum.com>

	parse, parse/peg: Make syntax-error message more informative.
	* dzn/parse.scm (peg:syntax-error->message): New function.
	(peg:syntax-error-message): Use it.
	* dzn/parse/peg.scm (peg:parse): Update grammar with useful user
	feedback.

	parse/peg: Update grammer to expect behaviour for completion.
	* dzn/parse/peg.scm (peg:parse): Handle completion.
	* test/all/wf_interfaceMustDefineBehaviour/baseline/verify/wf_interfaceMustDefineBehaviour.stderr:
	Update.

	peg/codegen: Skip typos using fall-back parsing.
	* dzn/peg/codegen.scm (fall-back-skip): Skip over unmatched input.
	(format-error): Fix out of bounds access.

2020-12-07  Jan (janneke) Nieuwenhuizen  <janneke@gnu.org>

	doc: Update 'NEWS'.
	* NEWS (Changes in 2.10.1 since 2.10.0): New section.

	doc: Update 'ROADMAP'.
	* ROADMAP (Release 2.11, unsorted): Move done items...
	(DONE): ...here.

2020-11-27  Jan (janneke) Nieuwenhuizen  <janneke@gnu.org>

	build: Add non-configured language sources to tarball.
	* dzn/code/local.mk (dist_nocompile_%C%_scm_DATA): New variable.  Add
	non-configured sources: c++.scm, javascript.scm, scheme.scm.
	* dzn/templates/local.mk: Unconditionally distribute templates for
	c++, javascript, scheme.

	doc: Update 'ROADMAP'.
	* ROADMAP (Release 2.10, unsorted): Remove
	(Release 2.11, unsorted): Move done items...
	(DONE): ...here.

2020-11-24  Jan (janneke) Nieuwenhuizen  <janneke@gnu.org>

	emacs: Add pre-inst-env.el.
	* emacs/pre-inst-env.el: New file to help put Emacs in pre-inst-env
	environment.

	build: pre-inst-env: Fixes, work better with 'ide'.
	* build-aux/pre-inst-env.in (PREFIX): Rename to ...
	(DZN_PREFIX): ...this.
	* ide/config.scm.in (%prefix): Update accordingly.

2020-12-07  Jan (janneke) Nieuwenhuizen  <janneke@gnu.org>

	Revert "dzn: Add -c,--core option; support running ide commands."
	Reverted after discussion with logocp on IRC.

	This reverts commit 030dd42a177d4453f28f52a7bbb6d0cb4daa455e.

2020-10-26  Jan (janneke) Nieuwenhuizen  <janneke@gnu.org>

	test: Add symlinks to work around modules with namespaces.
	Modules that define a namespace must be generated in the proper
	directory.  The test framework does not take care of that.

	* test/all/inner.space/javascript/inner/inner.space.js,
	test/all/name.space/javascript/name/name.space.js,
	test/all/simple.space/javascript/simple/simple.space.js: New symlink.

2020-10-26  Jan (janneke) Nieuwenhuizen  <janneke@gnu.org>

	test: Skip partial namespace tests for javascript.
	Javascript's namespace-to-module support requires a DZN-file to have a
	single namespace.

	* test/all/foreign_namespace/META,
	test/all/hello_namespace_shadow/META,
	test/all/hello_namespace_shadow2/META: Skip partial namespace tests for
	javascript.

2020-10-26  Jan (janneke) Nieuwenhuizen  <janneke@gnu.org>

	test: hello_foreign_path: Update javascript for "namespace to module".
	* test/all/hello_foreign_path/javascript/dzn/Foreign.js: Move to...
	* test/all/hello_foreign_path/javascript/Foreign.js: ...here.

	test: hello_foreign_file: Update javascript for "namespace to module".
	* test/all/hello_foreign_file/javascript/dzn/stranger.js: Move to...
	* test/all/hello_foreign_file/javascript/stranger.js: ...here.

	test: hello_foreign: Update javascript for "namespace to module".
	* test/all/hello_foreign/javascript/dzn/Foreign.js: Move to...
	* test/all/hello_foreign/javascript/Foreign.js: ...here.

2020-10-25  Jan (janneke) Nieuwenhuizen  <janneke@gnu.org>

	test: hello_foreign: Update javascript for "namespace to module".
	* test/all/hello_foreign/javascript/dzn/foreign.js: Move to ...
	* test/all/hello_foreign/javascript/Foreign.js: ...here.  Update
	accordingly.

	test: javascript: Skip async, blocking.
	* test/all/async_types/META: New file.
	* test/all/blocking_binding/META,
	test/all/blocking_imperative/META,
	test/all/blocking_normalize/META,
	test/all/blocking_requires/META,
	test/all/blocking_requires_normalize/META,
	test/all/blocking_system/META,
	test/all/blocking_system2/META,
	test/all/blocking_system3/META,
	test/all/blocking_system4/META,
	test/all/hello_block/META,
	test/all/hello_blocked_external/META,
	test/all/hello_inevitable_blocking_sync_out/META: Skip javascript.

	test: Suport skipping test for a language entirely.
	* test/dzn/dzn.scm (run-code): Add skip for language.
	(run-build): Likewise.
	(run-execute): Likewise.

2020-10-13  Jan (janneke) Nieuwenhuizen  <janneke@gnu.org>

	javascript: Support tracing in browser.
	Reported by Marcin Gramza <marcin.gramza@thermofisher.com>.

	* runtime/javascript/dzn/runtime.js (node_p): New function.
	(locator): Use it to use console.log for logging in browser.

2020-10-01  Jan (janneke) Nieuwenhuizen  <janneke@gnu.org>

	test: hello_namespace_foreign: Add javascript support.
	* test/all/hello_namespace_foreign/javascript/library/foreign.js: New
	file.

2019-11-28  Jan (janneke) Nieuwenhuizen  <janneke@gnu.org>

	javascript: Support "namespace to module".
	This introduces the "namespace-to-module" concept for javascript: From a
	DZN-file that defines a single namespace, a corresponding javascript module
	is generated.

	Also, foreigns now go into their own module.

	* dzn/code/scheme.scm (used-foreigns): Move to ...
	* dzn/code.scm (code:used-foreigns): ...here.
	(code:module): Remove.
	* dzn/code/dzn.scm (dzn:namespace): New method.
	* dzn/code/javascript.scm (javascript:class-name, javascript:module-name,
	javascript:interface-include): New methods.
	* dzn/templates/javascript.scm (class-name, module-name,
	interface-include): Use them in new templates.
	* dzn/templates/javascript/component-include@instance,
	dzn/templates/javascript/interface-include@file-name: Remove.
	* dzn/templates/include@file-name: Rename to ..
	* dzn/templates/javascript/require-module@file-name: ...this.
	* dzn/templates/javascript/async-member-initializer@port,
	dzn/templates/javascript/injected-instance-initializer@instance,
	dzn/templates/javascript/main@component,
	dzn/templates/javascript/model@component,
	dzn/templates/javascript/model@foreign,
	dzn/templates/javascript/model@interface,
	dzn/templates/javascript/model@system,
	dzn/templates/javascript/non-injected-instance-initializer@instance,
	dzn/templates/javascript/provided-member-initializer@port,
	dzn/templates/javascript/required-member-initializer@port,
	dzn/templates/javascript/source@root: Namespace support.

2020-11-03  Jan (janneke) Nieuwenhuizen  <janneke@gnu.org>

	doc: Add Integrating Scheme Code.
	* doc/dezyne.texi ("Integrating Scheme Code"): New section.

2020-10-26  Jan (janneke) Nieuwenhuizen  <janneke@gnu.org>

	test: Use strings for names in scheme.
	* test/all/LegoBallSorter/main.scm,
	test/all/async_context/main.scm,
	test/all/async_order/main.scm,
	test/all/async_order2/main.scm,
	test/all/async_prio/main.scm,
	test/all/async_prio2/main.scm,
	test/all/async_rank/main.scm,
	test/all/async_simple/main.scm,
	test/all/async_synccb/main.scm,
	test/all/async_synccb2/main.scm,
	test/all/calling_context/main.scm,
	test/all/foreign_namespace/scheme/S/Foreign.scm,
	test/all/hello_foreign/scheme/Foreign.scm,
	test/all/hello_foreign_file/scheme/stranger.scm,
	test/all/hello_foreign_path/scheme/Foreign.scm,
	test/all/hello_namespace_foreign/scheme/library/foreign.scm,
	test/all/hello_namespace_foreign/scheme/library/hello.scm,
	test/all/shell_injected/scheme/Logger.scm: Update handwritten code.
	* test/all/hello_namespace_foreign/development/scheme/library-foreign.scm:
	Remove.

	scheme: Use strings for names, instead of symbols.
	* dzn/templates/scheme/async-port-instance-declare@port,
	dzn/templates/scheme/declare-method@trigger,
	dzn/templates/scheme/injected-instance-initializer@instance,
	dzn/templates/scheme/main-port-connect-in-valued@trigger,
	dzn/templates/scheme/main-port-connect-in-void@trigger,
	dzn/templates/scheme/main-port-connect-out@trigger,
	dzn/templates/scheme/main-provided-flush-init@port,
	dzn/templates/scheme/main-provided-port-init@port,
	dzn/templates/scheme/main-required-flush-init@port,
	dzn/templates/scheme/main@component,
	dzn/templates/scheme/non-injected-instance-initializer@instance,
	dzn/templates/scheme/provided-port-instance-declare@port,
	dzn/templates/scheme/required-port-instance-declare@port: Use string
	instead of symbol for names.
	* runtime/scheme/dzn/runtime.scm (dzn:type-name, path): Update
	accordingly.
	(<dzn:port>, <dzn:component-model>): Use "" instead of (symbol).

	runtime: scheme: Export dzn:path, dzn:type-name.
	* runtime/scheme/dzn/runtime.scm (dzn): Export dzn:path, dzn:type-name.

2020-01-18  Jan (janneke) Nieuwenhuizen  <janneke@gnu.org>

	test: shell_injected: Update for "namespace to module".
	* test/all/shell_injected/shell_injected.dzn (ILogger): Move to ...
	* test/all/shell_injected/ilogger.dzn: ...new file.
	* test/all/shell_injected/scheme/Logger.scm (Logger): Update
	accordingly.

2020-10-25  Jan (janneke) Nieuwenhuizen  <janneke@gnu.org>

	test: hello_imported: Update for "namespace to module".
	The "namespace to module" feature creates an import (use-module in
	Scheme) for every imported DZN file.  All top-level files must be
	present for a project to build and run.

	* test/all/hello_imported/components.dzn: New file.

2020-10-25  Jan (janneke) Nieuwenhuizen  <janneke@gnu.org>

	test: blocked_system4: Disable for scheme only.
	* test/all/blocking_system4/META: Add scheme:execute.
	* test/all/local.mk (XFAIL_TESTS)[have_scheme]: Remove blocked_system4.

2020-10-01  Jan (janneke) Nieuwenhuizen  <janneke@gnu.org>

	test: Add symlinks to work around modules with namespaces.
	Modules that define a namespace must be generated in the proper
	directory.  The test framework does not take care of that.

	* test/all/simple.space/scheme/simple/simple-space.scm: Add loadable
	symlink to simple.space.scm.
	* test/all/name.space/scheme/name/name-space.scm: Likewise.
	* test/all/inner.space/scheme/inner/inner-space.scm: Likewise.
	* test/all/foreign_namespace/scheme/S/Foreign.scm: Move from
	../S-Foreign.scm

2020-01-17  Jan (janneke) Nieuwenhuizen  <janneke@gnu.org>

	test: scheme: Add workaround for dot in base name.
	Work around a bug that base name of a Guile module cannot include
	dots.  See <https://bugs.gnu.org/39162>.

	* dzn/scheme.scm (scheme:sanitize-module-name): Remove dot from module
	name.
	(scheme:module-name): Use it.
	* dzn/templates/scheme/main@component: Use scheme:module-name rather
	than code:file-name.

2020-10-01  Jan (janneke) Nieuwenhuizen  <janneke@gnu.org>

	test: Add hello_namespace_foreign.
	test/all/hello_namespace_foreign: New test.
	* test/all/local.mk (REGRESSION_TESTS): Add it.

2020-10-07  Jan (janneke) Nieuwenhuizen  <janneke@gnu.org>

	test: async_order, async_order2: Hardcode trace.2 test for scheme.
	This is a follow-up to commit 5350e1b7755c230e99bf485357d56052e8eba0b5.

	The trace.2 tests were hacked into passing by re-wiring the system,
	in combination with setting component and port names to blank (" ")
	and having code2fdr skip those messages.

	Disables trace.2 tests altogether by printing hardcoded trace instead.
	This enables dropping the hacky code2fdr script altogether.

	* test/all/async_order/main.scm (main): Hardcode trace.2 test.
	* test/all/async_order2/main.scm (main): Likewise.

2020-01-17  Jan (janneke) Nieuwenhuizen  <janneke@gnu.org>

	test: Skip partial namespace tests for Scheme.
	Scheme's namespace-to-module support requires a DZN-file to have a
	single namespace.

	* test/all/hello_namespace_enum/META: Skip partial namespace tests for
	scheme.
	* test/all/hello_namespace_shadow/META: Likewise.
	* test/all/hello_namespace_shadow2/META: Likewise.
	* test/all/hello_parse/META: Likewise.
	* test/all/foreign_namespace/META: Likewise.

2020-01-17  Jan (janneke) Nieuwenhuizen  <janneke@gnu.org>

	test: hello_foreign_path: Update for "namespace to module".
	* test/all/hello_foreign_path/hello_foreign_path.dzn (foreign): Rename
	to ...
	(Foreign): ...this.
	* test/all/hello_foreign_path/c++/foreign.cc: Rename to ...
	* test/all/hello_foreign_path/c++/Foreign.cc: ...this.  Update accordingly.
	* test/all/hello_foreign_path/c++03/foreign.hh: Rename to ...
	* test/all/hello_foreign_path/c++03/Foreign.hh: ...this.
	* test/all/hello_foreign_path/c/foreign.c: Rename to ...
	* test/all/hello_foreign_path/c/Foreign.c: ...this.
	* test/all/hello_foreign_path/c/foreign.h: Rename to ...
	* test/all/hello_foreign_path/c/Foreign.h: ...this.
	* test/all/hello_foreign_path/scheme/foreign.scm: Rename to ...
	* test/all/hello_foreign_path/scheme/Foreign.scm: this.
	* test/all/hello_foreign_path/cs/glue.cs (foreign): Rename to...
	(Foreign): ...this.
	* test/all/hello_foreign_path/javascript/dzn/foreign.js: Rename to...
	* test/all/hello_foreign_path/javascript/dzn/Foreign.js: ...this.

2020-10-09  Jan (janneke) Nieuwenhuizen  <janneke@gnu.org>

	test: hello_foreign: Update for "namespace to module".
	The "namespace to module" feature needs interfaces to foreign components
	to be defined in a separate file for Scheme to avoid cyclic dependencies.

	Also, use "Foreign" instead of "foreign" to avoid name clash; as
	suggested by Rob Wieringa.

	* test/all/hello_foreign/iworld.dzn: New file.
	* test/all/hello_foreign/hello_foreign.dzn: Import it.
	(iworld): Remove.
	(foreign): Rename to ...
	(Foreign): ...this.
	* test/all/hello_foreign/scheme/Foreign.scm: Rename to ...
	* test/all/hello_foreign/scheme/Foreign.scm: ...this and update
	accordingly.
	* test/all/hello_foreign/c++/foreign.hh: Rename to ...
	* test/all/hello_foreign/c++/Foreign.hh: ...this and update accordingly.

2020-10-01  Jan (janneke) Nieuwenhuizen  <janneke@gnu.org>

	test: Update handwritten Scheme for "namespace to module".
	* test/all/foreign_namespace/scheme/S-Foreign.scm,
	test/all/hello_foreign/scheme/foreign.scm,
	test/all/hello_foreign_file/scheme/stranger.scm,
	test/all/hello_foreign_path/scheme/foreign.scm,
	test/all/shell_injected/scheme/Logger.scm: Add module header.

2019-11-19  Jan (janneke) Nieuwenhuizen  <janneke@gnu.org>

	scheme: Support "namespace to module".
	This introduces the "namespace-to-module" concept: from a DZN-file that
	defines a single namespace, a corresponding Guile module is generated.

	Things to note:

	    * DZN-files that define more than one namespace are not supported
	      for "namespace to module",
	    * foreigns now go into their own module,
	    * interfaces used by a foreign need to go into their own DZN file
	      to avoid introducing cyclic dependencies,
	    * avoid the name "foreign", the class <foreign>.

	* dzn/code/scheme.scm (trigger->method): Remove.
	(scheme:class-name): Use ":" as separator.
	(scheme:module-name): New method.
	(scheme:symbols): Rename to ...
	(scheme:names): ... this.
	(scheme:exported-names, scheme:imported-names): New methods.
	(scheme:export): Use them.
	(scheme:re-export): New method.  Only [re-]export locally defined
	symbols.
	(used-foreigns, scheme:use-module): New method.
	* dzn/templates/scheme.scm (module-name): New template.
	* dzn/templates/scheme/type-infix: Update to use ":'.
	* dzn/templates/scheme/source@root: Cleanup used module list.
	* dzn/templates/scheme/main@component: Add use-module template.

2020-10-07  Jan (janneke) Nieuwenhuizen  <janneke@gnu.org>

	scheme: Fix hello_else.
	* dzn/templates/scheme/statement@if: Add whitespace.  This fixes
	avoids printing (if false*unspecified* ..).

2019-11-26  Rob Wieringa  <Rob.Wieringa@verum.com>

	code: Fixup for.name -> ids.
	This is a follow-up to commit b0c7cd8396155633f41d245c81f11422741771b2
	goops: Restructure scope.name.

	* dzn/code.scm (code:scope-type-name): Use ast:name rather than .name.

2020-11-27  Jan (janneke) Nieuwenhuizen  <janneke@gnu.org>

	commands: Allow options after file names.
	Revert long standing thinko, we need to stop parsing to find the command
	in the top level script; the command scripts can be more relaxed.

	* dzn/commands/cat.scm (parse-opts): Remove #:stop-at-first-non-option.
	* dzn/commands/code.scm (parse-opts): Likewise.
	* dzn/commands/hello.scm (parse-opts): Likewise.
	* dzn/commands/ls.scm (parse-opts): Likewise.
	* dzn/commands/parse.scm (parse-opts): Likewise.
	* dzn/commands/trace.scm (parse-opts): Likewise.
	* dzn/commands/traces.scm (parse-opts): Likewise.
	* dzn/commands/verify.scm (parse-opts): Likewise.
	* dzn/scm2json.scm (parse-opts): Likewise.

2020-11-21  Jan (janneke) Nieuwenhuizen  <janneke@gnu.org>

	commands: Refactor parse-options.
	* dzn/commands/cat.scm (parse-opts),
	dzn/commands/code.scm (parse-opts),
	dzn/commands/hello.scm (parse-opts),
	dzn/commands/ls.scm (parse-opts),
	dzn/commands/lts.scm (parse-opts),
	dzn/commands/parse.scm (parse-opts),
	dzn/commands/trace.scm (parse-opts),
	dzn/commands/traces.scm (parse-opts),
	dzn/commands/verify.scm (parse-opts): Refactor.

2020-11-04  Jan (janneke) Nieuwenhuizen  <janneke@gnu.org>

	Rename "gdzn" to "script", "gdzn:" to "dzn:".
	* dzn/gdzn.scm: Rename to ...
	* dzn/script.scm: ...this.  Rename "gdzn:" to "dzn:", "gdzn-" to
	"dzn-".
	* bin/dzn.in,
	dzn/command-line.scm,
	dzn/local.mk (dist_%C%_scm_DATA): Update to use (dzn script).
	* dzn/code.scm,
	dzn/code/cs.scm,
	dzn/code/makreel.scm,
	dzn/command-line.scm,
	dzn/commands/cat.scm,
	dzn/commands/ls.scm,
	dzn/commands/parse.scm,
	dzn/commands/trace.scm,
	dzn/commands/traces.scm,
	dzn/commands/verify.scm,
	dzn/indent.scm,
	dzn/parse.scm,
	dzn/templates.scm,
	dzn/verify/pipeline.scm: Update to use "dzn:" prefix.

2020-11-20  Jan (janneke) Nieuwenhuizen  <janneke@gnu.org>

	doc: Update 'HACKING'.
	* HACKING ("The Perfect GNU Emacs Setup"): New section.

2020-11-13  Jan (janneke) Nieuwenhuizen  <janneke@gnu.org>

	emacs: Use "Dezyne" as name for major mode.
	* emacs/dzn-mode.el (dzn-after-save): Use major-mode instead of minor-mode.
	(dzn-mode): Likewise.  Set mode-name to "Dezyne".

	doc: Add direntries for some sub commands.
	* doc/dezyne.texi (direntry): Add dzn code, dzn parse, dzn verify.

2020-11-09  Jan (janneke) Nieuwenhuizen  <janneke@gnu.org>

	parse: Handle displaying of *unspecified*.
	* dzn/serialize.scm (serialize)[<top>]: Cater for *unspecified*.

2020-11-04  Jan (janneke) Nieuwenhuizen  <janneke@gnu.org>

	code: Exit gracefully if language not found.
	* dzn/commands/code.scm: If module or `ast->' entry point not found,
	exit with EXIT_OTHER_FAILURE.

	doc: Update `ROADMAP'.
	* ROADMAP (Release 2.12): Add Code cleanup.

2020-11-04  Jan (janneke) Nieuwenhuizen  <janneke@gnu.org>

	Use exit EXIT_FAILURE and EXIT_OTHER_FAILURE.
	Use EXIT_FAILURE, EXIT_SUCCESS, and EXIT_OTHER_FAILURE for "could not
	perform operation" throughout.

	See <https://www.gnu.org/software/libc/manual/html_node/Exit-Status.html>

	* dzn/command-line.scm (EXIT_OTHER_FAILURE): New variable.

2020-11-04  Jan (janneke) Nieuwenhuizen  <janneke@gnu.org>

	Rename "language" parameter to "%language".
	* dzn/command-line.scm (language): Rename to ..
	(%language): ...this.
	* dzn/code.scm,
	dzn/code/c++.scm,
	dzn/code/c++03.scm,
	dzn/code/c.scm,
	dzn/code/cs.scm,
	dzn/code/dzn.scm,
	dzn/code/javascript.scm,
	dzn/code/scheme.scm,
	dzn/command-line.scm,
	dzn/commands/code.scm,
	dzn/commands/verify.scm: Update accordingly.

	code: Make languages pluggable.
	* dzn/config.scm.in (languages): Rename to..
	(%default-languages): ...this.
	* dzn/commands/code.scm (list-languages): New memoized procedure.
	(%languages): New variable.
	(parse-opts): Use it; list languages on one line.

	Move code generators into code directory.
	* dzn/c++.scm,
	dzn/c++03.scm,
	dzn/c.scm,
	dzn/cs.scm,
	dzn/dzn.scm,
	dzn/javascript.scm,
	dzn/json.scm,
	dzn/makreel.scm,
	dzn/scheme.scm: Move to...
	* dzn/c++.scm,
	dzn/code/c++03.scm,
	dzn/code/c.scm,
	dzn/code/cs.scm,
	dzn/code/dzn.scm,
	dzn/code/javascript.scm,
	dzn/code/json.scm,
	dzn/code/makreel.scm,
	dzn/code/scheme.scm: Here, and update for (dzn code ...) includes.
	* dzn/local.mk: Remove files accordingly.
	* dzn/code/local.mk: New file.
	* Makefile.am: Include it.
	* dzn/code.scm,
	dzn/wfc.scm,
	dzn/commands/code.scm,
	dzn/verify/pipeline.scm,
	test/dzn/makreel.scm: Update for (dzn code ...) includes.

2020-11-03  Jan (janneke) Nieuwenhuizen  <janneke@gnu.org>

	doc: Document missing commands.
	* dzn/commands/code.scm (parse-opts): Add description.
	* dzn/commands/lss.scm (parse-opts): Typos, uniformise.
	* dzn/commands/lts.scm (parse-opts): Add description.
	* dzn/commands/parse.scm (parse-opts): Add description and updates.
	* dzn/commands/trace.scm (parse-opts): Add description.
	* dzn/commands/traces.scm (parse-opts): Add description.
	* dzn/commands/verify.scm (parse-opts): Update description.
	* doc/dezyne.texi ("Invoking dzn"): Update.
	("Invoking dzn cat"): New section.
	("Invoking dzn code"): Update.
	("Invoking dzn hello"): New section.
	("Invoking dzn ls"): New section.
	("Invoking dzn lts"): New section.
	("Invoking dzn parse"): New section.
	("Invoking dzn trace"): New section.
	("Invoking dzn traces"): New section.
	("Invoking dzn verify"): Update.

2020-11-03  Jan (janneke) Nieuwenhuizen  <janneke@gnu.org>

	code, traces, verify: Use -q,--queue-size.
	This removes an ugly Node (https://nodejs.com) hack leftover.

	* dzn/commands/code.scm (parse-opts): Rename queue_size to queue-size.
	* dzn/commands/traces.scm (parse-opts): Likewise.
	* dzn/commands/verify.scm (parse-opts): Likewise.
	* dzn/makreel.scm (makreel:queue-length): Likewise.

2020-10-30  Rutger van Beusekom  <rutger.van.beusekom@verum.com>

	doc: Update `ROADMAP'.
	* ROADMAP (Release 2.11, unsorted): Add items of meeting 13-10-2020,
	move some items...
	(DONE): ...here.

	parse/ast, parse/peg: Unify naming.
	* dzn/parse/peg.scm (peg:parse): Make event and var uniform in naming.
	* dzn/parse/ast.scm (parse-tree->ast-): Handle name indirection.

2020-10-29  Rutger van Beusekom  <rutger.van.beusekom@verum.com>

	build: Setup environment for locales properly.
	* autogen.sh (LANG): Set to EN_US.UTF-8; remove LC_* Settings.
	* build-aux/pre-inst-env.in: Likewise.

2020-10-05  Rutger van Beusekom  <rutger.van.beusekom@verum.com>

	c++: Handle c++20 requires keyword.
	* runtime/c++/dzn/meta.hh.in (provides): Rename to ...
	(provide): ... this.
	(requires): Rename to ...
	(require): ... this.
	* runtime/c++/dzn/runtime.hh (call_out):
	* runtime/c++/runtime.cc (trace):
	* runtime/c++/runtime.cc (trace_out):
	* runtime/c++/runtime.cc (trace_qin):
	* runtime/c++/runtime.cc (trace_qout):
	* test/all: Update accordingly.
	* dzn/templates/c++: Update accordingly.

2020-10-29  Rutger van Beusekom  <rutger.van.beusekom@verum.com>

	test: shell: Workaround race condition.
	* test/all/shell/c++/container.hh: New file.
	* test/all/shell/c++/main.cc: Use it.
	* test/all/local.mk (XFAIL_TESTS): Remove shell.

	c++: container: Fix error message for trace/execution conflict.
	* runtime/c++/dzn/container.hh (match): Fix thinko: revert expected and
	actual.

2020-09-29  Paul Hoogendijk  <paul.hoogendijk@verum.com>

	verify: Add interface-trace to json output as needed for seqdiag.
	* dzn/verify/pipeline.scm (report): Add interface-trace as parameter.
	Add interface-trace to json output if present.
	(mcrl2:verify-component-asserts): Add received interface-trace to report call
	for compliance check.

2020-10-23  Rob Wieringa  <Rob.Wieringa@verum.com>

	performance: Avoid tree-collect in code generation.
	* dzn/code.scm(code:port-release): Use tree-collect-filter instead of
	tree-collect.

2020-10-21  Jan (janneke) Nieuwenhuizen  <janneke@gnu.org>

	scm2json: Resurrect.
	* bin/scm2json.in: New file.
	* Makefile.am (bin_SCRIPTS): Substitute it.
	(EXTRA_DIST): Distribute it.
	* .gitignore: Ignore substituted file.
	* dzn/scm2json.scm: New file.
	* dzn/local.mk (dist_%C%_scm_DATA): Add it.

2020-10-24  Jan (janneke) Nieuwenhuizen  <janneke@gnu.org>

	dzn: Add -c,--core option; support running ide commands.
	* dzn/gdzn.scm (parse-opts): Add -c,--core option.  Also show ide
	commands unless --core.
	(run-command): Add #:core? parameter.  Prefer ide commands unless core?
	(main): Pass core? parameter.

	dzn: Handle unknown commands gracefully.
	* dzn/gdzn.scm (run-command): If module or main does not exist, exit
	gracefully.

	trace: Provide seqdiag:get-model, seqdiag:sequence->trail.
	* dzn/commands/trace.scm: Export seqdiag:get-model,
	seqdiag:sequence->trail.

	trace: Provide json-string->alist-scm.
	* dzn/commands/trace.scm (json-string->alist-scm): New procedure.
	(seqdiag:format-trace): Use it.
	(seqdiag:format-sexp): Expect it.

2020-04-06  Jan (janneke) Nieuwenhuizen  <janneke@gnu.org>

	verify: Add mingw support.
	* dzn/verify/pipeline.scm (%dzn): New variable.  Override global
	definition for mingw.

2020-11-04  Rutger van Beusekom  <rutger.van.beusekom@verum.com>

	parse: Report import path; fixes: "No such file" error.
	* dzn/commands/parse.scm (handle-parser-exceptions): Add imported
	from reporting.

2020-08-14  Jan (janneke) Nieuwenhuizen  <janneke@gnu.org>

	build: Prepare manual for tutorial.
	* Makefile.am (html): Build in doc/html/dezyne.
	(publish): Update accordingly.
	(publish-local): Use it to avoid duplication.
	* .texinfo/htmlxref.cnf: Update accordingly.

2020-10-24  Jan (janneke) Nieuwenhuizen  <janneke@gnu.org>

	doc: Add indirect_in.
	* doc/dezyne.texi ("Execution Semantics"): Add "Indirect in event"
	section.
	* doc/semantics/indirect_in.dzn,
	* doc/images/indirect_in.png: New files.

2020-08-14  Rob Wieringa  <Rob.Wieringa@verum.com>

	doc: Reference and whitespace fixes.
	* doc/dezyne.texi: Reference and whitespace fixes.

2020-05-25  Rob Wieringa  <Rob.Wieringa@verum.com>

	doc: Fix layouting of examples.
	Newlines in @examples are relevant.  All have been replaced.

	* doc/dezyne.texi: Examples have proper newlines.

2020-03-30  Jan Nieuwenhuizen  <janneke@gnu.org>

	doc: Revise usage of @xref.
	* doc/dezyne.texi: Throughout: Revise usage of @xref.

2020-03-26  Jan Nieuwenhuizen  <janneke@gnu.org>

	doc: Add `Installation'.
	* doc/dezyne.texi (Installation): New chapter.

	doc: Add `Contributing' with `The Perfect Setup'.
	* doc/dezyne.texi (Contributing): New chapter.

2020-03-25  Jan Nieuwenhuizen  <janneke@gnu.org>

	build: Publish manual to /dezyne/manual/, with cross-references.
	* Makefile.am (publish): Publish into /dezyne/manual/.
	(publish-local): Likewise.
	* .texinfo/htmlxref.cnf: New file.
	(EXTRA_DIST): Add it.
	(AM_MAKEINFOHTMLFLAGS): Use it.

	doc: Use `dezyne' as info direntry.
	* doc/dezyne.texi (direntry): Use `dezyne' instead of `dzn'.  Fixes
	external reference from dezyne-ide.texi.

2020-06-24  Jan (janneke) Nieuwenhuizen  <janneke@gnu.org>

	build: Resurrect "guix build -f guix.scm".
	* Makefile.am (version.texi): Add fallback for missing git.  This fixes
	building from a Guix git checkout.

2019-12-10  Timothy Sample  <samplet@ngyro.com>

	Generate 'version.texi' reproducibly.
	* Makefile.am ($(srcdir)/doc/version.texi): New rule (overriding one
	provided by Automake).

2020-03-11  Jan Nieuwenhuizen  <janneke@gnu.org>

	build: Add `publish', `publish-local' targets.
	* Makefile.am (publish, publish-local): New target.

2020-03-22  Jan Nieuwenhuizen  <janneke@gnu.org>

	doc: Add some content for dzn commands.
	* doc/dezyne.texi (Invoking dzn): Update.
	(Invoking dzn code): New node.
	(Invoking dzn verify): New node.

	doc: Formatting fixes.
	* guix.texi: Run `fill-individual-paragraps'.

	doc: Update sectioning.
	* doc/dezyne.texi: Use Title Case.
	(top): Add detailed note listing.

	doc: Import introductory texts from dezyne.org.
	* doc/dezyne.texi (Principles): Import from dezyne.org.
	(Typical use of Dezyne): Likewise.
	(The Dezyne Application Domain): Likewise.

2020-03-21  Jan Nieuwenhuizen  <janneke@gnu.org>

	doc: dezyne: Update sectioning.
	* doc/dezyne.texi: Fixups for infocenter conversion of menus.
	Use @unnumberedsubsubsec for "See also:".
	Use Title Case for sections.

2020-03-12  Jan Nieuwenhuizen  <janneke@gnu.org>

	doc: Move execution semantics examples to files.
	* doc/dezyne.texi (Execution semantics): Use @verbatiminclude for
	examples.
	* doc/semantics/direct_in.dzn: New file.
	* doc/semantics/direct_in.dzn: New file.
	* doc/semantics/direct_multiple_out1.dzn: New file.
	* doc/semantics/direct_multiple_out2.dzn: New file.
	* doc/semantics/direct_out.dzn: New file.
	* doc/semantics/external_multiple_out.dzn: New file.
	* doc/semantics/indirect_blocking_multiple_out.dzn: New file.
	* doc/semantics/indirect_blocking_out.dzn: New file.
	* doc/semantics/indirect_multiple_out1.dzn: New file.
	* doc/semantics/indirect_multiple_out2.dzn: New file.
	* doc/semantics/indirect_multiple_out3.dzn: New file.
	* doc/semantics/indirect_out.dzn: New file.
	* Makefile.am (EXTRA_DIST):

2020-03-10  Jan Nieuwenhuizen  <janneke@gnu.org>

	doc: Generate manual for website.
	* Makefile.am (html): New target.

2019-09-11  Jan Nieuwenhuizen  <janneke@gnu.org>

	doc: Import texinfo from infocenter.
	* doc/dezyne.texi: New file.
	* doc/images/direct_in.png: New file.
	* doc/images/direct_multiple_out1.png: New file.
	* doc/images/direct_multiple_out2.png: New file.
	* doc/images/direct_out.png: New file.
	* doc/images/external_multiple_out.png: New file.
	* doc/images/indirect_blocking_multiple_external_out.png: New file.
	* doc/images/indirect_blocking_out.png: New file.
	* doc/images/indirect_multiple_out1.png: New file.
	* doc/images/indirect_multiple_out2.png: New file.
	* doc/images/indirect_multiple_out3.png: New file.
	* doc/images/indirect_out.png: New file.
	* Makefile.am (info_image_DATA): Add them.

2020-11-01  Jan (janneke) Nieuwenhuizen  <janneke@gnu.org>

	guix: Bump to bfe82fe2f6e9f34c0774fe2114cdc7e937ba8bd2.
	This fixes running daemons in generic guix pack binaries, see
	<https://bugs.gnu.org/44261>.

	Not strictly necessary for "dezyne", this stays in line with the "pack"
	archive.

	* guix.scm: Bump to bfe82fe2f6e9f34c0774fe2114cdc7e937ba8bd2.

2020-10-29  Jan (janneke) Nieuwenhuizen  <janneke@gnu.org>

	guix: Set version to "git".
	* guix.scm (dezyne.git)[version]: "git".

2020-10-25  Jan (janneke) Nieuwenhuizen  <janneke@gnu.org>

	doc: Update `ROADMAP'.
	* ROADMAP (Release 2.11, unsorted): Move some items ...
	(DONE): ...here.

2020-10-22  Jan (janneke) Nieuwenhuizen  <janneke@gnu.org>

	test: Add parse_locations.
	* test/all/parse_locations/parse_locations.dzn,
	test/all/parse_locations/ihello.dzn,
	test/all/parse_locations/run,
	test/all/parse_locations/baseline/parse_locations: New test with
	baseline.
	* test/all/local.mk (PARSER_TESTS): Add it.
	* test/parser/parse_locations/: New symlink.

	test: Add parse_peg_locations.
	* test/all/parse_peg_locations/run,
	test/all/parse_peg_locations/ihello.dzn:
	test/all/parse_peg_locations/parse_peg_locations.dzn,
	test/all/parse_peg_locations/baseline/parse_peg_locations: New
	test with baseline.
	* test/all/local.mk (PARSER_TESTS): Add it.
	* test/parser/parse_peg_locations/: New symlink.

2020-10-22  Jan (janneke) Nieuwenhuizen  <janneke@gnu.org>

	parse: Add -t,--parse-tree option.
	Using

	    dzn parse --parse-tree -o-

	prints the parse trees to stdandard output.

	* dzn/parse.scm (file+import-content-alist->ast): Split into...
	(parse-file+import-content-alist): ...this and...
	(parse-tree-alist->ast): ...this.
	(file->ast, string->ast): Update callers.  Add #:parse-tree? parameter
	to stop before creating an AST.
	* dzn/commands/parse.scm (parse-opts): Add -t,--parse-tree option.
	(parse-): Use it to set #:parse-tree? parameter.

2020-10-21  Jan (janneke) Nieuwenhuizen  <janneke@gnu.org>

	test: Add parse_duplicate_declaration.
	This brings the duplicate definition well-formedness check under test.
	Do not use "previous" and "before" in the error message as the
	declaration order is an implementation detail.

	* test/all/parse_duplicate_declaration/ihello.dzn,
	test/all/parse_duplicate_declaration/hello.dzn,
	test/all/parse_duplicate_declaration/parse_duplicate_declaration.dzn,
	test/all/parse_duplicate_declaration/baseline/verify/parse_duplicate_declaration.stderr:
	Test in in new test with baseline.
	* test/all/local.mk (PARSER_TESTS): Add it.
	* test/parser/parse_duplicate_declaration: Add symlink.

2020-10-22  Jan (janneke) Nieuwenhuizen  <janneke@gnu.org>

	parse: Resurrect printing parse tree with -dd.
	* dzn/parse.scm (file+import-content-alist->ast): When -dd, print
	parse trees.

	display: Show locations when using --locations.
	* dzn/display.scm (sdisplay)[<location-node>]: Display location when
	%locations?
	* dzn/commands/parse.scm (parse-): Use parameterize to set it.

2020-10-20  Rutger van Beusekom  <rutger.van.beusekom@verum.com>

	test: Add parse_import_path.
	* test/all/parse_import_path: New test for parsing.
	* test/all/local.mk (PARSER_TESTS): Add it.
	* test/parser/parse_import_path: New symlink.

	parse: List import inclusion path in syntax error messages.
	* dzn/parse.scm (peg:handle-error): Remove function.
	(imported-file-names): Add function (share implementation).
	(peg:imported-from->message): Add function (use previous function).
	(peg:error-message): Extend with import-from (use previous function).
	(peg:syntax-error-message): Add parameter.
	* test/all/parse_preprocessed_imported_bar: Update baseline for preprocessing.

2020-09-27  Rutger van Beusekom  <rutger.van.beusekom@verum.com>

	test: Add parse_self_import.
	* test/all/parse_self_import/parse_self_import.dzn: New test.
	* test/all/local.mk (PARSER_TESTS): Add it.
	* test/parser/parse_self_import: New symlink.

2020-10-26  Jan (janneke) Nieuwenhuizen  <janneke@gnu.org>

	test: Add parse_preprocessed_imported_bar.
	* test/all/parse_preprocessed_imported_bar/bar.dzn,
	test/all/parse_preprocessed_imported_bar/run,
	test/all/parse_preprocessed_imported_bar/baseline/verify/parse_preprocessed_imported_bar.stderr:
	New test with baselines.
	* .gitignore: Ignore generated file.
	* test/parser/parse_preprocessed_imported_bar: New symlink.

	test: Add parse_preprocessed_foo.
	* test/all/parse_preprocessed_foo/foo.dzn,
	* test/all/parse_preprocessed_foo/run,
	test/all/parse_preprocessed_foo/baseline/verify/parse_preprocessed_foo.stderr:
	New tests with baseline.
	* .gitignore: Ignore generated file.
	* test/parser/parse_preprocessed_foo:: New symlink.

2020-09-27  Rutger van Beusekom  <rutger.van.beusekom@verum.com>

	test: Add parse_import_end.
	* test/all/parse_import_end/parse_import_end.dzn,
	test/all/parse_import_end/ihello.dzn: New test.
	* test/all/local.mk (PARSER_TESTS): Add it.
	* test/parser/parse_import_end: New symlink.

	test: Add parse_block_comment_import.
	* test/all/parse_block_comment_import/parse_block_comment_import.dzn:
	New test.
	* test/all/local.mk (PARSER_TESTS): Add it.
	* test/parser/parse_block_comment_import: New symlink.

2020-09-27  Rutger van Beusekom  <rutger.van.beusekom@verum.com>
	    Jan (janneke) Nieuwenhuizen  <janneke@gnu.org>

	parse: Handle import outside of PEG.
	* dzn/parse.scm (parse-string): Remove and refactor into ...
	(file+import-content-alist,
	file+import-content-alist->ast,
	string->file+import-content-alist): New procedures.
	(file->ast, string->ast, preprocess): Rewrite in terms of function above.
	* dzn/parse/peg.scm (peg:parse): Remove recursion, import handling and
	preprocessor commands.
	(peg:imports): New parser function.
	* dzn/commands/parse.scm (handle-parser-exceptions): New function.
	(assert-parse): Use function above.
	(assert-preprocess): Idem.
	* dzn/commands/parse.scm (parse-, parse): Update callers.
	* test/parser/parse_syntax,
	test/parser/parse_type_mismatch: Add missing symlinks.

2020-10-22  Jan (janneke) Nieuwenhuizen  <janneke@gnu.org>

	ast: Factor-out inline annotation of AST.
	This prepares for stitching multiple ASTs together.

	* dzn/goops.scm (<port>)[formals]: Add field.
	* dzn/ast.scm (ast:formal*)[<port>]: New specialization.
	* dzn/parse/ast.scm (parse-root->ast): Remove.
	(async-interface-name): New procedure.
	(parse-tree->ast): Add async formals to async ports and do not create
	async interfaces.
	(make-async-refine-interface): Replace name and type parameters with
	port.
	(annotate-ast): New procedure.
	* dzn/parse.scm (parse-string): Use it.

2020-10-24  Jan (janneke) Nieuwenhuizen  <janneke@gnu.org>

	build: Update release process.
	* Makefile.am: Update release process description.
	(release): Better commit message.

2020-10-22  Jan (janneke) Nieuwenhuizen  <janneke@gnu.org>

	test: Support free-form baseline tests.
	* test/dzn/dzn.scm (run-baseline): Factor-out from...
	(run-verify): ...this.
	* test/bin/run-baseline.in: Use it in new file.
	* configure.ac: Substitute it.
	* .gitignore: Ignore it.

2020-10-18  Jan (janneke) Nieuwenhuizen  <janneke@gnu.org>

	test: Remove empty stdout baseline.
	Run

	    rm $(find test/all/*/baseline -size 0 | grep -v '\.stderr$')

2020-10-18  Jan (janneke) Nieuwenhuizen  <janneke@gnu.org>

	test: Remove the need for empty baseline stdout files.
	* test/dzn/dzn.scm (run-verify): When there no is output, no baseline
	must exist, otherwise assert that the output matches the baseline.

2020-10-16  Jan (janneke) Nieuwenhuizen  <janneke@gnu.org>

	test: hello_imported: Resurrect and enable.
	* test/all/hello_imported/hello_imported.dzn: Move '#file ' marker to
	top; do not lie about file name.
	* test/parser/hello_imported: Add symlink.
	(hello_import): Move to ..
	(hello_imported): ...this.
	* test/all/local.mk (REGRESSION_TESTS): Add it.

2020-10-23  Jan (janneke) Nieuwenhuizen  <janneke@gnu.org>

	ast: Export ast:dotted-name.
	* dzn/ast.scm: Export ast:dotted-name.

	mkdir-p: Support for mingw.
	* dzn/shell-util.scm (mingw?): New procedure.
	(mkdir-p): Use it to support mingw.

2020-10-21  Jan (janneke) Nieuwenhuizen  <janneke@gnu.org>

	json: Enable locations.
	* dzn/json.scm (json:get-fields): Do not filter locations when
	%locations? is set.
	* dzn/commands/code.scm (main): Use --locations option to set
	%locations? parameter.

	parse: Add -L,--locations option.
	* dzn/command-line.scm (%locations?): New parameter.
	* dzn/serialize.scm (serialize-slots): Use it to filter locations.
	(om:list): Rename to ...
	(ast:serialize): ...this.
	* dzn/commands/parse.scm (parse-opts): Add -L,--locacations option.
	(main): Use it to keep locations in output, by setting %locations?
	parameter.

2020-10-19  Jan (janneke) Nieuwenhuizen  <janneke@gnu.org>

	doc: Update 'ROADMAP'.
	* ROADMAP: Move some items to dezyne-ide, categorise some work.

2020-10-06  Rob Wieringa  <Rob.Wieringa@verum.com>

	doc: update 'ROADMAP'
	* ROADMAP (Release 2.11): add items

2020-10-08  Rutger van Beusekom  <rutger.van.beusekom@verum.com>

	ROADMAP: add daemon/simulate items

2020-10-07  Rutger van Beusekom  <rutger.van.beusekom@verum.com>

	ROADMAP: update 2.11; bring daemon/ide under test

2020-10-12  Rutger van Beusekom  <rutger.van.beusekom@verum.com>

	test: async_types: New test.
	This fixes usage of two different types of async interface in one
	behaviour.

	Reported by Joran Jessurun <joran.jessurun@gmail.com> via irc.

	* test/all/async_types/async_types.dzn: New file.
	* test/all/local.mk (REGRESSION_TESTS): Add it.
	* dzn/parse/ast.scm (parse-tree->ast-)[asinc-interfaces]: Skip adding
	of a "duplicate" async interface definition only by comparing full name
	(which includes typing) instead of only scope (always ("dzn")).

2020-10-08  Jan (janneke) Nieuwenhuizen  <janneke@gnu.org>

	guix: Bump to 880fe019ae64df37815bbdb1a22305f99dae759d.
	Only a few commits further, this gets rid of:

	  guile: warning: failed to install locale

	when running the 'guix' command on a foreign distro where 'GUIX_LOCPATH'
	isn't set.

	* guix.scm: Bump to 880fe019ae64df37815bbdb1a22305f99dae759d.

2020-10-05  Rutger van Beusekom  <rutger.van.beusekom@verum.com>

	c++: Handle c++20 requires keyword.
	* runtime/c++/dzn/meta.hh.in (provides): Rename to ...
	(provide): ... this.
	(requires): Rename to ...
	(require): ... this.
	* runtime/c++/dzn/runtime.hh (call_out):
	* runtime/c++/runtime.cc (trace):
	* runtime/c++/runtime.cc (trace_out):
	* runtime/c++/runtime.cc (trace_qin):
	* runtime/c++/runtime.cc (trace_qout):
	* test/all: Update accordingly.
	* dzn/templates/c++: Update accordingly.

2020-10-05  Jan (janneke) Nieuwenhuizen  <janneke@gnu.org>

	guix: Bump to d6a8f0a9781a90c3037f25e51d7ff32e50f7a8c1.
	* guix.scm: Bump to d6a8f0a9781a90c3037f25e51d7ff32e50f7a8c1.

2020-09-29  Paul Hoogendijk  <paul.hoogendijk@verum.com>

	verify: Add error messages and avoid redundant compliance assert.
	This adds error messages for failing asserts.  Also, when a deadlock or
	illegal check fails, the compliance check failure is redundant; omit it.

	* dzn/verify/pipeline.scm (get-line, get-lts): Use symbol as key iso string.
	(assert-start): Remove.
	(check-deterministic, check-illegal, check-deadlock, check-livelock,
	check-compliance): Replace all by generic "report" function.
	(report-assert): Specialization of report.
	(assert-ok, assert-fail): Rename to report-ok, report-fail resp.
	(report-fail): Refactor calculating error message.
	(mcrl2:verify-component-asserts): Skip compliance assert, when deadlock or
	illegal found.
	(report): Select proper report function.
	(report-skip): Report that assert has been skipped.
	* test/all: Update baseline.

2020-09-29  Paul Hoogendijk  <paul.hoogendijk@verum.com>

	verify: Implement queue-full the same as other checks.
	Queue-Full is now implemented like range-error etc.

	* dzn/templates/makreel/async-parallel-port@port,
	dzn/templates/makreel/external-proc@port,
	dzn/templates/makreel/queue-proc-requires@port: After queue_full,
	stop (due to delta).
	* test/all: Adapt baselines for queue full tests (deadlock assert fails
	iso illegal assert).

2020-09-28  Jan (janneke) Nieuwenhuizen  <janneke@gnu.org>

	doc: Post-release update.
	* doc/announce/ANNOUNCE-2.10.0: Update hashes.

2020-09-24  Jan (janneke) Nieuwenhuizen  <janneke@gnu.org>
	    Rutger van Beusekom  <rutger.van.beusekom@verum.com>

	doc: Add ANNOUNCE-2.10.0.
	* doc/announce/ANNOUNCE-2.10.0: New file.

2020-09-11  Jan (janneke) Nieuwenhuizen  <janneke@gnu.org>

	doc: Update `NEWS'.
	* NEWS: Release update.

2020-09-24  Jan (janneke) Nieuwenhuizen  <janneke@gnu.org>

	doc: Update 'ROADMAP'.
	* ROADMAP (Release 2.10): Update done items.  Move documentation ...
	(Release 2.11, unsorted): ... here.

	build: Update release process with ANNOUNCE.
	* Makefile.am (gen-announce): New target.  Add documentation.

2020-09-27  Jan (janneke) Nieuwenhuizen  <janneke@gnu.org>

	doc: Update `HACKING'.
	* HACKING (Regression test): Fix example test runs.

2020-09-24  Jan (janneke) Nieuwenhuizen  <janneke@gnu.org>

	wfc: Fix crash on unknown type.
	* dzn/wfc.scm (type-name)[<boolean>]: New method.
	[<ast>]: Avoid string-join on #f.

2020-09-14  Rutger van Beusekom  <rutger.van.beusekom@verum.com>

	parse: Allow import and $$ on toplevel only.
	This fixes silent igoring of ’import’ and ’$#include ..$’ inside a
	namespace, for which no semantics are defined.

	Reported by Jessurun <joran.jessurun@gmail.com>.

	* dzn/parse/peg.scm (peg:parse): Add "scoped" nonterminal for
	namespace and data types.
	* dzn/ast.scm (ast:data*)[root]: New method.
	* dzn/templates/scheme.scm (header-data): Use it.
	* dzn/templates/c++.scm (header-data): Likewise.

2020-09-17  Rutger van Beusekom  <rutger.van.beusekom@verum.com>

	doc: Udpate 'ROADMAP'.
	* ROADMAP: Add notes meeting 17-09-2020.

2020-09-15  Jan (janneke) Nieuwenhuizen  <janneke@gnu.org>

	c++: Use ostream from locator for trace_qout.
	This fixes stray logging to stderr after overriding ’ostream’ in the
	locator.

	Reported via IRC by Jessurun <joran.jessurun@gmail.com>.

	* dzn/templates/c++/trace-q-out@trigger (dzn): Oops, replace hardcoded
	std::clog by ostream from locator.

2020-09-11  Jan (janneke) Nieuwenhuizen  <janneke@gnu.org>

	runtime: c++: Disable experimental state tracing.
	This removes the requirement for data variables to be streamable.

	* dzn/templates/c++/main-port-connect-in@trigger:
	* runtime/c++/dzn/runtime.hh (DZN_STATE_TRACING): New switch.  Disabled
	by default.
	* runtime/c++/dzn/runtime.hh (call_helper, call_out)[DZN_STATE_TRACING]:
	Trace only if set.

2020-09-11  Jan (janneke) Nieuwenhuizen  <janneke@gnu.org>

	runtime: c++: Undo system-simulator commenting.
	Reported by Jessurun <joran.jessurun@gmail.com>.

	* runtime/c++/dzn/container.hh (match): Re-enable throw.
	* runtime/c++03/dzn/container.hh (match): Likewise.

2020-09-14  Jan (janneke) Nieuwenhuizen  <janneke@gnu.org>

	build: Ensure not distributing binary test output.
	* Makefile.am (dist-hook): Remove any test output.

2020-09-10  Jan (janneke) Nieuwenhuizen  <janneke@gnu.org>

	build: Add version to runtime.
	Reported by Jessurun <joran.jessurun@gmail.com>.

	* Makefile.am (C_VERSION_COMMENT, LISP_VERSION_COMMENT): New defines.
	(install-data-local): Use them to add version comment to runtime.
	* runtime/local.mk (dist_runtime_cxx_dzn_DATA): Add meta.hh.  Move
	meta.hh.in ...
	(dist_noinst_DATA): ... here.

2020-09-09  Jan (janneke) Nieuwenhuizen  <janneke@gnu.org>

	ast: Bugfix in event lookup.
	This fixes resolving of an event that matches a model name.

	* dzn/ast.scm (.event): Use lookdown into interface.
	(ast:lookdown): Avoid calling .name on a string.

2020-09-07  Jan (janneke) Nieuwenhuizen  <janneke@gnu.org>

	c++: Fix injection from namespace.
	Reported on IRC by Joran Jessurun <joran.jessurun@gmail.com>.

	* dzn/templates/c++/injected-member-initializer@port: Use x:type-name.
	* dzn/templates/c++.scm (scoped-port-name): Remove.

2020-08-28  Jan (janneke) Nieuwenhuizen  <janneke@gnu.org>

	c++: Avoid generating code for imported components.
	Reported by Johri van Eerd <johri.van.eerd@verum.com>.

	* dzn/ast.scm (topological-sort): Strictly sort a DAG, add KEY
	parameter.
	(ast:topological-model-sort): New function.  Do not inject "missing"
	systems.
	* dzn/dzn.scm (dzn:model): Use it.
	* dzn/code.scm (code:model): Likewise.
	* dzn/c++.scm (c++:model): Likewise.
	* dzn/cs.scm (cs:model): Likewise.

2020-09-10  Jan (janneke) Nieuwenhuizen  <janneke@gnu.org>

	emacs: Update dzn-mode.
	* emacs/dzn-mode.el (dzn-mode): Use 'dzn-mode' major mode.

2020-08-27  Jan (janneke) Nieuwenhuizen  <janneke@gnu.org>

	code: Remove set_state.
	* dzn/code.scm (code:set-state-argument): Remove.
	* dzn/goops.scm (<sexp>): Remove.
	* dzn/templates/code.scm (non-injected-instance-set-state,
	instance-set-state-argument,
	variable-member-setter): Remove.

	c++: Remove set_state.
	* dzn/templates/c++,
	dzn/templates/c++03: Remove include of sexp.hh and set_state.
	* runtime/c++-msvc11/dzn/sexp.hh,
	runtime/c++/dzn/sexp.hh: Remove symlink.
	* runtime/c++03/dzn/sexp.hh,
	* runtime/c++03/dzn/sexp.hh: Remove file.
	* runtime/local.mk (dist_runtime_cxx_dzn_DATA): Remove it.
	* runtime/c++03/dzn/container.hh,
	runtime/c++/dzn/container.hh: Remove set_state.

	javascript: Remove set_state.
	* runtime/javascript/dzn/sexp.js: Remove file.
	* dzn/templates/javascript/source@root: Do not include it.
	* runtime/local.mk (dist_runtime_javascript_dzn_DATA): Likewise.

	scheme: Remove set-state.
	* runtime/scheme/dzn/runtime.scm (dzn:set-state!): Remove method.
	* dzn/templates/scheme/main@component: Remove invocation.

2020-08-10  Jan (janneke) Nieuwenhuizen  <janneke@gnu.org>

	parse: Support -E,--preprocess option.
	This supports things like

	    dzn parse -E test/all/compliance_provides_bool/comp.dzn | ssh big-iron dzn verify -

	* dzn/parse.scm (preprocess): New procedure.
	* dzn/commands/parse.scm (parse-opts): Add -E,--preprocess option.
	(assert-preprocess): New procedure.
	(main): Use it.

2020-08-26  Jan (janneke) Nieuwenhuizen  <janneke@gnu.org>

	test: Add hello_else.
	* test/all/hello_else/hello_else.dzn: New file.
	* test/all/local.mk (HELLO_TESTS): Add it.

	test: Filter non-existent include directories.
	* test/dzn/dzn.scm (run-verify, run-code, run-traces): Filter
	non-existent include directories.

	hello: Remove unused modules.
	* dzn/commands/hello.scm (dzn): Remove unused modules.

2020-08-20  Jan (janneke) Nieuwenhuizen  <janneke@gnu.org>

	ast: Remove obsolete .port resolvers.
	This fixes

	./pre-inst-env dzn code --calling-context=c --shell=hellosystem bug.dzn

	with bug.dzn
	--8<---------------cut here---------------start------------->8---

	extern boolean $bool$;
	interface ihello
	{
	  in void hello();
	  in void hello2(boolean h);

	  behaviour
	  {
	    on hello: {}
	    on hello2: {}
	  }
	}

	component Hello
	{
	  provides ihello h;
	  behaviour
	  {
	    on h.hello(): {}
	    on h.hello2(foo): {}
	  }
	}

	component hellosystem
	{
	  provides ihello h;

	  system
	  {
	    Hello hello;
	    hello.h <=> h;
	  }
	}
	--8<---------------cut here---------------end--------------->8---

	Reported by Johri van Eerd <johri.van.eerd@verum.com>.

	* dzn/ast.scm (.port)[<component-model> <action>],
	[<component-model> <trigger>]: Remove.
	* dzn/code.scm (code:instance-name
	code:instance-port-name): Update callers.

2020-08-14  Jan (janneke) Nieuwenhuizen  <janneke@gnu.org>

	doc: Update `ROADMAP'.
	* ROADMAP: Update.

2020-08-11  Rob Wieringa  <Rob.Wieringa@verum.com>

	parse: Catch import errors properly.
	Introduce the 'import-error key to distinguish from 'syntax-error issues.
	Add 'imported from here' in error reporting.
	Introduce error messaging procedures

	* dzn/parse.scm (peg:message, peg:error-message,
	  peg:syntax-error-message): new  messaging procedures, used ...
	(peg:handle-error): ... in this procedure, renamed from ...
	(peg:error) ... this one.
	(peg:handle-syntax-error): .. and used here.
	* dzn/parse/peg.scm(-do-import-): Throw 'import-error key; do not
	rethrow.  Catch and print path. Add 'imported from here' message.
	* dzn/commands/parse.scm: Catch both 'syntax-error and 'import-error.

2020-07-23  Rob Wieringa  <Rob.Wieringa@verum.com>

	wfc: Restrain event types to provides ports.
	For a reply occuring in a function, check the provides ports only for
	event types, and omit the requires ports.
	The corresponding test has been adapted to catch this. Without the patch
	wfc will succeed, but verification will crash on this adapted test.

	* dzn/ast.scm (ast:return-types-provides): New helper function.
	* dzn/wfc.scm (wfc) [<behaviour>]: Use it for <component> models.
	* test/all/wf_replyFunctionExpression/wf_replyFunctionExpression.dzn:
	Adapt test ...
	* test/all/wf_replyFunctionExpression/baseline/verify/wf_replyFunctionExpression.stderr:
	... and baseline.

2020-07-23  Rob Wieringa  <Rob.Wieringa@verum.com>

	test: Repair broken links.
	* test/parser/wf_replyFunctionExpression,
	test/parser/wf_replyFunctionMultiplePort,
	test/parser/wf_replyOnOutEvent,
	test/parser/wf_replyOnOutEventMultiplePort,
	test/parser/wf_replyOnPort,
	test/parser/wf_replyOnType,
	test/parser/wf_replyPort,
	test/parser/wf_replyRequiresPort: Relink all to ../all.

2020-07-09  Rob Wieringa  <Rob.Wieringa@verum.com>

	ast: Cleanup type of <data> is <extern>.
	* dzn/ast.scm(ast:type): Set the type of <data> objects to <extern>.
	* dzn/c++.scm,
	dzn/code.scm,
	dzn/cs.scm,
	dzn/dzn.scm,
	dzn/wfc.scm: Remove the <data> exception is all relevant checks.

2020-08-07  Jan (janneke) Nieuwenhuizen  <janneke@gnu.org>

	config: Add DZN_DATADIR override.
	* dzn/config.scm.in (%pkgdatadir): Override from environment DZN_DATADIR.

2020-08-10  Jan (janneke) Nieuwenhuizen  <janneke@gnu.org>

	parse: Fix parsing out-event after seeing identical port-name.
	This fixes

	--8<---------------cut here---------------start------------->8---
	component C {
	  provides I noot;
	}

	interface I {
	  out void noot();
	  in void e();

	  behaviour {
	    on e: {}
	    on optional: noot;
	  }
	}
	--8<---------------cut here---------------end--------------->8---

	bug.dzn:11:22: error
	    on optional: noot;
	                     ^
	                     `DOT' expected

	Reported by Rob Wieringa <rob.wieringa@verum.com>.

	* dzn/parse/peg.scm (peg:parse): When parsing INTERFACE, reset
	port-names too.

2020-08-07  Jan (janneke) Nieuwenhuizen  <janneke@gnu.org>

	parse: Enable PEG debug tracing for -dddd.
	New debug levels

	 1. (-d): pipeline
	 2. (-dd): ast
	 3. (-ddd): parse tree
	 4. (-dddd): PEG tracing

	* dzn/parse.scm (parse-string): Set %peg-debug? for debug level > 2.

2020-08-05  Rob Wieringa  <Rob.Wieringa@verum.com>

	wfc: Handle undefined port.
	A wfc check has been added for port bindings where the port exists, but
	is not a <port>.

	* dzn/wfc.scm (binding-declaration): Check for <port> type.
	* test/all/wf_undefined/wf_undefined.dzn: Add a line for this case ...
	* test/all/wf_undefined/baseline/verify/wf_undefined.stderr: ... and
	update the baseline.

2020-08-04  Jan (janneke) Nieuwenhuizen  <janneke@gnu.org>

	Revert "guix: Add mcrl2-pipeline, mcrl2-pipeline-minimal."
	This reverts commit 8c5c78a64f813c6d6a9775c7ec8f0f3c94b9e20b.

	guix: Use upstream mcrl2.
	* guix/gnu/packages/dezyne.scm (dezyne)[inputs]: Use mcrl-minimal.

	guix: Update to abe3c5ed7d04985c987e6c81aeb1284354ea0c77.
	* guix.scm: Update time-machine command to
	abe3c5ed7d04985c987e6c81aeb1284354ea0c77.

2020-07-01  Rob Wieringa  <Rob.Wieringa@verum.com>

	wfc: Factor out common code.
	* dzn/wfc.scm (equal-type?): New procedure, factored out from ...
	(wfc)[<return>], binary-equal-type, assign, reply-in-on): Modified to
	use equal-type?

2020-06-26  Rob Wieringa  <Rob.Wieringa@verum.com>

	wfc: Fix checks for reply.
	The well-formedness check for <reply> has been rewritten, and for each
	reported wfc error a dedicated test has been added. One overlapping test
	has been removed.

	Some error messages have been improved, so some baselines had been
	updated.

	The spec for the well-formedness check is as follows:

	wfc (o <reply>)
	  0. wfc the reply expression
	     [[ TODO: wf_expression: general test for expressions]]
	  1. reply-with-port
	    1.1 if port def not found:
	          ERROR "undefined port `p'"
	          [[wf_replyPort]]
	    1.2 port is a requires port:
	          ERROR: "requires port `p' not allowed in reply"
	          [[wf_replyRequiresPort]]
	    1.3 reply in <on> clause: (reply-in-on o)
	    1.4 reply in <function>: (wfc-reply-expression o port)
	  2. reply-without-port
	    2.1 in interface OR no more than 1 provides port:
	      2.1.1 reply in <on> clause: (reply-in-on o)
	      2.1.2 reply in <function>: (wfc-reply-expression o #f)
	    2.2 in component AND more than 1 provides port:
	      2.2.1 if not in <on> clause:
	              ERROR: "must specify a provides-port with reply"
	              [[wf_replyFunctionMultiplePort]]
	      2.2.2 if there is are any out triggers in the <on> clause:
	              ERROR: "must specify a provides-port with out-event: `r1.e1', `r2.e2'"
	              [[wf_replyOnOutEventMultiplePort]]
	      2.2.3 otherwise: (reply-in-on o)

	reply-in-on (o <reply>)
	  for each of the triggers t in the <on> clause:
	    reply-in-on o t

	reply-in-on (o <reply>) (t <trigger>)
	  'unblocking' means: the model is blocking, and the trigger has a requires port.
	  1. reply has a port which is not equal to the trigger port, AND the model is not blocking:
	       ERROR: "port `p' does not match with trigger port `q'"
	       [[wf_replyOnPort]]
	  2. not unblocking AND the trigger event is an in-event:
	    2.1 if the event type and the reply type do not match:
	          ERROR: "type mismatch: expected `bool', found `int'"
	          [[wf_OnType]]
	    2.2 otherwise: OK
	  3. the model is NOT blocking, and the trigger event is an out-event:
	       ERROR: "reply not allowed on out event `e'"
	       [[wf_replyOnOutEvent]]
	  4. otherwise: (wfc-reply-expression o port)

	wfc-reply-expression (o <reply>) port ;; port is a <port> or #f
	  1. reply has an expression: check WF expression
	  2. if no errors found:
	       collect all event return types:
	         if a port is given, restrict to that port, otherwise look in all ports.
	         ;; FIXME: look in all PROVIDES ports in stead
	       2.1. the reply expression's type (or <void>) doen not occur in all event return types:
	          2.1.1. port is given:
	                   ERROR: "type mismatch: no event with reply type `int' for port `p'"
	                   [[wf_blockingReply]]
	          2.1.2. no port:
	                   ERROR: "type mismatch: no event with reply type `int'"
	                   [[wf_replyFunctionExpression]]
	       2.2. otherwise: OK

	* dzn/wfc.scm (reply-with-port, reply-without-port, wfc-reply-expression,
	reply-in-on): New procedures.
	(wfc)[<reply>]: Use them and rewite.
	* test/all/wf_replyRequiredPort: Delete test.
	* test/all/wf_blockingReply,
	test/all/wf_replyTypeMismatch,
	test/all/wf_typeerror: Update baseline.
	* test/all/wf_replyFunctionExpression,
	test/all/wf_replyFunctionMultiplePort,
	test/all/wf_replyOnOutEvent,
	test/all/wf_replyOnOutEventMultiplePort,
	test/all/wf_replyOnPort,
	test/all/wf_replyOnType,
	test/all/wf_replyPort,
	test/all/wf_replyRequiresPort: New tests ....
	* test/parser: Add as symbolic link in the parser directory.
	* test/all/local.mk (PARSER TESTS): ... and add here.

2020-06-24  Rob Wieringa  <Rob.Wieringa@verum.com>

	wfc: Fix the 'model-blocking?' method.
	The method shall look in the behaviour's statement for occurrences of
	'blocking' A matching test has been added.

	* dzn/wfc.scm(model-blocking?): INSPECT behaviour's statement.
	* test/all/wf_blockingReply/wf_blockingReply.dzn,
	wf_blockingReply,
	wf_blockingReply.stderr,
	est/parser/wf_blockingReply: New test, add to ...
	* test/all/local.mk (PARSER_TESTS): ... this.

2020-06-30  Jan (janneke) Nieuwenhuizen  <janneke@gnu.org>

	dzn: Rename to 'dezyne'.
	This fixes installed dzn cat, ls for the installed package.  Reported by
	Pee on IRC.

	* Makefile.am (do_subst): Substitute @PACKAGE@.
	* dzn/config.scm.in (%package): New variable.
	(%pkgdatadir): Use it.

2020-04-14  Paul Hoogendijk  <paul.hoogendijk@verum.com>

	verify: Add 'tee' command after each command when --debug.
	* dzn/verify/pipeline.scm (execute): New procedure.
	(mcrl2:verify-interface, do-refinement, mcrl2:verify-component-asserts):
	Use it instead of pipeline->string.  Remove obsolete debug printing.

2020-04-03  Paul Hoogendijk  <paul.hoogendijk@verum.com>

	verify: Get rid of 'dillegal' and 'sed' command.
	* dzn/lts.scm (remove-illegal, deadlock-nodes): Use
	"declarative_illegal" instead of
	* dzn/verify/traces.scm (parse): Drop "dillegal".
	* dzn/verify/pipeline.scm (mcrl2:verify-interface, do-refinement,
	mcrl2:verify-component-asserts): Remove SED command for "dillegal".

2020-02-21  Paul Hoogendijk  <paul.hoogendijk@verum.com>

	verify: Replace let loop by 'reduce-or'.
	* dzn/verify/pipeline.scm (mcrl2:verify-component): Use reduce-or.
	(mcrl2:verify-interface, mcrl2:verify-component-asserts): Remove curried
	definition.  Update callers.

2020-02-18  Paul Hoogendijk  <paul.hoogendijk@verum.com>

	verify: Remove command-line options as parameters; refactor.
	* dzn/commands/verify.scm (verify-makreel): Remove dir, file-name
	parameters.  Update callers.
	* dzn/verify/pipeline.scm (mcrl2:verify-interface): Remove.
	(mcrl2:verify-interface-deadlock-livelock): Rename to ...
	(mcrl2:verify-interface): ... this.  Remove dir, dzn-file-name, verbose,
	all?.  Update callers.
	(mcrl2:verify-component): Likewise.
	(assert-ok): Remove verbose? parameter; instead use
	gdzn:command-line:get.  Update callers.
	(assert-fail, check-deterministic, check-deterministic, check-illegal,
	check-deadlock, check-livelock, check-compliance): Remove dir,
	dzn-file-name parameters.  Update callers.

2020-06-26  Jan (janneke) Nieuwenhuizen  <janneke@gnu.org>

	wfc: Throw well-formedness-error instead of exiting from libarary.
	* dzn/wfc.scm (ast:wfc): Throw errors instead of printing and exiting.
	* dzn/commands/parse.scm (assert-parse): Report well-formedness-error.

	dzn parse: Report "internal-error" with arguments.
	* dzn/commands/parse.scm (assert-parse): For errors other than
	syntax-error or system-error, print "internal-error" with arguments.

2020-06-29  Jan (janneke) Nieuwenhuizen  <janneke@gnu.org>

	test: Add parse_syntax.
	Adding only a minimal baseline; the message report format still needs
	some work.

	* test/all/parse_syntax/parse_syntax.dzn,
	test/all/parse_syntax/baseline/verify/parse_syntax,
	test/all/parse_syntax/baseline/verify/parse_syntax.stderr: New test.
	* test/all/local.mk (SMOKE_TESTS): Add it.

2020-06-24  Jan (janneke) Nieuwenhuizen  <janneke@gnu.org>

	doc: Update 'ROADMAP'.
	* ROADMAP: Update for rename and wip-memoize.

2020-02-07  Paul Hoogendijk  <paul.hoogendijk@verum.com>

	makreel: Use tree-collect-filter instead of tree-collect.
	* dzn/makreel.scm (makreel:add-function-return, reachable-calls-,
	ast:trigger*[<model>, ast:blocking?[<component>,<port>],
	ast:provides-blocking?): Use tree-collect-filter.

	makreel: Only generate parts of other interfaces that are relevant.
	* dzn/makreel.scm (makreel:get-model):
	(enum-sort-global-public): New method.
	(makreel:enum-sort)[<component>,<interface>]: Use it.

2019-12-17  Paul Hoogendijk  <paul.hoogendijk@verum.com>

	makreel: Avoid generating dead makreel code.
	* dzn/makreel.scm (no-tail-call, is-called?): New procedures.
	(call-continuations, makreel:called-function*): Use them to avoid
	include return locations of tail-call calls.

2019-11-29  Paul Hoogendijk  <paul.hoogendijk@verum.com>

	makreel: Improve performance by memoizing reachable-calls.
	* dzn/makreel.scm (reachable-calls-): Rename from
	reachable-calls to enable memoization.
	(reachable-calls): Add memoization using ast:pure-funcq.

2019-11-28  Paul Hoogendijk  <paul.hoogendijk@verum.com>

	makreel: Improve performance by memoizing makreel:locals.
	* dzn/makreel.scm (makreel:locals-): Rename from makree:locals
	Remove commented code.
	(makreel:locals): Add memoization using ast:pure-funcq.

2020-05-26  Jan (janneke) Nieuwenhuizen  <janneke@gnu.org>

	build: Rename to 'dezyne'.
	* configure.ac (AC_INIT): Rename to 'dezyne'.
	* Makefile.am (release, update-hash): Update.

	guix: dezyne: Rename from 'dzn'.
	* guix/gnu/packages/dzn.scm: Rename to  ...
	* guix/gnu/packages/dezyne.scm: this.  Update package.
	* guix.scm (dzn): Rename to ...
	(dezyne): This.

2020-06-19  Jan (janneke) Nieuwenhuizen  <janneke@gnu.org>

	doc: Update 'ROADMAP'.
	* ROADMAP: Update for wip-verse-makreel and fall-back (PEG groundwork).

2020-05-14  Jan (janneke) Nieuwenhuizen  <janneke@gnu.org>

	guix: dzn: Use mcrl2-pipeline-minimal.
	* guix/gnu/packages/dzn.scm (dzn)[inputs]: Use mcrl2-pipeline-minimal.
	* Makefile.am (EXTRA_DIST): Add it.

	guix: Add mcrl2-pipeline, mcrl2-pipeline-minimal.
	* guix/gnu/packages/mcrl2.scm: New file.

2020-05-19  Jan (janneke) Nieuwenhuizen  <janneke@gnu.org>

	verify: Assert valid trace when ltscompare fails.
	This helps avoid the dreaded "No verification errors found."

	* dzn/verify/pipeline.scm (do-refinement): Check on status, assert that
	there is a valid trace when ltscompare fails.

2020-04-29  Jan (janneke) Nieuwenhuizen  <janneke@gnu.org>

	verify: Use mCRL2 pipeline, structured output 201908.0.863ff22263.
	This depends on structured output, and pipeline support, mCRL2
	version 201908.0.863ff22263, or later.

	* dzn/verify/pipeline.scm (mcrl2:verify-interface-deadlock-livelock
	do-refinement,
	mcrl2:verify-component-deterministic-illegal-deadlock-livelock-refinement):
	Add --save-at-end.
	(do-refinement): Read status from stdout;
	update to ": " convention.
	* dzn/commands/traces.scm (mcrl2->lts): Likewise.
	* configure.ac: Add --save-at-end to lps2lts test.  Use EOT to separate
	multiple LTSes on stdin.
	* dzn/verify/traces.scm (parse): Accept `;' as separator.
	* README: Document updated mCRL2 requirement.

2020-04-20  Paul Hoogendijk  <paul.hoogendijk@verum.com>

	verify: Only add one element of acceptance-set to trace.
	Concatenating all alternatives from the set creates an impossible trace;
	use just one alternative.

	* dzn/verify/pipeline.scm (do-refinement): Split acceptance set into
	sorted list of events.
	(check-compliance): Use the first element of acceptance set to lengthen
	the trace.

2020-02-04  Jan Nieuwenhuizen  <janneke@gnu.org>

	verify: Remove dependency on file-system and shell.
	* configure.ac: Check for fixed lps2lts.  Check for ltscompare
	--structured-output.
	* dzn/verify/traces.scm (parse): Allow space as separator.
	* dzn/verify/pipeline.scm (do-refinement): Refactor to support
	lps2lts writing to stdout and --structured-output
	(mcrl2:verify-component-deterministic-illegal-deadlock-livelock-refinement): Update.
	(check-compliance): Likewise.
	* dzn/commands/verify.scm (main): Do not run in temporary directory.

2020-04-30  Johri van Eerd  <johri.van.eerd@verum.com>

	verify: Add helper process for valued action replies.
	This is required for upgrading to mCRL2 44ec01df or later, where

	    sum b: Bool . act(b) . P(); P(b: Bool) = ...

	was disallowed.

	* dzn/makreel.scm (makreel:sum-helper-params): New method.
	* dzn/templates/makreel.scm (sum-helper-params): Use it in new
	template definition.
	* dzn/templates/makreel/assign@action: Use it.
	* dzn/templates/makreel/sum-helper-params@formal,
	dzn/templates/makreel/sum-helper-params@return,
	dzn/templates/makreel/sum-helper-params@stack,
	dzn/templates/makreel/sum-helper-params@formal: New template.

2020-05-13  Rob Wieringa  <Rob.Wieringa@verum.com>

	test: Add wf_undefined.
	The well-formedness check for references to undefined entities has been
	fixed.  A dedicated test has been added. As a result missing and
	erroneous wfc methods have been found and repaired. Most noticable, a
	missing check for <instance> has been added.

	* dzn/wfc.scm (wfc)[<instance>]: New method,
	various places: harden against cascading errors.
	* test/all/local.mk (PARSER_TESTS): Add test.
	* test/all/wf_undefined/META,
	test/all/wf_undefined/baseline/verify/wf_undefined,
	test/all/wf_undefined/baseline/verify/wf_undefined.stderr,
	test/all/wf_undefined/wf_undefined.dzn,
	test/parser/wf_undefined: New files.

2020-06-08  Rob Wieringa  <Rob.Wieringa@verum.com>

	fixup: wfc: binding external.
	This is a follow-up commit to 7682386c829277fb6b4c1f2e387f0236eadbf150.

	When an external requires port of a system is connected to a requires port of a
	sub component, that second port must be external also.

	* dzn/wfc.scm (binding-direction): Propagate external to port exposed
	on a system.
	* test/all/wf_bindingExternals/baseline/verify/wf_bindingExternals.stderr:
	Update baseline.

2020-06-17  Jan (janneke) Nieuwenhuizen  <janneke@gnu.org>

	Revert "fixup: wfc: binding external."
	After discussion, Rob Wieringa provided an alternative fixup.

	This reverts commit 2cfe9716ba3e3f9421197d97b090980eed1f4dc6.

2020-06-05  Rob Wieringa  <Rob.Wieringa@verum.com>

	Fix class mixing of equally named dzn definitions.
	* dzn/ast.scm (ast:equal?): Consider object class in comparison.
	* dzn/wfc.scm (reply): Use separate TEST and EXPRESSION in COND
	clause.

2020-05-19  Jan (janneke) Nieuwenhuizen  <janneke@gnu.org>

	guix.scm: Update to guix-36640207c9.
	Update to a recent, post core-updates merge version of Guix.  The recent
	core-updates merge once again supports MingGW cross-builds.

	This particular commit supports a Guile-3.0 based Guix and allows using
	the time-machine to travel back to the pre-Guile-3.0 era.

	See <https://bugs.gnu.org/41595>.

	* guix.scm: Update time-machine instruction.

2020-06-06  Johri van Eerd  <johri.van.eerd@verum.com>

	normalize: Add missing reply port in functions too.
	* dzn/normalize.scm (add-reply-port): Recurse into functions to add
	reply port, if missing.
	* test/all/blocking_function_reply/blocking_function_reply.dzn: New
	file.
	* test/all/local.mk (REGRESSION_TESTS): Add it.

2020-01-13  Paul Hoogendijk  <paul.hoogendijk@verum.com>

	makreel: Fix tail-call marking for non-recursive calls.
	* dzn/makreel.scm (makreel:mark-tail-call): Strictly use a (void)
	<return> to mark tail calls.
	(makreel:om): Call makreel:mark-tail-call after
	makreel:add-function-return.
	* test/dzn/makreel.scm ("tail-call other", "non tail-call",
	"non tail-call valued"): New tests.

2020-04-21  Jan (janneke) Nieuwenhuizen  <janneke@gnu.org>

	test: Start unit test for makreel.
	* test/dzn/makreel.scm: New file.
	* Makefile.am (UNIT_TEST): Move from here ...
	* test/dzn/local.mk (UNIT_TESTS): ... to here, and add makreel.scm

2020-05-20  Jan (janneke) Nieuwenhuizen  <janneke@gnu.org>

	parse: Refactor interface and exit.
	* dzn/parse/peg.scm: Remove obsolete %peg-locations? export.
	(peg:error): Use throw instead of exit, leave that
	decision to ...
	* dzn/commands/parse.scm (assert-parse): ... here.  Print actual
	system-error instead of assuming EONOENT.  When --debug,
	(parse-opts): Remove obsolete options --behaviour, --locations.
	* dzn/parse.scm (peg:parse-file): Rename to ...
	(parse-string): ... this.  Remove catch, printing of ENOENT guess, exit.
	Remove obsolete "behaviour? and "locations?" parameters.
	(parse): Rename to ...
	(file->ast): ... this.  Remove model-name parameter and unused
	"behaviour?" and "location?" parameters.  Update caller.
	(string->ast): New procedure.

2020-05-27  Rutger van Beusekom  <rutger.van.beusekom@verum.com>

	peg: Parse unknown identifiers and handle errors in wfc.

2020-05-11  Rutger van Beusekom  <rutger.van.beusekom@verum.com>

	peg: Rename and parameterize skip parser.
	* dzn/peg/codegen.scm (define-skip-parser): Macro for declaring skip parsers.
	(wrap-parser-for-users): Use skip parser via parameter.
	(%peg:skip?): Parameter for skip parser.
	* dzn/parse/peg.scm (peg:skip-parse): Export skip parser.
	* dzn/parse.scm (peg:parse-file): Parameterize skip parser.

2020-05-04  Rutger van Beusekom  <rutger.van.beusekom@verum.com>

	peg: Move peg grammar parameterization to parse.scm
	* dzn/peg.scm (peg:line-number): Remove.
	(peg:column-number): Remove.
	(peg:line): Remove.
	(peg:error): Remove.
	(peg:handle-syntax-error): Remove.
	* dzn/parse.scm (peg:line-number): Add.
	(peg:column-number): Add.
	(peg:line): Add.
	(peg:error): Add.
	(peg:handle-syntax-error): Add.
	(peg:parse-file): Parameterize outside peg.scm to avoid recompiling.

2020-05-04  Rutger van Beusekom  <rutger.van.beusekom@verum.com>

	peg: Add fall-back parsing.
	Refactor:

	* dzn/peg/codegen.scm (format-error): Record skipped input or missed
	  expectations.
	(fall-back-skip): Common code for syntax-error recovery.
	(partial-match): Attempt parse and return true on partial match.

2020-05-25  Rutger van Beusekom  <rutger.van.beusekom@verum.com>

	fixup: wfc: Add more checks.
	This is a follow-up commit to 8b3f12a07cfa95b081830469f3f0afe06d3e63a6.

	* dzn/wfc.scm (reply): Exclude requires out triggers and assume that a
	reply in that case releases a blocking provides in.

2020-05-25  Rutger van Beusekom  <rutger.van.beusekom@verum.com>

	fixup: wfc: binding external.
	This is a follow-up commit to 7682386c829277fb6b4c1f2e387f0236eadbf150.

	* dzn/wfc.scm (binding-direction): Propagate external to port exposed
	on a system.

2020-05-12  Jan (janneke) Nieuwenhuizen  <janneke@gnu.org>

	test: Drop code2fdr.
	* test/dzn/dzn.scm (run-execute): Use "dzn trace" to translate code
	traces properly.
	* test/bin/code2fdr,
	test/bin/local.mk: Remove.
	* Makefile.am: Remove include.

2020-05-12  Jan (janneke) Nieuwenhuizen  <janneke@gnu.org>

	test: async_order, async_order2: Hardcode trace.2 test.
	The trace.2 tests were hacked into passing by re-wiring the system,
	in combination with setting component and port names to blank (" ")
	and having code2fdr skip those messages.

	Disables trace.2 tests altogether by printing hardcoded trace instead.
	This enables dropping the hacky code2fdr script altogether.

	* test/all/async_order/main.cc (main): Hardcode trace.2 test.
	* test/all/async_order2/main.cc (main): Likewise.

2020-05-12  Jan (janneke) Nieuwenhuizen  <janneke@gnu.org>

	test: async_ranking: Play well with dzn trace.
	dzn trace chokes on parsing the ranking debug output; avoid that by not
	mixing the trace with debug info.

	* test/all/async_ranking/main.cc: Print ranking info to stdout.

2020-05-12  Jan (janneke) Nieuwenhuizen  <janneke@gnu.org>

	test: async_rank: Play well with dzn trace.
	dzn trace chokes on parsing the ranking debug output; avoid that by not
	mixing the trace with debug info.

	* test/all/async_rank/main.cc: Print ranking info to stdout.

2020-05-11  Jan (janneke) Nieuwenhuizen  <janneke@gnu.org>

	test: Respect code diff.
	The previously used regexp skips any line that has tree dots, anywhere,
	e.g., these two lines were not considered (and thus these two files were
	considered "the same"):

	   diff -ywB --ignore-matching-lines='[.][^.]\+[.][^.]\+[.]' <(echo -e '<external>.p.hello -> sut.p.hello') <(echo -e '. . .')
	<external>.p.hello -> sut.p.hello				. . .
	   [exit 0]

	note that the trace on the left is perfectly OK.

	* test/dzn/dzn.scm (run-test): Strictly skip system-internal events.

2020-05-28  Jan (janneke) Nieuwenhuizen  <janneke@gnu.org>

	doc: Update 'ROADMAP'.
	* ROADMAP: Update for banaan => kluit.

2020-05-26  Johri van Eerd  <johri.van.eerd@verum.com>

	doc: Update `ROADMAP' to prepare for 2.10 release.

2020-05-25  Rob Wieringa  <Rob.Wieringa@verum.com>

	test: Register equal_binary, hello_shadow.
	These were present and pass, just not enabled.

	* test/all/local.mk (REGRESSION_TESTS): Add equal_binary and
	hello_shadow.

2020-05-14  Rob Wieringa  <Rob.Wieringa@verum.com>

	wfc: Add guard check.
	Add a type check for <guard> <expression>s.  Moreover, add a test
	checking for all kind of <expression> type correctness.

	* dzn/wfc.scm: (wfc)[<guard>]: Add check for <bool>
	* test/all/local.mk: Add wf_expressionExpected check
	* test/all/wf_expressionExpected/META,
	test/all/wf_expressionExpected/baseline/verify/wf_expressionExpected,
	test/all/wf_expressionExpected/baseline/verify/wf_expressionExpected.stderr,
	test/all/wf_expressionExpected/wf_expressionExpected.dzn: New files.

2020-05-15  Jan (janneke) Nieuwenhuizen  <janneke@gnu.org>

	guix: dzn: Remove explicit dependency on coreutils.
	* guix/gnu/packages/dzn.scm (dzn)[inputs]: Remove coreutils.
	[arguments]: Remove coreutils from PATH wrapper.

2020-05-19  Jan (janneke) Nieuwenhuizen  <janneke@gnu.org>

	doc: Update `ROADMAP'.
	* ROADMAP: Track progress since rc9.

2020-05-18  Jan (janneke) Nieuwenhuizen  <janneke@gnu.org>

	emacs: Use regexp-parsing for model names.
	The standalone dzn client does not implement --interfaces, --components
	flags on dzn parse.  This patch works around that.

	* emacs/dzn-mode.el (get-models): New function.
	(dzn-get-models): Use it instead of dzn parse.

2020-04-14  Rob Wieringa  <Rob.Wieringa@verum.com>

	wfc: performance: Refactor cycle detection.
	Cycle detection is used in two cases: to set the .recursive property of
	<function> objects, and to do a well-formedness check on <system>
	recursive instantiation.  An efficient generic cycle detection function
	has been added, using Tarjan's strongly connected components (SCC)
	algorithm.  This is used in both cases and code duplication has been
	removed.  Test cases have been sharpened.

	*  dzn/ast.scm (ast:graph-scc): New SCC function, applied in ...
	(ast:graph-cyclic?): ... new method.
	(ast:recursive?): New method, using ast:graph-cyclic?.
	(ast:component-model*): New helper method.
	(ast:system*): New helper method.
	(ast:call-statement): New helper method.
	(ast:function*): New helper method.
	* dzn/parse/ast.scm (set-recursive): Adapt to use ast:recursive?.
	(recurses?): Remove.
	* dzn/wfc.scm (tail-recursion): Adapt to use .recursive attribute.
	(recursive?)[<system>]: New method, using ast:graph-cyclic?.
	(recursive)[<system>]: wfc, adapt to used recursive?.
	(recurses?, sub-systems): Remove.
	* test/all/wf_functionTailRecursion/baseline/verify/wf_functionTailRecursion.stderr:
	Fix baseline.
	* test/all/wf_systemRecursion/wf_systemRecursion.dzn: Add test for
	self-inclusion.
	* test/all/wf_systemRecursion/baseline/verify/wf_systemRecursion.stderr:
	Fix baseline.

2020-05-08  Jan (janneke) Nieuwenhuizen  <janneke@gnu.org>

	Revert "wfc: performance: Call 'recursive?'."
	These two commits to improve performance and remove code duplication of
	‘recurses?’ fail to address the badly understood and duplicated
	recurses? function: "Smart...but too clever."

	This reverts commit 04a766a6a429492af51784b7623f0a1f262cbde0.

2020-05-08  Jan (janneke) Nieuwenhuizen  <janneke@gnu.org>

	Revert "ast: Remove code duplication."
	This reverts commit 934955fb2504a027763e5fdc8eada0e4c5a2b53c.

2020-04-20  Rob Wieringa  <Rob.Wieringa@verum.com>

	ast performance: Use memoization in recursive call of 'ast:lookup-n'.
	ast:lookup-n tries and lookup a name in an outer scope when required.
	It will profit (in performance) from a call to a memoized function.
	Since ast:lookup-n returns a list of matches, a new memoized function
	called ast:lookup-list is introduced, and used where appropriate.

	* ast.scm (ast:lookup-list-): Rename from ...
	(ast:lookup-list): this new memoized function.
	(ast:lookup, ast:lookup-n): Use ast:lookup-list, for performance.
	(ast:lookup-): Remove.

2020-05-07  Rob Wieringa  <Rob.Wieringa@verum.com>

	ast: Fix .port lookup of <trigger> when shadowed by parameter.
	Since <trigger> opens a new scope, the look-up of its port must start in
	its outer scope.  This is extra tricky when parameters get renamed.

	Port names can now be shadowed by parameter names.

	A test case has been added.

	* dzn/ast.scm (.port <trigger>): Fix lookup.
	* test/all/alpha_shadow_port/alpha_shadow_port.dzn,
	test/regression/alpha_shadow_port: New file.
	* test/all/local.mk (REGRESSION_TESTS): Add it.

2020-05-07  Jan (janneke) Nieuwenhuizen  <janneke@gnu.org>

	peg: Treat types-and-events similar to instances-and-bindings.
	* dzn/parse/peg.scm (peg:parse): Rename types-or-events to
	types-and-events.
	* dzn/parse/ast.scm (parse-tree->ast): Update name and treatment
	similar to instances-and-bindings: use partition instead of filtering
	twice.

2020-05-07  Rutger van Beusekom  <rutger.van.beusekom@verum.com>
	    Jan Nieuwenhuizen  <janneke@gnu.org>

	peg: Allow mixing instances and bindings.
	* dzn/parse/peg.scm (peg:parse): Replace separate instances and
	bindings with instances-and-bindings.
	* dzn/parse/ast.scm (parse-tree->ast): Handle instances-and-bindings.
	Remove dead code.
	* test/all/system_mix_bindings/system_mix_bindings.dzn: Rename system
	"C" to "system_mix_bindings".  Fixes other test now parse succeeds.
	* test/all/local.mk (XFAIL_TESTS): Remove system_mix_bindings.
	* test/all/wf_interfaceMustDefineEvent/baseline/verify/wf_interfaceMustDefineEvent.stderr:
	Update baseline.

2020-05-07  Jan (janneke) Nieuwenhuizen  <janneke@gnu.org>

	ast: Remove code duplication.
	* dzn/wfc.scm (%calls-per-function, calls-per-function, recursive?):
	Move to
	* dzn/parse/ast.scm (%calls-per-function, ast:calls-per-function,
	ast:recursive?): ... here.  Update callers.
	(recursive?): Remove mostly duplicated function.
	(set-recursive): Adapt to <call> instead of <function> interface.

2020-04-14  Rob Wieringa  <Rob.Wieringa@verum.com>

	wfc: performance: Call 'recursive?'.
	Well-formedness performance on recursivity of functions has been
	improved by pre-calculating the 'calls per function' property that is
	repeatedly used in a 'recurses?' function.
	This property is passed using the guile parameter mechanism.

	* dzn/parse/ast.scm (recurses?): Factor-out call-statement to ...
	* dzn/ast.scm (ast:call-statement): ... New function.
	* dzn/wfc.scm (calls-per-function): New method.
	(%calls-per-function): New parameter.
	(wfc)[<behaviour>]: Calculate and pass it.
	(recurses?): Use it, and remove dead code.

2020-03-11  Rob Wieringa  <Rob.Wieringa@verum.com>
	    Jan Nieuwenhuizen  <janneke@gnu.org>

	wfc: performance: System checks.
	Performance of well-formedness checks of large systems is improved.
	1. In the test for recursiveness of a system, the calculation of all
	subsystems is memoized by storing the data in an alist.
	2. In the test for cyclic bindings in a system, the collection of all
	reuired instances is calculate once in an alist, and re-used in the rest
	of the test.


	* dzn/wfc.scm (sub-systems-): New method.  Split worker out from...
	(sub-systems): ... rename from subsystems.  Add memoization.
	(all-required): Add 'required-alist' parameter to avoid re-calculation.
	(cyclic-bindings): Calculate required-alist once and re-use it in
	further processing.

2020-05-04  Jan (janneke) Nieuwenhuizen  <janneke@gnu.org>

	wfc: Remove alternative implementation of ast:return-types.
	This removes code duplication.

	* dzn/wfc.scm (model-event-types): Remove.  Update callers to use
	ast:return-types.
	* dzn/ast.scm (ast:return-types)[<interface>]: Add docstring.
	[<component-model>]: Likewise.  Use filter-map to allow #f.
	[<type>]: New specialization.
	[<event>]: New specialization, rename from ...
	(ast:return-type): ... remove method.

2020-05-04  Rob Wieringa  <Rob.Wieringa@verum.com>

	wfc: performace: Pre-calculate model properties.
	Well-formedness performance has been improved by pre-calculating some
	model properties that are repeatedly used in a model's sub nodes:
	1. is 'blocking' used in the model?
	2. what event types are used in the model.
	These properties are passed using the guile parameter mechanism.

	Additionally, the well-formedness check for system 'missing-bindings'
	has been improved by pre-calculating all used ports of a system, and
	re-using that set later-on,

	* dzn/wfc.scm (%model-event-types, %model-blocking?): New parameters.
	(model-event-types,model-blocking?): New methods.
	(wfc)[<behaviour>]: Callculate and pass the two parameters.
	(wfc-reply-type): Use %model-event-types.
	(reply): Use %model-blocking.
	(missing-bindings): Re-write to calculate 'ports' once for a system.

2020-05-04  Rob Wieringa  <Rob.Wieringa@verum.com>

	parse: performance: Pre-calculate newlines for Location.
	Location is stored in the ast as (line,col), so has to be transformed
	from the position resulted from the peg parser.  This transformation was
	taking 80% of parsing time.  Performance has been improved by
	pre-calculating the positions of all newlines in the source.
	Furthermore, calculations are only done for <locationed> nodes.

	* dzn/parse/ast.scm (parse-tree->ast): Calculate newlines and use
	these in 'line-number' and 'column-number' functions, called only for
	<locationed>.  Use 'tree-collect-filter' to optimize collecting imports.

2020-05-04  Jan (janneke) Nieuwenhuizen  <janneke@gnu.org>

	doc: Update `ROADMAP'.
	* ROADMAP: Update.

2020-02-05  Rob Wieringa  <Rob.Wieringa@verum.com>

	wfc: Add check for reply type.
	A well-formedness check has been added for a 'reply(expr)' construct.
	There must exist an event 'e' that matches the reply, i.e. the type of
	'expr' must match the reply type of 'e'.  This check will prevent mCRL2
	to abort on violating models.  Tests have been modified to reflect the
	change.

	* dzn/wfc.scm (wfc-reply-type)[<expression>]: New method.
	(wfc)[<reply>]: Use it.
	* (wfc)[<return>]: Fix indentation.
	* test/all/wf_replyTypeMismatch/wf_replyTypeMismatch.dzn: Sharpen test.
	* test/all/wf_replyTypeMismatch/baseline/verify/wf_replyTypeMismatch.stderr:
	test/all/wf_typeerror/baseline/verify/wf_typeerror.stderr: Update baselines.

2020-02-04  Rob Wieringa  <Rob.Wieringa@verum.com>

	wfc: Harden wfc trigger.
	The well-formedness check for a <trigger> 'p.e' now copes with the
	option that 'p' does not refer to a <port>.  In that case 'e' cannot be
	resolved. A corresponding test has been added.  Due to the change some
	well-formedness messages change, resulting in updated test baselines.

	* dzn/wfc.scm (wfc): Check first for availability of port.
	* test/all/wf_importPathErr/baseline/verify/wf_importPathErr.stderr,
	test/all/wf_typeerror/baseline/verify/wf_typeerror.stderr: Update baseline.
	* test/all/local.mk (PARSER_TESTS: Add test.
	* test/all/wf_notPort/baseline/verify/wf_notPort,
	test/all/wf_notPort/baseline/verify/wf_notPort.stderr,
	test/all/wf_notPort/wf_notPort.dzn,
	test/parser/wf_notPort,
	test/regression/wf_notPort: New files.

2020-02-04  Rob Wieringa  <Rob.Wieringa@verum.com>

	wfc: Add 're-declaration' check, and corresponding test.
	Declaration of an item with the same name as a previous one in the same
	scope, is not allowed in Dezyene.  Well-formedness checks are added for
	missing cases.  A corresponding test has been added.

	* dzn/wfc.scm (wfc): Add re-declaration check for <interface>,
	<component>, <system>, <event>.
	* dzn/wfc.scm (decl-scope): Specify declaration scope for <port>.
	* test/all/wf_declaredBefore/wf_declaredBefore.dzn,
	test/all/wf_declaredBefore/META,
	test/all/wf_declaredBefore/baseline/verify/wf_declaredBefore,
	test/all/wf_declaredBefore/baseline/verify/wf_declaredBefore.stderr: New files.
	* test/all/local.mk (PARSER_TESTS): Add the test.
	* test/regression/wf_declaredBefore,
	test/parser/wf_declaredBefore: New symlinks.

2020-01-31  Paul Hoogendijk  <paul.hoogendijk@verum.com>

	ast: Introduce tree-collect-filter for cutting off traversal.
	The goops method tree-collect recursively traverses all sub nodes of
	an ast object, which can have a severe performance penalty.

	Method tree-collect-filter is introduced to stop traversal when
	filter-predicate is not met.  Method three-collect can be expressed in
	terms of tree-collect-filter.  Its introduction makes
	tree-collect-shallow redundant.

	* dzn/goops.scm (tree-collect-filter): New method.  Traverse ast object
	until filter-predicate is violated.
	* dzn/goops.scm (tree-collect): Ues it.
	* dzn/goops.scm (tree-collect-shallow): Remove.
	* dzn/wfc.scm (reply): Performance improvement: Now use
	tree-collect-filter (was tree-collect).
	* dzn/normalize.scm (triples:->triples): Update to use
	tree-collect-filter instead of tree-collect-shallow.

2020-04-28  Jan (janneke) Nieuwenhuizen  <janneke@gnu.org>

	doc: Update `ROADMAP'.
	* ROADMAP: Update.

2020-04-24  Jan (janneke) Nieuwenhuizen  <janneke@gnu.org>

	test: Add system_mix_bindings.
	Bug reported with minimal example by Joran Jessurun.

	* test/all/system_mix_bindings/system_mix_bindings.dzn: New file.
	* test/all/local.mk (REGRESSION_TESTS, XFAIL_TESTS): Add it.

2020-04-27  Jan (janneke) Nieuwenhuizen  <janneke@gnu.org>

	test: Add alpha_field_test.
	* test/all/alpha_field_test/alpha_field_test.dzn: New file.
	* test/all/local.mk (REGRESSION_TESTS): Add it.

2020-04-24  Paul Hoogendijk  <paul.hoogendijk@verum.com>

	test: Add alpha_local.
	* test/all/alpha_local/alpha_local.dzn: New file.
	* test/all/local.mk (REGRESSION_TESTS): Add it.

2020-04-24  Jan (janneke) Nieuwenhuizen  <janneke@gnu.org>

	test: hello_alpha: Fix verification, test all stages.
	* test/all/hello_alpha/META: Remove.
	* test/all/hello_alpha/hello_alpha.dzn: Accept p.e, fixes verification
	error.

2020-04-23  Rob Wieringa  <rob.wieringa@verum.com>

	test: Add alpha_variable.
	Reported by Joran Jessurun on IRC.

	* test/all/alpha_variable/alpha_variable.dzn: New file.
	* test/all/local.mk (REGRESSION_TESTS): Add it.
	* dzn/normalize.scm (rewrite-formals): Also rewrite name of variable
	declaration, field-test, formal and formal-binding.  Besides formals,
	also rewrite locals.  Remove catch-all string rewrite.

	Co-Authored-by: Jan Nieuwenhuizen <janneke@gnu.org>
	Co-Authored-by: Rob Wieringa <rob.wieringa@verum.com>

2020-02-27  Rob Wieringa  <Rob.Wieringa@verum.com>

	ast: Fix performance of <void> lookup.
	'void' is defined in <root> scope; skipping to <root> gives better
	performance.

	* dzn/ast.scm (ast:lookup-n): Add special case for <void>: skip all
	irrelevant nested scopes.

2020-03-23  Jan Nieuwenhuizen  <janneke@gnu.org>

	trace: Use "error" and "info" tagging of messages.
	* dzn/commands/trace.scm (seqdiag:sexp->location): Use "error" and
	"info" tagging of messages.

2020-01-15  Ruter van Beusekom  <rutger.van.beusekom@verum.com>

	gash pipe: Support Guile piped-process.
	* gash/pipe.scm (pipeline): Rename to ...
	(forked:pipeline): this.
	(pipeline->sting): Rename to ...
	(forked:pipeline->string): this.
	(piped-process:pipeline, piped-process:pipeline->string, pipeline,
	pipeline->string): New function.

2020-04-06  Paul Hoogendijk  <paul.hoogendijk@verum.com>

	test: Support running with `Dash' as /bin/sh.
	Dash actively removes environment variables with a hyphen/dash from the
	environment:

	    https://git.kernel.org/pub/scm/utils/dash/dash.git/commit/?id=46d3c1a614f11f0d40a7e73376359618ff07abcd

	which makes `make check' start infinite recursion when /bin/sh is
	Dash (such as Debian).

	* test/bin/run.in (main): Avoid hyphen/dash in environment variable
	'run_seen' used to stop recursion.

2020-03-18  Jan Nieuwenhuizen  <janneke@gnu.org>

	build: Update hash and version.
	* guix/gnu/packages/dzn.scm (dzn): Add markers.
	* Makefile.am (update-hash): Use them to update hash.

2020-03-25  Jan Nieuwenhuizen  <janneke@gnu.org>

	doc: Update `ROADMAP'.
	* ROADMAP: Update after integration of `wip'.

2020-03-23  Jan Nieuwenhuizen  <janneke@gnu.org>

	trace: Add guile-json-1 compatibility.
	* dzn/commands/trace.scm (json-vector->list): New function.
	(seqdiag:sexp->location, seqdiag:sequence->steps, seqdiag:trace->steps):
	Use it.
	(json->alist-scm): New function.
	(seqdiag:format-sexp): Use it.

2020-03-22  Jan Nieuwenhuizen  <janneke@gnu.org>

	trace: Support for seqdiag trace.
	* dzn/commands/trace.scm (<seqdiag:step>): New type.
	(seqdiag:get-model, seqdiag:sequence->trail, seqdiag:step->string,
	seqdiag:sexp->location, seqdiag:sequence->steps): New function.
	(seqdiag:trace->steps): Use them.
	(seqdiag:format-sexp, seqdiag:format-trace, seqdiag:sexp->steps,
	step:format-trace): New exported function.
	(format-trace): Use them.

2020-03-24  Jan Nieuwenhuizen  <janneke@gnu.org>

	code: Update help text.
	* dzn/config.scm.in (%languages): New exported variable.
	* Makefile.am (do_subst): Substitute it.
	* dzn/commands/code.scm (parse-opts): Use it to fix help text,
	together with...
	(%default-language): New variable.
	(main): Use it to softcode default.

2020-03-22  Jan Nieuwenhuizen  <janneke@gnu.org>

	trace: Bugfix.
	This fixes

	    echo 'hello -> h.hello' | ./pre-inst-env dzn trace

	* dzn/commands/trace.scm (step->communication): Use "sut", fixes
	string-append on symbol.

2020-03-22  Jan Nieuwenhuizen  <janneke@gnu.org>

	dzn: Allow upgrading to guile-json-3.
	This drops json2scm library that has a strict guile-json-1 dependency.

	* dzn/commands/verify.scm (dzn): Do not include json2scm.
	* dzn/json2scm.scm: Remove.
	* dzn/local.mk (dist_%C%_scm_DATA): Remove it.

2020-03-31  Jan Nieuwenhuizen  <janneke@gnu.org>

	emacs: Remove dzn-ide aspects.
	* emacs/dzn-mode.el (dzn-browse, dzn-register, dzn-select-view,
	goto-location, dzn-handle-trace): Remove.

2020-03-23  Jan Nieuwenhuizen  <janneke@gnu.org>

	emacs: Remove dzn-run.
	* emacs/dzn-mode.el (dzn-run, dzn-run-event, dzn-run-back): Remove.
	Update users.

2020-03-22  Jan Nieuwenhuizen  <janneke@gnu.org>

	emacs: Resurrect dzn-mode.
	* emacs/dzn-mode.el: Initial import.  Disable view commands: browse,
	handle-trace, view/system.
	* Makefile.am (dist_lisp_DATA): Add it.
	* configure.ac (AM_PATH_LISPDIR): Support it.

2020-01-28  Jan Nieuwenhuizen  <janneke@gnu.org>

	verify: Do not write interface-trace.txt.
	* dzn/verify/pipeline.scm (assert-fail): Do not write obsolete
	`interface-trace.txt'.  Remove interface-trace parameter.  Update
	callers.

2020-03-30  Jan Nieuwenhuizen  <janneke@gnu.org>

	verify: Do not dump models when working from stream.
	This fixes the weird ‘compliance_provides_bool-bug’ in IDE.

	* dzn/commands/verify.scm (main): When file-name is `-', parse
	directly from stdin; do not dump models first.

2020-01-15  Jan Nieuwenhuizen  <janneke@gnu.org>

	verify: Prepare for Guile piped-process.
	* gash/pipe.scm (pipeline+): Rename to ...
	(pipeline): this.  Change interface to match piped-process based
	pipeline.  Update callers.
	(pipeline->string): Change interface similarly.  Update callers.
	(pipe*, tee-n, handle-error): Remove.
	* dzn/commands/traces.scm (mcrl2->lts): Update.
	(model->traces): Refactor.
	(mcrl2:verify-interface-deadlock-livelock, do-refinement): Use it.
	(mcrl2:verify-component-deterministic-illegal-deadlock-livelock-refinement): Refactor.

2020-03-24  Jan Nieuwenhuizen  <janneke@gnu.org>

	doc: Update `ROADMAP'.
	* ROADMAP: Update.

	dzn: Fix command line flags.
	* dzn/commands/traces.scm (parse-opts): Fix -m,--model documentation.
	* dzn/commands/verify.scm (parse-opts): Likewise.  Remove -o,--output
	and MAP-FILE suggestions.

2020-03-23  Jan Nieuwenhuizen  <janneke@gnu.org>

	code json: Fixes for strings and empty $$ data.
	* dzn/json.scm (json:value): Escape double quotes for strings.
	Support uspecified.

2020-02-12  Rob Wieringa  <Rob.Wieringa@verum.com>

	code: Add language `json'.
	Use

	    dzn code --language=json test/all/hello/hello.dzn

	to get the AST in JSON format.

	* dzn/json.scm: New file.
	* dzn/local.mk (dist_%C%_scm_DATA): Add it.
	* dzn/templates/json.scm: New file.
	* dzn/templates/json/: New template directory.
	* dzn/templates/local.mk (dist_nocompile_%C%_scm_DATA, EXTRA_DIST):
	Add them.

2020-03-22  Jan Nieuwenhuizen  <janneke@gnu.org>

	dzn: Remove obsolete command-line options.
	* dzn/commands/cat.scm (parse-opts): Remove -v,--version selection.
	* dzn/commands/hello.scm: Likewise.
	* dzn/commands/ls.scm: Likewise.
	* dzn/commands/lts.scm: Likewise.
	* dzn/commands/parse.scm: Likewise.
	* dzn/commands/trace.scm: Likewise.
	* dzn/commands/code.scm: Likewise.  Remove -A,--ast; --depends;
	--deprecated; -G,--dzn.
	* dzn/commands/traces.scm: Likewise.  Remove -p,-python.
	(model->traces): Remove python? fall-back support.
	* dzn/commands/verify.scm: Likewise.  Drop -G,--dzn.
	* dzn/parse.scm (parse-file): Remove keyword parameter #:generator?
	* dzn/gdzn.scm (parse-opts): Remove -g,--generator; -H,--html;
	-S,--session.
	* dzn/dzn.scm (dzn-async?): Drop generator support.
	(dzn-dzn-async?, generator-dzn-async?): Remove.

	build: Generate man pages for all dzn commands.
	* Makefile.am (dist_man_MANS): Add all dn commands.
	(doc/dzn-%.1): New target.
	(doc/dzn-code.1, doc/dzn-hello.1, dzn-parse.1): Remove.

2020-02-28  Jan Nieuwenhuizen  <janneke@gnu.org>

	build: Support --enable-languages when cross-compiling.
	* configure.ac: Do not test for language compilers when cross compiling.

2020-03-21  Jan Nieuwenhuizen  <janneke@gnu.org>

	test: Remove broken links.
	* test/all/wf_coverageDuplicate/baseline/verify: Remove.
	* test/error/compliance_system_provides_bool: Remove.
	* test/error/external_asynchronous_illegal: Remove.
	* test/import/AlarmSystem: Remove.
	* test/regression/glue-dzn: Remove.
	* test/regression/hello space: Remove.
	* test/regression/hello_namespace_foreign: Remove.

	doc: Update `ROADMAP'.
	* ROADMAP: Update.

2020-03-18  Jan Nieuwenhuizen  <janneke@gnu.org>

	build: Cleanup location configuration.
	* build-aux/pre-inst-env.in (DEZYNE_PREFIX): Remove obsolete variable.
	* dzn/config.scm.in: Add Copyright header.
	(%command-dir, %service-dir, %service-version, %service-version-dir):
	Remove.
	* Makefile.am (do_subst): Remove obsolete fields.
	* dzn/gdzn.scm (service-version, exec-dzn-version): Remove.
	(main): Do not use them.
	* dzn/templates/dzn.scm (version): Use %version instead of
	%service-version.
	* runtime/c++-msvc11/dzn/meta.hh.in (DZN_VERSION_STRING): Use
	PACKAGE_VERSION instead of SERVICE-VERSION.

	build: Install runtime for supported languages only.
	* Makefile.am (local-dist): Install runtime for supported languages
	only.

2020-03-18  Jan Nieuwenhuizen  <janneke@gnu.org>

	build: Do not distribute generated file.
	* dzn/local.mk (dist_%C%_scm_DATA): Remove config.scm.
	(nodist_%C%_scm_DATA): Add it.
	(%C%_go_DATA): Add config.go.

	bi

2020-03-12  Jan Nieuwenhuizen  <janneke@gnu.org>

	test: compliance_provides_illegal4: Move to NON_REPRODUCIBLE_TESTS.
	* test/all/local.mk (NON_REPRODUCIBLE_TESTS): Add
	compliance_provides_illegal4.
	(REGRESSION_TESTS, XFAIL_TESTS): Remove it.

2020-03-12  Jan Nieuwenhuizen  <janneke@gnu.org>

	test: compliance_reply_bool: Move to NON_REPRODUCIBLE_TESTS.
	The LTS for this test is not generated reproducibly by mcrl22lps |
	lps2lts across different mcrl2 builds, at least depending on how mcrl2
	was compiled (e.g., using boost-1.69 or boost-1.70).

	* test/all/local.mk (NON_REPRODUCIBLE_TESTS): Add
	compliance_reply_bool.
	(REGRESSION_TESTS): Remove it.

2020-02-19  Jan Nieuwenhuizen  <janneke@gnu.org>

	test: Set compliance_provides_illegal4, shell to XFAIL.
	* test/all/local.mk (XFAIL_TESTS): Add compliance_provides_illegal4,
	shell.

2020-03-21  Jan Nieuwenhuizen  <janneke@gnu.org>

	doc: Update `ROADMAP'.
	* ROADMAP: Update.

2019-09-11  Jan Nieuwenhuizen  <janneke@gnu.org>

	doc: Initial info manual.
	* doc/dezyne.texi: New file.
	* doc/fdl-1.3.texi: New file.
	* guix/gnu/packages/dzn.scm (dzn): Depend on texinfo.
	* Makefile.am (info_TEXINFOS): New variable.

2020-02-26  Jan Nieuwenhuizen  <janneke@gnu.org>

	build: Disable experimental languages.
	* configure.ac: Make scheme optional.
	* dzn/local.mk: Make languages optional.
	* dzn/templates/local.mk: Likewise.
	* README: Remove dependencies for C++03, C, C#, JavaScript.

	doc: Update `ROADMAP'.
	* ROADMAP: Update.

2020-02-21  Jan Nieuwenhuizen  <janneke@gnu.org>

	test: Distribute importPath.
	This fixes wf_importPathErr when building from tarball.

	* test/all/importPath/run: New file.
	* test/all/local.mk (REGRESSION_TESTS): Add it.
	* test/all/importPath/META: Skip build.

2020-02-21  Jan Nieuwenhuizen  <janneke@gnu.org>

	build: Support rcX releases.
	* configure.ac (have_ltscompare_structured_output): Fix assigning of
	major, minor and patch versions for rcX.
	* runtime/c++/dzn/meta.hh.in (DZN_VERSION_STRING): Update to use PACKAGE_VERSION.
	* runtime/c++03/dzn/meta.hh.in (DZN_VERSION_STRING): Likewise.

	build: Distribute test scripts and makefiles.
	* test/bin/local.mk: New file.
	* test/lib/local.mk: New file.
	* Makefile.am: Include them.

	build: Distribute runtime and templates.
	* dzn/local.mk (dist_%C%_scm_DATA): Remove c++-03, c, cs.
	* configure.ac: Likewise.
	* dzn/templates/local.mk: Likewise.  Also html.
	* runtime/local.mk: Likewise.
	* Makefile.am: Include them.

2020-02-19  Jan Nieuwenhuizen  <janneke@gnu.org>

	guix: Use tarball-based package description.
	* guix/gnu/packages/dzn.scm (dzn): Use tarball-based package
	description.

2020-02-12  Jan Nieuwenhuizen  <janneke@gnu.org>

	test: Remove glue-dzn.
	test/all/glue-dzn: Remove.
	test/all/local.mk: Update.

2020-02-12  Jan Nieuwenhuizen  <janneke@gnu.org>

	test: compliance_out_nondet: Use canonical naming.
	Run

	    sed -i \
	       -e 's,\<II\>,ihello,g' \
	       -e 's,\<IO\>,iworld,g' \
	       -e 's,\<ia\>,hello,g' \
	       -e 's,\<oa\>,world,g' \
	       -e 's,\<ob\>,cruel,g' \
	       -e 's,\<ic\>,goodbye,g' \
	       -e 's,\<pp\>,h,g' \
	       -e 's,\<rp\>,w,g' \
	       test/all/compliance_out_nondet/compliance_out_nondet.dzn \
	       test/all/compliance_out_nondet/baseline/verify/compliance_out_nondet

	and

	      ./pre-inst-env dzn -d --verbose verify --all -m compliance_out_nondet test/all/compliance_out_nondet/compliance_out_nondet.dzn | test/bin/reorder > test/all/compliance_out_nondet/baseline/verify/compliance_out_nondet

	* test/all/compliance_out_nondet/compliance_out_nondet.dzn: Use
	canonical naming.
	* test/all/compliance_out_nondet/baseline/verify/compliance_out_nondet: Update.

	xx

2020-02-12  Jan Nieuwenhuizen  <janneke@gnu.org>

	test: compliance_out_inevitable_illegal: Use canonical naming.
	Run

	    sed -i \
	       -e 's,\<II\>,ihello,g' \
	       -e 's,\<IO\>,iworld,g' \
	       -e 's,\<ia\>,hello,g' \
	       -e 's,\<oa\>,world,g' \
	       -e 's,\<ob\>,cruel,g' \
	       -e 's,\<ic\>,goodbye,g' \
	       -e 's,\<pp\>,h,g' \
	       -e 's,\<rp\>,w,g' \
	       test/all/compliance_out_inevitable_illegal/compliance_out_inevitable_illegal.dzn \
	       test/all/compliance_out_inevitable_illegal/baseline/verify/compliance_out_inevitable_illegal

	and

	    cat test/all/compliance_out_inevitable_illegal/baseline/verify/compliance_out_inevitable_illegal > x; test/bin/reorder < x > test/all/compliance_out_inevitable_illegal/baseline/verify/compliance_out_inevitable_illegal

	* test/all/compliance_out_inevitable_illegal/compliance_out_inevitable_illegal.dzn:
	Use canonical naming.
	* test/all/compliance_out_inevitable_illegal/baseline/verify/compliance_out_inevitable_illegal: Update.

2020-02-12  Jan Nieuwenhuizen  <janneke@gnu.org>

	test: compliance_out_inevitable: Use canonical naming.
	Run:

	    sed -i \
	       -e 's,\<II\>,ihello,g' \
	       -e 's,\<IO\>,iworld,g' \
	       -e 's,\<ia\>,hello,g' \
	       -e 's,\<oa\>,world,g' \
	       -e 's,\<ob\>,cruel,g' \
	       -e 's,\<ic\>,goodbye,g' \
	       -e 's,\<pp\>,h,g' \
	       -e 's,\<rp\>,w,g' \
	       test/all/compliance_out_inevitable/compliance_out_inevitable.dzn \
	       test/all/compliance_out_inevitable/baseline/verify/compliance_out_inevitable

	* test/all/compliance_out_inevitable/compliance_out_inevitable.dzn: Use
	canonical naming.
	* test/all/compliance_out_inevitable/baseline/verify/compliance_out_inevitable:
	Update

2020-02-12  Jan Nieuwenhuizen  <janneke@gnu.org>

	test: Add test/all/compliance_out_inevitable_illegal.
	This tests fails because ltscompare cannot filter that pp.ia -> illegal;
	dzn lts could be added to the pipeline to fix this.

	* test/all/compliance_out_inevitable_illegal: New failing test.
	* test/all/local.mk (REGRESSION_TESTS, XFAIL_TESTS): Add it.
	* test/regression/: Add symlink.
	* test/error/: Likewise.

2020-02-12  Jan Nieuwenhuizen  <janneke@gnu.org>

	test: Rename test/compliance/compliance_out_nondet.
	Run:

	   bin/rename all/compliance_out_async_nondet all/compliance_out_nondet

	*  all/compliance_out_nondet: Rename from all/compliance_out_async_nondet.

2020-02-12  Jan Nieuwenhuizen  <janneke@gnu.org>

	test: Fix and rename test/compliance/compliance_out_inevitable.
	Run:

	   bin/rename test/compliance/compliance_out_async_inevitable test/compliance/compliance_out_inevitable

	*  all/compliance_out_inevitable: Rename from
	all/compliance_out_async_inevitable.  Remove illegal path, simplify.

2020-02-03  Rutger van Beusekom  <rutger.van.beusekom@verum.com>

	guix: Document guix version dependency for environment.
	Run

	    guix time-machine --commit=ab0ede51c041927a1c35535aec3504f84d7a9751 -- environment -l guix.scm

	* guix.scm: Fix environment command.

2020-02-06  Jan Nieuwenhuizen  <janneke@gnu.org>

	test: Fix hello_recursive and recursive tail call check.
	* dzn/wfc.scm (recurses?): New function.
	(tail-recursion): Use it to fix recursive call in tail position test.
	* dzn/parse/ast.scm (recurses?): Robustify.
	* test/all/hello_recursive/hello_recursive.dzn: Remove valued recursive
	function; that is not (yet) supported.
	* test/all/wf_functionTailRecursion/baseline/verify/wf_functionTailRecursion.stderr:
	Update baseline.

2020-02-05  Jan Nieuwenhuizen  <janneke@gnu.org>

	doc: Update `ROADMAP'.
	* ROADMAP: Update.

2020-02-06  Jan Nieuwenhuizen  <janneke@gnu.org>

	doc: `HACKING': Describe some test usage.
	* HACKING: Add examples for the simplified, autotools-based regression
	test.

2020-01-17  Jan Nieuwenhuizen  <janneke@gnu.org>

	test: Write progress in org mode.
	* test/dzn/dzn.scm (run-test): Introduce test as top level org entry.
	Enable org mode.
	(run-traces, run-verify, run-code, run-traces, run-build, run-execute):
	Print stage progress as second level org entry.

2020-01-12  Jan Nieuwenhuizen  <janneke@gnu.org>

	test: Rename and xfail import_strip_component.
	Run

	   bin/rename all/hello_import all/import_strip_component

	* test/all/import_strip_component/: Rename from hello_import.
	* test/all/local.mk (XFAIL_TESTS): Add it.  This feature is not
	supported.

2019-11-28  Jan Nieuwenhuizen  <janneke@gnu.org>

	code: javascript: Cater for nodejs > 6.8.
	* dzn/templates/javascript/main@component: Cater for nodejs > 6.8.

2020-01-12  Jan Nieuwenhuizen  <janneke@gnu.org>

	debian: Remove nodejs, npm, node-q dependencies.
	* debian/control (Build-Depends): Remove nodejs, node-q, npm.
	* debian/rules (override_dh_auto_build, override_dh_auto_test): Remove
	npm stanzas.

	guix: Remove node dependencies.
	* guix/gnu/packages/dzn.scm (dzn): Remove node, node-q, node-getopt
	dependencies.
	(node-q, node-getopt): Remove.

	test: Remove nodejs-based test driver.
	* test/bin/json2html: Remove.
	* test/bin/json2txt: Remove.
	* test/bin/reorder: Remove.
	* test/bin/stress.sh: Remove.
	* test/bin/test: Remove.
	* test/bin/test-clients: Remove.
	* test/lib/aspects.js: Remove.
	* test/lib/code.make: Remove.
	* test/lib/html.js: Remove.
	* test/lib/images/collapse.gif: Remove.
	* test/lib/images/expand.gif: Remove.
	* test/lib/json.js: Remove.
	* test/lib/languages.js: Remove.
	* test/lib/txt.js: Remove.
	* test/lib/util.js: Remove.

	test: Guile test runner for automake.
	* test/dzn/dzn.scm: Import from Gash.
	* test/dzn/local.mk (dist_%C%_scm_DATA): Add it.
	* test/bin/run.in: New file.
	* test/bin/reorder.in: New file.
	* configure.ac: Substitute them.
	* .gitignore: Ignore it.  Ignore automake test output.
	* test/all/local.mk: New file.
	* Makefile.am: Include it.
	(check-smoke, check-hello, check-regression): Remove.
	(install-data-local): Remove obsolete html test result
	installation.
	* guix/gnu/packages/dzn.scm (dzn): Remove regression output.
	test/all/wf_importPathErr/run: New file.
	* bin/dzn.in (%load-path, %load-compiled-path): Add @srcdir@.
	* test/all/blocking_binding/main.cc (connect_ports): Remove gratituous
	newline.
	* test/all/calling_context/main.cc (main): Likewise.
	* test/lib/build.c++.make: Update for new root.
	* test/lib/build.c++03.make: Likewise.
	* test/lib/build.c.make: Likewise.
	* test/lib/build.cs.make: Likewise.
	* test/lib/build.javascript.make: Likewise.
	* test/lib/build.scheme.make: Likewise.
	* README: Remove node, npm from requirements.
	* test/bin/reorder: Remove.

2020-01-12  Jan Nieuwenhuizen  <janneke@gnu.org>

	test: Remove seqdiag baseline from verify.
	After adding missing error links, run

	Run

	   for i in test/error/*/baseline/verify/*.stderr; do > $i; done

	* test/error/async_context3: Link from ../all/async_context3.
	* test/error/async_nondet: Likewise.
	* test/error/async_silent: Likewise.
	* test/error/compliance_out_async_inevitable: Likewise.
	* test/error/compliance_out_async_nondet: Likewise.
	* test/error/compliance_out_sync: Likewise.
	* test/error/compliance_provides_bool: Likewise.
	* test/error/compliance_provides_illegal4: Likewise.
	* test/error/compliance_provides_illegal5: Likewise.
	* test/error/compliance_provides_out: Likewise.
	* test/error/compliance_reply_bool: Likewise.
	* test/error/compliance_requires_illegal: Likewise.
	* test/error/compliance_system_provides_bool: Likewise.
	* test/error/hello.interface_namespace: Likewise.
	* test/error/hello_blocked_external: Likewise.
	* test/error/hello_interface_out_only: Likewise.
	* test/error/hello_single_to_multiple: Likewise.
	* test/error/hello_single_to_multiple: Likewise.
	* test/error/hello_synchronous_livelock: Likewise.
	* test/error/hello_synchronous_livelock: Likewise.
	* test/error/illegal_hello_external: Likewise.
	* test/error/illegal_provides: Likewise.
	* test/error/illegal_requires2: Likewise.
	* test/error/illegal_requires: Likewise.
	* test/error/illegal_requires_out: Likewise.
	* test/error/illegal_system_requires: Likewise.
	* test/error/livelock1: Likewise.
	* test/error/livelock_component2: Likewise.
	* test/error/missing_reply: Likewise.
	* test/error/queuefull_external: Likewise.
	* test/error/queuefull_external_sync: Likewise.
	* test/error/reply_modeling: Likewise.
	* test/error/second_reply: Likewise.
	* test/import/AlarmSystem: Remove broken link.
	* test/error/external_asynchronous_illegal: Likewise.

2020-01-11  Jan Nieuwenhuizen  <janneke@gnu.org>

	dzn trace: Support negative integers.
	* dzn/commands/trace.scm (trace-parse): Support negative integers.

	dzn trace: Cater for traces of one event.
	* dzn/commands/trace.scm (trace->steps): Cater for traces of one event.

	dzn trace: Handle q in events.
	* dzn/commands/trace.scm (step->communication): Handle q in events.
	(communication->code): Likewise.

	dzn trace: Support C++ state vector.
	* dzn/commands/trace.scm (trace->steps): Update to use
	peg:handle-syntax-error.
	(trace-parse): Support C++ state voctor.

	dzn trace: Resurrect.
	* dzn/commands/trace.scm: New file.
	* dzn/commands/local.mk (dist_%C%_scm_DATA): Add it.

2020-01-12  Jan Nieuwenhuizen  <janneke@gnu.org>

	build: Add --enable-languages to configure.
	* configure.ac: Add --enable-languages.  Check for boost (c++03),
	nodejs (javascript), C99 (c) and mono (cs).
	Add --with-courage for unsupported languages: c, c++03, javascript and cs.
	* build-aux/ax_boost_base.m4: New file.
	* .gitignore: Allow it.

2020-01-11  Jan Nieuwenhuizen  <janneke@gnu.org>

	build: Make c++ dependency optional.
	* build-aux/std-gnu11.m4: New file.
	* .gitignore: Add it.
	* configure.ac: Use it toch check for c++11.
	(have_cxx11): New conditional.

2020-01-08  Paul Hoogendijk  <paul.hoogendijk@verum.com>

	ast: Fix ast-equal? for <binary>.
	* dzn/ast.scm (ast:equal?): Remove .expression indirections.
	* test/all/equal_binary/equal_binary.dzn: Test it.
	* test/all/equal_binary/META: Skip build; interface only.
	* test/regression/: Add to suite.

2019-09-10  Rutger van Beusekom  <rutger.van.beusekom@verum.com>

	runtime: c++: Remove redundant pump.hh #include.
	* runtime/c++/runtime.cc: Remove dzn/pump.hh include.

2020-01-13  Rob Wieringa  <Rob.Wieringa@verum.com>

	goops: Remove double administration of var name.
	* dzn/goops.scm (<var>): Remove variable.name slot, as <var> inherits
	from <named>.  Update callers.
	* dzn/ast.scm (.variable): Update caller.
	* dzn/makreel.scm (tick-names-): Update caller.
	* dzn/parse/ast.scm (parse-tree->ast): Update caller.
	(make-async-refine-interface): Update caller.
	* dzn/wfc.scm (wfc): Update caller.

	code: Fix normalize/shadow interaction.
	* dzn/normalize.scm (rewrite-formals): Simplify: also rename trigger
	formals when missing in initial ast (illegal body).  Fix: only rename
	<var> that reference a <formal>.
	* test/all/hello_shadow/hello_shadow.dzn: Test it.
	* test/hello/: Add to hello suite.

2020-01-12  Jan Nieuwenhuizen  <janneke@gnu.org>

	build: Add release target.
	* configure.ac (have_guix): New conditional.
	* guix/gnu/packages/dzn.scm (dzn): Add hash update marker.
	* Makefile.am (update-hash): Use it in new target.
	(release): New target.  Document release process.

2019-11-12  Rob Wieringa  <Rob.Wieringa@verum.com>

	ast: Replace symbols by strings.
	* dzn/parse/ast.scm (parse-tree->ast): Do not translate strings into
	symbols.  Update users.
	* dzn/misc.scm (->string-join): Rename from ->symbol-join, work on
	strings.
	(symbol-capitalize, symbol-drop, symbol-split, symbol-upcase): Remove.
	* dzn/ast.scm: Likewise.
	* dzn/c++.scm: Likewise.
	* dzn/c++03.scm: Likewise.
	* dzn/c.scm: Likewise.
	* dzn/code.scm: Likewise.
	* dzn/command-line.scm: Likewise.
	* dzn/commands/code.scm: Likewise.
	* dzn/commands/parse.scm: Likewise.
	* dzn/commands/traces.scm: Likewise.
	* dzn/commands/verify.scm: Likewise.
	* dzn/cs.scm: Likewise.
	* dzn/dzn.scm: Likewise.
	* dzn/glue.scm: Likewise.
	* dzn/goops.scm: Likewise.
	* dzn/javascript.scm: Likewise.
	* dzn/makreel.scm: Likewise.
	* dzn/normalize.scm: Likewise.
	* dzn/parse/silence.scm: Likewise.
	* dzn/scheme.scm: Likewise.
	* dzn/serialize.scm: Likewise.
	* dzn/templates.scm: Likewise.
	* dzn/templates/cs.scm: Likewise.
	* dzn/templates/dzn.scm: Likewise.
	* dzn/wfc.scm: Likewise.
	* dzn/verify/pipeline.scm: Likewise.

2019-11-07  Rob Wieringa  <Rob.Wieringa@verum.com>

	goops: Restructure scope.name.
	* dzn/goops.scm (<scope.name>): Replace scope and name fields with
	ids.
	(.name.name): Remove.
	* dzn/ast.scm: Update users.
	* dzn/code.scm: Likewise.
	(code:name.name): New method.
	* dzn/dzn.scm: Likewise.
	* dzn/javascript.scm: Likewise.
	* dzn/makreel.scm: Likewise.
	* dzn/parse/ast.scm: Likewise.
	* dzn/serialize.scm: Likewise.
	* dzn/templates/c++.scm: Likewise.
	* dzn/templates/code.scm: Likewise.
	* dzn/templates/cs.scm: Likewise.
	* dzn/wfc.scm: Likewise.
	* dzn/templates/dzn/define-type@extern: Update to use #code:name.name.
	* dzn/templates/dzn/source@namespace: Likewise.
	* dzn/templates/javascript/enum-definer@enum: Likewise.
	* dzn/templates/javascript/global-enum-definer@enum: Likewise.

2020-01-12  Jan Nieuwenhuizen  <janneke@gnu.org>

	Add `ROADMAP'.
	The ROADMAP file provides an overview of the progress towards future
	releases.

	* ROADMAP: New file.
	* Makefile.am (EXTRA_DIST): Add it.

2020-01-08  Jan Nieuwenhuizen  <janneke@gnu.org>

	dzn: Pluggable commands; eradicate gdzn command.
	* bin/gdzn.in: Remove.
	* .gitignore: Remove it.
	* Makefile.am (bin_SCRIPTS): Remove it.
	* dzn/commands/cat.scm (parse-opts): Rename to `dzn' (from `gdzn').
	* dzn/commands/code.scm (parse-opts): Likewise.
	* dzn/commands/hello.scm (parse-opts): Likewise.
	* dzn/commands/ls.scm (parse-opts): Likewise.
	* dzn/commands/parse.scm (parse-opts): Likewise.
	* dzn/commands/traces.scm (parse-opts): Likewise.
	* dzn/commands/verify.scm (parse-opts): Likewise.
	* test/all/glue-dzn/run: Likewise.
	* dzn/shell-util.scm (directory-exists?): New function.
	* dzn/gdzn.scm (parse-opts): Use it to display all commands in load compiled
	path.  Update `gdzn' to `dzn'.
	* test/all/hello_multiple_provides/hello_multiple_provides.dzn: Likewise.

2019-11-19  Jan Nieuwenhuizen  <janneke@gnu.org>

	gdzn: Do not prepend %service-bindir.
	* dzn/gdzn.scm (run-command): Do not prepend %service-bindir.

2019-11-04  Rob Wieringa  <Rob.Wieringa@verum.com>

	ast: Make <signature> <locationed>.
	* dzn/goops.scm (<signature>): Derive from <locationed>.
	* dzn/parse/ast.scm (parse-tree->ast): Fill-in location for
	signatures.  Fixes parse errors.

2019-10-02  Jan Nieuwenhuizen  <janneke@gnu.org>

	dzn: verify: Resurrect --json.
	* dzn/verify/pipeline.scm (assert-start): Resurrect --json.
	(assert-fail): Likewise.

2019-09-13  Rob Wieringa  <Rob.Wieringa@verum.com>

	wfc: Add more checks.
	* dzn/ast.scm (ast:type): Simplify.
	(ast:lookup-n): New method overload.
	* dzn/wfc.scm: Add more checks.
	* test/all: Update baseline.
	* test/lib/aspects.js: Re-enable full parse test.

2019-10-29  Rob Wieringa  <Rob.Wieringa@verum.com>

	ast: Fix imperative/declarative for compound.
	* dzn/ast.scm (ast:declarative?): Fix for compound.
	(ast:imperative?): Likewise.

2019-10-22  Johri van Eerd  <johri.van.eerd@verum.com>

	makreel: Fix function continuation after if statement.
	* dzn/makreel.scm (fix-function): New function.
	(makreel:then-continuation): Use it.
	(makreel:else-continuation): Likewise.

2019-10-30  Rob Wieringa  <Rob.Wieringa@verum.com>

	parse: Only add bool and void on top level.
	* dzn/parse/ast.scm (parse-tree->ast): Move adding of bool/void to ...
	(parse-root->ast): New toplevel function.
	* dzn/parse.scm (peg:parse-file): Call it.

2019-10-17  Jan Nieuwenhuizen  <janneke@gnu.org>

	peg: Fix root location after parsing #file.
	* dzn/parse/ast.scm (parse-tree->ast): Fix root location after parsing #file.

2020-01-07  Jan Nieuwenhuizen  <janneke@gnu.org>

	peg: Update from upstream.
	* dzn/peg/codegen.scm: Update from upstream.
	* dzn/peg/string-peg.scm: Likewise.
	* dzn/peg/using-parsers.scm: Likewise.

2019-10-17  Jan Nieuwenhuizen  <janneke@gnu.org>

	peg: Fix syntax-error location after parsing #file.
	* dzn/parse/peg.scm (-do-file-command-): Add indirection to set
	file-name when encoutering #file.

2019-10-02  Jan Nieuwenhuizen  <janneke@gnu.org>

	peg: Fixup incremental parser merge: syntax error reporting.
	* dzn/parse/peg.scm (peg:parse): Resurrect syntax-error reporting.

2020-01-09  Jan Nieuwenhuizen  <janneke@gnu.org>

	guix: Remove lts package.
	* guix/gnu/packages/lts.scm: Remove.
	* guix/gnu/packages/dzn.scm (dzn): Remove dependency.

2020-03-02  Paul Hoogendijk  <paul.hoogendijk@verum.com>

	traces: Move lts2traces into lts.scm; rewrite using lts data types.
	* dzn/lts.scm (<edge>): Rename from <aut-edge>.  Update users.
	(text->edge): Rename from text->aut-edge.  Update users.
	(make-edge): Rename from make-aut-edge.  Update users.
	(clone-edge): Rename from clone-aut-edge.  Update users.
	(lts->nodes): Add optional traces? parameter.
	(<transition>): New record.
	(generate-trace): Move from lts2traces.scm, rewrite using lts data types.
	(lts->traces): Likewise.
	* dzn/commands/traces.scm: Update to include lts.
	* dzn/commands/lts.scm (main): Update for *-aut rename.
	* test/dzn/lts.scm: Likewise.
	* dzn/lts2traces.scm: Remove.
	* dzn/local.mk (dist_%C%_scm_DATA): Remove it.

2019-10-01  Jan Nieuwenhuizen  <janneke@gnu.org>

	dzn lts: Assimilate external lts tool.
	* configure.ac: Remove check for lts.
	* dzn/commands/lts.scm (dzn): Replace with command-line parsing of
	lts.
	* dzn/config.scm.in (%dzn, %version): New variable.
	(%lts): Remove.  Update users.
	* dzn/lts.scm: New file: library part of lts tool.
	* test/dzn/local.mk: New file.
	* test/dzn/automake.scm: New file, from Gash.
	* test/dzn/lts.scm: New file: test part of lts tool.
	* Makefile.am (UNIT_TESTS): Add it.

2019-09-30  Jan Nieuwenhuizen  <janneke@gnu.org>

	guix: Use upstream mcrl2.
	* guix/gnu/packages/mcrl2.scm (mcrl2-1, mcrl2-1-minimal): Remove.
	(mcrl2-minimal-with-dparser): New variable, for mingw.
	(mcrl2-minimal-mingw): New variable.

	gdzn: verify: Avoid using stdin for tracepp.
	* dzn/verify/pipeline.scm (mcrl2:verify-component-deterministic-illegal-deadlock-livelock-refinement):
	Avoid using stdin for tracepp.  Allows using pristine upstream mCRL2.

2020-01-09  Jan Nieuwenhuizen  <janneke@gnu.org>

	guix: Explicitly use guile-json-1.
	* guix/gnu/packages/dzn.scm (dzn): Explicitly use guile-json-1.

2020-01-09  Jan Nieuwenhuizen  <janneke@gnu.org>

	test: Update baseline.
	Run:

	    for i in wf_*; do cp $i/verify/* ../test/all/$i/baseline/verify/; done

	* test/all/wf_*: Update baseline.

2019-10-03  Rob Wieringa  <Rob.Wieringa@verum.com>

	test: Fix async_async_prio.
	* test/all/async_async_prio/async_async_prio.dzn: Fix test.

2019-09-27  Jan Nieuwenhuizen  <janneke@gnu.org>

	test: illegal_requires_out: Add missing baseline.
	* test/all/illegal_requires_out/baseline/verify/illegal_requires_out:
	New file
	* test/all/illegal_requires_out/baseline/verify/illegal_requires_out.stderr:
	New file.

2019-09-26  Jan Nieuwenhuizen  <janneke@gnu.org>

	test: async: Fix trace comparisons.
	* test/all/async_context/main.scm: Trim trace.
	* test/all/async_order/main.scm: Likewise.
	* test/all/async_order2/main.scm: Likewise.
	* test/all/async_prio/main.scm: Likewise.
	* test/all/async_prio2/main.scm: Likewise.
	* test/all/async_simple/main.scm: Likewise.
	* test/all/async_synccb/main.scm: Likewise.
	* test/all/async_synccb2/main.scm: Likewise.

	test: state_deadlock: Skip traces, verify.
	* test/all/state_deadlock/META: Skip traces, verify.

	test: label_instance_mismatch: Skip verify, traces.
	* test/all/label_instance_mismatch/META: Skip verify, traces.

	test: dollars, shell: Only run c++.
	* test/all/dollars/META: Only run c++.
	* test/all/shell/META: Only run c++.

	test: illegal_requires_out: No execute.
	* test/all/illegal_requires_out/META: New file.

	test: illegal_system_requires: No execute.
	* test/all/illegal_system_requires/META: Skip execute.

	test: system_hello: Skip verify.
	* test/all/system_hello/META: Skip verify.

2019-09-27  Jan Nieuwenhuizen  <janneke@gnu.org>

	code: makreel: Fix hello_namespace_shadow, inner.space.
	* dzn/ast.scm (ast:empty-namespace?): Export.
	* dzn/makreel.scm (tick-names-): Use it to not tick `/'.  Fixes
	hello_namespace_shadow, inner.space.

2019-10-17  Jan Nieuwenhuizen  <janneke@gnu.org>

	code: scheme: runtime: Disable rank debugging.
	* runtime/scheme/dzn/runtime.scm (dzn:rank): Disable rank debugging.

2019-09-26  Jan Nieuwenhuizen  <janneke@gnu.org>

	code: Do not propagate --model to parse; fixes generated main.
	* dzn/commands/code.scm (main): Do not propagate --model to parse.
	* dzn/commands/parse.scm (parse): Use options rather than command-line:get.

	build: Install test html reports.
	* Makefile.am (install-data-local): Install test html reports.
	* guix/gnu/packages/dzn.scm (dzn): Add `regression' output.

	test: Use all CPUs.
	* Makefile.am (CPUS): New variable.
	(check-hello, check-regression): Use it.

2019-09-23  Jan Nieuwenhuizen  <janneke@gnu.org>

	test: Support make-check.
	* Makefile.am
	* build-aux/pre-inst-env.in
	* configure.ac
	* guix/gnu/packages/dzn.scm
	* test/bin/code2fdr
	* test/lib/aspects.js
	* test/lib/languages.js
	* Makefile.am (check-smoke, check-hello, check-regression): New target.
	(check-local): Depend on them.

2019-09-26  Jan Nieuwenhuizen  <janneke@gnu.org>

	code: scheme: Fix issue with not and field-test.
	* dzn/templates/scheme/subexpression@expression: New file.
	* dzn/templates/scheme/expression@not: Use it.
	* dzn/templates/scheme/left@not: Remove.
	* dzn/templates/scheme/right@not: Remove.

2019-09-18  Jan Nieuwenhuizen  <janneke@gnu.org>

	Drop python dependency.
	* configure.ac: Drop python check.
	* guix/gnu/packages/dzn.scm: Drop python dependency.
	* Makefile.am (do_subst): Drop python subst.
	* bin/lts2traces.in: Remove.

2019-09-16  Jan Nieuwenhuizen  <janneke@gnu.org>

	gdzn: Initial lts2traces.
	TODO: review and remove python comments from lts2traces.

	* dzn/commands/lts2traces.scm (dzn): New file.
	* dzn/commands/traces.scm (model->traces): Use it.
	* dzn/lts2traces.scm: New file.
	* dzn/local.mk: Add them.

2019-09-14  Jan Nieuwenhuizen  <janneke@gnu.org>

	gash: Show exec* full error message.
	* gash/pipe.scm (exec*): Show full error message.

2019-09-26  Jan Nieuwenhuizen  <janneke@gnu.org>

	runtime c++: Have trace_qin print <q> at copmonent port.
	* runtime/c++/runtime.cc: Fixes hello_flush.

2019-09-13  Jan Nieuwenhuizen  <janneke@gnu.org>

	pack: Initial binary distribution.
	* HACKING: Add some documentation.
	* guix/gnu/packages/dzn.scm (dzn): Add lts, m4-cw, mcrl2, sed.
	* Makefile.am (dist_man_MANS): Add code, lts2traces.

2019-09-12  Jan Nieuwenhuizen  <janneke@gnu.org>

	guix: Wrap dzn.
	* guix/gnu/packages/dzn.scm (dzn): Wrap dzn.

2019-09-14  Jan Nieuwenhuizen  <janneke@gnu.org>

	gdzn: Debugity support for dzn, and relocation.
	* dzn/command-line.scm (gdzn:debugity): Support dzn, and relocation.

2020-02-27  Jan Nieuwenhuizen  <janneke@gnu.org>

	build: Reproducible tarball.
	* Makefile.am (dist-hook): Add reproducible timestamp to tarball.
	(am__tar): Use it instead of EPOCH.  Add mode.

2019-09-12  Jan Nieuwenhuizen  <janneke@gnu.org>

	build: Move scheme Makefile.am snippets into %D%/local.mk.
	* dzn/parse/local.mk: New file.
	* dzn/peg/local.mk: New file.
	* dzn/local.mk: New file.
	* dzn/commands/local.mk: New file.
	* Makefile.am: Update.

2019-09-26  Jan Nieuwenhuizen  <janneke@gnu.org>

	debian: Initial.
	TODO: tarball watch location.

	* debian/changelog: New file.
	* debian/control: New file.
	* debian/copyright: New file.
	* debian/dzn.lintian-overrides: New file.
	* debian/rules: New file.
	* debian/source/format: New file.
	* debian/watch: New file.

2019-09-11  Jan Nieuwenhuizen  <janneke@gnu.org>

	doc: Add manual pages.
	* Makefile.am (dzn.1, gdzn.1, dzn-hello.1, dzn-parse.1): New target.
	* guix/gnu/packages/dzn.scm (dzn): Depend on help2man.
	* .gitignore: Update.

2019-09-10  Jan Nieuwenhuizen  <janneke@gnu.org>

	guix: Split-off package description.
	* guix/gnu/packages/dzn.scm: New file.
	* guix.scm: Use it.
	(dzn): Remove.
	(dzn.git): New variable.

2020-02-27  Jan Nieuwenhuizen  <janneke@gnu.org>

	build: Relicense dzn-runtime under lesser gpl3+.
	* COPYING.LESSER: New file.
	* README: Mention dzn-runtime and its license.
	* runtime/: Relicense dzn-runtime under the GNU Lesser General Public
	Licence 3.0 or later.

2019-08-29  Jan Nieuwenhuizen  <janneke@gnu.org>

	build: Add autotools.
	* .gitignore: Update.
	* guix.scm: Update.
	* AUTHORS: New file.
	* COPYING: New file.
	* ChangeLog: New file.
	* HACKING: New file.
	* INSTALL: New file.
	* Makefile.am: New file.
	* NEWS: Update.
	* README: New file.
	* autogen.sh: New file.
	* build-aux/config.rpath: New file.
	* build-aux/git-version-gen: New file.
	* build-aux/gitlog-to-changelog: New file.
	* build-aux/pre-inst-env.in: New file.
	* configure.ac: New file.
	* dzn/templates/local.mk: New file.
	* gash/local.mk: New file.
	* runtime/local.mk: New file.
	* dzn/verify/local.mk: New file.

2019-11-29  Jan Nieuwenhuizen  <janneke@gnu.org>

	Rename from Gaiag to Dezyne.
	* dzn/ast.scm: Update header, renaming from Gaiag to Dezyne.
	* dzn/c++.scm: Likewise.
	* dzn/c.scm: Likewise.
	* dzn/code.scm: Likewise.
	* dzn/dzn.scm: Likewise.
	* dzn/fifo.scm: Likewise.
	* dzn/goops.scm: Likewise.
	* dzn/indent.scm: Likewise.
	* dzn/javascript.scm: Likewise.
	* dzn/json2scm.scm: Likewise.
	* dzn/misc.scm: Likewise.
	* dzn/parse.scm: Likewise.
	* dzn/scheme.scm: Likewise.
	* dzn/templates/c++.scm: Likewise.
	* dzn/templates/code.scm: Likewise.
	* dzn/templates/dzn.scm: Likewise.
	* dzn/wfc.scm: Likewise.

2019-11-27  Jan Nieuwenhuizen  <janneke@gnu.org>

	test: Remove generate baseline.
	Run

	    git rm -r test/all/*/baseline/generate

	* test/all: Remove generate baseline.

2019-11-27  Jan Nieuwenhuizen  <janneke@gnu.org>

	test: Remove fdr2 baseline.
	Run

	    git rm -r test/all/*/baseline/fdr2

	* test/all: Remove fdr2 baseline.

2020-01-09  Jan Nieuwenhuizen  <janneke@gnu.org>

	test: Remove trailing whitespace.
	Run

	   sed -i 's, *$,,' $(git ls-files '*.dzn' -- test)
	   sed -i 's, *$,,' $(git ls-files '*.py' -- test)
	   sed -i 's, *$,,' $(git ls-files makefile -- test)

	* test/: Remove trailing whitespace.

2020-01-09  Jan Nieuwenhuizen  <janneke@gnu.org>

	test: Remove step.
	* test/step/: Remove.
	* test/all/: Remove corresponding tests.

	test: Remove unused tests and categories.
	* test/all/: Remove unused tests.
	* test/livelock: Remove category.
	* test/scheme: Remove category.
	* test/shadow: Remove category.
	* test/tode: Remove category.
	* test/work: Remove category.

	test: Remove BallSorterNetwork.
	* test/all/BallSorterNetwork: Remove.

	test: Remove bugs.
	* test/bugs: Remove.

	test: Remove examples.
	* test/examples: Remove.
	* test/all: Remove corresponding tests.

	test: Remove old-regression.
	* test/old-regression: Remove.
	* test/all: Remove corresponding tests.

	test: Remove NUTS.
	* test/NUTS: Remove.
	* test/all: Remove corresponding tests.

2019-05-26  Jan Nieuwenhuizen  <janneke@gnu.org>

	gaiag: Move to toplevel.
	Also, remove traling whitespace by running

	    sed -i 's, *$,,' $(git ls-files '*.scm')

	* gaiag: Move from gaiag/gaiag.
	* runtime: Move from gaiag/runtime.
	* scmcrl2: Move from gaiag/scmcrl2.

2019-12-18  Rob Wieringa  <Rob.Wieringa@verum.com>

	ast: select outermost system by default

2019-12-18  Jan Nieuwenhuizen  <janneke@gnu.org>

	test: illegal_system_requires: use canonical naming.

	test: illegal_requires_out: use canonical naming.

	test: compliance_requires_illegal: use canonical naming.

	test: hello_foreign_path; fix test for code.

	test: hello_foreign: fix trace.

	test: step: META

	runtime: rank: support foreign.

	step: cleanup.

	step: blocking.

	test: async step

	step: async.

	step: add implicit illegals.

	display: skip location.

	step: split-off state, step-serialize.

	step: runtime.

	test: remove component traces.

	string

	test: aspects: Add step.

	gdzn step: new command.

	test: Add step semantic [system] test symlinks in test/regression.

	test: Add step semantic [system] tests.

	test: vermeubel Camera + InitialCamera, SimpleCamera etc.

	test: add BallSortNetwork.

	test: parser: skip state, step in META.

	test: remove table, view from META.

	test: add some hello-component traces ???

	gdzn parse: print scm2json'able ast, try:
	    ./pre-inst-env gdzn parse -o- --locations test/all/hello/hello.dzn | ./pre-inst-env scm2json

	javascript: runtime fixlet.

	code: c++: step-fubar? REVIEWME

2019-12-18  Rob Wieringa  <Rob.Wieringa@verum.com>

	test framework: fix exception in aspects.js

	handle 'no such file' in import, and on top leval

	test/all/dollars: fix failing parse test

2019-11-29  Rob Wieringa  <Rob.Wieringa@verum.com>

	wfc: fix binary expression type check

	peg: line and columnn both set to 1-based

	wfc: add check for undefined; reword some error messages

	fix location for #file and #imported

	wfc: first check for undefined type

	parser: accept any string in #file and #imported

	peg: refactor line-column and parse catching

	peg: FIXME: copy syntax error catch from parser to grammar

	peg: handle recursive import; nonterm if to if-statement (clash!)

	peg: optimize line-column; TODO: use 'skip?' parameter

2019-11-29  Jan Nieuwenhuizen  <janneke@gnu.org>

	foo

2019-11-29  Rob Wieringa  <Rob.Wieringa@verum.com>

	peg: fixes in pretty-print, interface-call, comment skipping

	peg:rewrite lookup

2019-11-29  Jan Nieuwenhuizen  <janneke@gnu.org>

	verify: bugfix for bool == paul.SUGAR in guard_expressions.

	peg: parse #file, #imported. WIP

	peg: grok parsing from `-'.

	peg: process comment.

2019-11-29  Rutger van Beusekom  <rutger.van.beusekom@verum.com>

	peg: peg-comment add comment to parse tree

2019-11-29  Jan Nieuwenhuizen  <janneke@gnu.org>

	test: do not let language/c known propagate to all aspects.

	Revert "test: only build c++,scheme REMOVEME"
	This reverts commit d26c40bcc4d0b90c56c3cb91e979e8b67c1017b3.

	test: remove data_shadow_port REVERTME

	test: only build c++,scheme REMOVEME

	scheme: new language.

	test: async_rank, async_ranking: re-enable traces and thus execute.

	test: enable async_sync_prio/async_async_prio.

	Revert "test: move some old-regression to regression FIXME."
	This reverts commit 31c427fcd730716279f00c387716dc421d3810ca.

	test: move some old-regression to regression FIXME.

	test: code, makreel: hello_int.

	test/wfc: reply type

	peg: fix <group>.

	wfc: blocking reply missing_prefix

	test: componentInDollars: use known instead of skip for languages FIXME?

	c: implicit_illegal_requires

	c: implicit_illegal

	c: implicit_on

	c: Injected WIP

	peg: negative int: FIXUP: b708ead8 peg: refactor string to number

	async: cs/js cleanup WIP.

	c: Dataparam WIP

	test: hello.interface_namespace.

	test: fix alpha_event (rename from alpha_bug).

	wfc: redeclared identifier.

	wfc: missing function return.

	wfc: binding external.

	wfc: async_silent.

	peg: mark modeling silence.

	peg: mark recursive functions.

	Revert "disable c, cs."
	This reverts commit 38e02ecc08106c9e097fe7b18b16922c70e8ffba.

	disable c, cs.

	Revert "test: Add step semantic [system] tests."
	This reverts commit a814dbf0cf4e13d62e04b9baa6584429fac37777.

	Revert "test: Add step semantic [system] test symlinks in test/regression."
	This reverts commit 9c8ac91f036d15eb27481758415100f3c7cdd404.

	gaiag: eradicate deprecated om, compare, util.

	test: c: fix empty_dollars.

	test: c: blocking/async META

	code: cleanups.

	c: fix hello_system

	c <->

	c: <binding> -> <end-point>, <bind> -> <binding>.

	c: remove CD.

2019-11-29  Filip Toman  <filip.toman@verum.com>

	c: New language.

2019-11-29  Jan Nieuwenhuizen  <janneke@gnu.org>

	test: empty_dollars META.

	test: Add step semantic [system] test symlinks in test/regression.

	test: Add step semantic [system] tests.

	code: drop model2file feature.

	test: aspects: remove table, view.

	gaiag: remove norm, norm-event, norm-state, table-event, table-state.

	wfc: implement for PEG, update baseline. WIP

	test: update parse baseline with PEG errors.

	peg: verify: cater for functions without void return.

	peg: import.

	gaiag: resolve peg namespacing.

2019-11-29  Rutger van Beusekom  <rutger.van.beusekom@verum.com>

	peg: add namespaces

2019-11-29  Jan Nieuwenhuizen  <janneke@gnu.org>

	gdzn parse: switch to PEG. WIP

	test: verify: update non-seqdiag traces.

	test: verify: remove seqdiag's `illegal' at end of trace.

	test: verify: prepend interface name to trace.

	gdzn verify: output plain trace, do not run seqdiag.

	code: javascript: Add browser support.

	verify: proc confusion -- fixes hello_function.

	verify: do not filter out interfaces: they might contain types needed elsewhere

	ast: prepare for step, end-point, code: <- pijltjes ->.

2019-11-29  Rob Wieringa  <Rob.Wieringa@verum.com>

	parser: remove behaviour from imported components

	c++ parser: add IMPORTED feature

2019-11-29  Rutger van Beusekom  <rutger.van.beusekom@verum.com>

	test: alpha_bug

2019-11-29  Jan Nieuwenhuizen  <janneke@gnu.org>

	test: stress_comment.

2019-11-29  Rutger van Beusekom  <rutger.van.beusekom@verum.com>

	test: empty_dollars.

	peg: fix formal-binding

	peg: allow reply()

	peg: allow illegal triggers to have optional parameters.

2019-11-29  Jan Nieuwenhuizen  <janneke@gnu.org>

	peg: do not exit after parsing.

2019-11-29  Rutger van Beusekom  <rutger.van.beusekom@verum.com>

	peg: refactor: parameterize locations, trace, skip parsing

2019-11-29  Jan Nieuwenhuizen  <janneke@gnu.org>

	peg: install wrap-parser-for-users patch into codegen.peg.

2019-11-29  Rutger van Beusekom  <rutger.van.beusekom@verum.com>

	peg: import files in the path of the main dzn file

	peg: refactor string to number

	peg/makreel: add missing function return normalization WIP: REVIEWME

2019-11-29  Jan Nieuwenhuizen  <janneke@gnu.org>

	peg: simplify parser and matcher, resolving.

2019-11-29  Rutger van Beusekom  <rutger.van.beusekom@verum.com>

	peg: extend with # expect, parse and goopify test/all/*/*.dzn

	peg: succesfully parse and goopify all test models

	peg: add skip parser

	peg: succesfully parse test/all/*/*.dzn

	peg: dzn.async, blocking-binding

	peg: parse all of LegoBallSorter

	peg: sprinkle dzn grammar with #

	peg: #

	grammar: add expect proof of concept

2019-11-29  Jan Nieuwenhuizen  <janneke@gnu.org>

	guix: os: postgres-service: use custom postgres-config.

	release: v2.9.1-40-gf183955f1 18ad0z8ja4y2b7l80nyz8jdfxi6mamcdyc244r5y6jn3nxhs07cz
	guix version:1.0.0-1.326dcbf

	README: Update release and deploy.

	postgres/shepherd.

	guix: use (dezyne pack).

	README

	gdzn release: Grok release commit.

	gdzn:debugity: return level.

	release: v2.9.1-22-gbb0da784b 1qmzkf8nkw9ls0p9ciciiwlxp3h38m5fd7i8g3dqa2rgbpaxws4y
	guix version:1.0.1-3.4a54ed7

	wip: remove test.scm

	guix: channel development pack.

	release: v2.9.1-18-g1f4835f7e
	guix version:1.0.1-1.8204295

	guix: channels: packaging.

2019-11-29  Jan Nieuwenhuizen  <janneke@gnu.org>

	simplify starting of daemon and server:
	   ./pre-inst-env dzn-server -d[d...]
	   ./pre-inst-env dzn start -d[d...]

	or

	   M-x dzn-setup-devel

2019-11-29  Jan Nieuwenhuizen  <janneke@gnu.org>

	guix: channels.

	guix: Cleanup guix/, guix.scm.

2019-11-29  Henk Katerberg  <henk.katerberg@verum.com>

	guix: Update to 1.0.1.

2019-11-29  Jan Nieuwenhuizen  <janneke@gnu.org>

	guix: resurrect dezyne-regression-test.

	guix: build local tree only, remove 2.4, 2.8.

	.dir-locals.el: allow TAB in makefile-mode.

2019-11-29  Rob Wieringa  <Rob.Wieringa@verum.com>

	tests: fix NOLOG issue

2019-11-29  Johri van Eerd  <johri.van.eerd@verum.com>

	test: fix spurious output from child processes

2019-11-29  Rutger van Beusekom  <rutger.van.beusekom@verum.com>

	templates: disable comment tracing

2019-11-29  Jan Nieuwenhuizen  <janneke@gnu.org>

	compile-all: avoid bug #33216.
	See https://debbugs.gnu.org/cgi/bugreport.cgi?bug=33216

2019-11-29  Rob Wieringa  <Rob.Wieringa@verum.com>

	NEWS: enterprise pre-release

	NEWS: enterprise pre-release

	NEWS: enterprise pre-release

	NEWS: enterprise pre-release

2019-11-29  Rutger van Beusekom  <rutger.van.beusekom@verum.com>

	7547: c++/c++03/cs pass async_flush2 and refactor

	NEWS: remove dzn-explore

	NEWS: 2.9.1

2019-11-29  Jan Nieuwenhuizen  <janneke@gnu.org>

	NEWS: Some test1 enterprise instructions.

	NEWS: WIP.

2019-11-29  Rutger van Beusekom  <rutger.van.beusekom@verum.com>

	VERSION: bump to development

	VERSION: bump to 2.9.1

2019-11-29  Paul Hoogendijk  <paul.hoogendijk@verum.com>

	verify: improve memory usages by using aut iso lts; improve error msg when out-of-memory or internal error

2019-11-29  Rutger van Beusekom  <rutger.van.beusekom@verum.com>

	makreel: fix issue 7547, flush provides port when queue_empty in semantics_async

	c++: issue 7529: allow port annotated replies outside blocking context.

	c++: pump: issue 7527: use Args... template parameter in lambda type

2019-11-29  Jan Nieuwenhuizen  <janneke@gnu.org>

	build: remove stale symlinks.

2019-11-29  Rutger van Beusekom  <rutger.van.beusekom@verum.com>

	VERSION: bump to 2.9.0

	c++/cs: fix shell & injected

	cs: new language.

	c++/c++03: fix async & formals-type

2019-11-29  Johri van Eerd  <johri.van.eerd@verum.com>

	code: fix javascript

2019-11-29  Rutger van Beusekom  <rutger.van.beusekom@verum.com>

	c++: glue-dzn fixed

2019-11-29  Jan Nieuwenhuizen  <janneke@gnu.org>

	templates: debugability with gdzn -d

2019-11-29  Rutger van Beusekom  <rutger.van.beusekom@verum.com>

	test: hello_system, remove model from META

	test: remove broken symlinks + AlarmBlock

	code: file2file: fix hello_foreign_file

	makreel: fixes reply expressions (boolnnot)

2019-11-29  Jan Nieuwenhuizen  <janneke@gnu.org>

	server/dzn: include daemon in dzn client tarball.

	build: pre-inst-env.in: remove empty dir in GUIX_PACKAGE_PATH.

	test: robustify html.details generation against crashing test.

	VERSION: bump to 12.

2019-11-29  Rutger van Beusekom  <rutger.van.beusekom@verum.com>

	NEWS

2019-11-29  Paul Hoogendijk  <paul.hoogendijk@verum.com>

	glue: add reset of api ptrs in dtor

	glue: replace model name by interface name if related to provides port

	configure: make handling of go-js more robust

	glue: add missing ',' between parameters of out-event

	glue: fix: perform processCBs on a flush (iso when out-event is posted in queue)

	test: glue-dzn: add api-call direct on a callback

	test: avoid changing environment of calling context (make deep copy)

	fix several issues for generated main

2019-11-29  Rutger van Beusekom  <rutger.van.beusekom@verum.com>

	goops/resolve: fix modeling (n)ast-iness

	c++: foreign: add empty set_state member function

	c++: fix 7509 blocking combined with field-test

	c++: fix 7518 duplicated injected instances

	c++: fix 7505: code --shell=namespace.system

	c++: hello_alpha

	configure: toggle executable bit on services/scripts/convert.sh

	verify: fix async_blocking2

2019-11-29  Jan Nieuwenhuizen  <janneke@gnu.org>

	release/guile-mingw.sh: WIP

	release-commit: WIP.

	test1: run dezyne-service main.js -d.

	release-commit: WIP.

2019-11-29  Rob Wieringa  <Rob.Wieringa@verum.com>

	converter: glue patch

2019-11-29  Jan Nieuwenhuizen  <janneke@gnu.org>

	guix: asd-converter-0.1.5: Add suffix to name.

2019-11-29  Rob Wieringa  <Rob.Wieringa@verum.com>

	guix add converter 0.1.6

2019-11-29  Jan Nieuwenhuizen  <janneke@gnu.org>

	guix: pack: include dezyne-regression-test.

	guix: use postgres-9.6.

	typo

	dezyne os: switch to 0.15.

2019-11-29  Rob Wieringa  <Rob.Wieringa@verum.com>

	guix patch

2019-11-29  Henk Katerberg  <henk.katerberg@verum.com>

	os declaration for both guix 0.13 and 0.15

	WIP: test guix system vm from local source tree

2019-11-29  Jan Nieuwenhuizen  <janneke@gnu.org>

	test: regression content refactor. WIP

2019-11-29  Jan Nieuwenhuizen  <janneke@gnu.org>

	guix: Import dezyne from guix-0.13 fork. WIP
	Guix packages should now build with the old guix-0.13

	    GUIX_PACKAGE_PATH=guix guix build dezyne-regression-test
	    ./pre-inst-env guix build dezyne-services@2.8.0
	    ./pre-inst-env guix build dezyne-pack

	as well as with guix-master (upcoming 0.15)

	    GUIX_PACKAGE_PATH=guix ~/src/guix-master/pre-inst-env guix build dezyne-pack

2019-11-29  Rob Wieringa  <Rob.Wieringa@verum.com>

	test: cleanup

2019-11-29  Jan Nieuwenhuizen  <janneke@gnu.org>

	test: add aspect and version filter for META.

	test: javascript: resurrect foreign support.

	test: c++/c++03: build fixes.

	test: pretty status, resurrect exit failure.

2019-11-29  Rob Wieringa  <Rob.Wieringa@verum.com>

	test: support single-test in html

2019-11-29  Johri van Eerd  <johri.van.eerd@verum.com>

	test: toggle versions in html view

2019-11-29  Rob Wieringa  <Rob.Wieringa@verum.com>

	test: header

2019-11-29  Johri van Eerd  <johri.van.eerd@verum.com>

	test: incremental summary of test run

2019-11-29  Jan Nieuwenhuizen  <janneke@gnu.org>

	test: async: move blocking inside #if DZN_PUMP_HAVE_BLOCKING.

	test: glue, timeout.

	test: c++/c++03 per version build fix.

	test: glue-dzn: per version development.

	test: use DZN cat instead of ln; fixes 2.4.1 cs.

2019-11-29  Johri van Eerd  <johri.van.eerd@verum.com>

	test: split table and details, suppress output from test by default

2019-11-29  Jan Nieuwenhuizen  <janneke@gnu.org>

	test: one test for all versions in 'dzn query'; one html page showing the results (using vue)

2019-11-29  Rob Wieringa  <Rob.Wieringa@verum.com>

	test: use vue

	test: added 'Not Under Test Set'

	test: add test folder support

2019-11-29  Jan Nieuwenhuizen  <janneke@gnu.org>

	PEG: foreign fixup.

2019-11-29  Rob Wieringa  <Rob.Wieringa@verum.com>

	PEG parser + locations in goops

2019-11-29  Jan Nieuwenhuizen  <janneke@gnu.org>

	gdzn: code: dzn: use .port.name.

2019-11-29  Rob Wieringa  <Rob.Wieringa@verum.com>

	make parse-opts memoized

2019-11-29  Paul Hoogendijk  <paul.hoogendijk@verum.com>

	makreel: fix preformance degrade by reorder fix

2019-11-29  Johri van Eerd  <johri.van.eerd@verum.com>

	mcrl2: remove extra in event for missing reply: breaks ifreply (trace too short, integration)

	gdzn: Add lts command to generate readable LTS from .dzn files

	guix: mcrl2-git instead of mcrl2-svn, also use Release for -O3

2019-11-29  Rob Wieringa  <Rob.Wieringa@verum.com>

	namespace: solve shadowing + c++ codegen

2019-11-29  Jan Nieuwenhuizen  <janneke@gnu.org>

	revert VERSION back to development.

	test: hello_namespace_shadow: several namespace problems.

	code: javascript: foreign ressurrect fixup.

	traces, verification: use m4-cw for new guix packaging.

	gdzn: use exec for --version.

	test: javascript: resurrect foreign support.

	GOJS hack 2.

	GOJS hack

2019-11-29  Rutger van Beusekom  <rutger.van.beusekom@verum.com>

	makreel: fix blocking sync out event

	eclipse: workaround LegoBallSorter cat

	c++*: fix foreign includes

2019-11-29  Jan Nieuwenhuizen  <janneke@gnu.org>

	makreel: tick-names: do not tick types.

	release: 2.8.0

	NEWS: Release notes for 2.8.0.

	test: hello_interface_namepace: rename from ihello.

2019-11-29  Rutger van Beusekom  <rutger.van.beusekom@verum.com>

	test: fix interface model name

	makreel: hello_reorder fix

2019-11-29  Jan Nieuwenhuizen  <janneke@gnu.org>

	%version: c++: remove version check.

2019-11-29  Rutger van Beusekom  <rutger.van.beusekom@verum.com>

	%version in code, static_assert #if DZN_VERSION_ASSERT.

2019-11-29  Rob Wieringa  <Rob.Wieringa@verum.com>

	silent: handle recursive functions

	add silent_optional to regression

2019-11-29  Paul Hoogendijk  <paul.hoogendijk@verum.com>

	glue: for callbacks, use c++ type for external type iso of dzn type name

2019-11-29  Jan Nieuwenhuizen  <janneke@gnu.org>

	NEWS: WIP

	code: javascript: global-enum-definer, move from c++ to code FIXUP

2019-11-29  Paul Hoogendijk  <paul.hoogendijk@verum.com>

	glue: remove first char (I) from interface

2019-11-29  Jan Nieuwenhuizen  <janneke@gnu.org>

	test: update hello METAs.

	test: hello link fixups

	code: c++: remove global enums from interface definition.

	Revert "guix: update mcrl2 package after transition to git"
	This reverts commit f3b1a89e75ca43d2b88490f0618aee888bf2a923.

2019-11-29  Rob Wieringa  <Rob.Wieringa@verum.com>

	makreel: fix assignment and local variable scope

	WIP: scoped removal

2019-11-29  Johri van Eerd  <johri.van.eerd@verum.com>

	guix: update mcrl2 package after transition to git

2019-11-29  Paul Hoogendijk  <paul.hoogendijk@verum.com>

	glue: derive implemented interface name from provides port iso component

2019-11-29  Rutger van Beusekom  <rutger.van.beusekom@verum.com>

	global enum in namespace

2019-11-29  Rob Wieringa  <Rob.Wieringa@verum.com>

	namespace: add hello test (still failing)

	simple namespace fix

2019-11-29  Rutger van Beusekom  <rutger.van.beusekom@verum.com>

	makreel: silent modeling events

2019-11-29  Rob Wieringa  <Rob.Wieringa@verum.com>

	add silent to modeling events

2019-11-29  Jan Nieuwenhuizen  <janneke@gnu.org>

	gdzn: remove FIXME from --version, now working.

	test: add hello space; some support.

	gdzn: use gash instead of gulp-pipe, fixes spaces in file names.

	test: do not assume /bin/sh

2019-11-29  Rutger van Beusekom  <rutger.van.beusekom@verum.com>

	fixup foreign fixes

	make pump use conditional

	add foreign test and fixes

	fix topological sort

2019-11-29  Jan Nieuwenhuizen  <janneke@gnu.org>

	build: Remove /tmp loophole from scripts.

	gdzn: support <command> --version;.

2019-11-29  Paul Hoogendijk  <paul.hoogendijk@verum.com>

	makreel: cache interface definitions

2019-11-29  Jan Nieuwenhuizen  <janneke@gnu.org>

	hello_foreign: new test, resurrect javascript.

2019-11-29  Rutger van Beusekom  <rutger.van.beusekom@verum.com>

	fix thread safe shell includes

2019-11-29  Rob Wieringa  <Rob.Wieringa@verum.com>

	remove all csp code (and animate)

2019-11-29  Jan Nieuwenhuizen  <janneke@gnu.org>

	build: update ./configure for lts and asd.

2019-11-29  Rutger van Beusekom  <rutger.van.beusekom@verum.com>

	c++*: file2file

	c++*: fix BlockedSystem1 and async_blocking

2019-11-29  Paul Hoogendijk  <paul.hoogendijk@verum.com>

	verify: perform makreel code generation just-in-time

2019-11-29  Jan Nieuwenhuizen  <janneke@gnu.org>

	test: set javascript flush to KNOWN

2019-11-29  Paul Hoogendijk  <paul.hoogendijk@verum.com>

	glue: fix one-off for converting enums DZN -> ASD

2019-11-29  Johri van Eerd  <johri.van.eerd@verum.com>

	test: Add hello_clash_port_variable to hello and regression

	makreel: fix for shadowing (rename projection functions)

2019-11-29  Rutger van Beusekom  <rutger.van.beusekom@verum.com>

	execute: async_multiple_provides: set to known

	c++*: blocking async fix

2019-11-29  Rob Wieringa  <Rob.Wieringa@verum.com>

	FU: interface dependency

2019-11-29  Jan Nieuwenhuizen  <janneke@gnu.org>

	makreel: use model-name.makreel, faster interface feedback.

2019-11-29  Rob Wieringa  <Rob.Wieringa@verum.com>

	test: fixed solved in META

	test: fix META for failing tests

	test:javascript async is known

	javascript: add async template

2019-11-29  Rutger van Beusekom  <rutger.van.beusekom@verum.com>

	c++*: fix async

	c++*: fix async

	c++: flush

2019-11-29  Rob Wieringa  <Rob.Wieringa@verum.com>

	test: add META to table; fix all solved in META

2019-11-29  Rutger van Beusekom  <rutger.van.beusekom@verum.com>

	makreel: flush.

	fix glue/foreign; clean up test dirs

	makreel: async

2019-11-29  Paul Hoogendijk  <paul.hoogendijk@verum.com>

	test: restrict models to have only 1 witness for failing check

	verify: fix nondet issue by using dpweak-sim for ltsconvert

	test: clean up test h

	verify: first version of combining several checks into one

2019-11-29  Jan Nieuwenhuizen  <janneke@gnu.org>

	test: dzn-glue: use gash, print diagnostics.

2019-11-29  Rob Wieringa  <Rob.Wieringa@verum.com>

	glue code fix

	code: handle (foreign) component with requires ports only

	fix table views w.r.t. import

	test: remove dangling links

2019-11-29  Paul Hoogendijk  <paul.hoogendijk@verum.com>

	makreel: fix function continuations

2019-11-29  Rob Wieringa  <Rob.Wieringa@verum.com>

	test: set some known issues to 'known' in META

2019-11-29  Paul Hoogendijk  <paul.hoogendijk@verum.com>

	test: add test for tail call followed by non-tail call

	test: make tests deterministic

2019-11-29  Rob Wieringa  <Rob.Wieringa@verum.com>

	test: rm some traces and update META in test/hello

	test hello: remove superfluous traces

	add hello_flush test

	rewrite semantics_requires with port parameter

	prevent name clashes in generated makreel

	makreel: prevent name clash for model names 'Illegal' etc

2019-11-29  Jan Nieuwenhuizen  <janneke@gnu.org>

	code: use triplet normalize.

	test: update/missing METAs; set timeout 30 on dzn.

	code: void data, void return.

	test: regression: re-enable GarageDoorControlErr, verify.

2019-11-29  Rob Wieringa  <Rob.Wieringa@verum.com>

	fix view crashes

	resolve: make type? safe for invalid type.name

2019-11-29  Jan Nieuwenhuizen  <janneke@gnu.org>

	remove cruft.

	makreel: m4-changeword in pipeline.

	Revert "makreel: block foo."
	This reverts commit 3a3724f60adae362b43825aac8031cd091f091fa.

	test: META update for 0-trace tests.

	test: traces: fail if no traces generated or present.

	traces: parse plain `return' from interface.

	makreel: block foo.

2019-11-29  Paul Hoogendijk  <paul.hoogendijk@verum.com>

	fix illegal in traces

2019-11-29  Jan Nieuwenhuizen  <janneke@gnu.org>

	traces.scm/traces.py fixes.

	test: remove cruft.

	test: hello_enum_function, hello_global_enum: fix naming.

	test: oops, enable verify by default.

	test: SKIP GarageDoorControlErr, verify.

	traces: WIP

	WIPZOR

	gdzn: traces: resurrect. WIP: traces.py: use --provided-in

	remove dead code: mcrl2, end2endtestscripts, flattener, lts.

	makreel: remove speck and cruft.

2019-11-29  Rutger van Beusekom  <rutger.van.beusekom@verum.com>

	makreel: fresh implementation.

2019-11-29  Rob Wieringa  <Rob.Wieringa@verum.com>

	revert VERSION to development

2019-11-29  Jan Nieuwenhuizen  <janneke@gnu.org>

	gdzn: code, dzn: create output directory; fixes -o, fixes javascript.

	gdzn: support <command> --version.

2019-11-29  Rob Wieringa  <Rob.Wieringa@verum.com>

	release 2.7.1

	fix c++-msvc11 code generation

2019-11-29  Paul Hoogendijk  <paul.hoogendijk@verum.com>

	mcrl2: multiple provides

	mcrl2: more straightforward semantics process

2019-11-29  Rob Wieringa  <Rob.Wieringa@verum.com>

	Revert "code: new normalize WIP"
	This reverts commit c4a272f1e62aa8fd1388ee4c5372662b1b3f3322.

	normalize: add triples:fix-empty-interface

2019-11-29  Jan Nieuwenhuizen  <janneke@gnu.org>

	mcrl2: remove dead code.

	code: new normalize WIP

	mcrl2: use new normalize.

	normalize: fresh normalization.

	test: code2fdr: use /bin/sh.

	test: add hello_implicit_illegal.

	norm: rename add-illegals to add-illegals-and-otherwise.

	templates: grok <grammar>@<type>.

	test: hello: add optional and multiple provides tests.

	ast: add parent-not, tree-collect, tree-collect-shallow.

	ast: add ast:past overload with stop predicate.

	ast: ast:provides?, ast:requires? return port rather than #t.

	goops: allow setting name of <bool>, <void>.

	mcrl2: tick-names after resolve.

	goops: parent: fix order of parameters, do:
	    sed -ri -e 's,\(parent (<[^>]+>) ([^)]+),(parent \2 \1,g' -e 's,\(cut parent (<[^>]+>) ([^)]+),(cut parent \2 \1,g' $(find gaiag -type f -a -name '*.scm')

2019-11-29  Henk Katerberg  <henk.katerberg@verum.com>

	Determinism verification with 'lts' tool

2019-11-29  Rob Wieringa  <Rob.Wieringa@verum.com>

	resolve: all resolving lazy: resolve is identity

2019-11-29  Jan Nieuwenhuizen  <janneke@gnu.org>

	goops: lazy <event>.

	goops: lazy .type: <argument>, <enum-field>.

2019-11-29  Rob Wieringa  <Rob.Wieringa@verum.com>

	goops: lazy .type in variable, signature, enum-literal, and formal.

2019-11-29  Jan Nieuwenhuizen  <janneke@gnu.org>

	test: verify/mcrl2: flag any stderr output on verify as failure.

2019-11-29  Rutger van Beusekom  <rutger.van.beusekom@verum.com>

	mcrl2: fix function references

2019-11-29  Jan Nieuwenhuizen  <janneke@gnu.org>

	goops: use define-ast, remove wrap.

	goops: update #: callers.

	goops: remove @.

	test: verify/mcrl2: upon failure, always show stderr.

2019-11-29  Paul Hoogendijk  <paul.hoogendijk@verum.com>

	first version of introdcution of modeling channel (and remove all optional_xxx blaat)

2019-11-29  Jan Nieuwenhuizen  <janneke@gnu.org>

	version: bump back to development.

	version: bump to 2.7.0.

	NEWS: release update.

2019-11-29  Johri van Eerd  <johri.van.eerd@verum.com>

	mcrl2: small fixup and tau->internal

	mcrl2: Remove br: Bool and encode in replyUnion

2019-11-29  Rob Wieringa  <Rob.Wieringa@verum.com>

	mcrl2 fix: function references for 'identical' continuations

2019-11-29  Rutger van Beusekom  <rutger.van.beusekom@verum.com>

	code: generate foreign skeletons.

2019-11-29  Jan Nieuwenhuizen  <janneke@gnu.org>

	c++: remove FIXME.

	verification: upon error/exit, always print stderr.

2019-11-29  Henk Katerberg  <henk.katerberg@verum.com>

	Test empty else in function

	Test: nested function call

2019-11-29  Rob Wieringa  <Rob.Wieringa@verum.com>

	add skip in functions

	fix tables next state in case of if-then-else

2019-11-29  Henk Katerberg  <henk.katerberg@verum.com>

	Fix tables

2019-11-29  Rob Wieringa  <Rob.Wieringa@verum.com>

	mcrl2: add missing template

	Revert "WIP: norm in mcrl2"
	This reverts commit 32ee823c16e3fd4990cea31dde01fad94a1b2ea3.

	WIP: norm in mcrl2

	resurrect pretty-printing in mcrl2 output when -d is used

2019-11-29  Henk Katerberg  <henk.katerberg@verum.com>

	Add category for determinism test models

	Re-enable exit on lts non-zero exit

2019-11-29  Jan Nieuwenhuizen  <janneke@gnu.org>

	wip: fubar2

	wip: fubar

	integration: verification/lts: ignore exit 1.

2019-11-29  Henk Katerberg  <henk.katerberg@verum.com>

	mcrl2: introduce lts tool

2019-11-29  Rutger van Beusekom  <rutger.van.beusekom@verum.com>

	mcrl2: SynchronousLivelockExternal: META: known => external delay

	c++03: fix capture template

2019-11-29  Rob Wieringa  <Rob.Wieringa@verum.com>

	test framework: fix dependencies

2019-11-29  Paul Hoogendijk  <paul.hoogendijk@verum.com>

	mcrl2: update baseline for makreel update

	mcrl2: baseline fixes

2019-11-29  Rutger van Beusekom  <rutger.van.beusekom@verum.com>

	c++: dollar statement fix

	c++: foreign: fix

	c++*: Camera fix

	fixup fix the fixes

	mcrl2: importPath: META: is also multiple provides

	mcrl2: operator # formatting

2019-11-29  Jan Nieuwenhuizen  <janneke@gnu.org>

	fix the fixes.

	compile-template: also read from source tree.

	templates: read grammar at compile time.

	template dir should point to compile time location.

	dzn display

	gdzn table/html/dzn dump to file.

	hes

2019-11-29  Paul Hoogendijk  <paul.hoogendijk@verum.com>

	mcrl2: restore completeness check on interface as part of deadlock check

2019-11-29  Rutger van Beusekom  <rutger.van.beusekom@verum.com>

	mcrl2: remove incorrect override, allow upcast to <model>

	mcrl2: integration: verification: remove --quiet

2019-11-29  Rob Wieringa  <Rob.Wieringa@verum.com>

	templates: compile time expansion.

2019-11-29  Rutger van Beusekom  <rutger.van.beusekom@verum.com>

	gdzn: verify: properly propagate exit status and print all pipeline errors on stderr

2019-11-29  Rob Wieringa  <Rob.Wieringa@verum.com>

	fix imported

	fix mcrl2 data param in function for variable parameters

2019-11-29  Paul Hoogendijk  <paul.hoogendijk@verum.com>

	mcrl2: clever encoding of optionals

2019-11-29  Johri van Eerd  <johri.van.eerd@verum.com>

	mcrl2: cleanup defined actions for component model

	mcrl2: update namespace_assert stderr baseline

	mcrl2: add baselines

2019-11-29  Rutger van Beusekom  <rutger.van.beusekom@verum.com>

	mcrl2: integration: fix namespace

	traces: fix peg for namespace

	gash: pipe: -d adds tees to the entire pipeline including the end.

	gash: non-interactive job handling fix

	gash: pipe/job: add debugging

	mcrl2: update baseline

	gash: job: refactor

	gash: pipe: bugfix

	gash: pipe: implement pipeline->string in terms of pipeline+

	mcrl2: update baseline with livelock repitition

	gash: remove redundant tcsetpgrp and catches

2019-11-29  Jan Nieuwenhuizen  <janneke@gnu.org>

	mcrl2: remove shell-string-quotes from inits.

	integration: compliance write trace to stdout; needs new guix mcrl2 update.

	traces: use gash.

	integration: wait for job. fixes fork: Resource temporarily unavailable.

	gash: more node/notty spawn...FIXME: add test iso catch.

	gash fix for non-ttys.

	integration: verify: gash pipeline.

	gash: job.scm, pipe.scm update.

2019-11-29  Rob Wieringa  <Rob.Wieringa@verum.com>

	fix system verification when global types are present

	differentiate ast:model* and ast:global*

	fix mcrl2 data param in function

	fix dollar statement in verify

	evaluate: handle #t and #f

	fix function continuation

2019-11-29  Rutger van Beusekom  <rutger.van.beusekom@verum.com>

	mcrl2: update baseline

2019-11-29  Rob Wieringa  <Rob.Wieringa@verum.com>

	traces peg parser: cope with global'

2019-11-29  Rutger van Beusekom  <rutger.van.beusekom@verum.com>

	mcrl2: livelock: concat trace and loop; update baseline.

	mcrl2: update baseline

	mcrl2: integration + baseline

	mcrl2: update baseline

2019-11-29  Rob Wieringa  <Rob.Wieringa@verum.com>

	inner_space has multiple provides: skip

	fix non-compound behaviour statement

2019-11-29  Rutger van Beusekom  <rutger.van.beusekom@verum.com>

	mcrl2: update baseline.

	mcrl2: integration: fix AlarmDeterministicFail

	FAILING: update

2019-11-29  Johri van Eerd  <johri.van.eerd@verum.com>

	mcrl2: updated baselines

	mcrl2: missing templates for variable declaration by call

	mcrl2: fix queue size and add queue_full error in trace

	mcrl2: variable by call fix and baseline update

	mcrl2: fix variables in function continuation

2019-11-29  Rob Wieringa  <Rob.Wieringa@verum.com>

	table more fix evaluation

2019-11-29  Johri van Eerd  <johri.van.eerd@verum.com>

	mcrl2: baseline updates in regression

	mcrl2: update test/mcrl2 baselines and fix root-add-voidreply

	mcrl2: inevitable-unconstrained oopsie

2019-11-29  Rob Wieringa  <Rob.Wieringa@verum.com>

	tables: fix expression evaluation

2019-11-29  Johri van Eerd  <johri.van.eerd@verum.com>

	mcrl2: speed up interface process without optionals

	mcrl2: update FAILING

2019-11-29  Rutger van Beusekom  <rutger.van.beusekom@verum.com>

	mcrl2: out of range check fix.

	mcrl2: add missing template.

2019-11-29  Jan Nieuwenhuizen  <janneke@gnu.org>

	integration: verify interface asserts one by one.

	mcrl2: refactor make-trace-file.

	test: strict diffing for mcrl2's stderr.

2019-11-29  Paul Hoogendijk  <paul.hoogendijk@verum.com>

	verify: remove blank lines; add wheel; add timer in view

2019-11-29  Rob Wieringa  <Rob.Wieringa@verum.com>

	table fix

2019-11-29  Rutger van Beusekom  <rutger.van.beusekom@verum.com>

	mcrl2: InterfaceLivelock: update baseline

	mcrl2: split EventNotHandled with double error into two

	mcrl2: use seqdiag trace for compliance

	test: split ActionIllegal with double error into separate models.

	scmcrl2 traces: replace regex with peg.

2019-11-29  Jan Nieuwenhuizen  <janneke@gnu.org>

	test: strict diffing for mcrl2's stdout: 60 tests fail.

	Revert "mcrl2: performance"
	This reverts commit 9edcf646291648ebedf49614ba9705baaea33cb0.

	mcrl2: performance

2019-11-29  Paul Hoogendijk  <paul.hoogendijk@verum.com>

	verify: fix issue with double results

2019-11-29  Jan Nieuwenhuizen  <janneke@gnu.org>

	mcrl2: uniformise traces.py:event_convert and traces.scm:rename-lts-actions.

	mcrl: verify: traces.scm: remove range_error, dillegal.

	gdzn: print compliance trace from seqdiag.

2019-11-29  Rob Wieringa  <Rob.Wieringa@verum.com>

	Wellformedness: add checks on reply value

2019-11-29  Jan Nieuwenhuizen  <janneke@gnu.org>

	integration: more careful still with regexps; fixes scm crash with -q 3 Handle.

	integration: verify: more whitespace.

	integration: seqdiag: do not basename.

	integration: add verification error message to gdzn.

2019-11-29  Paul Hoogendijk  <paul.hoogendijk@verum.com>

	integration: don't buffer verification results

	mcrl2: fix silent_fail baseline

2019-11-29  Jan Nieuwenhuizen  <janneke@gnu.org>

	dzn-glue: even more love for container.

2019-11-29  Henk Katerberg  <henk.katerberg@verum.com>

	tables: fixes

2019-11-29  Jan Nieuwenhuizen  <janneke@gnu.org>

	2x oops.

	gdzn: traces: fix -m for namespaces.

	tests: even more container love for dzn-glue.

	cleanup paul's whitespace.

	verify: handle: The acceptance of the left process is empty.

2019-11-29  Paul Hoogendijk  <paul.hoogendijk@verum.com>

	views: reanble filling of verification view

2019-11-29  Henk Katerberg  <henk.katerberg@verum.com>

	Compliance failure multiple witnesses: spec + impl for sequence diagram

2019-11-29  Jan Nieuwenhuizen  <janneke@gnu.org>

	verify: integration: fix tmpdir, use --csp for csp, resurrect.

2019-11-29  Rob Wieringa  <Rob.Wieringa@verum.com>

	fix-empty-interface-behaviour

	test: emptyBehaviour: change mcrl2 baseline

	Revert "add voidreply for modeling and required out events"
	This reverts commit b3b982f7078538a916066f26e3c267f12235d9ae.

	add voidreply for modeling and required out events

2019-11-29  Jan Nieuwenhuizen  <janneke@gnu.org>

	FAILING: update.

	test: dzn-glue: fix running in container.

	animate: fix for symbol(instead of string)-producing templates.

	animate: another fix for *unspecified*.

	Revert "test: always enable illegal for traces"
	This reverts commit 6d41a76264d5b14d6e9690a8c0889406ed1f9509.

	test: baseline external_asynchronous* updates.

	x:pand: enable animate.

	animate: #:x-process-parameters.

	remove .variable debug printing.

2019-11-29  Rob Wieringa  <Rob.Wieringa@verum.com>

	fix broken .variable in tables, due to lazy variable resolution

2019-11-29  Jan Nieuwenhuizen  <janneke@gnu.org>

	animate: more spaces.

2019-11-29  Paul Hoogendijk  <paul.hoogendijk@verum.com>

	mclr2: fix issues with hiding of parameter

2019-11-29  Jan Nieuwenhuizen  <janneke@gnu.org>

	remove debugging.

	x:pand: fix *unspecified*, enable animate.

2019-11-29  Rutger van Beusekom  <rutger.van.beusekom@verum.com>

	test: mcrl2: multiple provides ports is know to fail.

	test: Camera: add explicit trace to allow execute.

	test: mcrl2: suppress model parameter.

2019-11-29  Jan Nieuwenhuizen  <janneke@gnu.org>

	x:pand: default to peg.

	mcrl2: use -dd for template debugging, -d for dzn comments.

	animate: add spaces to templates using sed:
	sed -i -re 's@([^(); ])#@\1 #@g' -e "s@([-.:])(name|type|port|process|scope)('})@\1\2 \3@g" -e 's@ # @ ## @g' $(find . -type f)

	gdzn: xpand: make peg/animate switchable, default to animate.

	gdzn: verify: transparently display results, do not accumulate until done.

	oops: remove ./verify.mcrl2: fixup 3ef459bc test: mcrl2: add parse baseline symlink.

2019-11-29  Rutger van Beusekom  <rutger.van.beusekom@verum.com>

	FAILING: update

	test: shell: meta: set mcrl2/traces to known

2019-11-29  Paul Hoogendijk  <paul.hoogendijk@verum.com>

	traces: uses weak-trace reduction iso trace

2019-11-29  Rob Wieringa  <Rob.Wieringa@verum.com>

	fix broken .variable in tables, due to lazy variable resolution

2019-11-29  Rutger van Beusekom  <rutger.van.beusekom@verum.com>

	c++03: runtime: container: allow illegal in trace.

	test: verify: meta: disable code.

2019-11-29  Paul Hoogendijk  <paul.hoogendijk@verum.com>

	traces: removes taus

	mclr2: reenable optional after each disable

2019-11-29  Rutger van Beusekom  <rutger.van.beusekom@verum.com>

	test: fix broken links, re-add verify to regression

	test: always enable illegal for traces

	traces: fix -i

2019-11-29  Jan Nieuwenhuizen  <janneke@gnu.org>

	test: baseline updates.

	traces.scm, trace.py: fixup.

	test: mclr2,traces: set async,blocking to KNOWN.

	test: execute: set timeout to 2s.

	c++: container: sleep for DZN_CONTAINER_SLEEP ms.

	Revert "mcrl2: performance"
	This reverts commit 78e59a718d5512acb55f9dfd113d5d8eb4006689.

2019-11-29  Johri van Eerd  <johri.van.eerd@verum.com>

	mcrl2: add --queue option

	mcrl2: add missing template

	mcrl2: fix dillegal flags and add some baselines

	mcrl2: improve replies

2019-11-29  Rob Wieringa  <Rob.Wieringa@verum.com>

	EXPERIMENTAL: set dillegals to true

2019-11-29  Rutger van Beusekom  <rutger.van.beusekom@verum.com>

	mcrl2: add --cached and configurable cppflag

	mcrl2: performance

2019-11-29  Jan Nieuwenhuizen  <janneke@gnu.org>

	traces.scm, trace.py: update return in rename-lts-actions/event_convert.

	resolve: remove model parameter, resolve-top-model, resolve-model.

	dzn/c++: remove variable-expression.

2019-11-29  Johri van Eerd  <johri.van.eerd@verum.com>

	mcrl2: update FAILING

	mcrl2: some more range error fixes

2019-11-29  Jan Nieuwenhuizen  <janneke@gnu.org>

	mcrl2: remove assign-expression, variable-expression and 35 templates.

2019-11-29  Johri van Eerd  <johri.van.eerd@verum.com>

	mcrl2: FIX missing internal to allow optionals on req port

2019-11-29  Rob Wieringa  <Rob.Wieringa@verum.com>

	test: remove baseline

2019-11-29  Johri van Eerd  <johri.van.eerd@verum.com>

	mcrl2: reply fixes

2019-11-29  Paul Hoogendijk  <paul.hoogendijk@verum.com>

	trace: fix 'niet in de haak' issue for traces

	mcrl2: fix translation of non-deterministic traces; add additional test for this

2019-11-29  Johri van Eerd  <johri.van.eerd@verum.com>

	mcrl2: fixes function references && repair reply on modeling event

2019-11-29  Rob Wieringa  <Rob.Wieringa@verum.com>

	add expression templates

	resolve: remove use of locals; goops: make xxx@ accessors local to goops

	test: fix comonent name

2019-11-29  Johri van Eerd  <johri.van.eerd@verum.com>

	mcrl2: fix unused function references generation

2019-11-29  Jan Nieuwenhuizen  <janneke@gnu.org>

	mcrl2: integrate lps2lts --nondeterminism (update guix to: mcrl2@2017.1.15172)

2019-11-29  Rutger van Beusekom  <rutger.van.beusekom@verum.com>

	mcrl2: add-illegal fixes.

2019-11-29  Rob Wieringa  <Rob.Wieringa@verum.com>

	test html: sort and align

2019-11-29  Jan Nieuwenhuizen  <janneke@gnu.org>

	rcesolve: fix pijltje.

2019-11-29  Paul Hoogendijk  <paul.hoogendijk@verum.com>

	traces: fix issue with too short traces

2019-11-29  Rutger van Beusekom  <rutger.van.beusekom@verum.com>

	norm: enable aggregate-on for interface, fixes mcrl2 implicit illegal for interfaces.

2019-11-29  Rob Wieringa  <Rob.Wieringa@verum.com>

	fixed resolver issues

2019-11-29  Jan Nieuwenhuizen  <janneke@gnu.org>

	test: display trace difference, ignore it but do fail if ok/fail differs.

2019-11-29  Rob Wieringa  <Rob.Wieringa@verum.com>

	test mcrl2: ignore trace content in diff

2019-11-29  Jan Nieuwenhuizen  <janneke@gnu.org>

	test: remove verify; 1h05 duration. REVERTME

	test: update range test admininstration.

	remove debugging output; fixes test mcl2.

2019-11-29  Paul Hoogendijk  <paul.hoogendijk@verum.com>

	traces: use 'traces' model when compressing lts for traces

2019-11-29  Jan Nieuwenhuizen  <janneke@gnu.org>

	mcrl2: fix -m simple.space.

	mcrl2: data_shadow_port/formal-binding transformation and pretty-printing.

	mcrl2: copy missing baselines from fdr2.

	test: print verification failure with newlines.

	oops: parse symlink.

	mcrl2: use assert parse, do not canonicalize-path.

	test: mcrl2: add parse baseline symlink.

	mcrl2: rename-lts-actions: trim whitespace.

	mcrl2: traces: another return,false fix.

	guix: bump to mcrl2-svn.

2019-11-29  Johri van Eerd  <johri.van.eerd@verum.com>

	mcrl2: various fixes and updated FAILING

	mcrl2: WIP, integer bounds

	mcrl2: WIP, reply types mismatching

	mcrl2: fix range errors and add multiple range error tests

2019-11-29  Jan Nieuwenhuizen  <janneke@gnu.org>

	FAILURE: update

	mccl2: dzn_Axis:add suspicious template.

	mcrl2: name space.

	mcrl2: namespace frontend.

	mcrl2: use ast:path.

	revert bits of ast voidreply refactor

	mcrl2: root-add-voidreply: do not add voidreply on modeling event.

	root-add-voidreply WIP

	mcrl2: remove -lstack for interface too.

2019-11-29  Henk Katerberg  <henk.katerberg@verum.com>

	mcrl2 refinement verification counter-examples

2019-11-29  Johri van Eerd  <johri.van.eerd@verum.com>

	mcrl2: 'fixes' verify; REVISIT UNIQUE IDENTIFIERS

	mcrl2: update FAILING

	mcrl2: update FAILING

	mcrl2: fix equal continuation references after function call

	mcrl2: fix local variables passthrough for var decl by call

2019-11-29  Jan Nieuwenhuizen  <janneke@gnu.org>

	don't remove

2019-11-29  Johri van Eerd  <johri.van.eerd@verum.com>

	mcrl2: fix process declarations in if-then-else paths

2019-11-29  Paul Hoogendijk  <paul.hoogendijk@verum.com>

	verify: fix translation of Enum.Value

2019-11-29  Johri van Eerd  <johri.van.eerd@verum.com>

	mcrl2: fix variable or assign as last statement in compound

2019-11-29  Jan Nieuwenhuizen  <janneke@gnu.org>

	Revert "mcrlr2: assign/variable: workaround hack."
	This reverts commit d0e03eb6e4f0f83891350a978dc653bf1683a293.

	mcrlr2: assign/variable: workaround hack.

2019-11-29  Johri van Eerd  <johri.van.eerd@verum.com>

	mcrl2: support int-expr

2019-11-29  Jan Nieuwenhuizen  <janneke@gnu.org>

	mcrl2: do not crash on --model=<system>

2019-11-29  Rutger van Beusekom  <rutger.van.beusekom@verum.com>

	add FAILING

2019-11-29  Rob Wieringa  <Rob.Wieringa@verum.com>

	test: no deadlock due to illegal: changed mcrl2 baseline

2019-11-29  Jan Nieuwenhuizen  <janneke@gnu.org>

	mcrl2: mcrl22lps: silence stderr `Generated 25 processes.' ofzo.

2019-11-29  Rutger van Beusekom  <rutger.van.beusekom@verum.com>

	mcrl2: tick-names.

2019-11-29  Paul Hoogendijk  <paul.hoogendijk@verum.com>

	traces: also accept interfaces

	traces: use tmpnam iso of fixed name for tmp dir

2019-11-29  Rutger van Beusekom  <rutger.van.beusekom@verum.com>

	mcrl2: add template.

	mcrl2: purge-data.

	mcrl2: ast-add-skip: .parent fixup. FIXME: functions?

	mcrl2: global scope in template 2.

	mcrl2: global scope in template.

	mcrl2: function-return comma-fix.

	mcrl2: add implicit interface illegals.

	mcrl2: resolve: function signature: fixes Dataparam.

2019-11-29  Rob Wieringa  <Rob.Wieringa@verum.com>

	test: add -f flag

	mcrl2_regression: add mcrl2 baselines

2019-11-29  Rutger van Beusekom  <rutger.van.beusekom@verum.com>

	NEWS: add mcrl2 status for development

2019-11-29  Johri van Eerd  <johri.van.eerd@verum.com>

	mcrl2: missing templates

	mcrl2: assign-expression templates

	mcrl2: calls from calls (partial?) fix

	mcrl2: interface verification (with verify -m only)

	mcrl2: assign-expression templates

	mcrl2: assign by action fix

	mcrl2: fix assign by action

	mcrl2: function return process fix

	mcrl2: added templates

	mcrl2: add mcrl2_regression test folder

	mcrl2: functions and reply union fix

2019-11-29  Jan Nieuwenhuizen  <janneke@gnu.org>

	dzn/gdzn: verify mcrl2: integration.

2019-11-29  Paul Hoogendijk  <paul.hoogendijk@verum.com>

	fix traces for mcrl2; add --lts options

	eqn allow-dillegals for all interfaces

2019-11-29  Johri van Eerd  <johri.van.eerd@verum.com>

	mcrl2: fix test/hello

	mcrl2: global types wip2

	mcrl2: global types wip

	mcrl2: verify interface wip

	mcrl2: global variables wip

	test: remove unnecessary interface from test file

2019-11-29  Jan Nieuwenhuizen  <janneke@gnu.org>

	mcrl2: optional/inevitable: frisse parent.

2019-11-29  Johri van Eerd  <johri.van.eerd@verum.com>

	mcrl2: use parent to guarantee unique ID

2019-11-29  Jan Nieuwenhuizen  <janneke@gnu.org>

	mcrl2: use x:mcrl2-model-name throughout.

	mcrl2:om: fixzor

	pass: helloenum

2019-11-29  Rob Wieringa  <Rob.Wieringa@verum.com>

	mcrl2: skip

2019-11-29  Jan Nieuwenhuizen  <janneke@gnu.org>

	gdzn verify: prototype integration.

	gdzn: verify -M: support --json.

	test: import simple compliance errors with trace.

	gdzn code: resurrect.

	Revert "xpand: timing and memoization of template expansion"
	This reverts commit 2828456fa2df2bbbcb649f4c6823057f2afe6785.

	test: mcrl2: new directory with hello, hellofail.

	guix: add mcrl2.

2019-11-29  Johri van Eerd  <johri.van.eerd@verum.com>

	mcrl2: parent tree refactoring and verify command fixes

	mcrl2: wip

	mcrl2: REVISIT; bandaid fix

	mcrl2: wip

	mcrl2: fix implicit illegals WIP

	test: added verifyok folder

	mcrl2: wip

	xpand: timing and memoization of template expansion

	mcrl2: hello & hellofail tests all pass

	mcrl2: hellofail modulo interface checks works

	mcrl2: add hellofail test dir

	mcrl2: fix reply-type for formals

	mcrl2: use subint range to limit possible reply (determinism)

	mcrl2: test/hello almost fully functional

	mcrl2: implicit illegals and refinement check

	mcrl2: WIP for refinement

	mcrl2: added deterministic check and support for varying mcrl2 inits

	mcrl2: added to test framework

	Revert "mcrl2: wip (debugging time etc)"
	This reverts commit 9f8dab0e99418de27389a6aed70cc15d8d81f359.

	mcrl2: let verify output resemble csp verify output

	mcrl2: wip (debugging time etc)

	mcrl2: fix verification command & mcrl2 replies

	mcrl2: fix initial values for replyunion

	mcrl2: valued reply implemented

	mcrl2: variable assign by function return

	mcrl2: fix Alarm after rebase

	mcrl2: assign by call (var foo = bar())

	xpand: allow ? in template name

2019-11-29  Jan Nieuwenhuizen  <janneke@gnu.org>

	gaiag: mcrl2

	from mcrl2: WIP

2019-11-29  Johri van Eerd  <johri.van.eerd@verum.com>

	compile: set %default-optimizations when GO_FAST is not set

2019-11-29  Jan Nieuwenhuizen  <janneke@gnu.org>

	gaiag: parse-file: reverse default to favour generator.

	gaiag: remove parser and test.

2019-11-29  Rob Wieringa  <Rob.Wieringa@verum.com>

	parent: remove dead code

	parent: remove root-scope.

	parent: remove model scope.

2019-11-29  Jan Nieuwenhuizen  <janneke@gnu.org>

	test: disable table aspect.

	test: hello/hello_guard_two.

2019-11-29  Rob Wieringa  <Rob.Wieringa@verum.com>

	parent: introduce <ast-node> and <ast> wrapping.

2019-11-29  Rutger van Beusekom  <rutger.van.beusekom@verum.com>

	c++: glue: align member function names between foreign component and bottom glue component.

	c++/c++03: glue: cast return value.

2019-11-29  Jan Nieuwenhuizen  <janneke@gnu.org>

	version: bump back to development.

2019-11-29  Rutger van Beusekom  <rutger.van.beusekom@verum.com>

	c++: glue: add missing return.

	c++: glue: align member function names between foreign component and bottom glue component.

	c++: glue: remove namespace for LOPW

2019-11-29  Jan Nieuwenhuizen  <janneke@gnu.org>

	version: bump services to 2.6.1.

	NEWS: release update.

	resurrect gdzn code -l <module> AST pretty printing, try:
	    ./pre-inst-env gdzn code -l parse test/hello/helloworld/helloworld.dzn
	    ./pre-inst-env gdzn code -l om test/hello/helloworld/helloworld.dzn
	    ./pre-inst-env gdzn code -l resolve test/hello/helloworld/helloworld.dzn
	    ./pre-inst-env gdzn code -l norm-state test/hello/helloworld/helloworld.dzn
	    ./pre-inst-env gdzn code -l norm-event test/hello/helloworld/helloworld.dzn

2019-11-29  Rob Wieringa  <Rob.Wieringa@verum.com>

	test: add helloglobal test case

	test LegoBallSorter: factor out polling (lego specific stuff)

	test: suppress -q when no queue is specified

2019-11-29  Rutger van Beusekom  <rutger.van.beusekom@verum.com>

	c++: initialise members to avoid warning

	c++: removed warnings by visual studio compiler.

2019-11-29  Jan Nieuwenhuizen  <janneke@gnu.org>

	c++: calling-context: diffably-correct trace.

2019-11-29  Rutger van Beusekom  <rutger.van.beusekom@verum.com>

	c++: calling_context: reimplement and test.

2019-11-29  Jan Nieuwenhuizen  <janneke@gnu.org>

	javascript: factor-out component preamble.

2019-11-29  Rutger van Beusekom  <rutger.van.beusekom@verum.com>

	version: bump back to development.

2019-11-29  Jan Nieuwenhuizen  <janneke@gnu.org>

	version: bump client,services to 2.6.0.

	NEWS: release update.

2019-11-29  Rob Wieringa  <Rob.Wieringa@verum.com>

	c++ code: fix reply_bool type

	verify: fix -q option

2019-11-29  Henk Katerberg  <henk.katerberg@verum.com>

	Javascript runtime: check_bindings robust against leaf components

2019-11-29  Rob Wieringa  <Rob.Wieringa@verum.com>

	test: change META for all solved issues

2019-11-29  Jan Nieuwenhuizen  <janneke@gnu.org>

	javascript: fix component import.

2019-11-29  Paul Hoogendijk  <paul.hoogendijk@verum.com>

	if reporting livelock, extend trace with unfolding of 1 loop

2019-11-29  Jan Nieuwenhuizen  <janneke@gnu.org>

	remove executable bit from some data files

2019-11-29  Rob Wieringa  <Rob.Wieringa@verum.com>

	javascript code: fix illegal reporting

	gaiag: fix table namespace issue

2019-11-29  Jan Nieuwenhuizen  <janneke@gnu.org>

	gdzn: verify: verify all models.

2019-11-29  Rob Wieringa  <Rob.Wieringa@verum.com>

	daemon + service: change verify behaviour: verify all models instead of the first one

2019-11-29  Jan Nieuwenhuizen  <janneke@gnu.org>

	gdzn: cat: new command.

2019-11-29  Henk Katerberg  <henk.katerberg@verum.com>

	interpreter: queues in watch window

	guix setup scripts

2019-11-29  Rutger van Beusekom  <rutger.van.beusekom@verum.com>

	version: bump back to development.

	NEWS: reduce pump dependency

2019-11-29  Rob Wieringa  <Rob.Wieringa@verum.com>

	version: bump client,services to 2.5.3

2019-11-29  Rutger van Beusekom  <rutger.van.beusekom@verum.com>

	NEWS: update 2.5.2

	c++*: remove pump dependency when blocking & async are not used.

2019-11-29  Jan Nieuwenhuizen  <janneke@gnu.org>

	dzn,gdzn: convert: add --glue option.

2019-11-29  Rob Wieringa  <Rob.Wieringa@verum.com>

	test: add verify with globals test

	gaiag: do not filter root when generating csp

2019-11-29  Rutger van Beusekom  <rutger.van.beusekom@verum.com>

	version: bump services to 2.5.2

	c++*: shell: void fix.

	version: bump services to 2.5.1

	NEWS: update 2.5.1

	c++*: shell: enum and int support.

	c++/c++03: redirect optional-return@enum to optional-return@type

	c++/c++03: test: async: add dzn::blocking function.

	traces: replace implementation with gdzn trace.

	NEWS: add c++ warning fix and c++03 thread safe shell.

	test: fix broken symlinks.

	c++: generate pump pointer based on async use.

	c++03: partial msvc shell port.

2019-11-29  Rob Wieringa  <Rob.Wieringa@verum.com>

	update client and service version to 2.5.0

2019-11-29  Jan Nieuwenhuizen  <janneke@gnu.org>

	test: table: set 20 failing [normalization] tests to known.

	NEWS: update for 2.5.0 release.

	code: remove runtime for c, c#, java, java7, python, scheme.

	for mcrl2: cleanup parameterize.

2019-11-29  Johri van Eerd  <johri.van.eerd@verum.com>

	dzn: mcrl2/csp support.

2019-11-29  Jan Nieuwenhuizen  <janneke@gnu.org>

	./configure: FIXUP @@.
	re

	dir-locals WIP

	dzn: ls: pre-inst-env fix.

	dzn: support external, injected port.

	bin/gaiag: remove.

	build: fix configure, ./pre-inst-env.

2019-11-29  Henk Katerberg  <henk.katerberg@verum.com>

	dzn devenv run local dezyne database

2019-11-29  Rutger van Beusekom  <rutger.van.beusekom@verum.com>

	gaiag: html: fix statement

2019-11-29  Jan Nieuwenhuizen  <janneke@gnu.org>

	x:pand: html: support foreign.

	x:pand: dzn: support foreign.

	test: table: drop baseline.

	test: table: test using parse, also test identity.

	x:pand: html: update.

	x:pand: dzn: functions.

	x:pand: dzn: direction and global types.

	x:pand: code: drop gratuitous toplevel on-compound.

	code: use dzn statement expansion; c++/c++03/javascript: cleanout templates.

	resolve: incorporate functions from om.

	ast: lift om: bits.

	x:pand: html: resurrect.

	<field-test>: rename from <field>.

	<literal>: rename from <value>.

	<enum-literal>: rename from <literal>.

	x:pand: code: base on dzn.

	x:pand: dzn: re-implement.

2017-09-09  Jan Nieuwenhuizen  <janneke@gnu.org>

	resolve: move expression resolve from deprecated om.

	delete cruft.

	deprecate om.

2017-09-08  Jan Nieuwenhuizen  <janneke@gnu.org>

	x:pand: use template@type.

2017-09-07  Jan Nieuwenhuizen  <janneke@gnu.org>

	x:pand: refactor string-join+.

2017-09-05  Johri van Eerd  <johri.van.eerd@verum.com>

	x:pand: template allows pre and post grammars

2017-09-07  Jan Nieuwenhuizen  <janneke@gnu.org>

	junk om:register, global model cache *ast-alist*.

	code: remove obsolete animate templates.

	code: remove deprecated animate backend usage.

2017-09-06  Jan Nieuwenhuizen  <janneke@gnu.org>

	NEWS: update layout.

2017-09-05  Jan Nieuwenhuizen  <janneke@gnu.org>

	NEWS: update, generate and serve as html.

2017-09-04  Jan Nieuwenhuizen  <janneke@gnu.org>

	README: org mode harder.

2017-08-31  Jan Nieuwenhuizen  <janneke@gnu.org>

	build: use lightweight guile optimization for non-container builds.

	build: use canonicalization 'absolute for guile compilation.

	emacs: .dir-locals.el: include editing settings and dzn-setup-devel.

	dzn-daemon: rename from daemon.

	dzn: move from client.

	test: bugs: remove old-style tests.

2017-08-30  Jan Nieuwenhuizen  <janneke@gnu.org>

	unbundle: 4 copies of gojs: use gojs fom guix.

	remove cruft.

	unbundle: gaiag/json: use guile-json from guix.

	gaiag: delete baseline and examples.

	gaiag: remove guile-2.0 lalr support.

	README: new file.

	test: recursive import: upgrade include test.

2017-08-29  Jan Nieuwenhuizen  <janneke@gnu.org>

	x:pand: better debugging.

2017-08-31  Rutger van Beusekom  <rutger.van.beusekom@verum.com>

	c++/c++03: x:pand glue, add construction parameters.

2017-08-29  Jan Nieuwenhuizen  <janneke@gnu.org>

	code: remove unused templates.

2017-08-28  Jan Nieuwenhuizen  <janneke@gnu.org>

	test: expressions: add >= !=.

	code: javascript: file2file and --deprecated=model2file.

2017-08-14  Jan Nieuwenhuizen  <janneke@gnu.org>

	code: x:pand: javascript.

2017-08-29  Jan Nieuwenhuizen  <janneke@gnu.org>

	code: c++: resurrect DZN_DEPRECATED=model2file.

2017-09-01  Jan Nieuwenhuizen  <janneke@gnu.org>

	version: bump back to development.

2017-09-05  Jan Nieuwenhuizen  <janneke@gnu.org>

	gaiag: resolve: allow top-level <call> resolving, fix json-table.

2017-09-04  Jan Nieuwenhuizen  <janneke@gnu.org>

	NEWS: new file.

2017-09-05  Rutger van Beusekom  <rutger.van.beusekom@verum.com>

	c++/c++03: fix $$-statements and file2file.

2017-08-31  Rutger van Beusekom  <rutger.van.beusekom@verum.com>

	version: bump services to 2.4.1

2017-08-30  Rutger van Beusekom  <rutger.van.beusekom@verum.com>

	c++03: boost compatible workaround for lacking move semantics.

	gaiag: csp: rename fix renaming of queue-size commandline option renaming.

2017-08-25  Jan Nieuwenhuizen  <janneke@gnu.org>

	gaiag: xpand: support ast:extend-scope.

2017-08-25  Rob Wieringa  <Rob.Wieringa@verum.com>

	gaiag: resolve variable in <field>

	gaiag: properly resolve port in reply

2017-08-18  Jan Nieuwenhuizen  <janneke@gnu.org>

	version: bump back to development.

2017-08-30  Jan Nieuwenhuizen  <janneke@gnu.org>

	guix: update guix.scm.

	build: cleanup environment variables, use ./pre-inst-env <command>.

2017-08-31  Jan Nieuwenhuizen  <janneke@gnu.org>

	test: regression: rename from regression-test.

2017-08-30  Jan Nieuwenhuizen  <janneke@gnu.org>

	test: drop GDZN.

2017-08-18  Jan Nieuwenhuizen  <janneke@gnu.org>

	version: bump client,services to 2.4.0.

2017-08-17  Rutger van Beusekom  <rutger.van.beusekom@verum.com>

	test: verify: update baseline

2017-08-17  Jan Nieuwenhuizen  <janneke@gnu.org>

	test: Dataparam: assert assigment to in-parameter does not go out.

2017-08-17  Rutger van Beusekom  <rutger.van.beusekom@verum.com>

	gaiag: c++: fix shell.

2017-08-17  Rob Wieringa  <Rob.Wieringa@verum.com>

	test: verification: adapt baselines due to finding different wittnesses after CSP changes

2017-08-17  Jan Nieuwenhuizen  <janneke@gnu.org>

	gaiag: java7: resurrect.

	gaiag: deprecate animate, animate-code.

2017-08-16  Jan Nieuwenhuizen  <janneke@gnu.org>

	code: c++: cleanup scope, type.

	test: type/: test scopes, types.

	code: c++: cleanup.

2017-08-15  Rutger van Beusekom  <rutger.van.beusekom@verum.com>

	gaiag: xpand: extract define-template body to speedup compilation by factor 3

2017-08-11  Jan Nieuwenhuizen  <janneke@gnu.org>

	code: split x:pand, old animate-code, deprecated/c++

2017-08-09  Jan Nieuwenhuizen  <janneke@gnu.org>

	test: remove dzn view test: viewrace; move to guix system test?

2017-08-08  Rob Wieringa  <Rob.Wieringa@verum.com>

	interpreter and run command: accept -I flags

2017-08-07  Rob Wieringa  <Rob.Wieringa@verum.com>

	gaiag table: include global types in generated table code

2017-08-03  Rob Wieringa  <Rob.Wieringa@verum.com>

	gaiag: add <foreign> to multiple matches

2017-08-02  Rob Wieringa  <Rob.Wieringa@verum.com>

	code c++03: add missing template

	gaiag: repair Paul's csp change

2017-07-14  Paul Hoogendijk  <paul.hoogendijk@verum.com>

	csp: generate c.e iso c?x:{e}

2017-07-10  Rutger van Beusekom  <rutger.van.beusekom@verum.com>

	generate/gaiag/gdzn: toplevel $-statements; file.dzn -> file.cc,/hh
	  expose previous implementation via --deprecated=model2file

2017-07-11  Jvaneerd  <J.vaneerd@student.fontys.nl>

	cs.check_bindings: implement and add to test

2017-07-18  Jan Nieuwenhuizen  <janneke@gnu.org>

	gdzn: ls: resurrect DEZYNE_PREFIX=$HOME/development feature.

	gdzn: ls: oops, use service-dir prefix.

2017-07-18  Jan Nieuwenhuizen  <janneke@gnu.org>

	node-snapshot.sh: bump fibers to 1.0.15.
	Error: /gnu/store/lrycb2fqr0fj1fkva4zi6xkkwmchbkyy-node-snapshot-1/lib/node_modules/fibers/bin/linux-x64-v8-5.1/fibers.node` is missing

	yup

	    $ l /gnu/store/lrycb2fqr0fj1fkva4zi6xkkwmchbkyy-node-snapshot-1/lib/node_modules/fibers/bin/
	    total 76
	    dr-xr-xr-x 2 root root 4096 Jan  1  1970 win32-x64-v8-5.0/
	    dr-xr-xr-x 2 root root 4096 Jan  1  1970 win32-x64-v8-4.6/
	    dr-xr-xr-x 2 root root 4096 Jan  1  1970 win32-x64-v8-4.5/
	    dr-xr-xr-x 2 root root 4096 Jan  1  1970 win32-ia32-v8-5.0/
	    dr-xr-xr-x 2 root root 4096 Jan  1  1970 win32-ia32-v8-4.6/
	    dr-xr-xr-x 2 root root 4096 Jan  1  1970 win32-ia32-v8-4.5/
	    -r-xr-xr-x 3 root root 1222 Jan  1  1970 repl*
	    dr-xr-xr-x 2 root root 4096 Jan  1  1970 linux-x64-v8-5.0/
	    dr-xr-xr-x 2 root root 4096 Jan  1  1970 linux-x64-v8-4.6/
	    dr-xr-xr-x 2 root root 4096 Jan  1  1970 linux-x64-v8-4.5/
	    dr-xr-xr-x 2 root root 4096 Jan  1  1970 linux-ia32-v8-5.0/
	    dr-xr-xr-x 2 root root 4096 Jan  1  1970 linux-ia32-v8-4.6/
	    dr-xr-xr-x 2 root root 4096 Jan  1  1970 linux-ia32-v8-4.5/
	    dr-xr-xr-x 2 root root 4096 Jan  1  1970 darwin-x64-v8-5.0/
	    dr-xr-xr-x 2 root root 4096 Jan  1  1970 darwin-x64-v8-4.6/
	    dr-xr-xr-x 2 root root 4096 Jan  1  1970 darwin-x64-v8-4.5/
	    dr-xr-xr-x 2 root root 4096 Jan  1  1970 darwin-ia32-v8-5.0/
	    dr-xr-xr-x 2 root root 4096 Jan  1  1970 darwin-ia32-v8-4.6/
	    dr-xr-xr-x 2 root root 4096 Jan  1  1970 darwin-ia32-v8-4.5/

2017-07-18  Jan Nieuwenhuizen  <janneke@gnu.org>

	node-snapshot.sh: bump q (required for test: q.any).

2017-07-12  Rob Wieringa  <Rob.Wieringa@verum.com>

	gaiag: do function resolution through scope; fix tables after introduction <expression>

2017-07-13  Jan Nieuwenhuizen  <janneke@gnu.org>

	gdzn run: comment-out generate, document limitations.

	gdzn: Add view.

	gdzn: Add query.

2017-07-14  Jan Nieuwenhuizen  <janneke@gnu.org>

	gdzn: bin install.

2017-07-13  Jan Nieuwenhuizen  <janneke@gnu.org>

	test: Camera: skip verify of arbitrary interface.

	gdzn: run: use generator -I.

2017-07-06  Jan Nieuwenhuizen  <janneke@gnu.org>

	guix: update guix.scm, add development manifest.

2017-07-05  Jan Nieuwenhuizen  <janneke@gnu.org>

	version: bump daemon 10.

2017-05-18  Rob Wieringa  <Rob.Wieringa@verum.com>

	language: accept keywords in dollar expressions

2017-07-04  Rob Wieringa  <Rob.Wieringa@verum.com>

	gaiag: fix json tables (used in dzn view)

2017-07-07  Rob Wieringa  <Rob.Wieringa@verum.com>

	test framework: documentation update

	test framework: add 'collect' feature

2017-07-06  Rob Wieringa  <Rob.Wieringa@verum.com>

	test framework: handle incomplete json outcome

2017-07-05  Rob Wieringa  <Rob.Wieringa@verum.com>

	test framework: cope with missing/incomplete outcome

2017-07-04  Rob Wieringa  <Rob.Wieringa@verum.com>

	test framework: add filtering to results table columns

2017-07-03  Rob Wieringa  <Rob.Wieringa@verum.com>

	test framework: color table headers

	test: add test framework high level documentation

2017-07-05  Jan Nieuwenhuizen  <janneke@gnu.org>

	gdzn: table: use generator parser by default.

2017-07-04  Jan Nieuwenhuizen  <janneke@gnu.org>

	gdzn: verify: add implicit include dirs.

	gdzn: verify: support -I.

	gdzn: parse: -v: no errors found.

	test: support running of bin/test from elsewhere; imports bit.

	gdzn: parse: run on canonicalize-path; fixes symlinked with imports.

	gdzn: convert: resolve file-names of interfaces.

	gdzn run: use --illegal.

	test: fixup dzn-glue/run.

	fixup: test: package and fix include asd headers building from elsewhere.

	test: package and fix include asd headers building from elsewhere.

	convert/dzn-glue: --system fixes.

2017-07-03  Jan Nieuwenhuizen  <janneke@gnu.org>

	gdzn: remove / removal-fu.

	test: dzn-glue: generate outcome.

2017-06-29  Rutger van Beusekom  <rutger.van.beusekom@verum.com>

	gdzn: convert

2017-06-28  Henk Katerberg  <henk.katerberg@verum.com>

	(fixup) test support running of bin/test: no-preserve ownership.

2017-06-27  Jan Nieuwenhuizen  <janneke@gnu.org>

	gdzn: run: install trace2net.js and use that.

2017-06-26  Henk Katerberg  <henk.katerberg@verum.com>

	gdzn: run based on seqdiag and trace2net.js

2017-06-26  Jan Nieuwenhuizen  <janneke@gnu.org>

	gdzn: Add table.

	gaiag: resolve: handle port's type (dotted ...).

2017-06-23  Jan Nieuwenhuizen  <janneke@gnu.org>

	gdzn: verify: run parse first.

	gdzn: verify: fix model option, queue size.

	gdzn: verify: fix long error messages, fix errors without trace.

2017-06-22  Henk Katerberg  <henk.katerberg@verum.com>

	fixup: gdzn verify

2017-06-22  Jan Nieuwenhuizen  <janneke@gnu.org>

	gdzn: Add run.

2017-06-21  Jan Nieuwenhuizen  <janneke@gnu.org>

	gdzn: verify: WIP.

	gdzn: add parse.

	gdzn: fix prefix for traces.

	gdzn: install gash too. Fixes traces.

	gdzn: add hello.

	gdzn: prefix fix.

2017-06-20  Jan Nieuwenhuizen  <janneke@gnu.org>

	Revert "test framework: start with 'make hello' in stead of 'dzn hello', to remove unwanted session"
	This reverts commit 12ffbff3dee338c36855c4d3b0194f26f147616f.

2017-06-16  Jan Nieuwenhuizen  <janneke@gnu.org>

	test: if GDZN=*dzn*, use dzn for testing.

	test: support running of bin/test from elsewhere; glue bit.

	resurrect dzn traces.

2017-06-15  Rob Wieringa  <Rob.Wieringa@verum.com>

	test: codegen for function returning subint

2017-06-02  Rob Wieringa  <Rob.Wieringa@verum.com>

	WIP: gaiag port binding resolution

2017-06-09  Jan Nieuwenhuizen  <janneke@gnu.org>

	gaiag, gdzn, jsoscm2json, scm2json: factor-out script-preamble.scm

	gdzn: show commands in help.

2017-06-01  Rob Wieringa  <Rob.Wieringa@verum.com>

	gaiag:replace ast:model parameter

2017-05-30  Rob Wieringa  <Rob.Wieringa@verum.com>

	gaiag: replace ast:root object by ast:scope list

2017-05-24  Jan Nieuwenhuizen  <janneke@gnu.org>

	code: c++: glue-top-header-system.

2017-05-18  Jan Nieuwenhuizen  <janneke@gnu.org>

	code: c++03: resurrect --glue=dzn, add test.

2017-05-23  Rutger van Beusekom  <rutger.van.beusekom@verum.com>

	gaiag: c++03: glue: fix void replying events.

2017-05-18  Jan Nieuwenhuizen  <janneke@gnu.org>

	code: snippets: oops: binding

	code: c++03: glue-related fixes.

	test: c++: calling_context.

	code: c++: foreign-source-component.

2017-05-17  Jan Nieuwenhuizen  <janneke@gnu.org>

	code: c++: shell-source-system.

	code: c++: foreign-header.

	code: c++: shell-header.

	code: c++03: use source-system.

2017-05-22  Rob Wieringa  <Rob.Wieringa@verum.com>

	gaiag: optimize norm-event speed

	test: fix Camera c++03 bug in handwritten code

2017-05-19  Rob Wieringa  <Rob.Wieringa@verum.com>

	gaiag: trigger and action .port lazy resolve

2017-05-18  Rob Wieringa  <Rob.Wieringa@verum.com>

	gaiag: use equal? in clone (part 2)

2017-05-17  Rob Wieringa  <Rob.Wieringa@verum.com>

	gaiag: replace make by clone; add-skip: only for declerative

	gaiag: fixup compose-root

2017-05-16  Rob Wieringa  <Rob.Wieringa@verum.com>

	gaiag: set ast:root in tables

2017-05-16  Jan Nieuwenhuizen  <janneke@gnu.org>

	gdzn: code: support -o - for CSP.

2017-05-16  Rob Wieringa  <Rob.Wieringa@verum.com>

	gaiag: equal? in clone; om:equal? is structural

2017-05-15  Rob Wieringa  <Rob.Wieringa@verum.com>

	gaiag: turn .id into pointer

2017-05-16  Rutger van Beusekom  <rutger.van.beusekom@verum.com>

	test: build: skip interface models.

2017-05-16  Jan Nieuwenhuizen  <janneke@gnu.org>

	gdzn: code: support --mangle and CSP.

2017-05-12  Jan Nieuwenhuizen  <janneke@gnu.org>

	test: use gdzn traces.

2017-05-11  Jan Nieuwenhuizen  <janneke@gnu.org>

	gdzn: traces.

	gdzn: verify: WIP

	gaiag: code: resurrect -l scheme.

2017-05-12  Jan Nieuwenhuizen  <janneke@gnu.org>

	resolve: instance: handle resolved tree.

2017-05-11  Rob Wieringa  <Rob.Wieringa@verum.com>

	gaiag: om:equal?

2017-05-10  Rob Wieringa  <Rob.Wieringa@verum.com>

	DISABLE GAIAG TEST-SUITE: TRY AND REVERTME I DARE YOU ;-)

	gaiag: shell: fix name of port from binding.

	gaiag: code: compare types by list-equality

	gaiag: csp: parameterize ast:root for traces command.

	gaiag: c: parameterize ast:root

	gaiag: fix trigger equality; parameterize ast:root for csp; add id to <root>

2017-05-05  Rob Wieringa  <Rob.Wieringa@verum.com>

	gaiag: c++ compose root in resolve.

2017-05-08  Jan Nieuwenhuizen  <janneke@gnu.org>

	code Fix system: init-port.

	code Fix system: init-bind.

2017-04-24  Rob Wieringa  <Rob.Wieringa@verum.com>

	gaiag: resolve system: component instances and bindings

2017-04-28  Jan Nieuwenhuizen  <janneke@gnu.org>

	code: c++: system-component.

	code: c++/c++03: system-header

2017-04-26  Jan Nieuwenhuizen  <janneke@gnu.org>

	gaiag: resolve: expressions.

2017-04-27  Jan Nieuwenhuizen  <janneke@gnu.org>

	test: gaiag: resurrect unit test scaffold.

2017-04-26  Jan Nieuwenhuizen  <janneke@gnu.org>

	gdzn: code: accept --debug.

2017-04-11  Jan Nieuwenhuizen  <janneke@gnu.org>

	gaiag: c++/c++03: templatize #statement. TODO: ->code expressions, types.

2017-04-26  Jan Nieuwenhuizen  <janneke@gnu.org>

	test: namespace: new directory.

	test: import: new directory.

2017-04-25  Jan Nieuwenhuizen  <janneke@gnu.org>

	test: check: run hello/ first.

	table: workaround normalization change affecting table.

2017-04-20  Rutger van Beusekom  <rutger.van.beusekom@verum.com>

	norm: flatten-compound only in declarative part.

2017-04-26  Jan Nieuwenhuizen  <janneke@gnu.org>

	services: code.sh: invoke gdzn code iso composing generator+gaiag.

2017-04-21  Jan Nieuwenhuizen  <janneke@gnu.org>

	test: use gdzn for code.

2017-04-20  Jan Nieuwenhuizen  <janneke@gnu.org>

	gdzn: dzn-compatible direct gaiag command-line.

2017-04-11  Jan Nieuwenhuizen  <janneke@gnu.org>

	make: new target realclean, speed-up om and gaiag build.

2017-04-20  Rob Wieringa  <Rob.Wieringa@verum.com>

	test framework: start with 'make hello' in stead of 'dzn hello', to remove unwanted session

2017-04-25  Rutger van Beusekom  <rutger.van.beusekom@verum.com>

	runtime: c++: simplify timer servicing.

2017-04-21  Rob Wieringa  <Rob.Wieringa@verum.com>

	gaiag: also show formal reference as @

2017-04-20  Rob Wieringa  <Rob.Wieringa@verum.com>

	gaiag: resolve function call

2017-04-18  Rob Wieringa  <Rob.Wieringa@verum.com>

	gaiag: resolve field variable

2017-04-13  Rob Wieringa  <Rob.Wieringa@verum.com>

	gaiag: resolve literal type; replace literal .name by .type

2017-04-11  Rob Wieringa  <Rob.Wieringa@verum.com>

	gaiag: resolve assignment variable

	gaiag: display: show @ only if real reference

2017-03-22  Jan Nieuwenhuizen  <janneke@gnu.org>

	gaiag: resolve ast to use references iso names: <port>.type

	gaiag: ast to use references iso names: <port>.type

2017-04-10  Jan Nieuwenhuizen  <janneke@gnu.org>

	gaiag: use ref@ notation for <variable>.type.

2017-03-27  Jan Nieuwenhuizen  <janneke@gnu.org>

	gaiag: resolve ast to use references iso names: <var>.variable

	gaiag: use <formals> in <trigger>.

	gaiag: remove <trigger> from <action>.

2017-03-24  Jan Nieuwenhuizen  <janneke@gnu.org>

	gaiag: resolve ast to use references iso names: {<signature>,<variable>}.type

2017-03-22  Jan Nieuwenhuizen  <janneke@gnu.org>

	gaiag: remove <port-event>.

	gaiag: remove usage of (om:event model <trigger>).

2017-03-21  Jan Nieuwenhuizen  <janneke@gnu.org>

	gaiag: resolve ast to use references iso names: trigger.event

	gaiag: resolve ast to use references iso names: trigger.port

2017-03-28  Jan Nieuwenhuizen  <janneke@gnu.org>

	gaiag: FIXUP template approach: add-illegals with data param.

2017-02-08  Rutger van Beusekom  <rutger.van.beusekom@verum.com>

	gaiag: c++/c++03: new template approach
	* removes use of define-on

2017-06-12  Rutger van Beusekom  <rutger.van.beusekom@verum.com>

	c++/c++03: container event function parameter.
	* gaiag/runtime/c++/dzn/container.hh:

2017-03-22  Rutger van Beusekom  <rutger.van.beusekom@verum.com>

	c++03: add blocking & async support

2017-04-14  Henk Katerberg  <henk.katerberg@verum.com>

	version: bump back to development.
	* VERSION: Back to development.
	* guix.scm (dezyne.git): Back to development.

2017-07-05  Jan Nieuwenhuizen  <janneke@gnu.org>

	guix: make cleanups.

	daemon: build using installed dezyne-services.

2017-07-04  Jan Nieuwenhuizen  <janneke@gnu.org>

	test: install-test: copy traces.js.

	build: test, install-test: tests content only.

2017-06-29  Jan Nieuwenhuizen  <janneke@gnu.org>

	make: client, daemon, test, install-test.

	test: fix and cleanup dzn file links.

2017-06-20  Jan Nieuwenhuizen  <janneke@gnu.org>

	test: allow DZN override.

2017-06-16  Jan Nieuwenhuizen  <janneke@gnu.org>

	test: support running of bin/test from elsewhere.

2017-06-08  Jan Nieuwenhuizen  <janneke@gnu.org>

	guix: drop dependency checks from configure.

2017-06-08  Paul Hoogendijk  <paul.hoogendijk@verum.com>

	csp: add extra queuefull test

2017-05-17  Rutger van Beusekom  <rutger.van.beusekom@verum.com>

	version: bump services to 2.3.4

2017-05-29  Jan Nieuwenhuizen  <janneke@gnu.org>

	build: guix.scm.

	configure: comment-out emacs, java, javac, gtk+, gtkmm dependencies.

2017-05-29  Rutger van Beusekom  <rutger.van.beusekom@verum.com>

	gaiag scm2json json2scm: rewrite sh to scm

2017-05-17  Rutger van Beusekom  <rutger.van.beusekom@verum.com>

	cs: shell: add missing internal connects.

2017-05-19  Rutger van Beusekom  <rutger.van.beusekom@verum.com>

	cs: runtime: pump: add timer support.

	runtime: c++: fix timer lock.

2017-05-04  Rutger van Beusekom  <rutger.van.beusekom@verum.com>

	runtime: cs: workaround for cs < 4.0 lock keyword

2017-04-10  Rutger van Beusekom  <rutger.van.beusekom@verum.com>

	c++: main: add --debug to enable runtime debugging.

2017-03-28  Rutger van Beusekom  <rutger.van.beusekom@verum.com>

	c++/run: allow illegal in trace

2017-04-18  Paul Hoogendijk  <paul.hoogendijk@verum.com>

	csp: fix reply(var) for integer var

2017-04-06  Paul Hoogendijk  <paul.hoogendijk@verum.com>

	csp: report queue_full for all cases

2017-04-14  Henk Katerberg  <henk.katerberg@verum.com>

	interpreter: Test known issue with unconstrained requires external out event

	version: bump back to development

2017-05-09  Rutger van Beusekom  <rutger.van.beusekom@verum.com>

	version: bump services to 2.3.3

2017-05-08  Rutger van Beusekom  <rutger.van.beusekom@verum.com>

	code: out-binding fix for cs and javascript.

2017-04-13  Ladislau Posta  <ladislau.posta@verum.com>

	version: bump services to 2.3.2

2017-04-10  Henk Katerberg  <henk.katerberg@verum.com>

	interpreter: Deal with namespace in CSP channel prefix

2017-03-30  Henk Katerberg  <henk.katerberg@verum.com>

	interpreter: selection is entire behaviour for 'model is incomplete' error traces

2017-03-20  Henk Katerberg  <henk.katerberg@verum.com>

	regression-test: change test trace for error message documentation

2017-04-10  Rutger van Beusekom  <rutger.van.beusekom@verum.com>

	version: bump services to 2.3.1

2017-04-05  Rutger van Beusekom  <rutger.van.beusekom@verum.com>

	c++/c++-mscv11: fix include dependencies

2017-04-07  Rutger van Beusekom  <rutger.van.beusekom@verum.com>

	cs: add thread safe shell.

	test: shell: force failure without a shell.

2017-04-10  Rutger van Beusekom  <rutger.van.beusekom@verum.com>

	test: aspect: do not retry known failing tests.

2017-04-06  Rob Wieringa  <Rob.Wieringa@verum.com>

	test: remove known issues from all/*/META

2017-03-22  Rob Wieringa  <Rob.Wieringa@verum.com>

	test framework: allow filtering result table

2017-03-21  Rutger van Beusekom  <rutger.van.beusekom@verum.com>

	version: bump client & services to 2.3.0

2017-03-30  Rutger van Beusekom  <rutger.van.beusekom@verum.com>

	c++: calling_context for functions
	  * enable test in regression
	  * fixes scope.name refactoring

2017-03-28  Rutger van Beusekom  <rutger.van.beusekom@verum.com>

	c++: runtime: disable debug by default.

2017-01-20  Rutger van Beusekom  <rutger.van.beusekom@verum.com>

	c++03: resurrect dzn2asd glue.

2017-03-06  Rutger van Beusekom  <rutger.van.beusekom@verum.com>

	gaiag: cs: blocking support.

2017-02-21  Jan Nieuwenhuizen  <janneke@gnu.org>

	gaiag: cs: add coroutine doc.

2017-02-20  Jan Nieuwenhuizen  <janneke@gnu.org>

	gaiag: c++: add coroutine doc.

2017-03-21  Rutger van Beusekom  <rutger.van.beusekom@verum.com>

	test: add c++-msvc11 source ext.

2017-03-07  Jan Nieuwenhuizen  <janneke@gnu.org>

	gaiag: c++: do not generate headers for dzn.async interfaces.
	* gaiag/gaiag/c++.scm (dzn-async?, gaiag-dzn-async?,
	  generator-dzn-async?): New functions.
	* gaiag/gaiag/c++.scm (ast->): Use them to filter-out dzn.async interfaces.

2017-03-20  Rutger van Beusekom  <rutger.van.beusekom@verum.com>

	c++: runtime: async interface declaration.

2017-03-07  Jan Nieuwenhuizen  <janneke@gnu.org>

	gaiag: parse: goops fix for dzn.async interface.

2017-02-14  Jan Nieuwenhuizen  <janneke@gnu.org>

	gaiag: handle normalization of out-bindings (formal <- global).

2017-01-24  Jan Nieuwenhuizen  <janneke@gnu.org>

	gaiag: strictly use goops in ast and ast-handling. TODO: expressions.
	    ('events (event* ...) ...) => (events* (event* ...) ...)
	    ('ports (port* ...) ...)   => (ports* (port* ...) ...)
	    ...
	    ('name scope ... name)     => (scope.name* (scope ...) name)

2017-01-02  Jan Nieuwenhuizen  <janneke@gnu.org>

	gaiag: goops: Implement clone.

2017-01-31  Jan Nieuwenhuizen  <janneke@gnu.org>

	gaiag: Add geiser-guile setup.
	* .dir-locals.el: New file.

2017-01-16  Henk Katerberg  <henk.katerberg@verum.com>

	interpreter: add test for dzn.async.ack -> illegal

2016-12-14  Henk Katerberg  <henk.katerberg@verum.com>

	interpreter: async - report livelock in component
		new file:   ../../test/all/Async_LiveLock/Async_LiveLock.dzn

2017-01-05  Jan Nieuwenhuizen  <janneke@gnu.org>

	gaiag: c++-msvc11: Update meta for rank.
	* gaiag/runtime/c++-msvc11/dzn/meta.hh: Update meta with rank and
	  requires.

	gaiag: c++: shell: rank fixes.
	* gaiag/templates/c++/shell.cc.scm: Update dzn_meta initialization for
	  rank.

2017-01-05  Paul Hoogendijk  <paul.hoogendijk@verum.com>

	test: fix baseline of async_silent

2016-12-13  Jan Nieuwenhuizen  <janneke@gnu.org>

	test: c++, run: async_context: add handwritten main, enable test.

	test: c++: async_ranking: enable test.

2016-12-09  Henk Katerberg  <henk.katerberg@verum.com>

	interpreter: enable run in async regression tests

2016-12-12  Henk Katerberg  <henk.katerberg@verum.com>

	test: async_silent verify output modified by interpreter

2016-11-24  Henk Katerberg  <henk.katerberg@verum.com>

	interpreter: async

2016-12-07  Jan Nieuwenhuizen  <janneke@gnu.org>

	test: async_order, async_order2: replace tmp pump hack by container.

2016-12-07  Paul Hoogendijk  <paul.hoogendijk@verum.com>

	test: add another async-refine ranking test

2016-12-06  Rutger van Beusekom  <rutger.van.beusekom@verum.com>

	c++: async: add ranking.

2016-12-06  Jan Nieuwenhuizen  <janneke@gnu.org>

	gaiag: c++: pump refactor service_timers.

2016-12-12  Henk Katerberg  <henk.katerberg@verum.com>

	test: c++: async_silent: enable test.

2016-12-01  Jan Nieuwenhuizen  <janneke@gnu.org>

	test: c++: async_order2: add handwritten main, enable test.

2016-12-03  Jan Nieuwenhuizen  <janneke@gnu.org>

	test: c++: async_order: add handwritten main, enable test.

2016-12-01  Jan Nieuwenhuizen  <janneke@gnu.org>

	gaiag: c++: async: flush after ack. Allows cancel on callback.

2016-12-03  Jan Nieuwenhuizen  <janneke@gnu.org>

	test: c++: async_simple: add handwritten main, enable test.

2016-12-01  Jan Nieuwenhuizen  <janneke@gnu.org>

	test: c++: async_prio3: add handwritten main, enable test.

	test: c++: async_synccb2: add handwritten main, enable test.

	test: c++: async_synccb: add handwritten main, enable test.

2016-11-23  Jan Nieuwenhuizen  <janneke@gnu.org>

	gaiag: c++: runtime: loop servicing timers and queue. Fixes async race.

2016-12-01  Jan Nieuwenhuizen  <janneke@gnu.org>

	test: c++: async_prio2: add handwritten main, enable test.

	test: c++: async_prio: add handwritten main, enable test.

2016-11-22  Jan Nieuwenhuizen  <janneke@gnu.org>

	gaiag: c++: async-refine: async_hello, async_cancel.

2016-12-12  Paul Hoogendijk  <paul.hoogendijk@verum.com>

	csp: change deadlock check for component to [F] iso [FD] model

	csp: give second ack highest priority if first ack didn't perform cb

2016-12-07  Paul Hoogendijk  <paul.hoogendijk@verum.com>

	csp: remove asserts for dzn async interface

2016-12-05  Paul Hoogendijk  <paul.hoogendijk@verum.com>

	csp: implement silent modeling events

2016-12-02  Paul Hoogendijk  <paul.hoogendijk@verum.com>

	test: add async test for silent transition when a req is out standing

2016-12-01  Paul Hoogendijk  <paul.hoogendijk@verum.com>

	test: add more async-refine tests

2016-11-30  Paul Hoogendijk  <paul.hoogendijk@verum.com>

	test: rewrite test and fix illegal bug

	csp: keep order of ack's same as req's

2016-11-28  Paul Hoogendijk  <paul.hoogendijk@verum.com>

	csp: implement clr on async port correctly

	test: fix baseline

2016-11-25  Paul Hoogendijk  <paul.hoogendijk@verum.com>

	csp: implement prio of async acks

2016-11-23  Henk Katerberg  <henk.katerberg@yahoo.com>

	async test models
		new file:   ../interpreter/test/AsyncRefine.dzn

2016-11-22  Paul Hoogendijk  <paul.hoogendijk@verum.com>

	test: add async-refine tests

2016-11-23  Paul Hoogendijk  <paul.hoogendijk@verum.com>

	csp: hide events of async ports

	csp: allow mangling by renaming added behaviour

2016-11-22  Paul Hoogendijk  <paul.hoogendijk@verum.com>

	csp: add internal-libs behaviour

2016-11-22  Jan Nieuwenhuizen  <janneke@gnu.org>

	gaiag: parse: async-refine: allow port in behaviour.

2016-11-22  Paul Hoogendijk  <paul.hoogendijk@verum.com>

	scm: add ports to behaviour

2016-11-07  Jan Nieuwenhuizen  <janneke@gnu.org>

	gaiag: add --include flag.

2017-03-17  Henk Katerberg  <henk.katerberg@verum.com>

	interpreter: error message review rework

2017-03-16  Henk Katerberg  <henk.katerberg@verum.com>

	test models: enable as many aspects as possible on new interpreter/verification tests

2017-03-14  Henk Katerberg  <henk.katerberg@verum.com>

	interpreter: Error message renamed from 'EVENT not handled' to 'EVENT not performed by component'

2017-02-21  Henk Katerberg  <henk.katerberg@verum.com>

	interpreter: empty behaviour in interface reported as MODEL is incomplete

2017-02-17  Henk Katerberg  <henk.katerberg@verum.com>

	interpreter: Compliance check truncates trace at error; Re-enable live-lock error for components; Override external message when detecting error.

2017-02-01  Henk Katerberg  <henk.katerberg@verum.com>

	interpreter: improve error messages

2017-03-21  Rutger van Beusekom  <rutger.van.beusekom@verum.com>

	test: viewrace: record race on jenkins as KNOWN.

2017-03-20  Paul Hoogendijk  <paul.hoogendijk@verum.com>

	fix race in view command: give higher prio to msg with error

2017-02-20  Jan Nieuwenhuizen  <janneke@gnu.org>

	version: bump daemon 0.0.9.

2017-03-13  Rob Wieringa  <Rob.Wieringa@verum.com>

	test framework: extend with 'known' and 'solved'; update META accordingly; add info to html table.

2017-03-09  Rutger van Beusekom  <rutger.van.beusekom@verum.com>

	test: add link to model file.

	test: aspects: retry (transiently) failed test.

	emacs: rename ~/development.git to ~/development

2017-03-08  Jan Nieuwenhuizen  <janneke@gnu.org>

	test: disable view aspect by default, add view test to make check.

2017-03-07  Jan Nieuwenhuizen  <janneke@gnu.org>

	gaiag: c++03: add newline in mapped foreign include snippet.

2017-03-06  Rutger van Beusekom  <rutger.van.beusekom@verum.com>

	gaiag: c: fix closure declaration clash.

2017-03-02  Rutger van Beusekom  <rutger.van.beusekom@verum.com>

	c++*: runtime: move illegal handler to locator
	  make it available by default

2017-03-01  Rob Wieringa  <Rob.Wieringa@verum.com>

	WF check: add check for nameclash with model name (for c++ codegen)

2017-02-28  Rob Wieringa  <Rob.Wieringa@verum.com>

	WF check: subint min <= max

2017-02-14  Rob Wieringa  <Rob.Wieringa@verum.com>

	WF check: global variable initialization

2017-02-14  Rutger van Beusekom  <rutger.van.beusekom@verum.com>

	version: bump back to development.

2017-02-22  Rutger van Beusekom  <rutger.van.beusekom@verum.com>

	container: shell: force shell pump to stop before container pump is destroyed.

2017-02-17  Rutger van Beusekom  <rutger.van.beusekom@verum.com>

	version: bump services to 2.2.1

	c++: fix 7275

2017-02-16  Rutger van Beusekom  <rutger.van.beusekom@verum.com>

	regression-test: add shell.

	test-clients: add previous daemon version.

2017-02-15  Rutger van Beusekom  <rutger.van.beusekom@verum.com>

	test-clients: isolate config, increase verbosity

2017-02-14  Rutger van Beusekom  <rutger.van.beusekom@verum.com>

	version: bump back to development.

	version: bump client 2.2.0, daemon 0.0.8, service 2.2.0.

2017-01-05  Jan Nieuwenhuizen  <janneke@gnu.org>

	gaiag: om: Update instance and port-bind getters.
	* gaiag/gaiag/om.scm (om:instance): Accept <bind> and <port>.
	  (om:port-bind): Accept <port>.

	gaiag: c++: shell: trace fixes.
	* gaiag/templates/c++/shell.cc.scm: Use it to set unititialized port
	  meta of instance.  Fixes trace.
	* test/all/shell/META: Skip all languages except for c++ and c++-msvc11.

	test: Allow selecting of c++-msvc11.
	* test/lib/languages.js: Add c++-msvc11.  Required for selecting it.
	* test/lib/aspects.js (meta): Filter-out c++-msvc11 as default language.

2017-01-20  Rutger van Beusekom  <rutger.van.beusekom@verum.com>

	c++: state tracing @ return

2017-01-16  Rutger van Beusekom  <rutger.van.beusekom@verum.com>

	c++: runtime: fix koenig lookup.

2016-12-08  Rutger van Beusekom  <rutger.van.beusekom@verum.com>

	c++: foreign base class separate #include with newline.

2016-12-12  Jan Nieuwenhuizen  <janneke@gnu.org>

	gaiag: c++: cast model parameter to void.

	gaiag: c++/c++03: fix enum-typed event in foreign component.

2016-12-07  Jan Nieuwenhuizen  <janneke@gnu.org>

	test: lego-main: replace tmp pump hack with container.

2016-11-15  Rutger van Beusekom  <rutger.van.beusekom@verum.com>

	simplify lego make, update code for foreign base class.

2016-11-10  Rutger van Beusekom  <rutger.van.beusekom@verum.com>

	c++03: runtime: resolve overload ambiguity.

2016-10-25  Rutger van Beusekom  <rutger.van.beusekom@verum.com>

	c++: state tracing

2016-11-03  Jan Nieuwenhuizen  <janneke@gnu.org>

	test: base session from 100. Fixes unintended daemon interaction.

	gaiag: main: use incremental argument numbering for c, c++, javascript.

2016-10-24  Rutger van Beusekom  <rutger.van.beusekom@verum.com>

	c++: Camera: use foreign base class.

2016-10-20  Rutger van Beusekom  <rutger.van.beusekom@verum.com>

	c++03: foreign baseclass.

2016-10-10  Rutger van Beusekom  <rutger.van.beusekom@verum.com>

	c++: abstract base class

2016-10-03  Rutger van Beusekom  <rutger.van.beusekom@verum.com>

	c++: calling_context

2016-11-03  Jan Nieuwenhuizen  <janneke@gnu.org>

	gaiag: norm-event: rewrite-formals: do not reverse order of formals.

2016-10-21  Rutger van Beusekom  <rutger.van.beusekom@verum.com>

	gaiag: norm-event: Rename argument shadowing member.

2016-10-12  Jan Nieuwenhuizen  <janneke@gnu.org>

	gaiag: code: use norm-event.

2016-10-06  Jan Nieuwenhuizen  <janneke@gnu.org>

	gaiag: code: declare-io: any->string, <signature>, <formals> and lexicals.

2016-09-05  Jan Nieuwenhuizen  <janneke@gnu.org>

	gaiag: tiny C: fold runtime_event into call_in.

	gaiag: tiny C: DZN_ILLEGAL.

2016-08-29  Rutger van Beusekom  <rutger.van.beusekom@verum.com>

	gaiag: tiny c.

2016-09-24  Jan Nieuwenhuizen  <janneke@gnu.org>

	gaiag: switch to goops.

2016-10-12  Jan Nieuwenhuizen  <janneke@gnu.org>

	gaiag: json-table: handle <var> in expression.

2016-10-06  Jan Nieuwenhuizen  <janneke@gnu.org>

	gaiag: resolve: bugfix: externs in expressions.

2016-10-11  Jan Nieuwenhuizen  <janneke@gnu.org>

	gaiag: resolve: remove dead code.

2016-10-12  Jan Nieuwenhuizen  <janneke@gnu.org>

	gaiag: goops: is-a?/om:declarative? fix.

2016-10-11  Jan Nieuwenhuizen  <janneke@gnu.org>

	gaiag: goops: have .name, .functions .variables .types handle #f.

2016-10-06  Jan Nieuwenhuizen  <janneke@gnu.org>

	gaiag: goops: dzn: use make <> to synthesize ast objects.

2016-09-24  Jan Nieuwenhuizen  <janneke@gnu.org>

	gaiag: goops: revert avoidance of generics.

2016-10-10  Jan Nieuwenhuizen  <janneke@gnu.org>

	gaiag: goops: normalize: handle blocking.

	gaiag: goops: create generic equal? to use list semantics.

2016-09-24  Jan Nieuwenhuizen  <janneke@gnu.org>

	gaiag: goops: resurrect.

2016-10-10  Jan Nieuwenhuizen  <janneke@gnu.org>

	gaiag: animate: always work on cloned module; allows nested use.

	gaiag: animate: also handle guile module exceptions.

2016-10-06  Jan Nieuwenhuizen  <janneke@gnu.org>

	gaiag: animate: parameterize any->string.

2016-10-05  Jan Nieuwenhuizen  <janneke@gnu.org>

	gaiag: animate: gracefully handle error in eval too.

	gaiag: animate: better error messages.

2017-01-26  Henk Katerberg  <henk.katerberg@verum.com>

	interpreter: refactor error reporting, ProgramStep-kind 'error' in trace
		modified:   ../seqdiag.cpp

		modified:   ../seqdiag.cpp

		modified:   interpreter/seqdiag.cpp

		modified:   seqdiag.cpp

		modified:   interpreter/MicroTrace.cpp
		modified:   interpreter/MicroTrace.hpp
		modified:   interpreter/seqdiag.cpp

2016-12-15  Paul Hoogendijk  <paul.hoogendijk@verum.com>

	verify: hide port.silent events from trace of fdr (Zoho #7168)

2016-10-13  Jan Nieuwenhuizen  <janneke@gnu.org>

	gaiag: csp: update unit test.

2016-10-12  Paul Hoogendijk  <paul.hoogendijk@verum.com>

	csp: share processes more among different asserts (speedup)

2016-12-02  Rob Wieringa  <Rob.Wieringa@verum.com>

	c++: fix bad_function exception blocking out param

2016-12-08  Rutger van Beusekom  <rutger.van.beusekom@verum.com>

	c++: system: delete duplicate component includes.

	c++/c++-msvc11: initialize meta.ports_connected in system.

	c++-mscv11: support foreign base class.

2016-11-22  Jan Nieuwenhuizen  <janneke@gnu.org>

	gaiag: reader: better model-not-found error.

2016-10-18  Jan Nieuwenhuizen  <janneke@gnu.org>

	gaiag: code: fix setting of c++ as default language.

	gaiag: gaiag.scm: do not exit in interactive mode.

2016-12-07  Rutger van Beusekom  <rutger.van.beusekom@verum.com>

	test: examples: add helloworld.

2016-11-30  Rob Wieringa  <Rob.Wieringa@verum.com>

	set VERSION to 'devleopment' for development release

2016-12-01  Paul Hoogendijk  <paul.hoogendijk@verum.com>

	generator: fix selection of named model in case of namespaces

2016-12-01  Jan Nieuwenhuizen  <janneke@gnu.org>

	test: aspects: clean out before creating symlink tree [WAS: plain cp].

2016-11-23  Jan Nieuwenhuizen  <janneke@gnu.org>

	test: aspects: skip dzn traces if handwritten trace is present.

2016-09-26  Jan Nieuwenhuizen  <janneke@gnu.org>

	test: Injected: drain stdin.

2016-09-20  Jan Nieuwenhuizen  <janneke@gnu.org>

	test: resurrect Injected (c, c++, c++03).

2016-11-18  Jan Nieuwenhuizen  <janneke@gnu.org>

	version: service=master.
	* VERSION:

2016-12-08  Paul Hoogendijk  <paul.hoogendijk@verum.com>

	version: service 2.1.3

2016-11-03  Paul Hoogendijk  <paul.hoogendijk@verum.com>

	csp: stop reporting livelocks for events via inevitable/optional for external interfaces

2016-11-15  Jan Nieuwenhuizen  <janneke@gnu.org>

	version: bump daemon 7, service 2.1.2.
	* VERSION:

2016-11-16  Rutger van Beusekom  <rutger.van.beusekom@verum.com>

	test: clients x daemons

2016-09-26  Paul Hoogendijk  <paul.hoogendijk@verum.com>

	csp: livelock: unhide missing events from trace by fdr2

2016-09-20  Rob Wieringa  <Rob.Wieringa@verum.com>

	test framework: make NOLOG appear read in html

2016-09-20  Paul Hoogendijk  <paul.hoogendijk@verum.com>

	csp implicite illegal: change IIG to IG for out events of required ports

2016-09-20  Jan Nieuwenhuizen  <janneke@gnu.org>

	test: remove Handle.

	test: set timeout 10s.

2016-09-19  Jan Nieuwenhuizen  <janneke@gnu.org>

	test: c,c++: handwritten main: drain stdin.

2016-09-08  Jan Nieuwenhuizen  <janneke@gnu.org>

	guix: move packages to guix repo.

2016-09-06  Jan Nieuwenhuizen  <janneke@gnu.org>

	guix: build from git.

2016-09-19  Paul Hoogendijk  <paul.hoogendijk@verum.com>

	csp: fix mangling issue with namespaces

2016-09-19  Rutger van Beusekom  <rutger.van.beusekom@verum.com>

	test: otherwiseNested: enable code

	test: re-enable Dataparam; cs connect fix.

	version: bump & cleanup

	c++: shell: capture this and out parameters by reference and the rest by value.

2016-09-16  Jan Nieuwenhuizen  <janneke@gnu.org>

	gaiag: code: add completeness illegals.

2016-09-09  Paul Hoogendijk  <paul.hoogendijk@verum.com>

	test: LegoBallSorter: update handwritten code to new c code structure

2016-09-13  Rutger van Beusekom  <rutger.van.beusekom@verum.com>

	client: disable commands: export, user

	server: export: require phantomjs.

2016-09-07  Rutger van Beusekom  <rutger.van.beusekom@verum.com>

	gaiag: csp: remove completeness check for components.

2016-09-06  Paul Hoogendijk  <paul.hoogendijk@verum.com>

	norm: fix issue with nested otherwise

2016-09-06  Rutger van Beusekom  <rutger.van.beusekom@verum.com>

	version: bump: 2.1

	c++03: remove blocking support (requires c++11).

2016-09-01  Rob Wieringa  <Rob.Wieringa@verum.com>

	convert: add -I flag; add test

2016-09-02  Rutger van Beusekom  <rutger.van.beusekom@verum.com>

	test: random trace selecion only from out.

	test: update baseline: replace all/ with out/

2016-09-01  Rob Wieringa  <Rob.Wieringa@verum.com>

	test: copy test input to out, allows convert.

2016-08-31  Jan Nieuwenhuizen  <janneke@gnu.org>

	Revert "test: change Injected example"
	This reverts commit b43ffbedf399b5fad3381568fa747b11ec0072d9.

2016-08-25  Paul Hoogendijk  <paul.hoogendijk@verum.com>

	test: change Injected example

2016-08-17  Henk Katerberg  <henk.katerberg@yahoo.com>

	interpreter: refactor error handling/reporting
		modified:   ../MicroTrace.cpp
		modified:   ../MicroTrace.hpp
		modified:   ../seqdiag.cpp

		modified:   ../seqdiag.cpp

		modified:   ../MicroTrace.cpp
		modified:   ../MicroTrace.hpp
		modified:   ../ModelState.cpp
		modified:   ../ModelState.hpp
		modified:   ../StateVector.cpp
		modified:   ../StateVector.hpp
		modified:   ../seqdiag.cpp

		modified:   ../ModelState.cpp
		modified:   ../ModelState.hpp

		modified:   ../interpreter/seqdiag.cpp
		modified:   all/Alarm/baseline/verify/Alarm.stderr
		modified:   all/ConsumeMultiple/baseline/verify/ConsumeMultiple.stderr
		modified:   all/GarageDoorControlErr/baseline/verify/GarageDoorControlErr.stderr
		modified:   all/IgnoreNotification/baseline/verify/IgnoreNotification.stderr
		modified:   all/MultipleOutEventsOnSingleTau/baseline/verify/MultipleOutEventsOnSingleTau.stderr
		modified:   all/QTriggerModeling/baseline/verify/QTriggerModeling.stderr
		modified:   all/SimpleBlockingDeadlock/baseline/verify/SimpleBlockingDeadlock.stderr
		modified:   all/SimpleBlockingDeadlock2/baseline/verify/SimpleBlockingDeadlock2.stderr
		modified:   all/SimpleBlockingGuard/baseline/verify/SimpleBlockingGuard.stderr
		modified:   all/SimpleBlockingTwoReply/baseline/verify/SimpleBlockingTwoReply.stderr
		modified:   all/StartDevices/baseline/verify/StartDevices.stderr
		modified:   all/asyncasync_illegal/baseline/verify/asyncasync_illegal.stderr
		modified:   all/asyncasync_illegal2/baseline/verify/asyncasync_illegal2.stderr
		modified:   all/component_deadlock_fail0/baseline/verify/component_deadlock_fail0.stderr
		modified:   all/component_deadlock_fail1/baseline/verify/component_deadlock_fail1.stderr
		modified:   all/component_deterministic_fail0/baseline/verify/component_deterministic_fail0.stderr
		modified:   all/component_deterministic_fail1/baseline/verify/component_deterministic_fail1.stderr
		modified:   all/component_illegal_fail0/baseline/verify/component_illegal_fail0.stderr
		modified:   all/interface_deadlock_fail0/baseline/verify/interface_deadlock_fail0.stderr
		modified:   all/interface_deadlock_fail1/baseline/verify/interface_deadlock_fail1.stderr

		modified:   ../MicroTrace.cpp
		modified:   ../MicroTrace.hpp
		modified:   ../seqdiag.cpp

		modified:   ../ModelState.cpp
		modified:   internalConsistencyTest.reference.out

2016-07-20  Rutger van Beusekom  <rutger.van.beusekom@verum.com>

	c++: shell: remove extraneous comma.

	c++-msvc11: add symlink to c++/pump.cc

2016-08-09  Henk Katerberg  <henk.katerberg@yahoo.com>

	test/all c++03: generated main, skip blocking tests
		modified:   all/Injected/main.cc

2016-08-04  Paul Hoogendijk  <paul.hoogendijk@verum.com>

	test: fix crash due to skipping of selected aspect

2016-08-03  Paul Hoogendijk  <paul.hoogendijk@verum.com>

	csp: add automatic addition of unhandled events (as illegal) guranteeing completeness

2016-07-19  Jan Nieuwenhuizen  <janneke@gnu.org>

	csp: compute guards-by-trigger alist.

2016-07-14  Jan Nieuwenhuizen  <janneke@gnu.org>

	csp: move split-valued-void to norm-state.

	gaiag: csp: refactor behaviour->csp.

2016-08-02  Henk Katerberg  <henk.katerberg@yahoo.com>

	interpreter: execute incomplete component models
		modified:   ../interpreter/test/seqdiagReference/OutEventSetReply.net.seqdiag
		modified:   ../interpreter/test/seqdiagReference/blocking_RequireExplicitValuedReply.net.seqdiag
		modified:   ../interpreter/test/seqdiagReference/blocking_RequireExplicitVoidReply.net.seqdiag
		modified:   ../interpreter/test/seqdiagReference/incomplete.net.seqdiag
		modified:   all/GarageDoorControlErr/baseline/verify/GarageDoorControlErr.stderr
		modified:   all/Incomplete/baseline/verify/Incomplete.stderr
		modified:   all/SimpleBlockingDeadlock/baseline/verify/SimpleBlockingDeadlock.stderr
		modified:   all/SimpleBlockingDeadlock2/baseline/verify/SimpleBlockingDeadlock2.stderr
		modified:   all/SimpleBlockingGuard/baseline/verify/SimpleBlockingGuard.stderr
		modified:   all/component_queuefull_fail0/baseline/verify/component_queuefull_fail0.stderr
		modified:   all/coverageMissing/baseline/verify/coverageMissing.stderr
		modified:   all/h/baseline/verify/h.stderr

		modified:   ../interpreter/ModelState.cpp
		modified:   ../interpreter/ModelState.hpp

2016-07-26  Henk Katerberg  <henk.katerberg@yahoo.com>

	codegen: c++03 execute and triangle pass regression test
		modified:   ../gaiag/templates/c++03/main.cc.scm
		new file:   lib/build.c++03.make

		modified:   ../gaiag/templates/c++03/main.cc.scm
		new file:   all/Forward/Forward.dzn
		new file:   lib/build.c++03.make
		new file:   regression-test/Forward

2016-07-25  Henk Katerberg  <henk.katerberg@yahoo.com>

	codegen: c++03 build pass all regression tests
		modified:   ../gaiag/templates/c++03/component.cc.scm

2016-07-22  Henk Katerberg  <henk.katerberg@yahoo.com>

	c++03 runtime and code-gen pass regression tests

2016-07-13  Rutger van Beusekom  <rutger.van.beusekom@verum.com>

	test: c++03: add c++03 to regression-test + fixes for Injected in c++03.

	test: aspects: handle skipping language while being explicitly supplied via command line.

2016-07-19  Henk Katerberg  <henk.katerberg@yahoo.com>

	gaiag: cs: move component's runtime info into Runtime.info.

	gaiag: cs: remove Interface inheritance.

2016-07-19  Rob Wieringa  <Rob.Wieringa@verum.com>

	test: add RecursiveImport test

	test framework: add trivial view test

2016-07-15  Henk Katerberg  <henk.katerberg@yahoo.com>

	dzn traces: interface model traces without model name; regression-test: skip weak illegal interface model run

2016-07-14  Jan Nieuwenhuizen  <janneke@gnu.org>

	test: META build updates.

	test: change interface model: cannot execute to cannot build.

	test: regression-test: add new symlinks.

	test: remove old handwritten traces.

	test: move regression-nocode to all/ and symlinks in regression-test and verify/.

2016-07-13  Rutger van Beusekom  <rutger.van.beusekom@verum.com>

	VERSION: services: switch to development.

2016-07-12  Jan Nieuwenhuizen  <janneke@gnu.org>

	gaiag: cs: use dzn.global namespace instead of dzn.Global class. Fixes externaltypes.

2016-07-13  Jan Nieuwenhuizen  <janneke@gnu.org>

	test: fix shadow model naming, META, symlinking.

	test: add shadow_local_shadow, rename Reply5.

2016-07-12  Jan Nieuwenhuizen  <janneke@gnu.org>

	gaiag: cs: support bool and int reply.

	gaiag: cs, java: type-int: use int.

	gaiag: cs, javascript: alias snippet typo.

	test: cs: update handwritten code.

	test: cs: skip Camera: no main, lock is keyword.

	test: cs: skip blocking.

	gaiag: cs: push base, locator, runtime into dzn namespace.

2016-07-11  Jan Nieuwenhuizen  <janneke@gnu.org>

	gaiag: cs: implement --flush.

2016-07-12  Jan Nieuwenhuizen  <janneke@gnu.org>

	test: aspects: hack to remove `ERROR' from command line.

2016-07-08  Jan Nieuwenhuizen  <janneke@gnu.org>

	test: enable cs.

2016-07-12  Rutger van Beusekom  <rutger.van.beusekom@verum.com>

	c: runtime: add meta.h

	c: put system under test and fix CONNECT.

	c++: pump.hh: msvc11 workaround

2016-07-11  Rob Wieringa  <Rob.Wieringa@verum.com>

	test: add import tests to regression-test

	test framework: add import test with errors

	test framework: add import test without errors

2016-07-04  Rob Wieringa  <Rob.Wieringa@verum.com>

	test framework: create out sub dir before writing outcome

2016-06-29  Rutger van Beusekom  <rutger.van.beusekom@verum.com>

	release: VERSION: bump.

	Revert "test: Camera: put execute of c++ under test."
	This reverts commit 5027eb5fd756ea4e5505f775ee7d3e50b2a866d4.

2016-06-29  Henk Katerberg  <henk.katerberg@yahoo.com>

	interpreter: lifeline order

2016-06-29  Rutger van Beusekom  <rutger.van.beusekom@verum.com>

	test: aspects: capture command in output.

	test: Camera: put execute of c++ under test.

2016-06-28  Ladislau Posta  <ladislau.posta@verum.com>

	update baseline of some tests after fixes of Henk

2016-06-28  Jan Nieuwenhuizen  <janneke@gnu.org>

	gaiag: support guile-2.0.

	gaiag: resurrect coverage.

	gaiag: list: remove collect.

2016-06-28  Paul Hoogendijk  <paul.hoogendijk@verum.com>

	csp: exclude divergence as non-determinism cause

2016-06-28  Rob Wieringa  <Rob.Wieringa@verum.com>

	test framework: put target in html title

	test framework: five table smaller font

2016-06-27  Jan Nieuwenhuizen  <janneke@gnu.org>

	tests: MultipleProvides: remove META.

	javascript: put locator, rt, meta and runtime info in ._dzn object.

2016-06-27  Paul Hoogendijk  <paul.hoogendijk@verum.com>

	test: add MultipleProvides example

	test: add MultipleProvides example

2016-06-27  Rob Wieringa  <Rob.Wieringa@verum.com>

	test framework: handle missing outcome.json

	test framework: replace '+' by 'p' in hrefs, to avoid broken links

2016-06-24  Rutger van Beusekom  <rutger.van.beusekom@verum.com>

	test: externaltypes: fix model to pass wellformedness check for #arguments.

	test: Recursion: add META to skip run and execute.

	c++-msvc11: add missing runtime.cc symlink.

2016-06-24  Rob Wieringa  <Rob.Wieringa@verum.com>

	test framework: refactor html

	test framework: remove unused css info

	test framework: refactor table test; prevent information loss

	test framework: add better coloring in html

	test framework: ensure status sorting is fixed in all tests

	test framework: in html make selected outcome details green/red upon selection

2016-06-23  Paul Hoogendijk  <paul.hoogendijk@verum.com>

	parser: check that events definition in component has same number of parameters as defined in interfaces

2016-06-23  Rob Wieringa  <Rob.Wieringa@verum.com>

	test: aspects: split status from output in outcome.

	test framework: outcome matrix fixed + some bugs fixed

	test framework: output matrix

2016-06-23  Rutger van Beusekom  <rutger.van.beusekom@verum.com>

	daemon: html/css: make background white everywhere (Guillermo's suggestion).

2016-06-22  Rutger van Beusekom  <rutger.van.beusekom@verum.com>

	example: Alarm: move siren.turnoff, remove redundant state Triggered.

2016-06-22  Jan Nieuwenhuizen  <janneke@gnu.org>

	test: set ulimit on spawn.

2016-06-21  Rutger van Beusekom  <rutger.van.beusekom@verum.com>

	Revert "test: use -j4 as a temporary attempt to work around out-of-memory on build4."
	This reverts commit 035813c2d80fbab30c4d4b0aa1b86e1e2d761aba.

2016-06-20  Rutger van Beusekom  <rutger.van.beusekom@verum.com>

	test: aspects: write outcome.json containing test status and output per aspect[,language]

2016-06-21  Jan Nieuwenhuizen  <janneke@gnu.org>

	test: use -j4 as a temporary attempt to work around out-of-memory on build4.

	gaiag: c: blocking: use #error blocking not supported (WAS: assert).

	test: coverageMissing, emptyBehaviour: undo verify baseline merge.

	test: parse: re-add directory, fix wheel, share baseline with verify.

2016-06-20  Jan Nieuwenhuizen  <janneke@gnu.org>

	test: blocking/block: identify as blocking, add META skipping c.

	test: disable execute on blocking deadlock models.

	test: c: Camera: skip; no handwritten main and stubs.

	test: c: Dataparam: update handwritten main.

	gaiag: c: use INT_MIN as invalid int/enum value.

	test: META: do not skip traces for systems.

2016-06-20  Rutger van Beusekom  <rutger.van.beusekom@verum.com>

	c: main: extension of meta and fixes to pass all but one regression tests.

	gaiag: traces: silently skip traces for system.

2016-06-18  Jan Nieuwenhuizen  <janneke@gnu.org>

	test: enable c.

	gaiag: c: support --flush. WIP

	test: blocking: add skip for c-language.

	test: shadow: identify as blocking.

	test: lib/aspects.js: support skip by language, skip-specific comment.

	gaiag: c: blocking: add missing templates that fail with assertion.

	gaiag: c: support bool and int.

2016-06-17  Jan Nieuwenhuizen  <janneke@gnu.org>

	VERSION: set to 2.0.0.rc1.

2016-06-16  Rob Wieringa  <Rob.Wieringa@verum.com>

	test: add tail and non-tail recursion example

2016-06-15  Rutger van Beusekom  <rutger.van.beusekom@verum.com>

	test: client/daemon: replace shell with scm.

	test: client/daemon: install/upgrade.

2016-06-14  Rutger van Beusekom  <rutger.van.beusekom@verum.com>

	test: verify: update stderr baseline with change in annotation/index.

2016-06-14  Rob Wieringa  <Rob.Wieringa@verum.com>

	test WF: split messages over two lines

2016-06-14  Rutger van Beusekom  <rutger.van.beusekom@verum.com>

	test: aspects: drop timeout on run.

2016-06-13  Rutger van Beusekom  <rutger.van.beusekom@verum.com>

	test: make: increase parallelism from 4 to 16.

	test: aspects: go parallel for everything but run and verify.

2016-06-14  Jan Nieuwenhuizen  <janneke@gnu.org>

	test: IChoice: not an error model.

2016-06-13  Jan Nieuwenhuizen  <janneke@gnu.org>

	norm-state: csp-norm-state: flatten before passdown-on. Fixes IChoice.

2016-06-14  Jan Nieuwenhuizen  <janneke@gnu.org>

	test: bin/test: support running on leaf, i.e.: bin/test all/IChoice.

2016-06-13  Rutger van Beusekom  <rutger.van.beusekom@verum.com>

	test: util: add copy of Array.find

2016-06-09  Rutger van Beusekom  <rutger.van.beusekom@verum.com>

	test: make: add -j4

2016-06-13  Rutger van Beusekom  <rutger.van.beusekom@verum.com>

	test: extend parallel_n with session, fixes non deterministic failures of run.

2016-06-11  Rutger van Beusekom  <rutger.van.beusekom@verum.com>

	test: aspects: verify: echo verify output clearly.

	test: aspects: run: stop hanging dzn run with a timeout.

	test: example: GarageDoorControl: cannot compile incomplete system, skip c++.

2016-06-13  Paul Hoogendijk  <paul.hoogendijk@verum.com>

	examples: add example for External and Blocking

2016-06-10  Jan Nieuwenhuizen  <janneke@gnu.org>

	test: verify: update stderr baseline (some indexes added).

	test: error: remove asyncsync, add coverageMissing, emptyBehaviour.

	test: util: spawn_sync_shell: print "\r" instead of CR.

	test: verify: add stderr baseline newly linked error models.

	test: error: add missing error model links.

2016-06-09  Jan Nieuwenhuizen  <janneke@gnu.org>

	test: bring verify with parse errors under test.

	Revert "test: make: add -j4"
	This reverts commit acccaf088ccb45cf2f920ca2db3d2ca0f0cc5aa2.

	test: aspects: verify: fail upon non-zero exit.

2016-06-08  Rob Wieringa  <Rob.Wieringa@verum.com>

	test WF: add blocking with multiple provides

2016-06-09  Rutger van Beusekom  <rutger.van.beusekom@verum.com>

	test: make: add -j4

2016-06-08  Jan Nieuwenhuizen  <janneke@gnu.org>

	test: regression-test: add symlinks lost by flattening.

	test: add assert/ grouping.

	test: SynchronousLivelock,livelock2,silentoptional,single_tau_to_multiple_tau_should_not_refine: add error symlink, update verify trace.

	test: bin/stress: remove illegal from trace.

2016-06-08  Rob Wieringa  <Rob.Wieringa@verum.com>

	test WF: add blocking with multiple provides

2016-06-08  Rutger van Beusekom  <rutger.van.beusekom@verum.com>

	test: move all tests flattened into all; add toplevel groupings with symlinks.

	test: verify: update baseline.

2016-06-07  Rutger van Beusekom  <rutger.van.beusekom@verum.com>

	test: remove non failure baseline.

	test: parse: update baseline of typeerror and replyRequiredPort.

2016-06-07  Jan Nieuwenhuizen  <janneke@gnu.org>

	test: LegoBallSorter, DezyneApplication: remove `empty' baseline.

2016-06-07  Rutger van Beusekom  <rutger.van.beusekom@verum.com>

	test: add converter test.

	javascript: main: fix type error in type_helper, fixes boolnot.

	test: h: update baseline.

	test: move typeerror to parser tests.

	test: util.spawn: add NODE_PATH env var, fixes missing fibers.

	test: META: skip traces for all error models.

	test: range_runaway: update baseline.

	test: asyncsync_illegal: update baseline.

2016-06-07  Jan Nieuwenhuizen  <janneke@gnu.org>

	test: inner_space, name_space, simple_space: set model name, enable run.

	test: lib/code.make: use symlinks for runtime.

2016-06-07  Rutger van Beusekom  <rutger.van.beusekom@verum.com>

	test: use pipe in stead of file for diff.

	test: add --jobs option.

2016-06-06  Jan Nieuwenhuizen  <janneke@gnu.org>

	test: all/assert: tfw compliance fixes, baseline update.

2016-06-06  Rob Wieringa  <Rob.Wieringa@verum.com>

	test: parse: add comment to META

	test WF: add '<-' test

2016-06-06  Rutger van Beusekom  <rutger.van.beusekom@verum.com>

	test: h: sort completeness message.

	test: StartDevices: add META.

	test: run tests in parallel up to 4.

	test: skip aspect which has a skipped dependency.

	test: make verbose default, add summary option.

2016-06-06  Jan Nieuwenhuizen  <janneke@gnu.org>

	/services/root/fs/share/examples/index.txt: move, resurrect.

	test: index.txt: resurrect.

	test: add comment to skip, move failing test to test/todo, v2.

	test: add comment to skip, move failing test to test/todo.

2016-06-06  Rutger van Beusekom  <rutger.van.beusekom@verum.com>

	test: print comment when skipped.

	test: extend with failure expectation, fixes SimpleBlockingTwoReply, removes ls_files_recursively.

2016-06-06  Rob Wieringa  <Rob.Wieringa@verum.com>

	Revert "test: parser: negate value of exit status."
	This reverts commit 63b4882fd8c0183feede8077f7e7351ddea9b918.

	test parser: fix baselines

2016-06-06  Jan Nieuwenhuizen  <janneke@gnu.org>

	VERSION: bump to 4. This will trigger 1.3.x daemon upgrade.

2016-06-04  Jan Nieuwenhuizen  <janneke@gnu.org>

	test: bin/test: apply-append harder; fixes exit code.

	test: bin/test: also stop at dir/run.

	test: parser: negate value of exit status.

	test: skip of exucute instead of languages. Fixes skipping everything.

	test: bin/test: remove parent-or-child restriction, recurse into tree.

2016-06-03  Jan Nieuwenhuizen  <janneke@gnu.org>

	test: add DezyneApplication, fix /share/examples and stress test.

	test: move error-test to all, enable in regression-test.

	test: import async.

	test: remove autocryocycle.project.

	test: import parser.

	test: import verification.

	test: import shadow, remove unnecessary handwritten main.

	test: import Injected.

	test: import Dataparam.

	test: modify baseline of GarageDoorControlErr: now .error is not performed (WAS: .reset).

	test: import "examples". PUZZLE: 8/15 fail to produce code.

	test: javascript: support handwritten main.

	test: lib/aspects.js, lib/code.make, lib/build.c++.make: support handwritten main.

	test: regression/*.dzn: remove already-`moved' files.

	test: all/blocking: import from regression. Also enable in regression-test.

	test: all/assert: import from regression, also enable in regression-test.

2016-06-03  Rutger van Beusekom  <rutger.van.beusekom@verum.com>

	test: refactor and fix random_selection.

2016-06-03  Jan Nieuwenhuizen  <janneke@gnu.org>

	.init.el: dzn-setup-devel: setup server and daemon buffers.

	Examples: rename examples/Lego to examples/LegoBallSorter. Fixes dir = <main>.dzn.

2016-06-03  Rutger van Beusekom  <rutger.van.beusekom@verum.com>

	c++: shell: capture in arguments by value.

	test: add missing q, should fix: no traces found.

	test: add debug to no traces error.

2016-06-03  Henk Katerberg  <henk.katerberg@yahoo.com>

	test interpreter: forking

2016-06-03  Rutger van Beusekom  <rutger.van.beusekom@verum.com>

	test: killme harder.

	test: fix check for no traces available.

2016-06-02  Rutger van Beusekom  <rutger.van.beusekom@verum.com>

	test: remove console.log.

	test: replace 'ERROR' with -1, fixes JSON.parse(undefined).

2016-06-02  Jan Nieuwenhuizen  <janneke@gnu.org>

	test: check: use AlarmSystem as AlarmSytem (was: Alarm hack). Disable run.

	test: aspects: read traces from dir iso baseline.

	tet: regression-test/boolnot: skip for javascript. FIXME.

	test: aspects: allow skipping of language.

	gaiag: javascript: main: handle boolean and integer return values.

	test: unify/simplify command line interface between test and run.

	test: remove ENOENT error printing if no handwritten trace is present.

	test: strip, or do not prepend, cwd from, or to, all file names.

2016-06-02  Henk Katerberg  <henk.katerberg@yahoo.com>

	regression-test: move verification error models to error-test

2016-05-27  Henk Katerberg  <henk.katerberg@yahoo.com>

	interpreter: add module test to regression test set
		new file:   seqdiag-unit

2016-06-02  Jan Nieuwenhuizen  <janneke@gnu.org>

	gaiag: javascript: main: remove port from reply value.

2016-06-01  Jan Nieuwenhuizen  <janneke@gnu.org>

	gaiag: javascript: main: fix log_valued.

	test: move incomplete.dzn (model with verification error) to error-test/.

	test: regression-test/{inner_space,name_space,simple_space}: skip RUN.

	test: lib/aspects.js: allow setting of model for run.

	gaiag: javascript: --flush: fix DataVariables, Handle.

2016-06-01  Rob Wieringa  <Rob.Wieringa@verum.com>

	test: resurrect jan's code for maximum nr runs (default 50)

	test: handle multiple languages in TFW

	test: handle multiple languages in TFW

	test: add 'LANGUAGE' to code.make

2016-05-31  Rob Wieringa  <Rob.Wieringa@verum.com>

	test: rewrite aspects to output parameters

2016-05-30  Rob Wieringa  <Rob.Wieringa@verum.com>

	test: make list of items unique (preventing duplicate execution)

2016-05-31  Jan Nieuwenhuizen  <janneke@gnu.org>

	gaiag: table-state: do not crash on empty file.

2016-05-27  Maarten van de Waarsenburg  <maarten.van.de.waarsenburg@verum.com>

	Allow command-line execution of html.js (json2html) and txt.js (json2txt)

2016-05-31  Jan Nieuwenhuizen  <janneke@gnu.org>

	configure: find version tuplets harder. Fixes texinfo-6's texi>>2<<any.

2016-05-30  Jan Nieuwenhuizen  <janneke@gnu.org>

	test: regression-test/silentoptional: add baseline with livelock failure.

	test: regression-test/Incomplete: sort events in baseline. Makes test pass.

	test: bin/test: use out/ as default report output location.

	test: regression-test/livelock2: Update baseline: we now have a livelock

	test: bin/reorder: more robust incomplete sorting. Fixes `incomplete.dzn'.

2016-05-30  Jan Nieuwenhuizen  <janneke@gnu.org>

	test: move h/h.dzn (model with verification error) to error-models/, note:
	See diff below:

	  * The model is incomplete.  bin/reorder now sorts the list of completed events.

	  * The simulator now reports: ctrl.operate not performed; was: ctrl.stop.

	  diff -uwB /home/janneke/src/verum/development/test/regression-test/h//baseline/verify/h <(/home/janneke/src/verum/development/test/lib/../../client/bin/dzn --verbose verify --all -m h /home/janneke/src/verum/development/test/regression-test/h//h.dzn | /home/janneke/src/verum/development/test/lib/../bin/reorder)
	  --- /home/janneke/src/verum/development/test/regression-test/h//baseline/verify/h	2016-05-28 23:07:08.884659803 +0200
	  +++ /dev/fd/63	2016-05-30 16:21:43.890957047 +0200
	  @@ -5,14 +5,14 @@
	   ITransfer.tcalibrate
	   ITransfer.tcalibrated
	   ITransfer.return
	  -ITransfer is incomplete: 'ITransfer.move,ITransfer.transfer,ITransfer.tcalibrate' not handled
	  +ITransfer is incomplete: 'ITransfer.move,ITransfer.tcalibrate,ITransfer.transfer' not handle' not handled
	   verify: ITransfer: check: deadlock: ok
	   verify: ITransfer: check: livelock: ok
	   verify: h: check: deterministic: ok
	   verify: h: check: completeness: fail
	  -h is incomplete: 'ctrl.stop,robot.placed,robot.arrived,ctrl.operate,robot.picked' not handled
	  +h is incomplete: 'ctrl.operate,ctrl.stop,robot.arrived,robot.picked' not handle,robot.placed' not handled
	   verify: h: check: illegal: ok
	   verify: h: check: deadlock: ok
	   verify: h: check: compliance: fail
	  -ctrl.stop not performed by component
	  +ctrl.operate not performed by component
	   verify: h: check: livelock: ok
	  verify[h]: [FAILED]

2016-05-30  Jan Nieuwenhuizen  <janneke@gnu.org>

	test: move typeerror (model with verification error) to error-models/.

	test: move QTriggerModeling (model with verification error) to error-models/.

	test: move ConsumeMultiple (model with verification error) to error-models/.

	test: bin/reorder: sort incompleteness events.

	test: add meta.max property to restrict number of apsect:run traces; default=50.

	test/GNUmakefile: re-enable regresion test.

2016-05-30  Rutger van Beusekom  <rutger.van.beusekom@verum.com>

	test: make: drop smoke and test target, --verbose by default.

2016-05-30  Jan Nieuwenhuizen  <janneke@gnu.org>

	test/GNUmakefile: skip regression test.

	VERSION: add comment about branch/release.

2016-05-30  Rob Wieringa  <Rob.Wieringa@verum.com>

	test: introduce new META format + default value

2016-05-30  Ladislau Posta  <ladislau.posta@verum.com>

	set Dezyne commandline client and service version to 2.0.0

2016-05-29  Jan Nieuwenhuizen  <janneke@gnu.org>

	test: resurrect writing of in-memory-accumulated-log output.

	test: rename SKIP to META.

	test/lib/aspects.js: use run --strict. Fixes ConsumeMultiple.

	test/regression-test: add SKIP files with --flush option.

	test/lib/aspects.js: Implement --flush parameter on execute and traces.

	test: GNUmakefile: enable running regression-test.

	test/bin/test: skip `baseline' directory. Allows running regression-test.

	test: check: add SKIPs.

	test/bin/test: move --target option to FILE argument. Remove some globals.

	test/lib/aspects: implement SKIP; experiment with parameters.

	test/bin/test: filter on DIR or .dzn file. Avoids readdir on file and processing SKIP, *.trace.

2016-05-28  Rutger van Beusekom  <rutger.van.beusekom@verum.com>

	c++: main: add synchronous required out event support.

2016-05-27  Rutger van Beusekom  <rutger.van.beusekom@verum.com>

	test: mv run from lib to bin

	test: fixed various bugs

2016-05-27  Maarten van de Waarsenburg  <maarten.van.de.waarsenburg@verum.com>

	Created test targets and harmonised status output

2016-05-27  Rob Wieringa  <Rob.Wieringa@verum.com>

	test: aspects: avoid double work; protect execute and run with timeout; make traces non parallel

2016-05-26  Rutger van Beusekom  <rutger.van.beusekom@verum.com>

	test: aspects: implement run, like execute.

	test: execute: all available traces.

	test: make: fail on undefined parameters.

2016-05-28  Jan Nieuwenhuizen  <janneke@gnu.org>

	configure: hack for chrooted build.

	configure: enable guild check. Add emacs and texinfo for documentation.

2016-05-26  Rutger van Beusekom  <rutger.van.beusekom@verum.com>

	test: make: fix prerequisites renaming

	test: aspects: failing verify with empty expection display output.

2016-05-26  Rob Wieringa  <Rob.Wieringa@verum.com>

	test: replace fs.access by util.writable

2016-05-26  Rutger van Beusekom  <rutger.van.beusekom@verum.com>

	test: aspects: sort aspects alphabetically

	test: output test.html by default.

	test: make: assume running server, check with dzn hello.

	test: put output property back in test result, fix error path in test.

2016-05-26  Jan Nieuwenhuizen  <janneke@gnu.org>

	test: remove duplicate all/block2.

2016-05-25  Jan Nieuwenhuizen  <janneke@gnu.org>

	test: check: move content to all, resurrect check target using symlinks.

	test: exec: do a trace diff.

2016-05-25  Rutger van Beusekom  <rutger.van.beusekom@verum.com>

	test: make Controller pass

	test: make: enable html output.

2016-05-25  Jan Nieuwenhuizen  <janneke@gnu.org>

	test: re-enable server stress test.

	test: all/Controller: import. TODO: script this, see all/Controller/README.

	test: c++: support globals.h.

	test: print command that gets spawned. allows testing manually.

	test: javascript mode.

	test: use node [WAS: nodeJS]. Fixes running on Guix.

2016-05-25  Rutger van Beusekom  <rutger.van.beusekom@verum.com>

	test: allow make and make test in test dir to run new framework verbosely and quietly respectively.

	test: output start and end of test in a visually discernable and consistent manner.

	test: remove old polling q.delay run and show stdout/stderr in realtime

	test: put script in bin and make it run from there

	test: initial commit of node js based test framework

2016-05-24  Rob Wieringa  <Rob.Wieringa@verum.com>

	gaiag: code: handle portless reply in function.

2016-05-23  Rutger van Beusekom  <rutger.van.beusekom@verum.com>

	c++: remove port from reply event generated main reply match.

2016-05-20  Jan Nieuwenhuizen  <janneke@gnu.org>

	test/makefile: FIXME disable stress test. Allows deployment on development.

2016-05-17  Paul Hoogendijk  <paul.hoogendijk@verum.com>

	javascript: remove supferfluous space between ! and expression

	javascript: do not generate multiple requires of same interface

2016-05-13  Jan Nieuwenhuizen  <janneke@gnu.org>

	test: bump timeout. fixes build3 builds.

	test: package.json: add fibers.

2016-05-12  Jan Nieuwenhuizen  <janneke@gnu.org>

	FIXME: test/regression/blocking/makefile.make: disable some c++ failing tests...

2016-05-13  Jan Nieuwenhuizen  <janneke@gnu.org>

	test: BlockedSystem4: fix Blocked to verify. Fixes javascript.

2016-05-12  Jan Nieuwenhuizen  <janneke@gnu.org>

	gaiag: javascript: propagete return values.

2016-05-10  Jan Nieuwenhuizen  <janneke@gnu.org>

	gaiag: runtime: javascript: implement blocking, using fibers.

2016-05-12  Jan Nieuwenhuizen  <janneke@gnu.org>

	test/regression/examples/index.txt: sort alphabetically.

2016-05-10  Jan Nieuwenhuizen  <janneke@gnu.org>

	gaiag: javascript: runtime: remove valued_helper. Fixes valued returns.

2016-05-09  Jan Nieuwenhuizen  <janneke@gnu.org>

	gaiag: javascript: support bool as reply type.

2016-05-07  Jan Nieuwenhuizen  <janneke@gnu.org>

	daemon: Debugger with model and util-broker component, like Editor.

2016-05-06  Jan Nieuwenhuizen  <janneke@gnu.org>

	gaiag: javascript: refactor runtime call_in/out.

2016-05-03  Jan Nieuwenhuizen  <janneke@gnu.org>

	test: inject.project: enable again.

	test/regression/examples: generate index.txt to aid list-examples.

2016-05-02  Rutger van Beusekom  <rutger.van.beusekom@verum.com>

	test: make: use replace depends with code --depends.

	daemon: depends: use output option, update rename dezyne to dzn

2016-04-19  Paul Hoogendijk  <paul.hoogendijk@verum.com>

	bug: not equal for normalize (second)

	bug: not equal for normalize

2016-04-11  Rutger van Beusekom  <rutger.van.beusekom@verum.com>

	WIP

	add check_bindings.

2016-04-11  Jan Nieuwenhuizen  <janneke@gnu.org>

	gaiag: javascript: add meta.ports and meta.children.

2016-05-04  Henk Katerberg  <henk.katerberg@yahoo.com>

	C# runtime support for uninitialized data variables

2016-04-20  Jan Nieuwenhuizen  <janneke@gnu.org>

	gaiag: csp: fix reply(b).

2016-04-12  Jan Nieuwenhuizen  <janneke@gnu.org>

	c++: add <map> include to interface.c++.scm for to_<enum>. Fixes trip.cc.

2016-04-07  Rutger van Beusekom  <rutger.van.beusekom@verum.com>

	c++: get rid of redundant includes in interface.

2016-04-12  Rutger van Beusekom  <rutger.van.beusekom@verum.com>

	c++: punp: fix member initialization order.

2016-04-12  Jan Nieuwenhuizen  <janneke@gnu.org>

	test: remove triangle traces.

2016-04-12  Rutger van Beusekom  <rutger.van.beusekom@verum.com>

	gaiag: code: syntactic sugar for port prefix on reply.

2015-12-08  Rutger van Beusekom  <rutger.van.beusekom@verum.com>

	c++: runtime: library solution for generated main.

2016-03-08  Rutger van Beusekom  <rutger.van.beusekom@verum.com>

	c++: decouple generated code from pump

2016-03-30  Jan Nieuwenhuizen  <janneke@gnu.org>

	gaiag: code: shell: handle systems with internal bindings.

2016-03-18  Jan Nieuwenhuizen  <janneke@gnu.org>

	configure: check for guile.

	test: fix make regression.

	guix: full build of guix-vm on Ubuntu 15.10.

2016-03-19  Jan Nieuwenhuizen  <janneke@gnu.org>

	client-version: 1.3.0

2016-03-18  Maarten van de Waarsenburg  <maarten.van.de.waarsenburg@verum.com>

	Remove guild from checks in configure

2016-03-17  Maarten van de Waarsenburg  <maarten.van.de.waarsenburg@verum.com>

	Rule out check on fdr2

2016-03-16  Jan Nieuwenhuizen  <janneke@gnu.org>

	guix: support for plain guix-0.9.0.

	configure: handle /bin/sh is not bash.

2016-03-15  Jan Nieuwenhuizen  <janneke@gnu.org>

	guix: update split-package support.

2016-03-14  Jan Nieuwenhuizen  <janneke@gnu.org>

	VERSION: set SERVICE_VERSION=<branch name>.

2016-03-01  Jan Nieuwenhuizen  <janneke@gnu.org>

	services: split off from server.

2016-03-08  Rob Wieringa  <Rob.Wieringa@verum.com>

	WF: add test for new check for infinite system recursion

2016-03-02  Jan Nieuwenhuizen  <janneke@gnu.org>

	configure: play nice with guix-0.9.0 and g++ on Ubuntu.

2016-02-21  Jan Nieuwenhuizen  <janneke@gnu.org>

	guix: (dezyne-server-release): new variable.

2016-02-22  Jan Nieuwenhuizen  <janneke@gnu.org>

	makefile: run configure if .config.mk is of date.

2016-02-21  Jan Nieuwenhuizen  <janneke@gnu.org>

	configure: check for fakechroot.

2016-02-20  Jan Nieuwenhuizen  <janneke@gnu.org>

	configure: check for fdr2

2016-02-24  Rutger van Beusekom  <rutger.van.beusekom@verum.com>

	VERSION: client 1.3.1, daemon 0.0.3.

2016-02-23  Rob Wieringa  <Rob.Wieringa@verum.com>

	set VERSION to 1.3.0

2016-02-13  Jan Nieuwenhuizen  <janneke@gnu.org>

	gaiag: use alists instead of hash-tables for json throughout.

	json/builder.scm: create objects from alists.

2016-02-19  Rob Wieringa  <Rob.Wieringa@verum.com>

	OM parser: fix WF crashes due to attempts to recover from earlier syntax errors

2016-02-18  Jan Nieuwenhuizen  <janneke@gnu.org>

	gaiag:code: Use namespace dzn throughout, move headers into dzn/.

	gaiag: c++03: runtime.cc: use ! iso `not'.

2016-02-13  Jan Nieuwenhuizen  <janneke@gnu.org>

	dezyne.scm: remove tclxml, now upstream.

2016-02-12  Jan Nieuwenhuizen  <janneke@gnu.org>

	dezyne.scm: remove tcllib, now upstream.

	guix: use default configure.

	configure: add support for --prefix, --sysconfdir.

2016-02-15  Jan Nieuwenhuizen  <janneke@gnu.org>

	dezyne.scm: support guix build.

2016-02-14  Jan Nieuwenhuizen  <janneke@gnu.org>

	verify: do not assume bash lives in /bin.

2016-02-12  Jan Nieuwenhuizen  <janneke@gnu.org>

	make: have-db-p, test-db: new targets.

	gaiag: (system): remove module, now upstream.

	support tarball builds.

2016-02-14  Jan Nieuwenhuizen  <janneke@gnu.org>

	guile/json/tarball

2016-02-07  Jan Nieuwenhuizen  <janneke@gnu.org>

	gaiag: simplify build.

2016-02-08  Rob Wieringa  <Rob.Wieringa@verum.com>

	WF check: repair baseline

	WF: removeredundent check

	WF: add check for portless reply when multiple ports are involved

2016-02-09  Jan Nieuwenhuizen  <janneke@gnu.org>

	client/daemon: standardize messages further, use daemon_api, websockets:
	client:

	    {post:{
	      command: {
		name: string,
		options: {},
		flles: [],
	      },
	      auth: {
		user: string,
		password: string,
		ticket: string,
	      },
	      client: {
		name: 'dzn',
		version: string,
	      },
	      url: string,  // 'http://localhost:3000',
	      debug: false|true
	    }
	    ,
	    read:{name:string,content:string},
	   }

	daemon:
	   {
	     post:{
	      auth: {ticket:ticket}
	      type: error|install|progress|result
	      command:{
		name: string
		status: int
		stderr: string
		stdout: string
		files: []
	      }}
	     ,
	     read:{name:string},
	   }

2016-02-10  Henk Katerberg  <henk.katerberg@yahoo.com>

	parser: nested namespaces shorthand allow more than 1 deep
		new file:   shorthandNamespace/parse

2016-02-09  Jan Nieuwenhuizen  <janneke@gnu.org>

	configure: ps.

2016-02-08  Jan Nieuwenhuizen  <janneke@gnu.org>

	convert: stable daemon-client interface: [stdin,] stdout, stderr, files, status.

2016-02-07  Jan Nieuwenhuizen  <janneke@gnu.org>

	configure: add perl and python.

	use space after shebang.

	configure: add bash, make, w3m.

	make dist: new target.

	configure: check for dot.

2016-02-05  Jan Nieuwenhuizen  <janneke@gnu.org>

	stable daemon-client interface: [stdin,] stdout, stderr, files, status.

2016-02-04  Jan Nieuwenhuizen  <janneke@gnu.org>

	add support for dependable guix builds.

2016-02-03  Henk Katerberg  <henk.katerberg@yahoo.com>

	verify: csp robust against bool and int reply in void event

2016-01-29  Rob Wieringa  <Rob.Wieringa@verum.com>

	add markdown to configure

2016-01-25  Jan Nieuwenhuizen  <janneke@gnu.org>

	daemon: split-out into separate dzn-daemon package.

2016-01-21  Jan Nieuwenhuizen  <janneke@gnu.org>

	client/server: redo versioning.

2016-02-02  Paul Hoogendijk  <paul.hoogendijk@verum.com>

	csp: fix issue with async required out during a blocking call

	csp: for "on <out event>:" take first provided port if port is omitted for reply

	test: add external tests

2016-01-27  Paul Hoogendijk  <paul.hoogendijk@verum.com>

	csp: external: make all out events of external port asynchronous

2016-01-19  Paul Hoogendijk  <paul.hoogendijk@verum.com>

	csp: external: have queue per external port

2015-08-26  Jan Nieuwenhuizen  <janneke@gnu.org>

	gaiag: (.type): rename from .component.

2016-01-22  Jan Nieuwenhuizen  <janneke@gnu.org>

	test: block: update.

2016-01-21  Jan Nieuwenhuizen  <janneke@gnu.org>

	gaiag: c++: int reply.

	gaiag: code: fix reply of subint expression.

2016-01-14  Jan Nieuwenhuizen  <janneke@gnu.org>

	gaiag: javascript: main: use --flush.

2016-01-21  Jan Nieuwenhuizen  <janneke@gnu.org>

	test: blocking: move to regression, quick check with (c++) and without blocking.

2016-01-21  Rob Wieringa  <Rob.Wieringa@verum.com>

	Wellformedness: check for bindings with external

2016-01-19  Paul Hoogendijk  <paul.hoogendijk@verum.com>

	test: add test for testing silent transitions in (provided) interface test: add test for type error (wrong enum reply for event)

	csp: external: have queue per external port

	test: add baseline GarageDoorControl

2016-01-19  Jan Nieuwenhuizen  <janneke@gnu.org>

	client: use executable name `node' for nodejs [WAS: nodejs].

2016-01-18  Jan Nieuwenhuizen  <janneke@gnu.org>

	dezyne-client: create npm package.

2015-08-26  Jan Nieuwenhuizen  <janneke@gnu.org>

	gaiag: (.type): rename from .component.

2016-01-19  Rob Wieringa  <Rob.Wieringa@verum.com>

	Wellformedness: check for multiple provides + reply in function

2016-01-09  Jan Nieuwenhuizen  <janneke@gnu.org>

	gaiag: python: bool and int reply.

2016-01-13  Paul Hoogendijk  <paul.hoogendijk@verum.com>

	csp: add support for external.

2016-01-13  Jan Nieuwenhuizen  <janneke@gnu.org>

	gaiag: support external on ports.

2016-01-13  Paul Hoogendijk  <paul.hoogendijk@verum.com>

	add type_error fix issues with bool and int

	c++: fix issue with to_string for enums and bools

	test: add ThreadSynchronization to baseline

2016-01-10  Jan Nieuwenhuizen  <janneke@gnu.org>

	test: update baseline.

	csp: handle assignment, fixes updated addint.dzn and boolnot.dzn.

2016-01-08  Jan Nieuwenhuizen  <janneke@gnu.org>

	csp: handle reply of member variable, fixes updated boolnot.dzn.

2016-01-07  Paul Hoogendijk  <paul.hoogendijk@verum.com>

	csp: add support of events with integer type

	csp: implement boolean events using data constructor

2016-01-07  Jan Nieuwenhuizen  <janneke@gnu.org>

	gaiag: code: support int as reply type.

2016-01-06  Jan Nieuwenhuizen  <janneke@gnu.org>

	gaiag: c++: main.cc.scm: update handle bool.

	gaiag: parse: grok reply().

	parser: cleanup bool event, better failing typecheck message.

	test: VERBOSE=runtime debugging.

2016-01-05  Jan Nieuwenhuizen  <janneke@gnu.org>

	parsers, code, csp: allow bool as event return.

	gaiag: runtime: goops: (locator): usability fixes.

2016-01-14  Jan Nieuwenhuizen  <janneke@gnu.org>

	test: disable debug printing.

2015-12-16  Rutger van Beusekom  <rutger.van.beusekom@verum.com>

	gaiag: implement --glue=asd for ASML:LOPW.

2016-01-06  Paul Hoogendijk  <paul.hoogendijk@verum.com>

	reenable real livelock check for interfaces allow for silent transitions in interfaces (was broken for provided interfaces)

2016-01-05  Henk Katerberg  <henk.katerberg@yahoo.com>

	Blocking example passes regression test

2015-12-18  Henk Katerberg  <henk.katerberg@yahoo.com>

	examples: add purpose to ThreadSynchronization.dzn

	examples: blocking thread synchronization

2015-12-16  Jan Nieuwenhuizen  <janneke@gnu.org>

	test: top level target fixes.

	gaiag: typo.

	gaiag: goops: (om:declarative?, (is-a <statement>)): align with list backend. Fixes VM.

	gaiag: run: typo.

2015-12-15  Jan Nieuwenhuizen  <janneke@gnu.org>

	gaiag: c++: glue: refactor templates.

2015-12-16  Jan Nieuwenhuizen  <janneke@gnu.org>

	test: add --html baseline.

	dzn --html: preserve spaces and line breaks.

2015-12-09  Jan Nieuwenhuizen  <janneke@gnu.org>

	dzn: table: add --html option.

2015-12-02  Jan Nieuwenhuizen  <janneke@gnu.org>

	daemon: serve localhost:4000/run: static trace.

2015-12-14  Jan Nieuwenhuizen  <janneke@gnu.org>

	test: move new files from regression/parse to regression/parser.

2015-12-14  Buildmaster  <buildmaster@verum.com>

	Increase version from 1.2.1 to 1.2.2

2015-12-14  Jan Nieuwenhuizen  <janneke@gnu.org>

	test: bin/reorder: sort models. Fixes race in verify results. Update baseline, ran:
	    for i in $(find . -path */verify/*); do set -x; cat $i | bin/reorder > $i.r; mv $i.r $i; done

	test: resurrect `make regression'.

	Revert "fix baseline for GarageDoorControlErr"
	This reverts commit 5284c2a1a8254bae77e4ce9b9b3ac5273d925946.

	Revert "remove autocryocycle completely."
	This reverts commit 4188ea421f33f6d852d059e28bc4754606b0f1fc.

2015-12-11  Jan Nieuwenhuizen  <janneke@gnu.org>

	test: fixes for make <subdir>.

	test: fix toplevel targets, fix files and project run target leakage.

2015-12-14  Buildmaster  <buildmaster@verum.com>

	Increase version from 1.2.0 to 1.2.1

2015-12-12  Rutger van Beusekom  <rutger.van.beusekom@verum.com>

	remove autocryocycle completely.

2015-12-12  Ladislau Posta  <ladislau.posta@verum.com>

	fix baseline for GarageDoorControlErr

2015-12-11  Maarten van de Waarsenburg  <maarten.van.de.waarsenburg@verum.com>

	Increase version from 1.1.0 to 1.2.0

2015-12-11  Rutger van Beusekom  <rutger.van.beusekom@verum.com>

	test: make: run: pass name in name.project to dzn run -m.

	c++: revert shadowing problem introduced by: 0dc33c02d.

2015-12-11  Rob Wieringa  <Rob.Wieringa@verum.com>

	add WF tests

2015-12-10  Ladislau Posta  <ladislau.posta@verum.com>

	resolve baseline for regression example

2015-12-09  Ladislau Posta  <ladislau.posta@verum.com>

	finalize list of testable examples for release

2015-12-10  Henk Katerberg  <henk.katerberg@yahoo.com>

	lego: changed pump in main

2015-12-10  Ladislau Posta  <ladislau.posta@verum.com>

	remove reference to old Alarm project

2015-12-09  Jan Nieuwenhuizen  <janneke@gnu.org>

	gaiag: table: json: do not attempt to evaluate <call>. Fixes TouchSensor.

2015-12-09  Ladislau Posta  <ladislau.posta@verum.com>

	remove wrapped components and system component for now

	finalize list of testable examples for release

2015-12-09  Jan Nieuwenhuizen  <janneke@gnu.org>

	gaiag: table: json: do not attempt to evaluate <action>. Fixes StartDevices.

	test: regression/examples: Add Alarm without Alarm.trace.2.

	test: regression/examples: remove broken examples, update baseline.

	test: support symlinking of directories. Fixes examples/Lego etc.

2015-10-14  Jan Nieuwenhuizen  <janneke@gnu.org>

	test: convert: add example project.

2015-12-08  Ladislau Posta  <ladislau.posta@verum.com>

	add Alarm.dzn to the examples even if it fails - needed by stress test

	ensure a first set of testable set of publishable examples

2015-12-08  Jan Nieuwenhuizen  <janneke@gnu.org>

	test: ressurect fei, lopw. fix table-update, verify-update.

2015-12-07  Jan Nieuwenhuizen  <janneke@gnu.org>

	test: simplify target naming scheme, add `make list', support `make -C subdir'.

	test: only generate dependencies necessary for the current target.

	client/, server/: move to toplevel. Removes published examples not under test.

2015-12-07  Rutger van Beusekom  <rutger.van.beusekom@verum.com>

	c++: runtime: remove valued_helper, another refactoring removing distinction between void and valued for.

	c++: runtime: shell: do not distinguish between void and valued.

2015-12-07  Jan Nieuwenhuizen  <janneke@gnu.org>

	test: update BlockedSystem4 trace.

2015-12-07  Rutger van Beusekom  <rutger.van.beusekom@verum.com>

	c++: runtime: refactor distinction void and valued reply.

2015-12-07  Ladislau Posta  <ladislau.posta@verum.com>

	updated backlog with bug found on Monday the 7th of December related to shared type definitions

2015-12-02  Jan Nieuwenhuizen  <janneke@gnu.org>

	test: add blocking to trip.

2015-12-03  Rutger van Beusekom  <rutger.van.beusekom@verum.com>

	c++: runtime: use bind in stead of a lambda in combination std::forward<Args>(args)...

2015-12-02  Jan Nieuwenhuizen  <janneke@gnu.org>

	gaiag: json-table, state-table: use <var>==<value> for subint states (WAS: <var>.<value>).

2015-12-03  Rutger van Beusekom  <rutger.van.beusekom@verum.com>

	c++: remove dependency on runtime.hh from header files.

	c++: string-to-enum: throw exception in stead of returning an invalid enum value.

	c++: locator: prevent -Wshadow warnings.

	c++: pump: allow and_wait to deduce the return type.

2015-12-02  Jan Nieuwenhuizen  <janneke@gnu.org>

	test: trip: add blocking.

	test: regression: fixes.

	gaiag: json-table: use simulator's evaluate for subint states. Fixes some i.<unknown>s.

2015-12-01  Rob Wieringa  <Rob.Wieringa@verum.com>

	test: correct baseline WF check on illegal

2015-12-01  Jan Nieuwenhuizen  <janneke@gnu.org>

	gaiag: code: c++: add gratituous parentheses around AND. Fixes obnoxious suggest parentheses around-warning.

	gaiag: code: c++: remove line breaks from compound expressions.

	gaiag: c++: cast parameter aliases to void. Fixes unused variable-warnings.

	webapp: state-diagram/dot: add missing nodes. Fixes state diagram for some incomplete models.

	test: update baseline.

	test: examples-alarm.project: remove handwritten mains and stubs.

	gaiag: dzn: bugfix for void return.

	gaiag: html: true,false: add missing snippets. Fixes some state/event tables.

	gaiag: json-table: (json-next): fix next state list for deep illegals.

	gaiag: json-table: (json-next): recurse into blocking; fixes next state.

	gaiag: code: c++: initialize reply values. Fixes trip.dzn; i.e., undefined behaviour for missing reply().

	test: alarm.project: remove handwritten code.

	test: update baseline.

	gaiag: dzn: bugfix for instances.

	test: bugs: add voidenum.dzn.

	test: check: add trip.dzn.

	test: alarm.project: update system test.

	test: BlockedSystem4: enable.

	test: disable explicit duplicate triangle runs.

2015-11-30  Jan Nieuwenhuizen  <janneke@gnu.org>

	test: no code for examples/Stage.dzn.

	test: run: add traces, disable failing tests.

	test: shadow.project: update system test.

	test: lego.project: update system test.

	test: glue.project: update system test.

	test: examples-alarm.project: update system test.

	test: dezynesystem.project: update system test.

	test: dataparam.project: update handwritten main and trace.

	test: alarm.project: update handwritten main for new code2fdr.

	test: blocking: move new regression/*blocking* to blocking.

	test: blocking: add verify and run.

	test: make timeout configurable.

	gaiag: code: c++: main: remove pump from internals.

	gaiag: code: main: remove SHELL.

	gaiag: code: main: return-assert thinko.

	gaiag: code: main: refactored, use --flush.

2015-11-27  Rutger van Beusekom  <rutger.van.beusekom@verum.com>

	c++: runtime: cleanup

2015-11-30  Rutger van Beusekom  <rutger.van.beusekom@verum.com>

	test: fei: replace specific data types by int.

	c++: pump: main: input events from stdin while blocking main thread.

2015-11-29  Jan Nieuwenhuizen  <janneke@gnu.org>

	test: use timeout 0.01; fail rather than hang.

	main.cc.scm: use pump.and_wait together with pump.next_event. Some success.

2015-11-25  Jan Nieuwenhuizen  <janneke@gnu.org>

	pump: next_event

2015-11-29  Jan Nieuwenhuizen  <janneke@gnu.org>

	main.cc.scm: [BLOCKING]: use pump.and_wait. BREAKS `make blocking'

2015-11-26  Jan Nieuwenhuizen  <janneke@gnu.org>

	test: only c++.

	test: move blocking to toplevel; use: make blocking.

	gaiag: code: main, test: code2dr: allow system port.event input-output tracing.

	gaiag: main: allow instance.port.event system input-output traces.

	test: split into check (default, fast) and regression. Support make -C some/dir.

2015-11-25  Jan Nieuwenhuizen  <janneke@gnu.org>

	gaiag: code: ignore blocking on required ports.

	gaiag: code: c++: support blocking required ports. Fixes SimpleBlocking3.dzn

	REVERT: create interfaces on the fly. Need for test: fei/lopw, breaks alarm.project.

2015-11-24  Jan Nieuwenhuizen  <janneke@gnu.org>

	test: fei. Add AxisComp.dzn. TODO: --shell. Use: make FEI=true triangle

2015-09-29  Jan Nieuwenhuizen  <janneke@gnu.org>

	lopw: create interfaces on the fly simplify use to: make LOPW=true

2015-09-01  Jan Nieuwenhuizen  <janneke@gnu.org>

	all traces, no --illegal

2015-08-31  Jan Nieuwenhuizen  <janneke@gnu.org>

	LOPW traces hack. Run twice: (1st time fails bo dependencies)
	    make lopw CODE_LANGUAGES=c++ CXXFLAGS="-Wall -std=c++11 -Iregression/lopw -include globals.h"

2015-11-24  Jan Nieuwenhuizen  <janneke@gnu.org>

	test: run simulator also for blocking tests.

2015-11-26  Rutger van Beusekom  <rutger.van.beusekom@verum.com>

	c++: runtime: add collateral blocking
	     i.e. block an event directed at the provided port of a component which is already blocked on a required port.

2015-11-27  Rutger van Beusekom  <rutger.van.beusekom@verum.com>

	test: make: expose errors in pipelines in make recipes.

	c++: runtime: cleanup

	c++: runtime: do not expose context member on coroutine.

	test: lego: remove local pump.o from projeck.make, fixes link error.

	c++: pump: avoid propagation of the unwind exception.

	c++: pump: refactoring + cleanup commented out asserts.

	c++: pump: remove level string on create_context.

2015-11-26  Rutger van Beusekom  <rutger.van.beusekom@verum.com>

	c++: runtime: add collateral blocking
	     i.e. block an event directed at the provided port of a component which is already blocked on a required port.

2015-11-25  Ladislau Posta  <ladislau.posta@verum.com>

	change not to ! in main.cc of camera project to ensure that project compiles also in visual studio 2013

	ensure that the right main.cc file is present for the camera project

2015-11-23  Jan Nieuwenhuizen  <janneke@gnu.org>

	test: update baseline for event tables with blocking.

	gaiag: norm-event: passdown-blocking. Fixes state and event tables with blocking.

	gaiag: html: mark blocking as keyword.

	test: regression/SyncPedal: add trace. Enables testing code and run. FIXME: compliance error

	test: examples/muliple_provides: add trace. Enables testing code and run.

	test: examples/ReplyTwo: add trace. Enables testing code and run.

	test: examples/Sensor: add trace. Enables testing code and run.

	test: examples/ErrorPattern: add trace. Enables testing code and run.

	test: remove obsolete baseline.

	test: Alarm: add <flush> to trace. FIXME: many traces may lack <flush>.

	gaiag: code: c++,c++03: main: silence warning.

	gaiag: code: c++,c++03: [!BLOCKING]: update generated main and meta wrt <flush>.

	test: lego.project: resurrect c++03.

	test: use symlinks for local runtime.

	gaiaig: c++03: remove dezyne::component from runtime.

2015-11-21  Jan Nieuwenhuizen  <janneke@gnu.org>

	test: lego: update meta.

	test: SimpleBlocking{,2,Binding,TwoReply}: add trace and baseline.

	test: DirectAndDeferredReply: fix syntax error, add actual baseline.

	gaiag: code: c++: glue: update meta. Fixes test:glue.project.

	gaiag: code: fix infamous formal parameter shadowing member + test.

	gaiag: code: c++: main: create component c before pump. Fixes segfault.

	verify.js: fdr, modelchecker, simulator: add line buffering. Fixes non-determinism.

	gaiag: c++: runtime: compile fixes.

	gaiag: code: disable __ASD_VoidReply hack.

2015-11-20  Jan Nieuwenhuizen  <janneke@gnu.org>

	gaiag: code: c++: avoid parameter hiding port name.

	test: guardifnest: new test to match ifnest.

	gaiag: code: c++: runtime: use DEBUG_RUNTIME (WAS: DEBUG).

	gaiag: code: c++: runtime: add missing include.

	gaiag: c++: runtime: update from m2lib.

	gaiag: code: reproduce and fix FEI AxisComp.dzn's if-wrap-compound bug.

	gaiag: c++: pump: compile fix.

2015-11-20  Rutger van Beusekom  <rutger.van.beusekom@verum.com>

	gaiag: c++: add runtime instance to shell

	gaiag: c++: shell: construct pump after everything else, i.e. destroy it before everything else.

2015-11-20  Jan Nieuwenhuizen  <janneke@gnu.org>

	gaiag: code: c++: dump_tree: typo

2015-11-19  Jan Nieuwenhuizen  <janneke@gnu.org>

	gaiag: c++: runtime: update from m2lib

2015-11-16  Jan Nieuwenhuizen  <janneke@gnu.org>

	gaiag: c++: shell: add own pump, ie one per thread safe shell.

	gaiag: pump: allow more in one process.

	gaiag: c++: pump: handle pumping from pump.

2015-11-16  Rutger van Beusekom  <rutger.van.beusekom@verum.com>

	gaiag: c++: add pump to bindings in shell system.

2015-11-16  Jan Nieuwenhuizen  <janneke@gnu.org>

	gaiag: code: c++-msvc11: workaround with std::move in interface meta.

	gaiag: c++: pump: microsoft locking support

2015-11-15  Jan Nieuwenhuizen  <janneke@gnu.org>

	gaiag: code: c++: conversion from ASD enum VoidReply hax0r.

	gaiag: c++-msvc11: update meta wrt binding_error.

2015-11-14  Jan Nieuwenhuizen  <janneke@gnu.org>

	pump.cc: update from m2lib.

2015-11-06  Rutger van Beusekom  <rutger.van.beusekom@verum.com>

	refactor coroutine/thread-context combination for c++11

2015-11-14  Rutger van Beusekom  <rutger.van.beusekom@verum.com>

	gaiag: c++: remove difference in binding error between in and out.

2015-11-14  Jan Nieuwenhuizen  <janneke@gnu.org>

	microsoft meta update

	microsoft NULLPTR foo

2015-11-13  Rutger van Beusekom  <rutger.van.beusekom@verum.com>

	gaiaig: c++: remove dezyne::component from runtime.

2015-11-20  Rob Wieringa  <Rob.Wieringa@verum.com>

	test: correct asd dm to make test succeed after converter has been fixed

2015-11-17  Rob Wieringa  <Rob.Wieringa@verum.com>

	converter: fix datapath for out parameters transfer

2015-11-09  Henk Katerberg  <henk.katerberg@yahoo.com>

	regression test: blocking data path

2015-11-09  Jan Nieuwenhuizen  <janneke@gnu.org>

	WIP: via pump

2015-11-06  Henk Katerberg  <henk.katerberg@yahoo.com>

	regression test: blocking data path - flush synchronous out in asynchronous out context, test data flow through sub-machines

2015-11-11  Rob Wieringa  <Rob.Wieringa@verum.com>

	test: change baseline for ReplyTwo test due to changes in WF

2015-11-10  Rob Wieringa  <Rob.Wieringa@verum.com>

	WF: test: add tests for reply on requires port

	WF: test: remove reply tests (not relevant due to blocking intro)

	WF test: repair tests on required reply

2015-11-10  Paul Hoogendijk  <paul.hoogendijk@verum.com>

	csp: fix issue with wrongly marking synchronous posted cb as asynchronous when being blocked

	csp: fix issue with blocking { illegal }

2015-11-07  Jan Nieuwenhuizen  <janneke@gnu.org>

	test: disable coroutine test; build3.oban is still at vivid / 15.04 / boost1.55.

2015-11-06  Jan Nieuwenhuizen  <janneke@gnu.org>

	test: no blocking for C.

	test: update baseline queuefull

2015-11-06  Rutger van Beusekom  <rutger.van.beusekom@verum.com>

	refactor blocking_datapath_asd use pump.and_wait

	refactor coroutine/thread-context combination for c++11

2015-11-05  Rutger van Beusekom  <rutger.van.beusekom@verum.com>

	add valued pump.and_wait

2015-11-06  Jan Nieuwenhuizen  <janneke@gnu.org>

	c++: pump: factor-out do_one().

	blockdata: remove outdated data patch

	gaiag: remove tmp/ coroutine experiment

2015-11-05  Jan Nieuwenhuizen  <janneke@gnu.org>

	test: resurrect autocryocycle.

	test: resurrect lego.

	c++-msvc11: add blocking runtime: context.hh coroutine.hh pump.hh pump.cc.

	c++: remove c++14-isms.

	c++: remove make_unique. helps c++11.

	c++: runtime: downgrades for microsoft c++ dialect.

	test: update baseline

	test: parse: disable replyVoidExpected.dzn and replyNotFound.dzn.

	test: disable lego.project and autocryocycle.project; expect old pump.

	test: add Henk's blocking_datapath_asd.project.

	c++: flush before block. Fixes: henk:e_out_sync.

2015-11-05  Henk Katerberg  <henk.katerberg@yahoo.com>

	gaiag: data path test - fix early reply test

	gaiag: data path test - out parameter flow through synchronous out event

2015-11-05  Rutger van Beusekom  <rutger.van.beusekom@verum.com>

	implement reply in blocking scope in runtime.

2015-11-05  Jan Nieuwenhuizen  <janneke@gnu.org>

	out/henk: some logging

	switchable DEBUG printing

	haax0rs

2015-11-05  Rutger van Beusekom  <rutger.van.beusekom@verum.com>

	refactor

2015-11-05  Jan Nieuwenhuizen  <janneke@gnu.org>

	avoid join without thread.

2015-11-05  Rutger van Beusekom  <rutger.van.beusekom@verum.com>

	trek de stekker druit

2015-11-05  Henk Katerberg  <henk.katerberg@yahoo.com>

	gaiag: blocking datapath test

2015-11-05  Rutger van Beusekom  <rutger.van.beusekom@verum.com>

	working coroutine implementation, threaded version throws bad function call.

2015-11-04  Rutger van Beusekom  <rutger.van.beusekom@verum.com>

	BlockedSystem3.trace runs ... removal coredump with threads

	pump: context/threads runs BlockedSystem3/test.

	test: add BlockedSystem2,3

	pump: coroutine runs BlockedSystem3/test.

2015-11-04  Jan Nieuwenhuizen  <janneke@gnu.org>

	wip

	pump: transplant delicacy from pump.cc-orig.

	test: update baseline.

	test: resurrect.

	pump: support threads/coroutines: -DHAVE_BOOST_COROUTINE=1 2/2

2015-11-03  Jan Nieuwenhuizen  <janneke@gnu.org>

	pump: support threads/coroutines: -DCOROUTINE=1 1/2

2015-11-03  Rutger van Beusekom  <rutger.van.beusekom@verum.com>

	thread based coroutine pump implementation

2015-11-03  Jan Nieuwenhuizen  <janneke@gnu.org>

	test: c++: add AlarmBlock traces.

	gaiag: c++: runtime: update pump.cc.

	gaiag: c++: BLOCKING <flush>

	gaiag: norm: retain blocking on (skip)s too. Fixes csp SimpleBlockingGuard.dzn

	gaiag: norm-state: passdown-blocking before passdown-on. Fixes csp SimpleBlockingGuard.dzn

	gaiag: dzn/html: grok <port>.reply.

2015-10-30  Paul Hoogendijk  <paul.hoogendijk@verum.com>

	henk's OutParam: fix issue with missing ><

	converter: generate bindings

2015-10-28  Paul Hoogendijk  <paul.hoogendijk@verum.com>

	test: add and update many test for blocking

2015-10-28  Jan Nieuwenhuizen  <janneke@gnu.org>

	gaiag: csp: (model-purge-data): use binding-name. Purges also bound data parameters.

2015-10-28  Paul Hoogendijk  <paul.hoogendijk@verum.com>

	csp blocking: allow blocking on actions of out event. allow p.reply within blocking. mark double reply as illegal

2015-10-28  Jan Nieuwenhuizen  <janneke@gnu.org>

	gaiag: om: (om:declarative?, om:imperative?): only true for statement. Fixes blocking normalize.

2015-10-26  Paul Hoogendijk  <paul.hoogendijk@verum.com>

	csp: first version for blocking

2015-10-22  Jan Nieuwenhuizen  <janneke@gnu.org>

	gaiag: resolve: align with generate.

	gaiag/blocking_datapath_asd_convert/main.cc: more hax0rz

	gaiag: code: norm2b: add baseline.

	gaiag: code: norm2b.cc: add asserts to handwritten main.

	gaiag: code: revert to using csp-norm-state. Fixes multiple-on issue.

	gaiag: code: handle all ONs... WIP

	gaiag: norm2b.dzn: normalization example.

	gaiag/blocking_datapath_asd_convert/main.cc: attempt at handwritten main.

2015-10-21  Jan Nieuwenhuizen  <janneke@gnu.org>

	gaiag: manual edits to blocking_datapath_asd_convert; generates code. Try: make out/henk.

	gaiag: add blocking_datapath_asd_convert.

2015-10-22  Jan Nieuwenhuizen  <janneke@gnu.org>

	gaiag: resolve: type check thinko. Fixes assignment to parameter from global.

2015-10-21  Jan Nieuwenhuizen  <janneke@gnu.org>

	gaiag: resolve: handle on p.e (number__ <- nr__STORE) { nr = number__; }.

	gaiag: code: remove p.out = $ .. $ support.

	gaiag: code: c++: generate data path. on p.e (out <- global).

	gaiag: blockdata2b: handwritten datapath prototype. on p.e (out <- global).

	gaiag: parse: datapath: add on p.e (out <- global).

2015-10-20  Jan Nieuwenhuizen  <janneke@gnu.org>

	gaiag: code: c++: generate data path. p.out = $..$;

	gaiag: blockdata: handwritten datapath prototype. p.out = $..$;

	gaiag: parse: datapath: add p.out = $..$;

	gaiag: code: --output-dir: fix for non-script languages.

2015-10-15  Jan Nieuwenhuizen  <janneke@gnu.org>

	test: pump. WIP.

	gaiag: code: use code-norm-event.

	gaiag: blocking as prefix.

2015-09-04  Rutger van Beusekom  <rutger.van.beusekom@verum.com>

	c++: remove setting handling to true in release, is this right???

2015-08-27  Rutger van Beusekom  <rutger.van.beusekom@verum.com>

	WIP: multi threaded Alarm semantics in single threaded using coroutines.

	fixup c++: add block and release

2015-08-26  Rutger van Beusekom  <rutger.van.beusekom@verum.com>

	WIP: c++: add block and release

	WIP: introduce blocking & port.reply into list/goops backends

	WIP: introduce blocking & port.reply

2015-10-14  Rutger van Beusekom  <rutger.van.beusekom@verum.com>

	synchronize semantics constraining process with queue for queue_full
	makes reported traces for illegal, deadlock and compliance uniform.

2015-10-14  Jan Nieuwenhuizen  <janneke@gnu.org>

	test: add stress target that expects running server.

	test: enable verify/run for subdirectories. Update baseline.

	verify: remove gratituous newline, update baseline.

2015-10-12  Jan Nieuwenhuizen  <janneke@gnu.org>

	test: triangle: remove .<flush> for run.

2015-10-12  Paul Hoogendijk  <paul.hoogendijk@verum.com>

	traces: suppress <flush> for provided port. Support multiple provides port

2015-10-07  Paul Hoogendijk  <paul.hoogendijk@verum.com>

	traces: add --flush option.

2015-10-07  Jan Nieuwenhuizen  <janneke@gnu.org>

	test/runtime: use <external>.event (WAS: <external>..event, sometimes).

	gaiag: goops: main: handle flush. Fixes test/flush2cb.dzn.

	gaiag: cs: main: handle flush. Fixes test/flush2cb.dzn.

	gaiag: java7: main: handle flush. Fixes test/flush2cb.dzn.

	gaiag: java: main: handle flush. Fixes test/flush2cb.dzn.

	gaiag: python: main: handle flush. Fixes test/flush2cb.dzn.

	gaiag: javascript: main: handle flush. Fixes test/flush2cb.dzn.

	gaiag: c: main: handle flush. Fixes test/flush2cb.dzn.

	gaiag: c++03: main: handle flush. Fixes test/flush2cb.dzn.

2015-10-06  Jan Nieuwenhuizen  <janneke@gnu.org>

	gaiag: c++: main: handle flush. Fixes test/flush2cb.dzn.

	test: add flush2cb.dzn.

2015-10-01  Paul Hoogendijk  <paul.hoogendijk@verum.com>

	traces: set queue lenght on 7 (iso 3)

2015-10-07  Jan Nieuwenhuizen  <janneke@gnu.org>

	test: javascript: timer.js: update for new locator.

2015-10-06  Rutger van Beusekom  <rutger.van.beusekom@verum.com>

	test: baseline: update-verify

	test: camera: fix IHardware interface

	gaiag: add --output-dir

2015-10-01  Rutger van Beusekom  <rutger.van.beusekom@verum.com>

	test: make: reorder dzn verify output to match reference.

2015-09-29  Rutger van Beusekom  <rutger.van.beusekom@verum.com>

	server: verify: stream imported files.

2015-09-28  Rutger van Beusekom  <rutger.van.beusekom@verum.com>

	server: verify: javascript: allow both require and cat of javascript for verify.js

2015-09-25  Rutger van Beusekom  <rutger.van.beusekom@verum.com>

	javascript: runtime: allow to supply the tracing function via the locator.

2015-09-23  Rutger van Beusekom  <rutger.van.beusekom@verum.com>

	server: verify: implementation using dezyne.

2015-09-22  Rutger van Beusekom  <rutger.van.beusekom@verum.com>

	gaiag: csp: template: reduce complexity COMPLETE process by allowing range error to occur during completeness check.

2015-09-18  Rutger van Beusekom  <rutger.van.beusekom@verum.com>

	c++: runtime: locator: allow overwriting values.

2015-09-17  Rutger van Beusekom  <rutger.van.beusekom@verum.com>

	gaiag: make - read from stdin

	gaiag: make -o - write to stdout

2015-10-06  Rutger van Beusekom  <rutger.van.beusekom@verum.com>

	gaiag: csp: use proper name for interface in refinement specification.

2015-10-06  Jan Nieuwenhuizen  <janneke@gnu.org>

	gaiag: code: wrap compound around inner else-less if.

2015-09-30  Jan Nieuwenhuizen  <janneke@gnu.org>

	daemon: only display EADDRINUSE from verbosity level 2.

	daemon: improve debugging: only detach when listening, info with dzn --verbose.

	gaiag: parse: (add-scope): generalize.

2015-09-29  Jan Nieuwenhuizen  <janneke@gnu.org>

	gaiag: parse/resolve: namespace fixes.

	gaiag: dzn: default command-line option should be a string. Fixes dzn.test.

2015-09-25  Paul Hoogendijk  <paul.hoogendijk@verum.com>

	examples: add examples of Customer Meeting

2015-09-24  Jan Nieuwenhuizen  <janneke@gnu.org>

	gaiag: html: remove ctrl-click from actions. Fixes state diagram labels.

	gaiag: json-state: (json-next): look into 3-deep guards.

	state-table, event-table: ctrl-click: function call go to definition.

	gaiag: html: remove enum- prefix.

	gaiag: code: javascript: support cat-to-one-file. Do something like:
	    (echo -e 'dezyne = {};\n require = function () {return {};};'; cat out/alarm.project/javascript/dezyne/runtime.js out/alarm.project/javascript/dezyne/*js regression/alarm.project/main.js) | grep -v '^#' > test

	gaiag: parse: (add-scope): namespace me harder.

2015-09-23  Rutger van Beusekom  <rutger.van.beusekom@hansei-kaizen.org>

	c++03: namespace: support inner space.

2015-09-22  Jan Nieuwenhuizen  <janneke@gnu.org>

	gaiag: code: support name_space.dzn and inner_space.dzn (except c++03).

	webapp: ast: (add_scope): finish implementation. Fixes depends, fixes namespace.

	gaiag: code: namespace simple_space.

	gaiag: code: c++03: namespace.

2015-09-17  Jan Nieuwenhuizen  <janneke@gnu.org>

	gaiag: code: javascript: support modules and namespaces.

	test: enable simple_space.

2015-09-21  Jan Nieuwenhuizen  <janneke@gnu.org>

	gaiag: html: new language backend.

2015-09-17  Rob Wieringa  <Rob.Wieringa@verum.com>

	WF: test: add WF case

	WF: test: add WF case

	WF: add WF case

	WF: add 'otherwise' tests

2015-09-18  Jan Nieuwenhuizen  <janneke@gnu.org>

	webapp: daemon: deployment.

2015-09-18  Ladislau Posta  <ladislau.posta@verum.com>

	add missing file

	fix test framework to correctly handle java

2015-09-14  Jan Nieuwenhuizen  <janneke@gnu.org>

	test: update from lego.

2015-09-11  Jan Nieuwenhuizen  <janneke@gnu.org>

	gaiag: java: use lambda expressions. Add java7.

2015-09-10  Jan Nieuwenhuizen  <janneke@gnu.org>

	gaiag: coroutine: add yield-to and naive scheduler.

2015-09-09  Jan Nieuwenhuizen  <janneke@gnu.org>

	gaiag: coroutine.scm: new module.

2015-09-15  Ladislau Posta  <ladislau.posta@verum.com>

	build version 1.1.0

2015-09-15  Rutger van Beusekom  <rutger.van.beusekom@verum.com>

	c++-msvc11: runtime: replace and, or, not by &&, ||, ! respectively.

2015-09-14  Rutger van Beusekom  <rutger.van.beusekom@verum.com>

	gaiag: c++-msvc11: vs does not provide language support for the: "and, or, not" keywords

2015-09-14  Rob Wieringa  <Rob.Wieringa@verum.com>

	WF check: test: replace imperative by declarative in error msg

	WF check: test: replace imperative by declerative in error msg

2015-09-11  Rob Wieringa  <Rob.Wieringa@verum.com>

	WF check: repait typo: fix baseline in test framework

2015-09-08  Rutger van Beusekom  <rutger.van.beusekom@verum.com>

	test: add multiple provides examples

	csp: resurrect multiple provides on top of refinement fix

2015-09-08  Jan Nieuwenhuizen  <janneke@gnu.org>

	gaiag: dzn: support printing of function calls.

2015-09-03  Rutger van Beusekom  <rutger.van.beusekom@verum.com>

	csp: fixes refinement error as documented by test/regression/single_tau_to_multiple_tau_should_not_refine.dzn

2015-09-07  Rutger van Beusekom  <rutger.van.beusekom@verum.com>

	cleanup: remove reference

2015-09-07  Jan Nieuwenhuizen  <janneke@gnu.org>

	gaiag: json-table: compose namespace'd name to string. Fixes [java.lang.object].

2015-09-03  Rob Wieringa  <Rob.Wieringa@verum.com>

	parser WF test: remove empty line in baseline

	parser WF: check for at least one provides port

	Revert "parser: wfc: remove single provided port constraint."
	This reverts commit 4560e70c00b54a9dae77286daf5755becfa32413.

2015-08-24  Rutger van Beusekom  <rutger.van.beusekom@verum.com>

	c++: add c++-msvc11 as new c++ language dialect.

	c++: allow passing ostream instance through dezyne::locator

2015-08-14  Henk Katerberg  <henk.katerberg@yahoo.com>

	gitignore test/regression/autocryocycle.project

2015-08-14  Rutger van Beusekom  <rutger.van.beusekom@verum.com>

	gaiag: csp: complete run to completion constraint in multiclient.

	csp: multiclient: replace example.

2015-08-13  Rutger van Beusekom  <rutger.van.beusekom@verum.com>

	parser: wfc: remove single provided port constraint.

	gaiag: csp: update baseline for make check

2015-08-11  Rutger van Beusekom  <rutger.van.beusekom@verum.com>

	gaiag: csp: allow multiple provided ports
	       simplify csp by moving modeling events to separate channel
	       as well as renaming reply events with the rest of the events
	       and removing the behaviour name from csp processes.

	       passes all test framework tests.

2015-08-05  Rutger van Beusekom  <rutger.van.beusekom@verum.com>

	gaiag: csp: initial multiclient reference.

2015-08-05  Jan Nieuwenhuizen  <janneke@gnu.org>

	gaiag: goops: replace accessor generics with matchers.

2015-07-14  Henk Katerberg  <henk.katerberg@yahoo.com>

	examples: fix Camera/main.cc compile error

2015-08-05  Jan Nieuwenhuizen  <janneke@gnu.org>

	test: update baseline.

	gaiag: csp: do not sort interfaces (by mangled name).

	gaiag: wfc: re-enable tests.

	gaiag: goops: fully functional as backend.

	Update Gaiag README.

	gaiag: parse: add optional bits.

2015-08-04  Jan Nieuwenhuizen  <janneke@gnu.org>

	gaiag: om: move backend switch here. Fixes warnings.

	gaiag: goops/list: remove duplication in om:* util.

	gaiag: goops: resurrect.

	test: update baseline.

2015-08-03  Jan Nieuwenhuizen  <janneke@gnu.org>

	gaiag: run: namespace.

	gaiag: parse: loosen model-name/file-name relation. Handles parsing lego.

	gaiag: json-table: namespace update. Fixes state/event tables.

	gaiag: code: bug fix for group expressions.

	gaiag: dzn: bugfixes for integers and group expressions.

	test: glue.project: actually bring glue under test.

	gaiag: code: c++03: resurrect glue.

	gaiag: code: c++: resurrect glue.

	gaiag: code: prepare for glue.

	gaiag: wfc: resurrect well-formedness checks.

2015-08-03  Rob Wieringa  <Rob.Wieringa@verum.com>

	namespace test: rename port foo to avoid shadowing

2015-08-02  Jan Nieuwenhuizen  <janneke@gnu.org>

	gaiag: goops: om: namespace.

	gaiag: parse: use symbols instead of names. Fixes error messages.

	gaiag: code: goops: namespace. WIP

	gaiag: code: cs: namespace. WIP

	gaiag: code: java: namespace. WIP

	gaiag: code: javascript: namespace. WIP

	gaiag: code: python: namespace. WIP

	gaiag: code: c: namespace.

	gaiag: refactor scope-join.

2015-08-01  Jan Nieuwenhuizen  <janneke@gnu.org>

	test: c++: namespace update for handwritten code.

2015-08-02  Jan Nieuwenhuizen  <janneke@gnu.org>

	gaiag: code: c++03: use namespace from dzn for models (WAS: dezyne).

2015-07-31  Jan Nieuwenhuizen  <janneke@gnu.org>

	gaiag: code: c++: use namespace from dzn for models (WAS: dezyne).

2015-08-01  Jan Nieuwenhuizen  <janneke@gnu.org>

	gaiag: code: namespace: c++ compiles alarm.

	test: add namespace test.

	webapp: client: scan.jison/parse.jison: namespace.

	gaiag: resolve: bugfix: resolve expressions in action arguments.

2015-07-31  Jan Nieuwenhuizen  <janneke@gnu.org>

	gaiag: update baseline.

2015-08-01  Jan Nieuwenhuizen  <janneke@gnu.org>

	gaiag: namespace: handle examples/inner_space.dzn.

2015-07-31  Jan Nieuwenhuizen  <janneke@gnu.org>

	gaiag: table-event: oops, update to dzn (WAS: pretty).

2015-07-30  Jan Nieuwenhuizen  <janneke@gnu.org>

	gaiag: dzn: rewrite pretty printer, refactor animate.

2015-07-29  Jan Nieuwenhuizen  <janneke@gnu.org>

	gaiag: backends: namespace.

	gaiag: resolve: namespace.

2015-07-28  Jan Nieuwenhuizen  <janneke@gnu.org>

	gaiag: parse: namespace.

2015-08-04  Rutger van Beusekom  <rutger.van.beusekom@verum.com>

	Revert "csp: add additional compression on the queue."
	This reverts commit ec0b13f3545e6c72dd635c0050fc5d91e19d033c.

2015-07-16  Rutger van Beusekom  <rutger.van.beusekom@verum.com>

	csp: add additional compression on the queue.

2015-07-29  Jan Nieuwenhuizen  <janneke@gnu.org>

	test: goops: update handwritten class names.

	gaiag: code: goops: fix for handling data variable init with #unspecified/#t/#f.

	gaiag: run: make check.

2015-07-19  Jan Nieuwenhuizen  <janneke@gnu.org>

	gaiag: run: support running on GOOPS backend.

2015-07-15  Jan Nieuwenhuizen  <janneke@gnu.org>

	gaiag: run: (run-port-action): remove.

	gaiag: run: cleanup toplevel.

	gaiag: run: (run-trigger): refactor further.

2015-07-15  Rutger van Beusekom  <rutger.van.beusekom@verum.com>

	gaiag: run: (run-trigger): refactor.

2015-07-15  Jan Nieuwenhuizen  <janneke@gnu.org>

	gaiag: run: refactor marking-trigger.

	gaiag: run: remove flushing?.

	gaiag: run: plumbing fix.

	gaiag: run: cleanup.

2015-07-14  Rutger van Beusekom  <rutger.van.beusekom@verum.com>

	gaiag: run: interface first.

2015-07-14  Jan Nieuwenhuizen  <janneke@gnu.org>

	webapp/gaiag: run: refactor matched trace reporting.

	gaiag: run: (run-trigger): refactor.

	gaiag: run: (sort-infos): remove.

	gaiag: run: cleanups.

2015-07-12  Jan Nieuwenhuizen  <janneke@gnu.org>

	gaiag: run: oops, do not re-run first Q-d action.

	gaiag: run: (run-trigger): move action-if to next-trigger.

2015-07-11  Jan Nieuwenhuizen  <janneke@gnu.org>

	gaiag: run: refactor handle-return.

	gaiag: run: decruft.

	gaiag: run: weird Q > 1 check fixes TauEmitMultiple.

	test: run: complete more traces.

2015-07-10  Jan Nieuwenhuizen  <janneke@gnu.org>

	gaiag: run: refactor action.

	gaiag: run: refactor on.

2015-07-11  Jan Nieuwenhuizen  <janneke@gnu.org>

	gaiag: run: ignore a trigger's parameters.

2015-07-09  Jan Nieuwenhuizen  <janneke@gnu.org>

	gaiag: run: unit test.

	comment-out misguided TauEmitMultiple hack

	indent region

	gaiag: run: handle multiple out/q events on single modeling.

2015-07-08  Jan Nieuwenhuizen  <janneke@gnu.org>

	test: TauEmitMultiple: snip into 3 traces.

	gaiag: run: illegal is an error, even if it matches.

	test: run: thinko, remove -c.
	1df844f1 (Jan Nieuwenhuizen 2015-06-28 12:55:22 +0200 31) 	$(DZN) --verbose run -c -m $(LOCAL_SUT) -t $(1) $(LOCAL_DZN_TOP) | grep '^trace:' | sed s,trace:,, | tr ',' '\n' | (grep -Ev '^ *$$$$'||:) > $(CDIR)baseline/$(LOCAL_NAME)/$(LOCAL_LANGUAGE)/$(notdir $(1))

2015-07-08  Rutger van Beusekom  <rutger.van.beusekom@verum.com>

	test: fix deadlock in tauemitsingle by changing optional to inevitable.

2015-07-08  Jan Nieuwenhuizen  <janneke@gnu.org>

	test: QTriggerModeling: snip traces into parts.

	test: Simpleint2: not performed by component.

2015-07-07  Jan Nieuwenhuizen  <janneke@gnu.org>

	gaiag: run: add state updates to [json]trace.

	webapp/gaiag: run: cleanup json format / dzn run representation.

	gaiag: run: prune also modeling actions, fixes eligible events.

	gaiag: run: prune modeling events without progress. Fixes NonDetHiddenTransition.

	gaiag: run: remove bit-rotted model-checker for now.

	gaiag/RUN: update status report

	gaiag: run: consider action by modeling from Component. Fixes RequiredOut/DataVariables.

	test: run: RequiredOut.dzn: isolate feature from DataVariables.

	add reply_reorder to run.sh

	test: run: complete reply_reorder's trace.

	gaiag: run: only allow interleaving of modeling events at top level.

	test: move OutEventSetReply to bugs: not well-formed.

	gaiag: run: prune run-interfaces. Better performance on Handle triangle.

2015-07-06  Jan Nieuwenhuizen  <janneke@gnu.org>

	gaiag: evaluate: (eval-expression): remove inadvertedly added catch-all, complete arithmetic.

	test: QTriggerModeling: more traces.

	test: regression: simple test for multiple Q'd events.

	gaiag: run: handle multiple Q'ed events.

2015-07-06  Rutger van Beusekom  <rutger.van.beusekom@verum.com>

	gaiag: run: (eligible): disable too naive livelocking implementation.

2015-07-15  Jan Nieuwenhuizen  <janneke@gnu.org>

	gaiag: code: fixes for List.

2015-07-06  Rutger van Beusekom  <rutger.van.beusekom@verum.com>

	test: add simplified List example.

2015-07-05  Jan Nieuwenhuizen  <janneke@gnu.org>

	gaiag: run: (var!): bugfix, helps SynchronousLivelock.

	gaiag: run: handle unspecified. Helps SynchronousLivelock.dzn.

	gaiag: run: bugfix: do not [re-]trace provided out actions.

	gaiag: run: Handle illegal.

	gaiag: run: disable debugging.

	gaiag: run: fix next-action condition for interfaces.

2015-07-04  Jan Nieuwenhuizen  <janneke@gnu.org>

	gaiag: run: (transfer-interface-info): factor out.

2015-07-03  Jan Nieuwenhuizen  <janneke@gnu.org>

	gaiag: run: Q: recover from impact of clue-bat.

	gaiag: run: disable debugging.

	gaiag: run: allow 200,000 iterations [WAS: 100,000]. Fixes triangle/Handle.1

2015-07-02  Jan Nieuwenhuizen  <janneke@gnu.org>

	gaiag: run: communicate interface action reply values to component.

	gaiag: run: oops, do not junk non-det interface infos.

	gaiag: run: weird fix/workaround for ctrl.return in robot.

	gaiag: run: resurrect eligible, add error trail to json.

2015-07-05  Jan Nieuwenhuizen  <janneke@gnu.org>

	gaiag: run: resurrect interface-only non-determisism.

2015-07-02  Jan Nieuwenhuizen  <janneke@gnu.org>

	gaiag: run: refactor some (map (lambda (info)) infos).

	gaiag: run: refactor reply/return.

	gaiag: run: cleanups: remove comments, <info>.

	gaiag: run: do not add return to error trace.

	gaiag: run: complete interface error traces with component trace.

2015-07-05  Jan Nieuwenhuizen  <janneke@gnu.org>

	gaiag: run: valued returns through interface.

2015-06-30  Jan Nieuwenhuizen  <janneke@gnu.org>

	gaiag: run: Q.

	gaiag: run: refactor action.

2015-06-29  Jan Nieuwenhuizen  <janneke@gnu.org>

	gaiag: run: refactor on.

	gaiag: run: trace interface upon deq

	gaiag: run: only consider inevitable/optional if present in model.

	gaiag: run: use instance name for interface state [WAS: model type].

2015-07-05  Jan Nieuwenhuizen  <janneke@gnu.org>

	gaiag: run: further work. test/run.sh succeeds again.

2015-06-28  Jan Nieuwenhuizen  <janneke@gnu.org>

	gaiag: run: retain error state from interface runs. Fixes 2nd Alarm trace.

	gaiag: run: also retain component's port in interface actions. Fixes modeling.dzn.

	gaiag: run: json: avoid plain returns in component trace.

	gaiag: run: allow more iterations. We need > 10,000 for Handle?

	gaiag: run: set port for modelling event. Fixes alarm.

	gaiag: run: do not consider optional/inevitable upon deq.

	gaiag: run: first stab at eligible.

	webapp/gaiag: run: robustify against null input.

	gaiag: run: prepend actual trigger for required out to trace too.

	gaiag: run: info/state refactor fix.

	gaiag: run: plain function call fix.

	gaiag: run: on event/trigger hack.

	gaiag: evaluate: handle data expressions, handle unspecified.

	gaiag: run: pessimist+fix on a,b,c ==> B.

	revert to optimist< for now.

	gaiag: run: adopt pessimist strategy for result trace. OOPS this helps NonDet2 but breaks alarm again

	gaiag: run: (symbol->literal): robustify against wrong input.

	gaiag: run: fix for function call.

	gaiag: run: annotate modelling returns for easier removal.

	gaiag: synthesize modelling events.

2015-07-05  Jan Nieuwenhuizen  <janneke@gnu.org>

	gaiag: run: depth1st me harder.

2015-06-28  Jan Nieuwenhuizen  <janneke@gnu.org>

	gaiag: run: thinko: do not remove matched ON from error trace.

	gaiag: run: include non-executed trail as trace points.

	gaiag: run: do not concatenate separate result traces.

	gaiag: run: reject trace if reply value does not match.

2015-06-27  Jan Nieuwenhuizen  <janneke@gnu.org>

	gaiag/RUN: add my emacs gaiag -l run compilation development commands

2015-06-26  Jan Nieuwenhuizen  <janneke@gnu.org>

	gaiag: run: rename from simulate, toplevel and trail-eating cleanups.

	gaiag: simulate: refactor trace accumulation.

	gaiag: simulate: <info>: add :error slot.

	gaiag: simulate: refactor next-*; do not modify info.

	gaiag: simulate: add q.

	test/sim.sh: both alarm traces...with extra SENSOR.RETURN?

	gaiag: simulate: evaluate: resurrect handling of [otherwise].

2015-06-25  Jan Nieuwenhuizen  <janneke@gnu.org>

	gaiag: simulate: avoid tracing interface for provided-out, required in-events.

	gaiag: simulate: less port hax0r.

	gaiag: simulate: interface skip non-matching actions?...

	gaiag: simulate: paul's deep recursion.

	gaiag: simulate: interface tracing for action.

2015-07-19  Jan Nieuwenhuizen  <janneke@gnu.org>

	gaiag: run: json-trace.

2015-06-24  Jan Nieuwenhuizen  <janneke@gnu.org>

	gaiag: simulate: support running on goops.

2015-07-19  Jan Nieuwenhuizen  <janneke@gnu.org>

	gaiag: simulate: eval-function-expression: handle non-determinism.

2015-06-23  Jan Nieuwenhuizen  <janneke@gnu.org>

	gaiag: simulate: non-determinism and interface tracing.

2015-06-22  Jan Nieuwenhuizen  <janneke@gnu.org>

	gaiag: simulate: make interface states local.

	gaiag: simulate: make trail local.

2015-06-21  Jan Nieuwenhuizen  <janneke@gnu.org>

	gaiag: simulate: first step to introduce non-determinism.

	gaiag: json-trace: copy state in all messages.

	gaiag: simulate: valued return.

	gaiag: simulate: re-implement return.

2015-06-20  Jan Nieuwenhuizen  <janneke@gnu.org>

	gaiag: simulate: avoid non-executed declarative statements from trace.

2015-07-05  Jan Nieuwenhuizen  <janneke@gnu.org>

	test: delete Alarm.trace.4: not performed by component.

	test: run: import most success tests and traces from seqdiag.

2015-06-28  Jan Nieuwenhuizen  <janneke@gnu.org>

	test: run: baseline update: complete all traces.

2015-07-19  Jan Nieuwenhuizen  <janneke@gnu.org>

	gaiag: goops/list: (om:declarative?): list of declaratives is also declarative.

	gaiag: om: (is-a?): <compound> is an ast.

2015-07-15  Jan Nieuwenhuizen  <janneke@gnu.org>

	gaiag: goops: GOOPS backend updates.

2015-06-24  Jan Nieuwenhuizen  <janneke@gnu.org>

	gaiag: misc: (eq??, equal??): add.

	gaiag: misc: (pair??): add.

2015-07-18  Jan Nieuwenhuizen  <janneke@gnu.org>

	gaiag: c++: fix duplicate defined reply slots.

2015-07-17  Jan Nieuwenhuizen  <janneke@gnu.org>

	gaiag: goops: fix duplicate defined reply slots.

2015-07-16  Jan Nieuwenhuizen  <janneke@gnu.org>

	gaiag: goops: use dezyne: prefix for dezyne classes.

	gaiag: goops: export <accessor>.

	gaiag: code: goops: main: grok event with data parameters.

2015-07-10  Jan Nieuwenhuizen  <janneke@gnu.org>

	gaiag: parse: grok negative integers.

2015-07-23  Ladislau Posta  <ladislau.posta@verum.com>

	extend the GarageDoorControl example with a system specification which leads to taking it out from the code generation part of testing

2015-07-22  Rob Wieringa  <Rob.Wieringa@verum.com>

	Wellformedness: fix tail recursion check

2015-07-21  Paul Hoogendijk  <paul.hoogendijk@verum.com>

	system view: fix issue with text labels for safari; clean-up

	state diagram: fix issue with multiple actions on trigger

2015-07-14  Rob Wieringa  <Rob.Wieringa@verum.com>

	rename 'asdgenerator' to 'generate'

2015-07-13  Ladislau Posta  <ladislau.posta@verum.com>

	add the garage door example with errors to the test set and to published examples

2015-07-13  Rob Wieringa  <Rob.Wieringa@verum.com>

	WF check test: add check for cyclic bindings

2015-07-13  Jan Nieuwenhuizen  <janneke@gnu.org>

	Revert "test: run: baseline update: complete all traces."
	This reverts commit 1df844f118d49ceb5e1328b52d0f07f48c4fd078.

	Revert "test: run: import most success tests and traces from seqdiag."
	This reverts commit 92bb1b634bbfd5363bc08ed706534284a044016e.

	Revert "test: delete Alarm.trace.4: not performed by component."
	This reverts commit c86706c7714db7c0ed9a023df3c2883057faf8cb.

2015-06-26  Rob Wieringa  <Rob.Wieringa@verum.com>

	Parser test: in messages add single quotes around user names

2015-07-08  Ladislau Posta  <ladislau.posta@verum.com>

	add the GarageDoor example to the test set and change description for the StartDevices example

2015-07-05  Jan Nieuwenhuizen  <janneke@gnu.org>

	test: delete Alarm.trace.4: not performed by component.

	test: run: import most success tests and traces from seqdiag.

2015-06-28  Jan Nieuwenhuizen  <janneke@gnu.org>

	test: run: baseline update: complete all traces.

2015-07-03  Henk Katerberg  <henk.katerberg@yahoo.com>

	interpreter: simplify backintrace

2015-07-02  Ladislau Posta  <ladislau.posta@verum.com>

	change to version 1.0.1

2015-06-30  Paul Hoogendijk  <paul.hoogendijk@verum.com>

	bumped version to 1.0.0

	test: limit triangle test to 30

2015-06-30  Henk Katerberg  <henk.katerberg@yahoo.com>

	unlimited triangle testing, ignoring triangle errors in simulator

2015-06-24  Jan Nieuwenhuizen  <janneke@gnu.org>

	gaiag: update baseline.

2015-06-24  Paul Hoogendijk  <paul.hoogendijk@verum.com>

	verify: change wording of verification failures

	change version to 0.9.0 and supported versions to 0.9.* and 0.3.*

2015-06-24  Jan Nieuwenhuizen  <janneke@gnu.org>

	test: add two scriptable zoho bugs.

2015-06-23  Paul Hoogendijk  <paul.hoogendijk@verum.com>

	lego: fix verification error of Conveyor

	examples: change purpose of SensorMultiplexer

	fix issue with combined on statements

2015-06-23  Rutger van Beusekom  <rutger.van.beusekom@verum.com>

	server: verify: show the sequence diagram pertaining to the model with the verification problem.

2015-06-23  Jan Nieuwenhuizen  <janneke@gnu.org>

	webapp: examples: update names and descriptions.

2015-06-22  Maarten van de Waarsenburg  <maarten.van.de.waarsenburg@verum.com>

	Replaced tabs by spaces, indented by 2

2015-06-22  Jan Nieuwenhuizen  <janneke@gnu.org>

	webapp: add descriptions to examples.

	webapp: server: list-examples: add description.

2015-06-22  Rutger van Beusekom  <rutger.van.beusekom@verum.com>

	gaiag: csp: fix (unit) tests by updating reference output for interface livelock and type restricted replies in the component.

	gaiag: csp: limit reply values to their declared type, fixes 6834.

2015-06-19  Paul Hoogendijk  <paul.hoogendijk@verum.com>

	traces: make generated traces consistent with traces of code

2015-06-18  Jan Nieuwenhuizen  <janneke@gnu.org>

	gaiag: csp: success if no models given, unless -m MODEL is used.

2015-06-19  Jan Nieuwenhuizen  <janneke@gnu.org>

	test: lego: disable for java7.

2015-06-17  Jan Nieuwenhuizen  <janneke@gnu.org>

	gaiag: main: add relaxed? option. lego: use almost-generated mains.

	test: java/cs: run lego.project. Cleanups.

	test: goops: run lego.project.

	test: lego.project: preparations for java, cs and goops.

	test: javascript: run lego.project.

	test: python: run lego.project.

2015-06-18  Ladislau Posta  <ladislau.posta@verum.com>

	remove additional components and system from StartControl.dzn

	remove additional components and system from IllegalBehaviour.dzn

	change the component names in the IllegalBehaviour Dezyne example to not conflict with the other names in teh project

	replace the start devices example with a non failing set of models and add additional clarifications and system components to increase expressivity of the example

2015-06-17  Ladislau Posta  <ladislau.posta@verum.com>

	fix trace problem caused by a rename in ReturnValues

	fix another trace file for ReturnValues

	fix baseline for ReturnValues

	fix some typos in one of the examples

2015-06-17  Rutger van Beusekom  <rutger.van.beusekom@verum.com>

	gaiag: remove modeling event based interface livelock.

2015-06-16  Jan Nieuwenhuizen  <janneke@gnu.org>

	gaiag: code: runtime fixes, generated-main fixes; closes triangle.

	gaiag: table: retain location on empty compounds.

2015-06-17  Rob Wieringa  <Rob.Wieringa@verum.com>

	examples: update comments and some style issues

	examples: update comments and some style issues

2015-06-16  Ladislau Posta  <ladislau.posta@verum.com>

	add guidelines and main to the Camera project, change init-fs to take .txt and .cc files in the DB and remove superfluous camera.pdf file

2015-06-15  Jan Nieuwenhuizen  <janneke@gnu.org>

	test: include from standalone test project.

	gaiag: csp: move nep*ref.csp to baseline.

	gaiag: json-table: remove callbacks from component data.

	VERSION: the one version.

	gaiag: code: fix for local-enum of global type field sugar.

2015-06-12  Henk Katerberg  <henk.katerberg@yahoo.com>

	interpreter: mark synchronization messages in JSON execution trace

2015-06-11  Henk Katerberg  <henk.katerberg@yahoo.com>

	triangle test c++ main generator: enable synchronous out events

2015-06-13  Jan Nieuwenhuizen  <janneke@gnu.org>

	gaiag: csp: remove <context>, <csp-*> and ast-transform-.

2015-06-12  Jan Nieuwenhuizen  <janneke@gnu.org>

	gaiag: csp: update tests and baseline.

2015-06-12  Paul Hoogendijk  <paul.hoogendijk@verum.com>

	disable range check on initializers for members (now done in csp)

	add range check to all processes

2015-06-11  Paul Hoogendijk  <paul.hoogendijk@verum.com>

	add range check on integers improve indentation

	goodbye combinators; so long and thanx for all the fish

	fix issues with optional (choas dropped out)

2015-06-09  Paul Hoogendijk  <paul.hoogendijk@verum.com>

	change normal call to shortcutted call if last statement of function

2015-06-09  Jan Nieuwenhuizen  <janneke@gnu.org>

	csp: update locals in compound. Fixes sugar.

2015-06-08  Paul Hoogendijk  <paul.hoogendijk@verum.com>

	fix tail rescursion

	outline continuations definitions

2015-06-05  Paul Hoogendijk  <paul.hoogendijk@verum.com>

	add first version of def/undef

2015-06-04  Paul Hoogendijk  <paul.hoogendijk@verum.com>

	add parameters on proc's

2015-06-05  Jan Nieuwenhuizen  <jan@avatar.nl>

	csp: prepare for 'def: ->string: eat ('def ...), add def?, undef.

2015-06-04  Jan Nieuwenhuizen  <jan@avatar.nl>

	om:member-names call fix

2015-06-02  Jan Nieuwenhuizen  <janneke@gnu.org>

	csp: fixes after complicated rebase.

	fixup parameters.

2015-06-01  Paul Hoogendijk  <paul.hoogendijk@verum.com>

	split state tuple in separate channels

2015-05-29  Paul Hoogendijk  <paul.hoogendijk@verum.com>

	fix many issues

2015-05-28  Jan Nieuwenhuizen  <janneke@gnu.org>

	csp: use aliased on-parameter name as new local variable. Fixes asdgenerator mangled data parameter assignment purging.

	csp: fix for purge data and modeling events.

	csp: purge data parameters harder. Fixes Dataparam.

2015-05-27  Jan Nieuwenhuizen  <janneke@gnu.org>

	csp: arguments thinko.

2015-05-27  Paul Hoogendijk  <paul.hoogendijk@verum.com>

	try adding locals inspection

	fix some extern issues

2015-05-27  Jan Nieuwenhuizen  <janneke@gnu.org>

	csp: ignore <extern> on functions.

	csp: generate nexpextref.csp

2015-05-27  Paul Hoogendijk  <paul.hoogendijk@verum.com>

	update nepext ref for csp

	add what I did yesterday

2015-05-26  Paul Hoogendijk  <paul.hoogendijk@verum.com>

	added many staments and fixed some

2015-05-26  Jan Nieuwenhuizen  <janneke@gnu.org>

	csp: add return type for function return.

2015-05-26  Paul Hoogendijk  <paul.hoogendijk@verum.com>

	add some ()'s change some let's order

2015-05-25  Jan Nieuwenhuizen  <janneke@gnu.org>

	csp: less naive prefixing of model name. Fixes Alarm.

2015-05-25  Paul Hoogendijk  <paul.hoogendijk@verum.com>

	add csp-on IG' place get global state at correct place

2015-05-25  Jan Nieuwenhuizen  <janneke@gnu.org>

	csp: add some enum scoping.

2015-05-25  Paul Hoogendijk  <paul.hoogendijk@verum.com>

	add illegal fix issue missing () add "bool" as type

2015-05-22  Jan Nieuwenhuizen  <janneke@gnu.org>

	generate nepext.csp -- similar to nepextref.csp but reordered, factored template code out into both.csp.scm.

2015-05-22  Paul Hoogendijk  <paul.hoogendijk@verum.com>

	add ref for nepext.dzn moved call_return and glob back to interface and component template

2015-05-22  Jan Nieuwenhuizen  <janneke@gnu.org>

	interface-enum me harder.

2015-05-22  Paul Hoogendijk  <paul.hoogendijk@verum.com>

	add initial support component add example nepext.dzn

2015-05-22  Jan Nieuwenhuizen  <janneke@gnu.org>

	csp: also interfaces' enums

	csp: enum fixors

2015-05-22  Paul Hoogendijk  <paul.hoogendijk@verum.com>

	add examples/nep.dzn

	add reply

2015-05-22  Jan Nieuwenhuizen  <janneke@gnu.org>

	csp: add within function list stuffx0r

	use actual members/parameters in statements.

	gaiag: csp: add global.

2015-05-22  Paul Hoogendijk  <paul.hoogendijk@verum.com>

	add glob.set/get

	n.dzn example

	add globals

2015-05-21  Jan Nieuwenhuizen  <janneke@gnu.org>

	gaiag: csp: multiple functions pipe fix.

	csp: functions: whitespace/newline.

	rec: add functions, parameter[s/less].

	gaiag: csp: generate some plumbing for functions.

2015-05-21  Paul Hoogendijk  <paul.hoogendijk@verum.com>

	improve calls add tail recursives call

2015-05-20  Paul Hoogendijk  <paul.hoogendijk@verum.com>

	add wait for return to csp-call

	add manual translation of rec.dzn

2015-05-19  Paul Hoogendijk  <paul.hoogendijk@verum.com>

	add first version of new csp

2015-06-12  Jan Nieuwenhuizen  <janneke@gnu.org>

	gaiag: table: simplify top level statement too.

	gaiag: table: int as state variable.

2015-06-11  Jan Nieuwenhuizen  <janneke@gnu.org>

	gaiag: table: bool as state variable.

2015-06-10  Jan Nieuwenhuizen  <janneke@gnu.org>

	gaiag: table: make compounds clickable.

2015-06-02  Rutger van Beusekom  <rutger.van.beusekom@verum.com>

	gaiag: add c++03.

2015-06-10  Henk Katerberg  <henk.katerberg@yahoo.com>

	triangle test generator: fix valued returns for cs test infrastructure

2015-06-10  Jan Nieuwenhuizen  <janneke@gnu.org>

	gaiag: table-state: do not aggregate ons. Fixes event-clickability.

	gaiag: table-state: retain trigger locations.

	gaiag: table-state: retain source properties.

2015-06-08  Jan Nieuwenhuizen  <janneke@gnu.org>

	webapp: move /examples, /runtime into /share. Fixes webapp/test.sh, tarball.

2015-05-27  Rutger van Beusekom  <rutger.van.beusekom@verum.com>

	remove redundant const causing warning.

2015-06-05  Jan Nieuwenhuizen  <jan@avatar.nl>

	remove debug printing.

	gaiag: new subint syntax.

	gaiag: remove = from extern.

2015-06-01  Rob Wieringa  <Rob.Wieringa@verum.com>

	language: change syntax of extern and subint

	language: change syntax of extern

2015-06-05  Jan Nieuwenhuizen  <jan@avatar.nl>

	gaiag: break <ast> loop in ->symbol. Fixes json for camera.

2015-06-04  Jan Nieuwenhuizen  <jan@avatar.nl>

	gaiag: on-events are different when argument aliases differ.

2015-06-03  Jan Nieuwenhuizen  <janneke@gnu.org>

	gaiag: table: fix click on single statement.

	gaiag: fixes for event table json.

2015-06-01  Jan Nieuwenhuizen  <janneke@gnu.org>

	gaiag: pretty: parentheses on events; except in interface behaviour.

2015-05-28  Jan Nieuwenhuizen  <janneke@gnu.org>

	gaiag: run with goops or plain lists.

	gaiag: c: remove define-method.

	gaiag: c++: remove define-method.

	gaiag: code: remove define-method.

2015-05-26  Jan Nieuwenhuizen  <janneke@gnu.org>

	gaiag: junk records; run same code on goops and list.

	gaiag: script fixes.

	gaiag: norm: preserve location on compound.

2015-05-29  Rob Wieringa  <Rob.Wieringa@verum.com>

	language: make parentheses requires in event declaration

2015-05-26  Jan Nieuwenhuizen  <janneke@gnu.org>

	guile: build location.go first. Fixes deployment.

	Oops: undo g/gr filtering. Fixes deployment.

2015-05-25  Jan Nieuwenhuizen  <janneke@gnu.org>

	gaiag: location cleanups.

	gaiag: read input from /dev/stdin [-].

	gaiag: norm-event: avoid contstructing duplicate or clauses.

	gaiag: table-state: generic expression simplify.

2015-05-22  Jan Nieuwenhuizen  <janneke@gnu.org>

	table-state/event: use normalize and simplify.

	gaiag: norm-state: remove define-method.

	gaiag: resolve: fixes for plain guile.

	gaiag: check: do not autocompile, use build cache.

	gaiag: run goops (./gaiag), record (./gr) and list (./g) alongside eachother.

2015-05-20  Jan Nieuwenhuizen  <janneke@gnu.org>

	Undo (list ()) experiment.

	g: use (list (elements)).

2015-05-19  Jan Nieuwenhuizen  <janneke@gnu.org>

	gaiag: animate: remove define-method.

2015-05-21  Jan Nieuwenhuizen  <janneke@gnu.org>

	gaiag: table-event: remove define-method.

2015-05-16  Jan Nieuwenhuizen  <janneke@gnu.org>

	gaiag: norm-event: remove define-method.

	gaiag: pretty: remove define-method.

	gaiag: norm: remove define-method.

	gaiag: table-state: remove define-method.

2015-05-21  Jan Nieuwenhuizen  <janneke@gnu.org>

	gaiag: json-table: remove define-method.

2015-05-15  Jan Nieuwenhuizen  <janneke@gnu.org>

	gowig (goops without goops): goops resolver +sed runs without goops.

	gaiag: resolve: remove define-method.

2015-05-14  Jan Nieuwenhuizen  <janneke@gnu.org>

	g: enum, imported, model reorder for gaiag.

	g: norm: combining guard fixes.

	g: table/pretty: handle imported? retain toplevel types and system.

2015-05-12  Jan Nieuwenhuizen  <janneke@gnu.org>

	g: non-goops table-state, table-event.

2015-05-16  Jan Nieuwenhuizen  <janneke@gnu.org>

	gaiag/asdgenerator: use (event, (port, (enum name scope, (fields.

2015-05-14  Jan Nieuwenhuizen  <janneke@gnu.org>

	gaiag: norm-event: thinko.

	gaiag: table: handle components without behaviour.

	gaiag: norm: combining guard fixes.

	gaiag: pretty: handle *global*.

	gaiag: table: remove initial harder.

	gaiag: table: retain toplevel types and system.

2015-05-13  Jan Nieuwenhuizen  <janneke@gnu.org>

	gaiag: table-state: use <state>.<Initial>. Fixes clashing `state' variable substitution.

	gaiag: pretty: handle injected, expressions.

	gaiag: pretty: whitespace nits.

	gaiag: table-state, table-event: fix for systems.

	gaiag: table-event: retain model content.

	gaiag: pretty: do not add extra braces.

	gaiag: table: stable ordering of models.

	json-table: !expression fix.

2015-05-08  Rutger van Beusekom  <rutger.van.beusekom@verum.com>

	gaiag: c++: remove config hax0r.

2015-05-10  Jan Nieuwenhuizen  <janneke@gnu.org>

	gaiag: table-event: handle inner guards in compound.

	gaiag: table-event: handle inner guards, retain otherwise.

	gaiag: table-event, table-state: output transformed dezyne code.

	gaiag: table-event: use table-state result.

	gaiag: table-event: new table; table-state: rename from table.

	gaiag: norm-event: new normal form.

	gaiag: pretty: remove gratituous parens on or.

	gaiag: display: fix display of scope in types and fields in enum.

2015-05-08  Jan Nieuwenhuizen  <janneke@gnu.org>

	gaiag: cs: injection fix.

	gaiag: javascript: add locator, support injection.

	gaiag: cs: add locator, support injection.

	gaiag: java: Locator fix.

	gaiag: java: add locator, support injection.

2015-05-05  Rob Wieringa  <Rob.Wieringa@verum.com>

	add 'guild' to configuation

2015-05-08  Jan Nieuwenhuizen  <janneke@gnu.org>

	gaiag: c: cleanup injection.

	gaiag: goops: add locator, support injection.

2015-05-07  Jan Nieuwenhuizen  <janneke@gnu.org>

	gaiag: python: add locator, support injection.

	configure: add check for boost/algorithm/string.hpp. Do we need this?!

2015-05-06  Jan Nieuwenhuizen  <janneke@gnu.org>

	README: document make promote.

	configure: add check for mono.

2015-05-05  Jan Nieuwenhuizen  <janneke@gnu.org>

	gaiag: cs: updates for *global*.

	gaiag: cs: grok extern variable without default value.

	gaiag: cs: add illegal handler.

	gaiag: cs: main: valued replies.

2015-05-04  Jan Nieuwenhuizen  <janneke@gnu.org>

	gaiag: cs: update for global, new generic main.

	gaiag: cs: rename from mono.

2015-04-12  Jan Nieuwenhuizen  <janneke@gnu.org>

	gaiag: mono: return value and dataparams.

	gaiag: mono: generate.

	gaiag: runtime: mono: Initial.

2015-05-05  Jan Nieuwenhuizen  <janneke@gnu.org>

	gaiag: remove comments.

	gaiag: util: use gom:types, remove enum, int, extern duplication.

	gaiag: update baseline.

	gaiag: resurrect c-alarm.

	gaiag: table: use first enum variable.

2015-04-23  Jan Nieuwenhuizen  <janneke@gnu.org>

	gaiag: introduce *global* scope.

	global enum cleanup: c++: use global_, global::.

	gaiag: resolve type/events cleanup.

	webapp: client: parse.jison: up to par with gaiag parser.

	gaiag: parser cleanup.

2015-04-22  Jan Nieuwenhuizen  <janneke@gnu.org>

	gaiag: update parser and backends for global types.

2015-04-21  Jan Nieuwenhuizen  <janneke@gnu.org>

	configure: add check-pkg-config.

	configure: add pkg-config.

2015-04-20  Jan Nieuwenhuizen  <janneke@gnu.org>

	goops: runtime: bugfix.

	runtime: main: use log_in/log_out (was log_void). Removes out.return from trace.

	runtime: add config prototype.

	python: runtime: add illegal handler.

	javascript: runtime: add illegal handler.

	java: runtime: add illegal handler.

	goops: runtime: add illegal handler.

	c: runtime: add illegal handler.

	c++: runtime: add illegal handler.

	gaiag: c++: locator: use struct throughout. Silences clang.

2015-04-19  Jan Nieuwenhuizen  <janneke@gnu.org>

	gaiag: java: main: implement valued returns.

2015-04-18  Jan Nieuwenhuizen  <janneke@gnu.org>

	gaiag: c: main: implement valued replies.

	gaiag: goops: main: implement valued replies.

	gaiag: c++: main: refactor.

	gaiag: javascript: main: refactor.

	gaiag: python: main: log returns, read reply values.

	gaiag: javascript: main: log returns, read reply values.

2015-04-17  Jan Nieuwenhuizen  <janneke@gnu.org>

	gaiag: c++: main: log returns, read reply values.

2015-04-15  Jan Nieuwenhuizen  <janneke@gnu.org>

	Add ./configure, update README.

2015-04-17  Jan Nieuwenhuizen  <janneke@gnu.org>

	gaiag: main: only return reply if matches enum.

2015-04-17  Jan Nieuwenhuizen  <jan@avatar.nl>

	gaiag: c++: main: read cin for valued replies.

2015-04-16  Jan Nieuwenhuizen  <jan@avatar.nl>

	gaiag: python: use value class V.

	gaiag: python: move runtime info into runtime.Info ().

2015-04-15  Jan Nieuwenhuizen  <janneke@gnu.org>

	gaiag: main: all languages: return first value of enum for valued returns.

2015-04-15  Jan Nieuwenhuizen  <jan@avatar.nl>

	makefile: fixes for targets regression, test-suite.

2015-04-15  Jan Nieuwenhuizen  <janneke@gnu.org>

	make check: only unit tests, make regression: use test suite.

	Add README, new target: make help, test and dezyne-server cleanups.

2015-04-14  Jan Nieuwenhuizen  <janneke@gnu.org>

	gaiag: code: update baseline.

	gaiag: code: init-value fixes.

	gaiag: java: main: fix for Reply.dzn.

2015-04-12  Jan Nieuwenhuizen  <janneke@gnu.org>

	webapp: client: parse.jison: parser.

2015-04-14  Jan Nieuwenhuizen  <janneke@gnu.org>

	gaiag: resolve: (resolve-mixed): remove.

2015-04-12  Jan Nieuwenhuizen  <janneke@gnu.org>

	gaiag: language/dezyne/parse.scm: cleanup.

2015-04-14  Jan Nieuwenhuizen  <janneke@gnu.org>

	gaiag: java: update baseline.

2015-04-12  Jan Nieuwenhuizen  <janneke@gnu.org>

	gaiag: javascript: tracing corner case. Fixes dataparam.

2015-04-11  Jan Nieuwenhuizen  <janneke@gnu.org>

	gaiag: java: handle valued calls and parameters in main.

	Revert "gaiag: java: use getters/setters for ports."
	This reverts commit ec101c9d1f8a2b82620475f9fee11de5a2144f00.

	gaiag: java: use getters/setters for ports.

	gaiag: java: suppress warning.

	gaiag: java: return values and dataparams.

	gaiag: java: have illegal throw; WAS: assert, disabled by default.

	gaiag: java: implement runtime.

2015-04-10  Jan Nieuwenhuizen  <janneke@gnu.org>

	gaiag: java: add runtime data to components.

	gaiag: java: start fire-event main.

2015-04-13  Rutger van Beusekom  <rutger.van.beusekom@verum.com>

	gaiag: c++: declare ports in binding order, fixes c++ member initializer list warnings.

2015-04-13  Jan Nieuwenhuizen  <janneke@gnu.org>

	gaiag: update baseline.

	gaiag: code: fix for FIELD of local enum.

2015-04-10  Jan Nieuwenhuizen  <janneke@gnu.org>

	gaiag: main: javascript, python fill-event cleanup.

	gaiag: goops: update baseline.

	gaiag: goops: support data parameters.

	gaiag: goops: update baseline.

	gaiag: goops: fixes for goops-alarm.

	gaiag: goops: fully functional runtime.

	gaiag: goops: implement c++-like tracing.

	gaiag: goops: add initial tracing.

2015-04-09  Jan Nieuwenhuizen  <janneke@gnu.org>

	gaiag: goops: use class for interface's ports.

	gaiag: goops: start runtime.

	gaiag: javascript: cleanup fill_event_map. Fixes code trace equivalence.

	gaiag: python: cleanup fill_event_map. Fixes code trace equivalence.

	gaiag: c: cleanup fill_event_map.

	gaiag: c++: cleanup fill_event_map.

	gaiag: code: match c++ trace output in c, javascript, python.

2015-04-09  Buildmaster  <buildmaster@build3.oban.verum.local>

	webapp: use dzn client from source tree.

2015-04-09  Jan Nieuwenhuizen  <janneke@gnu.org>

	gaiag: c, c++, javascript, python: non-strict fire-event in main.

	java: updates for new test framework.

2015-04-08  Jan Nieuwenhuizen  <janneke@gnu.org>

	goops: updates for new test framework.

	gaiag: remove obsolete snippets.

	gaiag: c++: fix code, choice and glue targets.

	gaiag: code: update baseline.

	gaiag: python: fill event map in generated main.

	gaiag: javascript: fill event map in generated main.

	webapp: update to c,c++ generated main.

	gaiag: c: fill event map in generated main.

2015-04-07  Jan Nieuwenhuizen  <janneke@gnu.org>

	gaiag: c++: fill event map in generated main.

2015-04-03  Jan Nieuwenhuizen  <janneke@gnu.org>

	runtime: makefile: update for generic events. Fixes webapp/test.sh.

	gaiag: c++: TEST_EVENT: do not overwrite earlier events. Fixes lego ctrl.calibrate.

	gaiag: python: fire events to components.

	gaiag: javascript: fire events to components.

	webapp: client: support javascript.

	gaiag: c++: TEST_EVENTS: support out-parameters.

2015-04-02  Jan Nieuwenhuizen  <janneke@gnu.org>

	gaiag: runtime: c++: merge old and new generic main.

	gaiag: c++: fire events to components.

2015-04-02  Maarten van de Waarsenburg  <maarten.van.de.waarsenburg@verum.com>

	Update c++alarm baseline

2015-04-01  Jan Nieuwenhuizen  <janneke@gnu.org>

	gaiag: code: update baseline.

	gaiag: c++: update glue for new runtime.

	gaiag-check: fix target.

	gaiag: runtime: move everyting from webapp.

	gaiag: runtime: move bits from webapp.

	gaiag: c++: runtime: add dump_tree().

	gaiag: python: add runtime instance to components.

	gaiag: python: add flushes to runtime.

	gaiag: javascript: add flushes to runtime.

	gaiag: runtime: c: fix locator_clone. Allows lego to run.

2015-03-31  Jan Nieuwenhuizen  <janneke@gnu.org>

	gaiag: c: set performs_flush = true for dezyne components.

2015-04-01  Paul Hoogendijk  <paul.hoogendijk@verum.com>

	runtime c++: added dzn_ to meta and rt to avoid nameclashes

2015-03-31  Paul Hoogendijk  <paul.hoogendijk@verum.com>

	runtime c: rename fields meta and sub to avoid nameclashes

2015-03-30  Paul Hoogendijk  <paul.hoogendijk@verum.com>

	runtime c: add performs_flush status bit

	runtime c++: add performs_flush status bit

2015-03-25  Jan Nieuwenhuizen  <janneke@gnu.org>

	gaiag: c: initialize all ports.

2015-03-19  Jan Nieuwenhuizen  <janneke@gnu.org>

	rename makeutils to make.

2015-03-25  Jan Nieuwenhuizen  <janneke@gnu.org>

	Revert "gaiag: code: rename parameters in-line, remove alias."
	This reverts commit 6b275932da222b109c059de3626fe30b2ea0ada4.

	Revert "gaiag: code: alias: parameter alias thinko. Fixes lego."
	This reverts commit d443ed340e45f6ac38194daabc3196de188acfd5.

	gaiag: code: alias: parameter alias thinko. Fixes lego.

	gaiag: update baseline.

	gaiag: makefile update.

	gaiag: code: rename parameters in-line, remove alias.

	gaiag: python: add dataparam to baseline.

	python: dataparam: implement.

2015-03-24  Jan Nieuwenhuizen  <janneke@gnu.org>

	gaiag: python: add runtime.

	gaiag: javascript: place events in recipient queue iso sender.

	gaiag: c++: runtime: throw iso assert.

	gaiag: c: remove map.

	gaiag: c: place events in recipient queue iso sender.

2015-03-23  Jan Nieuwenhuizen  <janneke@gnu.org>

	gaiag: c: add tracing.

2015-03-20  Jan Nieuwenhuizen  <janneke@gnu.org>

	gaiag: c: move tracing to bindings.

	gaiag: c: move runtime_defer into binding.

2015-03-19  Jan Nieuwenhuizen  <janneke@gnu.org>

	gaiag: c: dataparam.c: go through system.

2015-03-18  Jan Nieuwenhuizen  <janneke@gnu.org>

	gaiag: c: runtime: add handle_event inside defer. Fixes semantics of Alarm with Adaptor.

	Revert "c: add runtime_comp struct"

	Revert "c: allow for static queues"

	Revert "runtime c: clean up + fix queue issue if length 1"

	gaiag: javascript: update baseline.

	gaiag: javascript: further data parameter cleanup.

2015-03-24  Jan Nieuwenhuizen  <janneke@gnu.org>

	gaiag: remove runtime from baseline.

	gaiag: c++: fix alarm by adding flush.

2015-03-24  Paul Hoogendijk  <paul.hoogendijk@verum.com>

	runtime c++: move handle inside flush iso argument of defer

	runtime c++: place events in recipient queue iso sender

2015-03-17  Jan Nieuwenhuizen  <janneke@gnu.org>

	gaiag: javascript: update baseline.

	gaiag: javascript: cleanup data parameters.

	gaiag: code: update baseline.

2015-03-16  Jan Nieuwenhuizen  <janneke@gnu.org>

	gaiag: javascript: add tracing.

	gaiag: javascript: add runtime.

2015-03-12  Rutger van Beusekom  <rutger.van.beusekom@verum.com>

	gaiag: c++: update baseline.

2015-03-13  Rutger van Beusekom  <rutger.van.beusekom@verum.com>

	gaiag: c++: remove redundant name.

2015-03-12  Rutger van Beusekom  <rutger.van.beusekom@verum.com>

	gaiag: c++: runtime: fix flush issue in valued_helper.

	gaiag: c++: add component type to meta.

	gaiag: c++: runtime: always handle deferred events. Fixes lego/Adaptor-Alarm.

	gaiag: c++: runtime: log component path.

2015-03-11  Rutger van Beusekom  <rutger.van.beusekom@verum.com>

	gaiag: c++: update baseline.

	gaiag: c++: check bindings.

	gaiag: c++: update baseline.

	gaiag: c++: use std::string. Renders initializations in main optional.

2015-03-10  Jan Nieuwenhuizen  <janneke@gnu.org>

	gaiag: c++: update baseline.

	gaiag: c++: remove gratituous std::function and this->.

	gaiag: code: introduce string-if.

	gaiag: c++: update baseline.

	gaiag: c++: cleanup tracing.

2015-03-10  Rutger van Beusekom  <rutger.van.beusekom@verum.com>

	gaiag: c++: cleanup port meta.

	gaiag: c++: update baseline.

2015-03-10  Jan Nieuwenhuizen  <janneke@gnu.org>

	gaiag: c++: cleanup bindings. Depends on c++11.

2015-03-09  Paul Hoogendijk  <paul.hoogendijk@verum.com>

	system view: disallow editing diagram

	runtime c: clean up + fix queue issue if length 1

2015-02-23  Paul Hoogendijk  <paul.hoogendijk@verum.com>

	c: allow for static queues

2015-02-18  Paul Hoogendijk  <paul.hoogendijk@verum.com>

	c: add runtime_comp struct

2015-03-03  Rutger van Beusekom  <rutger.van.beusekom@verum.com>

	gaiag: javascript: fix dataparam.

	gaiag: c++: check: add c++-choice.

	gaiag: update baseline.

	gaiag: c++: fix connect/defer for dataparam.

2015-02-27  Rutger van Beusekom  <rutger.van.beusekom@verum.com>

	gaiag: c++: proper meta object initialisation.

2015-02-26  Rutger van Beusekom  <rutger.van.beusekom@verum.com>

	gaiag: c++: move runtime_defer to binding.

	gaiag: c++: add tracing for returns.

2015-03-02  Rutger van Beusekom  <rutger.van.beusekom@verum.com>

	gaiag: c++: update traces.

	gaiag: c: fix out parameter for function call.

2015-02-27  Rutger van Beusekom  <rutger.van.beusekom@verum.com>

	gaiag: c/c++: update baseline.

	gaiag: dataparam fix signatures of out events.

2015-02-26  Paul Hoogendijk  <paul.hoogendijk@verum.com>

	runtime c++: fix flush issue

	runtime c: fix flush issue

	runtime c++: allow for mixing with runtime c

2015-02-18  Paul Hoogendijk  <paul.hoogendijk@verum.com>

	c: add runtime_comp struct

2015-02-10  Paul Hoogendijk  <paul.hoogendijk@verum.com>

	add own malloc and calloc implementation

2015-02-24  Rutger van Beusekom  <rutger.van.beusekom@verum.com>

	gaiag: c++: move tracing into binding, add annotation.

2015-02-25  Rutger van Beusekom  <rutger.van.beusekom@verum.com>

	gaiag: c++: replace bind with c++-11 lambda. Fixes Dataparam.dzn proxy.

	gaiag: resolve: pass parameter direction. Fixes out parameters on functions.

2015-02-24  Rutger van Beusekom  <rutger.van.beusekom@verum.com>

	gaiag: c++: replace generic connect with specific asserting connect.

2015-02-20  Jan Nieuwenhuizen  <janneke@gnu.org>

	gaiag: baseline update.

	gaiag: code: fix guard filter bug. Fixes alarm trace with normstate.

2015-02-19  Jan Nieuwenhuizen  <janneke@gnu.org>

	baseline update.

	gaiag: code: robustification; work without normstate in most cases.

	gaiag: update baseline.

	gaiag: code: use compound for top level guards. Fixes goops.

	gaiag: code: filter guards by event.

2015-02-19  Rutger van Beusekom  <rutger.van.beusekom@verum.com>

	example generating broken c++.

2015-02-19  Jan Nieuwenhuizen  <janneke@gnu.org>

	gaiag: code: add regression tests.

	gaiag: code: generate either top level guards or ons.

	gaiag: code: separate toplevel guards and ons.

	gaiag: code: on: respect compound flag.

	gaiag: code: apply normstate. Fixes/works around multiple top ons.

	gom: map: (clone): retain-source-properties. Fixes imported? after normstate.

2015-02-18  Jan Nieuwenhuizen  <janneke@gnu.org>

	gaiag: code: preparations for two-top-ons.

	gaiag: code: support [guard][guard].

	gaiag: grok missing top level guard.

2015-01-30  Rutger van Beusekom  <rutger.van.beusekom@verum.com>

	gaiag: csp: allow a modeling event to invisibly change state.

2015-01-30  Jan Nieuwenhuizen  <janneke@gnu.org>

	gaiag: c: static type me harder. Thanks Paul!

	gaiag: javascript: implement data parameters.

	gaiag: table: add regression tests.

	gaiag: table: only dissolve guards from declarative sequence. Fixes z#6793.

2015-01-29  Jan Nieuwenhuizen  <janneke@gnu.org>

	gaiag: table: ignore not-state-enum field sugar. Fixes z#6784.

	gaiag: table: handle otherwise as expression. Fixes z#6783.

	gaiag: table: let declarative compounds dissolve. Fixes z#6781.

	gaiag: table: handle recursive functions properly. Removes STATE.<unkown>s.

	gaiag: table: next state fix for if/then. Fixes z#6791.

	gaiag: table: fix negate then.

	gaiag: table: do not sort on clauses. Fixes z#6777.

	gaiag: table: retain-source-properties harder. Fixes click on if.

	gaiag: fix annotate tests.

	gaiag: fix annotate-locations; bring under test.

	move webdemo/examples to webapp/server/commands/examples.

2015-01-28  Jan Nieuwenhuizen  <janneke@gnu.org>

	gaiag: c: move malloc to runtime.

	gaiag: ast: cleanup imported?

	gaiag: parse: set source location for systems.

2015-01-27  Jan Nieuwenhuizen  <janneke@gnu.org>

	gaiag: handle imported? models, remove --file flag.

	gaiag: c/c++: refactor.

	gaiag: c++: add glue-Component.cc test.

	webapp: make runtime available through ls /runtime.

2015-01-27  Rutger van Beusekom  <rutger.van.beusekom@verum.com>

	gaiag: update baseline.

2015-01-26  Rutger van Beusekom  <rutger.van.beusekom@verum.com>

	c runtime: rm callback.h.

	csp: remove false positive livelock case.

	c runtime: rm callback.h.

2015-01-23  Rutger van Beusekom  <rutger.van.beusekom@verum.com>

	gaiag: c: rename internal, helper.

2015-01-22  Jan Nieuwenhuizen  <janneke@gnu.org>

	gaiag: c: remove gratituous semicolons for extern declarations.

	gaiag: regression: add Choice.dzn.

2015-01-21  Jan Nieuwenhuizen  <janneke@gnu.org>

	gaiag: c: functions: handle in-event out parameters and out events.

2015-01-21  Rutger van Beusekom  <rutger.van.beusekom@verum.com>

	gaiag: update baseline.

	c runtime: make ISO conformant (fixes pedantic warnings).

	gaiag: goops: field-expression: update fetching member variable.

	examples: add camera (C & C++).

	c runtime: fix map_iterate.

2015-01-21  Jan Nieuwenhuizen  <janneke@gnu.org>

	gaiag: c: compile full regression suite.

	gaiag: c: binary operators.

	gaiag: c: support functions. Fixes compiling camera.

2015-01-17  Jan Nieuwenhuizen  <janneke@gnu.org>

	gaiag: c: use port forwarding.

2015-01-15  Jan Nieuwenhuizen  <janneke@gnu.org>

	gaiag: c: implement injection.

2015-01-12  Jan Nieuwenhuizen  <janneke@gnu.org>

	gaiag: c: data parameters.

2015-01-15  Jan Nieuwenhuizen  <janneke@gnu.org>

	Dataparam.dzn: avoid warnings in generated code.

	Update Dataparam.dzn: rewrite unfixable $$.

2015-01-14  Jan Nieuwenhuizen  <janneke@gnu.org>

	gaiag: code: identify parameter assignment. Fixes C out-parameter assign.

2015-01-09  Jan Nieuwenhuizen  <janneke@gnu.org>

	gaiag: csp: fix local sugar. add test, regression, enable in OK_NOK.dzn.

2015-01-12  Jan Nieuwenhuizen  <janneke@gnu.org>

	gaiag: c: updates for enum, reply, valued action, members.

	gaiag: c++: make all member functions private.

	gaiag: c: replace libffcall1 closures by named _PORT_EVENT wrappers.

2015-01-11  Jan Nieuwenhuizen  <janneke@gnu.org>

	gaiag: c: runtime: implement.

2015-01-09  Rutger van Beusekom  <rutger.van.beusekom@verum.com>

	examples: rename lopw.

	OK_NOK: remove sugar until fixed.

2015-01-08  Jan Nieuwenhuizen  <janneke@gnu.org>

	webapp: resurrect codegen.

	gaiag: c: done, for alarm.

	checkpoint: interface, component done

	gaiag: c: initial generator, copy of c++.

	gaiag: make: add c-alarm, c-regression.

	c update

	gaiag: add c baseline and runtime.

	gaiag: resurrect make check. FIXME: webdemo/examples/OK_NOK.dzn disabled.

2014-12-17  Rutger van Beusekom  <rutger.van.beusekom@verum.com>

	make/csp: produce lts.

	make: fix check.

	semantics: add lts target for webdemo examples.

2014-12-08  Jan Nieuwenhuizen  <janneke@gnu.org>

	webdemo: cloud: enable if authenticated.

2014-12-16  Jan Nieuwenhuizen  <janneke@gnu.org>

	Gaiag: table: if no models found, return (#,(hash)). Fixes `state tables' for systems.

2014-12-10  Jan Nieuwenhuizen  <janneke@gnu.org>

	Gaiag: table: -f, --file: new option.

2014-12-07  Rutger van Beusekom  <rutger.van.beusekom@verum.com>

	webapp: add database.

2014-12-02  Jan Nieuwenhuizen  <janneke@gnu.org>

	Gaiag: javascript-alarm: resurrect.

2014-12-01  Jan Nieuwenhuizen  <janneke@gnu.org>

	webapp: add cancel.

2014-11-26  Jan Nieuwenhuizen  <janneke@gnu.org>

	Gaiag: table: handle nested compounds.

2014-11-25  Jan Nieuwenhuizen  <janneke@gnu.org>

	Gaiag: table: retain literal otherwise if guard is not collapsed.

2014-11-24  Jan Nieuwenhuizen  <janneke@gnu.org>

	Gaiag: table: annotate otherwise before pushing down on.

	Gaiag: json-table: (->symbol): handle operators. Fixes guard expressions.

2014-11-19  Jan Nieuwenhuizen  <janneke@gnu.org>

	Gaiag: code: remove gratituous compounds, cleanup javascript runtime.

2014-11-19  Rutger van Beusekom  <rutger.van.beusekom@verum.com>

	webdemo: running camera example.

	gaiag: update js baseline.

2014-11-19  Jan Nieuwenhuizen  <janneke@gnu.org>

	Gaiag: code: only defer out events. Fixes javascript Alarm.

2014-11-18  Jan Nieuwenhuizen  <janneke@gnu.org>

	Gaiag: java, goops, python: include only once. Fixes check java.

2014-11-17  Jan Nieuwenhuizen  <janneke@gnu.org>

	Gaiag: csp: range check for assignments and variables (no function calls).

	Gaiag: resolve: add range check for int members.

2014-11-18  Jan Nieuwenhuizen  <janneke@gnu.org>

	Gaiag: oops: resurrect make pretty/make check.

	Gaiag: json-table: also add callbacks from non-recursive functions.

	Gaiag: json-table: for interface: provide callbacks for triggers.

2014-11-14  Jan Nieuwenhuizen  <janneke@gnu.org>

	Gaiag: code: javascript and c++ runtime and member assign fix.

	Gaiag: c++: use .hh on runtime.hh, locator.hh.

2014-11-13  Jan Nieuwenhuizen  <janneke@gnu.org>

	Gaiag: pretty: add newline to typedef.

	Gaiag: c++: handle //-comments in map file. Fixes `make cpp' in lopw.

	webdemo: codegen: runnable c++ code download; showcase: AlarmSystem.dzn.

	Gaiag: csp: remove debug printing.

	Gaiag: c++: move dezyne models into namespace dezyne.

	Gaiag: table: bugfix/typo finding first enum variable.

2014-11-12  Jan Nieuwenhuizen  <janneke@gnu.org>

	Gaiag: json-table: analyse functions for next.

	Gaiag: c++: remove component, interpreter namespaces; use dezyne for glue.

	Gaiag: c++: remove {interface,component}-*-c3 naming.

	Gaiag: c++: update glue for I<interface> convention.

2014-11-11  Jan Nieuwenhuizen  <janneke@gnu.org>

	baseline: code: add double_out_on_modeling.

	Gaiag: resolve: add parameter/argument count check.

2014-11-11  Rutger van Beusekom  <rutger.van.beusekom@verum.com>

	Gaiag: csp: tail-call: mark tail calls.

	Gaiag: csp: rewrite ifthenelse_.

	Gaiag: examples/nested.asd: new file.

2014-11-10  Rutger van Beusekom  <rutger.van.beusekom@verum.com>

	csp: webdemo: queue multiple out events before taking the first out.

2014-11-07  Rutger van Beusekom  <rutger.van.beusekom@verum.com>

	csp: synchronize on the end.

2014-11-11  Rutger van Beusekom  <rutger.van.beusekom@verum.com>

	gaiag: csp: combine all guards in normstate.

2014-11-06  Rutger van Beusekom  <rutger.van.beusekom@verum.com>

	gaiag: webdemo: merge -l csp and -l asserts to avoid invoking gaiag a second time.

	csp: webdemo: make verification queue size user defined.

2014-11-12  Rutger van Beusekom  <rutger.van.beusekom@verum.com>

	csp: update baseline for: csp: rename events ...

2014-11-12  Jan Nieuwenhuizen  <janneke@gnu.org>

	asd-to-dzn: more Gaiag bits.

2014-11-12  Rob Wieringa  <Rob.Wieringa@verum.com>

	asd-to-dzn: include gaiag stuff

2014-11-12  Rutger van Beusekom  <rutger.van.beusekom@verum.com>

	gaiag: csp: rename reply events from port type to port name in deterministic check trace.

2014-11-11  Jan Nieuwenhuizen  <janneke@gnu.org>

	locations fix for ancient guile on 12.04.

	Gaiag: json-table: upon illegal: empty next.

2014-11-10  Jan Nieuwenhuizen  <janneke@gnu.org>

	Gaiag: table: hack for location of guards.

	Gaiag: table: sorted ons.

	Gaiag: (gom compare): collect all (equal?).

	Gaiag: (gom compare): new module.

	Gaiag: csp: add parentheses for if. Fixes examples/regression/ifreply.asd.

2014-11-09  Jan Nieuwenhuizen  <janneke@gnu.org>

	Gaiag: json-table: handle numerics. Fixes LoadUnloadProtocolComp.

	Gaiag: parse/pretty: handle void return.

	Gaiag: pretty: handle extern variable declaration without initial value.

	Gaiag: pretty: handle event parameters.

	Gaiag: pretty: add missing = to extern declaration.

	webdemo: make triggers clickable.

2014-11-08  Jan Nieuwenhuizen  <janneke@gnu.org>

	Gaiag: pretty: if/else: always print compound.

	Gaiag: table: revert adding if/else compounds.

	Gaiag: table: if/else: always compound. Fixes indentation.

	Gaiag: thinko: nonzero exit upon failure.

	Gaiag: pretty: if: remove gratituous newlines.

	Gaiag: table: handle choice. Fixes pauls.asd:IComp.

	Gaiag: json-table: next typo.

	Gaiag: table: collapse adjoining guards.

	Gaiag: json-table: separate-out single guards too.

2014-11-07  Jan Nieuwenhuizen  <janneke@gnu.org>

	Gaiag: table: handle ISiren.

	Gaiag: table: unknown state.

	Gaiag: table: self-transitions and if-branching for next column.

	Gaiag: table: artificial table for behaviour without enum.

	Gaiag: table: bugfix: do not remove empty compounds.

2014-11-06  Jan Nieuwenhuizen  <janneke@gnu.org>

	webdemo: state-table: experimental NEXT.

	Gaiag: table: retain source location of compounds.

	Gaiag: table: evaluate if.

	Gaiag: table: evaluate otherwise.

	Gaiag: table: locations.

2014-11-06  Paul Hoogendijk  <paul.hoogendijk@verum.com>

	add choice showcasing example

2014-11-05  Jan Nieuwenhuizen  <janneke@gnu.org>

	webdemo: state-table: new view.

2014-11-04  Jan Nieuwenhuizen  <janneke@gnu.org>

	Gaiag: table: new module. Adds state table output.

2014-11-06  Jan Nieuwenhuizen  <janneke@gnu.org>

	Gaiag: resolve: do not prune imports. Fixes make pretty/make check.

2014-11-05  Rutger van Beusekom  <rutger.van.beusekom@verum.com>

	gaiag: c++: skip c++ generation for components without a provides port.

	gaiag: c++: support empty argument list (in case of illegal).

	Gaiag: resolve: register interfaces, components, systems. Allows use before define.

	make: remove default.asd from make check.

	make: temporarily disable bareSiliconAlarm.asd.

2014-11-04  Rutger van Beusekom  <rutger.van.beusekom@verum.com>

	csp: remove wellformedness check on empty behaviours.

	csp: empty guarded compound or behaviour compound => STOP

2014-11-04  Jan Nieuwenhuizen  <janneke@gnu.org>

	Gaiag: ast: add and print locations.

	Gaiag: parse: (syntax-error-handler): rename [WAS: syntax-handler]. Fixes warning.

2014-11-03  Jan Nieuwenhuizen  <janneke@gnu.org>

	Gaiag: parse: disallow extern int.

	Gaiag: parse: bool is keyword. Disallows extern bool.

	Gaiag: parse: remove dead code.

2014-11-04  Paul Hoogendijk  <paul.hoogendijk@verum.com>

	fix broken csp-test

2014-11-03  Paul Hoogendijk  <paul.hoogendijk@verum.com>

	CSP: add braces around generated function

2014-10-31  Jan Nieuwenhuizen  <janneke@gnu.org>

	Gaiag: c++: read map from cwd too.

2014-10-30  Jan Nieuwenhuizen  <janneke@gnu.org>

	Gaiag: resolve: strip expression from assign, variable with action.

	Gaiag: parse: allow extern int.

	Gaiag: parse: allow direction on function parameters.

	Gaiag: parse: allow gratituous () on action in component.

2014-10-30  Rutger van Beusekom  <rutger.van.beusekom@verum.com>

	Gaiag: c++: handle unspecified value for data variables.

	Gaiag: parse/gom/resolve: handle unspecified value for data variables.

	Gaiag: csp: split modeling events for nondeterministic choice.

	Gaiag: code: handle implied empty statement of nondeterministic choice.

	Gaiag:csp: silence warnings.

2014-10-17  Jan Nieuwenhuizen  <janneke@gnu.org>

	Gaiag: csp: (purge-data): new function.

2014-10-29  Jan Nieuwenhuizen  <janneke@gnu.org>

	Gaiag: examples/regression/dataparam: add function call.

2014-10-30  Jan Nieuwenhuizen  <janneke@gnu.org>

	Gaiag: resolve: (resolve-error): rename [WAS: undefined-error].

	Gaiag: resolve: handle variable hiding event.

2014-10-29  Jan Nieuwenhuizen  <janneke@gnu.org>

	Gaiag: csp: valued function without parameters.

	Gaiag: do not add return for modeling events.

2014-10-27  Jan Nieuwenhuizen  <janneke@gnu.org>

	Gaiag: c++: data parameters.

	Gaiag: c++: data parameters.

2014-10-29  Rutger van Beusekom  <rutger.van.beusekom@verum.com>

	Gaiag: pretty: handle $data$ in argument.

2014-10-28  Rutger van Beusekom  <rutger.van.beusekom@verum.com>

	Gaiag: resolve: handle symbols as data values.

2014-10-18  Jan Nieuwenhuizen  <janneke@gnu.org>

	Gaiag: parse: cleanup.

2014-10-17  Jan Nieuwenhuizen  <janneke@gnu.org>

	asdgenerator: include extern definitions and data types.

	Gaiag: parse: add root. Helps OM-parser integration.

	Gaiag: resolve: <data>.

	Gaiag: gom: <data>: new class.

	Gaiag: examples/dataparam.asd: make well-formed.

	Gaiag: examples/Extern.asd: make well-formed.

	Gaiag: parse: handle $data$ properly. Allow as expression. Fixes $0$ etc.

2014-10-16  Jan Nieuwenhuizen  <janneke@gnu.org>

	Gaiag: pretty: <trigger> with <arguments>.

	Gaiag: csp: update for <event> with <signature>.

	Gaiag: code: update for <event> with <signature>.

	Gaiag: pretty: <event> with <signature>.

	Gaiag: resolve: trigger with arguments.

	Gaiag: gom: add <arguments> to <trigger>.

	Gaiag: gom: <event>: replace <type> with <signature>.

	Gaiag: code: <extern>.

	Gaiag: pretty: <extern>.

	Gaiag: resolve: <extern>.

	Gaiag: gom: <extern>: new class.

	Gaiag: examples/arguments.asd: make well-formed.

	Gaiag: parse: allow empty parameter list on event.

	Gaiag: parse: trigger with arguments.

	Gaiag: parse: event parameters.

	Gaiag: parse: extern declaration.

	Gaiag: remove stray cc, hh.

	Gaiag: examples/dataparam.asd: new file.

2014-10-28  Paul Hoogendijk  <paul.hoogendijk@verum.com>

	refactor csp-combinators

2014-10-24  Paul Hoogendijk  <paul.hoogendijk@verum.com>

	Add first rewrite combinators

2014-10-15  Rutger van Beusekom  <rutger.van.beusekom@verum.com>

	gaiag: c++: implement injection.

2014-10-21  Rutger van Beusekom  <rutger.van.beusekom@verum.com>

	gaiag: csp: add an example to capture completeness and modeling event interaction.

	gaiag: make: remove -update from csp target.

	gaiag: csp: update baseline for completeness.

	gaiag: csp: fix completeness in combination with modeling events.

	gaiag: csp/webdemo: integrate completeness.

	gaiag: make: update baseline and pass make check.

	gaiag: csp: add completeness assert for interface.

	gaiag: csp: add completeness assert for component.

2014-10-15  Jan Nieuwenhuizen  <janneke@gnu.org>

	Gaiag: c++: remove stray blank lines.

	Gaiag: goops: fix !=.

	Gaiag: java: new language.

	Gaiag: javascript: update.

	Gaiag: java: updated baseline by Guillermo.

	Gaiag: baseline/alarm.java: Initial baseline.

	Gaiag: code: prepare for java.

	Gaiag: examples/regression/Reply7.asd: make well-formed.

	Gaiag: javascript: use in, out (WAS: ins, outs).

2014-10-14  Rutger van Beusekom  <rutger.van.beusekom@verum.com>

	Gaiag: csp: add Paul's fail tests to regression.

	Gaiag: parse: handle *, injected.

2014-10-15  Rutger van Beusekom  <rutger.van.beusekom@verum.com>

	help Ard-Jan.

2014-09-24  Henk Katerberg  <henk.katerberg@yahoo.com>

	Test asdinterpreter queue handling and add asdinterpreter test to make check

2014-10-14  Rutger van Beusekom  <rutger.van.beusekom@verum.com>

	Gaiag: csp: use process-based Q. Fixes WaferStageOutput.

	gaiag: csp: put in and out events on different channels.

2014-10-08  Rutger van Beusekom  <rutger.van.beusekom@verum.com>

	gaiag: csp: delete duplicate events in component channel declaration.

2014-10-13  Jan Nieuwenhuizen  <janneke@gnu.org>

	Gaiag: remove stray empty map file. Fixes make check on 12.04.

2014-10-13  Rutger van Beusekom  <rutger.van.beusekom@verum.com>

	Gaiag: update baseline for new naming convention.

	Gaiag: set PYTHONPATH.

2014-10-11  Jan Nieuwenhuizen  <janneke@gnu.org>

	webdemo: also distribute header.

2014-10-10  Jan Nieuwenhuizen  <janneke@gnu.org>

	Gaiag: make: check: add goops.

2014-10-09  Jan Nieuwenhuizen  <janneke@gnu.org>

	Gaiag: guile-goops: running baseline.

	Gaiag: guile-goops: initial baseline.

	Gaiag: c++: glue mapping.

	Gaiag: c++: document po_ mangling.

	Revert "glue mapping wip"
	This reverts commit 072d54dc9c332745441ee7765b5ea7e25b54b6f2.

	Gaiag: move json base, fixes scm2json.

2014-10-08  Jan Nieuwenhuizen  <janneke@gnu.org>

	Gaiag: coverage: add javascript, python.

	Gaiag: javascript: use === throughout.

	Gaiag: javascript: whitespace nits.

2014-10-06  Rutger van Beusekom  <rutger.van.beusekom@verum.com>

	glue mapping wip

2014-10-08  Jan Nieuwenhuizen  <janneke@gnu.org>

	Gaiag: c++: whitespace fixes.

	Gaiag: make: check: add python.

	Gaiag: make: python-update: speedup.

	Gaiag: make: c++-update: speedup.

	Gaiag: make: check: add javascript.

	Gaiag: code: move ! to template. Fixes Javascript.

	Gaiag: code: move == to template. Fixes Javascript.

	Gaiag: javascript: add missing semicolon.

	Gaiag: make: javascript-update: new target.

	Gaiag: javascript: add missing semicolon.

	Gaiag: javascript: make hacking.

2014-10-07  Jan Nieuwenhuizen  <janneke@gnu.org>

	Gaiag: c++: template cleanup: use (connect-ports).

	Gaiag: c++: template cleanup: use (init-bind).

	Gaiag: c++: template cleanup: use (init-port).

	Gaiag: c++: template cleanup: use (init-instance).

	Gaiag: code: (include-component): new function.

	Gaiag: c++/python: template cleanup: use (define-on) for declarations.

	Gaiag: c++: template cleanup: use (define-function).

	Gaiag: c++: template cleanup: use (define-on).

	Gaiag: c++: template cleanup: use (init-port).

	Gaiag: c++: template cleanup: use (init-member).

	Gaiag: c++: move templates.

	Gaiag: javascript: add missing snippets.

	Gaiag: code: (expression->string): parameterize and, or. Fixes javascript.

	Gaiag: code: (define-function): new function.

	Gaiag: code: (connect-ports): new function.

	Gaiag: code: (init-bind): new function.

	Gaiag: code: (init-instance): new function.

	Gaiag: code: (define-on): new function.

	Gaiag: code: (init-port): new function.

	Gaiag: code: (init-member): new function.

	Gaiag: javascript: declare-enum.

	Gaiag: code: (include-interface): new function.

	Gaiag: javascript: add baselines.

	Gaiag: code: remove dump-output duplication.

	Gaiag: code: remove *:import, *:gom duplication.

	Gaiag: code: remove *-module duplication.

	Gaiag: javascript: interfaces.

	Gaiag: code: (declare-io): new function.

	Gaiag: c++: (statements->string, expression->string, ...): remove.

2014-10-08  Rutger van Beusekom  <rutger.van.beusekom@verum.com>

	gaiag: csp: fix reply reordering.

	gaiag: csp: capture reply reordering in test.

2014-10-06  Paul Hoogendijk  <paul.hoogendijk@verum.com>

	gaiag: csp: split channels between events and returns.

2014-10-07  Rutger van Beusekom  <rutger.van.beusekom@verum.com>

	gaiag: remove example with undefined semantics.

	gaiag: make: speedup update.

2014-10-07  Jan Nieuwenhuizen  <janneke@gnu.org>

	Gaiag: python: runnable baseline: cd baseline && python alarm.py.

	Gaiag: c++: (statements->string, expression->string, ...): remove.

2014-10-06  Jan Nieuwenhuizen  <janneke@gnu.org>

	Gaiag: code: remove all pythonisms.

	Gaiag: code: (expression->string): move pythonims to python/snippets.

	Gaiag: code: (bool-expression->string): move pythonims to python/snippets.

	Gaiag: c++/python: (enum->identifier): remove.

	Gaiag: c++/python: (bind-port binding-name): remove.

	Gaiag: code: (->code): move all pythonisms to templates/python/snippets.

	Gaiag: c++: update.

	Gaiag: python: (statements->string): remove.

	Gaiag: code.scm: new module.

	Gaiag: templates/: split to directory per language.

2014-10-02  Rutger van Beusekom  <rutger.van.beusekom@verum.com>

	gaiag: csp: remove unused combinator.

2014-10-06  Jan Nieuwenhuizen  <janneke@gnu.org>

	Gaiag: python: update baseline.

2014-10-05  Jan Nieuwenhuizen  <janneke@gnu.org>

	Gaiag: test-suite: nitpick for upstream.

2014-10-04  Jan Nieuwenhuizen  <janneke@gnu.org>

	make: fix -C for gaiag.

	asdgenerator: add -M option for mangling.

2014-10-05  Jan Nieuwenhuizen  <janneke@gnu.org>

	Gaiag: resolve: do not cache unresolved goms. Fixes mixing type errors.

2014-10-04  Jan Nieuwenhuizen  <janneke@gnu.org>

	Gaiag: python: cleanup Enum, fix reply.

	Gaiag: python: fixes for member variables, LOPW, and nitpicks.

	Gaiag: python: add functions, integers, run regression test.

	Gaiag: python: running AlarmSystem.

	Gaiag: python: Alarm component.

	Gaiag: python: generate interface/Console.py.

	Gaiag: python: manual baseline for Alarm.

2014-10-03  Jan Nieuwenhuizen  <janneke@gnu.org>

	Initial python spec.

	Gaiag: coverage: resurrect.

2014-10-02  Jan Nieuwenhuizen  <janneke@gnu.org>

	Gaiag: wfc: remove debug printing.

	Gaiag: csp: only use csp-return for non-void returns.

	Gaiag: parse/gom: drop name/type reversal for parameter and variable.

	Gaiag: csp: remove <context-active> and <context-open>.

	Gaiag: csp: gom/goops: <csp-assign>.

	Gaiag: csp: gom/goops <cont>, <context-active>, <context-open>, <skip>.

	Gaiag: -m,--model: new option.

	asdgenerator: scm: only filter on model_name if set. Fixes make check.

2014-10-02  Rutger van Beusekom  <rutger.van.beusekom@verum.com>

	webdemo: add alarm system.

	gaiag: c++: formatting of inherited classes.

2014-10-01  Rutger van Beusekom  <rutger.van.beusekom@verum.com>

	gaiag: c++: add 1st version of queue.

	gaiag: normstate: split single on across multiple ports.

2014-10-02  Jan Nieuwenhuizen  <janneke@gnu.org>

	Gaiag: csp: (csp-tranform): refactor <csp-on>.

	Gaiag: csp: gom/goops: <the-end>.

2014-10-01  Jan Nieuwenhuizen  <janneke@gnu.org>

	Gaiag: csp: gom/goops: <context-vector>.

	Gaiag: csp: gom/goops: <voidreply>.

2014-10-02  Jan Nieuwenhuizen  <janneke@gnu.org>

	Gaiag: wfc: (interface): new function. Interface must have behaviour.

	Gaiag: wfc: add component test.

	Gaiag: parse/gom: retain empty-behaviour/no-behaviour property.

2014-10-01  Jan Nieuwenhuizen  <janneke@gnu.org>

	Gaiag: csp: (ast-transform-return): collapse into one function.

	Gaiag: csp: <csp>: use <context>; refactor <csp-*>.

	Gaiag: csp: gom/goops <context>.

	Gaiag: csp: throw if interface has no behaviour.

	Gaiag: reader: support .asdi extension. Fixes LOPW from new converter.

	Gaiag: resolve: re-enable type checking for signatures and variables.

	Revert "Gaiag: resolve: resolve PORT.enum.field to INTERFACE.enum.field. LOPW hack."
	This reverts commit af4513caef851e138491e31169fe745c4d5eb410.

	Revert "Gaiag: resolve: resolve type PORT.enum to type INTERFACE.enum. LOPW hack."
	This reverts commit 98f921ac43e6bb63121e2d3ca9cecdd3d53e6e06.

	Gaiag: resolve: map predicate thinko. Fixes ChuckAssignment.

	Gaiag: csp: (csp-transform): collapse to one function.

	Gaiag: csp: (ast-transform-): collapse to one function.

	Gaiag: csp: (ast-transform-): toplevel match: <compound>.

2014-09-30  Jan Nieuwenhuizen  <janneke@gnu.org>

	Gaiag: csp: support standalone variable init in if and if-compound.

	Gaiag: c++: support members of interface enum type.

	Gaiag: resolve: handle valued actions disguised as call, var.

2014-09-30  Rutger van Beusekom  <rutger.van.beusekom@verum.com>

	gaiag: c++: AlarmSystem glue.

	Gaiag: csp: handle missing reply in interface.

	Gaiag: wfc: bugfix.

	Gaiag: csp: reply event renaming.

2014-09-29  Jan Nieuwenhuizen  <janneke@gnu.org>

	Undo test throw.

	Remove CH_

2014-09-29  Rutger van Beusekom  <rutger.van.beusekom@verum.com>

	gaiag: csp: remove prefix-reply?

2014-09-29  Ladislau Posta  <ladislau.posta@verum.com>

	rename another file

2014-09-26  Rutger van Beusekom  <rutger.van.beusekom@verum.com>

	webdemo/gaiag: speedup verify all.

2014-09-26  Paul Hoogendijk  <paul.hoogendijk@verum.com>

	fix issue with deep illegals in if

	fix issue with (de)mangling of enum values

2014-09-20  Jan Nieuwenhuizen  <janneke@gnu.org>

	Gaiag: resolve: resolve type PORT.enum to type INTERFACE.enum. LOPW hack.

	Gaiag: resolve: resolve PORT.enum.field to INTERFACE.enum.field. LOPW hack.

2014-09-25  Jan Nieuwenhuizen  <janneke@gnu.org>

	Gaiag: c++: (c++:import): cut all but public part.

	Gaiag: csp: (csp:import): cut all components.

	Gaiag: resolve: (resolve:import): cut all but public part.

	Gaiag: parse: preserve component and interface location.

	Gaiag: resolve: add simple enum type checks.

2014-09-24  Jan Nieuwenhuizen  <janneke@gnu.org>

	Gaiag: lalr.upstream.scm: Sync with latest upstream patch offering.

2014-09-23  Jan Nieuwenhuizen  <janneke@gnu.org>

	Gaiag: resolve: add simple type checking.

	Gaiag: wfc: enable for all backends.

	Gaiag: wfc: use gom:collect. Eases adding of tests.

	Gaiag: factor-out retain-source-location.

	Gaiag: resolve: report undefined types.

	Gaiag: gom: (gom:interface-enum, gom:interface-integer): add type overloads.

	Gaiag: parse: retain source location of simple type.

	Gaiag: parse: retain location of type.

	Gaiag: examples/regression/Reply5.asd: promote to regression.

	Gaiag: resolve: notice undefined enum fields.

2014-09-22  Jan Nieuwenhuizen  <janneke@gnu.org>

	Gaiag: parse: location for var.

	Gaiag: parse: accept compound function type.

	Gaiag: parse: support compound types in initial variable declaration.

2014-09-23  Rutger van Beusekom  <rutger.van.beusekom@verum.com>

	gaiag: c++: top glue component.

2014-09-22  Rutger van Beusekom  <rutger.van.beusekom@verum.com>

	gaiag: c++: glue for bottom gen1 components.

	gaiag: c++: resurrect alarm_legacy.

2014-09-21  Jan Nieuwenhuizen  <janneke@gnu.org>

	Gaiag: c++: update baseline.

	Gaiag: c++: nits.

	Gaiag: c++: eradicate map-binds.

	Gaiag: c++: eradicate map-instances.

	Gaiag: c++: eradicate map-functions.

	Gaiag: c++: eradicate map-events.

	Gaiag: c++: eradicate map-ports.

	Gaiag: c++: eradicate map-port-events.

	Gaiag: c++: update legacy Alarm for port prefix.

	Gaiag: c++: eradicate map-variables part 2.

	Gaiag: c++: eradicate map-variables part 1.

	Gaiag: c++: add baselines.

	Gaiag: c++: refactoring.

	Gaiag: resolve: refactor using gom:utils.

2014-09-20  Jan Nieuwenhuizen  <janneke@gnu.org>

	Gaiag: c++: prefix event callbacks/calls with `port_'. Fixes LOPW.

	Gaiag: c++: fix provides_twice type mismatch.

	Gaiag: examples/regression/provides_twice.asd: new file.

	Gaiag: examples/regression/requires_twice.asd: new file.

2014-09-19  Jan Nieuwenhuizen  <janneke@gnu.org>

	Gaiag: use gom:find-triggers (WAS: gom:find-events).

	Gaiag: wfc: add checks for component.

	Gaiag: resolve: undefined identifier also for stray symbol.

	Gaiag: parse: type variables and bindings.

	Gaiag: resolve: check for existence of action's event and function.

	Gaiag: resolve/wfc: initial resolve/wfc error framework.

	Gaiag: parse: get start location of assignment just right.

	Gaiag: wfc: add mixing examples.

2014-09-18  Jan Nieuwenhuizen  <janneke@gnu.org>

	Gaiag: wfc: gom/goops.

	Gaiag: remove /mutual_recursion_with_members.csp oopsed in: bde3cb4c.

	Gaiag: simulate: remove global module, retain interface states.

2014-09-20  Rutger van Beusekom  <rutger.van.beusekom@verum.com>

	gaiag: c++: fix duplicate reply members.

2014-09-19  Rutger van Beusekom  <rutger.van.beusekom@verum.com>

	gaiag: c++: add include guards to system template.

2014-09-18  Rutger van Beusekom  <rutger.van.beusekom@verum.com>

	Gaiag: add convenience makefiles.

	Gaiag: pretty: do not drop scope.

	Gaiag: pretty: fix for function return type and expressions.

	Gaiag: c++: enum function return type.

	Gaiag: c++: do not generate cc file for component without behaviour.

	Gaiag: resolve: resolve mixed statements and functions. Bugfix.

	Gaiag: resolve: resolve function call without parameters as expression.

	Gaiag: c++: handle colliding instance type name.

	Gaiag: alarm-legacy: use mangled port identifiers.

	Gaiag: c++: scope enum values.

	Gaiag: c++: eradicate *ast*.

2014-09-17  Rutger van Beusekom  <rutger.van.beusekom@verum.com>

	Gaiag: coverage: refactor make.

	Gaiag: c++: resolve enum types. Fixes replies.

	Gaiag: resolve: import interfaces early. Fixes unresolved enum/type problem.

	Gaiag: c++: grok LOPW.

	Gaiag: examples/AlarmComponentSystem.asd: asdgenerator-friendly imports.

	Gaiag: mangle: parameterize and also mangle var.

2014-09-16  Rutger van Beusekom  <rutger.van.beusekom@verum.com>

	Gaiag: resolve: pass locals harder. Fixes var resolving.

2014-09-16  Jan Nieuwenhuizen  <janneke@gnu.org>

	Gaiag: simulate: also simulate into a component's intefaces. WIP.

2014-09-16  Rutger van Beusekom  <rutger.van.beusekom@verum.com>

	Gaiag: csp: mutual recursion with members.

	gaiag: c++: handle reply.

	Gaiag: csp/c++: resolve interfaces harder.

	Gaiag: c++: (dump): type-safe dispatch.

	Gaiag: csp: mutual recursion with members.

2014-09-11  Rutger van Beusekom  <rutger.van.beusekom@verum.com>

	gaiag: csp: add failing test for recursion with member modifications.

2014-09-16  Rutger van Beusekom  <rutger.van.beusekom@verum.com>

	Gaiag: csp: interface component overload.

	Gaiag: csp: interface port overload.

	Gaiag: resolve: de-mix types/events/statements/functions early.

2014-09-15  Rutger van Beusekom  <rutger.van.beusekom@verum.com>

	Gaiag: csp: support for standalone interfaces.

	Gaiag: csp: halfway handle pick model with behaviour.

	Gaiag: parse/resolve: allow mixing of functions and statements.

	gaiag: parse/resolve: allow mixing types and events.

2014-09-10  Rutger van Beusekom  <rutger.van.beusekom@verum.com>

	gaiag: pretty: fix for action assignments.

2014-09-15  Jan Nieuwenhuizen  <janneke@gnu.org>

	Gaiag: eradicate ast:.

2014-09-14  Jan Nieuwenhuizen  <janneke@gnu.org>

	Gaiag: do not export else. Fixes R6RS compliance.

	Gaiag: normstate: add-skip: use gom:map.

	Gaiag: normstate: remove-otherwise: use gom:map.

	Gaiag: normstate: passdown-on: use gom:map.

	Gaiag: normstate: combine-guards: use gom:map.

	Gaiag: normstate: flatten-compound: use gom:map.

	Gaiag: normstate: aggregate-guards: use gom:map.

	Gaiag: normstate: expand-on: use gom:map.

	Gaiag: normstate: aggregate-on: use gom:map.

	Gaiag: resolve: grok '*'.

2014-09-13  Jan Nieuwenhuizen  <janneke@gnu.org>

	Gaiag: resolve: retain location information.

2014-09-14  Jan Nieuwenhuizen  <janneke@gnu.org>

	Gaiag: resolve: gom/goops.

	Gaiag: csp: use interface-enums.

	Gaiag: gom/util: function, interface-enums, gom:register.

	Gaiag: gom: add value class.

	Gaiag: normstate: update use to gom:map*.

	Gaiag: map: introduce simple gom:map.

2014-09-12  Jan Nieuwenhuizen  <janneke@gnu.org>

	Gaiag: gom: grok new style system as component.

2014-09-14  Jan Nieuwenhuizen  <janneke@gnu.org>

	Gaiag: mangle: use gom:clone.

2014-09-12  Jan Nieuwenhuizen  <janneke@gnu.org>

	Gaiag: map: (gom:clone): new function.

2014-09-14  Jan Nieuwenhuizen  <janneke@gnu.org>

	Gaiag: mangle: gom/goops.

	Gaiag: animate: dead code.

	Gaiag: use <gom:port>.

2014-09-12  Jan Nieuwenhuizen  <janneke@gnu.org>

	Gaiag: make: mangle fix.

	Gaiag: map: (gom:map): refactor using dynamic dispatch.

	Gaiag: map: (gom:foreach): new function.

2014-09-14  Jan Nieuwenhuizen  <janneke@gnu.org>

	Gaiag: normstate: fix test.

2014-09-12  Jan Nieuwenhuizen  <janneke@gnu.org>

	Gaiag: util: prototype getters using gom:map.

2014-09-14  Jan Nieuwenhuizen  <janneke@gnu.org>

	Gaiag: normstate: update use to gom:map 2.

	Gaiag: normstate: update use to gom:map.

2014-09-11  Jan Nieuwenhuizen  <janneke@gnu.org>

	Gaiag: gom:map: collapse statements-map into generic full-tree map.

	Gaiag: gom:map: refactor map-statements.

	Gaiag: normstate: add test.

2014-09-29  Rutger van Beusekom  <rutger.van.beusekom@verum.com>

	Revert "fix issue with deep illegals in if"
	This reverts commit 72b486ab50a7e2a1abe2c6ad177b8c5f6e0051fc.

	Revert "gaiag: csp: update tests for fix of deep illegals, update refs for enum value fix."
	This reverts commit a55fd314628c73aaca4f29d49537db321e6ea024.

	Revert "webdemo/gaiag: speedup verify all."
	This reverts commit c5eb218d65bee4ae0b72b9acaa7903f5b97bdbd1.

	Revert "gaiag: csp: fix reply channel, replace type of port by name."
	This reverts commit 84c333fd4eea66fb8090bfb96d73239effc731ef.

2014-09-26  Rutger van Beusekom  <rutger.van.beusekom@verum.com>

	gaiag: csp: fix reply channel, replace type of port by name.

	webdemo/gaiag: speedup verify all.

	gaiag: csp: update tests for fix of deep illegals, update refs for enum value fix.

2014-09-26  Paul Hoogendijk  <paul.hoogendijk@verum.com>

	fix issue with deep illegals in if

2014-09-12  Rutger van Beusekom  <rutger.van.beusekom@verum.com>

	webdemo: csp: add behaviour to example to avoid corner case in csp.

2014-09-11  Ladislau Posta  <ladislau.posta@verum.com>

	comments added in the Alarm examples

2014-09-11  Jan Nieuwenhuizen  <janneke@gnu.org>

	Gaiag: csp: add tests for reply bugs.

	Gaiag: csp: add reply combinator. Fixes reply in function, reply using variable.

	Gaiag: reader: error fix.

2014-09-11  Rutger van Beusekom  <rutger.van.beusekom@verum.com>

	gaiag: csp: comma separate functional call arguments.

	gaiag: resolve: if then else too.

2014-09-11  Jan Nieuwenhuizen  <janneke@gnu.org>

	Gaiag: test-suite: show backtrace upon ERROR.

2014-09-10  Rutger van Beusekom  <rutger.van.beusekom@verum.com>

	Gaiag: resolve: set recursive flag for functions.

	Gaiag: csp: use PF',VF' for tail-recursion with arguments (WAS: PF',VF').

2014-09-10  Jan Nieuwenhuizen  <janneke@gnu.org>

	Gaiag: throw rather than exit. Helps debugging.

	Gaiag: csp: throw if component has no behaviour.

	Gaiag: asserts: no behaviour, no asserts. Aids web: asdConcepts_Behaviour.asd

	Gaiag: pretty: system as component.

	Gaiag: pretty: support systems.

	Gaiag: use <binding> (WAS: <plug>).

2014-09-08  Jan Nieuwenhuizen  <janneke@gnu.org>

	Gaiag: normstate: gom/goops.

	Gaiag: remove usage of ast: in all but csp, mangle, normstate, resolve.

2014-09-07  Jan Nieuwenhuizen  <janneke@gnu.org>

	Gaiag: remove ast: usage from gom.

2014-09-10  Rutger van Beusekom  <rutger.van.beusekom@verum.com>

	gaiag: csp: fix empty channel in functions.

2014-09-09  Rutger van Beusekom  <rutger.van.beusekom@verum.com>

	gaiag: csp: simplify recursion example; implement/fix empty members and empty locals case.

	gaiag: csp: remove path prefix for fdr and replace fdr3 by fdr2 for refinement.

	gaiag: csp: use P' and PF' consistently in recursion; use skip_; introduce and use illegal_

2014-09-09  Paul Hoogendijk  <paul.hoogendijk@verum.com>

	Gaiag: update baseline for updates of webdemo

2014-09-09  Jan Nieuwenhuizen  <janneke@gnu.org>

	Gaiag: make installation of diffstat optional.

	Gaiag: another guile-2.0.5/Ubuntu 12.05 backwards compatibility. Fixes make check.

2014-09-08  Jan Nieuwenhuizen  <janneke@gnu.org>

	Gaiag: guile-2.0.5/Ubuntu 12.05 backwards compatibility. Fixes webdemo.

	Gaiag: .hudson deployment hack.

	Gaiag: add baseline csp for InterfaceLivelock.asd.

	Gaiag: add baseline csp for ComponentLivelock_TV.asd.

2014-09-07  Jan Nieuwenhuizen  <janneke@gnu.org>

	Gaiag: gom/goops pretty.

	Gaiag: gom/goops <imports>, <import>.

	Gaiag: fix source location of illegal.

	Gaiag: parse: set source locations on return.

	Gaiag: gom: retain source locations.

	Gaiag: resolve: retain source locations.

2014-09-06  Jan Nieuwenhuizen  <janneke@gnu.org>

	Gaiag: simulate: gom/goops. Source locations broken.

2014-09-07  Jan Nieuwenhuizen  <janneke@gnu.org>

	Gaiag: goops/gom <otherwise>.

	Gaiag: use typed otherwise.

2014-09-06  Jan Nieuwenhuizen  <janneke@gnu.org>

	Gaiag: simulate: add state vector tests.

2014-09-07  Jan Nieuwenhuizen  <janneke@gnu.org>

	Gaiag: remove temporary files.

2014-09-08  Rutger van Beusekom  <rutger.van.beusekom@verum.com>

	gaiag: csp: non-recursion.

2014-09-06  Jan Nieuwenhuizen  <janneke@gnu.org>

	Gaiag: simulate: fixes.

	Gaiag: Add full load path. Fixes local gaiag autocompile.

2014-09-05  Jan Nieuwenhuizen  <janneke@gnu.org>

	Gaiag: update webdemo csp baselines.

	Gaiag: make check: resurrect c++ and pretty.

2014-09-05  Rutger van Beusekom  <rutger.van.beusekom@verum.com>

	gaiag: csp: recursion: apply combinators in csp.

2014-09-04  Rutger van Beusekom  <rutger.van.beusekom@verum.com>

	gaiag: csp: recursion: transform combinators from lambdas into curried functions.

2014-09-04  Jan Nieuwenhuizen  <janneke@gnu.org>

	Gaiag: refactor top level make check.

	Gaiag: decruft examples.

	Gaiag: eradicate 'examples/, handle implicit include path.

2014-09-03  Jan Nieuwenhuizen  <janneke@gnu.org>

	Gaiag: restructure directory layout.

2014-09-03  Rutger van Beusekom  <rutger.van.beusekom@verum.com>

	Gaiag: csp: transform expression of local variable assignment.

	Gaiag: use om parser for examples.

	Gaiag: add void function.

	Gaiag: add recursive attribute to function.

	Gaiag: update oided names.

	Gaiag: asserts: cache models. Fixes -l asserts.

	Gaiag: remove dead code.

2014-09-02  Jan Nieuwenhuizen  <janneke@gnu.org>

	Gaiag: pretty: resurrect.

	asdgenerator: scm: remove (action and (trigger for illegal.

	Gaiag: resolve: avoid gratituous root and var.

	Gaiag: c++: handle root and system. c++ om2guile: all test pass.

	Gaiag: rename binding <port> to <plug>. Avoids <port> name conflict.

2014-09-02  Rutger van Beusekom  <rutger.van.beusekom@verum.com>

	Gaiag: csp: om2guile: all tests pass.

2014-09-02  Jan Nieuwenhuizen  <janneke@gnu.org>

	Gaiag: asserts.test: resurrect.

2014-09-02  Rutger van Beusekom  <rutger.van.beusekom@verum.com>

	Gaiag: resolve: handle old style system.

	Gaiag: pretty: update for typed expressions.

	Gaiag: normstate: update for typed expressions.

	Gaiag: resolve: bindings, instances.

	Gaiag: parse: fix precedence of and and or.

	Gaiag: resolve: add root.

	Gaiag: examples/trip.asd: remove group.

	Gaiag: resolve: field for interface enum.

	Gaiag: parse: arguments are expressions.

	Gaiag: resolve: expression and parameter var.

	Gaiag: parse: type top level expression.

	Gaiag: resolve: var for assign.

	Gaiag: examples/trip.asd: add (field.

2014-09-01  Jan Nieuwenhuizen  <janneke@gnu.org>

	Gaiag: gom/goops <binding>.

	Gaiag: parse: allow dot in imports. Enables parsing by OM or Gaiag.

2014-09-01  Rutger van Beusekom  <rutger.van.beusekom@verum.com>

	Gaiag: also parse, resolve new style system components.

	Gaiag: parse: fix precedence of comparators.

	Gaiag: asserts: new make target.

	Gaiag: csp: resurrect -l asserts.

	Gaiag: refactor top-level result printing.

	Gaiag: make compare: new target.

2014-08-30  Jan Nieuwenhuizen  <janneke@gnu.org>

	Gaiag: gom/goops <root>.

2014-09-01  Jan Nieuwenhuizen  <janneke@gnu.org>

	Gaiag: c++: gom/goops-ified.

2014-08-31  Jan Nieuwenhuizen  <janneke@gnu.org>

	Gaiag: c++: gom/goops. TODO: binds/instances.

	Gaiag: c++: gom/goops skeleton. TODO statements, expressions.

2014-08-30  Jan Nieuwenhuizen  <janneke@gnu.org>

	Gaiag: gom/goops <literal>.

	Gaiag: resolve: value -> literal for enum constants [scope.]enum.field.

	Gaiag: csp: gom/goops <field>.

	Gaiag: resolve: value -> field for boolean enum field sugar variable.FIELD.

	Gaiag: (gom gom), (gom display): split off gom and display.

	Gaiag: resolve: new module (extracted from csp).

	Gaiag: csp: (ast-transform-): use top level dispatch (WAS: match).

2014-08-29  Jan Nieuwenhuizen  <janneke@gnu.org>

	Gaiag: nits.

2014-08-28  Rutger van Beusekom  <rutger.van.beusekom@verum.com>

	Gaiag: gom: fruitless <parameter>, <port> renamer.

	Gaiag: junk <csp-expression>.

	Gaiag: csp: junk 'expression.

	Gaiag: junk value.

	Gaiag: make check passes.

	Gaiag: (gom:import): new function.

	Gaiag: (gom util), (gom ast): new module; split from gom.

	Gaiag: csp: gom/goops <enum>.

2014-08-28  Jan Nieuwenhuizen  <janneke@gnu.org>

	Gaiag: csp: remove ast:event-name, ast:port-name hack.

	Gaiag: gom/goops <interface>, <types>, <events>, <component>, <ports>, <behaviour>

2014-08-27  Jan Nieuwenhuizen  <janneke@gnu.org>

	Gaiag: gom/goops <illegal>.

	Gaiag: gom/goops <reply>.

	Gaiag: gom/goops <variable>.

	Gaiag: gom/goops <function>.

	Gaiag: gom/goops <return>.

	Gaiag: gom/goops <call>.

2014-09-02  Rutger van Beusekom  <rutger.van.beusekom@verum.com>

	Gaiag: csp: fix baselines FD/F.

2014-08-29  Rutger van Beusekom  <rutger.van.beusekom@verum.com>

	gaiag: csp: replace FD by F.

2014-08-27  Rutger van Beusekom  <rutger.van.beusekom@verum.com>

	Gaiag: make check: add webdemo examples.

	Gaiag: fix for normstate illegal.

	Gaiag: 12.04 (guile-2.0.5) compatibility.

	Gaiag: fix asserts test.

	Gaiag: livelock corner cases.

2014-08-27  Jan Nieuwenhuizen  <janneke@gnu.org>

	Gaiag: csp: (ast-transform-): move <if> to method.

	Gaiag: csp: remove dead code.

2014-08-26  Jan Nieuwenhuizen  <janneke@gnu.org>

	Gaiag: gom: remove csp sugar.

	Gaiag: gom/goops <if>.

	Gaiag: csp: goops/gom <guard>.

	Gaiag: csp: behaviour->csp: also handle interface behaviour.

	Gaiag: gom.test: new module.

	Gaiag: csp: support behaviour without guards.

2014-08-26  Rutger van Beusekom  <rutger.van.beusekom@verum.com>

	Gaiag: csp: handle empty behaviour.

	Gaiag: animate: disable file-line error handling.

	Gaiag: csp: support empty member list.

	Gaiag: gom:find-events rename from gom:find-triggers.

	Gaiag: csp: interface-events: refactor and gommify from interface-triggers.

2014-08-26  Jan Nieuwenhuizen  <janneke@gnu.org>

	Gaiag: csp: goops/gom <on>.

	Gaiag: gom: <triggers> part 2.

2014-08-25  Jan Nieuwenhuizen  <janneke@gnu.org>

	.init.el: add hook for delete-trailing-whitespace.

	Gaiag: csp: resurrect all baselines.

	Gaiag: csp: overlooked sexp trigger. Fixes examples/Reply.asd.

	Revert "gaiag: c++: change Alarm component to turnoff siren on sensor disabled."
	This reverts commit 60fdd35841050e89247aa3a5c4a376223bba41ca.

	Gaiag: normstate: don't reverse guards. Makes second normstate identity.

	Gaiag: csp: resurrect Alarm csp TODO: ordering of guards changed?

	Gaiag: csp: goops/gom <triggers>.

	Gaiag: silence animate stderr output. Helps jump to first error.

2014-08-25  Rutger van Beusekom  <rutger.van.beusekom@verum.com>

	Gaiag: use typed trigger-list everywhere. WIP

	Gaiag: csp: goops/gom compound.

	Gaiag: delete-trailing-whitespace.

	Gaiag: csp: remove getter.

2014-08-23  Jan Nieuwenhuizen  <janneke@gnu.org>

	Gaiag: csp: use ($ <class> slot0 slot1 ...) pattern matching.

	Gaiag: csp: goops/gom assign experiment...partly.

	Gaiag: csp: goops/gom action experiment.

	Gaiag: csp: goops/gom trigger experiment.

	Gaiag: gom: goops classes for Alarm.

2014-08-22  Jan Nieuwenhuizen  <janneke@gnu.org>

	Gaiag: gom.scm: new module.

	Gaiag: use typed signatures and parameters.

	Gaiag: use typed triggers everywhere (WAS: plain symbols in interfaces).

	Gaiag: make c++: resurrect; add new c++03 baseline.

2014-08-25  Rutger van Beusekom  <rutger.van.beusekom@verum.com>

	Gaiag: csp: fetch interface lazily. Allows asd without embedded interface.

2014-08-22  Rutger van Beusekom  <rutger.van.beusekom@verum.com>

	gaiag: c++: removed timer component.

	gaiag: c++: change Alarm component to turnoff siren on sensor disabled.

2014-08-21  Rutger van Beusekom  <rutger.van.beusekom@verum.com>

	gaiag: c++: connected processCBs for sensor to demonstrate callbacks for legacy Alarm

	gaiag: c++: Alarm with behaviour including functions in c++-03.

2014-08-20  Rutger van Beusekom  <rutger.van.beusekom@verum.com>

	gaiag: c++: legacy glue blueprint.

	gaiag: c++: c3 AlarmSystem compiles, links and runs (no behaviour).

2014-08-19  Rutger van Beusekom  <rutger.van.beusekom@verum.com>

	gaiag: c++: compileable and runnable output for Alarm.asd

2014-08-18  Rutger van Beusekom  <rutger.van.beusekom@verum.com>

	gaiag: c++: wip

2014-08-19  Jan Nieuwenhuizen  <janneke@gnu.org>

	Gaiag: animate.test: new file.

	argument2: update mangle

2014-08-18  Jan Nieuwenhuizen  <janneke@gnu.org>

	Gaiag: misc: refactor gulp-file/dump-file.

	Gaiag: mangle experiment for argument2 too.

2014-08-01  Jan Nieuwenhuizen  <jan@avatar.nl>

	Gaiag: coverage: add System, argument2 and wfc.

2014-08-01  Jan Nieuwenhuizen  <janneke@gnu.org>

	Gaiag: remove dead code.

	Gaiag: csp: examples/testBoolean.asd: rename component, add to make check.

	Gaiag: csp: (csp-expression->string): undo special casing for or.

	Gaiag: csp: update tests for ()-change in cb3a26c.

	Gaiag: csp: examples/co_mangle.csp: update for ()-change in cb3a26c.

	Gaiag: c++: examples/expressions.asd: compiles with g++.

	Gaiag: c++: examples/argument2.asd: compiles with g++. Functions!

	Gaiag: c++: function declarations.

	Gaiag: c++: AlarmComponent, AlarmSystem diff with OM reduced to zero.

	Gaiag: csp: examples/mangle.asd: pass fdr.

	Gaiag: mangle: on events and triggers.

	Gaiag: cps: examples/mangle.asd: new test.

2014-08-27  Rutger van Beusekom  <rutger.van.beusekom@verum.com>

	gaiag: asserts: append interface name to compliance cmdline query.

2014-08-26  Rutger van Beusekom  <rutger.van.beusekom@verum.com>

	csp: reorder asserts to gen1 order

2014-08-25  Rutger van Beusekom  <rutger.van.beusekom@verum.com>

	csp: fix tests

	csp: add livelock assert, remove redundant hiding

2014-08-05  Paul Hoogendijk  <paul.hoogendijk@verum.com>

	fix issue with valued vz void event for generating 'return' events

2014-08-04  Paul Hoogendijk  <paul.hoogendijk@verum.com>

	add workaround for missing channel for reply in function

	change csp interface generation allowing for multiple ports of same type

2014-08-01  Paul Hoogendijk  <paul.hoogendijk@verum.com>

	update golden references csp

	move external js files to extjs add brackets for csp expressions add interface <> component to webclient model selection

2014-08-01  Jan Nieuwenhuizen  <janneke@gnu.org>

	Gaiag: indent: zero-offset for #; use for c++ output too.

2014-07-31  Jan Nieuwenhuizen  <janneke@gnu.org>

	Gaiag: pretty: use indent. Drop external indent/astyle usage.

	Gaiag: indent: refactor with loop instead of while and set!.

	Gaiag: indent: new module.

	Gaiag: pretty: support expressions.

	Gaiag: csp: make: add automated refinement checks for all examples.

	Gaiag: examples/sugar.asd: avoid event / enum name clash. Fixes refine check.

	Gaiag: csp: Add refinement to make check.

	Gaiag: csp: examples/expressions.csp: pass fdr refinement.

	Gaiag: csp: examples/expressions.asd: resolve name clash, pass fdr.

	Gaiag: csp: run FDR before diff test.

	Gaiag: csp: produce somewhat sensible csp. Ord/int type/alphabet missing.

	Gaiag: parse: fix parenthesised expression, retain parentheses (WAS: #f).

	Gaiag: csp: add [true] guards. Fixes empty csp statement blocks.

	Gaiag: examples/expressions.asd: add component.

	Gaiag: pretty: assignment whitespace.

	Gaiag: parse: support integer expressions.

	Gaiag: parse: support integer as expression.

	Gaiag: mangle.scm: new module.

	Gaiag: c++: disable debug printing and fake TODO erros. Helps make check.

	prettty oops

	Gaiag: pretty: whitepace fixes, use astyle throughout.

	Gaiag: pretty: bugfix for examples/Typedef.asd.

2014-07-30  Jan Nieuwenhuizen  <janneke@gnu.org>

	Gaiag: coverage: include coverage from ./gaiag script runs.

	Gaiag: pretty: support functions.

	Gaiag: csp: (context-assign): new function. Eradicate members, locals.

	Gaiag: csp: local function variable hiding.

	Gaiag: csp: examples/hide.asd: parameter hiding.

	Gaiag: csp: examples/hide.asd: new test.

	Gaiag: csp: add csp to make check.

	Gaiag: csp: examples/argument2.asd: pass fdr, add test.

	Gaiag: csp: variable hiding for vector extend on vector.

	Gaiag: csp: variable hiding for vector extend.

	Gaiag: csp: simple variable hiding.

2014-07-30  Paul Hoogendijk  <paul.hoogendijk@verum.com>

	add asd test for global and multiple-arguments

2014-07-30  Jan Nieuwenhuizen  <janneke@gnu.org>

	Gaiag: coverage: fix coverage for gaiag example runs.

	Gaiag: scm: oops.

	Gaiag: csp: add sugar and pauls baseline.

	Gaiag: simulate: add arguments and pauls to test.

	Gaiag: c++: add AlarmComponent and AlarmSystem to test.

	Gaiag: coverage: new script.

2014-07-29  Jan Nieuwenhuizen  <janneke@gnu.org>

	Gaiag: animate: reinstate file:line:column errors.

	Gaiag: GNUmakefile: coverage: new target.

	Gaiag: spec: remove depedencies in tokenize, parse. Cleans compile.

	Gaiag: pretty: un-parenthesise toplevel expressions. All tests pass!

	Gaiag: normstate: aggregate-on: add. Avoids splitting same-port on-statements.

2014-07-28  Jan Nieuwenhuizen  <janneke@gnu.org>

	Gaiag: csp: refactor arguments.

	Gaiag: csp: csp-transform: refactor expressions like context.

	Gaiag: csp: refactor explicit (context->csp) calls.

	Gaiag: csp: annotate context with 'ctx in ast.

	Gaiag: csp: csp-transform: use let throughout.

	Gaiag: csp: examples/argument.csp: new baseline.

	Gaiag: csp: resurrect tests.

2014-07-28  Jan Nieuwenhuizen  <janneke@gnu.org>

	Gaiag: GNUmakefile: include .local.make.
	In .local.make, I have

	    FDR3_PREFIX=/usr/local/fdr3

2014-07-25  Paul Hoogendijk  <paul.hoogendijk@verum.com>

	CSP: fix several issues with context generation

	Add option -o to gaiag

	Add multiple arguments

2014-07-24  Paul Hoogendijk  <paul.hoogendijk@verum.com>

	Improve csp generation

2014-07-18  Jan Nieuwenhuizen  <janneke@gnu.org>

	Gaiag: simulate: use variable name resolution; junk Alarm/pauls hacks.

	Gaiag: simulate: add examples/paul.asd to: make simulate.

	Gaiag: simulate: expect and read valued action values from trail.

	Gaiag: simulate: examples/pauls.asd with faked valued action values.

2014-07-17  Jan Nieuwenhuizen  <janneke@gnu.org>

	Gaiag: make demo: support bison parser.

	Gaiag: add tests for bison parser, some csp cleanups.

	Gaiag: csp: support examples/Reply2.asd.

	Gaiag: csp: prefix component enums with their type.

	Gaiag: disable SED hack.

	Gaiag: examples/Reply2.asd: fdr check.

	Gaiag: examples/Reply2.asd, examples/Reply2.csp: new spec.

	Gaiag: examples/Reply.asd using Bison parser checks with fdr.

	Gaiag: examples/pauls.asd: make gaiag-wellformed.

	Gaiag: examples/pauls.asd: rewrite bool sugar expressions.

	Gaiag: examples/pauls.asd: make gaiag-wellformed.

	Gaiag: examples/pauls.asd: import.

2014-07-16  Jan Nieuwenhuizen  <janneke@gnu.org>

	Gaiag: csp: update tests for delayed context extend.

2014-07-16  Paul Hoogendijk  <paul.hoogendijk@verum.com>

	Gaiag: csp: extend context after transform. Fixes examples/argument.asd.

2014-07-16  Jan Nieuwenhuizen  <janneke@gnu.org>

	Gaiag: csp: context overhaul, pass all tests.

2014-07-15  Paul Hoogendijk  <paul.hoogendijk@verum.com>

	Gaiag: csp: support member access. New baseline (Alarm, imperative, argument).

2014-07-15  Jan Nieuwenhuizen  <janneke@gnu.org>

	Gaiag: csp: examples/argument2.asd,csp: add. Tests context unfolding.

	Gaiag: csp: generate context for function parameters.

	Gaiag: examples/argument.asd,csp: move from arguments.

2014-07-15  Paul Hoogendijk  <paul.hoogendijk@verum.com>

	Gaiag: csp: function body with context_

2014-07-15  Jan Nieuwenhuizen  <janneke@gnu.org>

	Gaiag: csp: remove debug printing.

	Gaiag: csp: eradicate frame.

	Gaiag: csp: factor-out usage of frame.

	Gaiag: csp: rename variables and members-locals to context.

	Gaiag: csp: rename vars to members-locals, fix tests.

2014-07-16  Jan Nieuwenhuizen  <janneke@gnu.org>

	Gaiag: read-ast: also register models read from .SCM files. Fixes: examples/IComp.asd not found.

2014-07-15  Jan Nieuwenhuizen  <janneke@gnu.org>

	Gaiag: csp: test: experimental: change intermediate ASTs.

	Gaiag: csp: experimental: compound: shift frame into locals.

2014-07-14  Jan Nieuwenhuizen  <janneke@gnu.org>

	Gaiag: csp: add deep compound test.

2014-07-15  Jan Nieuwenhuizen  <janneke@gnu.org>

	Gaiag: parse: allow compound-identifier as function arguments.

	Gaiag: parse: allow compound-type for function parameters.

	Gaiag: parse: function-call-statement: add. Fixes parsing void function calls.

	Gaiag: examples/CommSystem.asd: update. Fixes parsing.

	Gaiag: catch syntax-errors and print nice message.

	Gaiag: reader: install syntax-error handler.

2014-07-14  Jan Nieuwenhuizen  <janneke@gnu.org>

	Gaiag: reader: support reading .SCM files: short-circuit the parser.

	Gaiag: ast: add accessors and documentation for int and range.

	Gaiag: examples/Alarm.scm: update with (functions).

	Gaiag: pretty: oops, add missing 'int' to int typedef template.

	Gaiag: csp: examples/arguments.asd: pass fdr.

	Gaiag: csp: csp-transform-callvalued: add missing assign.

	Gaiag: csp: csp-transform-callvalued: pass test.

	Gaiag: csp: resolve match error WIP: the wrong way.

2014-07-11  Rutger van Beusekom  <rutger.van.beusekom@verum.com>

	Gaiag: csp: WIP: add test for callvalued_context_
	       TODO: fix ast-transform by passing frame through variable pattern
	       when transforming into callvalued_context.

	Gaiag: csp: extend constructors/combinators for argument-less functions, add sendrecv combinator.

	Gaiag: csp: reduce arguments.csp diff.

	Gaiag: csp: FIXME: add true guard to workaround map-guards limitation in component.csp.scm.

	Gaiag: csp: unify valued and void declarations and add returnvalue_.

	Gaiag: csp: extend template with constructors for calling valued functions and extending the scope with additional variables.

2014-07-10  Rutger van Beusekom  <rutger.van.beusekom@verum.com>

	Gaiag: csp: update arguments reference.

2014-07-12  Jan Nieuwenhuizen  <janneke@gnu.org>

	Gaiag: pretty: resurrect.

	Gaiag: simulate: handle frame pop for compound statement.

	Gaiag: simulate: evaluate parameter upon function entry.

	Gaiag: parse: add explicit source location for function, return.

	Gaiag: simulate: eval-function-expression for assign and variable init only.

	Gaiag: simulate: grok and/or. Fixes state-space exploration of examples/arguments.asd.

	Gaiag: simulate: handle function call without arguments.

2014-07-11  Jan Nieuwenhuizen  <janneke@gnu.org>

	Gaiag: examples/Typedef.asd: pretty print.

	Gaiag: examples/Typedef.asd: parse.

2014-07-10  Jan Nieuwenhuizen  <janneke@gnu.org>

	Gaiag: parse: add precedence and associativity. Fixes shift/reduce warnings.

	Gaiag: csp: eradicate last?.

2014-07-10  Rutger van Beusekom  <rutger.van.beusekom@verum.com>

	Gaiag: csp: add context() to template.

	Gaiag: normstate: grok guard-less asts. Fixes processing of examples/arguments.asd.

	Gaiag: csp: valued function return.

2014-07-09  Jan Nieuwenhuizen  <janneke@gnu.org>

	Gaiag: simulate: examples/arguments.asd.

	Gaiag: next blonde expression.

	Gaiag: simulate: add peroxide-blonde implementation of valued function calls.

2014-07-09  Rutger van Beusekom  <rutger.van.beusekom@verum.com>

	Gaiag: csp: updated Reply.csp with context use.

	Gaiag: csp: arguments: gen2 features in csp.

2014-07-08  Jan Nieuwenhuizen  <janneke@gnu.org>

	Gaiag: asserts: Component/Interface cannot have same name.

	Gaiag: parse: examples/arguments.asd.

	Gaiag: parse examples/parameters.asd.

	Gaiag: parse: support return.

2014-07-08  Rutger van Beusekom  <rutger.van.beusekom@verum.com>

	Gaiag: csp: add functions.

	Gaiag: ast: extend statement for function.

	Gaiag: csp: add function call.

	Gaiag: test: fix order of expected and actual output.

	Gaiag: normstate: do not recurse into functions. Fixes match error.

	Gaiag: parse examples/function.asd.

	Gaiag: add missing on to normstate-101

2014-07-06  Jan Nieuwenhuizen  <janneke@gnu.org>

	Gaiag: c++: generate SensorComponent, SirenComponent and AlarmSystemComponent.

	Gaiag: parse: add missing syntax-error.

	Gaiag: c++: some binding work still to do.

	Gaiag: c++: map-instances: minimal diff.

	Gaiag: ast: read and cache all model types (WAS: only interfaces).

	Gaiag: c++: no proxy classes for system. Decreases diff.

	Gaiag: c++: type typing nit. Fixes AapComponent.cpp.

	Gaiag: c++: refactor component/system invocation.

	Gaiag: c++: merge system templates with component.

2014-07-05  Jan Nieuwenhuizen  <janneke@gnu.org>

	Gaiag: c++: hello world for AlarmSystem, broken output.

	parse: bind, instance.

	parse:compound

	Gaiag: parse system.

	Gaiag: json-trace: new module. Also dump init and initial update messages.

	Revert "Gaiag: simulate: use '#,(chash notation."
	This reverts commit 683d3547e742491dbda062b41b4dbf9d51e280ab.

	Gaiag: simulate: use '#,(chash notation.

	Gaiag: simultate: communicate with scm2json using ascii again.

	Gaiag: simulate: produce near-current json trace output.

	json: builder: grok symbols as key for hash map.

2014-07-04  Jan Nieuwenhuizen  <janneke@gnu.org>

	Gaiag: comment-out dumping of parser rules.

2014-07-07  Rutger van Beusekom  <rutger.van.beusekom@verum.com>

	Gaiag: csp: variable, even for if/assign when last in compound.

	Gaiag: csp: add stack frames.

	Gaiag: test-suite/lib.scm: print file-name:line: error messages.

	Gaiag: csp: variables naive single stack frame.

	Gaiag: csp: rename Reply.

2014-07-06  Rutger van Beusekom  <rutger.van.beusekom@verum.com>

	Gaiag: csp: do not add a return at the-end when a reply already occurred.

2014-07-05  Rutger van Beusekom  <rutger.van.beusekom@verum.com>

	Gaiag: csp: reduce C.csp diff

	Gaiag: csp: csp.scm fix for reply.asd (tnx Jan)

	Gaiag: csp: collect return values, csp.scp:return-values breaks on reply.asd.

	Gaiag: csp: update C.csp with passing local variables

	Gaiag: csp: remove unused action

2014-07-04  Rutger van Beusekom  <rutger.van.beusekom@verum.com>

	Gaiag: csp: introduce local variables to capture return values.

	Gaiag: csp mangle P and V in csp to avoid naming conflicts

	Gaiag: csp: correctly enable/disable illegal behaviour depending on the assert.

	Gaiag: csp: add variable test.

	Gaiag: csp: add reply.asd and workaround limitation in normstate.

2014-07-04  Jan Nieuwenhuizen  <janneke@gnu.org>

	Gaiag: simulate: add from, to, state as fields to (json) trace.

	Gaiag: simulator: commit expected test result. Silences simulator test.

	Gaiag: simulate: add initial state to ouput trace.

2014-07-03  Rutger van Beusekom  <rutger.van.beusekom@verum.com>

	Gaiag: csp: remove stderr logging

2014-07-03  Jan Nieuwenhuizen  <janneke@gnu.org>

	Gaiag: update for field/variable changes.

	Gaiag: simulate: add missing compound to test. Garbage in, garbage out.

	Gaiag: c++: oops: remove debugging.

	Gaiag: resurrect c++.

2014-07-03  Rutger van Beusekom  <rutger.van.beusekom@verum.com>

	Gaiag: csp: Alarm.csp/imperative.csp update: append return using semi and separate the-end from the return.

	Gaiag: csp: Alarm.csp,imperative.csp: new reference, assert no diff in make csp.

	Gaiag: noisy-equal? newline around !=.

	Gaiag: variable statement, explicitly typed types. [C++ TODO].

	Gaiag: parse: examples/reply.asd.

	Gaiag: promote event's type to signature; implement return-type.

	Gaiag: csp-transform: nitpick.

2014-07-03  Jan Nieuwenhuizen  <janneke@gnu.org>

	Gaiag: csp-transform: refactor expressions.

	Gaiag: csp-transform: refactor on.

	Gaiag: csp-transform: refactor return.

	Gaiag: misc: ->string: accept list.

2014-07-02  Jan Nieuwenhuizen  <janneke@gnu.org>

	Gaiag: csp: trim dead code.

	Gaiag: split/rename (field x y) into (trigger port event) (value type field).

	Gaiag: statements-on: recurse deep, events: grok component, compound.

	Gaiag: gaiag: implicit compile spec.scm. Removes need for make compile.

	Gaiag: make log: log simulate traces preparing for (field/event/value).

2014-07-07  Paul Hoogendijk  <paul.hoogendijk@verum.com>

	Fix pretty print of "or"

2014-07-02  Rutger van Beusekom  <rutger.van.beusekom@verum.com>

	Gaiag: csp: fdr passes Alarm.asd and imperative.asd with csp-transform for interface.

	Gaiag: use ast:name throughout (WAS: identifier).

2014-07-02  Jan Nieuwenhuizen  <janneke@gnu.org>

	Gaiag: document ast accessors, use variable, expression (WAS: declare, initial-value).

2014-07-01  Jan Nieuwenhuizen  <janneke@gnu.org>

	Gaiag: drop -list for ast list accessors.

	Gaiag: use ast:event-list, ast:port-list, ast:variable-list, drop most ast:body.

	Gaiag: use model/model? throughout for interface/component abstraction.

	csp: explicitly register new normstate. Fixes usage cached non-norm Console.

2014-07-01  Rutger van Beusekom  <rutger.van.beusekom@verum.com>

	csp: transform-on pass all tests

	passing csp-transform tests

	oops: add csp.test

	csp: csp.test: csp-transform-on-return: new test.

	Gaiag: ast: noisy match failures.

2014-07-01  Jan Nieuwenhuizen  <janneke@gnu.org>

	Gaiag: cache all interfaces from ast. Fixes examples/<interface>.asd lookup.

	Gaiag: guile-2.0.5, aka Ubuntu 12.04 compatibility.

2014-07-01  Rutger van Beusekom  <rutger.van.beusekom@verum.com>

	Gaiag: csp: fix reference formatting

	Gaiag: csp: fix provides? predicate

2014-06-30  Rutger van Beusekom  <rutger.van.beusekom@verum.com>

	Gaiag: gaiag: new -l csp --assert option.

	Gaiag: json2scm: new script.

	Gaiag: gaiag -l assert: new language option.

	Gaiag: reader: update interface-cache. Fixes request for examples/I.asd.

2014-06-29  Rutger van Beusekom  <rutger.van.beusekom@verum.com>

	csp: update reference

2014-06-27  Rutger van Beusekom  <rutger.van.beusekom@verum.com>

	csp: add imperative.csp new style

2014-06-29  Jan Nieuwenhuizen  <janneke@gnu.org>

	Gaiag: csp, c++: use compose to refactor (ast: (ast: (ast: ... ast)))).

	Gaiag: refactor animate-file, enables bringing c++/csp under test.

	Gaiag: csp: refactor map-statements-on.

	Gaiag: csp: refactor map-guards.

	Gaiag: csp: refactor map-ports.

	c++.scm: use animate-module-populate to refactor module-define!s.

	animate.scm: animate-module-populate: new proceduce.

	Gaiag: implement diff-noisy-equal? and use it for some tests.

	Gaiag: GNUmakefile: generate all output in out/; ignore out/.

	Gaiag: pretty.test: add some failing tests, implement some fixes.

	Gaiag: test-suite/tests/pretty.test: new module.

	Gaiag: test-suite/tests/wfc.test: new module.

	Gaiag: gaiag -l simulate: new -t,--trail option.

	Gaiag: scm2json: new script.

	Gaiag: misc refactoring.

2014-06-28  Jan Nieuwenhuizen  <janneke@gnu.org>

	Gaiag: add normstate, simulate, wfc to --help. for now.

	Gaiag: simulate: produce json on stdout.

	Gaiag: json builder: grok symbols.

	Gaiag: import guile-json ebeabd3.

	Gaiag: rename asd-> to ast->, asd.scm to parse.scm.

	Gaiag: start tests for normstate.

	Gaiag: simulator: ((event0 . (loc0 .. locn)) (eventn (loc0 .. locn))) for Alarm.

	Gaiag: asd: use transparent source-property-based location information.

2014-06-27  Jan Nieuwenhuizen  <janneke@gnu.org>

	Gaiag: simulate: produce ((event0 . (ast0 ... astn)) ... (eventn . (ast0 ... astn))) trace.

	Gaiag: open up simulator.

	Gaiag: test-suite/tests/asd.test: new file.

	Gaiag: import test suite.

	Gaiag: reader: parse-asd: new function, reads special #{ #} forms.

2014-06-27  Rutger van Beusekom  <rutger.van.beusekom@verum.com>

	csp: fix various comma separations in template

	csp: remove redundant call to display from map-ports, fix *-join for empty strings

	csp: add ifthenelse example & mangle identifiers

2014-06-27  Jan Nieuwenhuizen  <janneke@gnu.org>

	csp: factor-out action->string.

	Gaiag: csp: factor-out '(inevitable optional) test.

	Gaiag: refactor *join, part 2.

	Gaiag: refactor *-join and *<, *=, part 1.

	Gaigag: csp: drop event-names.

	Gaiag: factor find-events out of simulate; drop csp-variants.

	Gaiag: simulate: find-events: use curried interface.

	Gaiag: merge simulator from standalone Gaiag repo.

2014-06-24  Jan Nieuwenhuizen  <janneke@gnu.org>

	Gaiag: simulate: add trail explorer.

2014-06-22  Jan Nieuwenhuizen  <janneke@gnu.org>

	Gaiag: naively simulate alarm component.

	Gaiag: simulate: re-introduce event loop.

	Gaiag: first (partial) simulation of Alarm component.

2014-06-21  Jan Nieuwenhuizen  <janneke@gnu.org>

	Gaiag: simulate interface of examples/if.asd.

	Gaiag: first simulator attempt.

	Gaiag: simulate.scm: new module.

2014-06-23  Jan Nieuwenhuizen  <janneke@gnu.org>

	Gaiag: interface.hh nitpick. Fixes make all.

	Gaiag: misc: (for): new function.

2014-06-27  Jan Nieuwenhuizen  <janneke@gnu.org>

	csp: remove crufty c++-module dependency.

	csp: refactor interface like component, remove code dup.

	csp: Grand refactor of component prefix.

2014-06-26  Jan Nieuwenhuizen  <janneke@gnu.org>

	Gaiag: normstate: use ast:make constructors.

	Gaiag: use statement, compound throughout (WAS: statements, statements).

2014-06-26  Rutger van Beusekom  <rutger.van.beusekom@verum.com>

	csp: 0 diff for Alarm.csp

2014-06-26  Jan Nieuwenhuizen  <janneke@gnu.org>

	csp: alarm diff: two combined sounding guards.

	csp: wip: interface no diffs.

2014-06-26  Rutger van Beusekom  <rutger.van.beusekom@verum.com>

	WIP

	normstate: aggregate-on-stats.

2014-06-26  Jan Nieuwenhuizen  <janneke@gnu.org>

	on-statements hack

	csp refactor hack

2014-06-25  Rutger van Beusekom  <rutger.van.beusekom@verum.com>

	csp: add normstate

	Naive unnomalized guard thingy.

	Guards to go

	csp: more wip

	Gaiag: add diffstat to csp target

2014-06-24  Jan Nieuwenhuizen  <janneke@gnu.org>

	wip: component-transition

	csp: Optional CHAOS.

2014-06-24  Rutger van Beusekom  <rutger.van.beusekom@verum.com>

	xx

	wip

	csp: wip:
	     fix ordering of guards and on events,
	     generalize on event using ?x:{},
	     put bracket in the right places,
	     fix newline formatting,
	     reduce diff by adding process composition to template

2014-06-23  Rutger van Beusekom  <rutger.van.beusekom@verum.com>

	csp: wip

	csp: handcrufted reference file

2014-06-24  Jan Nieuwenhuizen  <janneke@gnu.org>

	Gaiag: normstate: remove dropped modules, include reader.

2014-06-24  Paul Hoogendijk  <paul.hoogendijk@verum.com>

	Add normstate.scm

	Add first version of normalize state

2014-06-23  Jan Nieuwenhuizen  <janneke@gnu.org>

	Gaiag: (ast:parent): bugfix.

2014-06-21  Jan Nieuwenhuizen  <janneke@gnu.org>

	Gaiag: initial ast-constructors.

	Gaiag: reader.scm: new module.

	Gaiag: ast:.scm: new module.

	Gaiag: --debug: new flag.

2014-06-20  Jan Nieuwenhuizen  <janneke@gnu.org>

	Gaiag: grand ast rename.

	Gaiag: csp: makefile nit.

2014-06-20  Rutger van Beusekom  <rutger.van.beusekom@verum.com>

	csp: first snippet new style

2014-06-20  Jan Nieuwenhuizen  <janneke@gnu.org>

	Gaiag: template-based C++ on par with pattern matcher.

	Gaiag: C++ nitpicks.

	Gaiag: drop unique, use delete-duplicates.

	Gaiag: use animate/template and #-escapes (WAS: format-keys/snippets and %).

2014-06-19  Jan Nieuwenhuizen  <janneke@gnu.org>

	Gaiag: use #{ ... #} escaping for animations.

	Gaiag: robustify behaviour-types, behaviour-variables.

	Gaiag: add examples/if.asd.

	Gaiag: c++ if-then-else work.

	Gaiag: pretty print if-then-else.

	Gaiag: parse if-then-else.

	Gaiag: csp: ports, guards skeleton.

	Gaiag: csp: (interface-triggers): new function.

	Gaiag: csp: add enumeration_alphabet.

2014-06-18  Jan Nieuwenhuizen  <janneke@gnu.org>

	Gaiag: initial mixing with error location.

	Gaiag: lalr.upstream.scm: implement @ for locations.

	Gaiag: remove comment.

2014-06-18  Rutger van Beusekom  <rutger.van.beusekom@verum.com>

	Gaiag: complete asserts

2014-06-18  Jan Nieuwenhuizen  <janneke@gnu.org>

	Gaiag: port/event/interface resolving for csp.

	Gaiag: clean-out examples into templates/ and baseline/.

	Gaiag: ast.scm (port-behaviour): implement.

	Gaiag: examples/interface.hh.scm: update for inlined Console.

	Gaiag: extensions for csp.

	Gaiag: ast: (import-ast): new function.

2014-06-17  Jan Nieuwenhuizen  <janneke@gnu.org>

	Gaiag: Add initial work on well-formedness mixing.

	Gaiag: resurrect GNUmakefile.

	Gaiag: Oops revert typo from 04dd5b6 Gaiag: C++ proxy methods.

	Gaiag: Add well-formedness error on-error-location.

	Gaiag: lalr.scm: (current-location): new function.

	Gaiag: system/base/lalr.upstream.scm, lalr.upstream: import.

2014-06-13  Jan Nieuwenhuizen  <janneke@gnu.org>

	Gaiag: commented-out location printing in lexer.

2014-06-12  Jan Nieuwenhuizen  <janneke@gnu.org>

	Gaiag: pointer-based ast-parent.

2014-06-11  Jan Nieuwenhuizen  <janneke@gnu.org>

	Oops from: 54ef76e0 wfc.scm: new module; fixes pretty.scm.

2014-06-10  Jan Nieuwenhuizen  <janneke@gnu.org>

	Gaiag: GNUmakefile: add wfc target.

	Gaiag: add examples/mixing.asd.

	Gaiag: misc fixes.

	Gaiag: wfc.scm: new module.

	Gaiag: wfc.scm: new module.

2014-06-09  Jan Nieuwenhuizen  <janneke@gnu.org>

	Gaiag: Cleanup statement->string.

	Gaiag: Use animated rather than format-key'd snippets for c++.

	Gaiag: Add snippets to c++ output.

	Gaiag: Add path matching experiment.

	Gaiag: resurrect csp.

2014-06-08  Jan Nieuwenhuizen  <janneke@gnu.org>

	Gaiag: animate.scm: factor out, generate C++ for AlarmComponent.

	Gaiag: initial c2 generation.

2014-06-07  Jan Nieuwenhuizen  <janneke@gnu.org>

	Gaiag: csp: initial attempt.

	Gaiag: promote test C++ to c++, junk old format-keys implementation.

	Gaiag: C++ instance getters.

	Gaiag: C++ state methods.

	Gaiag: C++ context methods.

	Gaiag: C++ proxy methods.

	Gaiag: ugly *port-def* workaround.

	Gaiag: C++ component class.

	Gaiag: C++ context class.

	Gaiag: C++ state class.

	Gaiag: C++ implement proxy classes.

	Gaiag: further work.

	Gaiag: some animated c++ with map-ports, map-events.

2014-06-06  Jan Nieuwenhuizen  <janneke@gnu.org>

	Gaiag: ports loop in animated c++.

	Gaiag: C++ interface.

	Gaiag: parse, print examples/Console.asd.

	Gaiag: update examples.

	Gaiag: initial read-eval-print-loop for interface.hh.scm.

	Gaiag: format-at-keys attempt.

	Gaiag: update to first full c++ snippets.

2014-05-25  Jan Nieuwenhuizen  <janneke@gnu.org>

	Gaiag: more c++ baselining.

	Gaiag: alarm baseline and fixes in c++ output for component.

2014-05-24  Jan Nieuwenhuizen  <janneke@gnu.org>

	Gaiag: whitespace nitpicks.

	Gaiag: use or as || (WAS: logic-or).

	Gaiag: use field as selector (WAS: dot).

	Gaiag: add scheme output, make it default.

	Gaiag: cpp: generate-context-class: new function.

	Gaiag: snippets: new module.

	Gaiag: cpp2scm: new script.

	Gaiag: generate-component-implementation: new function.

	Gaiag: add snippets symlink.

	Gaiag: Move snippets to ../../generator/.

	Gaiag: Move examples to examples/, remove cruft.

2014-05-23  Jan Nieuwenhuizen  <janneke@gnu.org>

	Gaiag: cpp: new module.

	Gaiag: logic-or: typo

	Gaiag: set lr driver.

	Gaiag: pretty: use match and snippets, junk eval.

2014-05-22  Jan Nieuwenhuizen  <janneke@gnu.org>

	Gaiag: pretty: handle . x functions through match rather than eval.

	Gaiag: pretty: refactor . x functions.

	Gaiag: pretty: separate . x functions.

	Gaiag: pretty: format-snippet: new function.

	Gaiag: pretty: use format-keys.

	Gaiag: format-keys.scm: new library.

	Gaiag: run indent on alarm-component-pretty.asd

	Gaiag: pretty print all examples.

	Gaiag: pretty print alarm-component.asd.

	Gaiag: pretty: new module.

	Gaiag: parse alarm-component.asd

	Gaiag: complete parser.

2014-05-21  Jan Nieuwenhuizen  <janneke@gnu.org>

	Gaiag: add asdgen.

	Gaiag: populate parser.

2014-05-20  Jan Nieuwenhuizen  <janneke@gnu.org>

	Gaiag: grammer renames.

	Gaiag: tokenize: reuse ecmascript.

	Gaiag: start with toplevel asd.

2014-05-15  Jan Nieuwenhuizen  <janneke@gnu.org>

	Gaiag: reuse ecmascript tokenizer.

	Gaiag: parse interface foobar { in int click; in void boo; out int bar; }

	Gaiag: parse: interface foobar { in int click; }

	Gaiag: parse interface Identifier.

	Gaiag: further decrufting.

	Gaiag: make @ and x + y work.

	Gaiag: Plug-in ecmascript tokenize.

	Gaiag: o 3 returns (on 3)

	Gaiag: list on.

	Gaiag: list

	Gaiag: New language: asd.

2014-05-24  Jan Nieuwenhuizen  <janneke@gnu.org>

	Gaiag: Guile in Asd In Asd in Guile: first commit.

	Initial.

Copyright © 2019 Jan (janneke) Nieuwenhuizen <janneke@gnu.org>

  Copying and distribution of this file, with or without modification,
  are permitted in any medium without royalty provided the copyright
  notice and this notice are preserved.

Normally a ChangeLog is generated at "make dist" time and available in
source tarballs.
