2015-07-27 Gary V. Vaughan <gary@gnu.org>
Release version 6.0
* NEWS.md: Record release date.
maint: support installcheck rules.
* specs/spec_helper.lua (package.path, package.cpath): Don't
set these paths for installcheck!
slingshot: sync with upstream.
* slingshot: Sync with upstream for Lua 5.3.1 support.
configury: bump release number to 6.0.
* configure.ac (AC_INIT): Bump release number to 6.0.
* .travis.yml: Regenerate.
lyaml: recognize merging of sequence alias.
* specs/lib_lyaml_spec.yaml: Specify behaviour for loading an
alias to a sequence.
* lib/lyaml.lua (alias_type): New table mapping anchor save types
to equivalent later alias load types.
(parser_mt:add_anchor): Use it to save the anchor type in addition
to the node value, so we can distingish between saved sequence
tables and map tables.
(parser_mt:load_map, parser_mt:load_sequence)
(parser_mt:load_scalar): Return value and type of actual event.
(parser_mt:load_alias): Return value, and type of aliased event.
(parser_mt:load_map): Simplify. Now that aliases are expanded
recursively, no need to handle ALIAS events specially.
* specs/lib_lyaml_spec.yaml: Simplify some examples with local
variables for intermediate values.
Adjust error messages expectations to match reality!
2015-07-26 Gary V. Vaughan <gary@gnu.org>
lyaml: ensure lyaml.dump has an equivalent signature to lyaml.load.
* lib/lyaml.lua (dump): Accept an option table of options.
(Dumper): Normalise options.
(dumper_mt.dump_scalar): Quote any strings that would be implicitly
converted by opts.implicit_scalar function otherwise.
* NEWS.md: Update accordingly.
* README.md: Update.
lyaml: merge bare maps and sequences.
* specs/lib_lyaml_spec.yaml (context with merge keys): Specify
behaviour with non-alias merge key arguments more thoroughly,
especially merging bare maps and sequences.
* lib/lyaml.lua (parser_mt.load_map): generalize support of
arguments to merge key to satisfy new specifications.
2015-07-25 Gary V. Vaughan <gary@gnu.org>
specs: specify loading of more variant boolean and y/n tokens.
* specs/lib_lyaml_spec.yaml (it recognizes booleans): Specify
behaviour with "yes" and "no".
(it loads bare y and n as strings): Specify behaviour with "y"
and "n".
(it recognizes strings): Specify behaviour with quoted "yes".
(it recognizes !!bool): Specify behaviours with variations of
yes, no, y and n.
doc: clarify lyaml._VERSION docs.
* lib/lyaml.lua (_VERSION): Clarify what this is the version of!
maint: consolidate .gitignore files.
* build-aux/.gitignore: Remove.
* .gitignore: Ignore everything in build-aux except config.ld.in
and sanity-cfg.mk.
configury: install api docs correctly.
* configure.ac: Modernize.
(HAVE_LDOC): New conditional, so that installation from a
release tarball works without LDoc installed.
* local.mk (modulesdir): Destination for api ldocs.
(dist_doc_DATA): VPATH search automatically prepends $(srcdir).
(dist_docmodules_DATA): Oops, not this...
(dist_modules_DATA): ...it should be spelled like this. And
we should reference sources relative to Makefile directory
2015-07-23 Gary V. Vaughan <gary@gnu.org>
maint: add ldoc to bootstrap travis_extra_rocks.
* bootstrap.conf (travis_extra_rocks): Add ldoc.
* .travis.yml.in: Regenerate.
maint: add ldoc to bootstrap buildreq.
* bootstrap.conf (buildreq): Add ldoc.
doc: preliminary LDoc API documentation.
* build-aux/config.ld.in: New file. LDoc configuration.
* configure.ac (AC_CONFIG_FILES): Generate config.ld.
(AC_PATH_PROG): Find ldoc binary in path.
* local.mk (src/doc): Automatically generate API documentation.
* lib/lyaml.lua, lib/lyaml/explicit.lua, lib/lyaml/functional.lua,
lib/lyaml/implicit.lua: Add API doc-comments markup.
* AUTHORS: Update.
2015-07-22 Gary V. Vaughan <gary@gnu.org>
lyaml: provide API for loading scalar types.
In the process of factoring the scalar parsing in user over-
ridable parameters, we also make default boolean value parsing
more idiomatic - namely, bare y and n tokens remain as y and
n string values respectively, unless preceded by the !!bool
tag, when they are parsed to true and false values.
* lib/lyaml.lua (istruthy, isfalsey, isnan, isinf)
(parser_mt.load_float, parser_mt.load_int)
(parser_mt.load_scalar): Factor implicit scalar loaders from
here...
* lib/lyaml/implicit.lua (binary, decimal, float, hexadecimal)
(inf, nan, null, octal, sexagesimal, sexfloat, bool): New file.
...to here.
* lib/lyaml/functional.lua: New file with minimal higher order
functions for internal use.
* lib/lyaml.lua (parser_mt.load_scalar): Factor explicit tagged
scalar loaders from here...
* lib/lyaml/explicit.lua (bool, float, int, null, str): New
file. ...to here.
* lib/lyaml.lua (default.explicit_scalar)
(default.implicit_scalar): Compose equivalent functionality to
prefactored code from the new functions above.
(Parser): Fallback to scalar value parsing from default.
(load): If opts is a table, accept keys that override default
scalar loading functions with the user's own.
* specs/lib_lyaml_spec.yaml: Adjust specifications to match
clearer error messages and more idiomatic parsing of y and n.
* README.md (lyaml.load): Describe new APIs.
2015-07-20 Nick Muerdter <nick.muerdter@nrel.gov>
lyaml: parse empty values as null, not empty strings.
Close #10
According to the [spec](http://yaml.org/type/null.html) an empty value
should be null. lyaml was previously treating empty values as empty
strings which isn't correct.
This change means that `lyaml.load("foo: ")` will now be parsed as
`{ foo = lyaml.null }` instead of `{ foo = "" }`.
This also adjusts how real empty string values are dumped, since they
need to be quoted rather than an empty value. So
`lyaml.dump({{ foo = "" }})` will now be dumped as `foo: ''` instead of
`foo: `.
This does change a number of existing tests that involved empty
documents now becoming nulls, rather than empty strings, but I've
verified that the new behavior seems to match Ruby's YAML library in all
these cases. Here's a few examples of these empty document changes (I
updated the lyaml test suite accordingly):
```
> YAML.load_stream("---")
=> [nil]
> YAML.load_stream("---\n...\n---\ntwo\n...\n---\n...")
=> [nil, "two", nil]
> YAML.dump("")
=> "--- ''\n"
```
I've also added new tests to explicitly check the null handling for
empty values. Here's also a few more examples verifying the new null
behavior against the Ruby YAML library:
```
> YAML.load_stream("foo: ")
=> [{"foo"=>nil}]
> YAML.load_stream("- ~\n- \n- true\n- 42")
=> [[nil, nil, true, 42]]
> YAML.load_stream("''")
=> [""]
```
* specs/lib_lyaml_spec.yaml (writes an empty document): Correct
behaviour is to dump a literal empty string.
(writes a mapping): Specify dumping an empts string value.
(lyaml.loads an empty document): Correct behaviour is to return
lyaml.null for no content.
(reports an empty document): Likewise for multi-document streams.
(recognizes version number): Adjust accordingly.
(recognizes null): Specify behaviour when loading an empty value,
(recognizes strings): Specify behaviour when loading an empty
string.
(recognizes block sequences): Likewise for empty sequence values.
* lib/lyaml.lua (dumper_mt): Set SINGLE_QUOTED style for empty
strings.
(parser_mt): Load an empty string as lyaml.null.
From Nick Muerdter
2015-07-20 Nick Muerdter <nick.muerdter@nrel.gov>
doc: clarify multiple document handling.
Close #9
* README.md: This is based on the discussion regarding how the
API handles multiple documents here:
https://github.com/gvvaughan/lyaml/issues/7
From Nick Muerdter
2015-07-13 Gary V. Vaughan <gary@gnu.org>
lyaml: support !!merge key type.
Fixes #8.
* specs/lib_lyaml_spec.yaml (load): Specify input types for
merge tag value strings and how they should be loaded.
* lib/lyaml.lua (parser_mt.merge_map): Fetch an alias or sequence
of aliases, and merge them into the containing map.
(parser_mt.load_map): Use it to !!merge tag.
* NEWS.md (New Features): Update accordingly.
Reported by Yuichi Murata <mrk21info+gitub@gmail.com>
lyaml: load the whole range of !!int arguments fully.
* specs/lib_lyaml_spec.yaml (load): Specify more input types for
int tag value strings and how they should be loaded.
* lib/lyaml.lua (istruthy, isfalsey): New sets of accepted !!int
value strings that will convert to Lua true and false respectively.
(parser_mt.load_scalar): Parse !!int tag arguments fully.
* NEWS.md (Bug fixes): Update accordingly.
2015-07-12 Gary V. Vaughan <gary@gnu.org>
lyaml: load the whole range of !!float arguments fully.
* specs/lib_lyaml_spec.yaml (load): Specify more input types for
float tag value strings and how they should be loaded.
* lib/lyaml.lua (isnan, isinf): New sets of accepted !!float
value strings that will convert to Lua 0/0 and inf respectively.
(parser_mt.load_scalar): Parse !!float tag arguments fully.
(dumper_mt.dump_scalar): Dump NaN and Inf values idiomatically.
* NEWS.md (Bug fixes): Update accordingly.
lyaml: load the full range of !!bool arguments fully.
* specs/lib_lyaml_spec.yaml (load): Specify more input types for
bool tag value strings and how they should be loaded.
* lib/lyaml.lua (istruthy, isfalsey): New sets of accepted !!bool
value strings that will convert to Lua true and false respectively.
(parser_mt.load_scalar): Parse !!bool tag arguments fully.
* NEWS.md (Bug fixes): Update accordingly.
lyaml: recognize !!null tags.
* specs/lib_lyaml_spec.yaml (load): Specify correct loading of
!!null tags.
* lib/lyaml.lua (parser_mt.load_scalar): Load a !!null tag as an
lyaml.null reference.
* NEWS (Bugs Fixed): Update.
2015-06-21 Nick Muerdter <nick.muerdter@nrel.gov>
lyaml.dumper_mt: fix multi-line string dumping.
Close #6.
Multi-line strings were previously being dumped using single quotes
which caused the dumped YAML to break, dump using LITERAL syntax in
this case.
* specs/lib_lyaml_spec.yaml (lyaml dumping): Specify correct
behaviours for dumping multi-line strings.
(lyaml loading): Likewise for loading strings dumped this way.
* lib/lyaml.lua (dumper_mt): use "LITERAL" style to dump strings
containing embedded newlines.
* NEWS.md (Bug fixes): Update.
2015-01-19 Gary V. Vaughan <gary@gnu.org>
slingshot: sync with upstream for lua 5.3.0 final support.
* slingshot: Sync with upstream.
* .travis.yml: Regenerate.
2015-01-01 Gary V. Vaughan <gary@gnu.org>
maint: post-release administrivia.
* NEWS: Add header line for next release.
* .prev-version: Record previous version.
* ./local.mk (old_NEWS_hash): Auto-update.
Release version 5.1.4
* NEWS.md: Record release date.
configure: add ansicolors to travis_extra_rocks.
* bootstrap.conf (travis_extra_rocks): Add ansicolors for color
specl output.
* .travis.yml: Regenerate.
slingshot: sync with upstream, for travis improvements.
* slingshot: Sync with upstream.
* .travis.yml: Regenerate.
configury: bump release version to 5.1.4.
* configure.ac (AC_INIT): Bump release version to 5.1.4.
maint: update NEWS.
* NEWS.md: Add missing sections.
maint: commit git rockspec to master branch.
* .gitignore: Allow git rockspecs.
* lyaml-git-1.rockspec: New file.
travis: move timestamp fudger to before rockspec make.
maint: post-release administrivia.
* NEWS: Add header line for next release.
* .prev-version: Record previous version.
* ./local.mk (old_NEWS_hash): Auto-update.
Release version 5.1.3
* NEWS.md: Record release date.
maint: update copyrights.
x bootstrap.conf, configure.ac, ext/yaml/emitter.c,
ext/yaml/lyaml.h, ext/yaml/parser.c, ext/yaml/scanner.c,
ext/yaml/yaml.c, lib/lyaml.lua, local.mk, specs/specs.mk: Add
2015 to copyright statement.
configury: bump release version to 5.1.3.
* configure.ac (AC_INIT): Bump release version to 5.1.3.
* .travis.yml: Regenerate.
rockspec: Lua 5.4 and higher not yet supported.
* rockspec.conf (dependencies): Add lua < 5.4 constraint.
slingshot: sync with upstream, for bootstrap warnings fix.
* slingshot: Sync with upstream.
* bootstrap: Update from slingshot.
* bootstrap.conf (buildreq): Require specl 14 or better with
Lua 5.3 compatibility.
* .travis.yml: Regenerate.
2014-12-29 Gary V. Vaughan <gary@gnu.org>
parser: line and column are integers not strings.
* lib/lyaml.lua (Parser): Initialise line and column to integers.
(parser_mt): Remove type coercions.
2014-12-27 Gary V. Vaughan <gary@gnu.org>
maint: post-release administrivia.
* NEWS: Add header line for next release.
* .prev-version: Record previous version.
* ./local.mk (old_NEWS_hash): Auto-update.
Release version 5.1.2
* NEWS.md: Record release date.
slingshot: sync with upstream for release fixes.
configury: bump version number to 5.1.2,
* configure.ac (AC_INIT): Bump version number to 5.1.2,
maint: update NEWS.
slingshot: sync with upstream for travis configure warning bug.
* slingshot: Sync with upstream.
* bootstrap.conf (require_bootstrap_uptodate): Remove. Slingshot
bootstrap now handles out of date bootstrap scripts properly.
(slingshot_files): Remove slingshot.m4.
* configure.ac (SPECL_MIN): Remove.
(SS_CONFIG_TRAVIS): Remove. Move extra rocks from here...
* bootstrap.conf (travis_extra_rocks): ...to here.
* bootstrap: Regenerate.
2014-12-24 Gary V. Vaughan <gary@gnu.org>
specs: add some pending emit examples.
* specs/ext_yaml_emitter_spec.yaml (emitting): Add some pending
emit examples.
2014-12-19 Gary V. Vaughan <gary@gnu.org>
maint: insert missing NEWS.md release header.
* NEWS: Add missing header.
maint: post-release administrivia.
* NEWS: Add header line for next release.
* .prev-version: Record previous version.
* ./local.mk (old_NEWS_hash): Auto-update.
Release version 5.1.1
* NEWS.md: Record release date.
slingshot: sync with upstream, for release fixes.
* slingshot: Sync with upstream.
slingshot: sync with upstream, for rebootstrap subproject fix.
* slingshot: Sync with upstream.
* bootstrap: Update from slingshot.
2014-12-18 Gary V. Vaughan <gary@gnu.org>
slingshot: sync with upstream, for luaexec_LTLIBRARIES support.
Close #5.
* slingshot: Sync with upstream.
* bootstrap: Update from slingshot.
* .travis.yml: Regenerate.
* local.mk (lib_LTLIBRARIES): Rename from this...
(luaexec_LTLIBRARIES): ...to this.
(old_NEWS_hash): Update.
* NEWS: Move from here...
* NEWS.md: ...to here. Reformat and update.
* .gitignore: Add NEWS.
configury: bump release number to 5.1.1.
* configure.ac (AC_INIT): Bump release number to 5.1.1.
* NEWS: Update.
2014-12-17 Gary V. Vaughan <gary@gnu.org>
maint: post-release administrivia.
* NEWS: Add header line for next release.
* .prev-version: Record previous version.
* ./local.mk (old_NEWS_hash): Auto-update.
Release version 5.1.0
* NEWS: Record release date.
configury: remove references to lua52compat.h.
* local.mk (EXTRA_DIST): Remove ext/yaml/luacompat.h.
slingshot: sync with upstream, for release fixes.
* slingshot: Sync with upstream.
slingshot: sync with upstream, for release fixes.
* slingshot: Sync with upstream.
maint: bump release revision to 5.1.0.
* configure.ac (AC_INIT): Bump release revision to 5.1.0.
* NEWS: Update.
slingshot: sync with upstream, for travis fixes.
* slingshot: Sync with upstream.
* .travis.yml: Regenerate.
slingshot: sync with upstream, for luajit fixes.
* slingshot: Sync with upstream.
* .travis.yml: Regenerate.
slingshot: sync with upstream, for travis.yml bugfixes.
* slingshot: Sync with upstream.
* .travis.yml: Regenerate.
slingshot: sync with upstream, for Lua 5.3 support.
* slingshot: Sync with upstream.
* bootstrap: Update to latest slingshot bootstrap.
* .travis.yml: Regenerate.
maint: preliminary Lua 5.3.0 compatibility.
* slingshot: Sync with upstream for Lua 5.3 compatibility.
* configure.ac (AX_PROG_LUA): Accept Lua 5.3 interpreters.
* ext/yaml/lua52compat.h: Remove.
* ext/yaml/lyaml.h (lua_objlen, lua_strlen, luaL_openlib)
(luaL_register): Lua 5.2 and 5.3 compatibility definitions.
* .travis.yml: Regenerate.
2014-12-16 Gary V. Vaughan <gary@gnu.org>
configury: adopt semantic versioning.
* configure.ac (AC_INIT): Bump version to 6.0.0.
2014-09-26 Gary V. Vaughan <gary@gnu.org>
maint: post-release administrivia.
* configure.ac (AC_INIT): Bump release version to 6.
* NEWS: Add header line for next release.
* .prev-version: Record previous version.
* ./local.mk (old_NEWS_hash): Auto-update.
2014-09-25 Gary V. Vaughan <gary@gnu.org>
Release version 5
* NEWS: Record release date.
lyaml: implement anchor matching in lyaml.dump ().
Closes #2.
* specs/lib_lyaml_spec.yaml (anchors and aliases): Specify correct
behaviours when replacing anchor matches with YAML anchor and
alias syntax.
* lib/lyaml.lua (dumper_mt.get_anchor): Move matched anchor to new
aliased property.
(dumper_mt.get_alias): Look up already matched anchor in aliased
property.
(dumper_mt.dump_alias): Emit an ALIAS event.
(dumper_mt.dump_mapping, dumper_mt.dump_sequence)
(dumper_mt.dump_scalar): Look up anchor with `get_anchor`, and
replace event with ALIAS if match found with `get_alias`.
* NEWS: Update.
emitter: emit lyaml.null nodes correctly.
* specs/lib_lyaml_spec.yaml (scalars): Remove pending call.
* lib/lyaml.lua (null): Put null singleton identifier in its own
metatable.
(isnull): Predicate function for detecting null nodes.
(dump_node): Use it to dump nulls correctly.
emitter: don't output numbers in SINGLE_QUOTED style.
* specs/lib_lyaml_spec.yaml (loading): Indent another level...
(lyaml): ...move under new top level.
(dumping): Specify behaviour for emitting table elements.
* lib/lyaml.lua (dumper_mt.dump_scalar): Use PLAIN style unless
a string would convert to a number, and then SINGLE_QUOTED style.
* NEWS: Update.
specl: sync with upstream slingshot for SPECL_ENV improvements.
* slingshot: Sync with upstream.
* specs/specs.mk: Simplify accordingly.
* specs/spec_helper.lua (package.path, package.cpath): Set
according to slingshot recommendations. `make distcheck` works
again now, even when Specl (>=13) is using a different lyaml
release from the system directories.
maint: remove debug statement.
* lib/lyaml.lua (dumper_mt.emit): Remove debug statement.
emitter: propagate errors correctly.
* specs/ext_yaml_emitter_spec.yaml: Specify error messages are
propagated correctly.
* ext/yaml/emitter.c (emit_STREAM_START, emit_MAPPING_START)
(emit_SEQUENCE_START, emit_SCALAR): Push error messages onto the
errbuff stack.
* NEWS: Update.
2014-09-24 Gary V. Vaughan <gary@gnu.org>
travis: revert to specl-12 features.
* specs/lib_lyaml_spec.yaml (loading): to_raise is a v13 matcher,
but v13 is not released yet. Use to_error for v12 compatibility.
* .travis.yml: Regenerate.
travis: install specl github master.
* .travis.yml (script): Install Specl from github master, to
satisfy new features used by yaml specs.
lyaml: improve parser error handling.
Fix a TODO in the lyaml parser.
* specs/lib_lyaml_spec.yaml (loading): Specify line and column
prefixed error behaviours.
* lib/lyaml.lua (Parser): Initialise line and column.
(parser_mt.error): Raise an error with line and column prefixed.
(parser_mt.parse): Capture libYAML event errors, and forward them
to parser_mt.errer.
Update 1-based line and column markers from 0-based libYAML event
markers.
(parser_mt.loadalias): Raise errors with parser_mt.error.
specs: set package paths for specl auto-discovery.
* specs/spec_helper.lua (package.path, package.cpath): Add build
directories.
(dump): Call prettytostring from correct module table.
specs: small improvements in descriptions and examples.
* specs/ext_yaml_scanner_spec.yaml (scanning): Fix a typo.
* specs/lib_lyaml_spec.yaml (describe documents): Add more
variations.
(describe anchors): Rename from this...
(describe anchors and aliases): ...to this.
refactor: modernize specs for prettiest colors from report formatter.
* specs/ext_yaml_emitter_spec.yaml, specs/ext_yaml_parser_spec.yaml,
specs/ext_yaml_scanner_spec.yaml, specs/lib_lyaml_spec.yaml: Use
`to_` matchers rather than `should_` matchers throughout.
Use specify:describe:context:it hierarchy consistently throughout.
Remove redundant `require "spec_helper"` blocks.
slingshot: sync with upstream for slack support.
* slingshot: Sync with upstream.
* .slackid: New file with slack notification id.
* .travis.yml: Regenerate.
2014-07-31 Gary V. Vaughan <gary@gnu.org>
slingshot: sync with upstream for upload and moonscript support.
* slingshot: Sync with upstream.
* bootstrap.conf (slingshot_files): Delete removed
ax_compare_version.m4.
* README.md (Installation): Show moonscript rocks repo.
* .travis.yml: Regenerate.
Signed-off-by: Gary V. Vaughan <gary@gnu.org>
2014-07-17 Gary V. Vaughan <gary@gnu.org>
Merge branch 'waffle-iron-master'
2014-07-17 Making GitHub Delicious. <iron@waffle.io>
add waffle.io badge
2014-05-21 Gary V. Vaughan <gary@gnu.org>
maint: fix a README typo.
* README.md: Remove a spurious word.
configury: update bootstrap script from slingshot.
* bootstrap: Sync with slingshot.
slingshot: sync with upstream.
* slingshot: Sync with upstream for grep GNUism fix.
* bootstrap.conf (buildreq): Don't set a git version number, or
else `GIT=true ./bootstrap` doesn't work.
* .travis.yml: Regenerate.
2014-01-05 Gary V. Vaughan <gary@gnu.org>
slingshot: sync with upstream.
Fix the annoying contest.sed file dropping bug.
* slingshot: Sync with upstream.
* bootstrap: Sync with slingshot.
2014-01-04 Gary V. Vaughan <gary@gnu.org>
maint: update copyright notices to include 2014.
* .x-upate-copyright: New file. Exclude files not owned by this
project from update-copyright rules.
* local.mk (update_copyright_env): Set appropriately.
* configure.ac, ext/yaml/emitter.c, ext/yaml/lyaml.h,
ext/yaml/parser.c, ext/yaml/scanner.c, ext/yaml/yaml.c,
lib/lyaml.lua, local.mk: Bump copyright year.
* .gitignore: Update.
slingshot: sync from upstream, and simplify accordingly.
* slingshot: Sync with upstream.
* bootstrap: Update from slingshot.
* bootstrap.slingshot: Remove. No longer required.
* bootstrap.conf: Remove bootstrap slingshot source boilerplate.
(func_ensure_changelog): Remove. Automated by slingshot now.
* configure.ac (AM_INIT_AUTOMAKE): Remove 'foreign'.
* COPYING: New file, with MIT License, to avoid Autotools
copying over a standard GPLv3 COPYING boilerplate.
* .travis.yml: Regenerate.
2013-11-15 Gary V. Vaughan <gary@gnu.org>
maint: prevent pointer type mismatch warnings.
* ext/yaml/lyaml.h (lua_pushyamlstr): Cast away the impedence
mismatch between Lua API 'unsigned char *' strings and libYAML
API 'yaml_char_t *' strings.
(RAWSET_BOOLEAN, RAWSET_INTEGER, RAWSET_STRING, RAWSET_EVENTF)
(RAWGETS_STRDUP): Use lua_pushyamlstr to avoid compiler warnings.
* ext/yaml/parser.c (Pparser): Cast away type differences.
* ext/yaml/scanner.c (Pscanner): Likewise.
* NEWS: Update.
2013-09-11 Gary V. Vaughan <gary@gnu.org>
maint: post-release administrivia.
* configure.ac (AC_INIT): Bump revision to 5.
* NEWS: Add header line for next release.
* .prev-version: Record previous version.
* local.mk (old_NEWS_hash): Auto-update.
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.