Proceedings of the 20th ACM SIGPLAN International Conference on Functional Programming 2015
DOI: 10.1145/2784731.2784740
|View full text |Cite
|
Sign up to set email alerts
|

Pycket: a tracing JIT for a functional language

Abstract: We present Pycket, a high-performance tracing JIT compiler for Racket. Pycket supports a wide variety of the sophisticated features in Racket such as contracts, continuations, classes, structures, dynamic binding, and more. On average, over a standard suite of benchmarks, Pycket outperforms existing compilers, both Racket's JIT and other highly-optimizing Scheme compilers. Further, Pycket provides much better performance for proxies than existing systems, dramatically reducing the overhead of contracts and gra… Show more

Help me understand this report

Search citation statements

Order By: Relevance

Paper Sections

Select...
1
1
1
1

Citation Types

0
20
0

Year Published

2015
2015
2024
2024

Publication Types

Select...
4
3

Relationship

2
5

Authors

Journals

citations
Cited by 33 publications
(20 citation statements)
references
References 44 publications
0
20
0
Order By: Relevance
“…Further, we want to find out if we can integrate more languages into Squimera, especially languages based on programming paradigms other than object-orientation. There are many RPython-based implementations of various languages that can be used, for example for Prolog [4], Racket [5], Lisp [2], or SQL [9].…”
Section: Resultsmentioning
confidence: 99%
“…Further, we want to find out if we can integrate more languages into Squimera, especially languages based on programming paradigms other than object-orientation. There are many RPython-based implementations of various languages that can be used, for example for Prolog [4], Racket [5], Lisp [2], or SQL [9].…”
Section: Resultsmentioning
confidence: 99%
“…Figure 4d shows our working example in ScaLite[Map, List]. Implementing a hash join is done in two phases: the first phase (lines [3][4][5][6][7][8][9][10][11][12] iterates over the elements of the first relation and builds a hash table which groups these elements based on their join key; in the second phase, the algorithm probes the elements of the second relation and iterates over the corresponding elements of the first relation using the constructed hash table.…”
Section: Four-level Stack (+ Scalite[map List])mentioning
confidence: 99%
“…), this DSL contains different join operators including semi-, anti-, and outer joins. 8 Transformations. As we discussed in Section 3.2, declarative and functional languages are not appropriate for performance tuning.…”
Section: Collection Programming Front-endmentioning
confidence: 99%
See 1 more Smart Citation
“…'(3, []))). Furthermore, a list can be denoted in terms of its head and tail, for example [1 | [2,3]] is equivalent to [1,2,3].…”
Section: Prolog Backgroundmentioning
confidence: 99%