Skip to content

Releases: flybot-sg/clojure-clr

ClojureCLR 1.11.0-flybot5 (net462)

Pre-release

Choose a tag to compare

@github-actions github-actions released this 09 Sep 05:18
clojure-1.11.0-flybot5

Fixes

  • #46 split now matches JVM Clojure. It drops trailing empty strings, so (split "a b " #" ") returns ["a" "b"]. A negative limit returns every part instead of throwing ArgumentOutOfRangeException. It also drops an empty first part, so (split "abc" #"") returns ["a" "b" "c"]
  • #48 Util.hasheq hashes a string with Java's String.hashCode, not .NET's randomized String.GetHashCode. APersistentMap/mapHasheq returns Murmur3.HashUnordered, not the pre-1.6 sum of XORs, which the defrecord macro bakes into every record's hasheq. (hash "0ca") returns the JVM's -1465009350 in every process, and so do records and maps. keys walks a string-keyed map in the JVM's order

Backports

Keyword to symbol (#44)

  • CLJCLR-145 (86578fcc) Keyword declares its Symbol property public instead of internal, so the arity-1 symbol call site in core.clj binds it and (symbol :foo) returns foo instead of throwing MissingMethodException

ClojureCLR 1.11.0-flybot4 (net462)

Pre-release

Choose a tag to compare

@github-actions github-actions released this 03 Sep 02:38
clojure-1.11.0-flybot4

Fixes

  • #32 file-mode opens a
    plain write with FileMode/Create and :append with FileMode/Append
    instead of FileMode/OpenOrCreate for every write, so spit and writer
    truncate the file they overwrite and :append appends, like JVM Clojure,
    instead of writing at position 0 and dropping the option
  • #37 fp-str formats
    Double and Single with "R" and the invariant culture instead of str, so
    on .NET Framework and Mono, where the default format emits 15 significant
    digits, a printed double reads back equal instead of losing its last digits
  • #33 RT.longCast(object)
    converts the matched ulong local instead of unboxing the UInt64 box as
    Int64, which the CLR rejects, so (long x) and (int x) on a boxed
    UInt64 convert instead of throwing InvalidCastException

Backports

Stack frame printing (#40)

  • CLJCLR-162
    (fffa5e35)
    print-method and StackTraceElement->vec read the declaring type of the
    frame's method, through a new stack-frame-info, instead of (.GetType o),
    which is always System.Diagnostics.StackFrame, so a printed frame and every
    Throwable->map :at and :trace entry name the code that ran
  • CLJCLR-183
    (30047284) A frame
    whose method reports no declaring type prints <Unknown type> instead of
    throwing NullReferenceException

ClojureCLR 1.11.0-flybot3 (net462)

Pre-release

Choose a tag to compare

@github-actions github-actions released this 20 Aug 06:31
clojure-1.11.0-flybot3

What's Changed

Full Changelog: clojure-1.11.0-flybot2...clojure-1.11.0-flybot3

ClojureCLR 1.11.0-flybot2 (net462)

Pre-release

Choose a tag to compare

What's Changed

  • fix: resolve RT's DLL load paths from Clojure.dll's directory by @parth-io in #16
  • fix(ci): copy the runtime DLLs into the loose release assets by @parth-io in #18
  • fix: drop the version-resource fallback retracted upstream by @parth-io in #20
  • chore(release): 1.11.0-flybot2 by @parth-io in #22

Full Changelog: clojure-1.11.0-flybot1...clojure-1.11.0-flybot2

ClojureCLR 1.11.0-flybot1 (net462)

Pre-release

Choose a tag to compare

What's Changed

  • chore: fix ClojureCLR failing tests on different platforms, and add tooling for devs by @parth-io in #3
  • fix: use fully-qualified class names in datafy, defn type hints, and object printing by @parth-io in #7
  • fix: support the cljr CLI on 1.11 (.cljr loading + 1.12 API backports) by @skydread1 in #11
  • fix: prefer core-library type when System type names collide by @parth-io in #12
  • chore: add net462 release CI and set version to 1.11.0-flybotrc1 by @parth-io in #13
  • chore(release): set version to 1.11.0-flybot1 by @parth-io in #14

New Contributors

Full Changelog: https://github.com/flybot-sg/clojure-clr/commits/clojure-1.11.0-flybot1