2004-08-04  Andreas Rottmann  <a.rottmann@gmx.at>

	* src/config/load.scm: Also pass the original exception's key in
	&config-error.

	* NEWS: Document new API in (unit-test).
	* unit-tests/texinfo.scm: Moved pass-if-exception to (unit-test), 
	now named assert-exception. Adapted all uses to new name.
	* src/unit-test.scm (assert-exception): New macro, code taken from
	unit-tests/texinfo.scm.

	* README: New file, containing build/install instructions.

	* NEWS: New file, updated for next release 0.1.2.
	
	* AUTHORS: Updated (added all the additions from Andy Wingo).

	* unit-tests/texinfo.scm (test-texinfo->stexinfo): Fixed unquoted
	backslash.

2004-08-01  Andreas Rottmann  <a.rottmann@gmx.at>

	* src/sxml/ssax/input-parse.scm: Use (load-from-path ...) instead
	of (load (%search-load-path ...)), which didn't work with Guile
	1.7.

	* src/texinfo.scm (texi-command-specs): Fixed \@ occurance in doc
	string, which caused Guile 1.7 to barf.

2004-07-24  Andy Wingo  <wingo@pobox.com>

	* src/htmlprag.scm: Moved from (sxml htmlprag). Testsuite adjusted
	accordingly.

	* src/sxml/ssax/input-parse.scm: Moved from (text lex-simple).
	Includes the upstream/input-parse.scm, then overrides some
	functions for speed.

	* src/texinfo.scm: Adapt to (sxml ssax input-parse) name change.

	* src/sxml/upstream/SXML-tree-trans.scm: Upstream for (sxml
	transform).

	* src/sxml/upstream/SSAX.scm: The main upstream file.

	* src/sxml/upstream/SSAX-expanded.scm: New file. Same as SSAX.scm,
	but has already been macroexpanded. We include this one so we can
	avoid loading up syncase, because it's slow.

	* src/sxml/ssax.scm: Updated to SSAX.scm v5.1. No longer includes
	the body of SSAX.scm here; instead loads files from sxml/upstream.
	Should be more maintainable. Only exports what PLT exports; also,
	most names have been lower-cased upstream.

	* src/sxml/simple.scm: Updated to lower-case ssax identifiers.

2004-07-23  Andy Wingo  <wingo@pobox.com>

	* unit-tests/texinfo.scm (test-texinfo->stexinfo): It is valid to
	have no @itemize formatter: it should default to @bullet.

	* unit-tests/statprof.scm: Moved from debugging.statprof.scm, and
	adapted to the new (statprof) name.

	* src/statprof.scm: Moved from (debugging statprof), as per the
	hierarchy discussions on guile-user.

	* examples/document-module.scm (module-docs): Adjusted to use
	(texinfo reflection).

	* src/scheme/session.scm (*name-help-handlers*) 
	(add-name-help-handler!, remove-name-help-handler!) 
	(try-name-help): Added a hook for "name handlers", which are
	called with the unevaluated name of the thing to get help on.
	(add-value-help-handler!): Changed so value handlers are also
	passed the name of the value. All callers and callees changed.

	Override the (ice-9 session) help with our own using evil methods.
	Necessary, but I don't know why.

	* src/texinfo/reflection.scm: Renamed from (scheme
	module-documentation), because it's really part of the (texinfo)
	package.
	(object-stexi-documentation): Split out from
	module-stexi-documentation. Exported.
	(module-stexi-documentation): Renamed from module-documentation.
	(stexi-help-handler): Calls object-stexi-documentation.
	(texi-help-handler): Removed, handled by the stexi handler.

	* src/texinfo/help.scm: Merged into reflection.scm.

2004-07-10  Andy Wingo  <wingo@pobox.com>

	* src/scheme/module-documentation.scm (string->stexi): New
	function. Parses the string if appropriate and possible, otherwise
	returns the string in a verbatim tag.
	(module-documentation): Use string->stexi.
	(false-if-exception): Like the normal false-if-exception, but
	doesn't affect the-last-stack.

	* src/container/nodal-tree.scm (make-node): Ensure that nodes have
	the 'children property defined. Note this in the commentary.

	* examples/document-module.scm (srfi): Use (texinfo), not (sxml
	texinfo).

	* src/texinfo.scm (index): Create anchors before cindex, etc.
	(texi-command-specs): Add specs for cindex, etc.
	(parse-table-args): Allow an empty itemizer, default to @bullet.

	* src/texinfo/indexing.scm: Handle cindex, findex, etc. in
	addition to the def* commands.

2004-07-07  Andy Wingo  <wingo@pobox.com>

	* src/texinfo/nodal-tree.scm: Was (texinfo named-tree-nodes). This
	uses the nodal tree mentioned below.

	* src/texinfo*: All the texinfo files are here now. This means the
	texinfo things are no longer (sxml texinfo), they are (texinfo).
	This changed was sparked by recent guile-user discussions that
	ended up promoting flatter hierarchies. The test cases were also
	changed.

	* src/container/delay-tree.scm: New file, defines "delay tree" as
	a cousin to nodal trees. Delay trees can have any field, including
	the 'children field, be a promise created by `delay'.

	* src/container/nodal-tree.scm: New file, defines a "nodal tree"
	type. See the source for details.

2004-06-30  Andy Wingo  <wingo@pobox.com>

	* src/sxml/texinfo.scm (make-command-parser): Parse verbatim
	entries also.

2004-06-27  Andy Wingo  <wingo@pobox.com>

	* unit-tests/*: Adapt to (unit-test).

	* unit-tests/debugging.statprof.scm: Add license block.

2004-06-24  Andy Wingo  <wingo@pobox.com>

	* src/debugging/statprof.scm: Use docstrings where appropriate,
	and give the module a commentary (snarfed from the original
	README). Also, the license is LGPL (confirmed by private email
	with Rob).
	Remove the old TODO items, they're fixed :) Replace with some new
	ones.

	* src/sxml/ssax.scm: Don't export
	SSAX:read-pi-body-as-name-values, it's not defined.

	* src/debugging/statprof.scm (statprof-fold-call-data): Renamed
	from -called, to match what's exported. Calling functions changed.

2004-06-23  Andy Wingo  <wingo@pobox.com>

	* src/sxml/xpath.scm: Marked up the commentary.

	* src/sxml/transform.scm (SRV:send-reply): Gave it a happy
	docstring.
	Mark up the pre-post-order docs and put them in the commentary.

	* src/sxml/texinfo.scm: Marked up the commentary as texinfo, and
	added some docstrings.

	* src/sxml/simple.scm: Add some documentation.

	* src/scheme/module-documentation.scm (texi?): Broaden the texi?
	predicate to include @c.

	* src/sxml/htmlprag.scm: Some of the docs copied to the
	commentary. This is getting a bit silly -- obviously you're
	missing out on some of the docs. Perhaps we should just parse all
	of the comments in a file. A definite FIXME.

	* src/sxml/ssax.scm: Move some elided comments into the
	commentary, mark them up as texinfo.

	* src/sxml/texinfo/html.scm (table): Don't check for asis, we'll
	never see it.
	(tag-replacements): asis -> span.

	* src/sxml/apply-templates.scm: Move comments to the commentary. I
	was considering moving them to be docstrings, but I decided
	against it on two reasons: first, neither guile 1.6 nor 1.7 will
	memoize away the docstring, so every time the procedure is
	executed, the string will have to be skipped; and second, it's an
	extensive change to make in code that I didn't write.

	* src/scheme/module-documentation.scm: Only trim newlines from the
	module commentary.

	* src/sxml/texinfo/html.scm (node): Mozilla gets confused at an
	empty ("<a .. />") a tag. Put an empty string here to placate the
	reptile.
	(def): Use divs on both sides so the top and bottom margins line
	up.

2004-06-20  Andy Wingo  <wingo@pobox.com>

	* src/sxml/texinfo/html.scm (def): Fix some bugs in the definition
	output.

	* src/sxml/texinfo.scm (read-command-token): Re-enable detection
	of invalid command tokens.

	* examples/document-module.scm: New file, documents the module
	given on the command line as html or plain text. texinfo output
	coming soon.

	* src/scheme/module-documentation.scm: New file, generates stexi
	documentation for a module.

	* src/sxml/texinfo/plain-text.scm (stexi->plain-text): Use
	map-in-order.
	(tag-handlers): Add a handler for @verbatim that doesn't indent
	the output.

	* src/scheme/session.scm (scheme): Export `module-commentary'.

	* src/sxml/texinfo/html.scm (def): Same bug.

	* src/sxml/texinfo/plain-text.scm (def): Fix bug: defun has
	category "Function", not deftp.

	* src/text/structured.scm, src/text/structured/*.scm: Removed.
	These modules are completely replaced by (sxml texinfo ...).

	* src/sxml/texinfo/indexing.scm: New file, generates an index from
	a stexi.

	* src/sxml/texinfo.scm (index): New function, adds an anchor
	before an indexing element if necessary. Called by
	make-command-parser.

	* src/sxml/texinfo/plain-text.scm (wrap-heading): New function to
	wrap a string and only append one newline.

	* src/sxml/texinfo.scm (texi-fragment->stexi): New function,
	parses a fragment of a texinfo document. Exported.
	(parse-environment-args): Fix a bug introduced by conversion to
	make-dom-parser.
	(read-char-data): Only feed "\n" to the str-handler if we are
	preserving ws, otherwise feed " ".
	(reverse-collect-str-drop-ws): Fix bug regarding interstitial
	whitespace.

	* unit-tests/sxml.texinfo.scm (test-complete-start-command):
	Change to accomodate node arguments renaming.

	* src/sxml/texinfo.scm (make-contents): Make sure the contents of
	@item are in a @para.
	(make-parser): Removed, just use make-command-parser or
	make-dom-parser.
	(make-dom-parser): New function.

	* src/sxml/texinfo/plain-text.scm: New file, outputs one
	procedure: stexi->plain-text. Works remarkably well!

2004-06-19  Andy Wingo  <wingo@pobox.com>

	* src/sxml/simple.scm (sxml->string): Use
	string-concatenate-reverse.

	* src/sxml/texinfo.scm: Update the comments.
	(texi-command-specs): Renamed.
	(texi-command-depth): Renamed.

	* src/sxml/texinfo.scm (texinfo-command-specs): Add entries for
	the @heading commands.

	* src/sxml/texinfo/named-tree-nodes.scm (stexi->named-tree-nodes):
	Include the node and chapter heading in the chunked output.

	* src/sxml/texinfo/html.scm (node): Use 'name, not 'this.

	* src/sxml/texinfo.scm (stexi-command-depth): New function,
	exported.
	(make-contents): New function, makes a table of contents.
	(texinfo-command-specs): The node name argument is now stored as
	'name, rather than 'this.

	* src/sxml/texinfo/named-tree-nodes.scm (stexi-command-depth):
	Renamed from name->depth, and moved to texinfo.scm.

	* src/sxml/texinfo/html.scm (rules): Warn if there's not a rule
	for converting a given tag to HTML. Fall through to just output
	the untagged body.

2004-06-17  Andy Wingo  <wingo@pobox.com>

	* src/sxml/texinfo/named-tree-nodes.scm (stexi->named-tree-nodes):
	Make sure that the stexi for each node is headed by 'texinfo with
	a title.

	* src/sxml/texinfo/html.scm (add-ref-resolver!): New function,
	exported.
	(tag-replacements): Fix typo for cartouche.
	(rules): Add an xmlns on <html>.

	* src/sxml/texinfo.scm (call-with-file-and-dir): Export.
	(texinfo-command-specs): Add a spec for @ignore.

	* src/sxml/simple.scm (sxml->string): New function, de-tags an
	sxml tree. Exported.

2004-06-16  Andy Wingo  <wingo@pobox.com>

	* src/sxml/texinfo/named-tree-nodes.scm: New file, chunks a stexi
	into nodes. Based on the one in text/structured (that will soon go
	away).

	* src/sxml/texinfo/html.scm (rules): Use *ENTITY*.

	* src/sxml/simple.scm (universal-sxslt-rules): Handle *ENTITY*.

	* src/sxml/texinfo.scm (read-char-data): Newline before a non-@end
	command should generate a space instead.

	* src/sxml/texinfo/html.scm (stexi->shtml): Rename to
	stexi->shtml.

	* unit-tests/sxml.texinfo.scm: Adapted to optional args and
	s/texinfo/texi/.

	* src/sxml/texinfo.scm (make-command-parser): Don't put paras if
	whitespace is significant.

	* src/sxml/texinfo/html.scm: New file, outputs stexi into shtml.
	pre-post-order makes things easy!

	* src/sxml/texinfo.scm: I didn't mean for this to be public
	domain, that header was from SSAX. Change to GPL. Also add some
	more commentary.
	(texi->stexi): Name changed from texinfo->stexinfo.
	(stexi->sxml): Likewise.
	(texinfo-command-specs): arguments (the cddr) now more reflect
	lambda formals: #f -> (), #t -> named rest arg, also add #:opt for
	optional arguments (yay!). I think the format of stexi is stable
	now, modulo additions of elements I haven't covered. The sxml
	output needs some fixes, though.
	(read-command-token): Cleanups. Doesn't validate any more, FBOFW.
	(read-arguments): Use functions in C instead of rolling our own.
	Much faster that way.
	(arguments->attlist): Rewrite for new command formals syntax, and
	handle optional arguments.

2004-06-14  Andy Wingo  <wingo@pobox.com>

	* src/sxml/texinfo.scm (stexinfo->sxml): New function, replaces %
	with texinfo-arguments.
	(texinfo->stexinfo): Change name from texinfo->sxml.

	* src/sxml/simple.scm (enattr, entag): Fix a typo.

	* src/sxml/transform.scm: Whoops, forgot to change the module
	name.

	* unit-tests/debugging.statprof.scm: Adapted to new API.

	The src/xml directory was moved to src/sxml. That's because only
	ssax and simple deal with xml, and then only marginally; the rest
	deal with sxml. Also, the test suites were moved and adjusted
	accordingly.
	
	* src/sxml/ssax.scm: Moved from (xml ssax).

	* src/sxml/texinfo.scm: Moved from (xml texinfo).

	* src/sxml/xpath.scm: Moved from (xml xpath).

	* src/sxml/simple.scm: Moved from (xml simple).

	* src/sxml/htmlprag.scm: Moved from (xml pragmatic). Name change
	by author's request.

	* src/sxml/apply-templates.scm: Moved from (xml templates).
	apply-templates seems to make more sense.

2004-06-13  Andy Wingo  <wingo@pobox.com>

	* src/text/lex-simple.scm (next-token, read-text-line): Use (ice-9
	rdelim). Lots faster! It could be faster if there were a C
	function to read only characters from a certain charset, instead
	of reading those not in a charset.

	* src/xml/texinfo.scm (trim-whitespace): Speed improvements.

	* src/debugging/statprof.scm (statprof-start, statprof-stop)
	(statprof-display): Keep track of the time in GC as well.
	(make-call-data): Don't profile anonymous functions -- record
	their time under their calling function. Also, make procedure-data
	a strong hash.
	(with-statprof): Removed the #:reject and #:only-named? options.
	The real problem was that anonymous functions were being profiled.

	* src/debugging/time.scm: New file, implements a macro to time
	execution of a body of expressions.

	* src/debugging/statprof.scm Reworked to support cumulative and
	self stats.
	(profile-signal-handler): More efficient when not trapping
	apply-frame.
	(inc-call-data-call-count!, inc-call-data-self-sample-count!)
	(inc-call-data): New functions, replacing their set- variants.
	(sample-count-frame, sample-uncount-frame): Gone.
	(sample-stack-procs): Cut out more frames to avoid counting the
	profile signal.
	(count-call): Simplify.
	(with-statprof): Some new kwargs: #:count-calls?, #:only-named?,
	#:reject
	(statprof-reset): Takes another arg, count-calls?.
	(statprof-call-data->stats): Output the self time and the
	cumulative time, like gprof.

2004-06-12  Andy Wingo  <wingo@pobox.com>

	* src/xml/transform.scm (let*-values): Same.

	* src/xml/texinfo.scm (let*-values): Yikes, srfi-11 uses syncase
	macros! Go back to a define-macro version.

	* src/debugging/statprof.scm (with-statprof): New macro. It's
	lisp-style rather than scheme-style, fwiw (implicit lambda).

	* unit-tests/debugging.statprof.scm: New file.

	* src/debugging/statprof.scm: New file, from the guile-statprof
	guile CVS module. I haven't talked to Rob yet, though!

	* src/xml/texinfo.scm (parse-environment-args): Fix environ args.

	* unit-tests/xml.texinfo.scm: Updates to the SXML representation.

	* src/xml/transform.scm: Use srfi-11's let*-values instead of
	rolling our own, and export the foldts operator.

	* src/xml/texinfo.scm: Lots of changes -- it finally works right
	now.

	* src/xml/simple.scm (check-name): New procedure, checks a QName
	for validity before outputting. Good for detecting errors in
	generated SXML.
	(entag, enattr): Use check-name.

	* src/unit-test/guileUnit.scm (assert-equal): Use ice-9's
	pretty-print instead of `write'.

2004-06-03  Andy Wingo  <wingo@pobox.com>

	* unit-tests/xml.texinfo.scm: New file, texinfo->sxml test suite.

	* src/xml/texinfo.scm: New file, parses texinfo into sxml.

2004-05-24  Andy Wingo  <wingo@pobox.com>

	* src/xml/ssax.scm (xml): Fix a typo.

	* src/xml/simple.scm: Add a serializer for XML.

2004-05-23  Andy Wingo  <wingo@pobox.com>

	* src/xml/xpath.scm: Made into a proper guile module.

	* src/xml/pragmatic.scm: Integrated with guile-lib.

	* src/xml/transform.scm: Made into a proper guile module.

	* unit-tests/xml.xpath.scm, unit-tests/xml.transform.scm,
	unit-tests/xml.pragmatic.scm: New files.

	* src/xml/templates.scm: New file, implements the XSLT-like
	apply-templates.

	* src/xml/ssax.scm: Typo fix: SLIB->SSAX.
	
	* src/xml/ssax.scm: Same.

	* unit-tests/xml.ssax.scm (test-xml->sxml): Re-enabled CR/LF tests
	(they were only disabled for PLT scheme).

	* doc/xml.ssax.texi: New file, attempting to document SSAX (but
	incomplete).

	* doc/*.texi: Made to compile, and to include xml.ssax.texi.

	* src/text/lex-simple.scm: Moved from text/lex.scm, and made into
	a proper guile module.

	* src/xml/ssax.scm: Adapted into a proper guile module.

	* unit-tests/xml.ssax.scm: New file with a boatload of tests for
	SSAX. Extracted and adapted from SSAX.scm.

	* src/xml/simple.scm: New file to provide a simple DOM interface
	to SSAX.

	* src/debugging/assert.scm: New file, from SSAX.

	* src/io/string.scm: New file, from SSAX.

	* src/xml/ssax.scm: New file, from SSAX.

	* src/text/lex.scm: New file, from SSAX's input-parse.scm.

2004-05-07  Andy Wingo  <wingo@pobox.com>

	* src/text/structured/plain-text.scm: Add output wrappers for
	tables, code, and var elements.

	* src/scheme/session.scm: New file. The same as (ice-9 session),
	but more extensible. Will just re-export (ice-9 session) when
	upstream gets this change.

	* src/text/structured/help.scm: New file, provides help handlers

	* src/scheme/documentation.scm (define-macro-with-docs): New
	macro, and use it in the other doc macros.

2004-04-19  Andy Wingo  <wingo@pobox.com>

	* src/scheme/documentation.scm: New module, implements some macros
	to define things with docstrings.
	* src/text/structured.scm, src/text/structured/*.scm: New modules.
	Implements something called structured text, basically texinfo in
	sexp format. Can convert texinfo to structured text, and from
	there to a tree of nodes, a gtk text buffer, html, or plain text.
	Also can index the structured text. I'm not happy with the way it
	is now, but I'm putting it in anyway! Documentation is only in the
	modules.

2004-04-16  Andreas Rottmann  <a.rottmann@gmx.at>

	* src/unit-test/guileUnit.scm: Now named just unit-test.scm;
	uppercase is un-schemish ;). All tests adapted.

2003-12-27  Richard Todd  <richardt@vzavenue.net>

	* src/unit-test/guileUnit.scm (assert-numeric-=): new
	  function... compares numbers with a precision value.

	* src/os/process.scm: obscured all symbols exported just because
	macros use them.

2003-12-26  Richard Todd  <richardt@vzavenue.net>

	* src/math/primes.scm (prime?): changed SLIB byte-arrays to guile
	uniform-vectors.
	(prime:prngs): changed from make-random-state to
	               seed->random-state, to avoid pulling in more of
	               SLIB.

2003-12-24  Richard Todd  <richardt@vzavenue.net>>

	* src/unit-test/guileUnit.scm (run): Added messages to screen as
	tests run.
	(add): When a <test-case> is added, all the methods of name
	      matching /^test.*/ are scheduled to run.
	(test-case-suite): Now only internally used, since (add) will
	                   perform this operation for <test-case>'s now.
	(run-all-defined-test-cases): New function...selects all classes
	                              derived from <test-case> to be run,
	                              and runs the tests.  This should
	                              almost always be what the user wants
	                              to do.
	(exit-with-summary): New function...displays summary information
	                     about results.

;;; arch-tag: 1a2c2797-95c9-4371-8baf-a3ee723b45b1
