-
Notifications
You must be signed in to change notification settings - Fork 12
Road Map
Tim Atherton edited this page Jan 29, 2025
·
54 revisions
Morpho 0.6.x will continue to extend the range of problems morpho can solve, provide improved performance, and convert the code to a more modular structure. We aim to release a new version quarterly. To create 0.6 we have separated morpho into a shared library, hosted in this repository, and a separate terminal app, which allows morpho to be used in more ways. We expect to simplify the library by moving core functionality out into extensions.
Below are some of our goals for the 0.6.x series:
Contributions are welcome! Please suggest desirable new features via the Issue tracker above, and refer to the contributor guide.
- Type checking and type inference in the compiler.
- Multiple dispatch. (0.6.1)
- Formatting as part of string interpolation syntax.
- Add named properties to classes.
- Obviate need for
self
as part of method calls. - Switch statements.
- Ternary operator. (0.6.2)
- Complex matrices and other storage schemes.
- Extend Fields to enable complex matrices.
- Half-Edge mesh structure.
- Support for multiple types of element and discretization.
- Support for parallelization.
- Additional installation options, e.g.
apt
,conda
. - A native Windows version. [In progress: see PR #298]
- Package versioning.
- Package manager. See the morphopm repository
- Improved interface for stability eigenanalysis.
- Jupyter interface. See the xeus-morpho project.
- Interface debugger with VSCode.
- Improve debugger to allow calling functions and evaluating expressions.
- Clean and improve the morpho API to enhance embeddability and writing extensions.
- Allow optional arguments in morpho_call.
- Allow extensions to load other extensions.
- Allow extensions to check compatibility.
- Move functionals, and potentially the computational geometry library, into an extension.
- Move non-core bundled modules (e.g. the VTK module) into extensions.
- Enable use of keywords as property and method labels. (0.6.2)
- Star, closure and link methods for Selection.
- New optimization module implementing quasinewton, etc. see separate GitHub repository
- Resurrect bytecode optimizer as an extension and incorporate data flow analysis. see separate Github repository
- Add slots to classes and instances (ties into names properties on classes)
- Permit parallelization in morpho, e.g. through map.
- Fix Range class. (0.6.2)
- Redesign CALL opcode to enable automated checking of positional arguments. (0.6.2)
- Plotting library; More sophisticated graphics.
- libcurl. Package available on the morpho-curl repository
- zeromq. Package available on the morpho-zeromq repository
- images
- multivectors
- GPU acceleration.
- More flexible shading model.
- Improve API to facilitate less bandwidth.
- Interactivity using ZeroMQ.
- AR integration in morphoview or via separate app.