| Commit message (Collapse) | Author | Age | Files | Lines |
... | |
|
|
|
|
|
| |
Fix https://github.com/ruby/prism/pull/1821
https://github.com/ruby/prism/commit/7d023a26b4
|
|
|
|
|
|
| |
Extracted from PR #8932.
Co-Authored-By: Jean Boussier <byroot@ruby-lang.org>
|
|
|
|
|
|
|
| |
When evacuating generic instance variables, the instance variables exist
in both the array and the ST table. We need to ensure it has switched
to the ST table before performing any operations that can trigger GC
compaction.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
We've seen occasional CI failures on i686 in this codepath:
```
[BUG] vm_setivar_slowpath: didn't find ivar @verify_depth in shape
```
Generic ivars are very complex to get right, but also quite rare.
I don't see a good reason to take the risk to give them an optimized
path here, when the much more common T_CLASS/T_MODULE don't have one.
Having an optimization here means duplicating the fairly brittle
logic, which is a recipe for bugs, and I don't think it's worth
it in such case.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
* [win32] fix compilation for windows-arm64
Credits to MSYS2 Ruby package using this patch.
* [win32] nm use full options
Fix compilation error when using MSYS2 environment.
Credits to MSYS2 Ruby package using this patch.
* [win32] detect llvm-windres (used for windows-arm64)
When adding preprocessor option for llvm-windres (using clang as
parameter), it fails. Thus, do not add this.
It's needed to be able to compile windows-arm64 version, because MSYS2
toolchain is LLVM based (instead of GCC/binutils).
* [win32] pioinfo detection for windows-arm64
This fixes "unexpected ucrtbase.dll" for native windows-arm64 ruby
binary. It does not solve issue with x64 version emulated on this
platform.
Value of pioinfo pointer can be found in ucrtbase.dll at latest adrp/add
sequence before return of _isatty function. This works for both release
and debug ucrt.
Due to the nature of aarch64 ISA (vs x86 or x64), it's needed to
disassemble instructions to retrieve offset value, which is a bit more
complicated than matching specific string patterns.
Details about adrp/add usage can be found in this blog post:
https://devblogs.microsoft.com/oldnewthing/20220809-00/?p=106955
For instruction decoding, the Arm documentation was used as a reference.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
(https://github.com/ruby/irb/pull/768)
When user enters irb:rdbg session, they don't get the same hint that the
`debug` gem provides, like
```
(rdbg) n # next command
```
This means that users may accidentally execute commands when they want to
retrieve the value of a variable.
So this commit adds a Reline output modifier to add a simiar hint:
```
irb:rdbg(main):002> n # debug command
```
It is not exactly the same as `debug`'s because in this case the importance
is to help users distinguish between value evaluation and debugger command
execution.
https://github.com/ruby/irb/commit/fdf24de851
|
|
|
|
|
|
| |
(https://github.com/ruby/irb/pull/781)
https://github.com/ruby/irb/commit/7d6849e44e
|
| |
|
| |
|
|
|
|
|
|
|
| |
CaseMatchNode)
(https://github.com/ruby/irb/pull/778)
https://github.com/ruby/irb/commit/943c14b12e
|
|
|
|
|
| |
Following Jean Boussier's comment that some shape bugs were not
caught by our tests, I'm trying to improve our test coverage a
tiny bit.
|
| |
|
|
|
|
|
| |
> Note that on cross compiling BASERUBY should be the same version of the building ruby.
> https://github.com/ruby/ruby/wiki/Developer-How-To#prerequisite
|
| |
|
| |
|
| |
|
|
|
|
|
| |
These are rare but embedding them is trivial and make them fit
in a 40B slot.
|
|
|
|
|
|
|
| |
`rb_vm_tag_jmpbuf_{init,deinit}` are safe to raise exception since the
given tag is not yet pushed to `ec->tag` or already popped from it at
the time, so `ec->tag` is always valid and it's safe to raise exception
when xmalloc fails.
|
|
|
|
|
| |
Previously, the method left one shape available (MAX_SHAPE_ID) when
called without arguments.
|
|
|
|
|
|
|
|
|
| |
`longjmp` can be called to raise `NoMemoryError` or to trigger GC when
`malloc` fails to allocate memory in `ruby_xmalloc` family. In such
case, `malloc` call in `longjmp` will fail again, and Asyncify unwinding
operation corrupts the memory space by using the failed pointer as
Asyncify buffer. This commit uses statically allocated buffer to avoid
such situation.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
[wasm] Fix Asyncify loop exit condition for normal return
Stop calling `asyncify_stop_unwind` when the main function returns
without any unwinding. In the era when Asyncify buffers were allocated
on the stack, the `top` and `end` fields were remained in the stack
space even after the main function returned, so buffer-overflow check in
the `asyncify_stop_unwind` function passed. But now, the `top` and `end`
fields are part of the jump buffer allocated on the heap and they are
deallocated with `free` when the corresponding VM tag is popped. So, the
buffer-overflow check in the `asyncify_stop_unwind` function failed when
the main fuction returned without any unwinding, and we have to break
the asyncify loop before calling `asyncify_stop_unwind`.
Related commit: https://github.com/ruby/ruby.wasm/commit/bc46b12b127e4b6625a100f373504ed5ea45ae66
|
|
|
|
|
|
|
| |
The builds are not starting.
You can check the Travis status on the ticket,
<https://bugs.ruby-lang.org/issues/20013>.
|
|
|
|
|
| |
We can use an hidden Hash instead, it's simpler, triggers
write barriers, handle compaction, etc.
|
|
|
|
|
|
| |
Follow up the ruby/ruby#8917 change.
https://github.com/ruby/prism/commit/f6bac4d3bf
|
|
|
|
| |
https://github.com/ruby/prism/commit/99dfca6c1d
|
|
|
|
| |
https://github.com/ruby/prism/commit/ed4523464b
|
|
|
|
|
|
| |
Fix https://github.com/ruby/prism/pull/1828
https://github.com/ruby/prism/commit/22c0640e48
|
|
|
|
| |
https://github.com/ruby/prism/commit/825d5d7bd4
|
|
|
|
| |
https://github.com/ruby/prism/commit/d6d718487d
|
|
|
|
|
|
| |
Fix https://github.com/ruby/prism/pull/1547
https://github.com/ruby/prism/commit/cdb643aeab
|
|
|
|
|
|
| |
https://github.com/ruby/prism/pull/1877#discussion_r1398974248
https://github.com/ruby/prism/commit/0f545fe636
|
|
|
|
|
|
| |
Fix https://github.com/ruby/prism/pull/1839
https://github.com/ruby/prism/commit/5784ab749f
|
| |
|
| |
|
|
|
|
| |
https://github.com/ruby/prism/commit/9e78dfdf69
|
|
|
|
| |
They are very short lived and fit in a 160B slot.
|
| |
|
|
|
|
| |
https://app.travis-ci.com/github/ruby/ruby/builds/267410310
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
(https://github.com/ruby/prism/pull/1906)
* Add test for KOI8-U
* Rename koi8 char_width function
- Rename function for use with any KOI8-based encoding
* Add KOI8-U encoding
* Add encoding to encoding.md
https://github.com/ruby/prism/commit/6cad4552f7
|
|
|
|
|
|
|
|
|
|
|
|
| |
If a platform specific variant would not match the current Ruby, we would still be
considering it compatible with the initial resolution and adding its
platform to the lockfile, but we would later fail to materialize it for
installation due to not really being compatible.
Fix is to only add platforms for variants that are also compatible with
current Ruby and RubyGems versions.
https://github.com/rubygems/rubygems/commit/75d1290843
|
|
|
|
|
|
|
|
| |
* The same order as in source code.
* CallOrWriteNode, CallOperatorWriteNode, CallAndWriteNode already have
the correct order so it was also inconsistent with them.
https://github.com/ruby/prism/commit/4434e4bc22
|
|
|
|
|
|
|
| |
doc_namespace
(https://github.com/ruby/irb/pull/777)
https://github.com/ruby/irb/commit/c2f671611a
|
|
|
|
|
| |
They are very ephemeral, so avoiding the malloc churn
is desirable.
|
| |
|
| |
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
(https://github.com/ruby/resolv/pull/25)
* IPv6: update to_s method to be RFC5952 compliant
I noticed that the resolv library does not honour RFC 5952 Section 4.2.2.
in relation to textural representation of ipv6 addresses:
The symbol "::" MUST NOT be used to shorten just one 16-bit 0 field.
For example, the representation 2001:db8:0:1:1:1:1:1 is correct, but
2001:db8::1:1:1:1:1 is not correct.
Fixes https://github.com/ruby/resolv/pull/24
https://github.com/ruby/resolv/commit/5efcd6ed70
Co-authored-by: Sorah Fukumori <sora134@gmail.com>
|
|
|
|
|
|
| |
Not all `ID` have an associated string.
Fixes a SEGFAULT in ObjectSpace.dump_all spec.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Many tests start by exhausting all shapes, which is a slow process.
By exposing a method to directly move the bump allocator forward
we cut test runtime in half.
Before:
```
Finished tests in 1.544756s
```
After:
```
Finished tests in 0.759733s,
```
|
| |
|