Comet is a fast, compiled programming language built on top of C and runs on a custom made stack-based VM. It has an enormous feature list, including:
- Classes (called structs)
- Templates
- Runtime exceptions
- Inline functions
- A system for casting values from one type to another
- An attribute system for templates
- Inheritance
- Imports and a package system (no more C-style header files!)
- An extensive standard library that handles memory management for you
- Arrays
- Variables
- Loops
- While loops
- For loops
- Standard library
- IO - Input/Output
- Printing
- File IO
- Collections - data structures
- List
- Hashmap
- Memory - manual memory management
- Ansi - ANSI colour codes
- String - string handling and management
- IO - Input/Output
- Imports
- Package system
- Package manager
- Functions
- Returning
- Inline functions
- Structs
- Struct definition
- Fields
- Private/protected/readonly
- Default values
- Accessing / setting fields
- Methods
- Constructor
- Destructor
- Fields
- "new" keyword
- Calling methods
- Inheritance
- Templates
- Template attributes
- Struct definition
- Command line args
- Arrays
- Creation
- Access
- Changing values
- Exceptions
- Throw exceptions
- Catch exceptions
Just run make in the root of the repo. This will create the cometc and comet executables. If you want a debug build, run make debug. Debug builds include the address sanitizer for tracking down segfaults.