28-applydefine 1.31 KB
Newer Older
Radford Neal's avatar
Radford Neal committed
1 2
Modifications to do_set for complex assignments, replacing the
old applydefine function (which is kept around for comparison).
3 4 5 6

Also, added a codePromises option for deparse, and NA option for
evaluate in dump, which goes with these being needed for better
error display in the new scheme.
7

8 9
Make deparsing for errors use the new codePromises option.  Changed
all the primitive replacement functions (eg, length<-, environment<-,
10 11 12 13 14 15 16 17 18
[<-, [[<-, $<-) to use errorcall, and otherwise rationalized error
handling in various places.  Modified "try" and "traceback" to use 
the codePromises option for deparsing.  Note that this improves
traceback output for errors like the following:

  `f<-` <- function (x,value) x[1,1] <- value
  a<-1
  f(a)<-rep(3,100)
  traceback()
19 20 21

Updated the saved output of reg-tests-2.Rout and reg-tests-1b.Rout
to show new error messages.
Radford Neal's avatar
Radford Neal committed
22 23 24 25

Created a new test set, assignperf.R, which tests whether complex
assignments avoid duplication when they should (and incidently does
some correctness tests).
26 27 28 29

Makes variable lookup and creation return (sometimes) the binding
cell used, in R_binding_cell, so that short-cuts can sometimes be
taken.
30 31 32

Fixes a latent bug in byte-code interpreter activated by presence
of promises with NAMEDCNT == 1.  Should also speed it up a bit.
33 34

This mod also has some general updates to NEWS.Rd.