저는 루비에서 일하고 있는데, 내장 된 gcc 함수 (및 x86 아키텍처 빌트인도 마찬가지입니다)를 사용할 수 있다는 것이 엄청난 도움이된다는 것을 깨달았습니다. 이것들을 사용하기위한 확장 기능을 작성하는 것은 비실용적 인 것처럼 보입니다. 그래서 내장 함수를 호출 할 수있는 방법이 있는지 궁금합니다. 내가 루비의 숫자에 int __builtin_popcount(unsigned int)
를 호출하려는 경우 예를 들어, 어떻게 든 할 수있는 방법이Ruby에서 빌트인 컴파일러 함수를 호출하려면 어떻게해야합니까?
a = rand(1..10000)
__builtin_popcount(a)
나는 분명히 기본적인 일을 할 수 있다는 것을 알고 있지만 방법이 그 루비에 gcc 및 x86 아키텍처 빌트인을 포함시킬 수 있습니까?
C 또는 C++ 코드를 [FFI] (https://github.com/ffi/ffi)로 연결할 수 있습니다. 확장 기능없이 내부적으로이 작업을 수행 할 방법이 없습니다. Ruby가 반드시'gcc'와 아무런 관련이 없다는 것을 기억하십시오. 예를 들어, JRuby는 전혀 연결이 없으며, 많은 현대 시스템에서'clang '이 백엔드가되는 경우는 드문 일이 아닙니다. – tadman