Yukihiro "Matz" Matsumoto
2bed2fabae
time.c: update the document for Time#usec; close #5515
2021-07-25 13:07:11 +09:00
Yukihiro "Matz" Matsumoto
47eca476e8
pack.c: fixed sign comparison warning.
2021-07-25 13:07:11 +09:00
Yukihiro "Matz" Matsumoto
8de8521cb6
parse.y: replace strtoul() by mrb_int_read().
2021-07-25 13:07:10 +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
1f90a39799
Merge pull request #5514 from mruby/dependabot/github_actions/github/super-linter-4.5.1
...
build(deps): bump github/super-linter from 4.5.0 to 4.5.1
2021-07-24 13:21:08 +09:00
dependabot[bot]
5b3a4b36c7
build(deps): bump github/super-linter from 4.5.0 to 4.5.1
...
Bumps [github/super-linter](https://github.com/github/super-linter ) from 4.5.0 to 4.5.1.
- [Release notes](https://github.com/github/super-linter/releases )
- [Commits](https://github.com/github/super-linter/compare/v4.5.0...v4.5.1 )
---
updated-dependencies:
- dependency-name: github/super-linter
dependency-type: direct:production
update-type: version-update:semver-patch
...
Signed-off-by: dependabot[bot] <support@github.com >
2021-07-23 14:06:33 +00:00
Yukihiro "Matz" Matsumoto
9c43276eb5
codegen.c: fixed a bug in OP_LOADI32 peephole optimization.
2021-07-23 11:20:18 +09:00
Yukihiro "Matz" Matsumoto
598c97ef76
codegen.c: get_int_operand() to support OP_LOADL (int in pool).
2021-07-22 11:49:47 +09:00
Yukihiro "Matz" Matsumoto
d0fed63414
codegen.c: add constant folding for unary numeric operators (+, -, ~).
2021-07-22 11:39:52 +09:00
Yukihiro "Matz" Matsumoto
3e9ed1cca2
codegen.c: compare symbol names directly avoiding string conversion.
2021-07-22 11:21:00 +09:00
Yukihiro "Matz" Matsumoto
e42f192827
codegen.c: skip -@ call if the argument is a literal integer.
2021-07-21 13:20:34 +09:00
Yukihiro "Matz" Matsumoto
2ef6e94489
codegen.c: move gen_setxv() after new_sym().
2021-07-21 13:15:27 +09:00
Yukihiro "Matz" Matsumoto
81b384e3fb
codegen.c: introduce gen_int() to generate integer instructions.
2021-07-21 13:15:27 +09:00
Yukihiro "Matz" Matsumoto
47fca90069
codegen.c: add peephole optimization for OP_LOADI32 before OP_MOVE.
2021-07-21 08:00:02 +09:00
Yukihiro "Matz" Matsumoto
28bf950e01
codegen.c: add peephole optimization for OP_LOADI16 before OP_MOVE.
2021-07-21 07:54:08 +09:00
Yukihiro "Matz" Matsumoto
275fe8c94b
codegen.c: a new function get_int_operand.
2021-07-21 07:52:39 +09:00
Yukihiro "Matz" Matsumoto
5066e2370d
codegen.c: negative zero equals to positive zero.
...
`OP_LOADI Rn -0` should be `OP_LOADI_0`.
2021-07-20 18:24:33 +09:00
Yukihiro "Matz" Matsumoto
cdf54f3159
codegen.c: allow OP_EXT before OP_ADDI and OP_SUBI.
...
This is preparation for integer constant folding.
2021-07-20 11:07:37 +09:00
Yukihiro "Matz" Matsumoto
43f6f765b0
Remove unused prototypes for mrb_proc_merge_lvar(); ref #5511
2021-07-19 07:42:49 +09:00
Yukihiro "Matz" Matsumoto
ed2a6a160e
Merge pull request #5511 from dearblue/binding.3
...
Explicit write barrier for binding
2021-07-19 07:40:22 +09:00
Yukihiro "Matz" Matsumoto
71c778dbfc
Merge pull request #5510 from dearblue/check-stdint
...
Output an error if the `INTPTR_MAX` macro is undefined in C++
2021-07-18 14:34:48 +09:00
Yukihiro "Matz" Matsumoto
86f8edca64
Merge pull request #5509 from dearblue/cast-c++
...
Avoid implicit casting from void pointers for C++
2021-07-17 20:55:18 +09:00
dearblue
de4523f793
Explicit write barrier for binding
2021-07-17 20:43:19 +09:00
dearblue
dbd249cace
Output an error if the INTPTR_MAX macro is undefined in C++
...
When doing `conf.enable_cxx_abi` and compiling with FreeBSD + clang or MinGW, such as `INTPTR_MAX` constant macro is not defined if `#include <stdint.h>` precedes `#include <mruby.h>`.
Currently I get a warning when I use an undefined macro, but if I don't notice it I get confused in a link error.
It can be expected that the problem will be easier to understand by making a clear error.
Adding `-Werror=undef` as a compiler flag can also result in an error, but this can be a problem if the system header file itself uses undefined macros, for example.
This patch does minimal confirmation only, but has no side effects.
2021-07-17 20:32:38 +09:00
dearblue
c8750048be
Avoid implicit casting from void pointers for C++
2021-07-17 20:21:30 +09:00
Yukihiro "Matz" Matsumoto
d4e22c2cec
codedump.c: update some instructions.
...
- 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-17 19:51:25 +09:00
Yukihiro "Matz" Matsumoto
887df090cb
codegen.c: optimize variable assignments after OP_MOVE.
...
- `OP_SETGV`
- `OP_SETIV`
- `OP_SETCV`
- `OP_SETCONST`
2021-07-17 19:51:25 +09:00
Yukihiro "Matz" Matsumoto
4dda97502b
codegen.c: optimize OP_SETUPVAR after OP_MOVE.
2021-07-17 19:51:24 +09:00
Yukihiro "Matz" Matsumoto
3401396a16
Merge pull request #5508 from mruby/dependabot/github_actions/github/super-linter-4.5.0
...
build(deps): bump github/super-linter from 4.4.1 to 4.5.0
2021-07-16 07:57:58 +09:00
Yukihiro "Matz" Matsumoto
70f31d4bb4
codegen.c: add new peephole optimization for OP_MOVE.
...
If `OP_MOVE` comes after `OP_GETUPVAR`, you can skip move and redirect
the destination register of `OP_GETUPVAR`.
2021-07-16 07:55:25 +09:00
Yukihiro "Matz" Matsumoto
1a3564f2f1
codegen.c: add new peephole optimization for OP_GETUPVAR.
...
When `OP_GETUPVAR` is generated right after `OP_SETUPVAR`, there is no
need to read the upvar back to the register, e.g.
3 008 OP_ADDI R2 1
3 011 OP_SETUPVAR R2 1 0
4 015 OP_GETUPVAR R2 1 0
4 019 OP_LOADI_2 R3
`OP_GETUPVAR` at the address `015` is useless. We can skip it like:
3 008 OP_ADDI R2 1
3 011 OP_SETUPVAR R2 1 0
4 015 OP_LOADI_2 R3
2021-07-16 07:52:21 +09:00
dependabot[bot]
1284c0615e
build(deps): bump github/super-linter from 4.4.1 to 4.5.0
...
Bumps [github/super-linter](https://github.com/github/super-linter ) from 4.4.1 to 4.5.0.
- [Release notes](https://github.com/github/super-linter/releases )
- [Commits](https://github.com/github/super-linter/compare/v4.4.1...v4.5.0 )
---
updated-dependencies:
- dependency-name: github/super-linter
dependency-type: direct:production
update-type: version-update:semver-minor
...
Signed-off-by: dependabot[bot] <support@github.com >
2021-07-15 14:06:05 +00:00
Yukihiro "Matz" Matsumoto
d4abbf1b77
test/syntax.rb: add tests for break and redo.
2021-07-15 15:22:23 +09:00
Yukihiro "Matz" Matsumoto
b7d75591f3
codegen.c: gen_jmpdst always needs to generate relative address.
2021-07-15 14:08:17 +09:00
Yukihiro "Matz" Matsumoto
b8863c69dc
Merge pull request #4141 from udzura/add-test-for-attr-nil-guard
...
Add a testcase of #4137 fix
2021-07-15 07:27:48 +09:00
Yukihiro "Matz" Matsumoto
f5eeb76a85
Merge pull request #5507 from mruby/dependabot/github_actions/github/super-linter-4.4.1
...
build(deps): bump github/super-linter from 4.3.0 to 4.4.1
2021-07-15 07:25:53 +09:00
dependabot[bot]
b2f3327ade
build(deps): bump github/super-linter from 4.3.0 to 4.4.1
...
Bumps [github/super-linter](https://github.com/github/super-linter ) from 4.3.0 to 4.4.1.
- [Release notes](https://github.com/github/super-linter/releases )
- [Commits](https://github.com/github/super-linter/compare/v4.3.0...v4.4.1 )
---
updated-dependencies:
- dependency-name: github/super-linter
dependency-type: direct:production
update-type: version-update:semver-minor
...
Signed-off-by: dependabot[bot] <support@github.com >
2021-07-14 14:05:53 +00:00
Yukihiro "Matz" Matsumoto
70aee96050
Merge pull request #5506 from mruby/dependabot/github_actions/github/super-linter-4.3.0
...
build(deps): bump github/super-linter from 4.2.2 to 4.3.0
2021-07-14 08:11:56 +09:00
dependabot[bot]
b89678b30d
build(deps): bump github/super-linter from 4.2.2 to 4.3.0
...
Bumps [github/super-linter](https://github.com/github/super-linter ) from 4.2.2 to 4.3.0.
- [Release notes](https://github.com/github/super-linter/releases )
- [Commits](https://github.com/github/super-linter/compare/v4.2.2...v4.3.0 )
---
updated-dependencies:
- dependency-name: github/super-linter
dependency-type: direct:production
update-type: version-update:semver-minor
...
Signed-off-by: dependabot[bot] <support@github.com >
2021-07-13 14:06:38 +00:00
Yukihiro "Matz" Matsumoto
0712a5406a
load.c: call mrb_top_run() from mrb_load_proc(); fix #5504
...
So that the function behave consistently with `mrb_load_proc()`.
2021-07-12 08:17:43 +09:00
Yukihiro "Matz" Matsumoto
bb94082fa5
TODO.md: update.
2021-07-11 18:16:17 +09:00
Yukihiro "Matz" Matsumoto
ce2d7c2e01
numeric.c: self should always be an integer in __coerce_step_counter.
2021-07-10 17:04:57 +09:00
Yukihiro "Matz" Matsumoto
be6d559853
Update internal methods not to be listed in backtraces.
...
- String#__lines
- Array#__ary_eq
- Array#__ary_cmp
- Hash#__delete
- Kernel#__case_eqq
- Integer#__coerce_step_counter
2021-07-10 14:15:43 +09:00
Yukihiro "Matz" Matsumoto
ce6319af61
Merge pull request #5503 from ntl/correct-header-files-when-cdump-disabled
...
Mrbgem gem_init.c: add headers for irep loading when cdump is disabled, but presym is enabled
2021-07-10 07:53:53 +09:00
Yukihiro "Matz" Matsumoto
13c0dc98f7
Merge pull request #5505 from dearblue/stdint
...
Do not include `stdint.h` before `mruby.h`
2021-07-10 07:42:25 +09:00
dearblue
a7e41c74de
Do not include stdint.h before mruby.h
2021-07-09 23:20:30 +09:00
Nathan Ladd
6598607fea
Mrbgem gem_init.c compilation correction
...
When `disable_cdump` is declared on a Mrbgem spec, the procedure for
loading MRuby code from the gem's `mrblib` directory is slightly
different; instead of loading the mrblib code as a Proc built from the
compiled irep, the compiled irep is loaded directly. The header files
`mruby.h` and `mruby/proc.h` are needed only when the irep is loaded
directly. They are currently included only when presym is disabled, they
should be included whenever either presym is disabled *or* when
`disable_cdump` is called. The `cdump?` predicate method happens to
return true in either case (presym disabled *or* cdump disabled), so
this change should be safe.
2021-07-09 08:16:12 -05:00
Yukihiro "Matz" Matsumoto
93cce94e06
debug.h: use uint8_t instead of char for BER compressed binary.
...
A change in `load.c` is left uncommitted.
2021-07-09 21:11:28 +09:00
Yukihiro "Matz" Matsumoto
b5039fdb6c
debug.h: use uint8_t instead of char for BER compressed binary.
2021-07-09 14:10:48 +09:00
Yukihiro "Matz" Matsumoto
29556a49a0
cdump.c: avoid uninitialized local variable.
2021-07-09 14:10:17 +09:00