The hardware and bandwidth for this mirror is donated by dogado GmbH, the Webhosting and Full Service-Cloud Provider. Check out our Wordpress Tutorial.
If you wish to report a bug, or if you are interested in having us mirror your free-software or open-source project, please feel free to contact us at mirror[@]dogado.de.
filearray_load only treats files named
<n>.farr as partitionsparallel, callr or mirai
workers, or several applications) can write to one array without losing
each other’s data: sub-assignment (x[...] <- value),
fill_partition, initialize_partition,
set_partition, fmap,
fmap_element_wise and filearray_bind wait
while another process holds one of their partitions. Reading takes no
locks, except that functions that must first create missing partitions
(such as max or sum) lock the partitions they
createlock_partition(parts, timeout) and
unlock_partition(parts) methods to hold partitions over
several operations (for example to check whether a partition has been
computed and write it only if not); lock_partition waits
and retries until the partitions are free or timeout
seconds have passed.filearray.lock in the array directory, released by the
operating system when a process exits.
options(filearray.lock = FALSE) (environment variable
FILEARRAY_LOCK) turns off automatic locking;
options(filearray.lock.timeout = <seconds>)
(FILEARRAY_LOCK_TIMEOUT) limits how long writes wait, by
default without limitfmap stops when the mapping function raises an error or
is interrupted, instead of warning “cannot finish map” and returning a
partly written resultdelete() releases the locks the session holds on the
array before removing itwith_filelock(expr, lockfile, timeout, on_unsupported) to
evaluate code while holding an exclusive lock on any lock file, so that
only one R session at a time runs it; other sessions wait. It is not
tied to file arrays, so other packages can use it.
on_unsupported chooses what happens when the lock cannot be
taken: warn (default), stop, or ignorefilearray.lock.timeout option or
FILEARRAY_LOCK_TIMEOUT value warns once and is ignored
instead of stopping every writemapreduce (and so sum,
max, min, range and
fwhich) reading only the first slice of every partition
after the first when partition_size is greater than 1,
which gave wrong results and wrong fwhich indicesfmap2 reports the error raised by the mapping function
instead of “Unknown error.”fmap, fmap2 and mapreduce now
reach the caller unchanged on Linux builds that compile packages with
libc++ while R itself loads libstdc++ (for
example through ICU). Before, they arrived as “c++ exception (unknown
reason)” and could corrupt memory and crash the R sessionas_filearray takes RAVE file array
proxyASAN issue that may cause run-time error: signed
integer overflow: 9223372036854775807 + 1 cannot be represented in type
int64_t (load.cpp:636:51)NA propagation in complex array
collapse: NaN == NaN is always
FALSE per IEEE 754, so NA detection now uses
ISNAN() instead of == NA_REAL. Also added a
missing “result already NA” short-circuit guard matching
the non-complex path.x[] failure on R-devel
(>= 4.6.0): replaced
tryCatch({ ...elt(1) }) in fa_subset1 with
check_missing_dots(), which correctly detects a missing
first argument without relying on the error-throwing behavior of
...elt() that changed in R-devel.Rf_findVarInFrame (removed in R
4.5.0) with a compatibility wrapper farr_findVarInFrame
that uses R_existsVarInFrame + R_getVarEx on R
>= 4.5.0 and falls back to Rf_findVarInFrame on older
R.SEXP variables flagged by
rchk: result in
test_farr_findVarInFrame_, dots in
check_missing_dots, and dims in
dropDimension.audo_set_headers to function
filearray_load_or_create to avoid automatically setting
headers, with default being TRUE for compatibility
concernsCRAN check issue brought by testthat
update, which requires bit64 when checking
int64 arrays. Added bit64 to
Suggests field to mitigate this check errorC++ errors are not correctly thrown
due to a recent Rcpp update. This bug may cause erroneous
code to execute ignoring try-catch statement and imbalanced protecting
stacks (fwhich, mapreduce)subsetAssign to assign when value length is 1
(thanks @talegari issue #9)fwhich function with functional
val input and options to include corresponding values as
part of return (thanks @talegari issue
#10)mapreduce bug when partition length is way larger
than the buffer size, causing buffer to stop updatingC++ issues, such as unused buffer
allocation in subset-assign, and min_ offset in
sub_vec_range. These issues are not considered bugs since
they don’t affect the results, but the performance is slightly increased
after fix.dipsaus with more updated
ravetools in the vignette performance profilingc++11 from system requirement and
MakevarsTinyThreads instead of OpenMP to get
parallel working on OSXas_filearray method, and support optional
floatfmap issues, using better guesses for default
.input_sizeFARR_subset_sequential is usedfastmap to avoid environment look-upfa_eval_ops allows dimension names2^20 in single
partitionendian issue on big-endian
platformsfmap, fmap2. The bug has been fixed and passed
valgrind memory check.subset function environment not resolved
correctly when using formulafilearray_load_or_create as an alternative to
filearray_checkload by automatically replace existing
obsolete array files if the headers, dimensions, or data types don’t
match. Also on_missing argument is provided to allow array
initialization if new array is created.meta fileWindows when partition
sizes are 0filearray_checkload to
validate headerdimnames are setC++ codefilearray_bind can use cache if the header signatures
agreefilearray_bind can choose to force overwritedigest to Importsflush in saving data to let system decide when
to flush to hard driveR CMD check is
detectedOpenMP flag in the MakeVarssegfaultscomplex and float data
typesdimnames to be setsubset to subset using
dimnamesREADME.mdcollapse to calculate marginal summation with
little memory overheadfmap, fmap2 to apply functions to
one or multiple file arrays with little memory overhead (also very
fast)rchkNEWS.md file to track changes to the
package.These binaries (installable software) and packages are in development.
They may not be fully stable and should be used with caution. We make no claims about them.
Health stats visible at Monitor.