Yukihiro "Matz" Matsumoto
93c02e96d5
Merge pull request #6238 from dearblue/init-stack
...
Minimize zero initialization of the stack
2024-04-15 13:59:14 +09:00
dearblue
a4b57aa47b
Minimize zero initialization of the stack
2024-04-13 22:22:39 +09:00
leviongit
81bb520919
unify the code for filter methods (and speed up #reject!)
...
the worst case for `Array#reject!` (i.e. a proc always returning `true`)
is at least 5x worse than the worst case for `Array#select!` (proc
always returning `false`)
this commit unifies these implementations and inlines the (effective)
call of `#select!` in `#keep_if` and `#reject!` in `#delete_if`
2024-04-13 08:53:32 +02:00
Yukihiro "Matz" Matsumoto
d761561be3
Merge pull request #6233 from dearblue/fiber-end-free
...
Free stack memory at end of fiber
2024-04-11 23:31:54 +09:00
Yukihiro "Matz" Matsumoto
492d8331e1
mruby-io/ext/io.h: reorder struct mrb_io to reduce the size; #6231
...
The `sizeof(struct mrb_io)` is reduced from 32 bytes to 24 bytes on
x86_64-linux.
2024-04-10 13:35:03 +09:00
dearblue
f3b393272c
Free stack memory at end of fiber
...
Immediately frees the call stack and data stack at the end of a non-root fiber.
If the env object needs to be detached, the data stack is reused through `mrb_realloc()`.
Previously, it was not necessary to take into account that `c->cibase` could be `NULL`.
Note that this is no longer the case due to this patch.
In fact, changes to "mruby-fiber" are now required.
2024-04-09 21:13:32 +09:00
Asmod4n
96b5cd757d
Add a way to let other gems handle closing of FDs
2024-04-07 13:46:11 +02:00
leviongit
ad62d7809e
fix: Array#shuffle(!) result distribution
2024-04-04 20:36:44 +02:00
dearblue
8dfebe8d12
Need to synchronize dbg->regs after VM call in mrdb
...
VM inrush could invalidate addresses stored in `dbg->regs` by `stack_extend()`.
2024-03-31 11:53:09 +09:00
dearblue
f1c0752ab8
Shared empty iv_tbl of module
...
This will be a partial merge of #5317 with the following changes.
- Remove `iclass->iv_c` since `iclass->iv_c` is equivalent to `iclass->c`.
- `class_iv_ptr()` returns a single pointer instead of a double pointer.
2024-03-27 21:39:32 +09:00
Yukihiro "Matz" Matsumoto
87b358a342
Including header files in include/* by <>
2024-03-26 13:59:59 +09:00
Yukihiro "Matz" Matsumoto
81e8617d02
mruby-metaprog: explicitly include khash.h which was included from proc.h
2024-03-26 13:59:59 +09:00
Yukihiro "Matz" Matsumoto
a810b9bca8
mruby-compiler/codegen.c: stop too aggressive optimization; fix #6210
...
The old code assumes unary minus (`-@`) does not cause any side effect
(including errors). Considering the code like `-nil; nil`, the
assumption was too aggressive.
2024-03-19 13:38:05 +09:00
Yukihiro "Matz" Matsumoto
95765c8193
mruby-time: mrb_time_at is an API function; close #6195
...
5265e35 was wrong. Should not remove `mrb_` prefix from the function.
2024-03-11 09:48:32 +09:00
dearblue
ce8b2d4973
Added mrb_callinfo::u.keep_context for clarity
2024-02-24 21:32:11 +09:00
dearblue
06e791e1d7
Fix MRUBY_PACKAGE_DIR in mruby-config.bat
...
Previously, the correct directory could not be obtained in some environments.
Therefore, changed the method to leave an element indicating the parent directory.
fix #6156
2024-02-17 11:14:57 +09:00
buty4649
031476a853
mruby-enum-lazy: add grep_v method
2024-02-15 14:55:38 +09:00
Yukihiro "Matz" Matsumoto
0fe95d6c81
mruby-pack (mrb_pack_pack): avoid integer overflow
...
`int` (32bit integer) may be too small on 64bit platforms.
2024-02-05 21:28:11 +09:00
Yukihiro "Matz" Matsumoto
0abc36f761
Merge pull request #6161 from dearblue/backtrace
...
Fixed use-after-free by backtrace object
2024-02-03 23:39:58 +09:00
Yukihiro "Matz" Matsumoto
6e09555749
Merge pull request #6150 from dearblue/itself
...
Introduce `mrb_obj_itself()`
2024-02-01 16:15:42 +09:00
dearblue
9543cfa7ee
Fixed use-after-free by backtrace object
...
The `MRB_TT_BACKTRACE` object has been added for the purpose.
Previously, "use-after-free" could occur because the reference count in `backtrace_location::irep` was not incremented.
fixed #6160
2024-01-31 22:17:16 +09:00
Yukihiro "Matz" Matsumoto
0e1125c3af
Merge pull request #6152 from dearblue/io-error
...
Retrieving the IO exception class with presym
2024-01-27 15:10:29 +09:00
Yukihiro "Matz" Matsumoto
fefebf7a77
Merge pull request #6151 from dearblue/eval-init
...
Refer to `mrb->module_class` directly in `mrb_mruby_eval_gem_init()`
2024-01-27 15:09:30 +09:00
Yukihiro "Matz" Matsumoto
18bdcbe536
Merge pull request #6145 from hoshiumiarata/enum_chunk
...
Enumerable#chunk implementation
2024-01-23 08:58:19 +09:00
星湖新
ab21813100
Move Enumerable#chunk to mruby-enumerator
2024-01-22 18:31:28 +09:00
星湖新
d001974439
Revert "Enumerable#chunk implementation"
...
This reverts commit ebf86a24b0 .
2024-01-22 18:26:01 +09:00
Yukihiro "Matz" Matsumoto
5431575d11
Merge pull request #6148 from buty4649/add-enumerable-grep_v
...
Add Enumerable#grep_v to mruby-enum-ext
2024-01-21 18:51:11 +09:00
dearblue
5caf8e14cf
Retrieving the IO exception class with presym
2024-01-20 22:33:43 +09:00
dearblue
82312467d0
Refer to mrb->module_class directly in mrb_mruby_eval_gem_init()
2024-01-20 22:20:20 +09:00
dearblue
3111990089
Introduce mrb_obj_itself()
...
Some method definitions were changed to use this function.
2024-01-20 22:07:29 +09:00
dearblue
35375257f6
Remove unnecessary Rational._new method
2024-01-20 21:52:49 +09:00
buty4649
97203729a9
Add Enumerable#grep_v to mruby-enum-ext
2024-01-20 11:47:37 +09:00
Yukihiro "Matz" Matsumoto
6f0c34e04e
mruby-string-ext: implement String#ascii_only? method
2024-01-18 22:53:46 +09:00
Yukihiro "Matz" Matsumoto
57fd0edaa7
mruby.h: rename ASCII flag to SINGLE_BYTE
...
This flag means all the characters in the string can be represented by a
single byte, i.e., the string does not contain any multi-byte character.
Those characters are likely ASCII characters, but may be a part of broken
UTF-8 sequence, so the term 'ASCII' is not sufficient.
2024-01-18 22:50:39 +09:00
Yukihiro "Matz" Matsumoto
6c2ed55077
mruby-bin-mruby: remove unused assignments
2024-01-16 12:28:32 +09:00
Yukihiro "Matz" Matsumoto
0e079fe946
mruby-bin-mruby: reduce the scope of a loop variable i
2024-01-15 23:04:18 +09:00
Yukihiro "Matz" Matsumoto
9298dfb927
mruby-bin-mruby: reduce the scope of a local variable c
2024-01-15 23:03:34 +09:00
Yukihiro "Matz" Matsumoto
90fac46751
mruby-bin-mruby: remove unnecessary condition
2024-01-15 23:00:46 +09:00
Yukihiro "Matz" Matsumoto
4f8fd23f7a
mruby-string-ext (str_uminus): remove wrong document
...
In mruby, deduplication of strings is not implemented (yet), so we have
to remove the description from `String#-@` document.
2024-01-13 23:00:13 +09:00
Yukihiro "Matz" Matsumoto
c53d9a33fc
mruby-string-ext (mrb_valid_enc_p): simplify the code
...
By using `mrb_utf8len` directly. If `len == 1` and `ch >= 0x80`, the
character should be an invalid character.
2024-01-13 22:48:16 +09:00
星湖新
ebf86a24b0
Enumerable#chunk implementation
2024-01-13 17:36:02 +09:00
Yukihiro "Matz" Matsumoto
af3482d562
mruby-math: use erfc(x) instead of 1.0 - erf(x)
2024-01-09 08:01:28 +09:00
Yukihiro "Matz" Matsumoto
51c4c4716a
mruby-math: use log1p(x) instead of log(1.0+x)
2024-01-09 07:59:42 +09:00
Yukihiro "Matz" Matsumoto
8a2e88390b
mruby-math: reduce the scope of a local variable
2024-01-09 07:47:57 +09:00
Yukihiro "Matz" Matsumoto
c1fc3219db
mruby-math: fix spacing
2024-01-08 23:18:57 +09:00
Yukihiro "Matz" Matsumoto
05e9fa34af
mruby-random: rename a conflicting local variable
2024-01-08 19:12:55 +09:00
Yukihiro "Matz" Matsumoto
27c2f9ac38
mruby-random (mrb_ary_sample): reduce the scope of loop variables
2024-01-08 07:23:03 +09:00
Yukihiro "Matz" Matsumoto
2cf6f7f5c7
mruby-rational: move misplaced #ifndef MRB_NO_FLOAT
2024-01-08 07:19:30 +09:00
Yukihiro "Matz" Matsumoto
2eeb19a5ed
mruby-kernel-ext (mrb_f_caller): remove unnecessary condition check
2024-01-06 14:31:32 +09:00
Yukihiro "Matz" Matsumoto
b06fdb4bfa
mruby-io/file.c: reduce the scope of local variables
2024-01-06 08:30:56 +09:00