-
Notifications
You must be signed in to change notification settings - Fork 29
Open
Description
General
StaticScript language should be compatibility with TypeScript as it possible but with additional features
- 90%+ of TS programs must be able to be compiled by
ssc(to executable) - SS programs without additiona features from statiscript must be able to be compiled by
tsc(to js)
JS Types:
- Number (double)
- String (C string?)
- Boolean (i1)
- Undefined
- Null
- Object
Statements:
- Yields /generators will be done by https://llvm.org/docs/Coroutines.html
- Try/catch - https://llvm.org/docs/ExceptionHandling.html
Tooling:
- Language server, similar to typescript language server
- Debug - https://llvm.org/docs/SourceLevelDebugging.html
Objects and classes
There will be two types of objects:
Static object
It's not possible to mutate (add/drop fields from this objects), object are structures that mapped directly to memory and methods are functions with pointer to structure (this)
Dynamic objects
Unoptimized objects that will be V8 objects
Feel free to add ideas by comments
Advanced features of StaticScript
Types:
- int8/int16/int32/int64/int128
- uint8/uint16/uint32/uint64/uint128
- float32/float64 (alias to number)/float128
To implement it, we need to use own fork of TypeScript (https://github.com/static-script/TypeScript) and implement base support inside Frontend part
Own standart library:
Implement standart library on StaticScrtipt
This issue will be updated when new ideas will come :)
zaaack, torch2424, andriyor and Lynskylate
Metadata
Metadata
Assignees
Labels
No labels