9 papers
6 files
10 references

Papers Referenced in This Repository

Evaluating YJIT’s Performance in a Production Context: A Pragmatic Approach

Maxime Chevalier-Boisvert, Takashi Kokubun, Noah Gibbs, Si Xing Wu, Aaron Patterson, Jemma Issroff
2023
2 references

Ruby is a dynamically-typed programming language with a large breadth of features which has grown in popularity with the rise of the modern web, and remains at the core of the implementation of widely-used online platforms such as Shopify, GitHub, Discourse, and Mastodon. There have been many attemp...

Show 2 references in code

YJIT: a basic block versioning JIT compiler for CRuby

Maxime Chevalier-Boisvert, Noah Gibbs, J. Boussier, Si Xing Wu, Aaron Patterson, Kevin Newton, J. Ha...
2021
1 reference

Ruby is a dynamically typed programming language with a large breadth of features which has grown in popularity with the rise of the modern web, and remains at the core of the implementation of many widely-used websites. CRuby, the default implementation of the language, features a JIT compiler know...

Show 1 reference in code

Interprocedural Type Specialization of JavaScript Programs Without Type Analysis.

Maxime Chevalier-Boisvert, Marc Feeley
2016
1 reference

Previous work proposed lazy basic block versioning, a technique for just-in-time compilation of dynamic languages which we believe represents an interesting point in the design space. Basic block versioning is simple to implement, simple enough that a single developer can build a complete just-in-ti...

Show 1 reference in code

Simple and Effective Type Check Removal through Lazy Basic Block Versioning

Maxime Chevalier-Boisvert, Marc Feeley
2014
1 reference

Dynamically typed programming languages such as JavaScript and Python defer type checking to run time. In order to maximize performance, dynamic language VM implementations must attempt to eliminate redundant dynamic type checks. However, type inference analyses are often costly and involve tradeoff...

Show 1 reference in code

Compacting garbage collection with ambiguous roots

J. Bartlett
1988
1 reference

Many modern garbage collectors [4] recover space by copying. Using an initial "root" set of pointers which are stored in known locations, all accessible objects are copied into a "new space". Two of the attractive properties of such a collector are that it results in memory compaction and it can hav...

Show 1 reference in code

Mersenne twister: a 623-dimensionally equidistributed uniform pseudo-random number generator

M. Matsumoto, T. Nishimura
1998
1 reference

A new algorithm called Mersenne Twister (MT) is proposed for generating uniform pseudorandom numbers. For a particular choice of parameters, the algorithm provides a super astronomical period of 2 19937 −1 and 623-dimensional equidistribution up to 32-bit accuracy, while using a working area of only...

Show 1 reference in code

SipHash: A Fast Short-Input PRF

Jean-Philippe Aumasson, D. Bernstein
2012
1 reference
Show 1 reference in code

How to read floating point numbers accurately

William Clinger
1990
2 references

Consider the problem of converting decimal scientific notation for a number into the best binary floating point approximation to that number, for some fixed precision. This problem cannot be solved using arithmetic of any fixed precision. Hence the IEEE Standard for Binary Floating-Point Arithmetic ...

Show 1 reference in code

Using Selective Memoization to Defeat Regular Expression Denial of Service (ReDoS)

James C. Davis, Francisco Servant, Dongyoon Lee
2021
1 reference

Regular expressions (regexes) are a denial of service vector in most mainstream programming languages. Recent empirical work has demonstrated that up to 10% of regexes have super-linear worst-case behavior in typical regex engines. It is therefore not surprising that many web services are reportedly...

Show 1 reference in code
Link copied to clipboard!