fc9a6f1416
Add RNGs to the language
2024-11-03 22:37:48 -05:00
52e3d3fe6f
Update Path:read_bytes() API to take a byte count
2024-11-03 16:58:12 -05:00
39a58bc129
Clean up behavior and syntax for unsigned bit shifts (<<<, >>>)
2024-11-03 16:06:26 -05:00
792743dff3
Add Int64:unsigned_left_shift() and :unsigned_right_shift()
2024-11-03 15:27:44 -05:00
87176ead2d
Add wrapping plus/minus for fixed-size integers
2024-11-03 15:04:28 -05:00
be2673ef2b
Make Text:find() return an optional int
2024-11-02 13:51:58 -04:00
7cd67dd7f3
Add file globbing
2024-10-29 14:36:49 -04:00
052316261a
Finish deprecating stack refs with &
2024-10-27 20:35:30 -04:00
0d615443dc
Update DateTime API to have separate methods for getting each component
...
instead of get(...)
2024-10-27 18:41:00 -04:00
67702b2d77
Fix issue with non-ID chars in filenames
2024-10-10 01:09:17 -04:00
074cf22ad4
Change function syntax from func(args)->ret
to func(args -> ret)
2024-10-09 13:26:28 -04:00
a25699282d
Tidy up some function annotations to use func(x,y:Foo) syntax instead of
...
func(x:Foo,y:Foo)
2024-10-09 02:22:32 -04:00
1a6ce0047b
Rename TypeInfo -> TypeInfo_t and fix up some typeinfo code
2024-09-30 14:39:30 -04:00
793717729a
Parameterize with timezones
2024-09-30 01:53:39 -04:00
d714519809
Fix some timezone issues
2024-09-29 23:09:37 -04:00
05515d8645
Add DateTime
2024-09-29 20:06:09 -04:00
9b15799e73
Support iterating over thunks that always return non-null values (useful
...
for infinite loops)
2024-09-27 14:45:06 -04:00
ed8b8901c0
Add '$' prefix on all user code
2024-09-24 14:54:22 -04:00
800e386105
Rename from_unsafe_text
to without_escaping
2024-09-24 13:26:49 -04:00
89c427172a
Support creating parent directories as needed (mkdir -p) and also set a
...
better default permission for new dirs
2024-09-23 14:53:44 -04:00
b432fc82c7
Add shell escaping for arrays of text
2024-09-23 14:36:20 -04:00
708e7b9070
Remove dead code
2024-09-18 01:02:13 -04:00
aaa51fc734
Perform topological ordering when compiling typedefs so users don't need
...
to think about ordering their definitions.
2024-09-17 15:17:13 -04:00
9703ca45f0
Update Shell API to have byte-based mode and by_line() just like files
2024-09-16 17:02:20 -04:00
6d0f04375d
Have Text:matches() return an optional array of matches
2024-09-16 15:12:54 -04:00
3cbacbd675
Add some basic pattern matching/suffix code for paths
2024-09-16 14:04:51 -04:00
835eb7e896
Add optional:or_exit(...)
2024-09-15 16:42:42 -04:00
33876323aa
Update path reading APIs to use optional values instead of erroring
2024-09-15 15:50:28 -04:00
e422079fcc
Add a Byte datatype
2024-09-15 15:33:47 -04:00
2b05560849
Fix Path:by_line() iterator
2024-09-14 00:09:18 -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
fb6dc0a8b9
Fix up CString:as_text()
2024-09-12 03:41:44 -04:00
fc98d05ef9
Add sleep()
2024-09-12 03:20:17 -04:00
d4d803fa15
Make sure global types don't get library's prefix
2024-09-12 02:24:55 -04:00
bd111dbe2e
Automatically interpolate ints for pattern/shell/path
2024-09-12 01:24:26 -04:00
3443edf760
Use optionals for iterators
2024-09-11 22:28:43 -04:00
db0d5a1c20
Change *:from_text() methods to return optional values and set up CLI
...
parsing to use that approach
2024-09-11 14:53:48 -04:00
7126755275
Add optional types
2024-09-11 01:31:31 -04:00
d356309023
Add (/path):by_line()
2024-09-09 22:16:40 -04:00
3657257330
Improve tool
2024-09-09 17:04:46 -04:00
23de8e1f5a
Fix up some stuff with path escaping
2024-09-09 16:54:08 -04:00
0bc207266e
Add Path.from_unsafe_text() etc
2024-09-09 16:09:21 -04:00
e61096d6eb
Fix up ini example
2024-09-09 15:02:47 -04:00
dad567bfc8
Restore path interpolation
2024-09-09 14:37:13 -04:00
e16792d5eb
Add Text.starts_with() and Text.ends_with()
2024-09-09 05:31:25 -04:00
6f174aa85d
Fix some logic for extensions and base names
2024-09-09 04:19:31 -04:00
3081da3dd0
Add Path.base_name(), Path.parent(), Path.extension()
2024-09-09 03:51:35 -04:00
a306f94557
Add mktemp functionality
2024-09-09 02:43:15 -04:00
1fbe2cb5dd
For parsing paths, use nested parens: (./foo), also add some methods
2024-09-09 02:02:08 -04:00
6752c60f32
More methods
2024-09-09 01:48:37 -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
a4fff5cb49
Bugfix for default arguments not supporting enclosing types
2024-09-08 21:55:15 -04:00
aeed1992e9
Fix nearly every GCC warning and add __attribute__((pure/const)) where
...
appropriate
2024-09-08 17:17:15 -04:00
cf7ea6fbef
Add exit() function
2024-09-07 00:44:47 -04:00
594d1a627f
Fix some C string and path resolving issues
2024-09-06 15:39:00 -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
44892df4c5
Add Text.trim()
2024-09-06 00:03:28 -04:00
04c8fb0362
Replace $Type with Type$info for builtin TypeInfos
2024-09-05 15:31:54 -04:00
391c1b6bde
Rename table_t -> Table_t
2024-09-05 14:57:31 -04:00
abe45a3c25
Rename array_t -> Array_t
2024-09-05 14:56:37 -04:00
3a556296b6
Add Text:repeat()
2024-09-04 21:22:03 -04:00
00543b4e87
Add Text.map(pat, fn)
2024-09-04 21:02:37 -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
05bc754679
Add ask() as a way to get user input
2024-09-04 14:55:00 -04:00
1092185c84
Improve codegen by making test() even more concise
2024-09-04 05:01:21 -04:00
df844946f7
Add Text:matches() for convenience and performance
2024-09-04 00:34:27 -04:00
b8bb4ada8b
Add recursive mode to text replacement and update docs
2024-09-03 23:16:45 -04:00
850fc8fbe1
Clean up text replacement API to use backrefs instead of match_chain()
2024-09-03 22:56:53 -04:00
c14ed3e3e7
Add Text.replace_all({Pattern:Text}) and tweak API for replacement to
...
support placeholders
2024-09-03 20:48:11 -04:00
3c2c1a308b
Bugifx for Pattern.from_unsafe_text
2024-09-03 15:27:13 -04:00
6622fb8089
Bugfix for text method lookups
2024-09-03 15:25:33 -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
5feecff9d9
Deprecate Where
and change channel API to use a boolean front
value
2024-09-03 03:53:36 -04:00
6c22999ede
Add text slicing
2024-09-02 23:56:08 -04:00
5aa5a5e99b
Fix some stuff around Text:find() and text indexing
2024-09-02 23:47:16 -04:00
5d6fa135b1
Add Text:find_all()
2024-09-02 23:26:55 -04:00
6d7e09bf18
Add Text:split() and use that with an empty pattern instead of Text:clusters()
2024-09-02 23:07:08 -04:00
9214e621bf
Add Text:lines()
2024-09-02 22:57:49 -04:00
708acda54e
WIP fixes for synthetic graphemes and adding some text conversion
...
methods
2024-09-02 22:30:19 -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
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