Christopher Allan Webber [Fri, 18 Dec 2015 16:10:11 +0000 (10:10 -0600)]
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
Christopher Allan Webber [Thu, 17 Dec 2015 15:48:23 +0000 (09:48 -0600)]
doc: Add section: "8sync's license and general comments on copyleft"
* doc/8sync.texi: New section.
Christopher Allan Webber [Sat, 12 Dec 2015 02:10:30 +0000 (20:10 -0600)]
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
Christopher Allan Webber [Sat, 12 Dec 2015 02:03:53 +0000 (20:03 -0600)]
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.
Christopher Allan Webber [Sat, 12 Dec 2015 00:41:15 +0000 (18:41 -0600)]
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
Christopher Allan Webber [Mon, 7 Dec 2015 03:01:51 +0000 (21:01 -0600)]
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.
Christopher Allan Webber [Mon, 7 Dec 2015 00:26:09 +0000 (18:26 -0600)]
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
Mike Gerwitz [Thu, 3 Dec 2015 02:51:41 +0000 (21:51 -0500)]
Fail configure when GUILE_PROGS cannot be found
Available in $prefix/share/aclocal/guile.m4
Christopher Allan Webber [Tue, 1 Dec 2015 15:36:08 +0000 (09:36 -0600)]
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.
Christopher Allan Webber [Tue, 1 Dec 2015 15:31:49 +0000 (09:31 -0600)]
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
Christopher Allan Webber [Tue, 1 Dec 2015 04:59:51 +0000 (22:59 -0600)]
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
Christopher Allan Webber [Tue, 1 Dec 2015 03:59:52 +0000 (21:59 -0600)]
Switch irc.scm to use %8sync-run
* 8sync/systems/irc.scm (make-basic-irc-handler): Update to use %8sync-run
Christopher Allan Webber [Tue, 1 Dec 2015 00:18:08 +0000 (18:18 -0600)]
tests: update to use make-q* instead of manually mutating a queue
* tests/test-agenda.scm: Adjust agenda queue calls to use (make-q*)
Christopher Allan Webber [Sun, 29 Nov 2015 19:45:08 +0000 (13:45 -0600)]
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.
Christopher Allan Webber [Sun, 29 Nov 2015 18:17:33 +0000 (12:17 -0600)]
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.
Christopher Allan Webber [Sun, 29 Nov 2015 18:15:48 +0000 (12:15 -0600)]
Make use of %8sync-run in tests
* tests/test-agenda.scm (local-func-gets-break):
Switched from `(%8sync (run foo))' to `(%8sync-run foo)'
Christopher Allan Webber [Sun, 29 Nov 2015 18:14:51 +0000 (12:14 -0600)]
Add %8sync-run sugar and friends
* 8sync/agenda.scm (%8sync-run, %8sync-run-at): New variables
(%8sync-run-delay, %8sync-port): New variables
Christopher Allan Webber [Sun, 29 Nov 2015 18:06:39 +0000 (12:06 -0600)]
Added a TODO for myself to write (%run-immediately)
8sync/agenda.scm: new comment
Christopher Allan Webber [Sun, 29 Nov 2015 17:51:53 +0000 (11:51 -0600)]
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'
Christopher Allan Webber [Sun, 29 Nov 2015 17:50:31 +0000 (11:50 -0600)]
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
Christopher Allan Webber [Sun, 29 Nov 2015 16:32:04 +0000 (10:32 -0600)]
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
Christopher Allan Webber [Sun, 29 Nov 2015 16:12:47 +0000 (10:12 -0600)]
doc: Filled out Introduction and Acknowledgement sections
* doc/8sync.texi: Updated docs
Christopher Allan Webber [Sun, 29 Nov 2015 15:20:23 +0000 (09:20 -0600)]
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
Christopher Allan Webber [Sun, 29 Nov 2015 15:08:44 +0000 (09:08 -0600)]
doc: Adding clarification of dual license under LGPLv3+
* doc/8sync.texi: Add clarification
Christopher Allan Webber [Sun, 29 Nov 2015 15:04:12 +0000 (09:04 -0600)]
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'
Christopher Allan Webber [Sun, 29 Nov 2015 13:46:08 +0000 (07:46 -0600)]
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
Christopher Allan Webber [Sat, 28 Nov 2015 17:55:12 +0000 (11:55 -0600)]
Rename LICENSE -> COPYING
* LICENSE, COPYING: Renamed
Christopher Allan Webber [Sat, 28 Nov 2015 17:51:29 +0000 (11:51 -0600)]
NEWS: Note IRC bot demo
* NEWS: note added.
Christopher Allan Webber [Sat, 28 Nov 2015 17:49:55 +0000 (11:49 -0600)]
Add NEWS file.
* NEWS: New file.
Christopher Allan Webber [Sat, 28 Nov 2015 17:48:00 +0000 (11:48 -0600)]
Ignore tarballs in .gitignore
* .gitignore: Adjust accordingly.
Christopher Allan Webber [Sat, 28 Nov 2015 17:45:22 +0000 (11:45 -0600)]
build: Add `git-to-changelog' and make use of it in `Makefile.am'.
* build-aux/gitlog-to-changelog: New file, from Gnulib.
* Makefile.am: (gen-ChangeLog): New rule, borrowed from Guix.
(dist-hook): Depend on `gen-ChangeLog'.
Christopher Allan Webber [Sat, 28 Nov 2015 15:28:12 +0000 (09:28 -0600)]
Licensed utils.scm under the LGPL, with permission from David Thompson
Christopher Allan Webber [Sat, 28 Nov 2015 15:17:58 +0000 (09:17 -0600)]
Add queue helpers, with tests
Christopher Allan Webber [Sat, 28 Nov 2015 14:53:19 +0000 (08:53 -0600)]
remove unused agenda-on-fail and agenda-on-error
Christopher Allan Webber [Sat, 28 Nov 2015 14:52:48 +0000 (08:52 -0600)]
Fancy printed exceptions if it's an asynchronous exception
Christopher Allan Webber [Sat, 28 Nov 2015 13:58:34 +0000 (07:58 -0600)]
print out quoted key with print-error-and-continue
Christopher Allan Webber [Sat, 28 Nov 2015 13:47:12 +0000 (07:47 -0600)]
expose wrapped-exception introspect things for debugging
Christopher Allan Webber [Sat, 28 Nov 2015 13:22:30 +0000 (07:22 -0600)]
removing @@ comment
Christopher Allan Webber [Sat, 28 Nov 2015 04:14:13 +0000 (22:14 -0600)]
switch %8sync-caught-error to 8sync-caught-error
Christopher Allan Webber [Sat, 28 Nov 2015 04:12:22 +0000 (22:12 -0600)]
use catch-8sync in test-agenda.scm
Christopher Allan Webber [Sat, 28 Nov 2015 04:09:31 +0000 (22:09 -0600)]
Add (catch-8sync) stuff
Christopher Allan Webber [Fri, 27 Nov 2015 23:23:40 +0000 (17:23 -0600)]
Properly handle %8sync to %8sync to error chains.
Christopher Allan Webber [Fri, 27 Nov 2015 18:44:09 +0000 (12:44 -0600)]
Add some early error handling tests
Christopher Allan Webber [Fri, 27 Nov 2015 18:42:42 +0000 (12:42 -0600)]
remove (display)
Christopher Allan Webber [Fri, 27 Nov 2015 18:37:19 +0000 (12:37 -0600)]
propagate asynchronous exceptions
Christopher Allan Webber [Fri, 27 Nov 2015 17:20:40 +0000 (11:20 -0600)]
Add catching exceptions, and lots of much needed docuemntation
Christopher Allan Webber [Sat, 28 Nov 2015 02:18:33 +0000 (20:18 -0600)]
Add test runner utility from David Thompson
Christopher Allan Webber [Fri, 27 Nov 2015 23:25:05 +0000 (17:25 -0600)]
write out test-agenda, not tests-agenda
Christopher Allan Webber [Fri, 27 Nov 2015 16:34:33 +0000 (10:34 -0600)]
remove deprecated comment
Christopher Allan Webber [Fri, 27 Nov 2015 16:26:46 +0000 (10:26 -0600)]
remove unused futures things
Christopher Allan Webber [Fri, 27 Nov 2015 15:31:25 +0000 (09:31 -0600)]
remove all the 8run and 8port-alias things
Christopher Allan Webber [Fri, 27 Nov 2015 15:16:22 +0000 (09:16 -0600)]
future -> futurists?????
Christopher Allan Webber [Tue, 24 Nov 2015 22:01:49 +0000 (16:01 -0600)]
Add irc-send-message and fix a buffering error
We should always set the buffer *before* running the command, in case
something goofy happens...
Christopher Allan Webber [Tue, 24 Nov 2015 21:06:12 +0000 (15:06 -0600)]
Show off some greetings
Christopher Allan Webber [Tue, 24 Nov 2015 20:59:03 +0000 (14:59 -0600)]
Provide a way to fail gracefully on errors, and use it in irc.scm
Christopher Allan Webber [Tue, 24 Nov 2015 19:10:11 +0000 (13:10 -0600)]
fix calls/references to %8sync
Christopher Allan Webber [Tue, 24 Nov 2015 19:09:58 +0000 (13:09 -0600)]
fix up readme to say %8sync
Christopher Allan Webber [Tue, 24 Nov 2015 19:08:52 +0000 (13:08 -0600)]
fixing bug with current tdelta interface
Christopher Allan Webber [Tue, 24 Nov 2015 18:38:06 +0000 (12:38 -0600)]
rename %sync stuff to %8sync (thanks for the suggestion, daviid)
Christopher Allan Webber [Tue, 24 Nov 2015 16:14:42 +0000 (10:14 -0600)]
Ah right, add repl.scm
Christopher Allan Webber [Mon, 23 Nov 2015 23:03:41 +0000 (17:03 -0600)]
removing whitespace
Christopher Allan Webber [Mon, 23 Nov 2015 22:45:53 +0000 (16:45 -0600)]
ignore install-sh
Christopher Allan Webber [Mon, 23 Nov 2015 22:45:36 +0000 (16:45 -0600)]
Make IRC bot easier to add commands to
Christopher Allan Webber [Mon, 23 Nov 2015 22:14:08 +0000 (16:14 -0600)]
Provide another indirection procedure with wrap-apply
Christopher Allan Webber [Mon, 23 Nov 2015 22:10:54 +0000 (16:10 -0600)]
easier passing in of line handler things
Christopher Allan Webber [Mon, 23 Nov 2015 22:01:36 +0000 (16:01 -0600)]
Moving the irc bot demo to systems
Christopher Allan Webber [Mon, 23 Nov 2015 21:26:39 +0000 (15:26 -0600)]
echo back message stuff
Christopher Allan Webber [Mon, 23 Nov 2015 21:20:26 +0000 (15:20 -0600)]
refactoring args to default-handle-privmsg
Christopher Allan Webber [Mon, 23 Nov 2015 21:16:43 +0000 (15:16 -0600)]
break handling private messages out into its own function
Christopher Allan Webber [Mon, 23 Nov 2015 20:48:08 +0000 (14:48 -0600)]
A lot more stuff to handle PRIVMSG messages
Christopher Allan Webber [Mon, 23 Nov 2015 19:44:21 +0000 (13:44 -0600)]
30 checks-per-second for the coop server handler is a lot less demanding on the CPU
Christopher Allan Webber [Mon, 23 Nov 2015 04:06:23 +0000 (22:06 -0600)]
add irc-line type, switch to (match) for handle-line
Christopher Allan Webber [Mon, 23 Nov 2015 03:50:03 +0000 (21:50 -0600)]
add parse-line procedure
Christopher Allan Webber [Mon, 23 Nov 2015 02:44:20 +0000 (20:44 -0600)]
Give a bot access to its own name. Also respond to pings.
Christopher Allan Webber [Mon, 23 Nov 2015 02:18:28 +0000 (20:18 -0600)]
Oops, left a stray (pk)
Christopher Allan Webber [Mon, 23 Nov 2015 02:13:07 +0000 (20:13 -0600)]
Don't freak out on interrupts during (select)!
make-coop-server-handler makes use of interrupts, so we need this code
so as to not barf while connecting to 8sync while it's doing a (select)
Christopher Allan Webber [Mon, 23 Nov 2015 01:36:43 +0000 (19:36 -0600)]
Add repl.scm (can't believe I forgot it before!) and use it in irc.scm
Christopher Allan Webber [Mon, 23 Nov 2015 01:35:24 +0000 (19:35 -0600)]
time-plus tests
Christopher Allan Webber [Mon, 23 Nov 2015 01:32:38 +0000 (19:32 -0600)]
time-minus tests
Christopher Allan Webber [Mon, 23 Nov 2015 01:32:28 +0000 (19:32 -0600)]
fix tests for (make-time-delta) change
Christopher Allan Webber [Mon, 23 Nov 2015 01:26:46 +0000 (19:26 -0600)]
Fixed a seeerrrrrrrrrious bug in the timing math
Christopher Allan Webber [Mon, 23 Nov 2015 00:57:29 +0000 (18:57 -0600)]
Accept a list of channels via the command line
Christopher Allan Webber [Mon, 23 Nov 2015 00:36:17 +0000 (18:36 -0600)]
Can now start to connect to things via the irc client
Christopher Allan Webber [Sun, 22 Nov 2015 23:40:14 +0000 (17:40 -0600)]
command line thing starts to do things
Christopher Allan Webber [Sun, 22 Nov 2015 23:32:30 +0000 (17:32 -0600)]
Beginning of irc system
Christopher Allan Webber [Sun, 22 Nov 2015 20:00:20 +0000 (14:00 -0600)]
note about possibly replacing time-from-float-or-fraction with srfi-18 stuff
Christopher Allan Webber [Sun, 22 Nov 2015 18:49:55 +0000 (12:49 -0600)]
mthl correctly points out I don't need to commit install-sh. Whoops!
Christopher Allan Webber [Sun, 22 Nov 2015 18:44:14 +0000 (12:44 -0600)]
converting README to markdown from orgmode. Too bad Gogs doesn't read org.
Christopher Allan Webber [Sun, 22 Nov 2015 18:38:02 +0000 (12:38 -0600)]
Time handling improvements
- make-time-delta now only needs one argument
- time can handle floats/rationals
Christopher Allan Webber [Sun, 22 Nov 2015 17:33:56 +0000 (11:33 -0600)]
adjusting .gitignore
Christopher Allan Webber [Sun, 22 Nov 2015 17:33:22 +0000 (11:33 -0600)]
renamed 8sync directory to eightsync
Christopher Allan Webber [Sun, 22 Nov 2015 17:29:09 +0000 (11:29 -0600)]
Adding automake stuff
Christopher Allan Webber [Sun, 22 Nov 2015 17:11:12 +0000 (11:11 -0600)]
Add GPLv3 and a simple README
Christopher Allan Webber [Sun, 22 Nov 2015 17:10:38 +0000 (11:10 -0600)]
Added the LGPL and copyright headers
Christopher Allan Webber [Sun, 22 Nov 2015 16:50:47 +0000 (10:50 -0600)]
TODO: test %port-request
Christopher Allan Webber [Sun, 22 Nov 2015 16:50:26 +0000 (10:50 -0600)]
Put at TODO to test %sync and friends
Christopher Allan Webber [Sun, 22 Nov 2015 16:44:07 +0000 (10:44 -0600)]
test-%run-and-friends
Christopher Allan Webber [Sun, 22 Nov 2015 16:12:29 +0000 (10:12 -0600)]
Remove unused %sync-foo operators, shift parameterization to right before call
Christopher Allan Webber [Sun, 22 Nov 2015 03:34:16 +0000 (21:34 -0600)]
first delimited continuation test
Christopher Allan Webber [Sun, 22 Nov 2015 02:44:47 +0000 (20:44 -0600)]
indentation