libxo-2.1.0
Big features:
- Set phases on "overload": clear all open issues and all pull requests
- Improve xohtml in style and functionality
- Add xocc, a wrapper for cc with the llvm-plugins
Minor features:
- Add "first-cap" field modifier
- Add "integer size" info
- Add --group, --grouping, and -G options and a section on "integer grouping"
- Add SPDX id
- Add new "J" path to extended flags, and the first flag "N", so "%JNs" turns "str" into 'str ?: ""', saving the world much agony
- Add xocc
- Warning for empty encoding format strings
- add "%u" for anchors
- add "units" to XOPTS
- validate: add "use instead" message for {:d/XX} fields
- add +xo_set_no_cache() (to not use the cache)
- xo-logger(1), a plug compatible replacement for logger(1), sort of
- add int-groupings to xo
- add lint flag
- add no-cache option
- move to new css/js files; rework options (-w/-i/-l); add "open" facility
Build issues:
Code maintenance:
- "bool" is reserved under cc23, so use "bool_val" instead
- Add "filter" dir only if LIBXO_NEED_FILTERS
- Add missing "@"s to quiet "make test"
- Add node about not using xo_field_info_t
- Add required # Read the Docs configuration file for Sphinx projects
- Add specific integer formatting code as a performance optimization
- handle quotes in predicates correctly
- Discard way-out-of-date jquery files for our own modern fire files
- Fix annoying bug in format string due to xo_xparse_warn not using XO_PRINTFLIKE
- Handle "@**@"; allow display-only value fields to not have a tag(content) without geting a lint error
- Make EXTRA_FMTS (-X) to avoid using the .fmts files
- Make my own xo_string.h to hold the agony of linux string.h
- Move xo_format_t and xo_field_info_t to xo_format.h
- The XPath grammar uses byacc extensions (reentrant parser exposing yystate and byacc-generated tables) that GNU bison does not provide. Drop the misleading 'bison -y' fallback and fail configure clearly when byacc is unavailable or the detected yacc is bison.
- Use ".sh" extension for libxo-config.sh.in
- Use "no" instead of "none" to fix a bug w/ --without- option
- For data-* attributes, use xo_data_escape_attr(), which handles quotes in attributes
- add "top-10" benchmark
- add exemptions to xo_sibling_check so "error" isn't reported
- add magic C++ voodoo, which C++ doesn't seem to figure out itself
- add xo_log_set_* setter functions for networking (needed by xo_logger)
- add xo_should_update_columns() test before updating columns to ensure that we're working in xo_data, not color/predicate/xpath/etc
- added data-ident="xxx"' to s
- avoid run-off-end-of-string bug
- build: check availability of <sys/queue.h>
- configure: detect gettext in libc and make msgfmt conditional
- configure: require byacc for the XPath filter parser
- deprecate "retain", and etext and other related bits; clear it from documentation
- detect HAVE_CLANG
- have "make test" be more quiet
- llvm/llvm-project#143653 changed how to handle type names; repair this
- implement the networking bits needed by xo-logger for compatibility with logger(1)
- in llvm22, the include path for a plugin file changed; repair the damage
- move to nm to reduce fragility in "did precompile work" check
- move to precompiled xo_fspec_t entries
- remove xo_discarding_output.3 from the source tree
- rename XFF_NO_QUOTE; add XFF_NO_UNESCAPE and XFF_UNITS_ATTR
- use isblank() for xo_trim_ws()
Docs:
- dag-erling #93: Clean up manual pages
- Document {i:} (int-group) modifier
- add docs for "format" "{F:}" role
- add documentation for the llvm plugins (plugins.rst)
- add escape-square and escape-square docs
- add int-group and lint docs
- add xocc.1 man page
- drop OXTRADOC
Lots of merges:
- Merge branch 'chenrui333-linux-build-fixes'
- Merge branch 'concussious-libxo.3'
- Merge branch 'concussious-main'
- Merge branch 'dag-erling-des/man-cleanup'
- Merge branch 'des/man-cleanup' of https://github.com/dag-erling/libxo into dag-erling-des/man-cleanup
- Merge branch 'e-kwsm-gha'
- Merge branch 'e-kwsm-sys/queue.h'
- Merge branch 'gha' of https://github.com/e-kwsm/libxo into e-kwsm-gha
- Merge branch 'libxo.3' of https://github.com/concussious/libxo into concussious-libxo.3
- Merge branch 'main' of https://github.com/concussious/libxo into concussious-main
- Merge branch 'sys/queue.h' of https://github.com/e-kwsm/libxo into e-kwsm-sys/queue.h