🚀 This release sets the foundation for morloc. Basic typechecking/inference, code generation, interoperability, and serialization are all working well. Finally
morlocis sufficiently developed to be useful.
The main future goals break down as follows:
- Richer type system - typeclasses, "shapes", semantic types (probably use a logic engine like z3)
- ⚠ Effect handling and error/warning propagation
- Optimization - all current optimizations steps are basically stubs
- 📚 Doxygen-like documentation, caching, manifold hooks and such (see the last release)
- 👌 Improved build system
- 👌 Support for many more languages and a streamlined language onboarding process
- 📦 The MorlocIO package manager and community portal
🚀 This release marks the version of
morlocthat was used in the poster presented at PyCon 2019 in Cleveland.
🚀 This release presents a very simple Morloc prototype. It is mostly experimental and will change greatly in the future with no attempt to preserve backwards compatibility.
This prototype includes
- A simple, typed, functional scripting language
- A compiler to translate these scripts into RDF graphs and then executable code
- Simple type checking
- 👌 Support for Python and R
- A system for specifying language-specific types and transforming the data as needed
- Syntax for specifying type constraints
This prototype is (currently) much less sophisticated than the C prototype. However, the code is far more elegant and will serve as a more flexible foundation for future development.
It can currently run R code in a simple shell interface. For example:
> sum [1,2,3] 6
This passes the Morloc vector
[1,2,3]into the R function
sumand returns the result.
🚀 This pre-release is an experimental foundation for the Morloc language. The syntax and features will change wildly in the future with no attempt at maintaining backwards compatibility.
This is the final version of the C prototype.
The features are described in the README. Here is an overview:
↔ integrated R, Python, and Bash through a simple type system
workflows are pull-based graphs
explores the "manifold" template idea and multi-dimensional workflows
compilation exposes all exported functions through the manifold nexus
👍 allows checks and effects to be added outside of the core workflow
This prototype will not be maintained in the future.