7e0b1a3214
Deprecate linker directives
2024-09-18 00:43:13 -04:00
8e3c871f27
Code cleanup
2024-09-18 00:42:33 -04:00
4e670c8bca
Clean up some dead code
2024-09-18 00:35:01 -04:00
10a51ad996
Bugfix for string escaping in printouts
2024-09-16 00:15:54 -04:00
6b5a9d65e3
Overhaul of how libraries are installed
2024-09-15 21:18:42 -04:00
8ee23054bf
Update Inline C syntax and documentation/tests
2024-09-15 17:34:34 -04:00
e422079fcc
Add a Byte datatype
2024-09-15 15:33:47 -04:00
c455e7b67d
Rename builtins/ -> stdlib/
2024-09-13 20:18:08 -04:00
4380039acc
Rename builtins to use plurals when appropriate
2024-09-13 20:08:20 -04:00
51c346bbc5
Code cleanup
2024-09-13 19:59:28 -04:00
34c562e88e
Move cord helper functions into their own file
2024-09-13 14:23:24 -04:00
46a2aa2ffc
Fix up comprehensions so set comprehensions work and everything is a bit
...
more clean
2024-09-12 14:27:13 -04:00
56a4d13975
Automatic promotion to single-argument enum tags with a unique type
2024-09-12 13:05:08 -04:00
05724a659f
Change unicode escape to \{name} and add escape for ANSI CSI sequences:
...
\[...]
2024-09-12 01:43:00 -04:00
de23577091
Allow trailing whitespace in parens expressions
2024-09-12 01:04:53 -04:00
fa7e52787f
Add postfix !
operator for optionals
2024-09-12 00:13:53 -04:00
b0b23acf88
Rename "Nil"->"Null" for consistency
2024-09-11 13:55:41 -04:00
210179ee67
Optional enums (deprecated custom tag values)
2024-09-11 12:29:48 -04:00
989dc3f442
Support if x := blah: ...
2024-09-11 01:48:15 -04:00
7126755275
Add optional types
2024-09-11 01:31:31 -04:00
0570acfa15
Fix path escapes
2024-09-09 03:20:31 -04:00
1fbe2cb5dd
For parsing paths, use nested parens: (./foo), also add some methods
2024-09-09 02:02:08 -04:00
11c560ebcc
More path stuff including some methods
2024-09-09 01:14:33 -04:00
13a9304dec
Initial working version
2024-09-09 00:22:12 -04:00
aeed1992e9
Fix nearly every GCC warning and add __attribute__((pure/const)) where
...
appropriate
2024-09-08 17:17:15 -04:00
b0d806a1f0
Add unicode name escapes: \U[penguin]
2024-09-07 01:43:36 -04:00
a90ef1973f
Don't parse suffixes on interpolations
2024-09-06 22:30:46 -04:00
9581231408
Remove unused 'import' keyword
2024-09-06 15:01:27 -04:00
176205a22d
Print stack trace if $TOMO_STACKTRACE is set
2024-09-06 14:41:34 -04:00
4b352f89a3
Add Shell dsl type
2024-09-06 11:37:33 -04:00
391c1b6bde
Rename table_t -> Table_t
2024-09-05 14:57:31 -04:00
fa5ca582ff
Clean up some imports
2024-09-05 02:37:45 -04:00
d1b2e9f598
Disallow 'use' statements that aren't top level
2024-09-04 13:48:26 -04:00
64143f0a13
Syntax overhaul (comments back to #
, print statments to !!
),
...
using `$/.../` for patterns and using a DSL for patterns
2024-09-03 13:19:41 -04:00
61e482f6f3
Initial WIP first past
2024-09-02 18:47:39 -04:00
9496c4abcb
Minor cleanup
2024-08-25 14:35:38 -04:00
dceb925573
Bugfix for parsing ints
2024-08-23 11:38:54 -04:00
ad51b208b4
Overhaul of import syntax. Now everything uses use
: use foo
, `use
...
./foo.tm`, `use <foo.h>`, `use libfoo.so`
2024-08-22 14:02:48 -04:00
c97ed75dff
Add postfix conditionals for return/skip/stop/function calls
2024-08-19 19:30:22 -04:00
08d6385674
Add -deg suffix: 90deg
for specifying degrees. Also fixed percent
...
suffix
2024-08-19 01:22:17 -04:00
967b649da2
Deprecate #
operator in favor of .length and fix up some issues
2024-08-18 20:39:57 -04:00
a49870f810
Add primality testing and next_prime()/prev_prime()
2024-08-18 15:22:51 -04:00
f4b04a1b8c
Improved syntax for dollar-string literals
2024-08-18 14:44:15 -04:00
752ab8212c
Split BigIntType out of IntType and switch to using enums for the size
...
of ints/nums
2024-08-18 11:49:51 -04:00
2c8aa4ca57
Support semicolon in {:K:V; ...}
2024-08-17 14:54:58 -04:00
d08f795794
Partially working first draft of bigints
2024-08-13 01:30:25 -04:00
81812b46a0
Put back fallback
2024-08-12 17:33:40 -04:00
bdf7c369ed
Bugfix for parsing comments
2024-08-12 17:27:59 -04:00
d2f4d07585
Support channels with maximum size
2024-08-11 15:04:22 -04:00
2ecb5fe885
Add channels and threads
2024-08-11 14:47:34 -04:00
6d3d104363
Overhaul of operator metamethods
2024-08-10 20:50:15 -04:00
b37bd70b60
For tables, deprecate support for square bracket indexing and .default
...
values, replacing them with a `:bump()` function for tables with numeric
values. This means that counters can be implemented easily without the
need to mask complexity.
2024-08-10 16:03:41 -04:00
8d3d591312
Add Sets to the language
2024-08-10 15:15:38 -04:00
b2e752ee32
Replace heap_str with GC_strdup
2024-07-26 13:30:24 -04:00
cfe46ee393
Replace heap_strn() with GC_strndup()
2024-07-26 13:28:18 -04:00
445f79cb70
Add iterator functions
2024-07-13 17:17:58 -04:00
a86dc05d36
Cache AST parsings so we don't have to re-parse files
2024-07-05 15:51:23 -04:00
e51e6f840c
Tweak syntax for debug prints
2024-07-05 01:55:02 -04:00
4d3ea3f73e
Check for newline between statements in blocks
2024-07-04 18:45:04 -04:00
6a105fbd80
Add 'defer'
2024-07-04 18:00:01 -04:00
9d9fe12987
Add !!
statement for printing text
2024-07-04 16:23:05 -04:00
7dcb5bea3f
Support top-level imports
2024-06-16 15:13:48 -04:00
dab2c399f1
Split import/use into separate concepts
2024-06-13 13:17:51 -04:00
5757a5023c
Support loading shared libraries
2024-06-13 12:59:19 -04:00
8c7d530080
Split header compilation into a separate function
2024-06-06 16:28:53 -04:00
468e6c7411
Fix for parsing linker directives
2024-05-26 15:13:34 -04:00
308946e794
Switch optional detection to use 'when .. is @..' instead of 'if .. :=
...
..'; also fixed a bug with stack memory in doctests
2024-05-24 00:03:46 -04:00
bf3cdc3dfa
Refine the parsing of blocks so it's always ':' [inline-block] [indent indented-block]
2024-05-23 13:09:59 -04:00
e7beacb460
Add a 'do' block for scoping
2024-05-23 12:52:18 -04:00
fba2b99b65
Support 'while when'
2024-05-23 12:40:21 -04:00
4f2421aeea
Tweak inline C code
2024-05-18 21:18:08 -04:00
1df26851d7
Add syntax for "inline C(...)"
2024-05-18 16:31:34 -04:00
ee9a40f910
Fix 'else if'
2024-05-16 00:55:16 -04:00
02fe49a764
Deprecate interfaces (RIP)
2024-05-12 20:13:19 -04:00
3481042259
Simplify interfaces by requiring all functions are pointer methods
2024-05-12 15:56:24 -04:00
d143c72b22
WIP, but functional interfaces
2024-05-12 13:50:06 -04:00
a20f522fd6
Support space indents
2024-05-02 13:48:20 -04:00
c2daf6a928
Clean up 'when' syntax
2024-05-01 13:53:51 -04:00
2e27b88c1b
Improved syntax for optionals
2024-04-30 13:18:47 -04:00
3c0a8f0b89
Syntax tweak: use ':' for blocks
2024-04-28 14:58:55 -04:00
a329682d30
Remove _mix_ keyword
2024-04-22 17:26:33 -04:00
e98f6854f5
Use leading underscore for file-local variables and functions instead of
...
"private" keyword
2024-04-17 13:44:01 -04:00
63e6ba596a
Change table syntax to {key:value} instead of {key=>value}
2024-04-13 13:39:44 -04:00
6c01eef851
Introducing the main() function
2024-04-12 13:09:31 -04:00
c73e96ff91
Add comparison operator <> and array method to sort by a custom
...
comparison function
2024-04-02 13:08:06 -04:00
838c9963fc
Adding a REPL
2024-03-30 12:14:24 -04:00
135e23094c
Improve codegen for table/array iteration by inlining the iteration
...
macros
2024-03-26 14:02:48 -04:00
5157988efa
Implement 'extern' functionality
2024-03-24 15:06:59 -04:00
a47bd2d569
Improvements to module imports
2024-03-19 23:29:32 -04:00
adbb07fdc2
Module imports
2024-03-19 14:22:03 -04:00
7c0a77df33
Handle function type annotations without returns better
2024-03-18 15:27:07 -04:00
d39e0aca2e
Implement parsing of 'pass'
2024-03-18 13:49:42 -04:00
df2e01c15e
Add some better file comments
2024-03-18 12:47:07 -04:00
46ee3fc0ef
Temporary fix for newlines between statements
2024-03-17 15:59:06 -04:00
1647fb4bed
Unary ops should only parse terms not full expressions
2024-03-17 15:23:42 -04:00
9932841530
Improve comprehensions for both arrays and tables
2024-03-17 14:46:36 -04:00
ecf425fb9a
Rearrange expression/statement compilation code
2024-03-14 13:28:30 -04:00
d5d3f564bb
Remove some shadowed variables
2024-03-14 02:48:07 -04:00
fdc3eadba2
Array comprehensions
2024-03-14 02:37:56 -04:00
a33f730617
Rearranging some files
2024-03-10 00:03:21 -05:00