2013-09-11  Gary V. Vaughan  <gary@gnu.org>

	Release version 4
	* NEWS: Record release date.

2013-08-30  Gary V. Vaughan  <gary@gnu.org>

	docs: update README.
	* README.md: Remove documentation for removed lyaml.configure
	call, and add documentation for new yaml.emitter call.

2013-08-29  Gary V. Vaughan  <gary@gnu.org>

	specs: remove trailing blanks.
	* specs/ext_yaml_emitter_spec.yaml: Remove trailing blanks.

	configury: add sanity-cfg.mk.
	* build-aux/sanity-cfg.mk: New file. Add exception to casting
	argument to free check.

	slingshot: sync with upstream.
	* slingshot: Upgrade again now the we are maintaining API
	compatibility in the next release of lyaml.
	* bootstrap: Pick up fixes from latest slingshot.

2013-08-25  Gary V. Vaughan  <gary@gnu.org>

	slingshot: sync with upstream.
	* slingshot: Pick up recent improvements, particularly fixed
	compatibility with upcoming API backwards compatible lyaml 4
	release.

	ext/yaml: avoid double include of lua52compat.h.
	* ext/yaml/yaml.c: lyaml.h already includes lua52compat.h, so no
	need to include it again from here!

	maint: maintain API backwards compatibility with legacy C implementation.
	Make sure the old lyaml.load and lyaml.dump APIs work by switching
	the naming of the C and lua parts of the new implementation.
	* ext/lyaml: Rename from this...
	* ext/yaml: ...to this.
	* ext/lyaml/lyaml.c: Rename from this...
	* ext/lyaml/yaml.c: ...to this.
	* lib/yaml.lua: Rename from this...
	* lib/lyaml.lua: ...to this.
	* specs/ext_lyaml_emitter_spec.yaml,
	specs/ext_lyaml_parser_spec.yaml,
	specs/ext_lyaml_scanner_spec.yaml, specs/lib_yaml_spec.yaml:
	Rename from these...
	* specs/ext_yaml_emitter_spec.yaml,
	specs/ext_yaml_parser_spec.yaml,
	specs/ext_yaml_scanner_spec.yaml, specs/lib_lyaml_spec.yaml:
	...to these.
	* local.mk, specs/specs.mk, specs/spec_helper.lua: Adjust.
	* NEWS: Remove all the incompatibility warnings, and adjust.

	dump: replace C implementation with simpler Lua dump.
	* specs/ext_lyaml_emitter_spec.yaml: Specify low level libYAML
	emitter binding.
	* specs/spec_helper.lua (emitevents, emit): New helper functions.
	* specs/specs.mk (specl_SPECS): Add
	specs/ext_lyaml_emitter_spec.yaml.
	* ext/lyaml/lyaml.h: Factor common macros and headers into this
	single file.
	* ext/lyaml/parser.c, ext/lyaml/scanner.c: Adjust accordingly.
	* ext/lyaml/lyaml.c (lua_yaml_dumper, dump_node, dump_scalar)
	(get_yaml_anchor, dump_table, dump_array, figure_table_type)
	(dump_null, dump_node, dump_document, append_output)
	(find_references, Pdump): Remove.
	* ext/lyaml/emitter.c: New file, implementing libYAML emitter
	binding.
	* lib/lyaml.lua (M.dump): Reimplement dumper in Lua.
	* local.mk (ext_lyaml_lyaml_la_SOURCES): Add ext/lyaml/emitter.c.
	(EXTRA_DIST): Add ext/lyaml/lyaml.h.
	* NEWS: Update.

2013-07-28  Gary V. Vaughan  <gary@gnu.org>

	load: replace C implementation with simpler Lua load.
	* specs/lib_yaml_spec.yaml: Specify loader behaviour.
	* ext/lyaml/lyaml.c (Load_Set_Metatables, Load_Numeric_Scalars)
	(Load_Nulls_As_Nil, LUAYAML_TAG_PREFIX, RETURN_ERRMSG)
	(lua_yaml_loader, generate_error_message, delete_event, do_parse)
	(handle_anchor, load_map, load_sequence, load_sscalar, load_alias)
	(load_node, load, Pload): Remove.
	(handle_config_option, R): Adjust.
	* lib/yaml.lua: New file. Reimplement in Lua.
	* NEWS: Update.

	parser: set scalar style field.
	* ext/lyaml/parser.c (parse_SCALAR): Set style field.

	slingshot: sync with upstream.
	* slingshot: Pick up recent improvements, particularly compatibility
	with upcoming lyaml 4 release.

	scanner: bind YAML tokenizer.
	* specs/ext_lyaml_scanner_spec.yaml: New file.  Specify behaviour
	of tokenizing scanner.
	* ext/lyaml/scanner.c: New file. Implement binding of scanner.
	* ext/lyaml/lyaml.c: Declare scanner entrypoints.
	(R): Register new scanner method.
	(luaopen_lyaml): Call setup for __gc scanner cleanup.
	* local.mk (ext_lyaml_lyaml_la_SOURCES): Add ext/lyaml/scanner.c.
	* README.md: Add instructions for using lyaml.scanner().
	* NEWS: Update.

2013-07-27  Gary V. Vaughan  <gary@gnu.org>

	parser: factor out function dispatch for simple events.
	* ext/lyaml/parser.c (parse_STREAM_END, parse_SEQUENCE_END)
	(parse_MAPPING_END): Delete.
	(event_iter): Generate parser_push_exenttable calls with CPP
	instead.

	parser: use valid symbols for Lua event types.
	* ext/lyaml/parser.c: Use '_' instead of '-' so that the bare
	event types are valid Lua symbols.
	* specs/ext_lyaml_parser_spec.yaml: Adjust.

	specs: rename parser spec file to reflect source path.
	* specs/parser_spec.yaml: Move from here...
	* specs/ext_lyaml_parser_spec.yaml: ...to here.
	* specs/specs.mk (specl_SPECS): Adjust.

	parser: interface cleanup.
	* ext/lyaml/lyaml.c (parser_init): Declare this...
	(loader_gc): ...instead of this.
	(luaopen_lyaml): Move __gc metatable init from here...
	* ext/lyaml/parser.c (parser_init): ...to here.
	Also fix a typo in one metatable name reference.

	maint: move lyaml extension sources to ext/lyaml subdir.
	* lua52compat.h, lyaml.c, parser.c: Move from here...
	* ext/lyaml/lua52compat.h, ext/lyaml/lyaml.c, ext/lyaml/parser.c:
	...to here.
	* local.mk (lyaml_cpath, EXTRA_DIST, lib_LTLIBRARIES): Adjust.
	(ext_lyaml_lyaml_la_SOURCES): Compile sources as individual subdir
	objects.

	parser: factor away LYAML_STR macro.
	* parser.c (LYAML__STR, LYAML_STR): Remove. Adjust all callers.

	parser: factor away lyaml_parser.error.
	* parser.c (lyaml_parser): Remove error field.
	Adjust all clients.

	parser: decouple from lyaml.c.
	* parser.c (lyaml_parser, parser_delete_event)
	(parser_generate_error_message): New functions refactored...
	(struct lua_yaml_loader, delete_event, generate_error_message):
	...from here.
	Adjust all callers.

2013-07-26  Gary V. Vaughan  <gary@gnu.org>

	docs: add missing link, and missing space.
	* README.md: Add missing [libtool][] destination and insert a
	missing space.

	README: improve documentation.
	* README.md: Rewrite to provide a tiny bit more insight into how
	to install and use lyaml.

2013-07-25  Gary V. Vaughan  <gary@gnu.org>

	specs: quote 5.2 illegal escapes carefully.
	* specs/parser_spec.yaml: Use [[]] quoting to prevent Lua 5.2
	from trying to resolve \ as an escape sequence.

	travis: install specl for specificatin checks.
	* configure.ac (AC_PATH_PROG): Fallback to : if specl is not
	installed on the build machine.
	* .travis.yml: Regenerate.

	lyaml: bind lyaml.parser to lyaml_parser_parse.
	* configure.ac: Require Specl.
	(SPECL_MIN): Require at least release 8 of Specl.
	* specs/parser_spec.yaml: Specify behaviour of new parser API.
	* specs/spec_helper.lua: New file. Specl helper functions.
	* specs/specs.mk: New file. Run specl checks, and distribute
	spec files.
	* local.mk: Include it.
	(lyaml_cpath): Factored out of MKROCKSPECS_ENV.
	(MKROCKSPECS_ENV, LUA_ENV): Adjust.
	* parser.c (Pparser): New file. Implement event iterator.
	* lyaml.c: Include it.
	(R): Add Pparser.
	(luaopen_lyaml): Set up _gc metatable for iterator to clean
	up iterator memory.
	* local.mk (EXTRA_DIST): Add parser.c.
	* NEWS: Update.

2013-07-15  Gary V. Vaughan  <gary@gnu.org>

	slingshot: sync with upstream.
	Use upstream slingshot, which prevents us requesting installation
	of luarocks lyaml on travis before building our own lyaml.
	* slingshot: Update.
	* .travis.yml: Regenerate.

	maint: move to self-managed slingshot.
	* slingshot: Add as a git submodule.
	* bootstrap.slingshot: New file, copied from slingshot.
	* Makefile.am: Move from here...
	* local.mk: ...to here, and adjust for slingshot.
	* GNUmakefile, build-aux/do-release-commit-and-tag,
	build-aux/gitlog-to-changelog, build-aux/mkrockspecs,
	build-aux/release.mk, build-aux/rockspecs.mk, m4/ax_lua.m4,
	m4/ax_compare_version.m4: Delete.  Slingshot takes care of these
	files automatically.
	* .gitignore: Update.
	* .travis.yml: Regenerate.

	maint: remove spurious trailing whitespace.
	* README.md, bootstrap.conf, configure.ac, lyaml.c: Remove
	spurious trailing whitespace.

	lyaml: use STREQ/STRNEQ instead of !strcmp/strcmp.
	* lyaml.c (load_scalar, lua_yaml_dumper, table_type)
	(handle_config_options): Use GNUish STREQ/STRNEQ macros for
	improved readability over reverse logic strcmp.

2013-04-27  Gary V. Vaughan  <gary@gnu.org>

	maint: post-release administrivia.
	* configure.ac (AC_INIT): Bump to release 4.
	* NEWS: Add header line for next release.
	* .prev-version: Record previous version.
	* ./Makefile.am (old_NEWS_hash): Auto-update.

	Release version 3
	* NEWS: Record release date.

	travis: adjust for slingshot upgrades.
	* .travis.yml: Be as verbose as possible.
	Don't try to bootstrap the release branch.
	Adjust luarcoks-config.lua path.
	Remove lua-stdlib install; slingshot mkrockspecs works without it.
	Pass LUAROCKS to make correctly.
	(LUAROCKS_CONFIG): Set correctly.

	maint: remove unused lyaml-rockspec.lua.
	* lyaml-rockspec.lua: Remove.  No longer used.

	configury: rockspecs depend on lyaml.
	* Makefile.am: Make sure lyaml is built before calling mkrockspecs.

	maint: Move distribution rules into release.mk.
	* Makefile.am: Move distribution rules from here...
	* build-aux/release.mk: ...to here.
	* build-aux/rockspecs.mk (EXTRA_DIST): Add mkrockspecs script,
	and rockspec_conf.
	(smc_rockspec): git rockspec is always revision 1!

	maint: support external_dependencies with mkrockspecs.
	* build-aux/mkrockspecs: Support ordering of external_dependencies.
	Add quote marks around various paths in case of whitespace after
	variable expansion.
	(configure_flags): Set defaults to respect external_dependencies
	entries.
	* rockspec.conf (external_dependencies): Required for a correct
	build.

2013-04-26  Gary V. Vaughan  <gary@gnu.org>

	Revert "maint: post-release administrivia."
	This reverts commit 9fcdd06a1f88d6db0ab344b0de4dda314ff8eb8c.

	maint: post-release administrivia.
	* NEWS: Add header line for next release.
	* .prev-version: Record previous version.
	* ./Makefile.am (old_NEWS_hash): Auto-update.

	Release version 3
	* NEWS: Record release date.

	maint: upgrade to slingshot release files.
	* rockspec.conf: lyaml rockspec configuration for slingshot.
	* NEWS: New file.  Add release notes from previous versions.
	* .prev-version: New file. Required by do-release-commit-and-tag.
	* build-aux/do-release-commit-and-tag, build-aux/mkrockspecs,
	bulid-aux/release.mk, build-aux/rockspecs.mk: Install from
	slingshot upstream.
	* build-aux/mkrockspecs.lua: Remove. Obsolete.
	* GNUmakefile, Makefile.am: Adjust to work with slingshot files.
	* .gitignore, build-aux/.gitignore: Update.

	maint: bump release version to 3.
	* configure.ac (AC_INIT): Bump release version to 3.

2013-04-06  Gary V. Vaughan  <gary@gnu.org>

	mkrockspecs: respect environment LUAROCKS settings.
	* build-aux/mkrockspecs.lua: Use the user selected luarocks
	invocation to execute luarocks lint.

	maint: revert to setting lua paths for each command requiring it.
	* .travis.yml (script): Move the luarocks path setting to the
	same line as the command that uses it.

	maint: move path injection for Travis CI.
	* .travis.yml (install): Move path injection from here...
	(script): ...to here.  It seems that environment settings made in
	install are not visible in the script section.

	maint: factor out repeated $LUA $HOME/bin/luarocks for Travis CI.
	* .travis.yml (env.global): Set LUAROCKS.
	(install): Set luarocks path.
	(script): Simplify accordingly.

	docs: add a travis build status badge to README.md for github.
	* README.md: Add travis build status badge markup.

	maint: Ubuntu Precise puts luajit headers in luajit-2.0 subdir.
	* .travis.yml (env.matrix): Specify LUA_INCDIR for each Lua
	interpreter in the build matrix.
	(script): Pass LUA_INCDIR to make luarocks-config.lua rule.

	maint: move Travis CI local luarocks build into install key.
	* .travis.yml (script): Move local luarocks build from here...
	(install): ...to here.

	maint: let Travis local luarocks configure detect a Lua interpreter.
	* .travis.yml (script): Remove --lua-version and --with-lua
	configure parameters from local luarocks build.

	maint: Ubuntu Precise ships too-old luarocks.
	* .travis.yml (env.matrix): Use correct binary name for luajit.
	(env.global): Set LUAROCKS_BASE to current luarocks release.
	(install): Don't apt-get too-old luarocks from distro.
	(script): Wget and build a local luarocks from latest release.

	maint: install lua interpreters specifically for Travis CI.
	* .travis.yml (install): Specifically install the lua interpreters
	required by script.

	maint: set LUA_PATH correctly for make rockspecs in Travis CI.
	* .travis.yml (script): Use eval rather than env to push LUA_PATH
	into the environment before running make rockspecs.

	maint: generate Travis CI build matrix correctly.
	* .travis.yml (env): Read the documentation again, and then set
	the matrix up correctly for three specific Lua settings, and a
	shared global environment variable.

	maint: remove redundant Travis CI notifications.
	* .travis.yml (env.global): Didn't work here, so move back to
	env key.
	(notifications): Remove.  Default is to do the same thing anyway.

	maint: use local luarocks paths for make rockspecs.
	* .travis.yml (env): Move LUA intepreters into global subkey.
	(env.matrix): Set LUAROCKS_CONFIG once for everything here.
	(install): Remove redundant lua interpreter installs.
	(script): Set paths for local luarocks tree before calling `make
	rockspecs`, otherwise it can't find the stdlib rock we just
	installed.

	maint: dynamically locate luarocks binary for Travis CI.
	* .travis.yml (script): Use `which` to locate installed luarocks
	binary for feeding to selected $LUA interpreter.

	maint: use a local luarocks tree for Travis CI.
	* .travis.yml (install): Don't forget the various foo-dev packages
	needed to get lua header files.
	(after_script): Remove. There are no tests!
	(script): Build and use a luarocks-config to use a temporary
	local luarocks tree tailored to the selected LUA interpreter.

	configury: user overridable luarocks vars in luarocks-config.lua.
	* GNUmakefile (luarocks-config.lua): In order to work correctly
	with a given lua intepreter for a particular luarocks tree, make
	sure to set the appropriate luarocks variables when writing a
	luarocks-config.lua. Also, take care to honour environment
	values for those variables at make-time, because the user probably
	knows better how their environment is set up than the generic
	make rules can!

	maint: update rockspec template for latest ax-lua.m4.
	* lyaml-rockspec.lua (build.build_command): Pass $(LUA) as a
	configure precious variable so that latest ax-lua.m4 uses it as
	passed instead of running the hardcoded search for a lua binary.

	maint: install lua-stdlib for Travis CI.
	* .travis.yml (script): install lua-stdlib luarock.

	maint: relax autoconf requirement to v2.68.
	* configure.ac (AC_INIT): 2.68 is new enough, and is the newest
	version available by default on Travis CI server.

	maint: use travis CI server.
	* .travis.yml: New file. Travis CI directives.

2013-03-18  Gary V. Vaughan  <gary@gnu.org>

	docs: insert missing link.
	* README.md (Lua): Add missing URL.

	docs: fix a typo.
	* README.md (Instalation): Rename from this...
	(Installation): ...to this.

	maint: use correct MIT license.
	The GPLv3+ license was a cut-n-paste error.
	* lyaml-rockspec.lua (license): Correct license is MIT.
	* GNUmakefile, Makefile.am, bootstrap.conf, configure.ac:
	Relicense files authored by me under MIT.

2013-03-17  Gary V. Vaughan  <gary@gnu.org>

	maint: bump release number to 2.
	* configure.ac (AC_INIT): Bump release number to 2.

	maint: release process streamlining.
	* GNUmakefile (check-in-release): Don't switch back to master yet.
	(release): Do it at the end!

	maint: add gitlog-to-changelog.
	Hand maintaining a ChangeLog is tedious.
	* build-aux/gitlog-to-changelog: New file.

	rockspecs: remove debug line.
	* build-aux/mkrockspecs.lua: Remove left-over debug line.

	Initial import.
