Cljs Devtools Versions Save

A collection of Chrome DevTools enhancements for ClojureScript developers

v0.9.9

6 years ago

The :async feature is no longer needed

Chrome devs finally implemented support for long async stacktraces for goog.async.nextTick (https://github.com/binaryage/cljs-devtools/issues/20).

https://bugs.chromium.org/p/chromium/issues/detail?id=661705

Notable commits:

6dc3c10e4f64f1007b8c5441dbfd9e041c90a972 print an info message that the :async feature is no longer needed

All new work: https://github.com/binaryage/cljs-devtools/compare/v0.9.8...v0.9.9

v0.9.8

6 years ago

Checked Array Access

The library now plays well when you enable :checked-arrays in your project. Checked Array Access is a new feature of recent ClojureScript compiler.

Notable commits:

ab0b3c1fc917f43c250b0e01c54e4b4cf39c2c46 switch to unchecked-aget/aset to prevent :checked-arrays warnings

All new work: https://github.com/binaryage/cljs-devtools/compare/v0.9.7...v0.9.8

v0.9.6

6 years ago

A hot-fix release

I had a bug in packaging code. Releases v0.9.5 had missing downstream dependencies.

Notable commits:

b18b63835fa7258b06003b2e0f44f3031a1f662e project: remove broken dependencies setup in :lib profile

All new work: https://github.com/binaryage/cljs-devtools/compare/v0.9.5...v0.9.6

v0.9.7

6 years ago

A hot-fix release

Forgot to bump env-config because lein-ancient was broken for this project.clj on my machine for some unknown reason.

Notable commits:

11d86fe412181d4dfb1e3e21cf6072ae98887272 project: bump env-config to "0.2.2"

All new work: https://github.com/binaryage/cljs-devtools/compare/v0.9.6...v0.9.7

v0.9.5

6 years ago

A maintenance release

Notable commits:

585c2c6042276d7250f745e80aec83edaf9075d1 variadic methods in protocols have never been supported 046ea60e8a0f7db87e4ff52e03c0693df99b8d32 centralize console selection via context

All new work: https://github.com/binaryage/cljs-devtools/compare/v0.9.4...v0.9.5

v0.9.4

7 years ago

More on dead code elimination (DCE)

Requiring devtools.toobox in :advanced mode

In this release I have fine-tuned some :advanced mode scenarios.

For example requiring devtools.toobox namespace would bring whole devtools machinery under your :advanced build. Newly you can use macros from devtools.toobox macro namespace which will use the functionality only if available at runtime.

Similar devtools.munging namespace can be required in advanced build without causing :advanced mode warning introduced in 0.9.3.

Notable commits:

718f7da261cb63108faabd0b3f214fa37aa86e76 rename util.clj to oops.clj and make munging.cljs DCE-friendly 80df8ef2edee96ebb957af333fecba199f78f42c reimplement o-macros in terms of aget/aset ce0f1f4b2c2a8c630947f282218a192e5809e646 provide devtools.toolbox macros for :advanced mode

All new work: https://github.com/binaryage/cljs-devtools/compare/v0.9.3...v0.9.4

v0.9.3

7 years ago

Fun with dead code elimination (DCE)

Remember: you should not require anything from devtools in :advanced mode

Note: You don't do that if you use cljs-devtools via :preloads. That is the recommended way.

The problem: Even if you don't use anything from devtools just requiring it might cause your :advanced build to bloat. The gist of the problem is that cljs-devtools requires cljs.pprint and cljs.stacktrace and those are not really DCE-friendly. Just requiring them adds a lot of dead weight to your build.

There does not seem to be an easy solution to this problem. So I decided to at least emit a compile-time warning to bring some attention to this issue.

You can follow genesis of this story in issue 37.

Notable commits:

0c773ba0539639bf7e3c164cd0e30b3696f7e110 treat external config and env config strictly as data 30a3497f7fd62230348a11dcb22019b40b6e4f80 dance around DCE issues (#37) 2c32e41f1c7b13c9a404d4d80b39b37eda729163 show a compile-time warning when required under non-dev builds (#37)

All new work: https://github.com/binaryage/cljs-devtools/compare/v0.9.2...v0.9.3

v0.9.2

7 years ago

A compatibility release

Minor compatibility fixes for ClojureScript 1.9.493. Note that the changes were reverted in ClojureScript 1.9.494. But we are now future proof if they later decided to make the symbols private again.

Notable commits:

dff7ffefbc2562997386304f2bcb4c7f3a9c1494 work around fast-path-protocols being newly flagged as private ae982dc058f8d4236a77d72e6d992a6ee54ed36f build meta lazily to prevent stack overflow in circular structures #35

All new work: https://github.com/binaryage/cljs-devtools/compare/v0.9.1...v0.9.2

v0.9.1

7 years ago

A compatibility release

Minor compatibility fixes for ClojureScript 1.9.456.

Notable commits:

3267356be0d2d5d4084191f104cb80c239d2f6b6 a fix for changed behaviour in CLJS-1875 4e368408986bf739b56aad64e064b854fd7989d2 js/goog.DEBUG not expected to allow DCE anymore, use goog/DEBUG instead

All new work: https://github.com/binaryage/cljs-devtools/compare/v0.9.0...v0.9.1

v0.9.0

7 years ago

Node.js support

This release brings node compatibility requested in #31. It turns out custom formatters work for node --inspect debugging as well.

Notable commits:

ff9f298e04acb1890dee3cd402b9bc6b5b00d34b switch js/window to js/goog.global for Node compatibility ec4f50804f4d4cd0743bb258b745df02839b54c3 make :formatters feature available in node.js contexts b21750cc5552ff6826af4bcf51e029803b73eda6 isolate decision about root js context into a single place

All new work: https://github.com/binaryage/cljs-devtools/compare/v0.8.3...v0.9.0