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

Ideas are categorized by their subproject in Factor. 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

arm64: 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

editors: 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

ffi: 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

core: Write a new stack-checker that supports locals/fry/macros/smart-combinators

<!--

ui: Adding drag and drop support to one or more platforms (tooltips, file-picker, ... if more time)

factor: Add a compilation step for the new parser in extra/modern

factor: Addition of internationalization support

ui: Creating Qt bindings for Factor

webasm: Add a webasm backend to Factor

furnace: Rewrite Foogle in 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 06:11:44 by razetime (add all idea headings)

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.