Front Page All Articles Recent Changes Random Article

Contents

Concatenative language

  • ACL
  • Ait
  • Aocla
  • Breeze
  • Callisto
  • Cat
  • Cognate
  • colorForth
  • Concata
  • CoSy
  • Deque
  • DSSP
  • dt
  • Elymas
  • Enchilada
  • ETAC
  • F
  • Factor
  • Fiveth
  • Forth
  • Fourth
  • Freelang
  • Gershwin
  • hex
  • iNet
  • Joy
  • Joy of Postfix App
  • kcats
  • Kitten
  • lang5
  • Listack
  • LSE64
  • Lviv
  • Meow5
  • min
  • Mirth
  • mjoy
  • Mlatu
  • Ode
  • OForth
  • Om
  • Onyx
  • Plorth
  • Popr
  • Porth
  • PostScript
  • Prowl
  • Quest32
  • Quackery
  • r3
  • Raven
  • Retro
  • RPL
  • SPL
  • Staapl
  • Stabel
  • Tal
  • Titan
  • Trith
  • Uiua
  • Worst
  • xs
  • XY
  • 5th
  • 8th

Concatenative topics

  • Compilers
  • Interpreters
  • Type systems
  • Object systems
  • Quotations
  • Variables
  • Garbage collection
  • Example programs

Concatenative meta

  • People
  • Communities

Other languages

  • APL
  • C++
  • Erlang
  • FP trivia
  • Haskell
  • Io
  • Java
  • JavaScript
  • Lisp
  • ML
  • Oberon
  • RPL
  • Self
  • Slate
  • Smalltalk

Meta

  • Search
  • Farkup wiki format
  • Etiquette
  • Sandbox

Factor/GSoC/2023

Google Summer of Code 2023 ideas

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.

Documentation Home

Finish porting Factor to arm64

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

Add support for the Language Server Protocol (LSP)

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

Add support for generating C FFI bindings using the existing libclang vocabulary

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

Create a Modern stack-checker

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

Drag and drop support for the UI

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

Compilation step for the new Factor parser

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

Internationalization support

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

Write Foogle in Factor

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

Have a different idea?

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:

  • ui: Creating Qt bindings for Factor
  • webasm: Add a WebAssembly backend to Factor
  • regexp: Support group capture and lookaround in Factor's native regexp library
  • extra: Adding support for video playback to Factor

This revision created on Sun, 5 Feb 2023 10:30:48 by razetime

Latest Revisions Edit

All content is © 2008-2024 by its respective authors. By adding content to this wiki, you agree to release it under the BSD license.