1. 02 Jan, 2022 1 commit
    • dearblue's avatar
      Improves presym scanning · f2d19aaa
      dearblue authored
      The main purpose is to increase the chances of finding presym and to prevent errors due to C++11 lambda expressions.
      
      - The argument to receive the class may be written, for example, `mrb_class_get()`.
      - The argument that receives the implementation function of the method may be a C++ lambda expression.
        In this case, if multiple variable declarations are separated by colons, the preprocessor will recognize them as argument delimiters and report an error.
        This patch prevents it from happening.
      
        ```c++
        // When preprocessing...
        func([] { int x, y, z; })
          // ^^^^^^^^^^          1st argument?
          //             ^       2nd argument?
          //                ^^^^ 3rd argument?
        ```
      f2d19aaa
  2. 01 Jan, 2022 1 commit
  3. 31 Dec, 2021 7 commits
  4. 30 Dec, 2021 2 commits
    • dearblue's avatar
      Extend the Cygwin CI time limit to 15 minutes. · 4c8a8818
      dearblue authored
      The main reason for failure is to exceed the time limit, and even when it succeeds, there is less than a minute left.
      The 10-minute time limit seems to be too short.
      4c8a8818
    • dearblue's avatar
      Get object properties after `mrb_get_args()` · a137ef12
      dearblue authored
      ref. #5613
      
      I checked with Valgrind, and the methods that can cause use-after-free are `Array#rotate`, `Array#rotate!`, and `String#byteslice`.
      Since `String#rindex` uses `RSTRING_LEN()` indirectly inside the function, no reference to the out-of-bounds range is generated.
      a137ef12
  5. 29 Dec, 2021 8 commits
  6. 28 Dec, 2021 5 commits
  7. 27 Dec, 2021 3 commits
  8. 25 Dec, 2021 2 commits
  9. 23 Dec, 2021 1 commit
  10. 22 Dec, 2021 2 commits
  11. 21 Dec, 2021 2 commits
  12. 20 Dec, 2021 3 commits
  13. 19 Dec, 2021 1 commit
  14. 18 Dec, 2021 1 commit
  15. 17 Dec, 2021 1 commit
    • dearblue's avatar
      Print error before cleanup in `codegen_error()` · 26338fe6
      dearblue authored
      Previously, it always pointed to the highest scope as the location of the error.
      
        - example code `code.rb`
      
          ```ruby
          huge_num = "1" + "0" * 300; eval <<CODE, nil, "test.rb", 1
          class Object
            module A
              #{huge_num}
            end
          end
          CODE
          ```
      
        - Before this patch
      
          ```console
          % bin/mruby code.rb
          test.rb:1: integer too big
          trace (most recent call last):
                  [1] code.rb:1
          code.rb:1:in eval: codegen error (ScriptError)
          ```
      
        - After this patch
      
          ```console
          % bin/mruby code.rb
          test.rb:3: integer too big
          trace (most recent call last):
                  [1] code.rb:1
          code.rb:1:in eval: codegen error (ScriptError)
          ```
      26338fe6