From mboxrd@z Thu Jan 1 00:00:00 1970 From: Rainer M Krug Subject: Header Arguments of Code Blocks - problems and challenges Date: Wed, 24 Sep 2014 09:52:06 +0200 Message-ID: References: <87a95pbuvs.fsf@news.tumashu-localhost.org> <87zjdpn04o.fsf@gmail.com> Mime-Version: 1.0 Content-Type: multipart/signed; boundary="==-=-="; micalg=pgp-sha1; protocol="application/pgp-signature" Return-path: Received: from eggs.gnu.org ([2001:4830:134:3::10]:39138) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1XXQlM-0002Fc-MD for emacs-orgmode@gnu.org; Fri, 26 Sep 2014 04:20:32 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1XXQlF-00060L-6Q for emacs-orgmode@gnu.org; Fri, 26 Sep 2014 04:20:24 -0400 Received: from plane.gmane.org ([80.91.229.3]:54828) by eggs.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1XXQlE-0005tb-Sj for emacs-orgmode@gnu.org; Fri, 26 Sep 2014 04:20:17 -0400 Received: from list by plane.gmane.org with local (Exim 4.69) (envelope-from ) id 1XXQhE-0001Rd-3a for emacs-orgmode@gnu.org; Fri, 26 Sep 2014 10:16:08 +0200 Received: from arn78-1-88-186-171-7.fbx.proxad.net ([88.186.171.7]) by main.gmane.org with esmtp (Gmexim 0.1 (Debian)) id 1AlnuQ-0007hv-00 for ; Fri, 26 Sep 2014 10:16:08 +0200 Received: from Rainer by arn78-1-88-186-171-7.fbx.proxad.net with local (Gmexim 0.1 (Debian)) id 1AlnuQ-0007hv-00 for ; Fri, 26 Sep 2014 10:16:08 +0200 List-Id: "General discussions about Org-mode." List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: emacs-orgmode-bounces+geo-emacs-orgmode=m.gmane.org@gnu.org Sender: emacs-orgmode-bounces+geo-emacs-orgmode=m.gmane.org@gnu.org To: emacs-orgmode@gnu.org --==-=-= Content-Type: multipart/mixed; boundary="=-=-=" --=-=-= Content-Type: text/plain Content-Transfer-Encoding: quoted-printable Hi Based on several previous posts, it seems that the use of header arguments, particularly =2D different ways of setting these (from the manual) ,---- | - System-wide header arguments:: Set global default values | - Language-specific header arguments:: Set default values by language | - Header arguments in Org mode properties:: Set default values for a bu= ffer or heading | - Language-specific header arguments in Org mode properties:: Set langu= age-specific default values for a buffer or heading | - Code block specific header arguments:: The most common way to set val= ues | - Header arguments in function calls:: The most specific level `---- =2D Inheritance of these =2D how they interact I now these as a problem of R, but I guess it is general for all languages suported in org? To make the usage of these header arguments easier, a proper outline and description is needed how header arguments for source blocks can be set and how these interact (inheritance, header-args versus header-args+ at one and on different levels, different ways of setting header arguments as above, ...). These header arguments are a *very* powerful tool and you can do many things - but you can also break things very easily. In many cases, I resort to trial and error:=20 =2D this is working,=20 =2D now I want to have that behaviour for this code block,=20 =2D normally I would do it likethis,=20 =2D not working, =2D let's try out what is working, =2D repeat from the beginning for the next change But this is far from ideal and leads to spaghetti-code type property setting which is quite fragile. I don't think is it only me who has these problems. So what could be done to remedy this? I think a few aspects should be tackeled (in no particular order): 1) a lot of information is in the manual - but spread out in many different locations / sections. The first would be to bring these sections together and to consolidate them into one section. I don't think this should go only into worg. 2) A set of simple and easily to understand examples which build on each other are needed. So starting with simple examples and expand these to complex examples. 3) These examples should be uaed as tests (maybe there are tests for this, but I am not at all familiar with the test framework of org). 4) based on these, the org code should be checked for - bugs (obviously) - inconsistencies in the approach used for header argument setting and inheritance and - possibly sugfgest to deprecate certain aspects to simplify it (but keep the flexibility which is there at the moment! 5) the property inheritance and hierarchy of different ways of setting these should be documented in a structured way.=20 To make this happen, I would suggest to get a discussion going to 1) get a few interested users who are willing to activly participate in this (There is alread one: Thanks Grant!) 2) discuss how this can be tackled 3) and then, from there, get it going. Before I end, I must thank the org developers for their hard work they have put into org - and I am sure that the header arguments framework has received quite a bit of attention. But (and please correct me if I am wrong), there is a relatively small overlap between main org developers and regular org babel users. And this is where the babel user can contributing to org, even if their elisp knowledge is not the best. OK - I hope we can geth this going and make a usefull contribution to org babel, Rainer =2D-=20 Rainer M. Krug email: Rainerkrugsde PGP: 0x0F52F982 --=-=-= Content-Type: application/pgp-signature Content-Transfer-Encoding: base64 LS0tLS1CRUdJTiBQR1AgU0lHTkFUVVJFLS0tLS0KVmVyc2lvbjogR251UEcvTWFjR1BHMiB2Mi4w LjIyIChEYXJ3aW4pCgppUUVjQkFFQkFnQUdCUUpVSW5ndUFBb0pFTnZYTng0UFV2bUN6clFIL2pk Y0xDRmpPdDBOUVM3S1dhTmVlemNnCmx1d0RWUFlENzhHVjNKSHlaTXlaQUdwR0NWd1FERldPVDJI WGFRTHpGTlI4ZHY2cnJWT3hxWlg1M3VaTnEyYjIKTEgyanZVNDkvZExraHlmbThUaUp5UWwrb0lN enVZaGNsSHJNcDN2UktYMHpnODRZSWRmV1hkYkFhcjZDV09OUApPTlV5Y3JEcXovNk8welFTalFP QUd0WGNobldjSmFFdy9IakNYWDRLZk40TUxlWTRHRWpPSzhFU2dRdFdkemdBCk9CbjlCUEg2ZVM5 Vyt1VHQ5c2YyakpyYWsreXJtM0Q0YVJYQ05ZZ3hnd0JIb2ZoMk4zdXdLTmoraFZuSnB3MW4KZlJT N2tGYU5ac3RQa3p4RDRUemxhNGUyVnp3aFU3cUNmT0tJaDFnVm9jUkc0aUtUMHM4U3VoVXlxb2ZP bnNrPQo9U3ltdgotLS0tLUVORCBQR1AgU0lHTkFUVVJFLS0tLS0= --=-=-=-- --==-=-= Content-Type: application/pgp-signature -----BEGIN PGP SIGNATURE----- Version: GnuPG/MacGPG2 v2.0.22 (Darwin) iQEcBAEBAgAGBQJUJSC6AAoJENvXNx4PUvmC444IAL7+Rls8KexcNBmKWyA/MkoA oBXLYhUZsvHHSfO1HJoClCcrEWRVa92aRV0ui36Ty3xByoXwouVZpZvEs3PX/IsL NdHsZJKiumdaX/MDfCP47eQ+xQt+WQrsVzVH5JQIHFgnlNab2KRiEo/0woeieP+2 ppq1aqLuf8M1IrHOBnAnbwLJQCLaYjBm1ssTU9kuPrN1KX22i3T3K8v2oRzexX8Z iVwnJh0jy2vikuoEy5dpCpZ5uXSU2lc/oUvBNEgdNoepIIpU1ubulzuTt1rS/okq xoQW8xIR1bsVHuZ5eYRS3/seYGx+YHquLicyTGp0nreMRT1yipPD+W9DlDFCsFo= =Hg+E -----END PGP SIGNATURE----- --==-=-=--