<commit_before>bhyveucl
========

Script for starting bhyve instances based on a 
[libUCL](https://github.com/vstakhov/libucl/) config file

The tools to work with UCL from the command line is very immature, so initial
versions of this script used [jq](http://stedolan.github.io/jq/) to parse JSON
instead. See the jq branch for the old code. Generalizing the script to be
compatible with both tools is not my goal, but the old version may be useful
as a reference.

libUCL is JSON compatible, so it can read JSON config files, the advantage
to libUCL is that it is less syntax sensitive, meaning a missing or additional
comma doesn't make the config file unparsable. libUCL can also read YAML, and
nginx (bind) style config syntax. It is much more 'human writable' than JSON

Allowing a trailing comma on the last item in a JSON array or object reduces
the diff as the config file changes, which is helpful for change management.

libUCL will allow better validation of the config file by enforcing a schema.

<commit_msg>Add link to uclcmd<commit_after>bhyveucl
========

Script for starting bhyve instances based on a 
[libUCL](https://github.com/vstakhov/libucl/) config file

The tools to work with UCL [uclcmd](https://github.com/allanjude/uclcmd) from
the command line is very immature, so initial
versions of this script used [jq](http://stedolan.github.io/jq/) to parse JSON
instead. See the jq branch for the old code. Generalizing the script to be
compatible with both tools is not my goal, but the old version may be useful
as a reference.

libUCL is JSON compatible, so it can read JSON config files, the advantage
to libUCL is that it is less syntax sensitive, meaning a missing or additional
comma doesn't make the config file unparsable. libUCL can also read YAML, and
nginx (bind) style config syntax. It is much more 'human writable' than JSON

Allowing a trailing comma on the last item in a JSON array or object reduces
the diff as the config file changes, which is helpful for change management.

libUCL will allow better validation of the config file by enforcing a schema.


{'fraction_non_alphanumeric': 0.05436337625178827, 'fraction_numerical': 0.0, 'mean_word_length': 4.407216494845361, 'pattern_counts': {'":': 0, '<': 3, '<?xml version=': 0, '>': 3, 'https://': 3, 'lorem ipsum': 0, 'www.': 0, 'xml': 0}, 'pii_count': 0, 'substrings_counts': 0, 'word_list_counts': {'cursed_substrings.json': 0, 'profanity_word_list.json': 0, 'sexual_word_list.json': 0, 'zh_pornsignals.json': 0}}
{'dir': 'git-commits-cleaned', 'id': '2510238', 'n_tokens_mistral': 582, 'n_tokens_neox': 557, 'n_words': 328}