Commit Graph

390 Commits

Author SHA1 Message Date
34d98f067e For big or arbitrarily big integers not known to be constant, do full
Int$plus(a,b) logic so it's definitely correct and doesn't error.
2024-09-05 12:41:13 -04:00
e91b53f070 Improve codegen for loops by not adding extra braces and just using the
integer literal for 64-bit ints when iterating over a numeric value
2024-09-05 12:28:28 -04:00
d801681026 Add early outs for (or) and (and) reducers 2024-09-05 11:51:07 -04:00
0d3c8e16bc Add iteration-over-comprehension optimization 2024-09-05 11:23:00 -04:00
e2118b7407 Better enum messaging for CLI arg parsing 2024-09-04 21:33:06 -04:00
453c3610f9 Support parsing enums (without members) 2024-09-04 16:21:27 -04:00
3513b94fc7 Unify parsing code to correctly handle parsing integers and numbers with
a &success boolean. Check for overflow as well.
2024-09-04 16:08:34 -04:00
973b1c55c2 Fix array CLI arguments 2024-09-04 15:30:38 -04:00
e9796e1433 Improve command line parsing (no more cords) 2024-09-04 15:23:23 -04:00
0d098c118b Add automatic --help to print usage 2024-09-04 14:34:24 -04:00
ac507da537 Remove unused code path for >> f := use ./foo.tm 2024-09-04 13:49:41 -04:00
d1b2e9f598 Disallow 'use' statements that aren't top level 2024-09-04 13:48:26 -04:00
f605df8230 Minor codegen cleanup 2024-09-04 13:37:00 -04:00
97a964aa86 Implicit filename for table getting 2024-09-04 05:05:31 -04:00
af15e89303 For arrays, use implicit filename from macro 2024-09-04 05:04:45 -04:00
1092185c84 Improve codegen by making test() even more concise 2024-09-04 05:01:21 -04:00
79c1e8f989 Don't put __SOURCE_FILE__ in header 2024-09-04 03:04:42 -04:00
ec688c11bb Clean up codegen so $Foo"..." comes out as foo$Foo("...") instead of
Text("...")
2024-09-04 00:18:03 -04:00
805082d299 Minor codegen cleanup Texts(...) 2024-09-03 23:35:42 -04:00
f60edfbe7f Improve codegen for doctests a little bit by using __SOURCE_FILE__ macro
and making assignments use (x = 4, &x) syntax instead of ({ x = 4; &x })
2024-09-03 23:32:02 -04:00
e15cb21cd5 Fix up CLI parsing 2024-09-03 21:09:11 -04:00
29a87ff325 Support literal Text("blah") for text that is constant ASCII strings 2024-09-03 14:48:54 -04:00
5feecff9d9 Deprecate Where and change channel API to use a boolean front value 2024-09-03 03:53:36 -04:00
5a78eb61c8 Bugfix for hex escapes adjacent to hex-like characters 2024-09-02 21:54:38 -04:00
620ebeab8d Fixing string methods 2024-09-02 20:22:13 -04:00
337aa911a9 Auto promote to C String from Text 2024-09-02 19:53:09 -04:00
6d7a359f8f Bugfix some text replacement things 2024-09-02 19:49:52 -04:00
80a09e6dba Fix up some integer and print statement stuff 2024-09-02 19:29:43 -04:00
b0a8404bd7 Fix enums/structs 2024-09-02 19:18:21 -04:00
00a3117803 Bugfix 2024-09-02 19:07:51 -04:00
94761d9a5a Fix some stuff 2024-09-02 19:05:06 -04:00
61e482f6f3 Initial WIP first past 2024-09-02 18:47:39 -04:00
a197875214 Bugfix for say() when length is >512, and added back the newline
optional parameter (default=yes)
2024-08-23 12:42:10 -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
2055439be4 Variables can no longer hold function pointers, only closure_t's. This
makes error reporting easier and prevents issues where some functions
could be assigned, but not others. Also change outputs so Void returns
don't show up when displaying types, now just: `func()`
2024-08-21 00:49:22 -04:00
3c4f477b84 Bugfix some copy-on-write cases for when pointers are automatically
derefenced for method calls
2024-08-20 16:20:41 -04:00
5b945d8fc6 Remove unused parameter and add some docs on arrays 2024-08-20 16:00:58 -04:00
934b843b1c Add .text_content as a field on DSLs instead of a method 2024-08-19 14:29:58 -04:00
ea6f9797be Support DSL constructor working on DSL itself 2024-08-19 13:23:59 -04:00
4e732a718d Restructure things so that DSL constructors do proper escaping 2024-08-19 13:23:02 -04:00
178dca6e88 Clean up codegen for strings that are just a single interpolated value 2024-08-19 13:14:36 -04:00
8c4210ba01 Support demoting int literals 2024-08-19 12:39:45 -04:00
752be14eed Fix some numeric precision issues with how nums are printed 2024-08-19 01:46:37 -04:00
14b4a674e8 Fix precision of compiled numbers 2024-08-19 01:32:27 -04:00
c422806d87 Make sure imported/used modules are initialized properly 2024-08-19 00:52:35 -04:00
8363d53bd2 Update channel API to take a Where parameter 2024-08-18 23:59:13 -04:00
9e07c6adc7 Add Channel:peek() 2024-08-18 23:31:36 -04:00
2e8c949fdc Rename push/pop to give/get, since it's not stack-ordered 2024-08-18 23:24:23 -04:00
7472837ee5 Add array:first(predicate:func(x:&T)->Bool)->@%T? 2024-08-18 22:28:04 -04:00