Commit Graph

105 Commits

Author SHA1 Message Date
Mark
ac6b405a3c make : syntax an associated function call 2025-02-07 21:06:09 +01:00
Mark
e07010dcfc add object field getting syntax obj:field 2025-02-07 17:50:59 +01:00
Mark
6b2ae08731 add fs module 2025-02-04 15:45:02 +01:00
Mark
414017402e list.insert/.replace/.remove replace list.get_mut 2024-12-17 21:12:13 +01:00
Mark
e34d841f9a fix initializing object from <unreachable> not working 2024-11-07 23:00:08 +01:00
Mark
6630542644 fix negative ranges 2024-11-07 21:34:29 +01:00
Mark
b53c245776 fix empty ranges not being empty 2024-11-07 21:28:19 +01:00
Mark
923652eca9 add iterable ranges (range_inc / range_exc) 2024-11-07 16:53:15 +01:00
Mark
bdf7fb9380 fix max function 2024-10-23 12:06:58 +02:00
Mark
f979100bfb fix "weird" behavior with globalinfo not updating 2024-10-14 01:52:19 +02:00
Mark
8868746e17 add flag to change exit behavior to RuntimeError 2024-10-14 00:30:57 +02:00
Mark
8e07f240cc allow using other stdin/stdout/stderr via RunInfo 2024-10-14 00:23:14 +02:00
Mark
4e73ec0201 move exit: fn from base to stdio 2024-10-12 01:00:23 +02:00
Mark
d83f6f942f bugfix for builtin functions using 3-tuples 2024-10-11 23:42:14 +02:00
Mark
203f701758 fix types (see prev. commit) 2024-10-11 23:05:53 +02:00
Mark
bdd7260c12 bugfix, functions added via config have bad infos
functions added to a Config may have
`info::neverused()` as their info,
which also makes the DisplayInfo part of the info
not work, which can be a problem if the function
uses its infos to define object fields
or to format an object.
2024-10-11 22:18:58 +02:00
Mark
754dd5df40 the math does math... at compile time, in types 2024-10-02 01:46:50 +02:00
Mark
c17ea580b2 make objects work better, especially destructuring 2024-09-28 01:51:20 +02:00
Mark
062f100d40 show custom type names in error messages 2024-08-31 13:14:12 +02:00
Mark
817ed25f96 add warning to if-statement in check mode
warning is shown if the condition of an
if statement can never be true or false,
and the user used the check command.
warnings are not shown when you use `mers run`.
2024-08-29 15:48:01 +02:00
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