wireproto: syntax for encoding CBOR into frames
We just vendored a library for encoding and decoding the CBOR
data format. While the intent of that vendor was to support state
files, CBOR is really a nice data format. It is extensible and
compact.
I've been feeling dirty inventing my own data formats for
frame payloads. While custom formats can always beat out a generic
format, there is a cost to be paid in terms of implementation,
comprehension, etc. CBOR is compact enough that I'm not too
worried about efficiency loss. I think the benefits of using
a standardized format outweigh rolling our own formats. So
I plan to make heavy use of CBOR in the wire protocol going
forward.
This commit introduces support for encoding CBOR data in frame
payloads to our function to make a frame from a human string.
We do need to employ some low-level Python code in order to
evaluate a string as a Python expression. But other than that,
this should hopefully be pretty straightforward.
Unit tests for this function have been added.
Differential Revision: https://phab.mercurial-scm.org/D2948
<?xml version="1.0" encoding="utf-8"?>
<Wix xmlns="http://schemas.microsoft.com/wix/2006/wi">
<?include defines.wxi ?>
<?define hglocales =
da;de;el;fr;it;ja;pt_BR;ro;ru;sv;zh_CN;zh_TW
?>
<Fragment>
<ComponentGroup Id="localeFolder">
<?foreach LOC in $(var.hglocales) ?>
<ComponentRef Id="hg.locale.$(var.LOC)"/>
<?endforeach?>
</ComponentGroup>
</Fragment>
<Fragment>
<DirectoryRef Id="INSTALLDIR">
<Directory Id="localedir" Name="locale" FileSource="$(var.SourceDir)">
<?foreach LOC in $(var.hglocales) ?>
<Directory Id="hg.locale.$(var.LOC)" Name="$(var.LOC)">
<Directory Id="hg.locale.$(var.LOC).LC_MESSAGES" Name="LC_MESSAGES">
<Component Id="hg.locale.$(var.LOC)" Guid="*" Win64='$(var.IsX64)'>
<File Id="hg.mo.$(var.LOC)" Name="hg.mo" KeyPath="yes" />
</Component>
</Directory>
</Directory>
<?endforeach?>
</Directory>
</DirectoryRef>
</Fragment>
</Wix>