2017-01-07  Christopher Allan Webber  <cwebber@dustycloud.org>

	build: Releasing version 0.4.0.
	* configure.ac: Update version number to 0.4.0.

	build: Update and comment on hash in guix.scm.
	* guix.scm: Update hash, but also acknowledge that updating the hash
	here is futile since releasing will have a different hash!  In the
	future we'll have nicer code here that can use the code from the git
	checkout.

	build: Add guix.scm to tarball.
	Makefile.am (EXTRA_DIST): Add guix.scm.

	build: Rename package.scm to guix.scm and update.
	* guix.scm: Renamed from package.scm and updated for v0.4.0.

	build: Include bootstrap.sh in tarball.
	* Makefile.am (EXTRA_DIST): Add bootstrap.sh.

	NEWS: Updating news for v0.4.0.
	* NEWS: New 8sync 0.4 section.

2017-01-07  Christopher Allan Webber  <cwebber@dustycloud.org>

	build: Add gendocs.
	* doc/gendocs.sh:
	* doc/gendocs_template: New files.

	* .gitignore: Update to ignore files built by gendocs.sh.

2017-01-07  Christopher Allan Webber  <cwebber@dustycloud.org>

	doc: Move content from doc/8sync-new-manual.org to doc/8sync.texi.
	* doc/8sync-new-manual.org: Deleted.
	* doc/8sync.texi: Move content exported from doc/8sync-new-manual.org to
	here.

2017-01-06  Christopher Allan Webber  <cwebber@dustycloud.org>

	doc: Delete trailing whitespace.
	* doc/8sync-new-manual.org: Delete trailing whitespace.

	doc: Last minute cleanups to the tutorial before we move to texinfo.
	* doc/8sync-new-manual.org: Last minute cleanups to the tutorial before
	we move to texinfo.

	doc: Add a note about actor-alive? being likely to be deprecated.
	* doc/8sync-new-manual.org: Add footnote about future deprecation of
	actor-alive?.

	doc: Have telcmd tutorial example send itself a message for line handling.
	* doc/8sync-new-manual.org: Have telcmd tutorial example send itself a
	message for line handling.

2017-01-06  Christopher Allan Webber  <cwebber@dustycloud.org>

	irc: Convert handle-line to a message handler.
	* 8sync/systems/irc.scm (<irc-bot>): Add 'handle-line action handler,
	which points to handle-line generic.
	(dispatch-raw-line): Send message to our own actor to call handle-line.
	(handle-line): Convert to be an action handler.

	* demos/ircbot.scm:
	* doc/8sync-new-manual.org: Update implementers of handle-line generic
	method.

2017-01-06  Christopher Allan Webber  <cwebber@dustycloud.org>

	doc: Reordering some paragraphs in the tutorial.
	* doc/8sync-new-manual.org: Reordering some paragraphs in the tutorial.

	doc: Remove stray #+END_SRC.
	* doc/8sync-new-manual.org: Remove stray #+END_SRC.

	agenda: Remove deprecated comment.
	* 8sync/agenda.scm (run-agenda): Remove comment, since we did the thing
	it suggested doing in the future.

	doc: Some tutorial tweaks.
	* doc/8sync-new-manual.org: Small tutorial tweaks.

2017-01-04  Christopher Allan Webber  <cwebber@dustycloud.org>

	doc: Move the "live hacking intermission" to the bottom.
	* doc/8sync-new-manual.org: Move the "live hacking intermission" to
	the bottom of the tutorial.

	doc: Tutorial additions.
	* doc/8sync-new-manual.org: Add "Writing our own network-enabled
	actor" section.  Clean up other sections, including moving the intro
	to the tutorial blathering about IRC systems to a footnote.

2017-01-04  Christopher Allan Webber  <cwebber@dustycloud.org>

	Use *init* and *cleanup* in existing actors.
	* 8sync/repl.scm (<repl-manager>):
	* 8sync/systems/irc.scm (<irc-bot>): Switch from an 'init action to the
	implicit '*init* action.

	* 8sync/systems/irc.scm (<irc-bot>, irc-bot-cleanup): Add *cleanup*
	handler.

	* demos/ircbot.scm:
	* doc/8sync-new-manual.org: Drop some calls to 'init when
	bootstrapping-messages since we now use '*init*.

2017-01-04  Christopher Allan Webber  <cwebber@dustycloud.org>

	demos: Switch botherbotherbother demo over to use define-actor.
	* demos/actors/botherbotherbother.scm: Switch to use define-actor.

	actors: Cleanup on signals.
	* 8sync/actors.scm (run-hive): Handle signals, currently SIGINT and
	SIGTERM, in a friendly way.  Will still run cleanup on actors.

2017-01-04  Christopher Allan Webber  <cwebber@dustycloud.org>

	actors: Remove define-simple-actor, add define-actor.
	define-simple-actor wasn't very useful, whereas define-actor is
	moderately helpful.

	* 8sync/actors.scm (define-simple-actor): Remove.
	(define-actor): New macro.

	* demos/actors/robotscanner.scm:
	* demos/actors/simplest-possible.scm:
	* tests/test-actors.scm: Convert to use define-simple-actor instead of
	define-actor.

2017-01-04  Christopher Allan Webber  <cwebber@dustycloud.org>

	doc: Add a note about the calls to display.
	* doc/8sync-new-manual.org: Add paragraph.

	doc: Tweak and fix the "Writing our own actors" section.
	* doc/8sync-new-manual.org: Fixed some errors and made things a bit
	clearer.

	actors: Rename msg-receive, msg-val to mbody-receive, mbody-val.
	* 8sync/actors.scm (mbody-receive, mbody-val): Rename from msg-receive,
	msg-val.  Update all callers.

2017-01-03  Christopher Allan Webber  <cwebber@dustycloud.org>

	actors: Add auto-init feature to actors.
	* 8sync/actors.scm (<actor>): Add '*init* action to actions slot.
	(<hive>, hive-handle-init-all): Add '*init-all* action.
	(hive-handle-cleanup-all): Adjust comment.
	(%hive-create-actor): Add send-init? argument, and when supplied
	call <-wait on the actor's '*init* method.
	(bootstrap-actor, bootstrap-actor*): Rename from hive-create-actor,
	hive-create-actor*.  Switch init argument to init-args and pass in #f to
	%hive-create-actor's send-init? argument.
	(create-actor, create-actor*): Switch init argument to init-args
	and pass in #t to %hive-create-actor's send-init? argument.
	(run-hive): Add '*init-all* action call to the hive on the initial
	queue.

	* 8sync/debug.scm (bootstrap-actor-gimmie, bootstrap-actor-gimmie*):
	Rename from hive-create-actor-gimmie, hive-create-actor-gimmie*.

	* demos/actors/botherbotherbother.scm:
	* demos/actors/robotscanner.scm:
	* demos/actors/simplest-possible.scm:
	* demos/ircbot.scm:
	* doc/8sync-new-manual.org:
	* tests/test-actors.scm: Change calls from hive-create-actor to
	bootstrap-actor.

	* tests/test-actors.scm: Add actor *init*'ing tests.

2017-01-03  Christopher Allan Webber  <cwebber@dustycloud.org>

	doc: Add addendum section on relationship between 8sync and Fibers.
	* doc/8sync-new-manual.org: Add "8sync and Fibers" section.

2017-01-02  Christopher Allan Webber  <cwebber@dustycloud.org>

	actors: Implicit from-actor argument <-foo methods, and add rest of <-foo*.
	* 8sync/actors.scm (<-, <-wait, <-reply, <-reply-wait): from-actor is
	now implicitly supplied via %current-actor parameter.
	(<-*, <-reply*): New procedures.
	(<-wait*, <-reply-wait*): Now pull from-actor from #:actor.

	* 8sync/actors.scm:
	* 8sync/systems/irc.scm:
	* demos/actors/botherbotherbother.scm:
	* demos/actors/robotscanner.scm:
	* demos/actors/simplest-possible.scm:
	* demos/ircbot.scm:
	* tests/test-actors.scm: Update all callers of <-foo procedures to drop
	from-actor argument.

	* doc/8sync-new-manual.org: Update documentation of <-foo procedures to
	drop from-actor argument.

2017-01-02  Christopher Allan Webber  <cwebber@dustycloud.org>

	agenda: Rename start-agenda to run-agenda.
	* 8sync/agenda.scm (run-agenda): Renamed from start-agenda.
	* 8sync/actors.scm:
	* tests/test-agenda.scm: Update all callers.

2017-01-02  Christopher Allan Webber  <cwebber@dustycloud.org>

	actors: Rename *clean-up* back to *cleanup.
	By popular intarwebs opinion.

	* 8sync/actors.scm (<actor>, <hive>, hive-handle-cleanup-all)
	(self-destruct, run-hive): Rename all references of clean-up to cleanup.
	(hive-handle-cleanup-all, run-hive-cleanup): Rename name from clean-up
	version.
	* tests/test-actors.scm: Likewise.

2017-01-02  Christopher Allan Webber  <cwebber@dustycloud.org>

	actors: Rename actor-am-i-alive? to actor-alive?.
	* 8sync/actors.scm (actor-alive?): Rename from actor-am-i-alive?.
	* 8sync/actors.scm:
	* 8sync/repl.scm:
	* doc/8sync-new-manual.org: Update all references to actor-alive?.

2017-01-02  Christopher Allan Webber  <cwebber@dustycloud.org>

	actors: Automatically add cookie by default in hive-create-actor.
	Also switch separator in cookie from "-" to ":".

	* 8sync/actors.scm (hive-gen-actor-id): Switch separator from "-" to ":".
	(hive-create-actor): Automatically add a cookie based on the class name.
	(hive-create-actor*): Tweak docstring.

2017-01-02  Christopher Allan Webber  <cwebber@dustycloud.org>

	tests: Fix broken test in test-actors.
	* tests/test-actors.scm: Fix broken test, forgot to update expected output.

	tests: Oops, forgot to add <exploder> to test-actors.
	* tests/test-actors.scm: Add <exploder>.

	actors: Update self-destruct to run *clean-up* message handler.
	* 8sync/actors.scm (self-destruct): Wait on *clean-up* action before
	self-destructing by default.
	(run-hive): Add parameter to specify whether or not to clean-up after
	the hive finishes its tasks.
	* tests/test-actors.scm: Add tests for disabling #:clean-up on run-tasks
	and ensuring that *clean-up* runs on self-destruct.

	actors: Rename *cleanup* action to *clean-up*.
	* 8sync/actors.scm (<actor>, <hive>, hive-handle-clean-up-all, run-hive):
	Rename *cleanup* to *clean-up* and *cleanup-all* to *clean-up-all*.
	* tests/test-actors.scm: Likewise.

2017-01-02  Christopher Allan Webber  <cwebber@dustycloud.org>

	actors: Add cleanup facility to run-hive.
	* 8sync/actors.scm (build-actions): Moved location to be before <actor>
	for compiler reasons.
	(<actor>): Add *cleanup* default action to all actors, which does
	nothing by default.
	(<hive>, hive-handle-cleanup-all): New cleanup method, which gives
	all actors still in the registry a chance to clean up.
	(make-hive): Have the hive register itself to itself.
	(run-hive): Now run in a dynamic-wind, and call run-hive-cleanup when
	we're done.
	(run-hive-cleanup): New variable.

	* tests/test-actors.scm: New test to make sure cleanup is run.

2017-01-02  Christopher Allan Webber  <cwebber@dustycloud.org>

	tests: Add "speaker" utility.
	* tests/utils.scm (speak-it, %speaker, speak, get-spoken, with-fresh-speaker):
	New variables.
	* tests/test-agenda.scm (speak-it): Remove in favor of new speaker from
	utils.scm.  Update to use new speaker.

2017-01-01  Christopher Allan Webber  <cwebber@dustycloud.org>

	doc: Rename calls to ez-run-hive to run-hive and adjust titles.
	* doc/8sync-new-manual.org: Rename calls to ez-run-hive to run-hive and
	adjust titles.

	actors: Rename ez-run-hive to run-hive.
	* 8sync/actors.scm (run-hive): Renamed from ez-run-hive.
	All callers changed.

	docs: Added "Writing our own actors" section
	* doc/8sync-new-manual.org: New "Writing our own actors and sending
	messages between them" section.

2016-12-31  Christopher Allan Webber  <cwebber@dustycloud.org>

	doc: Add pk debugging section.
	* doc/8sync-new-manual.org: Add pk debugging section.
	Simplify some handle-line examples.

2016-12-30  Christopher Allan Webber  <cwebber@dustycloud.org>

	doc: Finish "About live hacking" section.
	* doc/8sync-new-manual.org: "An intermission: about live hacking" section
	finished, at least for now.

2016-12-28  Christopher Allan Webber  <cwebber@dustycloud.org>

	agenda: When re-invoking a continuation at the agenda, don't wrap in a catch.
	* 8sync/agenda.scm (<kontinue>): Add new record type which just wraps a
	delimited continuation.
	(8sync, 8sleep, 8yield): Wrap continuations in kontinue.
	(agenda-run-once!): If "kontinue?", just resume the continuation without
	catching errors (it already has an error handler!).

2016-12-28  Christopher Allan Webber  <cwebber@dustycloud.org>

	agenda: Fix prompt buildup in agenda.
	Every time a delimited continuation was resumed, we were re-parameterizing.

	* 8sync/agenda.scm (current-agenda-prompt): Remove.
	(8sync-abort-to-prompt): Use (%current-agenda-prompt) parameter.
	(%current-agenda-prompt): New prompt, deprecating %current-agenda.  This
	is a slight optimization; we were only using the agenda for the prompt,
	so we can remove the indirection of looking up the agenda prompt tag
	every time.
	(%current-agenda): Removed, see above.
	(start-agenda): Move parameterization of %current-agenda-prompt,
	current-read-waiter, and current-write-waiter here.
	(agenda-run-once!): Remove parameterization.
	Also remove comment which is irrelevant now that we're no longer using
	an immutable-record-type on the agenda.

2016-12-28  Christopher Allan Webber  <cwebber@dustycloud.org>

	agenda: Switch "yield" to "8yield" and export.
	This avoids a name collision with an existing procedure.  Plus yield was
	never exported, apparently.

	* 8sync/agenda.scm (8yield): Renamed from yield.

2016-12-28  Christopher Allan Webber  <cwebber@dustycloud.org>

	agenda: Major cleanup.
	* 8sync/agenda.scm (<agenda>, make-agenda, agenda-time): Move from being
	an immutable-record-type to just a regular one.  Add set-agenda-queue!
	and remove time slot.
	(time-from-float-or-fraction, time-segment-right-format, <time-delta>)
	(make-time-delta, tdelta, time-delta+, 8usleep): Removed.
	(schedule-add!, schedule-segments-split): Remove let shadowing of time.
	There's no need to always convert the time format since it should now be
	correct by the time it gets here.
	(delayed-time): New variable.
	(run-delay, 8sleep): Use delayed-time.
	(update-agenda-from-select!): Use gettimeofday instead of agenda-time.
	(start-agenda): Remove get-time and handle-ports keyword arguments.
	Simplify loop considerably.
	(agenda-run-once!): Renamed from agenda-run-once.  Simplify the enqueue
	part of the code since we've constrained what an acceptable time value
	looks like.  Use set-agenda-queue!.

	* tests/test-agenda: Update for changes to agenda.scm.

2016-12-26  Christopher Allan Webber  <cwebber@dustycloud.org>

	actors: Add new method of running REPL via REPL actor.
	Also adds new procedure to see if an actor is alive, and make use of it
	in the new REPL actor.

	* 8sync/actors.scm (actor-am-i-alive?): New procedure.
	(ez-run-hive): Remove #:repl-server keyword.
	* 8sync/repl.scm (<make-coop-server-handler, spawn-and-queue-repl-server!):
	Remove.
	(<repl-manager>, repl-manager-cleanup, repl-manager-init): New variables.
	* demos/ircbot.scm (parse-args): Add --repl command line option.
	(run-bot): Add and queue <repl-manager> actor if appropriate.

2016-12-26  Christopher Allan Webber  <cwebber@dustycloud.org>

	actors: Removing unnecessary level of indirection around actor-message-handler.
	* 8sync/actors.scm (actor-message-handler): Move to be a simple #:getter
	of <actor>, which is what it really was already anyhow.

2016-12-25  Christopher Allan Webber  <cwebber@dustycloud.org>

	doc: Add "A silly little IRC bot" section to new manual.
	* doc/8sync-new-manual.org: Add "A silly little IRC bot" section.

	demos: Import format in ircbot.scm.
	* demos/ircbot.scm: Import "(ice-9 format)".

2016-12-24  Christopher Allan Webber  <cwebber@dustycloud.org>

	doc: Add tutorial intro to the new manual.
	* doc/8sync-new-manual.org: Fill in "Intro to the tutorial" section.

	doc: Drafting a new manual.
	* doc/8sync-new-manual.org: New file.  This is a temporary location for
	manual contents while ideas for the manual are being spelled out.

2016-12-24  Christopher Allan Webber  <cwebber@dustycloud.org>

	irc: Split irc-bot-send-line into main functionality and action handler.
	This allows irc-bot-send-line to be called directly.

	* 8sync/systems/irc.scm (irc-bot-send-line): Update this procedure to
	not have a message as one of the arguments so it can be called directly.
	(irc-bot-send-line-action): Action handler, doing what irc-bot-send-line
	previously did.
	(<irc-bot>): Update actions mapping to point to irc-bot-send-line-action.

2016-12-24  Christopher Allan Webber  <cwebber@dustycloud.org>

	actors: Update actor ids to use a vector rather than a cons cell.
	This is a bit easier to read when read/written, and should be
	comparatively efficient.

	* 8sync/actors.scm (make-address, address-actor-id, address-hive-id):
	Update to use a vector rather than a cons cell.

2016-12-24  Christopher Allan Webber  <cwebber@dustycloud.org>

	irc: Fixing "PONG" response, calls to handle-foo commands.
	* 8sync/systems/irc.scm (dispatch-raw-line): Append irc-eol to PONG response.
	Fix calls to hanle-line and handle-misc-input, which recently were
	renamed.

2016-12-23  Christopher Allan Webber  <cwebber@dustycloud.org>

	irc: Shorten generic method names.
	* 8sync/systems/irc.scm: (handle-line, handle-misc-input)
	(handle-user-join, handle-user-quit): Shorten names from their previous
	irc-bot-* longer names.  Update callers.
	* demos/ircbot.scm: Update callers to above.

2016-12-23  Christopher Allan Webber  <cwebber@dustycloud.org>

	irc: Move irc-bot code to make use of generic methods
	ircbot.scm demo also now makes use of subclassing.

	* 8sync/systems/irc.scm (<irc-bot>): Removed line-handler field.
	(irc-bot-dispatch-line): Renamed from irc-bot-dispatch-raw-line.
	All callers changed.
	(irc-bot-send-line): Moved position in file.
	(irc-bot-handle-line): New method.
	(irc-bot-handle-misc-input, irc-bot-handle-user-join)
	(irc-bot-handle-user-quit): New stub methods.

	* demos/ircbot.scm (<my-irc-bot>): New variable.
	(irc-bot-handle-line): Now a generic method extending same named
	method in 8sync/systems/irc.scm.  Previously was `handle-line'.
	(run-bot): Use <my-irc-bot>.
	(main): Remove debugging pk.

2016-12-23  Christopher Allan Webber  <cwebber@dustycloud.org>

	irc: Update irc code to use actors.
	Also some significant cleanup.  But more can still be done!

	* 8sync/systems/irc.scm: Adjust exports.
	(irc-line, irc-format, irc-display, irc-send-message)
	(irc-send-formatted, handle-login, <irc-line>)
	(default-handle-privmsg, make-handle-line, irc-loop)
	(default-line-handler, queue-and-start-irc-agenda!): Removed.
	(parse-line): Return multiple values rather than the <irc-line>
	record.
	(irc-line-username): Update to use prefix rather than pulling
	out of <irc-line>.
	(condense-privmsg-line): Update docstring to call `is-action' `emote?'.
	(echo-message): Renamed from echo-back-message.  Change argument list
	and body to match new version and add docstring.
	(<irc-bot>, irc-bot-username, irc-bot-server, irc-bot-channels)
	(default-irc-port, irc-bot-line-handler, irc-bot-socket)
	(irc-bot-realname, irc-bot-init, irc-bot-main-loop, irc-bot-dispatch-line)
	(irc-bot-send-line): New variables.

	* demos/ircbot.scm (handle-line): Renamed from `handle-message'.
	Adjust body for actors edition.
	(display-help, parse-args, run-bot): New variables.
	(main): Adjusted for new structure.

2016-12-22  Christopher Allan Webber  <cwebber@dustycloud.org>

	actors: Add docstring to hive-create-actor*.
	* 8sync/actors.scm (hive-create-actor*): Added docstring.

2016-12-21  Christopher Allan Webber  <cwebber@dustycloud.org>

	actors: Move error propagation within <-wait; add <-wait*, <-reply-wait*.
	* 8sync/actors.scm (send-message): Rename xtra-params argument to
	send-options and use it in aborting to the hive prompt.
	(<-wait*, <-reply-wait*): New procedures.  These allow for adding
	a send-options list as a first argument, including #:accept-errors.
	These also wrap call wait-maybe-handle-errors.
	(<-wait, <-reply-wait): Updated as thin wrappers around <-wait* and
	<-reply-wait*.
	(wait-maybe-handle-errors): New procedure.
	(<waiting-on-reply>): New record type.
	(hive-process-message): Update to accept send-options and make use
	of <waiting-on-reply>.  Removes error handling, which now hapens in
	wait-maybe-handle-errors.

	actors: Generalize the <-foo methods functionality into send-message.
	* 8sync/actors.scm (send-message): New procedure.
	(<-, <-wait, <-reply, <-auto-reply, <-reply-wait): Update to use
	send-message.

2016-12-20  Christopher Allan Webber  <cwebber@dustycloud.org>

	actors: Switch coroutine waiting code over to using case.
	* 8sync/actors.scm (hive-process-message): Update resume-waiting-coroutine
	code over to using a case statement.

	agenda: Fixing exports.
	* 8sync/agenda.scm: Removed deprecated variables 8sync-delay, 8sync-run,
	8sync-run-at, and 8sync-run-delay.
	Added 8usleep.

	actors: Document the <message> records's fields.
	* 8sync/actors.scm (<message>): Add comments.

	Add toplevel 8sync.scm file.
	* 8sync.scm: New file.
	* Makefile.am: Add it.

	actors: Move actors center-stage in 8sync.
	* 8sync/systems/actors.scm: Renamed to 8sync/actors.scm.
	* 8sync/systems/actors/debug.scm: Renamed to 8sync/debug.scm.
	* Makefile.am: Update for renamed files.
	* demos/actors/botherbotherbother.scm:
	* demos/actors/robotscanner.scm:
	* demos/actors/simplest-possible.scm:
	* tests/test-actors.scm: Update import of actors module to new location.

2016-12-19  Christopher Allan Webber  <cwebber@dustycloud.org>

	build: Releasing v0.3.0.
	* configure.ac: Bumping version number to 0.3.0.

2016-12-19  Christopher Allan Webber  <cwebber@dustycloud.org>

	web: Deprecate current web system.
	The web system needs a rewrite, so officially deprecating, but keeping
	code around in a file for reference.

	* 8sync/systems/web-deprecated.scm: Renamed from 8sync/systems/web.scm.
	* demos/hello-web.scm: Removed.
	* Makefile.am: Remove references to above.

2016-12-19  Christopher Allan Webber  <cwebber@dustycloud.org>

	NEWS: Updating news to current 0.3.0 state.
	* NEWS: New 0.3 section.

2016-12-17  Christopher Allan Webber  <cwebber@dustycloud.org>

	actors: Deprecate old facilities.
	* 8sync/systems/actors.scm (simple-dispatcher, build-actions)
	  (make-action-dispatch): Remove.
	  (mhandlers): Renamed to build-actions.

2016-12-16  Christopher Allan Webber  <cwebber@dustycloud.org>

	demos: Update demos to new conventions.
	* demos/actors/botherbotherbother.scm:
	* demos/actors/robotscanner.scm:
	* demos/actors/simplest-possible.scm: Update demos to use new
	  conventions around actions slot, lack of message-ref, etc.

2016-12-16  Christopher Allan Webber  <cwebber@dustycloud.org>

	actors: Adding "mhandlers" and updating define-simple-actor to use it.
	We also mark a whole range of abstractions as deprecated, but those will
	be removed as they're phased out of use.

	* 8sync/systems/actors.scm (mhandlers): New macro.
	  (define-simple-actor): Update to use mhandlers.

2016-12-16  Christopher Allan Webber  <cwebber@dustycloud.org>

	actors: Remove wrap-apply from actor-inheritable-message-handler call.
	* 8sync/systems/actors.scm (actor-inheritable-message-handler): Move location.
	  (<actor>): Switch init-value of actor-inheritable-message-handler to
	  drop wrap-apply.

	actors: Add "inheritable" message handler as default message-handler.
	* 8sync/systems/actors.scm (actor-inheritable-message-handler): New
	  variable.
	  (<actor>): New actions slot, and adjust init-value of message-handler
	  to be actor-inheritable-message-handler.

2016-12-15  Christopher Allan Webber  <cwebber@dustycloud.org>

	actors: Add %current-actor parameter.
	This allows actors which may call out long procedures, such as a web
	worker, to still be able to have access their actor so they can send
	messages to other actors.

	* 8sync/systems/actors.scm (%current-actor): New variable.
	  (hive-process-message): Update to parameterize %current-actor.

2016-12-14  Christopher Allan Webber  <cwebber@dustycloud.org>

	agenda: Add 8usleep.
	* 8sync/agenda.scm (8usleep): New variable.
	  (8sleep): Update to refer to argument as "secs" rather than "time".

	doc: Remove (inaccurate) version number from docs.
	* doc/8sync.texi: Remove version number.

2016-12-14  Christopher Allan Webber  <cwebber@dustycloud.org>

	doc: Remove the indentation after newline structure.
	We still wrap on sentence breaks.

	* doc/8sync.texi: Remove indentation after newlines.

2016-12-13  Christopher Allan Webber  <cwebber@dustycloud.org>

	NEWS: Mention the actor model subsystem added to 8sync 0.2.
	* NEWS: Add 8sync 0.2 section and mention the actor model subsystem.

	actors: Add msg-val and add docstring to msg-receive.
	* 8sync/systems/actors.scm (msg-receive): Add docstring, and change
	  parameter name from "the-message" to just "message".
	  (msg-val): New procedure.

2016-12-12  Christopher Allan Webber  <cwebber@dustycloud.org>

	actors: Add comment about adding deferred-slot to <message>.
	* 8sync/systems/actors.scm: Add comment.

2016-12-12  Christopher Allan Webber  <cwebber@dustycloud.org>

	actors: Remove => alias.
	Seems it causes problems with cond and etc.  No big surprise.

	* 8sync/systems/actors.scm (=>): Removed.

2016-12-12  Christopher Allan Webber  <cwebber@dustycloud.org>

	actors: Fix "unrewindable continuation" issue with error handling code.
	* 8sync/systems/actors.scm (hive-reply-with-error, hive-process-message):
	  Move responding with error to outside of the catch statement.
	  This was resulting in unrewindable continuation issues.

	tests: Call msg-receive, not msg-recieve
	* tests/test-actors.scm: Fix test calls to msg-receive (was typo'ed).

2016-12-12  Christopher Allan Webber  <cwebber@dustycloud.org>

	tests: Update test-actors to use msg-recieve instead of =>.
	It feels like msg-recieve is an easier to read name, and looks less
	like a structure used elsewhere (the way => is used in cond).

	* tests/test-actors.scm: Update to switch => to msg-recieve.

2016-12-11  Christopher Allan Webber  <cwebber@dustycloud.org>

	actors: Move message body to being an argument list for procedures.
	This also removes the whole define-mhandler, mlambda, etc stuff... as
	well as message-ref, since the argument list can be just about anything.

	* 8sync/systems/actors.scm (<message>, message-deferred-reply)
	  (set-message-deferred-reply!, make-message, serialize-message)
	  (serialize-message-pretty, read-message): Removed deferred-reply slot from
	  <message>.
	  (message-ref, %nothing-provided, with-message-args, mlambda)
	  (define-mhandler): Removed.
	  (message-needs-reply?): Renamed from message-needs-reply, removed
	  reference to message-deferred-reply.
	  (message-auto-reply?, <-auto-reply, call-with-message, msg-receive, =>):
	  New procedures / macros.
	  (<-, <-wait, <-reply, <-reply-wait, simple-dispatcher, hive-reply-with-error):
	  Update to pass in arguments as an argument list.
	  (%expand-action-item): Remove optional "inline" message handler form.
	  (hive-process-message): Update for rename of message-needs-reply?;
	  use <-auto-reply where appropriate, check for an action of
	  either *reply* or *auto-reply*.

	* tests/test-actors.scm: Adjust tests to meet new structure.

2016-12-11  Christopher Allan Webber  <cwebber@dustycloud.org>

	agenda: Move install-suspendable-ports! call to start-agenda.
	* 8sync/agenda.scm: Remove install-suspendable-ports! call from top level.
	  (start-agenda): Move install-suspendable-ports! here.

	actors: Make the <-* message sending procedures official, not aliases.
	* 8sync/systems/actors.scm (send-message, send-message-wait)
	  (reply-message, reply-message-wait): Removed.
	  (<-, <-wait, <-reply, <-reply-wait): Converted from being aliases
	  to being the official procedure names.

	agenda: Fix 8sleep's time parameter.
	* 8sync/agenda.scm (8sleep): Wrap time parameter in tdelta before passing
	  to make-run-request.

	actors: Removing deprecated comment.
	* 8sync/systems/actors.scm (<message>): Removing deprecated comment
	  about replied and deferred-reply slots not being used, since we use
	  them now.

2016-12-10  Christopher Allan Webber  <cwebber@dustycloud.org>

	actors: Remove deprecated call to former "8sync" definition
	These used the old meaning of 8sync, where something would happen
	asynchronously but return its value.

	* 8sync/systems/actors.scm (hive-create-actor, hive-create-actor*): Remove
	  call to 8sync, just call its previous body on its own.

2016-12-10  Christopher Allan Webber  <cwebber@dustycloud.org>

	agenda: Cut out huge swath of old 8sync-* procedures/macros.
	* 8sync/agenda.scm (<wrapped-exception, make-wrapped-exception)
	  (wrapped-exception?, wrapped-exception-key, wrapped-exception-args)
	  (wrapped-exception-stacks, propagate-%async-exceptions, 8sync-run)
	  (8sync-run-at, 8sync-run-delay, 8sync-delay): Removed.
	  (8sync): Update to allow for multiple statements in body.
	  (8sleep): Rewrite to not depend on 8sync-delay.
	* tests/test-agenda.scm: Remove test for 8sync-delay.

2016-12-09  Christopher Allan Webber  <cwebber@dustycloud.org>

	agenda: Add yield procedure.
	* 8sync/agenda.scm (yield): New variable.

	agenda: Rename 8sync-nowait to 8sync.
	* 8sync/agenda.scm (8sync-nowait, 8sync): Renamed 8sync-nowait to 8sync.
	* 8sync/systems/actors.scm (send-message, reply-message hive-reply-with-error):
	  Switch calls of 8sync-nowait to 8sync.

2016-12-09  Christopher Allan Webber  <cwebber@dustycloud.org>

	agenda: Remove 8sync macro.
	Despite being the namesake of the project, this turns out to have never
	really been important or made sense, except as a way to yield control as
	a form of context switching.  This is moving towards renaming
	8sync-nowait to 8sync, a forthcoming change.

	* 8sync/agenda.scm (8sync, catch-8sync): Removed.
	* tests/test-agenda.scm: Removed all tests calling the 8sync macro.

2016-12-09  Christopher Allan Webber  <cwebber@dustycloud.org>

	Add comment noting that the "web" system needs a rewrite.
	* 8sync/systems/web.scm: Add comment/TODO item about using deprecated code.

2016-12-08  Christopher Allan Webber  <cwebber@dustycloud.org>

	irc: Update IRC code to use simpler suspendable ports system.
	* 8sync/systems/irc.scm (irc-socket-setup): Set port to be non-blocking.
	  (install-socket, make-basic-irc-handler): Remove.
	  (irc-loop): New procedure; uses the Guile read-line code to switch
	  from the former manual-buffering of make-basic-irc-handler to simply
	  using Guile's read-line utility.
	  (queue-and-start-irc-agenda!): Use irc-loop.

	agenda: Remove call to deprecated agenda-except-port-map procedure.
	* 8sync/agenda.scm (update-agenda-from-select!): Remove call to deprecated
	  agenda-except-port-map procedure.

	agenda: Remove debugging statements.
	* 8sync/agenda.scm (wait-for-readable, wait-for-writable): Removed debug
	  statments.

2016-12-08  Christopher Allan Webber  <cwebber@dustycloud.org>

	agenda: Use suspendable ports feature from Guile 2.2.
	This removes the old method of watching for when ports are updated via
	select and explicitly calling a particular function, and instead can
	simply suspend at the appropriate points using Guile's common I/O
	procedures; the agenda handles waking things up when they're ready.

	* 8sync/agenda.scm: Import `(ice-9 suspendable-ports)' and run
	  install-suspendable-ports!
	  (<agenda>, agenda-except-port-map, make-agenda): Drop except-port-map
	  from agenda.  The "meaning" of read-port-map and write-port-map has
	  changed a bit too; these are still a hash-table of a port to a procedure
	  to be called when that port is available, but after being selected,
	  items are removed from the table.
	  (<port-request>, make-port-request, port-request, <port-remove-request>)
	  (port-remove-request, 8sync-port, 8sync-port-remove)
	  (agenda-handle-port-request!, agenda-handle-port-remove-request!): Remove.
	  (8sync-nowait): Move comment that was previously in 8sync-port here.
	  (update-agenda-from-select!): Update to use the new "meaning" of the
	  agenda-read-port-map and agenda-write-port-map and to drop referencing
	  the deprecated agenda-except-port-map.  Properly removes items from
	  the read and write maps once they've been selected.
	  (<read-request>, <write-request>, agenda-handle-read-request)
	  (agenda-handle-write-request, wait-for-readable, wait-for-writable):
	  New variables.
	  (stop-on-nothing-to-do): Remove check on removed agenda-except-port-map.
	  (agenda-run-once): Parameterize the current-read-waiter and
	  current-write-waiter to wait-for-readable and wait-for-writable
	  respectively.  Update handle-individual to use the new <read-request>
	  and <write-request> types.

2016-12-08  Christopher Allan Webber  <cwebber@dustycloud.org>

	build: Require and use guile-2.2.
	This is necessary to make use of the suspendable-ports feature.

	* configure.ac: Update PKG_CHECK_MODULES to use guile-2.2.
	* package.scm: Update package's native-inputs to use guile-next.

2016-12-05  Christopher Allan Webber  <cwebber@dustycloud.org>

	v0.2.0

2016-05-09  Christopher Allan Webber  <cwebber@dustycloud.org>

	agenda: Add "8sleep" sugar.
	* 8sync/agenda.scm (8sleep): Sugary macro for something like "sleep",
	  but tuned to 8sync to be nonblocking.

2016-05-07  Christopher Allan Webber  <cwebber@dustycloud.org>

	actors: Fix hive-actor-local? to check the hive id, not whether actor exists.
	* 8sync/systems/actors.scm (hive-actor-local?): Update to check the hive id.

	agenda: Permit a post-run-hook in start-agenda.
	* 8sync/agenda.scm (start-agenda): Add a post-run-hook keyword argument.
	  This permits more live hacking madness, as used in syncmud.

2016-05-03  Christopher Allan Webber  <cwebber@dustycloud.org>

	agenda: Update comment, could also attach catch routines to hive.
	* 8sync/systems/actors.scm (hive-process-message): Update comment.

2016-05-03  Christopher Allan Webber  <cwebber@dustycloud.org>

	actors: Catch all errors in the actor model.
	Not doing so results in a SIGABRT.

	* 8sync/systems/actors.scm (hive-process-message): Catch all errors
	  and call print-error-and-continue.  Leave comment for thoughts on
	  using maybe-catch-all.

2016-05-03  Christopher Allan Webber  <cwebber@dustycloud.org>

	actors: Permit docstrings in mlambda.
	* 8sync/systems/actors.scm (mlambda): Switched to syntax-case so we can
	  identify and allow docstrings.

	actors: Export simple-dispatcher.
	* 8sync/systems/actors.scm: Export simple-dispatcher.

	actors: Export build-actions.
	* 8sync/systems/actors.scm: Export build-actions.

	actors: Add note that maybe action dispatch error checks should be moved.
	* 8sync/systems/actors.scm (simple-dispatcher): Add comment.

	actors: Add build-actions and retool make-action-dispatch to use it.
	* 8sync/systems/actors.scm (build-actions): New macro.
	  (make-action-dispatch): Retool to use build-actions.

2016-05-02  Christopher Allan Webber  <cwebber@dustycloud.org>

	actors: Add with-message-args and build mlambda off it.
	* 8sync/systems/actors (with-message-args): New macro.
	  (mlambda): Retool to use with-message-args as base.

2016-04-30  Christopher Allan Webber  <cwebber@dustycloud.org>

	actors: Add define-mhandler, a method handler definition tool.
	* 8sync/systems/actors.scm (define-mhandler): New macro.

2016-04-29  Christopher Allan Webber  <cwebber@dustycloud.org>

	demos: robotscanner: Use nice auto-message-ref feature.
	* demos/actors/robotscanner.scm (<warehouse-room>, <security-robot>):
	  Update to use new automatic-message-ref-pulled-out mlambda syntax.

	demos: botherbotherbother: Add missing newline.
	* demos/actors/botherbotherbother.scm (professor-be-bothered):
	  Add missing newline.

2016-04-29  Christopher Allan Webber  <cwebber@dustycloud.org>

	actors: mlambda, removing require-slot, GOOPS usage cleanup
	mlambda is a new nice sugar for passing in arguments, so add that.
	Also, various problems found with GOOPS hackery in Guile 2.2.
	Cleaning up.

	* 8sync/systems/actors.scm (require-slot): Removed.  Doesn't work with
	  Guile 2.2.
	  (<actor>): Updated to drop usage of require-slot.
	  (mlambda): New procedure allowing automatically pulling out message
	  stuff from action method definitions.
	  (%expand-action-item): Use mlambda.
	  (<hive>): Remove redundant slot definition back to hive.  The actor
	  already does this, and not re-supplying the accessor breaks GOOPS
	  in Guile 2.2.

2016-04-29  Christopher Allan Webber  <cwebber@dustycloud.org>

	actors: debug: hive-create-actor-gimmie*'s init should glob arguments.
	* 8sync/systems/actors/debug.scm (hive-create-actor-gimmie*): init should
	  grab the rest of the arguments.

2016-04-28  Christopher Allan Webber  <cwebber@dustycloud.org>

	actors: Handle messages/coroutines in want of reply and errors.
	If we call another method and we're "waiting" on a reply, and an error
	happens in the other function so that it can't continue, that shouldn't
	leave our coroutine hanging around in the waiting-coroutines hashmap
	forever.  Instead, we raise it and throw an error warning about that.

	(More ideally, we'd like to raise this inside of the send-message type
	methods but that seems to cause a SIGABRT.  Yikes!)

	* 8sync/systems/actors.scm (hive-reply-with-error): New method.
	  (hive-process-message): Update call-catching-coroutine to reply with
	  an eror if an uncaught exception happens.
	  Update resume-waiting-coroutine to recognize whether the message
	  has a '*reply* action or not.  If not, remove the coroutine (we'll
	  never get a reply) and throw an error.

2016-04-27  Christopher Allan Webber  <cwebber@dustycloud.org>

	actors: Remove unnecessary let in hive-process-message.
	* 8sync/systems/actors.scm (hive-process-message): Removed unnecessary let.

	demos: robotscanner: Use new <- syntax.
	* demos/actors/robotscanner.scm (<overseer>, <warehouse-room>)
	  (<droid>, <security-robot>): Update to using <- style send message
	  aliases.

	actors: debug: Fixing hive-create-actor-gimmie, hive-create-actor-gimmie*.
	* 8sync/systems/actors/debug.scm (hive-create-actor-gimmie)
	  (hive-create-actor-gimmie*): Fix definitions.

	actors: Define "<-" type aliases for send-message and friends.
	* 8sync/systems/actors.scm (<-, <-wait, <-reply, <-reply-wait): Aliases
	  for send-message, send-message-wait, reply-message, reply-message-wait
	  respectively.

	actors: Rename hive-bootstrap-message -> bootstrap-message.
	* 8sync/systems/actors.scm (bootstrap-message): Renamed from
	  hive-bootstrap-message.
	* demos/actors/botherbotherbother.scm (main):
	* demos/actors/robotscanner.scm (main):
	* demos/actors/simplest-possible.scm (main):
	* tests/test-actors.scm: Rename references to bootstrap-message.

2016-04-26  Christopher Allan Webber  <cwebber@dustycloud.org>

	actors: Remove <hive-proxy>; no longer export actor-hive.
	The goal of hive-proxy (in XUDD at least) was to prevent actors from
	accessing their hive.  Since we're no longer exporting actor-hive
	we've more or less achieved that though.

	* 8sync/systems/actors.scm: No longer export actor-hive.
	  (<message>): Adjust comment about deferred-reply.
	  (<hive-proxy>, <debug-hive-proxy>): Removed.

2016-04-26  Christopher Allan Webber  <cwebber@dustycloud.org>

	actors: debug: Expose more things via debug
	* 8sync/systems/actors/debug.scm (expose): New macro for easy exposing
	  of things not normally exported from the actors module.
	  (hive-resolve-local-actor): Switch to use "expose".
	  (actor-hive): Expose/export.
	  (hive-create-actor-gimmie*): Switch to be a procedure rather than a macro.

	demos: simplest-possible: Rename main function.
	* demos/actors/simplest-possible.scm (main): Renamed from run-demo.

	demos: simplest-possible: Adjust emo/proog dialogue to match film.
	* 8sync/systems/actors.scm (<emo>, <proog>): Adjust what the characters say.

	actors: Switch hive-create-actor[*] to match create-actor[*]
	* 8sync/systems/actors.scm (hive-create-actor, hive-create-actor*):
	  Adjust syntax to match that of create-actor and create-actor*.
	* demos/actors/botherbotherbother.scm (main):
	* tests/test-actors.scm: Adjust to use.

	actors: Switch random-number-size to be 2^128.
	* 8sync/systems/actors.scm (random-number-size): Switch to 2^128.

	demos: actors: Update main functions to support arbitrary arguments.
	* demos/actors/robotscanner.scm (main):
	* demos/actors/simplest-possible.scm (run-demo): Update to take
	  arbitrary arguments.  This allows being more easily run by the
	  command line.

	actors: Add debug module with useful utilities.
	* 8sync/systems/actors/debug.scm: New file.
	* Makefile.am (SOURCES): Add it.

	build: Add actors demos to EXTRA_DIST.
	* Makefile.am (EXTRA_DIST): Add the actors demos botherbotherbother,
	  simplest-possible, and robotscanner.

	agenda: Update copyright header.
	* 8sync/agenda.scm: Update copyright header.

	demos: robotscanner: Add comment explaining what the demo does.
	* demos/actors/robotscanner.scm: New toplevel comment.

	demos: actors: Adding new robotscanner demo.
	* 8sync/actors/robotscanner.scm: New file.

2016-04-26  Christopher Allan Webber  <cwebber@dustycloud.org>

	actors: Switch send-message and reply-message to use 8sync-nowait
	There's no reason to block on continuing our work if using just
	send-message and reply-message, so, fix.

	* 8sync/systems/actors.scm (send-message, reply-message):
	  Switch to using 8sync-nowait instead of 8sync.

2016-04-26  Christopher Allan Webber  <cwebber@dustycloud.org>

	agenda: Rename 8sync-immediate to 8sync-nowait and fix.
	* 8sync/agenda.scm (8sync-nowait): Rename from 8sync-immediate.
	  Fix so that it runs (needed to put body in lambda)

	actors: Fix self-destruct.
	* 8sync/systems/actors.scm (self-destruct): Fix call to hash-remove!,
	  which had the wrong arguments passed to hash-remove!

	actors: Fix create-actor, create-actor*
	* 8sync/systems/actors.scm (create-actor, create-actor*):
	  Fixed calls to %hive-create-actor, which were missing the actor class.

	actors: Add actor creation/destruction methods.
	* 8sync/systems/actors.scm (create-actor, create-actor*, self-destruct):
	  New procedures.

2016-04-25  Christopher Allan Webber  <cwebber@dustycloud.org>

	tests: actors: Add autoreply tests.
	* tests/test-actors.scm: Added autoreply tests.
	  (%record-out, ~display, ~format): Tools to test the display output
	  from tests.
	  (<antsy-caller>, <diligent-rep>, <lazy-rep>): New classes for testing
	  autoreply tools.

	actors: Properly autoreply to replies; make reply-message-wait work.
	* 8sync/systems/actors.scm (hive-process-message): Enable prompt even when
	  resuming coroutines.
	  Enable autoreply when resuming coroutines.
	  (send-message-wait, reply-message-wait): Rename agenda-prompt variable to
	  abort-to, which makes more sense.

	actors: Remove unnecessary "begin".
	* 8sync/systems/actors.scm (hive-process-message): Remove "begin",
	  which was only wrapping one thing.

	actors: Add autoreply support.
	* 8sync/systems/actors.scm (message-needs-reply): New method.
	  (hive-process-message): Add autoreply to process-local-message logic.
	  Add comment about maybe clearing out old coroutines.

2016-04-25  Christopher Allan Webber  <cwebber@dustycloud.org>

	actors: Fix resuming continuation when waiting on message.
	Pattern matching was wrong.  Also added an error check.

	* 8sync/systems/actors.scm (hive-process-message): Fix pattern match.
	  Add error check that we're resuming to the correct actor.

2016-04-25  Christopher Allan Webber  <cwebber@dustycloud.org>

	actors: Remove nesting of actions in define-simple-actor.
	* 8sync/systems/actors.scm (define-simple-actor): Move actions out of
	  the "final parenthesis".  Simple actors just have a class type and
	  then the rest of the arguments are acitons.
	* demos/actors/simplest-possible.scm: Remove unnecessary import
	  of (ice-9 match).
	  (<emo>, <proog>): Adjust to new syntax for define-simple-actor.

	tests: test-agenda: Remove broken shebang.
	* tests/test-agenda.scm: Removed broken shebang.

	tests: test-actors: Add copyright header.
	* tests/test-actors.scm: Add copyright header.

	demos: botherbotherbother: Make executable from command line.
	* demos/actors/botherbotherbother.scm: Make executable.
	  Add shebang.
	  (main): Allow arbitrary arguments from the command line or wherever.

2016-04-25  Christopher Allan Webber  <cwebber@dustycloud.org>

	actors; Move message definitions earlier in the file.
	The original positioning would mean that sometimes the accessors would
	break in some of the actor/hive methods.  Defining the messages before
	any methods make use of them seems to fix the problem.

	* 8sync/systems/actors.scm (<message>, message?, make-message-intern)
	  (message-id, message-to message-from, message-action, message-body)
	  (message-in-reply-to, message-replied, set-message-replied!)
	  (message-deferred-reply, set-message-deferred-reply!, make-message)
	  (%nothing-provided, message-ref, kwarg-list-to-alist, send-message)
	  (send-message-wait, reply-message, reply-message-wait):
	  Moved location to earlier in file.

2016-04-25  Christopher Allan Webber  <cwebber@dustycloud.org>

	tests: actors: Fix test-end in test-actors.scm.
	* tests/test-actors.scm: Fix test-end, which previously pointed at test-agenda.

	build: Add actors.scm to SOURCES
	* Makefile.am (SOURCES): Add 8sync/systems/actors.scm.

	build: Add test-actors.scm to tests.
	* Makefile.am (TESTS): Add tests/test-actors.scm.

	tests: actors: Test serialization / deserialization of messages
	* tests/test-actors.scm: Add message write/read tests.

	actors: Switch comment header
	* 8sync/systems/actors: Switch "Convenience procedures" comment header
	  to "Basic readers / writers".

2016-04-25  Christopher Allan Webber  <cwebber@dustycloud.org>

	actors: Fix serialize-message to not use address->string
	If we use address->string, read/write are no longer symmetric.

	* 8sync/systems/actors.scm (serialize-message): Switch address
	  serialization to not use address->string.

2016-04-25  Christopher Allan Webber  <cwebber@dustycloud.org>

	actors: Fix export of pprint-message
	* 8sync/systems/actors.scm: Fix export.  Previously said pprint-mesage.

	tests: actors: Fix check for a missing key on message-ref
	* tests/test-actors.scm: Update test for message-ref with missing key.
	  It used to be that the default was to return #f.
	  Now the default is to throw an error if no default provided.

	actors: message-ref: Throw a better error on missing key
	* 8sync/systems/actors (message-ref): Throw 'message-missing-key
	  on errors now.

	actors: Export read/write methods on messages.
	* 8sync/systems/actors.scm (serialize-message, write-message)
	  (serialize-message-pretty pprint-mesage read-message)
	  (read-message-from-string): Export methods.

2016-04-25  Christopher Allan Webber  <cwebber@dustycloud.org>

	actors: `message-ref' now errors if no dflt provided and key not found
	Thanks to David Thompson for guidance on the best way to construct
	%nothing-provided.

	* 8sync/systems/actors.scm (message-ref): Adjust to error if no dflt
	  provided and key isn't found.
	  (%nothing-provided): New unique, immutable value for checking
	  if dflt provided to message-ref.

2016-04-25  Christopher Allan Webber  <cwebber@dustycloud.org>

	actors: New read-message procedures, touch up write-message procedures
	* 8sync/systems/actors.scm (read-message, read-message-from-string):
	  New procedures for reading in a serialized message.
	  (write-message): Supply a default port (current-output-port) if none
	  is provided.
	  (serialize-message, serialize-message-pretty): Write out message-wants-reply,
	  which we accidentally left out earlier.

2016-04-25  Christopher Allan Webber  <cwebber@dustycloud.org>

	actors: Switch out address objects for more-easily-serialized cons cells
	This is maybe temporary.  If we ever have canonical sexps as the
	general serialization format, or something like that, we might revert
	to a nicer structure.

	* 8sync/systems/actors.scm (<address>): Commented out.

2016-04-25  Christopher Allan Webber  <cwebber@dustycloud.org>

	actors: Added docstrings to some message write procedures
	* 8sync/systems/actors.scm (write-message, serialize-message-pretty)
	  (pprint-message): Add docstrings.

	actors: Write/pretty-print procedures for messages
	* 8sync/systems/actors.scm (serialize-message, write-message):
	  New procedures for writing out messages.
	  (serialize-message-pretty, pprint-message): New procedures
	  for pretty printing.
	  (<address>): Update printer to look a little bit nicer.

	actors: Rename function deferred-reply -> message-deferred-reply
	* 8sync/systems/actors.scm (deferred-reply, message-deferred-reply):
	  Renamed former to latter.

2016-04-25  Christopher Allan Webber  <cwebber@dustycloud.org>

	tests: test-actors: Start testing the actor model
	There's not much here yet.

	* tests/test-actors.scm: New file.

2016-04-25  Christopher Allan Webber  <cwebber@dustycloud.org>

	demos: actors: A couple of simple actor model demos.
	* demos/actors/simplest-possible.scm: New file.
	  Simplest possible demo: Two actors say hello to each other.
	* demos/actors/botherbotherbother.scm: New file.
	  A little bit more complex; multiple actors interact with each
	  other.  Ensures that actors don't clobber each other unexpectedly.

	systems: actors: New actor model system.
	* 8sync/systems/actors.scm: New file, containing actor model system.

2016-04-24  Christopher Allan Webber  <cwebber@dustycloud.org>

	agenda: Make agendas run with "easier" default arguments
	* 8sync/agenda.scm (make-agenda): Set #:pre-unwind-handler to
	  print-error-and-continue.  This makes it so that by default,
	  exceptions get printed to the shell in which the agenda was spawned.
	  (start-agenda): Set #:stop-condition to stop-on-nothing-to-do.  This
	  is a bit heavier than maybe desirable but is a good "default" stop
	  condition, and prevents the agenda from entering into a busy-loop
	  when computation has finished.

2016-04-22  Christopher Allan Webber  <cwebber@dustycloud.org>

	build: Ignore .sig, .directive, .asc files.
	* .gitignore: Add ignore rules for .sig, .directive, .asc files.

	build: Bump version number.
	* configure.ac: Change version to 0.1.0.

	README: Mention COPYING
	* README: Mention COPYING file.

2016-04-15  Christopher Allan Webber  <cwebber@dustycloud.org>

	Mention INSTALL in the README file.
	* README: Mention INSTALL file.

	Add generic GNU style INSTALL file
	* INSTALL: New file.

	Move README.md to README
	* README: Renamed from README.md.

	build: Add COPYING-gplv3 to EXTRA_DIST
	* Makefile.am (EXTRA_DIST): add COPYING-GPLv3.txt

	Update %8sync -> 8sync in NEWS and README.md
	* NEWS:
	* README.md: Update references from %8sync -> 8sync.

2016-04-15  Christopher Allan Webber  <cwebber@dustycloud.org>

	agenda: Rename %8sync (and %8sync-*) to 8sync (and 8sync-*)
	* 8sync/agenda.scm (%8sync, %8sync-delay, %8sync-run, %8sync-run-at)
	  (%8sync-run-delay, %8sync-port, %8sync-port-remove, catch-%8sync):
	  Rename, removing % sign.  Rename all references to other %8sync-foo
	  in definitions and comments as well.
	  (catch-8sync): Removed aliased version.
	  (make-async-request, setup-async-request): Rename references of
	  %8sync-foo to 8sync-foo.

	* 8sync/systems/irc.scm (make-basic-irc-handler):
	* 8sync/systems/web.scm (receive-http-conn):
	* tests/test-agenda.scm: Rename all %8sync-foo to 8sync-foo.

2016-04-14  Christopher Allan Webber  <cwebber@dustycloud.org>

	systems: web: Re-enable co-op repl with simple http server
	* 8sync/systems/web.scm (run-simple-webserver): Uncomment enabling
	  the coop-repl.

2016-04-09  Christopher Allan Webber  <cwebber@dustycloud.org>

	doc: Add scaffolding for new chapters
	* doc/8sync.texi (Installation, Getting started, API Reference, Contributing):
	  New chapter scaffolding added.

2016-03-09  Jan Nieuwenhuizen  <janneke@gnu.org>

	Add guix package.
	* package.scm: New file.

2016-02-29  Jan Nieuwenhuizen  <janneke@gnu.org>

	Update texinfo menus so that info documentation builds.
	* 8sync.texi: Run texinfo-all-menus-update.

2016-02-09  Christopher Allan Webber  <cwebber@dustycloud.org>

	Put in a warning that 8sync has an unstable API.
	* README.md: New text.

	We're GNU 8sync now!
	* README.md: Updated text to reflect GNU status

2015-12-30  Christopher Allan Webber  <cwebber@dustycloud.org>

	doc: More tweaks to the comments on copyleft section
	* doc/8sync.texi: Tweaked documentation and added a new paragraph

2015-12-18  Christopher Allan Webber  <cwebber@dustycloud.org>

	doc:Updating indentation for consistency
	doc/8sync.texi: Minor indentation tweak.

	doc: Removing a sentence which made things tricky
	doc/8sync.texi: Removed text.

	Also mention requirement of permitting linking to modified versions of 8sync
	* doc/8sync.texi: New text in 8sync license section.

2015-12-18  Christopher Allan Webber  <cwebber@dustycloud.org>

	Reformatting documentation for easier revision control handling
	See also:
	  http://dustycloud.org/blog/vcs-friendly-patchable-document-line-wrapping/

	* doc/8sync.texi: Reformatting/indenting text

2015-12-17  Christopher Allan Webber  <cwebber@dustycloud.org>

	doc: Add section: "8sync's license and general comments on copyleft"
	* doc/8sync.texi: New section.

2015-12-11  Christopher Allan Webber  <cwebber@dustycloud.org>

	Adding absolute basic webdev environment
	Incomplete, but running

	* 8sync/system/web.scm: New file
	* demos/hello-web.scm: New demo file
	* Makefile.am: Adding files

2015-12-11  Christopher Allan Webber  <cwebber@dustycloud.org>

	Return a value to the continuations from various %8sync-* calls
	Just doing (kont) would result in an error at times.

	* 8sync/agenda.scm (%8sync-port, %8sync-port-remove, %8sync-immediate):
	  Updated with fix.

2015-12-11  Christopher Allan Webber  <cwebber@dustycloud.org>

	Switch from (%8sync (%run)) to just (%8sync) or (%8sync-run)
	This is a major overhaul inspired by the fact that (%8sync-port) never
	worked (or at least not since error propagation), because the error
	resolution code in (%8sync) was specific to (%run).

	* 8sync/agenda.scm (%run, %run-at, %run-delay, %port-request)
	  (%port-remove-request): Removed variables.
	  (%8sync, %8sync-run, %8sync-run-at, %8sync-run-delay)
	  (%8sync-port, %8sync-port-remove): Updated to new pattern.
	  (%run-with-return, %8sync-immediate): Rename.
	* 8sync/systems/irc.scm (make-basic-irc-handler):
	  Update from %8sync-run to %8sync
	* tests/test-agenda.scm (run-in-fake-agenda): new helper macro
	  (test-%run-and-friends): Updated to work with run-in-fake-agenda,
	    and upated several calls
	  (talk-about-the-zoo, indirection-remote-func-breaks): Updated

2015-12-06  Christopher Allan Webber  <cwebber@dustycloud.org>

	Fix %port-request and %port-remove-request
	Both of these need to have their continuation wrapped with (wrap).
	I'm honestly a bit fuzzy on why this fixes things but it does.

	* 8sync/agenda.scm (%port-request, %port-remove-request):
	  Adjusted to wrap kont with `wrap' macro.

2015-12-06  Christopher Allan Webber  <cwebber@dustycloud.org>

	agenda: Various %port-foo enhancements
	Export port-remove stuff, add %8sync-port-remove, and fix
	%port-request and %port-remove-request

	* 8sync/agenda.scm (%8sync-port-remove): new variable
	  (%port-remove-request, %8sync-port-remove): exported
	  (%port-request, %port-remove-request): Fixed calls to make-run-request

2015-12-03  Mike Gerwitz  <mtg@gnu.org>

	Fail configure when GUILE_PROGS cannot be found
	Available in $prefix/share/aclocal/guile.m4

2015-12-01  Christopher Allan Webber  <cwebber@dustycloud.org>

	irc: shut down properly when the server does too
	Formerly things would busyloop on irc disconnect; changed to prevent
	that situation.

	* 8sync/systems/irc.scm (make-basic-irc-handler): remove ports
	  and don't break when the connection closes.

2015-12-01  Christopher Allan Webber  <cwebber@dustycloud.org>

	Port removal, stop-on-nothing-to-do, and select when sleeping
	The aligned goal here is to allow for removing ports, not busy-looping
	when there's no ports but something to wait on, and allow for stopping
	when nothing is remaining.  Accomplishing the latter requires all
	of the former.

	* 8sync/agenda.scm (<make-port-request>, make-port-remove-request)
	  (port-remove-request port-remove-request?, stop-on-nothing-to-do):
	  New variables.

	  (update-agenda-from-select!): Sleep (via select, currently) when
	  there's no ports in the queue but we still have things scheduled.

	  (start-agenda): New comments

2015-11-30  Christopher Allan Webber  <cwebber@dustycloud.org>

	Add <port-remove-request> and friends
	* 8sync/agenda.scm (<port-remove-request>, make-port-remove-request)
	  (port-remove-request?, port-remove-request-port, port-remove-request)
	  (%port-remove-request, agenda-handle-port-remove-request!): New variables
	* 8sync/agenda.scm (%port-request): Original syntax of this probably
	  never worked; fixed.
	* 8sync/agenda.scm (agenda-run-once): Updated for port-remove-request

	Switch irc.scm to use %8sync-run
	* 8sync/systems/irc.scm (make-basic-irc-handler): Update to use %8sync-run

	tests: update to use make-q* instead of manually mutating a queue
	* tests/test-agenda.scm: Adjust agenda queue calls to use (make-q*)

2015-11-29  Christopher Allan Webber  <cwebber@dustycloud.org>

	doc: 8sync code *does* use coroutines, but not generator style
	* doc/8sync.texi: Make several clarifications between generator style
	  coroutines and 8sync delimited continuation style, and clarify that
	  8sync style *are* coroutines.

	Fix tests to check for equality
	* tests/test-agenda.scm: Tests were checking for test-assert
	  where they should have been checking for test-equal.

	Make use of %8sync-run in tests
	* tests/test-agenda.scm (local-func-gets-break):
	  Switched from `(%8sync (run foo))' to `(%8sync-run foo)'

	Add %8sync-run sugar and friends
	* 8sync/agenda.scm (%8sync-run, %8sync-run-at): New variables
	  (%8sync-run-delay, %8sync-port): New variables

	Added a TODO for myself to write (%run-immediately)
	8sync/agenda.scm: new comment

	build: Add demos/run-demo.sh and demos/ircbot.scm to EXTRA_DIST
	* Makefile.am (EXTRA_DIST): Added `demos/run_demo.sh' and `demos/ircbot.scm'

2015-11-29  Christopher Allan Webber  <cwebber@dustycloud.org>

	Add ./run-demo.sh script
	This script lets you run demos in this directory no matter where
	`guile' is installed on your system.

	* demos/run-demo.sh: New file

2015-11-29  Christopher Allan Webber  <cwebber@dustycloud.org>

	Renaming `eightsync' to `8sync' everywhere in the code
	* eightsync/agenda.scm, 8sync/agenda.scm: Renamed
	* eightsync/repl.scm, 8sync/repl.scm: Renamed
	* eightsync/systems/irc.scm, 8sync/systems/irc.scm: Renamed
	* demos/ircbot.scm: Changed module import to 8sync
	* tests/test-agenda.scm: Changed module import to 8sync
	* Makefile.am: Updated to reference new file naming

	doc: Filled out Introduction and Acknowledgement sections
	* doc/8sync.texi: Updated docs

2015-11-29  Christopher Allan Webber  <cwebber@dustycloud.org>

	Updating copyright headers to be more "modern"
	In other words, change from physical addresses to retrieve licenses to
	HTTP URIs.

	* demos/ircbot.scm: Updated header
	* eightsync/agenda.scm: Updated header
	* eightsync/repl.scm: Updated header
	* eightsync/systems/irc.scm: Updated header
	* tests/test-agenda.scm: Updated header
	* tests/utils.scm: Updated header

2015-11-29  Christopher Allan Webber  <cwebber@dustycloud.org>

	doc: Adding clarification of dual license under LGPLv3+
	* doc/8sync.texi: Add clarification

	Successfully build doc/8sync.texi skeleton manual
	* doc/Makefile.am: Removed file
	* Makefile.am: Added commands to build texinfo files
	  (info_TEXINFOS, 8sync_TEXINFOS, dvi-local): New variables.
	* .gitignore: Ignore *.info and texinfo.tex files
	* doc/8sync.texi: Fixed @ escaping and removed unused `@end'

	build: Attempt to add buildable texinfo (not all is working yet)
	* Makefile.am (EXTRA_DIST): Added `NOCOMP_SOURCES'
	  (SUBDIRS): New variable
	* doc/8sync.texi: New file
	* doc/Makefile.am: New file
	* doc/fdl.texi: New file
