Skip to content

JohnAlexCO/garter

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

4 Commits
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Garter

is an in-development programming language heavily influenced by DarkBasic, x86 Assembly, JavaScript, Python, and C and built from the ground-up on its own tooling and compiler toolchain.

Update (August 19, 2024)

About a week and half ago, I finished making the new cli itself, and I'm currently finishing up work on the Assembler. There's some information about the syntax and stuff over on my website. I also have some info about how the toolchain works, but the first pre-0.0.0 release is basically gonna look like

garter
  ↳ data
    ↳ locale (I plan to add support for a few other languages later on)
      ↳ english
    ↳ assets
    ↳ runtime
  ↳ cli
  ↳ frontends (no preprocessor or garter compiler yet)
    ↳ gasm-GY24
  ↳ backends (no other backends or interpreter yet)
    ↳ linux x86-32
  ↳ linker (eventually I plan to add shared object support)
    ↳ bytecode
  ↳ shared
    ↳ lexer
    ↳ parser
    ↳ file i/o
    ↳ printing and error functions

What's Included

Out of the box, Garter provides a compiler toolchain (compiler) (assembler) (interpreter), and a lightweight standard library comparable to glibc. Eventually Garter will also include additional libraries, a language server, and a package manager. Documentation will also be available over at Modula.dev

Implementation

Garter is being written entirely in gasm(Garter Assembly) by the combination of hand-written code and using C helper functions. Once garter.gasm is written, it will be compiled to executable binaries for 64-bit Windows, Linux, and MacOS, as well a bytecode file that can be run in gyb.

Resources

NOTE: There's a bug in the currently running version of Weaver that is causing the /garter route that because certain browsers automagically add a / to the end of the uri, and because of a small error in how uris are interally cast in the library, causes an interal service error. If you navigate instead of /garter?somequery, or just to /documentation instead, the pages should work correctly. I do plan to fix the bug in Weaver sometime soon, but finishing the assembler is my priority right now.

Licensing

This project will be adopting a hybrid licensing model. The main project will ship with a Contributor License Agreement and the AGPLv3. Additional materials and extensions will be available under a proprietary End-User License Agreement which stipulates that modifications to the language implementation must be made publicly available under the CLA and AGPL licenses. Usage of Garter's name and branding are permitted as long as they do not imply an endorsement by Modula or its contributors.

Unlicense logo GNU Affero License Logo

Modula © 2024, All Rights Reserved