Proposed task: un-named args, plus minor update to o-b.org

This commit is contained in:
Dan Davison 2009-07-22 22:30:36 -04:00
parent 97a6749e35
commit 4c2faf86c0
1 changed files with 39 additions and 15 deletions

View File

@ -388,7 +388,8 @@ org-mode core
python. I bet ruby does too. Maybe more of an issue for functional python. I bet ruby does too. Maybe more of an issue for functional
style; in my proposed scripting style the error just gets dumped to style; in my proposed scripting style the error just gets dumped to
the org buffer and the user is thus alerted. the org buffer and the user is thus alerted.
** TODO figure out how to handle graphic output ** STARTED figure out how to handle graphic output
This is listed under [[* graphical output][graphical output]] in out objectives. This is listed under [[* graphical output][graphical output]] in out objectives.
This should take advantage of the =:results file= option, and This should take advantage of the =:results file= option, and
@ -2283,7 +2284,7 @@ plot data using 1:2 with lines
(see [[* file result types][file result types]]) (see [[* file result types][file result types]])
* Bugs [25/36] * Bugs [24/37]
** TODO allow srcname to omit function call parentheses ** TODO allow srcname to omit function call parentheses
Someone needs to revisit those regexps. Is there an argument for Someone needs to revisit those regexps. Is there an argument for
moving some of the regexps used to match function calls into moving some of the regexps used to match function calls into
@ -2442,6 +2443,22 @@ for example
#+resname: this-doesn't-match-orgtbl #+resname: this-doesn't-match-orgtbl
** PROPOSED allow un-named arguments
#+srcname: f(x)
#+begin_src python
x
#+end_src
#+lob: f(5)
## produces no output
It's not essential but would be nice for this to work. To do it
properly, would mean that we'd have to specify rules for how a string
of supplied arguments (some possibly named) interact with the
arguments in the definition (some possibly with defaults) to give
values to the variables in the funbction body.
** PROPOSED external shell execution can't isolate return values ** PROPOSED external shell execution can't isolate return values
I have no idea how to do this as of yet. The result is that when I have no idea how to do this as of yet. The result is that when
shell functions are run w/o a session there is no difference between shell functions are run w/o a session there is no difference between
@ -2472,7 +2489,7 @@ the same for the other languages. [Dan]
** TODO LoB is not populated on startup ** TODO LoB is not populated on startup
org-babel-library-of-babel is nil for me on startup. I have to org-babel-library-of-babel is nil for me on startup. I have to
evaluate the [[file:lisp/org-babel-lob.el::][org-babel-lob-ingest]] line manually. evaluate the [[file:lisp/org-babel-lob.el::][org-babel-lob-ingest]] line manually.
** DONE Fix nested evaluation ** TODO Fix nested evaluation and default args
The current parser / evaluator fails with greater levels of nested The current parser / evaluator fails with greater levels of nested
function block calls (example below). function block calls (example below).
@ -2636,7 +2653,6 @@ a+b
#+resname: adder1 #+resname: adder1
: 30 : 30
****** DONE Rely on defaults ****** DONE Rely on defaults
#+lob: adder1() #+lob: adder1()
@ -2654,9 +2670,10 @@ a+b
#+lob: adder1(a=0) #+lob: adder1(a=0)
#+resname: adder1(a=0) #+resname: adder1(a=0)
## should be 10
: 20 : 20
## should be 20
#+lob: adder1(b=0) #+lob: adder1(b=0)
#+resname: adder1(b=0) #+resname: adder1(b=0)
@ -2667,9 +2684,8 @@ a+b
#+lob: adder1(a=1,b=2) #+lob: adder1(a=1,b=2)
#+resname: adder1(a=1,b=2) #+resname: adder1(a=1,b=2)
## should be 3
: 3
: 3
**** One arg lacks default in definition **** One arg lacks default in definition
#+srcname: adder2(a=10,b) #+srcname: adder2(a=10,b)
#+begin_src python #+begin_src python
@ -2703,6 +2719,7 @@ more flexible to allow the source block language to handle the error.
#+resname: adder2(b=1) #+resname: adder2(b=1)
: 11 : 11
## should be 11 ## should be 11
## OK ## OK
@ -2711,6 +2728,7 @@ more flexible to allow the source block language to handle the error.
#+resname: adder2(a=1,b=2) #+resname: adder2(a=1,b=2)
: 3 : 3
## should be 3 ## should be 3
*** Example that fails *** Example that fails
@ -2725,26 +2743,32 @@ a+b
: 99 : 99
#+srcname: one() #+srcname: one()
#+begin_src python :results silent #+begin_src python
2 1
#+end_src #+end_src
#+resname: one
: 1
#+srcname: level-one-nesting
#+srcname: level-one-nesting()
#+begin_src python :var arg=adder(a=one(),b=one()) #+begin_src python :var arg=adder(a=one(),b=one())
arg arg
#+end_src #+end_src
#+resname: #+resname: level-one-nesting
: 4 : 4
#+srcname: level-one-nesting
#+srcname: level-one-nesting()
#+begin_src python :var arg=adder(a=adder(a=one(),b=one()),b=adder(a=one(),b=one())) #+begin_src python :var arg=adder(a=adder(a=one(),b=one()),b=adder(a=one(),b=one()))
arg arg
#+end_src #+end_src
#+resname: #+resname:
: 99 : 12
*** DONE deeply nested arguments still fails *** DONE deeply nested arguments still fails
@ -2754,9 +2778,9 @@ arg
#+end_src #+end_src
#+resname: #+resname:
: 8 : 4
results in this error **** Used to result in this error
: supplied params=nil : supplied params=nil
: new-refere="adder", new-referent="a=adder(a=one(),b=one()),b=adder(a=one(),b=one())" : new-refere="adder", new-referent="a=adder(a=one(),b=one()),b=adder(a=one(),b=one())"
: args=((:var . "a=adder(a=one()") (:var . "b=one())") (:var . "b=adder(a=one()") (:var . "b=one())")) : args=((:var . "a=adder(a=one()") (:var . "b=one())") (:var . "b=adder(a=one()") (:var . "b=one())"))