From owner-soc-status@FreeBSD.ORG Mon May 26 14:34:48 2014 Return-Path: Delivered-To: soc-status@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [8.8.178.115]) (using TLSv1 with cipher ADH-AES256-SHA (256/256 bits)) (No client certificate requested) by hub.freebsd.org (Postfix) with ESMTPS id C3816FBE; Mon, 26 May 2014 14:34:48 +0000 (UTC) Received: from mx1.mail.bg (mx1.mail.bg [IPv6:2001:67c:16b8:1::2:17]) by mx1.freebsd.org (Postfix) with ESMTP id 5CC602950; Mon, 26 May 2014 14:34:48 +0000 (UTC) Received: from [10.1.1.159] (unknown [95.87.254.225]) (using TLSv1 with cipher ECDHE-RSA-AES128-SHA (128/128 bits)) (No client certificate requested) by mx1.mail.bg (Postfix) with ESMTPSA id ACA126000589; Mon, 26 May 2014 17:34:45 +0300 (EEST) DKIM-Signature: v=1; a=rsa-sha256; c=simple/simple; d=mail.bg; s=default; t=1401114885; bh=xS/oYKChpLTcGioi/3e5y/+Cs54FL4H46VFAtyQ40mo=; h=Subject:Mime-Version:Content-Type:From:In-Reply-To:Date:Cc: Content-Transfer-Encoding:Message-Id:References:To; b=SjFVWyQM6BmdKnsXgvI7Dq7pwFHuL7Z5QjTvDquVKc2aAovlXmicFVp+xZlh+4tMY 4tSw0wfvKdk8JazCZ4wIe4D1ga3jN1pR5hWmF3e4NPQmQv9NbQF92JYLDf9Ils0S6V XXWLzsNhzuC+TVdJKrhBviUnagt5jxhnJYgGk1z0= Subject: Re: [Machine readable output from userland utilities] report Mime-Version: 1.0 (Apple Message framework v1283) Content-Type: text/plain; charset=iso-8859-1 From: Zaro Korchev In-Reply-To: <4890861C-FC91-445D-AE9B-31CD5FDFD0A9@theravensnest.org> Date: Mon, 26 May 2014 17:34:41 +0300 Content-Transfer-Encoding: quoted-printable Message-Id: <15BC1D7C-B909-48DB-AB6D-FF0F0F9C2B0A@mail.bg> References: <8D1B686D-1AAA-4E07-9270-E42699110561@mail.bg> <4890861C-FC91-445D-AE9B-31CD5FDFD0A9@theravensnest.org> To: David Chisnall X-Mailer: Apple Mail (2.1283) Cc: soc-status@freebsd.org, Eitan Adler , jonathan@FreeBSD.org X-BeenThere: soc-status@freebsd.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: Summer of Code Status Reports and Discussion List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 26 May 2014 14:34:48 -0000 Hi David I removed the GPL code from the repository. I considered using libucl and libnv. The problem with libucl is that it = does not support streamed output so, after a discussion with my mentors, = I decided to implement this prototype version using YAJL. This is not a = final decision but that's what I'm using at the moment. I may use libnv soon - I just haven't had need for it yet. It has one = limitation that I'm concerned about - it does not support arrays (the = only supported composite data type is key, value pairs). Zaro Le 26 May 2014 =E0 13:34, David Chisnall a =E9crit : > Hi Zaro, >=20 > A few comments - hopefully your mentors can chime in with a bit more: >=20 > Your repo appears to contain GNU coreutils, which is not part of the = FreeBSD base system and is GPLv3 code, so for legal reasons a lot of = FreeBSD developers can't look at it and most shouldn't if they are = planning on working on any similar parts of the FreeBSD system. I = believe that the socsvn server is isolated from the main svn repository, = but putting GPLv3 code in any FreeBSD svn server can open the project to = liability, so I would ask you to remove it as soon as possible. >=20 > Second, your SOL appears to be using yajl. This project was intended = to use libucl and libnv as the human-readable and binary serialization = mechanisms, as those are already present in the base system. Have you = spent any time yet looking at them? Are there limitations in their APIs = and the structures that they can represent? >=20 > David >=20 > On 26 May 2014, at 00:09, Zaro Korchev wrote: >=20 >> This week I made a simple design for the project and implemented JSON = output for an example application. >>=20 >> I made research on several libraries that I may use for my project. I = designed a simple API for structured output. At the moment I call it SOL = (Structured Output Library). I'm open to better name suggestions :) >>=20 >> The API is in no way final. I will change it as issues arise in the = future. >>=20 >> I have a prototype version of ls that uses the API to output JSON. = There are still some issues to resolve but the modified ls is basically = working. >> The code is accessible in the GSoC 2014 repository: >> https://socsvn.freebsd.org/socsvn/soc2014/zkorchev/ >>=20 >> here are two examples: >>=20 >> ls / >> = ["COPYRIGHT","bin","boot","dev","entropy","etc","home","lib","libexec","me= dia","mnt","proc","rescue","root","sbin","sys","tmp","usr","var"] >>=20 >> ls -l / >> = [{"mode":"-r--r--r--","nlink":1,"user":"root","group":"root","size":6201,"= time":"Jan 17 = 00:41","name":"COPYRIGHT"},{"mode":"drwxr-xr-x","nlink":2,"user":"root","g= roup":"root","size":1024,"time":"Jan 17 = 00:40","name":"bin"},{"mode":"drwxr-xr-x","nlink":8,"user":"root","group":= "root","size":1024,"time":"Mar 18 = 20:42","name":"boot"},{"mode":"dr-xr-xr-x","nlink":12,"user":"root","group= ":"root","size":512,"time":"May 23 = 15:22","name":"dev"},{"mode":"-rw-------","nlink":1,"user":"root","group":= "root","size":4096,"time":"May 23 = 15:22","name":"entropy"},{"mode":"drwxr-xr-x","nlink":21,"user":"root","gr= oup":"root","size":2048,"time":"May 22 = 18:51","name":"etc"},{"mode":"lrwxr-xr-x","nlink":1,"user":"root","group":= "root","size":8,"time":"Mar 18 = 17:37","name":"home","link":"usr/home"},{"mode":"drwxr-xr-x","nlink":3,"us= er":"root","group":"root","size":1536,"time":"Jan 17 = 00:40","name":"lib"},{"mode":"drwxr-xr-x","nlink":3,"user":"root","group":= "root","size":512,"time":"Mar 18 17:28","name":"libe >> = xec"},{"mode":"drwxr-xr-x","nlink":2,"user":"root","group":"root","size":5= 12,"time":"Jan 17 = 00:39","name":"media"},{"mode":"drwxr-xr-x","nlink":2,"user":"root","group= ":"root","size":512,"time":"Jan 17 = 00:39","name":"mnt"},{"mode":"dr-xr-xr-x","nlink":2,"user":"root","group":= "root","size":512,"time":"Jan 17 = 00:39","name":"proc"},{"mode":"drwxr-xr-x","nlink":2,"user":"root","group"= :"root","size":2560,"time":"Jan 17 = 00:40","name":"rescue"},{"mode":"drwxr-xr-x","nlink":7,"user":"root","grou= p":"root","size":512,"time":"May 23 = 17:53","name":"root"},{"mode":"drwxr-xr-x","nlink":2,"user":"root","group"= :"root","size":2560,"time":"Jan 17 = 00:41","name":"sbin"},{"mode":"lrwxr-xr-x","nlink":1,"user":"root","group"= :"root","size":11,"time":"Jan 17 = 00:42","name":"sys","link":"usr/src/sys"},{"mode":"drwxrwxrwt","nlink":6,"= user":"root","group":"root","size":512,"time":"May 23 = 17:51","name":"tmp"},{"mode":"drwxr-xr-x","nlink":17,"user":"root","group"= :"root","size":512,"time":"Mar 18 17:37","name":"usr >> = "},{"mode":"drwxr-xr-x","nlink":24,"user":"root","group":"root","size":512= ,"time":"May 23 15:22","name":"var"}] >>=20 >> As I implemented this example modified version of ls, I got some = ideas about where problems can arise in the future and I got some = insight on how I can approach to solve them. >>=20 >>=20 >> Zaro >> _______________________________________________ >> soc-status@freebsd.org mailing list >> http://lists.freebsd.org/mailman/listinfo/soc-status >> To unsubscribe, send any mail to "soc-status-unsubscribe@freebsd.org" >=20 >=20