Yukihiro "Matz" Matsumoto
3ee10ccc63
mruby3.1.md: update fixed CVE list.
2022-05-11 07:06:36 +09:00
Yukihiro "Matz" Matsumoto
6189a90933
github/workflow: remove Cygwin build from Github Actions.
...
It often cross the 15 minutes timeout limit, so we just give up for now.
2022-05-10 14:02:16 +09:00
Yukihiro "Matz" Matsumoto
fc4e9cdf81
mruby-test-inline-struct/inline.c: add type cast from void* to char*.
2022-05-09 18:57:26 +09:00
Yukihiro "Matz" Matsumoto
eafc4b3f96
doc/mruby3.1.md: update for the 3.1 release.
2022-05-09 17:49:53 +09:00
Yukihiro "Matz" Matsumoto
04d160f90b
mruby-test-inline-struct/inline.c: add a comment about istruct protection.
2022-05-08 23:14:20 +09:00
Yukihiro "Matz" Matsumoto
8c2dbb761f
mruby-test-inline-struct/inline.c: add mrb_istruct_p() checks.
2022-05-08 23:09:14 +09:00
Yukihiro "Matz" Matsumoto
45f61e3879
class.c (mrb_get_args): remove I specifier (istruct); close #5706
2022-05-07 17:35:45 +09:00
Yukihiro "Matz" Matsumoto
457abf4c9e
error.c: now mrb_exc_mesg_get() returns a string or nil.
2022-05-06 16:45:17 +09:00
Yukihiro "Matz" Matsumoto
38b69b6014
error.c: protect mrb_print_error() from exceptions.
...
Now the function can be called when `mrb->jmp` is not set.
2022-05-06 16:26:31 +09:00
Yukihiro "Matz" Matsumoto
c3e4ee0bf2
error.c: store error message converted as a string.
...
This is controversial since this change alters the `raise` behavior.
Previously, when an object that cannot be converted to a string, it just
ignore message when it's printed (using `Exception#inspect`). But after
this change, `raise` (more precisly `Exception.new`) raises TypeError
exception. I think the new behavior is clearer, more intuitive.
2022-05-06 16:21:39 +09:00
Yukihiro "Matz" Matsumoto
d40822b148
Merge pull request #5705 from dearblue/adjust-stack
...
Introduce `mrb_stack_extend_adjust()`
2022-05-05 13:04:44 +09:00
dearblue
c32cac6e59
Introduce mrb_stack_extend_adjust()
...
If necessary, adjust the pointer on the VM stack after `mrb_stack_extend()`.
2022-05-04 09:13:56 +09:00
Yukihiro "Matz" Matsumoto
50b1ded350
mruby-random/random.c: use rand_i() extensively.
2022-05-04 08:07:02 +09:00
Yukihiro "Matz" Matsumoto
49b8cef31f
Merge pull request #5703 from dearblue/random-getargs
...
Strict acquisition of the `Random` class given by `mrb_get_args()`
2022-05-03 19:27:11 +09:00
dearblue
9b9424fe32
Strict acquisition of the Random class given by mrb_get_args()
...
This is to prevent data corruption of the substituted `Random` instance.
If the `Object::Random` constants are redefined to a different `MRB_TT_ISTRUCT` object class, they can pass `mrb_get_args()` validation.
The following is an example of how the `Array#shuffle` method rewrites the data of a non `Random` instance.
```c
// code.c
#include <mruby.h>
#include <mruby/class.h>
#include <mruby/compile.h>
#include <mruby/istruct.h>
#define EVAL_LIT(MRB, ...) mrb_load_string((MRB), #__VA_ARGS__)
static mrb_value
fake_initialize(mrb_state *mrb, mrb_value self)
{
char *p = ISTRUCT_PTR(self);
for (int i = 0; i < ISTRUCT_DATA_SIZE; i++) {
p[i] = 'A' + i;
}
return self;
}
static mrb_value
fake_to_bytes(mrb_state *mrb, mrb_value self)
{
const char *p = ISTRUCT_PTR(self);
return mrb_str_new(mrb, p, ISTRUCT_DATA_SIZE);
}
int
main(int argc, char *argv[])
{
mrb_state *mrb = mrb_open();
struct RClass *fake = mrb_define_class(mrb, "Fake", mrb->object_class);
MRB_SET_INSTANCE_TT(fake, MRB_TT_ISTRUCT);
mrb_define_method(mrb, fake, "initialize", fake_initialize, MRB_ARGS_NONE());
mrb_define_method(mrb, fake, "to_bytes", fake_to_bytes, MRB_ARGS_NONE());
EVAL_LIT(mrb,
Random = Fake \n
fake = Fake.new \n
p [fake, fake.to_bytes] \n
p a = (1..10).to_a \n
p a.shuffle(fake) \n
p [fake, fake.to_bytes]
);
mrb_close(mrb);
return 0;
}
```
```console
% `bin/mruby-config --cc --cflags --ldflags` code.c `bin/mruby-config --libs`
% ./a.out
[#<Fake:0x8007d8f20>, "ABCDEFGHIJKLMNOPQRSTUVWX"]
[1, 2, 3, 4, 5, 6, 7, 8, 9, 10]
[1, 7, 8, 10, 2, 6, 9, 3, 4, 5]
[#<Fake:0x8007d8f20>, "\xe81{\v\fM\xb0D<\x99\xb1V+l\x84\x86QRSTUVWX"]
```
2022-05-03 13:35:29 +09:00
Yukihiro "Matz" Matsumoto
23ce122fc2
vm.c (mrb_funcall_with_block): copy argv before prepare_missing(); fix #5704
...
Since prepare_missing() may call `missing` method internally.
2022-05-02 18:59:38 +09:00
Yukihiro "Matz" Matsumoto
651c872a71
Merge branch 'dearblue-exception'
2022-05-01 20:01:04 +09:00
Yukihiro "Matz" Matsumoto
06c4c76be8
Merge branch 'exception' of https://github.com/dearblue/mruby into dearblue-exception
2022-05-01 20:00:37 +09:00
Yukihiro "Matz" Matsumoto
a243cf4d68
codedump.c: adjust integer size.
...
* uint32_t and ptrdiff_t
* uint16_t and uint8_t
2022-04-30 16:51:38 +09:00
Yukihiro "Matz" Matsumoto
49f3a028d1
AUTHORS: update entries [ci skip]
2022-04-29 16:52:34 +09:00
Yukihiro "Matz" Matsumoto
32fb8b19aa
class.c: fix integer size mixtures (int, mrb_ssize and mrb_int).
2022-04-28 14:22:11 +09:00
Yukihiro "Matz" Matsumoto
6499efb8dd
fmt_fp.c: add type cast to remove a warning.
2022-04-27 13:01:30 +09:00
Yukihiro "Matz" Matsumoto
132d55c924
symbol.c: fix size_t and uint32_t mixture.
2022-04-27 12:52:51 +09:00
Yukihiro "Matz" Matsumoto
4f14ada88a
Merge pull request #5701 from jbampton/fix-grammar-and-spelling
...
docs: fix grammar and spelling
2022-04-26 17:40:32 +09:00
Yukihiro "Matz" Matsumoto
a31cfff838
Merge pull request #5702 from jbampton/update-minimum-pre-commit-version
...
Update minimum `pre-commit` version to latest `2.18.1`
2022-04-26 17:37:14 +09:00
John Bampton
c4bfbb2079
Update minimum pre-commit version to latest 2.18.1
...
Conda, Homebrew and PyPI all have `2.18.1`
https://github.com/pre-commit/pre-commit/releases
https://pypi.org/project/pre-commit/#history
https://formulae.brew.sh/formula/pre-commit
https://anaconda.org/conda-forge/pre-commit
Also run `pre-commit autoupdate`
https://pre-commit.com/#pre-commit-autoupdate
2022-04-26 15:50:49 +10:00
John Bampton
c391d94da9
docs: fix grammar and spelling
2022-04-26 13:48:05 +10:00
Yukihiro "Matz" Matsumoto
a31ff629ba
Merge pull request #5700 from jbampton/codeql-on-pull-request-only
...
Avoid triggering CodeQL on the "push" event for Dependabot branches
2022-04-26 11:09:42 +09:00
Yukihiro "Matz" Matsumoto
50d1bf6214
Merge pull request #5699 from mruby/dependabot/github_actions/github/codeql-action-2
...
build(deps): bump github/codeql-action from 1 to 2
2022-04-26 08:45:55 +09:00
John Bampton
68ce424889
Avoid triggering CodeQL on the "push" event for Dependabot branches
2022-04-26 01:15:10 +10:00
dependabot[bot]
d20ee7298a
build(deps): bump github/codeql-action from 1 to 2
...
Bumps [github/codeql-action](https://github.com/github/codeql-action ) from 1 to 2.
- [Release notes](https://github.com/github/codeql-action/releases )
- [Changelog](https://github.com/github/codeql-action/blob/main/CHANGELOG.md )
- [Commits](https://github.com/github/codeql-action/compare/v1...v2 )
---
updated-dependencies:
- dependency-name: github/codeql-action
dependency-type: direct:production
update-type: version-update:semver-major
...
Signed-off-by: dependabot[bot] <support@github.com >
2022-04-25 14:08:22 +00:00
Yukihiro "Matz" Matsumoto
dd4da14772
symbol.c: remove type mismatch warnings.
2022-04-25 19:14:16 +09:00
Yukihiro "Matz" Matsumoto
73db8c5861
Merge branch 'dearblue-bigint-gem'
2022-04-25 11:21:12 +09:00
Yukihiro "Matz" Matsumoto
118ff0a529
Merge branch 'bigint-gem' of https://github.com/dearblue/mruby into dearblue-bigint-gem
2022-04-25 11:03:39 +09:00
Yukihiro "Matz" Matsumoto
f225db4ed6
string.c: move compilation condition to remove unreachable code.
2022-04-25 10:04:39 +09:00
Yukihiro "Matz" Matsumoto
39c8c051f8
numeric.c: mrb_integer_to_str now supports big integers.
2022-04-25 10:03:47 +09:00
Yukihiro "Matz" Matsumoto
df09838503
numeric.c: mrb_float_to_integer can return a big integer.
2022-04-25 10:02:54 +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
b835979bf3
bigint.c: update the error message for too big integers.
2022-04-25 07:31:39 +09:00
Yukihiro "Matz" Matsumoto
0f4769536b
src/numeric.c: use mrb_ensure_float_type().
...
Instead of obsolete `mrb_to_float()` or the combination of
`mrb_float_value(mrb_as_float())`.
2022-04-25 07:29:55 +09:00
Yukihiro "Matz" Matsumoto
f45ac65532
fixup! mruby-kernel-ext/kernel.c: use mrb_ensure_integer_type().
2022-04-25 07:29:21 +09:00
Yukihiro "Matz" Matsumoto
425097c7be
mruby-kernel-ext/kernel.c: use mrb_ensure_integer_type().
...
Instead of obsolete `mrb_to_integer()`.
2022-04-25 07:26:42 +09:00
Yukihiro "Matz" Matsumoto
ede3bed9e6
object.c: add new function mrb_ensure_integer_type().
...
that checks if the value is an `Integer` which may be a big integer,
where existing `mrb_ensure_int_type()` checks if the value is an Integer
**and** fits in `mrb_int`.
2022-04-25 07:21:40 +09:00
Yukihiro "Matz" Matsumoto
2bea39f339
mruby-range-ext/range.c: Range#cover?() takes a range too.
2022-04-24 14:02:00 +09:00
Yukihiro "Matz" Matsumoto
56a35131a4
numeric.c (mrb_cmp): should not raise NoMethodError.
...
Even when `obj1` does not have `<=>` method.
2022-04-24 14:02:00 +09:00
Yukihiro "Matz" Matsumoto
083691dbd1
variable.c (const_get): stop searching constant before Object.
...
`String::String` should raise `NameError` exception.
2022-04-24 14:02:00 +09:00
Yukihiro "Matz" Matsumoto
17b4d82f65
variable.c: remove mrb_ prefix from a static function.
2022-04-24 14:02:00 +09:00
Yukihiro "Matz" Matsumoto
8bd77ca332
vm.c: target_class should be retrieved from callinfo.
2022-04-24 14:01:59 +09:00
Yukihiro "Matz" Matsumoto
4afbf8ff01
Merge pull request #5697 from dearblue/mrb_alloca
...
Hides the class of string objects allocated by `mrb_alloca()`
2022-04-24 14:00:49 +09:00
dearblue
889f1b898f
Hides the class of string objects allocated by mrb_alloca()
...
Prevents retrieval with the `ObjectSpace.each_object` method.
2022-04-23 22:13:30 +09:00