dearblue
e476d9a344
Need to restore the GC arena after some function calls
...
When calling `mrb_equal()` or `mrb_funcall()` family functions, the GC arena should be restored if the loop is repeated by a non-immediate return value.
In my opinion, restoring the GC arena is unnecessary when a non-immediate (true) value causes the function to return (e.g. the `mrb_ary_index_m()` function).
The patch does not take into account the case of recursive calls and may be incomplete.
2024-09-03 21:29:06 +09:00
Yukihiro "Matz" Matsumoto
3c5baac5c5
mruby-sprintf: fix a bug with negative octals
...
Leading octal digit may be 1, 3, 7 unlike binary or hexadecimal.
2024-07-30 11:33:18 +09:00
Yukihiro "Matz" Matsumoto
99c078bb6b
mruby-bigint (mrb_bint_2comp): simplify using mpz_2comp()
2024-07-25 16:18:49 +09:00
Yukihiro "Matz" Matsumoto
a77bc25a5f
mruby-sprintf: support dots expression of negative integer format
...
For specifiers assume unsigned integers, negative numbers show dots (..)
to indicate virtual infinite 1s at the MSB side of 2's compliment.
2024-07-09 11:13:55 +09:00
Yukihiro "Matz" Matsumoto
80fec16cb6
mruby-sprintf: inline sign_bits() function
2024-07-09 10:48:07 +09:00
Yukihiro "Matz" Matsumoto
d249c2e939
mruby-sprintf: separate filling high bits and converting negatives
2024-07-09 10:40:46 +09:00
Yukihiro "Matz" Matsumoto
0ea1549faa
mruby-sprintf: reorder functions
...
In addition, internal function `mrb_str_format()` is made `static`.
2024-07-06 08:45:19 +09:00
Yukihiro "Matz" Matsumoto
bd502f6d7b
mruby-sprintf: support Big integers for %d etc.
2024-07-04 22:51:14 +09:00
Yukihiro "Matz" Matsumoto
aea3e7aedd
mruby-sprintf: raise ArgumentError for % at the bottom
2024-05-03 07:46:45 +09:00
Yukihiro "Matz" Matsumoto
ca26f41b57
mruby-sprintf: remove unnecessary assignment
2024-04-18 15:48:45 +09:00
Yukihiro "Matz" Matsumoto
89f7bb1056
use more lightweight mrb_funcall_argv instead of mrb_funcall_id
2023-06-12 14:22:04 +09:00
Yukihiro "Matz" Matsumoto
2f7f797473
remove extra spaces before ;
2023-05-22 12:05:35 +09:00
Yukihiro "Matz" Matsumoto
c32f7915fb
reformat else clause indentation style
2023-05-20 00:21:01 +09:00
Yukihiro "Matz" Matsumoto
a7232ecf8d
mruby-sprintf (mrb_str_format): fixed integer size confusion
...
Declared as int, checked as mrb_int.
2022-12-06 08:31:30 +09:00
Yukihiro "Matz" Matsumoto
551d603d9c
mruby-sprintf: remove unnecessary format specifier
2022-11-26 23:22:50 +09:00
Yukihiro "Matz" Matsumoto
9c5dc42e59
small cosmetic changes.
...
I prefer `i++` style unless absolutely necessary.
This commit is an addition to 41e4148.
2022-11-19 17:11:56 +09:00
Yukihiro "Matz" Matsumoto
71a1d0ad26
mruby-sprintf: fix a debug error message (remove additional "1").
2022-11-15 13:27:31 +09:00
Yukihiro "Matz" Matsumoto
6bcbfed8bb
mruby-sprintf/sprintf.c: check integer overflow before casting.
2022-11-11 08:08:07 +09:00
Yukihiro "Matz" Matsumoto
4e9773ae3d
readint.c (mrb_int_read): new function.
...
We no longer use `mrb_read_int` which is kinda compatible with `strtol`.
2022-11-07 16:09:31 +09:00
Yukihiro "Matz" Matsumoto
c6b7029cdc
mruby-sprintf: fix int and mrb_int mixtures.
2022-11-04 13:11:36 +09:00
Yukihiro "Matz" Matsumoto
b58094c881
mruby-sprintf/sprintf.c: call mrb_str_resize() less often.
2022-06-29 15:03:41 +09:00
Yukihiro "Matz" Matsumoto
61700dbb0a
mruby-sprintf/sprintf.c: raise an error with MRB_NO_FLOAT.
2022-04-25 10:01:09 +09:00
Yukihiro "Matz" Matsumoto
e5e7bd29ef
sprintf.c: width may have been INT_MAX.
...
Now `width` is limited to `INT16_MIN..INT16_MAX`.
2021-09-14 14:12:56 +09:00
Yukihiro "Matz" Matsumoto
79bc8e2539
string.h: rename mrb_str_to_inum to mrb_str_to_integer.
...
Consistent naming: `integer` to represent integer packed in `mrb_value`
instead of `inum`.
2021-09-07 14:31:56 +09:00
Yukihiro "Matz" Matsumoto
2c41739b66
mruby.h: obsolete mrb_to_str().
...
Replace them by `mrb_ensure_string_type()`.
2021-09-01 07:00:55 +09:00
dearblue
5a57602860
Organize the include of header files
...
- `#include <math.h>` is done in `mruby.h`.
Eliminate the need to worry about the `MRB_NO_FLOAT` macro.
- Include mruby header files before standard header files.
If the standard header file is already placed before `mruby.h`, the standard header file added in the future tends to be placed before `mruby.h`.
This change should some reduce the chances of macros that must be defined becoming undefined in C++ or including problematic header files in a particular mruby build configuration.
2021-08-21 15:42:57 +09:00
Yukihiro "Matz" Matsumoto
5c804cf68f
Remove redundant include headers.
...
- stdlib.h
- stddef.h
- stdint.h
- stdarg.h
- limits.h
- float.h
2021-07-25 13:07:10 +09:00
Yukihiro "Matz" Matsumoto
49af1fca03
readint.c: add new function mrb_int_read.
...
Difference from `strtoul(3)`:
* reads `mrb_int` based on configuration
* specifies the end of the string
* no sign interpretation
* base 10 only
2021-06-11 15:14:17 +09:00
Yukihiro "Matz" Matsumoto
62f4cc8cd1
sprintf.c: check value range before type casting.
2021-06-10 18:42:51 +09:00
Yukihiro "Matz" Matsumoto
972cc8b5a8
sprintf.c: fix mrb_int and int mixture errors.
2021-06-07 23:26:06 +09:00
Yukihiro "Matz" Matsumoto
be647acd3e
sprintf.c: avoid object allocation in integer formatting.
2021-05-30 19:57:56 +09:00
Yukihiro "Matz" Matsumoto
8a4bcc58c9
numeric.c: introduce mrb_int_to_cstr() to dump mrb_int.
...
* refactor `mrb_integer_to_str()`
* refactor `mrb_str_format()`
2021-05-30 08:15:51 +09:00
Yukihiro "Matz" Matsumoto
b9bde0c918
mruby-sprintf: reduce float digits to avoid test failure.
...
Too many digits to fit in single precision float numbers, so that tests
fail when `MRB_USE_FLOAT32` defined.
2021-05-22 14:46:37 +09:00
Yukihiro "Matz" Matsumoto
5c7fe225a6
fp_fmt.c: remove mrb_float_to_cstr().
...
The function was intended to be a utility function for `mruby-sprintf`.
The functionality was integrated into `sprintf.c`.
2021-05-22 14:16:55 +09:00
Yukihiro "Matz" Matsumoto
f0e1d575f2
sprintf.c: remove specifiers %a and %A.
...
`fmt_fp.c` does not support those specifiers. In addition, I believe no
one uses hexadecimal representation of float values.
2021-05-21 08:13:37 +09:00
Yukihiro "Matz" Matsumoto
5eebbd7df2
Global renaming regarding integer and float.
...
Consistent number conversion function names:
* `mrb_value` to immediate (C) value
* `mrb_int()` -> `mrb_as_int()`
* `mrb_to_flo()` -> `mrb_as_float()`
* `mrb_value` to `mrb_value` (converted)
* `mrb_to_int()'
* `mrb_Integer()` - removed
* `mrb_Float()` -> `mrb_to_float`
Consistent function name (avoid `_flo` suffix):
* `mrb_div_flo()` -> `mrb_div_float`
2021-05-17 15:07:05 +09:00
Yukihiro "Matz" Matsumoto
ea7f1953c3
Rename mrb_fixnum_to_str to mrb_integer_to_str.
2021-05-17 13:59:01 +09:00
Yukihiro "Matz" Matsumoto
080fdbf9e8
Rename mrb_flo_to_fixnum to mrb_float_to_integer.
2021-05-17 13:58:54 +09:00
John Bampton
9d32d440eb
feat(CI): add the GitHub Super Linter
...
The GitHub Super Linter is a more robust and better supported
tool than the current GitHub Actions we are using.
Running these checks:
ERROR_ON_MISSING_EXEC_BIT: true
VALIDATE_BASH: true
VALIDATE_BASH_EXEC: true
VALIDATE_EDITORCONFIG: true
VALIDATE_MARKDOWN: true
VALIDATE_SHELL_SHFMT: true
VALIDATE_YAML: true
https://github.com/marketplace/actions/super-linter
https://github.com/github/super-linter
Added the GitHub Super Linter badge to the README.
Also updated the pre-commit framework and added
more documentation on pre-commit.
Added one more pre-commit check: check-executables-have-shebangs
Added one extra check for merge conflicts to our
GitHub Actions.
EditorConfig and Markdown linting.
Minor grammar and spelling fixes.
Update linter.yml
2021-04-16 16:37:52 +09:00
Yukihiro "Matz" Matsumoto
3252518a3c
Fix tests to work with MRB_USE_FLOAT32; fix #5329
2021-02-07 14:55:45 +09:00
Yukihiro "Matz" Matsumoto
17ecf14511
Revert "Minimize the changes in #5277 "
...
This reverts commit dc51d89ac2 .
2021-01-26 10:57:07 +09:00
Yukihiro "Matz" Matsumoto
dc51d89ac2
Minimize the changes in #5277
...
Instead of including `mruby/presym.h` everywhere, we provided the
fallback `mruby/presym.inc` under `include/mruby` directory, and specify
`-I<build-dir>/include` before `-I<top-dir>/include` in `presym.rake`.
So even when someone drops `-I<build-dir>/include` in compiler options,
it just compiles without failure.
2021-01-22 18:38:53 +09:00
KOBAYASHI Shuji
90b53f4c29
Avoid including presym.inc in existing header files
...
Addressed an issue where existing programs linking `libmruby.a` could only
be built by adding `<build-dir>/include` to compiler's include path.
2021-01-11 09:21:07 +09:00
Yukihiro "Matz" Matsumoto
4585c360e4
Remove duplicated remove_sign_bits() call.
2021-01-05 21:09:46 +09:00
Yukihiro "Matz" Matsumoto
d55367582c
Allow negative integer value formatting in base 8 and 16.
2021-01-02 20:28:29 +09:00
John Bampton
940dec5e7d
Fix spelling
2020-12-13 18:38:22 +10:00
KOBAYASHI Shuji
3d056d084a
Rename MRB_{ENABLE,DISABLE}_ to MRB_{USE,NO}_; close #5163
...
| Previous Name | New Name |
|------------------------------|-------------------------|
| MRB_ENABLE_ALL_SYMBOLS | MRB_USE_ALL_SYMBOLS |
| MRB_ENABLE_SYMBOLL_ALL | MRB_USE_ALL_SYMBOLS |
| MRB_ENABLE_CXX_ABI | MRB_USE_CXX_ABI |
| MRB_ENABLE_CXX_EXCEPTION | MRB_USE_CXX_EXCEPTION |
| MRB_ENABLE_DEBUG_HOOK | MRB_USE_DEBUG_HOOK |
| MRB_DISABLE_DIRECT_THREADING | MRB_NO_DIRECT_THREADING |
| MRB_DISABLE_STDIO | MRB_NO_STDIO |
| ENABLE_LINENOISE | MRB_USE_LINENOISE |
| ENABLE_READLINE | MRB_USE_READLINE |
| DISABLE_MIRB_UNDERSCORE | MRB_NO_MIRB_UNDERSCORE |
| DISABLE_GEMS | MRB_NO_GEMS |
* `MRB_ENABLE_SYMBOLL_ALL` seems to be a typo, so it is fixed.
* `MRB_` prefix is added to those without.
* The previous names can also be used for compatibility.
2020-11-21 21:14:40 +09:00
dearblue
f0a64329b1
Prohibit array changes by "a"/"*" specifier of mrb_get_args()
...
The "a"/"*" specifier of the `mrb_get_args()` function will now return `const mrb_value *`.
This is because it is difficult for the caller to check if it is an array object and write-barrier if necessary.
And it requires calling `mrb_ary_modify()` on the unmodified array object, which is also difficult (this is similar to #5087 ).
2020-10-22 22:55:35 +09:00
Yukihiro "Matz" Matsumoto
3ff2757bf7
Fix mrb_int_mul_overflow() to check either operand being zero.
2020-10-12 18:20:22 +09:00
Yukihiro "Matz" Matsumoto
4dcc1819c9
Embed debug information to resolve Windows VC's issue.
2020-10-12 18:20:22 +09:00