Type-C is an expressive multi-paradigm programming language with emphasis on type safety and run-time performance. This repository contains the Type-C compiler, which can be installed by cloning this repo or installing it via npm (in progress).
For the Virtual Machine, please refer to the Type-V Project
Setting up Type-C requires the following steps:
- Installing Type-C source through source or npm
- Installing the Type-V VM & building it from source
- Optional: VSCode Syntax Highlighting: in https://marketplace.visualstudio.com/items?itemName=unlimitedsoftwareworks.type-c-language-support
To get started, please have a look at the documentation: https://typec.praisethemoon.org/docs/getting-started
After installing type-c either via npm npm install -g @unlimitedsoftwareworks/type-c
or by cloning this repo, you can use the typec
command to compile your code.
$ typec --help
Type-c compiler, version ${compilerVersion}.
Usage: type-c <command> [options]
--run-tests Run all unit test
--compile <dir> Compile a directory
--no-generate-binaries Do not generate binaries
--output <dir> Output folder
--run Run the generated output
--generate-ir Generate IR and DOT files
--no-warnings Do not show warnings
init <folder> Initialize a new project at the given folder
stdlib install Install the standard library from git
stdlib update Updates the standard library from git
stdlib where Prints the path to the standard library
stdlib
will be installed in your ~/.type-c/stdlib
and used as the default search path for the standard library.
Very immature. Cryptic error messages. Everything you can expect from a compiler that is not even in alpha.
Keep an eye on https://typec.praisethemoon.org/posts for updates
Official docs: https://typec.praisethemoon.org/docs/introduction
Head over to the discussion section, and start a discussion. Please do not open an issue, start with a discussion and if the issue is verified (or a feature request is accepted), then we will create an issue. Thank you!
Right now the best way to help is the test the language and give feedback.