emacs-orgmode
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [O] [BABEL] BUG Re: Omitting try/catch blocks from tangled R code?


From: Rainer M Krug
Subject: Re: [O] [BABEL] BUG Re: Omitting try/catch blocks from tangled R code?
Date: Tue, 25 Mar 2014 10:37:24 +0100
User-agent: Gnus/5.13 (Gnus v5.13) Emacs/24.3 (darwin)

Eric Schulte <address@hidden> writes:

> Rainer M Krug <address@hidden> writes:
>
>> Eric Schulte <address@hidden> writes:
>>
>>> Rainer M Krug <address@hidden> writes:
>>>
>>>> Eric Schulte <address@hidden> writes:
>>>>
>>>>> Charles Berry <address@hidden> writes:
>>>>>
>>>>>> John Hendy <jw.hendy <at> gmail.com> writes:
>>>>>>
>>>>>> [deleted]
>>>>>>> >
>>>>>>> > I think the default behavior should be reverted, as tangling and
>>>>>>> > exporting are two different things. When I tangle, I want to see the
>>>>>>> > code blocks as they are in the org document (with possible variables 
>>>>>>> > and
>>>>>>> > expansions) but not to create files where I do not put it explicitly
>>>>>>> > into a code block. These wrappers have nothing to do with the code, 
>>>>>>> > and
>>>>>>> > are only there for the exported engine. So I would either revert to 
>>>>>>> > the
>>>>>>> > original behavior, or, introduce a new header argument,
>>>>>>> > e.g. :include-wrappers, which would, if set to t, include the export
>>>>>>> > wrappers in the tangled file. This might be useful for debugging
>>>>>>> > exporting of code block results, but not for general tangling.
>>>>>>> 
>>>>>>> Thanks for chiming in. This was my gut reaction to the default
>>>>>>> behavior. I guess we're still only a sample size of 2, but
>>>>>>> intuitively, I would think that tangling would be a separate beast in
>>>>>>> most cases from exporting. Just to have it on the record, if I tangle,
>>>>>>> it's usually to take the code I've used in something like a Beamer
>>>>>>> presentation or document and combine it into a single .R file so
>>>>>>> someone can run it without needing Org-mode.
>>>>>>
>>>>>> [deleted]
>>>>>>
>>>>>> Sorry to be late to add my $0.02...
>>>>>>
>>>>>> I never want the try/catch wrappers.
>>>>>>
>>>>>> But noweb is indispensable.
>>>>>>
>>>>>> I use noweb a lot to organize and collect blocks. In some cases, I export
>>>>>> them and in others I just tangle them.
>>>>>>
>>>>>> I hope that the revised code will allow me to turn off try/catch wrapping
>>>>>> and still be able to use noweb when tangling or exporting.
>>>>>>
>>>>>
>>>>> In addition to noweb, there are cases where variable expansion is useful
>>>>> in tangled code.
>>>>>
>>>>> The simplest option is to move things like try/catch blocks out of the
>>>>> code block expansion function, and into the execution function.  Then if
>>>>> other language present similar constructs (which we want to add to
>>>>> execution by default but never want to tangle), we can think about
>>>>> abstracting this out into some new level of code block expansion.
>>>>>
>>>>> Thoughts?
>>>>
>>>> Makes perfect sense to me, and would definitely be the better place to
>>>> add them.
>>>>
>>>> If one wants enclosing code in the tangling, there is always
>>>> the :epilogue and :prologue header arguments, and the try/catch should
>>>> be considered as internal to the execution.
>>>>
>>>
>>> Great, how's this patch work?  If it looks good I'll apply it.
>>
>> Git still puzzles me a lot... If you tell me how I can apply this patch
>> (from emacs?) I will try it out.
>>
>
> Here are some instructions from the command line.
>
> 1. write the patch out to a file on disk, say /tmp/0001-etc...patch
>
> 2. cd into the org-mode directory
>
> 3. make sure you're up to date with the latest
>
>      git pull
>
> 4. apply the patch
>
>      git am /tmp/0001-etc...patch
>
> and that should do it.

OK - managed to apply the patch.

Using 

Org-mode version 8.2.5h (release_8.2.5h-846-geb806d @ 
/Users/rainerkrug/.emacs.d/org-mode/lisp/)

updated this morning, I get the following error:

,----
| Debugger entered--Lisp error: (wrong-type-argument sequencep 67)
|   mapconcat(identity "COLUMNS <- 
read.table(\"/var/folders/50/wcr5bjwn75q595n6x82gxj280000gn/T/babel-21363l1U/R-import-21363S9b\",\n
                      header=TRUE,\n                      row.names=1,\n        
              sep=\"\\t\",\n                      as.is=TRUE)\nCOLS_TO_EVAL <- 
read.table(\"/var/folders/50/wcr5bjwn75q595n6x82gxj280000gn/T/babel-21363l1U/R-import-21363fHi\",\n
                      header=TRUE,\n                      row.names=1,\n        
              sep=\"\\t\",\n                      as.is=TRUE)\nALLSPECIES <- 
read.table(\"/var/folders/50/wcr5bjwn75q595n6x82gxj280000gn/T/babel-21363l1U/R-import-21363sRo\",\n
                      header=TRUE,\n                      row.names=1,\n        
              sep=\"\\t\",\n                      as.is=TRUE)\nSPECIES <- 
read.table(\"/var/folders/50/wcr5bjwn75q595n6x82gxj280000gn/T/babel-21363l1U/R-import-213635bu\",\n
                      header=TRUE,\n                      row.names=1,\n        
              sep=\"\\t\",\n                      as.is=TRUE)\nYEARS <- 
read.table(\"/var/folders/50/wcr5bjwn75q595n6x82gxj280000gn/T/babel-21363l1U/R-import-21363Gm0\",\n
                      header=TRUE,\n                      row.names=1,\n        
              sep=\"\\t\",\n                      as.is=TRUE)\nPRESENT <- 
2008\nMINEFFORT <- 3\nPROPTRAIN <- 0.6\nRNGSEED <- 13\nRNGKIND <- 
\"Mersenne-Twister\"\nRNGNORMALKIND <- \"Inversion\"\nREFGRID <- 
\"./refGrid_8km.rds\"\nIFN <- 
\"./__BOX__/IFN/DB_IFN/rds/tabplot.rds\"\nIFNCOUNT <- 
\"./__BOX__/IFN/DB_IFN/rdsRasterized/tabplot.count.8km.rds\"\nIFNMEAN <- 
\"./__BOX__/IFN/DB_IFN/rdsRasterized/tabplot.mean.8km.rds\"\nIFNPRES <- 
\"./__BOX__/IFN/DB_IFN/rdsRasterized/tabplot.pres.8km.rds\"\nIFNSD <- 
\"./__BOX__/IFN/DB_IFN/rdsRasterized/tabplot.sd.8km.rds\"\nIFNTABTREE <- 
\"./__BOX__/IFN/DB_IFN/rds/tabtree.rds\"\ndata.sources <- 
list.files(\"./data\", pattern=\"*.rda$\", full.names=TRUE)\nR.sources <- 
list.files(\"./R\", pattern=\"*.R$\", full.names=TRUE)\ncat(\"Loading 
Data\\n\")\nas.vector( sapply( data.sources, load) )\ncat(\"\\nSourcing R 
files\\n\")\nsapply( R.sources, source)" "\n")
|   org-babel-execute:R("data.sources <- list.files(\"./data\", 
pattern=\"*.rda$\", full.names=TRUE)\nR.sources <- list.files(\"./R\", 
pattern=\"*.R$\", full.names=TRUE)\ncat(\"Loading Data\\n\")\nas.vector( 
sapply( data.sources, load) )\ncat(\"\\nSourcing R files\\n\")\nsapply( 
R.sources, source)" ((:comments . "link") (:shebang . "") (:cache . "no") 
(:padline . "yes") (:noweb . "no") (:tangle . "yes") (:exports . "both") 
(:results . "replace output") (:var COLUMNS ("annee" "Year of simulation") 
("ipoints_Qdiv" "Point Number (also refer to number of the climatic input 
file)") ("iespece" "species number (4==>Beech; 3:Oak)") ("scenario" "Type of 
forest management (no matter)") ("climat" "Type of climate (no matter)") 
("RUsolinit" "Soil water Holding Capacity of the point (mm)") ("PByC" "gross 
photosynthesis (yearly, gC/m²/year)") ("PNyC" "Net photosynthesis, (PByC - leaf 
Respiration) (gC/m²/year)") ("NPPyC" "Net primary productivity, (gC/m²/year)") 
("ETRy" "Evapotranspiration of stand (mm/year)") ("age_peup" "Age at the end of 
the revolution") ("RVy" "total respiration of living tissue") ("DBBVy" 
"aboveground annualm growth (gC/m²/year)") ("RMTVy" "maintenance respiration of 
stems (gC/m²/year)") ("RMBRy" "maintenance respiration of branches 
(gC/m²/year)") ("Rtoty" "total heterotrophic respiration (gC/m²/year) (SOIL)") 
("levelstress_2" "indices of water stress based on stomatal conductance") ("Ta" 
"Annual Temperature (°C) (do not use problem)") ("PRI" "Rain (mm) (do not use 
problem)") ("LMAX" "Leaf Area Index") ("RVCy" "Growth respiration of living 
tissue") ("RVMy" "Maintenance respiration of all living tissue") ("DBSSy" 
"annual storage growth (gc/m²/year)") ("DBRFy" "annual fine roots growth 
(gC/m²/year)") ("LambX" "X co,ordinates in Lamberts Zone II (EPSG 27572)") 
("LambY" "Y co,ordinates in Lamberts Zone II (EPSG 27572)") ("Altitude" 
"Elevation(m)") ("coupebb" "exported biomass through cutting (gC/m²)") ("bbois" 
"wood biomass of the stand (gC/m²)")) (:var COLS_TO_EVAL ("NPPyC" "FALSE") 
("DBBVy" "TRUE") ("DBRFy" "FALSE") ("DBSSy" "FALSE") ("levelstress_2" "TRUE")) 
(:var ALLSPECIES ("Quercus robur" 1 "quercus_robur" "") ("Quercus peatrea" 2 
"quercus_peatrea" "") ("Quercus pubescens" 3 "quercus_pubescens" "") ("Fagus 
sylvatica" 4 "fagus_sylvatica" "") ("Carpinus betulus" 5 "carpinus_betulus" "") 
("Other broadleaf species" 6 "other_broadleaf_species" "") ("Picae abies" 7 
"picae_abies" "") ("Abies alba" 8 "abies_alba" "") ("Pinus maritima" 9 
"pinus_maritima" "") ("Pinus sylvestris" 10 "pinus_sylvestris" "") 
("pseudotsuga meniezi" 11 "pseudotsuga_meniezi" "") ("Other coniferous species" 
12 "other_coniferous_species" "")) (:var SPECIES ("Fagus sylvatica" "fagus" 4 
"fagus_sylvatica" "red") ("Quercus robur" "quercus" 3 "quercus_robur" "green")) 
(:var YEARS (1990) (2000)) (:var PRESENT . 2008) (:var MINEFFORT . 3) (:var 
PROPTRAIN . 0.6) (:var RNGSEED . 13) (:var RNGKIND . "Mersenne-Twister") (:var 
RNGNORMALKIND . "Inversion") (:var REFGRID . "./refGrid_8km.rds") (:var IFN . 
"./__BOX__/IFN/DB_IFN/rds/tabplot.rds") (:var IFNCOUNT . 
"./__BOX__/IFN/DB_IFN/rdsRasterized/tabplot.count.8km.rds") (:var IFNMEAN . 
"./__BOX__/IFN/DB_IFN/rdsRasterized/tabplot.mean.8km.rds") (:var IFNPRES . 
"./__BOX__/IFN/DB_IFN/rdsRasterized/tabplot.pres.8km.rds") (:var IFNSD . 
"./__BOX__/IFN/DB_IFN/rdsRasterized/tabplot.sd.8km.rds") (:var IFNTABTREE . 
"./__BOX__/IFN/DB_IFN/rds/tabtree.rds") (:hlines . "no") (:colnames . "yes") 
(:mkdirp . "yes") (:no-expand . "TRUE") (:rownames . "yes") (:session . 
"*R_MOBILIS*") (:tangle-mode . 292) (:result-type . output) (:result-params 
"output" "replace") (:rowname-names (COLUMNS "annee" "ipoints_Qdiv" "iespece" 
"scenario" "climat" "RUsolinit" "PByC" "PNyC" "NPPyC" "ETRy" "age_peup" "RVy" 
"DBBVy" "RMTVy" "RMBRy" "Rtoty" "levelstress_2" "Ta" "PRI" "LMAX" "RVCy" "RVMy" 
"DBSSy" "DBRFy" "LambX" "LambY" "Altitude" "coupebb" "bbois") (COLS_TO_EVAL 1 2 
3 4 5) (ALLSPECIES 1 2 3 4 5 6 7 8 9 10 11 12) (SPECIES "fagus" "quercus") 
(YEARS 1 2)) (:colname-names (COLUMNS "" "name" "description") (COLS_TO_EVAL "" 
"name" "usable") (ALLSPECIES "" "fullName" "iespece" "IFNName" "color") 
(SPECIES "" "fullName" "shortName" "iespece" "IFNName" "color") (YEARS "" 
"year"))))
|   org-babel-execute-src-block(nil)
|   org-babel-execute-buffer(nil)
|   org-babel-execute-subtree(nil)
|   call-interactively(org-babel-execute-subtree nil nil)
`----

Cheers,

Rainer

>
> Best,
>
>>
>> Thanks,
>>
>> Rainer
>>
>>>
>>> Thanks,

-- 
Rainer M. Krug
email: Rainer<at>krugs<dot>de
PGP: 0x0F52F982

Attachment: pgpLTl__8E4P3.pgp
Description: PGP signature


reply via email to

[Prev in Thread] Current Thread [Next in Thread]