unofficial mirror of guile-user@gnu.org 
 help / color / mirror / Atom feed
From: Thien-Thi Nguyen <ttn@gnuvola.org>
To: guile-sources@gnu.org
Cc: guile-user@gnu.org
Subject: Mixp 0.8 available
Date: Wed, 21 Oct 2020 20:57:53 -0400	[thread overview]
Message-ID: <87zh4fvzzi.fsf@gnuvola.org> (raw)

[-- Attachment #1: Type: text/plain, Size: 7983 bytes --]

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

[-- Attachment #2: signature.asc --]
[-- Type: application/pgp-signature, Size: 219 bytes --]

                 reply	other threads:[~2020-10-22  0:57 UTC|newest]

Thread overview: [no followups] expand[flat|nested]  mbox.gz  Atom feed

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

  List information: https://www.gnu.org/software/guile/

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=87zh4fvzzi.fsf@gnuvola.org \
    --to=ttn@gnuvola.org \
    --cc=guile-sources@gnu.org \
    --cc=guile-user@gnu.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).