releases

tony.kay 2025-10-21T13:40:39.256939Z

https://github.com/fulcrologic/statecharts 1.2.23 Dramatically improved the visualizer component. Currently used by Fulcro Inspect, but this is part of a larger push towards making a general visualizer work for all uses of statecharts (back-end, front-end, etc.)

🎉 3
tony.kay 2025-10-21T13:47:59.620559Z

Fulcro Inspect 4.0.7 (Electron) https://github.com/fulcrologic/fulcro-inspect/releases/tag/electron-4.0.7 This version uses the latest statecharts library for better looking statechart rendering. The chrome plugin version has been submitted to the web store.

🎉 3
michaelwhitford 2025-10-21T15:54:33.257769Z

Will the AppImage and/or the amd64 deb show up in the assets for this release eventually? I went to download but only the zip and dmg assets are available for this release.

tony.kay 2025-10-21T17:43:11.918629Z

oh sorry, yeah, let me build those

tony.kay 2025-10-21T19:00:57.484989Z

I had power problems all day…uploading now

borkdude 2025-10-21T16:24:02.591019Z

https://github.com/squint-cljs/cherry: Experimental ClojureScript to ES6 module compiler 0.4.32 (2025-10-21) • Bump squint compiler common component and standard library • Bump other deps • Optimize =, str, not=

🍒 4
borkdude 2025-10-23T09:33:10.998519Z

> Is there any plan to emit HMR helper code? Not sure how to do this How would emitting proxies for defn help HMR?

Ray Stubbs 2025-10-23T13:51:00.596429Z

I was thinking something like:

let hotDef;
if (import.meta.hot) {
  import.meta.hot.accept();

  hotDef = (defName, defVal) => {
    const existingDef = import.meta.hot.data.defs[defName];
    if (existingDef) {
      const { proxy, impl } = existingDef;
      impl.ref = defVal;
      return proxy;
    }

    const impl = { ref: defVal };
    const proxy = new Proxy(impl, {
      get(_target, prop, receiver) {
        return Reflect.get(impl.ref, prop, receiver);
      }
      apply(_target, thisArg, args) {
        return Reflect.apply(impl.ref, thisArg, args);
      }
      construct(_target, args) {
        return Reflect.construct(impl.ref, args);
      }
      ...all the other hooks...
    });

    import.meta.hot.data.defs[defName] = { proxy, impl };
    return proxy;
  }
} else {
  hotDef = (defName, defVal) => defVal;
}

export const myDefn = hotDef('myDefn', theFn);
Not perfect, but would probably make for a good enough hot reload experience; at least for functions and classes.

Ray Stubbs 2025-10-21T22:12:49.076929Z

Played with Cherry a little using Vite and my experimental JS vDOM library, super awesome. Is there any plan to emit HMR helper code? Would be super cool to be able to plug into JS tooling seamlessly; would likely be much better than plain JS. Wrapping defn and defclass exports in proxies (for dev builds) whose ref can be swapped out will go a long way on its own. https://dodo.3sln.com/?c=%2Fcustomization.md