Fork me on GitHub

I've been wondering if it's time to just go ahead and add clojure.spec.alpha to bb (as a built-in, rather than from source) (and nbb). It seems spec2 isn't coming any time soon.

👍 1

one argument in favor of this, is that even after spec2 gets released, libraries using spec 1 will still be around for a long time (and prob some cases may never get upgraded)


yeah, that's a very good point. Spec will still be a thing if/when spec2 is released.


And we can remove it once everyone has migrated some years later


n/bb for quick scripts that never die :)


@U9G5NDV4Y hehe :) My only concern with adding more stuff is longer compilation times and larger binaries but if resources grow along over time this shouldn't be a problem - but they might not (mostly thinking about CI resources)

Cora (she/her)20:03:58

what do you think about a "kitchen sink" bb vs the current "slim" bb or something?

👍 2

There is already a BABASHKA_LEAN flag that you can build with yourself


The problem is that the kitchen sink bb might hit CI limits (memory mostly)


Most people don't care about the binary size that much


But if you look at the Windows CI for example, it has 5gb memory and is already spending way too much time in garbage collection

Cora (she/her)20:03:29

I didn't realize that was the limit that was being hit


I've hit that limit before on CircleCI but they graciously upped the limit to 8gb


Another idea, having spec1 as a builtin pod. It would be packaged with babashka and the end user doesn't have to know it's a pod (have a small proxy that delegates to the pod). Downside: small extra startup time when using spec. Upside: - separate compile cycle, no extra startup time when not using spec


Spec as a pod doesn't really work well as specs contains functions and functions can't be serialized. Spec is already available as a library with babashka (fully supported), just not built-in


Maybe by the time spec2 comes around we can release bb2 ;)


I wonder if Clojure itself is going to maintain the support for spec1 alpha (by that I mean keeping it available as a clojure built-in with the language) once spec 2 gets out, according to the "no break paradigm" it should keep existing there, I'm curious too see how that will go


spec.alpha support for nbb would be awesome. No preference on whether it's built-in or not. Using it as a library has not been difficult for my use cases


could look into making babashka/spec.alpha compatible with nbb.

😍 1