CHANGES IN VERSION 1.24
-----------------------

BUG FIXES

    o (v.1.23.1) bpvalidate() detects variables defined in parent
    environments; warns on use of global variables.

    o (v.1.23.2) bplapply() runs gc() after each evaluation of `FUN()`, so
    that workers do not accumulate excessive memory allocations (memory
    on a per-process basis is not excessive, but cluster-wise could be). See
    https://github.com/Bioconductor/BiocParallel/pull/124:x

    o (v.1.24.1) Add 'topLevelEnvironment' to list of blocked global variable
    exports to address performance regression introduced by testthat 3.0. See
    https://github.com/Bioconductor/BiocParallel/issues/127

CHANGES IN VERSION 1.22
-----------------------

USER VISIBLE CHANGES

    o (v 1.20.2) don't advance random number stream when used 'internally'.
    This behavior alters reproducibility of existing scripts relying
    (probably implicitly) on the advancing stream.
    https://github.com/Bioconductor/BiocParallel/issues/110

BUG FIXES

    o (v 1.20.1) bplapply(), bpmapply(), bpvec() propagate names on arguments
    more correctly, https://github.com/Bioconductor/BiocParallel/issues/108

CHANGES IN VERSION 1.20
-----------------------

BUG FIXES

    o (v 1.19.2) Improve efficiency of MulticoreParam() when state
    does not persist across calls to bplapply().

CHANGES IN VERSION 1.18
-----------------------

USER VISIBLE CHANGES

    o (v 1.17.6) Initial use of registered BPPARAM does not advance
    random number seed, see
    https://stat.ethz.ch/pipermail/bioc-devel/2019-January/014526.html
    
    o (v 1.17.7) Loading package does not advance random number seed, see
    https://stat.ethz.ch/pipermail/bioc-devel/2019-January/014535.html

    o (v. 1.17.7) removed deprecated functions bplasterror(),
    bpresume(), bpcatchError() and field catch.error.

    o (v. 1.17.7) Make logdir, resultdir fields of BiocParallelParam.

    o (v. 1.17.7) replaced internal use of BatchJobs:::checkDir()
    (testing existence and read / write ability of log and other
    directories) with BiocParallelParam validity check.

    o (v. 1.17.7) expose 'developer' interface, `?DeveloperInterface`

    o (v. 1.17.11) on Windows, coerce `MulticoreParam(n)` to
    `MulticoreParam(1)` == SerialParam()`

BUG FIXES

    o (v 1.17.4) port 1.16.3 (no '>' on SnowParam() worker end) and 1.16.4
    (bpRNGseed<-() accepts NULL)

    o (v 1.17.5) port 1.16.4 (bpRNGseed() can reset seed to NULL),
    1.16.5 (number of available cores defaults to 1 if cannot be
    determined).

CHANGES IN VERSION 1.16
-----------------------

NEW FEATURES

    o (v 1.15.9) BatchtoolsParam() gains resources=list() for template file
    substitution.

    o (v 1.15.12) bpexportglobals() for all BPPARAM exports global
    options (i.e., base::options()) to workers. Default TRUE.

BUG FIXES

    o (v 1.15.6) bpiterate,serial-method does not return a list() when
    REDUCE present (https://github.com/Bioconductor/BiocParallel/issues/77)

    o (v 1.15.7) bpaggregate,formula-method failed to find BPREDO
    (https://support.bioconductor.org/p/110784)

    o (v 1.15.13) bplappy,BatchtoolsParam() coerces List to list
    (https://github.com/Bioconductor/BiocParallel/issues/82)

    o (v 1.15.14) implicit loading of BiocParallel when loading a third-
    party package failed because reference class `initialize()` methods are
    not installed correctly. This bug fix results in signficant revision
    in the implementation, so that valid objects must be constructed through
    the public constructors, e.g., `BatchtoolsParam()`

    o (v 1.16.3) do not print '>' for each terminating SnowParam() worker

    o (v 1.16.4) allow bpRNGseed() to reset seed to NULL

    o (v 1.16.5) number of available cores defaults to 1 on machines
    where number of cores available cannot be determined. See
    https://github.com/Bioconductor/BiocParallel/issues/91.

CHANGES IN VERSION 1.14
-----------------------

BUG FIXES

    o (v 1.13.1) bpiterate,serial-method does not unlist the result of
    FUN before passing to REDUCE.

CHANGES IN VERSION 1.12
-----------------------

BUG FIXES

    o (v. 1.11.1) Change registered backend initialization  to first
      invocation, rather than on load.

    o (v 1.11.8) Ensure registry is initiailized before (public) use.
      Issue #65

NEW FEATURES

    o (v. 1.11.2) bpiterate() gains a progress counter.

    o (v. 1.11.5) ipclock(), etc: inter-process locks and counters

CHANGES IN VERSION 1.10
----------------------

BUG FIXES

    o (v. 1.9.6) use of logdir= no longer tries to double-close log
      file.

CHANGES IN VERSION 1.8
----------------------

BUG FIXES

    o (v. 1.7.4) Allow more than 125 MPI nodes,
      https://github.com/Bioconductor/BiocParallel/issues/55
      
NEW FEATURES

    o Throttle number of cores used on Bioconductor build systems
      (with environment variable BBS_HOME set) to 4

CHANGES IN VERSION 1.6
----------------------

NEW FEATURES

    o stop.on.error returns catchable 'remote_error'

    o bplapply() signals a 'bplist_error' when any element is an error.

    o 'bplist_error' includes an attribute 'result' containing
       computed results; when stop.on.error = FALSE, the result vector
       is parallel to (has the same geometry as) the input vector.

    o bpvec() signals a 'bpvec_error' when length(FUN(X)) != length(X)

USER-VISIBLE CHANGES

    o Rename bpslaveLoop to (S3 generic) bploop

    o bpiterate() returns values consistent with REDUCE, rather than
      wrapping in list()

    o BatchJobsParam() passes more arguments to BatchJobs'
      makeRegistry(), setConfig(), submitJobs()

BUG FIXES

    o workers=1, tasks=0 assigns all elements of X in one chunk

    o SerialParam() respects stop.on.error

    o bpmapply,ANY,* methods did not honor all arguments, particularly
      MoreArgs.

CHANGES IN VERSION 1.2.0
------------------------

NEW FEATURES

    o Add support for iterative REDUCE in .bpiterate_serial() 

    o Refactor BiocParallelParam class:
      - add 'log', 'tasks', 'threshold', 'logdir', 'resultdir' fields
      - 'tasks' is used by SnowParam and MulticoreParam only

    o MulticoreParam now uses SnowParam(..., type=FORK)

    o Add bpvalidate() 

MODIFICATIONS

    o Add check to bipiterate() for Windows 

    o Invoke REDUCE without '...' in .bpiterate_serial()

    o Update README and bpvec() man page

    o Change default BPPARAM to SnowParam() for Windows

    o Update bpiterate() man pages for Windows 

    o Add note to vignette re: module load in template file
      from Thomas Girke

    o SnowParam:
      - bpmapply() now dispatches to bplapply()
      - remove BPRESUME
      - logging, gc ouput on worker
      - write results or logs to file
      - new error handling with futile.logger

    o Lighten the NAMESPACE by importing only parallel, snow

    o Modify which params are registered at load time:
      - Windows: SnowParam(), SerialParam() 
      - Non-Windows: MulticoreParam(), SnowParam(), SerialParam()

    o bpvalidate() looks for symbols in 'fun' environment, NAMESPACE
      of loaded libraries, and the search path

BUG FIXES

    o Bug fix in bpiterate_multicore(); update doc examples 

    o Bug fix in bpiterate() in ordering results from Martin

    o Bug fix in .bpiterate_serial() when REDUCE is given


CHANGES IN VERSION 1.0.0
------------------------

NEW FEATURES

    o Add vignette sections for cluster managers, AMI

    o Add bpiterate generic and methods 

    o Add REDUCE to bpiterate()

    o Add 'reduce.in.order' to bpiterate()


MODIFICATIONS

    o Update vignette examples, reorganize sections 

    o Allow 'workers' in BiocParallelParam to be character or integer

    o Enhance register() man page; add examples

    o Improve default registration for SnowParam:
      - max 8 cores
      - use detectcores() / mc.cores if available

    o Modify .convertToSimpleError() to convert NULL to NA_character_


BUG FIXES

    o Fix recursion problem for BPPARAM as list 

    o Modify bpaggregate() to run in parallel
