Commit Graph

85 Commits

Author SHA1 Message Date
Mark
385019e43c replace Bool type with Bool=True/False + bugfix
Bool is a type alias for True/False

Bugfix:

[[T] String]
{
  [[T] Int]
  // this would use the outer T (String),
  // but now it correctly uses the inner T (Int).
  [T] 1
}
2024-08-29 15:04:32 +02:00
Mark
25c605d801 transform read_line to new func 2024-07-03 13:39:15 +02:00
Mark
3a53290f9b better now yay 2024-07-03 12:54:57 +02:00
Mark
08a82733e9 convert more stdlib functions and add rounding
converted with_base and with_math
2024-07-03 11:59:22 +02:00
Mark
50928cca1d [no version bump yet] better and safer stdlib impl
only transformed configs/with_string so far,
but other configs/* should follow soon.
also, this will help with implementing
new stdlib functions in the future.
2024-07-02 22:04:42 +02:00
Mark
18cd3ee0ae functions no longer modify state, funcrefs exist
you can use &func as a function, too.
this allows the function to mutate its
inner state.
2024-07-01 20:51:09 +02:00
Mark
7a945e80ba improve and move theming traits
move pretty_print.rs from mers to mers_lib
2024-06-26 12:54:04 +02:00
Mark
a78367f27c add support for custom theming in mers errors
this also includes support for the NoTheme,
a theme which doesn't add any color to mers'
output.
If you compile mers with --no-default-features,
the `colored` dependency will disappear and
mers_lib will fall back to NoTheme.
2024-06-26 01:02:19 +02:00
Mark
94111a5eaa add configs/bundle_pure 2024-06-23 22:14:29 +02:00
Mark
688e28c171 nicer errors 2024-06-21 15:50:41 +02:00
Mark
b11e4017ed add divbyzero error for integer division 2024-06-20 15:57:53 +02:00
Mark
f59c0941f5 add more graceful errors (w/ stacktrace) to stdlib 2024-06-20 15:52:57 +02:00
Mark
cd21c2171e improve panic function, add stacktrace 2024-06-19 12:35:23 +02:00
Mark
4770e3f939 fix readline 2024-06-17 18:47:49 +02:00
Mark
1c6cd90d59 fix read_line 2024-06-17 18:33:22 +02:00
Mark
206457489c read_line now returns (String)/()
so that closed stdin is handled by the programmer
instead of (probably) causing an infinite loop
2024-06-17 18:26:27 +02:00
Mark
3e33d963f5 remove RunCommandError custom type,
replace it with `{ run_command_error: String }`
instead, which is more standard mers style
2024-06-14 19:49:41 +02:00
Mark
1e2f0cb63c add _ wildcard for type definitions
and make line/file indicators in errors
gray instead of fully white
2024-06-12 20:11:22 +02:00
Mark
945e19e10a fix list cloning not cloning inner values
this would allow mutating values
through a list passed by value,
but now it doesn't, which is
how it always should have been.
2024-04-30 13:58:40 +02:00
Mark
2742112b09 Type no longer implements MersType 2024-04-16 13:38:50 +02:00
Mark
1f44b66f08 fix a deadlock when using recursive trys 2024-04-15 17:26:06 +02:00
Mark
45a46f32a5 add Byte to replace Int when appropriate 2024-04-15 14:07:05 +02:00
Mark
dab8fd9584 add missing files 2024-03-22 15:39:02 +01:00
Mark
8690263b1c V7: Make .try a language feature, this makes try_allow_unused unnecessary. remove try and try_... functions. 2024-03-22 15:38:09 +01:00
Mark
dc2db1d0e8 make list.get_mut return a 1-tuple on success, and fix reference type being incomplete 2024-02-22 19:41:03 +01:00
Mark
05c88b7826 fix variable shadowing not working (how was this not noticed until now??) 2024-02-22 19:13:50 +01:00
Mark
4fb84741ef . 2024-02-22 16:31:05 +01:00
Mark
f3f2c13702 add loop syntax, remove loop function, change CLI 2024-02-22 13:34:02 +01:00
Mark
d124bff77f drop stdin on childproc_await to prevent deadlocks, add flush() call after childproc_write_* 2024-02-17 12:06:04 +01:00
Mark
6fdfba82a0 add childproc_write_* functions 2024-02-17 11:59:56 +01:00
Mark
5d752c9969 change parse_int/float and debug, add spawn_command and childproc_* functions 2024-02-17 11:46:07 +01:00
Mark
6d6853cc9f add function type annotation (Input1 -> Output1, Input2 -> Output2) 2024-02-15 10:55:13 +01:00
Mark
44da27b414 Add chain function and chained iterator, which behaves like Rust's flatten 2024-02-14 17:13:05 +01:00
Mark
0226dbd02b add missing file, bump version 2024-01-31 19:23:01 +01:00
Mark
42ca5ae3f0 refine string functions in stdlib 2024-01-31 19:20:22 +01:00
Mark
16cdcddc72 . 2024-01-16 12:06:55 +01:00
Mark
9fe981fc6c fix bug where subtypes of list didn't include type of empty list 2024-01-16 12:00:16 +01:00
Mark
2d373d1ba7 make some types/fields public 2024-01-16 10:38:45 +01:00
Mark
c08e08f8a9 add try_allow_unused function 2023-12-18 12:07:08 +01:00
Mark
49d13d92cc improve error messages
- fix bug where `thread` function wouldn't error when being called on a non-function
- add compile error when a function in `try` is never used, because this is almost certainly a mistake and will cause mers to unexpectedly go down the "wrong" code path.
- some small changes so mers_lib can be used in another project
2023-12-14 19:24:43 +01:00
Mark
d70e7ec066 fix bug in hooks...
...that prevented the language server from seing inner statements of functions
2023-12-07 09:22:19 +01:00
Mark
d3164254b3 improve support for #include in language server 2023-12-06 18:58:10 +01:00
Mark
0759b769e0 early prototype of a language server
currently only provides hover info (but that's already quite useful for debugging)
2023-12-05 23:04:17 +01:00
Mark
8b60da8d99 relative paths in #include are relative to the file's parent directory, if possible 2023-12-05 09:55:00 +01:00
Mark
48c1381194 Object field order matters! 2023-11-30 17:48:24 +01:00
Mark
3d1ce384d0 add objects and object types 2023-11-30 15:44:51 +01:00
Mark
9c0d55788f change debug function 2023-11-30 11:44:20 +01:00
Mark
782460e472 add get_mut function for lists 2023-11-29 16:26:51 +01:00
Mark
0a9eea2045 fix bug where error would reference wrong file 2023-11-24 13:19:38 +01:00
Mark
12af47d18a fix bug where #include included files would be able to access local variables and custom types. now, only globals are shared. 2023-11-24 12:51:54 +01:00