Fork me on GitHub
#babashka
<
2022-03-29
>
borkdude13:03:22

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
wilkerlucio14:03:41

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)

lread14:03:48

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

borkdude14:03:56

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

james19:03:35

n/bb for quick scripts that never die :)

borkdude19:03:08

@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
borkdude20:03:09

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

borkdude20:03:45

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

borkdude20:03:12

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

borkdude20:03:34

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

borkdude20:03:04

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

jeroenvandijk14:03:33

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

borkdude14:03:29

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

borkdude14:03:41

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

wilkerlucio15:03:54

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

cldwalker18:03:39

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

borkdude18:03:50

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

😍 1