Issue #17356 has been updated by kou (Kouhei Sutou).


How about introducing new APIs like `ruby_xaligned_malloc()` and `ruby_xaligned_free()` that wraps existing `rb_aligned_malloc()` and `rb_aligned_free()` with `objspace_*()` and `TRY_WITH_GC()` like `objspace_xmalloc0()` and `objspace_xfree0()`?

If Fiddle uses `posix_memalign()` directly, Fiddle needs to implement `TRY_WITH_GC()` like code in Fiddle. And Fiddle also implements portable `posix_memalign()` function like `rb_aligned_malloc()`. We can implement all of them in Fiddle. But Ruby already has some pieces of them. If Ruby provides new APIs for aligned malloc, Fiddle can just use them instead of implementing them in Fiddle.

----------------------------------------
Feature #17356: Alignment of memory allocated through Fiddle struct's malloc
https://bugs.ruby-lang.org/issues/17356#change-88874

* Author: AndreaRibuoli (Andrea Ribuoli)
* Status: Open
* Priority: Normal
----------------------------------------
I am testing a low-level patch for **Ruby 3** that inside *gc.c* replaces:

  `TRY_WITH_GC(size, mem = malloc(size));`

with:

  `TRY_WITH_GC(size, mem = aligned_alloc(16,size));`

This should allow me to control that Fiddle returns pointers quad-words aligned.

Is it possible to introduce a configure parameter to control this kind of setting?

Refer to [issue opened on Fiddle](https://github.com/ruby/fiddle/issues/53).

Kind regards,

   Andrea Ribuoli



-- 
https://bugs.ruby-lang.org/

Unsubscribe: <mailto:ruby-core-request / ruby-lang.org?subject=unsubscribe>
<http://lists.ruby-lang.org/cgi-bin/mailman/options/ruby-core>