File: NEWS

package info (click to toggle)
r-cran-globals 0.12.4-1
  • links: PTS, VCS
  • area: main
  • in suites: bullseye, buster, sid
  • size: 248 kB
  • sloc: sh: 14; makefile: 2
file content (300 lines) | stat: -rw-r--r-- 7,615 bytes parent folder | download
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
Package: globals
================

Version: 0.12.4 [2018-10-11]
 
BUG FIXES:

 * globalsOf() could produce "Error in vapply(where, FUN = envname, 
   FUN.VALUE = NA_character_, USE.NAMES = FALSE) : values must be length 1,
   but FUN(X[[...]]) result is length ...".  This was because the internal
   envname(env) did not always handle when class(env) != "environment".
   

Version: 0.12.3 [2018-09-16]

NEW FEATURES:

  * findGlobals(), globalsOf(), and packagesOf() no longer return elements
    sorted by name.
    
BUG FIXES:
  
  * globals::findGlobals() would not identify 'a' as a global in expressions
    of type 'a[1] = ...' and 'names(a) = ...' although it did for
    'a[1] <- ...' and 'names(a) <- ...'.


Version: 0.12.2 [2018-08-25]

PERFORMANCE:

  * cleanup() for Globals should now be much faster. Previously, it could be
    very slow the first time it was called in a fresh R session, especially
    if the user had a large number of packages installed and/or the package
    libraries were on slow drives.

DOCUMENTAITON:

  * Added help for globals::findGlobals().
  
BUG FIXES:

  * globals::findGlobals(x), where 'x' is a list, iterated over 'x' incorrectly
    assuming no method dispatching on 'x' would take place. For instance, if
    'x' contained an fst::fst_table object, then "Error in .subset2(x, i, 
    exact = exact) : subscript out of bounds" would be produced.
    
  * globals::findGlobals() could produce a "Warning in is.na(x): is.na() 
    applied to non-(list or vector) of type 'NULL'" in R (< 3.5.0).


Version: 0.12.1 [2018-06-24]

PERFORMANCE:

  * globals::findGlobals() is now significantly faster for elements that are
    long lists with many elements of basic data types.  This is because
    elements of such basic data type cannot contain globals and can therefore
    be skipped early in the search for globals.
    

Version: 0.12.0 [2018-06-12]

NEW FEATURES:

  * Now globals::findGlobals() identifies 'a' as a global also when it is
    part of LHS expressions of type 'a[1] <- ...' and 'names(a) <- ...'.

BUG FIXES:

  * globals::findGlobals() incorrectly identified 'a' as a global in
    expression of type 'a <- pkg::a'.

  * If "..." was passed to globalsByName(names), an error would be produced
    unless it was the last entry in 'names'.


Version: 0.11.0 [2018-01-09]

NEW FEATURES:

 o Now findGlobals() identifies 'x' as a global variable in 'x <- x + 1'
   and likewise for x + 1 -> x.  Note that ditto using `<<-` and `->>`
   was already identifying 'x' as a global.

BUG FIXES:

 o findGlobals(..., trace = TRUE) now outputs only to standard error.
   Previously, some of the output went to standard output.


Version: 0.10.3 [2017-10-12]

BUG FIXES:

 o globalsOf(..., recursive = TRUE) would result in "Error in match.fun(FUN) :
   node stack overflow" if one of the globals identified was a function that
   called itself recursively (either directly or indirectly).


Version: 0.10.2 [2017-08-08]

BUG FIXES:

  * walkAST() could produce error "Cannot walk expression. Unknown object
    type '...'" for objects of type 'environment'.


Version: 0.10.1 [2017-07-01]

BUG FIXES:

  * walkAST() could produce error "Cannot walk expression. Unknown object
    type '...'" for objects of type 'list', 'expression' and 'S4'.


Version: 0.10.0 [2017-04-16]

NEW FEATURES:

  * Globals that are part of a formula are now identified.

  * findGlobals(..., trace = TRUE) will now show low-level parse information
    as the abstract syntax tree (AST) is walked.

SOFTWARE QUALITY:

  * Enabled more internal sanity checks.
  
BUG FIXES:

  * walkAST() could produce error "Cannot walk expression. Unknown object
    type 'nnn'" for expressions of type 'builtin', 'closure' and 'special'.
    

Version: 0.9.0 [2017-03-09]

NEW FEATURES:

  * Added option 'globals.debug', which when TRUE enables debugging output.
  
BUG FIXES:

  * globalsOf(..., recursive = TRUE) would in some cases scan an incorrect
    subset of already identified globals.

  * globalsOf(..., recursive = TRUE) failed to skip objects part of package
    namespaces that where defined via a local() statement.


Version: 0.8.0 [2017-01-14]

NEW FEATURES:

  * globalsOf() identifies also globals in locally defined functions.
    This can be disabled with argument recursive = FALSE.

  * findGlobals() now takes both closures (functions) and expressions.
  

Version: 0.7.2 [2016-12-28]

BUG FIXES:

  * c(x, list()) where x is a Globals object would give an error reporting
    that the list does not have named elements.
  
  
Version: 0.7.1 [2016-10-13]

NEW FEATURES:

  * Globals() and as.Globals() now accepts an empty list as input as well.

BUG FIXES:

  * walkAST(quote( function(x=NULL) 0 )) would give a sanity check error due
    to the NULL argument.  Thank you GitHub user billy34 for reporting on this.
  
  
Version: 0.7.0 [2016-09-08]

NEW FEATURES:

  * Added walkAST(), which can be used to tweak expressions.

  * Added globalsByName() for locating and retrieving a set of known global
    variables.

  * Added c(), $<-(), names(), unique() for Globals objects.

  * Improved as.Globals() for lists.
  
  
Version: 0.6.1 [2016-01-31]

NEW FEATURES:

  * Now the error message of globalsOf(..., mustExist=TRUE) when it fails to
    locate a global also gives information on the expression that is
    problematic.

BUG FIXES:

  * cleanup() for Globals did not cleanup functions in core package
    environments named 'package:<name>'.
  
  
Version: 0.6.0 [2015-12-12]

NEW FEATURES:

  * findGlobals() is updated to handle the case where a local variable is
    *verwriting a global one with the same name, e.g. { a <- b; b <- 1 }.
    Now 'b' is correctly identified as a global object.  Previously it would
    have been missed.  For backward compatibility, the previous behavior can
    be obtained using argument method="conservative".
  
  
Version: 0.5.0 [2015-10-13]

NEW FEATURES:

  * globalsOf() now returns attribute 'where' specifying where each global
    *bject is located.

BUG FIXES:

  * cleanup() now only drops objects that are *located* in one of the "base"
    packages; previously it would also drop copies of such objects, e.g.
    FUN <- base::sample.
  
  
Version: 0.4.1 [2015-10-05]

BUG FIXES:

  * globalsOf() failed to return global variables with value NULL.  They were
    identified but silently dropped.
  
  
Version: 0.4.0 [2015-09-12]

NEW FEATURES:

  * findGlobals() and globalsOf() gained argument 'dotdotdot'.

  
Version: 0.3.1 [2015-06-10]

  * More test coverage.
  
  
Version: 0.3.0 [2015-06-08]

NEW FEATURES:

  * Renamed getGlobals() to globalsOf().
  
  
Version: 0.2.3 [2015-06-08]

NEW FEATURES:

  * Added [() for Globals.

  * findGlobals() and getGlobals() gained argument 'substitute'.

  * Added cleanup(..., method="internals").
  
  
Version: 0.2.2 [2015-05-20]

NEW FEATURES:

  * Added Globals class with methods cleanup() and packagesOf().
    Added as.Globals() to coerce lists to Globals objects.
  
  
Version: 0.2.1 [2015-05-20]

NEW FEATURES:

  * getGlobals() gained argument 'mustExist' for controlling whether to give an
    error when the corresponding object for an identified global cannot be
    found or to silently drop the missing global.

  * findGlobals() and getGlobals() gained argument 'method' for controlling
    whether a "conservative" or a "liberal" algorithm for identifying true
    globals should be used.
  
  
Version: 0.2.0 [2015-05-19]

  * Moved globals function from an in-house package to this package.
  
  
Version: 0.1.0 [2015-02-07]

  * Created.