ClojureScript 1.10.866 Release

This page summarizes the projects mentioned and recommended in the original post on news.ycombinator.com

InfluxDB - Power Real-Time Data Analytics at Scale
Get real-time insights from all types of time series data with InfluxDB. Ingest, query, and analyze billions of data points in real-time with unbounded cardinality.
www.influxdata.com
featured
SaaSHub - Software Alternatives and Reviews
SaaSHub helps you find the best software and product alternatives
www.saashub.com
featured
  • klipse

    Klipse is a JavaScript plugin for embedding interactive code snippets in tech blogs.

  • I think ClojureScript has been able to compile itself since ~2015 if I remember correctly. There is some helper libraries that makes the experience nicer nowadays too, tools like KLIPSE (https://github.com/viebel/klipse)

    Here are some starting points:

    - https://clojurescript.org/guides/self-hosting

    - https://practicalli.github.io/clojurescript/quickstart/self-...

    - https://blog.klipse.tech/clojurescript/2016/04/04/self-host-...

  • clojurescript

    Clojure to JS compiler

  • ... except when you target JavaScript - which is not an expression oriented language. So `let` will be wrapped in an immediately invoked function expression (IIFE). Google Closure does elide these when it can, but it will give up after only a few levels of nesting. For an IIFE to appear in the middle of conditional is a performance killer.

    Another complication is that it's not safe to just use `&&` and `||` blindly because of `0` and the empty string and the other cases which are not false-y in Clojure(Script). Checks for JavaScript false-y values are a performance killer.

    So years ago we implemented a simple form of type inference which annotates the AST with type information as a compiler pass on every node when possible. As long we know the JavaScript `if` will receive a boolean value we can elide the JS false-y value check.

    But this is also exactly the information we need to safely run a following pass that looks for the above and/or syntactical patterns and optimize it. As long as each nested `if` is guaranteed to return a boolean, we can remove the local and use `&&` or `||` instead.

    The and/or optimization pass ended up being ~120 lines of code with no actual dependencies on anything else in the ClojureScript analyzer or compiler because the ClojureScript AST is just plain EDN - https://github.com/clojure/clojurescript/blob/master/src/mai...

    Happy to answer any further questions about this!

  • InfluxDB

    Power Real-Time Data Analytics at Scale. Get real-time insights from all types of time series data with InfluxDB. Ingest, query, and analyze billions of data points in real-time with unbounded cardinality.

    InfluxDB logo
NOTE: The number of mentions on this list indicates mentions on common posts plus user suggested alternatives. Hence, a higher number means a more popular project.

Suggest a related project

Related posts

  • Adyen Tech Academy: Taking Onboarding and Upskilling to The Next Level

    1 project | dev.to | 23 Dec 2022
  • Interactive Clojure tutorial

    1 project | /r/Clojure | 2 Feb 2022
  • Data-Oriented Programming is dope

    1 project | dev.to | 2 Jan 2022
  • 📖 Data-Oriented Programming book: First draft

    2 projects | /r/csharp | 31 Dec 2021
  • Could we partially embrace Data-Oriented programming in OCaml?

    1 project | /r/ocaml | 12 Mar 2021