truffleruby | high performance implementation of the Ruby programming

 by   oracle Ruby Version: vm-23.0.0-preview1 License: Non-SPDX

kandi X-RAY | truffleruby Summary

kandi X-RAY | truffleruby Summary

truffleruby is a Ruby library. truffleruby has no bugs, it has no vulnerabilities and it has medium support. However truffleruby has a Non-SPDX License. You can download it from GitHub.

There are two main runtime configurations of TruffleRuby, Native and JVM, which have different trade-offs. To find out which runtime configuration is being used, run ruby --version on the command line, or check the value of RUBY_DESCRIPTION or TruffleRuby.native? in Ruby code. Runtime configurations are further detailed in Deploying TruffleRuby.
Support
    Quality
      Security
        License
          Reuse

            kandi-support Support

              truffleruby has a medium active ecosystem.
              It has 2855 star(s) with 189 fork(s). There are 80 watchers for this library.
              There were 1 major release(s) in the last 12 months.
              There are 158 open issues and 976 have been closed. On average issues are closed in 692 days. There are 16 open pull requests and 0 closed requests.
              It has a neutral sentiment in the developer community.
              The latest version of truffleruby is vm-23.0.0-preview1

            kandi-Quality Quality

              truffleruby has 0 bugs and 0 code smells.

            kandi-Security Security

              truffleruby has no vulnerabilities reported, and its dependent libraries have no vulnerabilities reported.
              truffleruby code analysis shows 0 unresolved vulnerabilities.
              There are 0 security hotspots that need review.

            kandi-License License

              truffleruby has a Non-SPDX License.
              Non-SPDX licenses can be open source with a non SPDX compliant license, or non open source licenses, and you need to review them closely before use.

            kandi-Reuse Reuse

              truffleruby releases are available to install and integrate.
              Installation instructions, examples and code snippets are available.

            Top functions reviewed by kandi - BETA

            kandi has reviewed truffleruby and discovered the below as its top functions. This is intended to give you an instant insight into truffleruby implemented functionality, and help decide if they suit your requirements.
            • Walks up the stack .
            • Extracts the elements from the same macros
            • Main method for main loop
            • Validate environment variables .
            • Get expressions for an expression .
            • Returns the list of available options for the rake task .
            • Creates a new gem .
            • Initialize a Pattern
            • Defines a method on the interface .
            • Extract classes from a class
            Get all kandi verified functions for this library.

            truffleruby Key Features

            No Key Features are available at this moment for truffleruby.

            truffleruby Examples and Code Snippets

            No Code Snippets are available at this moment for truffleruby.

            Community Discussions

            Trending Discussions on truffleruby

            QUESTION

            Why does truffleruby need C extensions?
            Asked 2017-Jan-22 at 04:43

            Current status of truffleruby says:

            TruffleRuby is progressing fast but is currently probably not ready for you to try running your full Ruby application on. Support for critical C extensions such as OpenSSL and Nokogiri is missing.

            Why does truffleruby need C extensions? It's built on GraalVM which is built on top of the JVM, it is in fact a fork of JRuby:

            TruffleRuby is a fork of JRuby, combining it with code from the Rubinius project, and also containing code from the standard implementation of Ruby, MRI.

            Can't they use JRuby world gems instead of depending on their C variants?

            EDIT link to the issue on github

            ...

            ANSWER

            Answered 2017-Jan-21 at 14:18

            Running C extensions is hard because the C extension API is just the entire internals of MRI exposed as a header file. You aren't programming against a clean API - you're programming against all the implementation details and internal design decisions of MRI.

            JRuby's Java extensions have exactly the same problem! The JRuby Java extension API is just the entire internals of JRuby, and you aren't programming against an API, instead you're programming against all the implementations details and design decisions of JRuby.

            We plan to eventually tackle both problems in the same way - which is to add another level of abstraction over the C or Java code using an interpreter which we can intercept and redirect when required, so that it believes it is running against MRI or JRuby internals, but really we redirect these to our internals.

            We think C extensions are more important, so we're tackling those first. We haven't really started on Java extensions yet, but we have started the underlying interpreter for Java that we'll use.

            This video explains all

            https://youtu.be/YLtjkP9bD_U?t=1562

            Source https://stackoverflow.com/questions/41779349

            Community Discussions, Code Snippets contain sources that include Stack Exchange Network

            Vulnerabilities

            No vulnerabilities reported

            Install truffleruby

            TruffleRuby comes in two distributions:.
            Standalone: This only contains TruffleRuby in the Native configuration, making it a smaller download.
            GraalVM: This includes support for other languages such as JavaScript, Python and R, and supports both the Native and JVM configurations. We recommend that you use a Ruby manager to use TruffleRuby inside GraalVM.
            Via your Ruby manager/installer (RVM, rbenv, chruby, ruby-build, ruby-install). We recommend trying TruffleRuby dev builds which contain the latest fixes and improvements.
            In CI with GitHub Actions, see Testing TruffleRuby in CI for more details and other CIs.
            Via Docker. For Standalone see official release images and nightly images. For GraalVM see official release images.
            Manually, by following the documentation: Standalone and GraalVM.

            Support

            Extensive user documentation is available in doc/user. See our source code repository and contributor documentation to contribute to TruffleRuby. In particular, see the contributor workflow document for how to build and run TruffleRuby.
            Find more information at:

            Find, review, and download reusable Libraries, Code Snippets, Cloud APIs from over 650 million Knowledge Items

            Find more libraries