Eric Schulte writes: > Rainer M Krug writes: > >> Eric Schulte writes: >> >>> Rainer M Krug writes: >>> >>>> Eric Schulte writes: >>>> >>>>> Rainer M Krug writes: >>>>> >>>>>> Eric Schulte writes: >>>>>> >>>>>>> Charles Berry writes: >>>>>>> >>>>>>>> John Hendy 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: >> > > Could you provide a minimal example file generating this error? Apologies - I am still struggling with encryption...... So here is my example: --8<---------------cut here---------------start------------->8--- #+TITLE: single_to_multi #+DATE: <2013-10-15 Tue> #+AUTHOR: Rainer M. Krug #+EMAIL: Rainer@krugs.de ≈* Load R packages and data #+BEGIN_SRC R cat("Loading Data\n") #+END_SRC --8<---------------cut here---------------end--------------->8--- I am using only org loaded and R enabled. C-c C-c on the block produces the error emacs version: GNU Emacs 24.3.1 (x86_64-apple-darwin13.0.0, Carbon Version 1.6.0 AppKit 1265) of 2014-02-13 on Rainers-MacBook-Pro-2.local org version: Org-mode version 8.2.5h (release_8.2.5h-837-gb296cc @ /Users/rainerkrug/.emacs.d/org-mode/lisp/) Cheers, Rainer > > Thanks, > >> >> ,---- >> | 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, >>> > p>>> >>>> Thanks, >>>> >>>> Rainer >>>> >>>>> >>>>> Thanks, -- Rainer M. Krug email: Rainerkrugsde PGP: 0x0F52F982