Page MenuHomeFreeBSD

import libxo-2.3.0
Needs ReviewPublic

Authored by phil on Tue, Sep 22, 6:18 AM.
Tags
None
Referenced Files
F174868210: D59882.id187374.diff
Tue, Oct 6, 4:02 PM
F174848453: D59882.id187373.diff
Tue, Oct 6, 12:14 PM
Unknown Object (File)
Mon, Oct 5, 7:19 PM
Unknown Object (File)
Mon, Oct 5, 7:17 PM
Unknown Object (File)
Mon, Oct 5, 11:34 AM
Unknown Object (File)
Sun, Oct 4, 3:02 AM
Unknown Object (File)
Sat, Oct 3, 3:55 AM
Unknown Object (File)
Sat, Oct 3, 3:38 AM
Subscribers

Details

Reviewers
sjg
allanjude
imp
Summary

I'm ready to import libxo-2.3.0 into freebsd and want review comments.

This diff is massive (220KLOD); you might have an easier time looking at the source on https://github.com/Juniper/libxo.git

Highlights in this delta include:

  • llvm plugins:
    • "validate": validate libxo format strings during compilation, generating errors and warnings
    • "precompile": compile format strings into binary data, avoiding run-time parsing of format strings
  • "--libxo filter=XXX" allows filtering of output using an xpath-like syntax
  • "rtoon" is a variant of "toon, allowing a reduction in tokens when feeding data to LLMs
  • support for FreeBSD's exterr infra in xo_err* functions

rtoon is an dynamically loader encoder; the filter module is also dynamically loader when needed

Test Plan

libxo contains an extensive test library. In addition, the libxo-enabled binaries are exersized by kyua.

Diff Detail

Lint
Lint Skipped
Unit
Tests Skipped

Event Timeline

phil requested review of this revision.Tue, Sep 22, 6:18 AM

Docs are on libxo.readthedocs.io (latest)

Testing can be done using LD_LIBRARY_PATH=xxxx on a local build of the git repo.

Another feature: xo-logger(1) is compatible with logger(1) but support xo_syslog(3)-style format strings for generating ng-syslog messages

Thanks,
Phil

Regenerate diffs without /tests/*, which turns out to be 75% of the size.

Another feature worth pointing out: xohtml(1) runs a commnd using the HTML encoder and then wraps the HTML with enough CSS to make it look pretty and enough JS to make it useful (table views; sort by column, hovers showing field info, xpaths, types, etc)

Thanks,
Phil

Impressive ;-)
A few nits mostly around white-space and layout.
I skipped the bits I don't grok

filter/xo_xparse.c
157

Looks a bit ragged here, is it better in real life?
At least I see same number of TABs in most cases

libxo/xo_tolower.c
65

these comments would be more useful at the end of the relevant lines above

llvm-plugins/xocc.sh.in
209

indentation (in real diff) seems inconsistent. M-x untabify or M-x tabify would at least make it consistent