Skip to content

Latest commit

 

History

History
122 lines (84 loc) · 3.68 KB

NEWS.md

File metadata and controls

122 lines (84 loc) · 3.68 KB

News

This file describes only major changes, and does not include bug fixes, cleanups, or minor enhancements.

Revise 2.7

  • Add framework for user callbacks
  • Faster startup and revision, depending on Julia version

Revise 2.6

  • Starting with Julia 1.5 it will be possible to run Revise with just using Revise in your startup.jl file. Older Julia versions will still need the backend-stealing code.

Revise 2.5

  • Allow previously reported errors to be re-reported with Revise.errors()

Revise 2.4

  • Automatic tracking of methods and included files in @require blocks (needs Requires 1.0.0 or higher)

Revise 2.3

  • When running code (e.g., with includet), execute lines that "do work" rather than "define methods" using the compiler. The greatly improves performance in work-intensive cases.
  • When analyzing code to compute method signatures, omit expressions that don't contribute to signatures. By skipping initialization code this leads to improved safety and performance.
  • Switch to an O(N) algorithm for renaming frame methods to match their running variants.
  • Support addition and deletion of source files.
  • Improve handling and printing of errors.

Revise 2.2

  • Revise now warns you when the source files are not synchronized with running code. (timholy#317)

Revise 2.1

New features:

  • Add entr for re-running code any time a set of dependent files and/or packages change.

Revise 2.0

Revise 2.0 is a major rewrite with JuliaInterpreter at its foundation.

Breaking changes:

  • Most of the internal data structures have changed

  • The ability to revise code in Core.Compiler has regressed until technical issues are resolved in JuliaInterpreter.

  • In principle, code that cannot be evaluated twice (e.g., library initialization) could be problematic.

New features:

  • Revise now (re)evaluates top-level code to extract method signatures. This allows Revise to identify methods defined by code, e.g., by an @eval block. Moreover, Revise can identify important changes external to the definition, e.g., if

    for T in (Float16, Float32, Float32)
        @eval foo(::Type{$T}) = 1
    end

    gets revised to

    for T in (Float32, Float32)
        @eval foo(::Type{$T}) = 1
    end

    then Revise correctly deletes the Float16 method of foo. (#243)

  • Revise handles all method deletions before enacting any new definitions. As a consequence, moving methods from one file to another is more robust. (#243)

  • Revise was split, with a new package CodeTracking designed to be the "query" interface for Revise. (#245)

  • Line numbers in method lists are corrected for moving code (requires Julia 1.2 or higher) (#278)

Revise 1.0 (changes compared to the 0.7 branch)

Breaking changes:

  • The internal structure has changed from using absolute paths for individual files to a package-level organization that uses Base.PkgId keys and relative paths (#217).

New features:

  • Integration with Julia package manager. Revise now follows switches from deved packages to freed packages, and also follows version-upgrades of freed packages (#217).

  • Tracking code in Julia's standard libraries even for users who download Julia binaries. Users of Rebugger will be able to step into such methods (#222).