| Age | Commit message (Collapse) | Author | |
|---|---|---|---|
| 2021-08-26 | etc.c: keep full `float32` with `MRB_64BIT` and `MRB_USE_FLOAT32`. | Yukihiro "Matz" Matsumoto | |
| 2021-08-26 | boxing_word.h: rename configuration macro name. | Yukihiro "Matz" Matsumoto | |
| `MRB_WORDBOX_USE_HEAP_FLOAT` instead of `MRB_USE_FLOAT_FULL_PRECISION`. | |||
| 2021-08-26 | value.h: reconstruct `mrb_ro_data_p()`. | Yukihiro "Matz" Matsumoto | |
| * use predefined `mrb_ro_data_p()` for user-mode Linux and macOS * define `MRB_LINK_TIME_RO_DATA_P` if predefined one is used * configure macro `MRB_USE_LINK_TIME_RO_DATA_P` is no longer used * contributions for new platforms are welcome | |||
| 2021-08-24 | Merge pull request #5535 from dearblue/get-args-frozen | Yukihiro "Matz" Matsumoto | |
| Checks the frozen object with `mrb_get_args()` | |||
| 2021-08-23 | Checks the frozen object with `mrb_get_args()` | dearblue | |
| This now works with the `+` modifier that can be added after each specifier. - `nil` is bypassed. - The `s` and `z` specifiers are received in C as a `const char *`, so adding a `+` modifier will raise an exception. - The `a` specifier is received in C as `const mrb_value *`, so adding a `+` modifier will raise an exception. - The `|`, `*`, `&`, `?` and `:` specifiers with `+` modifier raises an exception. If `!`/`+` exceeds one for each specifier, an exception will occur in the subsequent processing. This is the same behavior as before. | |||
| 2021-08-23 | Integrate each element expansion process of the argument | dearblue | |
| The previously used `given` variable will be merged into the `pickarg` pointer variable, which points to the argument currently being processed for each loop. | |||
| 2021-08-23 | numeric.c: fix: `-0.0.abs` returned `-0.0`. | Yukihiro "Matz" Matsumoto | |
| 2021-08-21 | Organize the include of header files | dearblue | |
| - `#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 | etc.c: clear `mrb_value` if `sizeof(void*)` is bigger than `sizeof(mrb_float)`. | Yukihiro "Matz" Matsumoto | |
| 2021-08-21 | boxing_word.h: embed `mrb_float` in `mrb_value` if possible. | Yukihiro "Matz" Matsumoto | |
| Embedding reduce memory consumption, sacrificing precision. It clips least significant 2 bits from `mrb_float`, so if you need to keep float precision, define `MRB_USE_FLOAT_FULL_PRECISION`. `MRB_WORD_BOXING` and `MRB_INT64`: `mrb_float` (`double`) is embedded in `mrb_value` clipped last 2 bits. `MRB_WORD_BOXING` and `MRB_INT64` and `MRB_USE_FLOAT_FULL_PRECISION`: `mrb_float` is allocated in the heaps wrapped by `struct RFloat`. `MRB_WORD_BOXING` and `MRB_INT32` and `MRB_USE_FLOAT32`: `mrb_float` (`float`) is embedded in `mrb_value` clipped last 2 bits. In addition, to reserve bit space in the `mrb_value`, maximum inline symbol length become 4 (instead of 5) in the configuration. `MRB_WORD_BOXING` and `MRB_INT32`: Assume `MRB_USE_FLOAT_FULL_PRECISION` and allocate Float values in heap. | |||
| 2021-08-19 | symbol.c: reduce memory by avoiding alignment gaps. | Yukihiro "Matz" Matsumoto | |
| In additions: * use bitmap for flags * BER integer compression for length | |||
| 2021-08-19 | gc.c: remove unused `struct`s from `RVALUE`. | Yukihiro "Matz" Matsumoto | |
| 2021-08-18 | string.c: `mrb_str_to_cstr()` should always return a mutable string. | Yukihiro "Matz" Matsumoto | |
| 2021-08-18 | debug.c: export integer compressing functions. | Yukihiro "Matz" Matsumoto | |
| - mrb_packed_int_len() - mrb_packed_int_encode() - mrb_packed_int_decode() | |||
| 2021-08-14 | error.c: the error message may contain `NUL` character. | Yukihiro "Matz" Matsumoto | |
| 2021-08-13 | Check the class with `I` specifier of `mrb_get_args()` | dearblue | |
| Previously, the `I` specifier only checked if the object was `MRB_TT_ISTRUCT`. So it was at risk of getting pointers to different C structs if multiple classes were to use the `MRB_TT_ISTRUCT` instance. Change this behavior and change the C argument corresponding to the `I` specifier to `(void *, struct RClass)`. This change is not compatible with the previous mruby. Please note that if the user uses the previous specifications, `SIGSEGV` may occur or the machine stack may be destroyed. resolve #5527 | |||
| 2021-08-12 | Revert "Drop unnecessary upper procs linked from class/module/def syntax" | Yukihiro "Matz" Matsumoto | |
| Fix #5528 This reverts commit 59201b59046b9e73c309508350cd3c0fafd20e4d; #5497 | |||
| 2021-08-12 | class.c: `const_missing` do not have to be in the backtrace; ref #5528 | Yukihiro "Matz" Matsumoto | |
| 2021-08-11 | codedump.c: print local variable name for `ADDI/SUBI/ instructions. | Yukihiro "Matz" Matsumoto | |
| Recent peephole optimization made `ADDI/SUBI` destinations possibly local variables. | |||
| 2021-08-07 | codedump.c: print two operands `R(x)` and `R(x+1)` for clarity. | Yukihiro "Matz" Matsumoto | |
| 2021-08-06 | numeric.c: fix a bug regarding `MRB_INT_MIN`. | Yukihiro "Matz" Matsumoto | |
| 2021-08-04 | numeric.c: fix a bug in left shift of negative integer. | Yukihiro "Matz" Matsumoto | |
| `-1 * (1<<63)` causes overflow, but `-1<<63` is a valid value. | |||
| 2021-08-03 | numeric.c: check zero division before modulo. | Yukihiro "Matz" Matsumoto | |
| 2021-08-03 | Revert "numeric.c: simplifies `int_mod` definition." | Yukihiro "Matz" Matsumoto | |
| This reverts commit 3738d62a86a54524d5d7738ddbafe4700ca6a889. The change changed the behavior with floating point numbers. | |||
| 2021-08-03 | numeric.c: simplifies `int_mod` definition. | Yukihiro "Matz" Matsumoto | |
| 2021-08-03 | Replace `mrb_fixnum_value()` with `mrb_int_value()`. | Yukihiro "Matz" Matsumoto | |
| Use `mrb_fixnum_value()` only when you are absolutely sure that the value is within `Fixnum` range, i.e. 31 bits signed integer at least. | |||
| 2021-08-03 | Replace `fixnum` references with `int`. | Yukihiro "Matz" Matsumoto | |
| The `Fixnum` class is no longer provided by `mruby`. | |||
| 2021-08-03 | numeric.c: rename `fixdivmod` to `intdivmod`. | Yukihiro "Matz" Matsumoto | |
| 2021-08-02 | numeric.c: simpler integer modulo calculation. | Yukihiro "Matz" Matsumoto | |
| 2021-08-02 | numeric.c: use C's modulo operator if both operands are positive. | Yukihiro "Matz" Matsumoto | |
| 2021-08-02 | numeric.c: refactor integer bit shift operations. | Yukihiro "Matz" Matsumoto | |
| 2021-07-30 | codedump.c: instruction length should be `ilen`, not `iseq`. | Yukihiro "Matz" Matsumoto | |
| 2021-07-28 | debug.c: uses most space efficient packed map for line information. | Yukihiro "Matz" Matsumoto | |
| 2021-07-26 | debug.c: small refactoring. | Yukihiro "Matz" Matsumoto | |
| 2021-07-26 | debug.c: remove type cast warnings. | Yukihiro "Matz" Matsumoto | |
| 2021-07-26 | fmt_fp.c: add implicit cast from `mrb_float` to `int8_t`. | Yukihiro "Matz" Matsumoto | |
| 2021-07-26 | vm.c: fix integer type error in `mrb_protect_error`. | Yukihiro "Matz" Matsumoto | |
| 2021-07-25 | Remove redundant include headers. | Yukihiro "Matz" Matsumoto | |
| - stdlib.h - stddef.h - stdint.h - stdarg.h - limits.h - float.h | |||
| 2021-07-17 | Explicit write barrier for binding | dearblue | |
| 2021-07-17 | codedump.c: update some instructions. | Yukihiro "Matz" Matsumoto | |
| - OP_GETGV - OP_SETGV - OP_GETSV - OP_SETSV - OP_GETIV - OP_SETIV - OP_GETCV - OP_SETCV - OP_GETCONST - OP_SETCONST - OP_GETMCNST - OP_SETMCNST - OP_GETUPVAR - OP_SETUPVAR | |||
| 2021-07-12 | load.c: call `mrb_top_run()` from `mrb_load_proc()`; fix #5504 | Yukihiro "Matz" Matsumoto | |
| So that the function behave consistently with `mrb_load_proc()`. | |||
| 2021-07-10 | numeric.c: `self` should always be an integer in `__coerce_step_counter`. | Yukihiro "Matz" Matsumoto | |
| 2021-07-10 | Update internal methods not to be listed in backtraces. | Yukihiro "Matz" Matsumoto | |
| - String#__lines - Array#__ary_eq - Array#__ary_cmp - Hash#__delete - Kernel#__case_eqq - Integer#__coerce_step_counter | |||
| 2021-07-09 | Do not include `stdint.h` before `mruby.h` | dearblue | |
| 2021-07-09 | debug.h: use `uint8_t` instead of `char` for BER compressed binary. | Yukihiro "Matz" Matsumoto | |
| A change in `load.c` is left uncommitted. | |||
| 2021-07-09 | debug.h: use `uint8_t` instead of `char` for BER compressed binary. | Yukihiro "Matz" Matsumoto | |
| 2021-07-09 | cdump.c: avoid uninitialized local variable. | Yukihiro "Matz" Matsumoto | |
| 2021-07-09 | range.c: avoid implicit conversion from `mrb_float` to `mrb_int`. | Yukihiro "Matz" Matsumoto | |
| 2021-07-08 | range.c: should not include internal `__num_to_a` in the backtrace. | Yukihiro "Matz" Matsumoto | |
| 2021-07-08 | backtrace.c: skip C method without `mid` set. | Yukihiro "Matz" Matsumoto | |
| That means it's a method not to be included in the backtrace, for example `raise`. | |||
