basilisp
basilisp copied to clipboard
A Clojure-compatible(-ish) Lisp dialect targeting Python 3.8+
I started thinking that Lisps are great for embedding other languages and creating DSLs, so I was thinking it would be great to create a shell script DSL in addition...
Clojure.org's [guide on data structures](https://clojure.org/reference/data_structures) mentions these specialized map and set implementations. ``` array-map sorted-map sorted-map-by sorted-set sorted-set-by subseq rseq (sorted-map implementation) rsubseq ```
As of this writing, startup Basilisp up locally takes just over 4 seconds without a locally cached copy: ``` $ BASILISP_USE_DEV_LOGGER=true BASILISP_LOGGING_LEVEL=DEBUG BASILISP_DO_NOT_CACHE_NAMESPACES=true basilisp repl 2019-05-06 08:33:46,726 DEBUG [basilisp.lang.runtime.init_ns_var:1269] -...
I think it would be a good idea to develop a benchmark suite for various parts of the system. For example, I keenly watch the startup time as `basilisp.core` grows...
In #354 and #361 we discuss various type hinting related changes. The ultimate goal would likely involve running MyPy or some other sort of more sophisticated type-checking tool over the...
In #354 I'm proposing to put the `:tag` metadata on AST nodes, but this ticket instead refers to the task of determining the tag of parent or bound nodes from...
Right now, functions generated via Basilisp do not have docstrings. Instead, they are generated like: ``` def f(): return None Var.intern(..., meta=lmap.map({"doc": "a docstring"})) ``` We could potentially improve utility...
Right now, all multi-arity function calls dispatch to the correct arity at runtime. In a tight loop sitaution, it might be nice to compile a direct call to the proper...
`tools.analyzer.jvm` and `tools.analyzer.js` nodes include `:tag` keywords with types for most types of nodes, which can help with emitting useful warnings and potentially annotating functions and arguments with return types.