Abstract Methods and NotImplementedError in Ruby

This page summarizes the projects mentioned and recommended in the original post on news.ycombinator.com

Our great sponsors
  • InfluxDB - Power Real-Time Data Analytics at Scale
  • WorkOS - The modern identity platform for B2B SaaS
  • SaaSHub - Software Alternatives and Reviews
  • bootsnap

    Boot large Ruby/Rails apps faster

  • Indeed, I did not mention Bootsnap so as to detract the core point.

    > That's one of the things Bootsnap does to speedup boot time. And when you do that, there's no compilation at runtime.

    Correct, if one does `bootsnap precompile`.

    Bootsnap hooks itself on `Kernel#load` + `Kernel#require` and `RubyVM::InstructionSequence#load_iseq`:

    https://github.com/Shopify/bootsnap/blob/f627992c52642394311...

    https://github.com/Shopify/bootsnap/blob/f627992c52642394311...

    https://github.com/Shopify/bootsnap/blob/f627992c52642394311...

    https://github.com/Shopify/bootsnap/blob/f627992c52642394311...

    Essentially this means that it makes LOAD_PATH lookup faster + intercepts iseq compilation to store to cache on a miss and return a cached version on a hit.

    That does not change the load order.

    > But that doesn't change anything about OP's suggestion, it's still impossible to know if an interface will ever be implemented.

    Again correct, as even with `bootsnap precompile` it would only result in earlier ISeq generation (it is essentially cache priming instead of doing it "lazily" on demand), not the time at which these ISeq get loaded and effective, so even then an `abstract` keyword would be ineffective.

  • InfluxDB

    Power Real-Time Data Analytics at Scale. Get real-time insights from all types of time series data with InfluxDB. Ingest, query, and analyze billions of data points in real-time with unbounded cardinality.

    InfluxDB logo
NOTE: The number of mentions on this list indicates mentions on common posts plus user suggested alternatives. Hence, a higher number means a more popular project.

Suggest a related project

Related posts