[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Mixp 0.8 available
From: |
Thien-Thi Nguyen |
Subject: |
Mixp 0.8 available |
Date: |
Wed, 21 Oct 2020 20:57:53 -0400 |
release notes:
Almost fully immersed in the Guile 2 world now -- oop ack!
(or rather, XML-oop, XML-ack! :-D)
[sigh, grep the 'net for Bill the Cat, you youngins...]
{anyone want to draw me a |non-infringing| logo is welcome!}
README excerpt:
Mixp is a Guile interface to expat, James Clark's XML Parser,
originally written by Thierry Bézecourt. This release of Mixp is
available under the terms of the GNU GPL v3 (or later); see COPYING.
It has been tested with Guile 1.4, 1.8, 2.0, and libexpat 2.2.6.
NEWS excerpt:
- 0.8 | 2020-10-22
- bug fix: use ‘GCMALLOC’, not ‘malloc’
Regression introduced in Mixp 0.6 (released 2012-01-25).
- backward-incompatible change in ‘(mixp utils) xml->tree’
The proc ‘(mixp utils) xml->tree’ no longer sets the
‘unparsed-entity-decl’ handler. This is in prepraration for the
eventual dropping of ‘unparsed-entity-decl’ handler everywhere.
- distribution now .tar.lz
If you have GNU tar, you can use "tar xf" and it will DTRT.
If not, you can use "lzip -dc TARBALL | tar xf -" to unpack.
- new ‘(mixp expat)’ items
- handlers ‘doctype-decl-start’, ‘doctype-decl-end’
These are called for doctype declarations: "<!DOCTYPE ...>".
- handler ‘skipped-entity’
This is called in two situations:
1. An entity reference is encountered for which no declaration
has been read *and* this is not an error.
2. An internal entity reference is read, but not expanded,
because ‘default-handler’ has been used.
- handler ‘entity-decl’
This is called for entity declarations: "<!ENTITY ...>".
- procedure ‘get-feature-list’
This returns an alist of features, some of which a corresponding
positive integer value. As a special case, the first feature is
"EXPAT_VERSION". See (info "(mixp) Expat interface").
- procedure ‘get-attribute-info’
This returns attribute offset information in the form of a 2-D
typed-array (u64), if the underlying ‘XML_GetAttributeInfo’ is
available, else ‘#f’. See (info "(mixp) Expat misc").
- procedure ‘expat-version’
This returns the Expat version in various ways.
- procedure ‘set-encoding’
This supports parser creation and setting the input encoding in
two steps, as opposed to in one step, which may be useful when
the encoding is not known at ‘parser-create’ time.
- procedures ‘stop-parser’, ‘resume-parser’
It's possible to now to "suspend" a parse, w/ these procs. See
test/x001 for example.
- procedure ‘get-parsing-status’
This is useful to confirm that a parse is suspended, and to find
out whether or not the last chunk is being processed.
- procedure ‘set-hash-salt’
Apparently, people can DoS Expat by maliciously guessing (and
poking) its internal hashing patterns. This procedure helps to
mitigate against such abuse.
- procedure ‘hget-one’
This returns the procedure set as a parser object's handler.
See (info "(mixp) Expat handlers").
- support for error codes up through Expat 2.2.1
I.e., if the underlying libexpat is 2.2.1 or later, you might
receive the error message ‘XML_ERROR_INVALID_ARGUMENT’, among
any others.
- planned retirement
Three ‘(mixp expat)’ items WILL BE REMOVED by the time of the
1.0 release of Mixp (could be a year or more, realistically
speaking). OTOH, it could be next release. Luckily, there is a
migration path for all cases. Please do so as soon as possible.
- procedure ‘geth’
This procedure returns an alist w/ all the named handlers as
keys, which may or may not be what you want. You can use new
proc ‘geth-one’ (see above) to find the same information, and
package it in a more flexible manner (alist, plist, normal list,
subset, etc).
- handler ‘unparsed-entity-decl’
This is obsoleted by the new handler ‘entity-decl’ (see above)
both in Mixp and in the underlying Expat. Be sure to avoid
specifying both at the same time, as ‘unparsed-entity-decl’ will
take precedence over ‘entity-decl’.
- alist support for ‘hset!’
Taking an alist is convenient for the implementation, but
inconvenient for the user, typically requiring ‘quasiquote’ and
abundant ‘unquote’ gymnastics. As of this release, ‘hset!’ also
takes a plist, so support for taking an alist can be deprecated.
If your code currently does:
(hset! my-parser `((element-start . ,handle-elem-start)
(element-end . ,handle-elem-end)))
you should change it to read:
(hset! my-parser
'element-start handle-elem-start
'element-end handle-elem-end)
As you can see, less hair this way.
- nice coding cookie for Guile 2
The "coding cookie" in test/x001 is now "iso-8859-1", which
should be friendlier to Guile 2.
- bug report email address changed
It is now <guile-user@gnu.org>, which should have a better
chance and higher quality of response for technical questions
than the previous one.
- doc improvements
- ‘set-base’
The type of the second arg BASE is now documented.
- ‘set-param-entity-parsing’
Proc ‘set-param-entity-parsing’ takes argument CODE, which is
now documented.
- misc upgrades
The top node now includes a detailed node listing and copyright
information for PDF output. The bug report email address is now
documented. Copying info is now presented in a standard way.
- nicer output for "make check TRACE=1"
The ‘character-data’ blocks w/ solely linefeed ("\n") are now
displayed that way instead of directly (w/ a linefeed char).
This is easier on the eyes.
- miscellaneous changes for Guile 2
This is the first release for which the development environment
is completely transitioned to Guile 2 (2.0.13, to be precise).
Lots of slogging w/ ‘GUILE_WARN_DEPRECATED=detailed’, IOW.
[Insert curmudgeonly rant, here.] If you find other warnings,
please report them as bugs.
Note, however, that we still roll w/ ‘GUILE_AUTO_COMPILE=0’, so
any problems you see w/ that aspect of Guile 2, please save for
the next release, when we plan to brave those waters sul serio.
(OTOH, it can't hurt to raise issues, as long as someone can
clear the earwax and be nudged to DTRT -- fingers crossed!)
- bootstrap/maintenance tools
upgraded:
Guile-BAUX 20200129.1051.1679aca
GNU gnulib 2020-10-19 23:37:09
GNU texinfo 6.7
GNU Automake 1.16.2
GNU Autoconf 2.69c
GNU Guile 2.0.13
as before:
(none)
tarball, sig in dir:
http://download.savannah.nongnu.org/releases/mixp/
--
Thien-Thi Nguyen -----------------------------------------------
(defun responsep (query) ; (2020) Software Libero
(pcase (context query) ; = Dissenso Etico
(`(technical ,ml) (correctp ml))
...)) 748E A0E8 1CB8 A748 9BFA
--------------------------------------- 6CE4 6703 2224 4C80 7502
signature.asc
Description: PGP signature
[Prev in Thread] |
Current Thread |
[Next in Thread] |
- Mixp 0.8 available,
Thien-Thi Nguyen <=