Date: Sun, 15 Nov 2015 13:14:57 -0500 From: Allan Jude <allanjude@freebsd.org> To: Garrett Cooper <yaneurabeya@gmail.com> Cc: freebsd-current@freebsd.org Subject: Re: libXO-ification - Why - and is it a symptom of deeper issues? Message-ID: <5648CBA1.9010300@freebsd.org> In-Reply-To: <2DF061E9-2541-4B10-9744-C49C515FF672@gmail.com> References: <0650CA79-5711-44BF-AC3F-0C5C5B6E5BD9@rdsor.ro> <5648C964.2020405@freebsd.org> <2DF061E9-2541-4B10-9744-C49C515FF672@gmail.com>
next in thread | previous in thread | raw e-mail | index | archive | help
[-- Attachment #1 --]
On 2015-11-15 13:10, Garrett Cooper wrote:
>
>> On Nov 15, 2015, at 10:05, Allan Jude <allanjude@freebsd.org> wrote:
>>
>>> On 2015-11-15 07:54, Dan Partelly wrote:
>>>
>>> Hi all,
>>>
>>> I was looking at the new facility of dumping JSON,XML from many utils in base and after some funny minutes, I couldn't stop ask myself g Ok, this is funny , but why ? g And I couldn't find a real answer. Ill outline what I think:
>>>
>>>
>>> 1. Undoubtedly, it makes base code slightly harder to understand and maintain.
>>
>> I am not sure that libxo actually makes the code any harder to
>> understand and maintain. It might actually make it slightly better.
>>
>> replacing:
>>
>> printf("%s %s %d\n", foo, bar, number);
>>
>> with:
>>
>> xo_emit("{:foo/%s} {:bar/%s} {:number/%d}", foo, bar, number);
>>
>> it not really hurting much.
>
> That's by and large true, but there are other APIs that need to be called on exit (xo_finish?) and in other scenarios where flushing, etc is needed. If you don't do that, you don't get the output you expect (which broke uptime/w several months ago..).
You can setup an atexit() call to call xo_finish automatically when the
program exits. The original changes to uptime had a few other issues,
which I fixed.
>
> Also, typos with the meta language into the xo_emit calls have bit is more than once ;(.
>
Yes, but, a typo in any change is likely to cause a problem. This is not
a problem unique to libxo.
--
Allan Jude
[-- Attachment #2 --]
-----BEGIN PGP SIGNATURE-----
Version: GnuPG v2.0.22 (MingW32)
iQIcBAEBAgAGBQJWSMuhAAoJEBmVNT4SmAt+lugP/2UPm2RiJ3zj8IHTBFmOROI8
+/GmRtX4g0jIz8JR55ZB9SQAQ8ItUVlMMT1V11zjgWGfw+DsJGVXYT3v+2D66zzg
TX4c1FaIlUR2M/xBb0j9tq5xCIc1O7TXl5PTv/hvV/KWFVWOhq2gbEr5Dq0XEIm5
GVMzx86lAdewRn3qEniX9l1MTvMJM7DdVZdH54N6kSxJOO9ays+31tAM0DiaS1Ef
DVhH+l0dU4Aeq/c5s+1yBjaj5b9X1Q3/JfGuM6i6D86/1Y04f6CEww5Cd3+jPpOr
hySx09BlfAmwQQEKxHn+tV+AdrIpKl2RXBAlpi29hj/Im8Pk4zXc7+8kzj0fFAf8
LLibWal39CkCWS6+f+/NIiBc33pJDuiJcWeoPS1VSqKpHyzgFalJmfg7hDNijGaq
dpLOpStU9c7SCbunzFTDIc+S9ZkCydLtBDR6cwRWfcbwuAp9i7Z1g3yl6yyLa3Zc
iSIrbsn+VLWsbp9W3LhhY58h1ma53jUjIzNae/dYSY+qluIiHg6qfTCnIuhrhVXJ
LK/YdS2qiCYnb8TyvZ49AUa+kq3rSLvJvZWV/mvgxq4KZs0/8rB4lrS7ngXtJu5Y
4k+Cci8z/SKzQoyscb+1Dag7Ld3fPJwaRf88pEjsmWKaLmp/pMZhxm7AhJzHhRAo
Sxe0YBSMXfe0iRE+8FsT
=zedu
-----END PGP SIGNATURE-----
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?5648CBA1.9010300>
