Concatenative topics
Concatenative meta
Other languages
Meta
Org Admin: Raghu Ranganathan
It is recommended for any potential contributors to try contributing to the subproject vocabularies in any way they can (even a documentation addition), to get a feel for Factor and understand what they are getting into.
The Factor arm64 backend is incomplete, and this project intends to complete full support.
Prerequisites: arm64 knowledge
Programming areas include: Factor VM, Backend Interface
Expected outcomes: Working arm64 backend for Factor
Estimated difficulty level: Hard
Expected size of project (175 or 350 hours): 350
Potential mentors: Doug Coleman
Language Server Protocol is a popular method for adding high-level editor support and provide quality debugging tools for a language. This can be implemented from scratch or with the help of external LSP libraries. Please detail what you would like to implement in your language server, and what features in would be best suited for Factor.
Prerequisites: Knowledge of JSON-RPC protocol, HTTP servers
Programming areas include: editors vocabulary, editor plugins
Expected outcomes: Basic Language Server Protocol Support (word completion, help on hover, etc.)
Estimated difficulty level: Medium/Hard
Expected size of project (175 or 350 hours): 175 or 350 (depends on progress)
Potential mentors: Raghu Ranganathan
Currently, FFI bindings have to be added with the help of the alien
vocabulary. The user has to manually specify all the functions they need to import. Instead, we can use libclang to generate the correct Factor code for a binding, or import them without needing to generate a vocabulary.
Prerequisites: Understanding of libclang, Factor aliens vocabulary
Programming areas include: FFI tools
Expected outcomes: Completed generator vocabulary using libclang
Estimated difficulty level: Medium
Expected size of project (175 or 350 hours): 175
Potential mentors: Doug Coleman
Factor has gained many new features that the current stack checker does not handle very well. A full revamp that targets locals, fried quotations, macros, smart-combinators, etc is the goal here.
Prerequisites: Understanding of stack effects and checking
Programming areas include: Core stack checker
Expected outcomes: New stack checker
Estimated difficulty level: hard
Expected size of project (175 or 350 hours): 350
Potential mentors: Doug Coleman, John Benediktsson
Drag and Drop support is not available in the Factor UI framework, and like the rest of the UI framework, it requires a consistent API that works across all supported platforms. Planning will need to be done for platforms with no standardized interface, and hence the difficulty of this project is specific to the platforms it will support.
Prerequisites: GUI knowledge
Programming areas include: UI framework, listener and browser
Expected outcomes: Drag and drop support in one or more platforms
Estimated difficulty level: Hard
Expected size of project (175 or 350 hours): 175/350 based on the contributor's goals
Potential mentors: John Benediktsson
The new Factor parser is in a usable state, and adding the new parser into the implementation requires a compilation step.
Prerequisites: Parser knowledge
Programming areas include: compile steps, bootstrapping
Expected outcomes: A new compilation step
Estimated difficulty level: Hard
Expected size of project (175 or 350 hours): 175
Potential mentors: Doug Coleman
Factor does not support locales for its documentation yet. For this project, a new design for the organization of the Factor implementation will have to be made, and related help system changes will need to be done.
Prerequisites: translation, locale knowledge (optional)
Programming areas include: help system
Expected outcomes: Options for changing language in the help system
Estimated difficulty level: Easy
Expected size of project (175 or 350 hours): 350
Potential mentors: Raghu Ranganathan
The current prototype for Foogle is written in Haskell, but a native Factor version is yet to be made. Features beyond the prototype are searching by stack effect type specs, which can be inferred from vocabulary docs.
Prerequisites: Web Development knowledge
Programming areas include: furnace web framework, stack effect checking
Expected outcomes: a foogle implementation inside factor, and a web app for running foogle
Estimated difficulty level: Medium/Hard
Expected size of project (175 or 350 hours): 350
Potential mentors: John Benediktsson, Raghu Ranganathan
If there are no projects on this list that interest you, you can mail Raghu Ranganathan with your project plan and mentor recommendations.
Some other ideas and their vocabularies (for inspiration) are as follows:
This revision created on Mon, 6 Feb 2023 10:11:25 by razetime