Commit Graph

3308 Commits

Author SHA1 Message Date
Yukihiro "Matz" Matsumoto 0bf1ed9f2c array-ext/array.c: remove unused local variable. 2022-03-03 08:08:01 +09:00
Yukihiro "Matz" Matsumoto 5305c5c84d array.c: call mrb_ary_delete_at() directly from Array#slice!.
Avoid `mrb_funcall()`.
2022-02-26 14:21:35 +09:00
Yukihiro "Matz" Matsumoto b118ba9fb3 rational.c: avoid indirect calls using mrb_funcall(). 2022-02-25 17:53:55 +09:00
Yukihiro "Matz" Matsumoto 776be1b397 codegen.c: use OP_ARRAY instead of OP_ARRAY2 in optimization.
If operand 1 and operand 2 specify the same register `OP_ARRAY2`
can/should be transformed to `OP_ARRAY`.
2022-02-22 19:28:40 +09:00
Yukihiro "Matz" Matsumoto d4d29b21b3 codegen.c: peephole optimize OP_MOVE after OP_ARRAY or OP_ARRAY2. 2022-02-22 17:27:24 +09:00
Yukihiro "Matz" Matsumoto c37f648552 codegen.c: use OP_ARRAY instead of OP_ARRAY2 if possible.
`OP_ARRAY` inline elements, i.e: with `OP_ARRAY Rn Rm len`, `Rn` and
`Rm` should always be the same register.
2022-02-22 17:21:51 +09:00
Yukihiro "Matz" Matsumoto 75e86dcfcd codegen.c: assign post assignees for fixed number of RHS. 2022-02-22 17:20:00 +09:00
Yukihiro "Matz" Matsumoto ae231924a9 parse.y: small refactoring in mrb_parser_dump(). 2022-02-22 16:46:02 +09:00
Yukihiro "Matz" Matsumoto 0282d3ec9f codegen.c: rename gen_vmassinment to gen_massignment.
`m` stands for `multiple` but I don't remember why I put `v` first.
2022-02-22 16:43:51 +09:00
Yukihiro "Matz" Matsumoto 80b44c6ade socket.c: avoid mrb_funcall_id() to retrieve file descriptor. 2022-02-22 11:46:02 +09:00
Yukihiro "Matz" Matsumoto 0fbdfaa831 Merge pull request #5652 from dearblue/check-type
Need to check the type of the method return value
2022-02-22 11:10:18 +09:00
Yukihiro "Matz" Matsumoto f72315575f codegen.c: fix a argument generation bug in array assignment. 2022-02-22 11:06:20 +09:00
Yukihiro "Matz" Matsumoto 44f591aa8f codegen.c: adjust stack position for OP_SUPER instruction. 2022-02-19 16:17:33 +09:00
dearblue 621cafde68 Need to check the type of the method return value 2022-02-19 15:01:46 +09:00
dearblue 12d51807a3 Insert an empty hash before the first NODE_KW_REST_ARGS
I expect this will fix the two problems that "#5640" didn't address.

- It is expected to raise an exception `TypeError`, but it didn't before.

  ```console
  % bin/mruby -e 'p [**1]'
  [1]
  ```

- The variable `h` is expected to keep an empty hash, but it didn't before.

  ```console
  % bin/mruby -e 'h = {}; p(**h, a: 1, b: 2); p h'
  {:a=>1, :b=>2}
  {:a=>1, :b=>2}
  ```
2022-02-18 22:15:50 +09:00
Yukihiro "Matz" Matsumoto a8f0e79107 parse.y: revert 9e064f2; fix #5647
Need to declare unnamed parameter when argument decomposition used.
2022-02-16 13:56:10 +09:00
Yukihiro "Matz" Matsumoto ad3ce7b41c Merge pull request #5642 from dearblue/errmesg
Avoid direct access to error messages as instance variables
2022-02-13 20:59:47 +09:00
Yukihiro "Matz" Matsumoto 38b164ace7 codegen.c: fix a bug in gen_values().
- Fix limit handling that fails 15 arguments method calls.
- Fix too early argument packing in arrays.
2022-02-12 12:39:35 +09:00
Yukihiro "Matz" Matsumoto d912b864df mruby-range-ext/range.c: cover? should work with begin-less ranges. 2022-02-09 13:32:20 +09:00
Yukihiro "Matz" Matsumoto 4562ba14c0 codegen.c: limit check was too restrictive in gen_values().
That can create unnecessary arrays when more than 12 arguments are
given to a method.
2022-02-08 13:11:43 +09:00
Yukihiro "Matz" Matsumoto 0849a2885f codegen.c: stack position may be wrong on assignments.
When `[]=` access includes keyword arguments.
2022-02-08 13:11:43 +09:00
Yukihiro "Matz" Matsumoto 4c13188ea6 codegen.c: generate OP_HASH in gen_hash() if limit exceeds.
That means when `limit` is `0` it should always generate a hash.
2022-02-08 13:11:43 +09:00
Yukihiro "Matz" Matsumoto 6f5e74f576 codegen.c: change size_t to uint16_t To remove type conversion warnings. 2022-02-08 13:11:42 +09:00
Yukihiro "Matz" Matsumoto 6cc6d9b078 Merge pull request #5644 from dearblue/errno-nopresym
Support `disable_presym` for `mrbgems/mruby-errno`
2022-02-07 16:05:22 +09:00
Yukihiro "Matz" Matsumoto 8b32a1f7ae Merge pull request #5643 from dearblue/errno-nostdio
Support `MRB_NO_STDIO` for `mrbgems/mruby-errno`
2022-02-07 15:43:51 +09:00
Yukihiro "Matz" Matsumoto e24e81cd3c mruby.c: rindex() is not supported by VC. 2022-02-06 22:44:02 +09:00
Yukihiro "Matz" Matsumoto cf00c32e3a mruby.c: -b option should only affects the script.
Not the libraries loaded by `-r`. Instead, `.mrb` extension in the path
should determine whether they are compiled binary.
2022-02-06 22:17:41 +09:00
dearblue 0a4f21c60f Support disable_presym for mrbgems/mruby-errno
The `mrbgems/mruby-errno/src/known_errors_def.cstub` file has been extended, so the `mrbgems/mruby-errno/src/known_errors_e2c.cstub` file is no longer needed.
2022-02-06 18:39:46 +09:00
dearblue a82220211d Support MRB_NO_STDIO for mrbgems/mruby-errno 2022-02-06 16:12:41 +09:00
dearblue d6773cbd71 Avoid direct access to error messages as instance variables
ref. #2485

The `SystemCallError#to_s` method also needed to be modified, but since it has no functional difference from the `Exception#to_s` method, it will be removed.
2022-02-06 15:45:13 +09:00
Yukihiro "Matz" Matsumoto ae3c99767a codegen.c: fixed a bug in hash code generation with !val. 2022-02-03 10:40:05 +09:00
Yukihiro "Matz" Matsumoto f0af96c130 mruby-class-ext: add Class#subclasses method. 2022-02-01 22:37:49 +09:00
Yukihiro "Matz" Matsumoto 00f2b74ab2 kernel.c, binding.c: use MRB_SYM() instead of mrb_intern_lit(). 2022-01-31 16:20:52 +09:00
Yukihiro "Matz" Matsumoto 92fb6d3526 Merge pull request #5639 from suetanvil-misc/project-mruby-errno-readme
Updated mruby-errno/README.md to pass the lint checks.
2022-01-31 15:45:18 +09:00
Yukihiro "Matz" Matsumoto 8252352d7b parse.y: fix buffer overflow with tweaked mruby binary. 2022-01-31 15:42:52 +09:00
Chris Reuter 198e10473b Updated mruby-errno/README.md to pass the lint checks. 2022-01-29 18:40:05 -05:00
Yukihiro "Matz" Matsumoto c5bdfe1bd4 mruby-errno: add errno constants to known_errors.def.
Add unlisted errno constants found in macOS and FreeBSD.
If you see unlisted errno, please report.
2022-01-26 12:58:52 +09:00
Yukihiro "Matz" Matsumoto b7cdb59f26 errno.c: stop generating Errno::Exxx error classes on the fly. 2022-01-26 12:29:19 +09:00
Yukihiro "Matz" Matsumoto dd93dd7419 errno.c: refactor _sys_fail to avoid mrb_funcall. 2022-01-25 16:01:33 +09:00
Yukihiro "Matz" Matsumoto 9892742d27 errno.c: use C array instead of a hash table to lookup a errno class.
To reduce memory consumption by avoiding allocating Ruby objects.
2022-01-25 11:15:34 +09:00
Yukihiro "Matz" Matsumoto 194d0c6f46 mruby-errno: change the format of known_errors_e2c.cstub. 2022-01-25 11:08:52 +09:00
Yukihiro "Matz" Matsumoto 5c7338491c errno.c: use mrb_fixnum_p() instead of mrb_type(). 2022-01-25 10:39:13 +09:00
Yukihiro "Matz" Matsumoto 6744d69d3d errno.c: replace string literals by MRB_SYM(). 2022-01-25 10:39:13 +09:00
Yukihiro "Matz" Matsumoto 1e866dffc4 errno.c: bundled mrbgem need not to support mruby 1.x. 2022-01-25 10:28:50 +09:00
Yukihiro "Matz" Matsumoto 0f5829795e errno.c: use MRB_SYM() instead of mrb_intern_lit(). 2022-01-25 10:26:34 +09:00
Yukihiro "Matz" Matsumoto 3b5486e3ae mruby-errno/test: update test suites not to report warnings. 2022-01-25 10:22:28 +09:00
Yukihiro "Matz" Matsumoto 3a15d18ebb errno.c: hide internal _sys_fail from backtrace. 2022-01-24 18:14:28 +09:00
Yukihiro "Matz" Matsumoto c8d96ed782 stdlib.gembox: add mruby-errno 2022-01-24 18:13:28 +09:00
Yukihiro "Matz" Matsumoto a60073d7b9 mruby-errno: remove .gitkeep. 2022-01-24 18:07:59 +09:00
Yukihiro "Matz" Matsumoto 0a6d57ab3c Merge remote-tracking branch 'mruby-errno/master' 2022-01-24 17:58:41 +09:00