Commit Graph

187 Commits

Author SHA1 Message Date
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
934b843b1c Add .text_content as a field on DSLs instead of a method 2024-08-19 14:29:58 -04:00
4e732a718d Restructure things so that DSL constructors do proper escaping 2024-08-19 13:23:02 -04:00
8363d53bd2 Update channel API to take a Where parameter 2024-08-18 23:59:13 -04:00
b76fbd3beb Add Int:clamped() and Num:clamped() 2024-08-18 23:20:54 -04:00
1e4f41bc28 Remove duplicated line 2024-08-18 16:33:40 -04:00
9de57eaf65 Remove some num functions 2024-08-18 16:28:52 -04:00
a49870f810 Add primality testing and next_prime()/prev_prime() 2024-08-18 15:22:51 -04:00
da4d07c665 Fix up some bigint logic issues 2024-08-18 12:47:29 -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
bac188ce07 Change division and modulus to use euclidean division, plus fix up a few
integer bugs
2024-08-16 14:24:20 -04:00
04714e00d7 Add Bool:random(p=0.5) 2024-08-16 14:18:23 -04:00
e56fd1aa94 Add Int:sqrt() 2024-08-13 16:36:41 -04:00
e0223a4c20 Support ^ exponentiation for integers 2024-08-13 16:32:00 -04:00
9edace28e2 Fix ranges 2024-08-13 03:20:01 -04:00
9b9087bfef Get rid of slow_* int functions 2024-08-13 02:42:02 -04:00
d08f795794 Partially working first draft of bigints 2024-08-13 01:30:25 -04:00
2ecb5fe885 Add channels and threads 2024-08-11 14:47:34 -04:00
8d3d591312 Add Sets to the language 2024-08-10 15:15:38 -04:00
c045c54309 Add a Range datatype with creation methods like 5:to(10) and
modification methods like `range:by(2)` or `range:reversed()`
2024-08-05 14:40:28 -04:00
99b00530ce Change structs/enums so they allow for field/tag names that are C
keywords
2024-08-03 16:39:04 -04:00
17be975d3a Fix integer random functions so they correctly handle all representable
ranges
2024-08-03 16:23:28 -04:00
fb95bbb1d4 Deprecate array:pairs() and switch iterator functions to use enums 2024-07-20 16:45:13 -04:00
d3f14cf53c Support nested lambda closures 2024-07-14 14:13:23 -04:00
445f79cb70 Add iterator functions 2024-07-13 17:17:58 -04:00
0c15c74352 Clean up some type checking with math operations and metamethods 2024-07-01 11:43:18 -04:00
8724dcd821 Fix issue with using libraries 2024-06-19 16:09:22 -04:00
9f8be0c502 Support library name as a separate environment field from namespace 2024-06-16 16:08:35 -04:00
7a53e10826 Fix issue with type namespaces not getting properly prefixed by library
namespace
2024-06-16 15:12:00 -04:00
81d55cacb7 Do dynamic library symbol prefixing using 'patchelf' 2024-06-13 21:20:50 -04:00
39ac885125 Change c/header transpilation order and fix some issues 2024-06-08 14:39:52 -04:00
8c7d530080 Split header compilation into a separate function 2024-06-06 16:28:53 -04:00
c5c3be9e5d Deprecate Text.slice() 2024-05-20 15:27:42 -04:00
5b1960859f Hook up Text.has(), Text.trimmed(), Text.without() 2024-05-20 15:19:31 -04:00
7dddfb71a0 Add Text.slice() 2024-05-19 14:38:44 -04:00
1df26851d7 Add syntax for "inline C(...)" 2024-05-18 16:31:34 -04:00
a1d18fd422 Add C string type 2024-05-18 14:38:41 -04:00
02fe49a764 Deprecate interfaces (RIP) 2024-05-12 20:13:19 -04:00
d143c72b22 WIP, but functional interfaces 2024-05-12 13:50:06 -04:00
2e27b88c1b Improved syntax for optionals 2024-04-30 13:18:47 -04:00
803995aea2 Prevent doubling up file prefix 2024-04-23 12:25:27 -04:00
5fd85d7e0b Add Num.mix() 2024-04-22 14:49:36 -04:00
d2348f0894 Fix namespace vars 2024-04-21 15:08:53 -04:00
3590bf3407 Better imports for types 2024-04-21 14:58:33 -04:00
369c601a56 Invert escaping so user symbols get prepended with "$" and builtin
symbols don't
2024-04-16 13:50:07 -04:00
17cb6ffd88 Add Bool.from_text() 2024-04-10 13:33:40 -04:00
e6f78f1d89 Add from_text() method for ints/nums 2024-04-10 13:23:49 -04:00
04d9adc813 Switch naming convention to use '$' in symbols more 2024-03-29 12:54:31 -04:00
135e23094c Improve codegen for table/array iteration by inlining the iteration
macros
2024-03-26 14:02:48 -04:00
f21fc700bb Handle type namespaces in other modules 2024-03-22 01:52:00 -04:00
4592e95fa9 Pull namespaces from the type binding 2024-03-21 13:33:10 -04:00
adbb07fdc2 Module imports 2024-03-19 14:22:03 -04:00
df2e01c15e Add some better file comments 2024-03-18 12:47:07 -04:00
655b677895 Preface symbols with file prefix 2024-03-17 20:40:40 -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
00d4e98ba1 Extra lambda test 2024-03-09 16:08:03 -05:00
b04a1b3090 Implement lambdas and closures 2024-03-09 16:03:38 -05:00
8427037bb9 Refactor table methods to take table structs where possible 2024-03-08 14:33:54 -05:00
55b4528da6 Tweak environment order of operations and resolutions 2024-03-08 13:39:27 -05:00
139da8e55f Remove dead code 2024-03-08 13:04:18 -05:00
9479b3937c Just use mathlib symbols, don't redefine them 2024-03-07 00:44:57 -05:00
e29aa52460 Struct and enum methods and static members 2024-03-04 13:51:47 -05:00
0b7ca098ae Fix some bugs relating to NUL termination of strings 2024-03-04 01:34:12 -05:00
1f6aa4cac7 Add methods for text:clusters(), text:codepoints(), text:bytes() 2024-03-03 19:40:01 -05:00
8fab88c56f Rename Str -> Text 2024-03-03 18:15:45 -05:00
c607b97732 Add Num.near() function 2024-03-03 17:14:11 -05:00
c5f315e338 Num methods 2024-03-03 16:44:45 -05:00
74c86176cb Tweaks and improvements to built-in functions 2024-03-03 16:26:10 -05:00
bf5a725345 Definitively go with "Int" and "Num" over "Int64" and "Num64", plus add
Int__bits()
2024-03-03 13:37:05 -05:00
ec7a9e5f10 Initial pass at namespacing 2024-03-03 13:04:50 -05:00
4dc70c84d4 First working method calls 2024-02-29 13:49:24 -05:00
8171a38b71 Add type namespaces 2024-02-29 13:28:39 -05:00
55d44fe9f2 Tweaks 2024-02-27 12:46:14 -05:00
1e6df09900 Fix up some type namespace issues 2024-02-26 23:10:19 -05:00
115c75692b Better error checking 2024-02-26 23:02:09 -05:00
f9cc44f145 Fixing up enums 2024-02-20 13:06:03 -05:00
5ebbfc205a Add some more types 2024-02-18 01:02:39 -05:00
7355b2f7fe Change things up to use type params for all array and table methods 2024-02-17 18:38:29 -05:00
de3eeacfa0 Major cleanup 2024-02-17 16:56:19 -05:00
81ed05c7f8 Fixing up table stuff 2024-02-17 14:29:21 -05:00
9477195098 Fixing things up 2024-02-17 14:28:12 -05:00
317b8f5319 Progress towards environments 2024-02-15 13:43:46 -05:00