Filters








24 Hits in 2.2 sec

Pycket: a tracing JIT for a functional language

Spenser Bauman, Carl Friedrich Bolz, Robert Hirschfeld, Vasily Kirilichev, Tobias Pape, Jeremy G. Siek, Sam Tobin-Hochstadt
2015 SIGPLAN notices  
We present Pycket, a high-performance tracing JIT compiler for Racket.  ...  In the setting of a functional language, where recursion and higher-order functions are more prevalent than explicit loops, the most significant performance challenge for a tracing JIT is identifying which  ...  We thank Anton Gulenko for implementing storage strategies.  ... 
doi:10.1145/2858949.2784740 fatcat:bqh7wuojlzfkflfzisobhto7yu

Pycket: a tracing JIT for a functional language

Spenser Bauman, Carl Friedrich Bolz, Robert Hirschfeld, Vasily Kirilichev, Tobias Pape, Jeremy G. Siek, Sam Tobin-Hochstadt
2015 Proceedings of the 20th ACM SIGPLAN International Conference on Functional Programming - ICFP 2015  
We present Pycket, a high-performance tracing JIT compiler for Racket.  ...  In the setting of a functional language, where recursion and higher-order functions are more prevalent than explicit loops, the most significant performance challenge for a tracing JIT is identifying which  ...  We thank Anton Gulenko for implementing storage strategies.  ... 
doi:10.1145/2784731.2784740 dblp:conf/icfp/BaumanBHKPST15 fatcat:ohildp27dnfixfhx3peyunqsia

Sound gradual typing: only mostly dead

Spenser Bauman, Carl Friedrich Bolz-Tereick, Jeremy Siek, Sam Tobin-Hochstadt
2017 Proceedings of the ACM on Programming Languages  
First, we apply a sophisticated tracing JIT compiler and optimizer, automatically generated in Pycket using the RPython framework originally created for PyPy.  ...  Our study takes benchmarks published in a recent paper on gradual typing performance in Typed Racket (Takikawa et al., POPL 2016) and evaluates them using an experimental tracing JIT compiler for Racket  ...  ., through its support for the Indiana University Pervasive Technology Institute, and in part by the Indiana METACyt Initiative.  ... 
doi:10.1145/3133878 dblp:journals/pacmpl/BaumanBST17 fatcat:ls3lhv6rdjhhhiwh64nog3bfi4

JIT-Based Cost Analysis for Dynamic Program Transformations

John Magnus Morton, Patrick Maier, Phil Trinder
2016 Electronical Notes in Theoretical Computer Science  
Hence a lightweight cost model is required for JIT traces. This paper presents the design and implementation of a system for extracting JIT trace information from the Pycket JIT compiler.  ...  The AJITPar project investigates whether the information in JIT traces can be used to dynamically transform programs for a specific parallel architecture.  ...  PyPy has a trace-base JIT, and the RPython tool-chain allows for the JIT to be easily added to a new interpreter implementation Pycket [13] is an implementation of the Racket language built on PyPy's  ... 
doi:10.1016/j.entcs.2016.12.012 fatcat:lktqlef7ufeutaqyarzc6rgauy

JIT costing adaptive skeletons for performance portability

Patrick Maier, John Magnus Morton, Phil Trinder
2016 Proceedings of the 5th International Workshop on Functional High-Performance Computing - FHPC 2016  
We present the design of a framework that unfolds skeletons into task graphs, dynamically schedules tasks, and dynamically rewrites skeletons, guided by a lightweight JIT trace-based cost model, to adapt  ...  trace cost model predicts granularity accurately enough to guide rewriting towards a good adaptive transformation.  ...  There aren't many trace-based JITs for functional languages yet. Among the few is Pycket [2] , a novel tracing JIT for Racket (and often faster than the Racket VM, which runs on a traditional JIT).  ... 
doi:10.1145/2975991.2975995 dblp:conf/icfp/MaierMT16 fatcat:v4afhdni7bakrchiw4aewp4zum

Adaptive just-in-time value class optimization for lowering memory consumption and improving execution time performance

Tobias Pape, Carl Friedrich Bolz, Robert Hirschfeld
2017 Science of Computer Programming  
Applied to a small prototype and an implementation of the Racket language, we found improvements in memory usage and execution time for several micro-benchmarks.  ...  The technique identifies patterns of frequent value object references and introduces abbreviated forms for them.  ...  We thank Alan Borning for comments on a draft version of this paper. We thank the anonymous reviewers for their detailed feedback.  ... 
doi:10.1016/j.scico.2016.08.003 fatcat:xi5nisqavzagnok75jfdn3nuza

PhD Abstracts

GRAHAM HUTTON
2019 Journal of functional programming  
As a service to the community, twice per year the Journal of Functional Programming publishes the abstracts from PhD dissertations completed during the previous year.  ...  Many students complete PhDs in functional programming each year.  ...  JIT-based Cost Models for Adaptive Parallelism The Pycket compiler is extended to enable minimal-overhead runtime access to JIT traces.  ... 
doi:10.1017/s0956796818000230 fatcat:y64ggtn46nd35dduhjmjallwdu

Language-independent storage strategies for tracing-JIT-based virtual machines

Tobias Pape, Tim Felgentreff, Robert Hirschfeld, Anton Gulenko, Carl Friedrich Bolz
2015 Proceedings of the 11th Symposium on Dynamic Languages - DLS 2015  
Furthermore, while PyPy is based on RPython, a language to write VMs with reusable components such as a tracing just-in-time compiler and garbage collection, the strategies design itself was not generalized  ...  We furthermore evaluate the generality of our implementation by applying it to Topaz, a Ruby VM, and Pycket, a Racket implementation.  ...  a tracing JIT compiler.  ... 
doi:10.1145/2816707.2816716 dblp:conf/dls/PapeFHGB15 fatcat:lwiie23kvnh7thxpvk4jy5532q

Language-independent storage strategies for tracing-JIT-based virtual machines

Tobias Pape, Tim Felgentreff, Robert Hirschfeld, Anton Gulenko, Carl Friedrich Bolz
2015 SIGPLAN notices  
Furthermore, while PyPy is based on RPython, a language to write VMs with reusable components such as a tracing just-in-time compiler and garbage collection, the strategies design itself was not generalized  ...  We furthermore evaluate the generality of our implementation by applying it to Topaz, a Ruby VM, and Pycket, a Racket implementation.  ...  a tracing JIT compiler.  ... 
doi:10.1145/2936313.2816716 fatcat:aaicxoqhwnhdthxhwdnmct3kjq

Tracing vs. partial evaluation: comparing meta-compilation approaches for self-optimizing interpreters

Stefan Marr, Stéphane Ducasse
2015 Proceedings of the 2015 ACM SIGPLAN International Conference on Object-Oriented Programming, Systems, Languages, and Applications - OOPSLA 2015  
a specific language.  ...  Tracing and partial evaluation have been proposed as metacompilation techniques for interpreters to make just-in-time compilation language-independent.  ...  Fijałkowski, and A. Rigo from the PyPy team as well as B. Daloze, G. Duboscq, M. Grimmer, C. Humer, M. Haupt, C. Seaton, L. Stadler C. Wimmer, A. Wöß, T. Würthinger, and W.  ... 
doi:10.1145/2814270.2814275 dblp:conf/oopsla/MarrD15 fatcat:xujdfbthvbbutco5ev7a36ooz4

Tracing vs. partial evaluation: comparing meta-compilation approaches for self-optimizing interpreters

Stefan Marr, Stéphane Ducasse
2015 SIGPLAN notices  
a specific language.  ...  Tracing and partial evaluation have been proposed as metacompilation techniques for interpreters to make just-in-time compilation language-independent.  ...  Fijałkowski, and A. Rigo from the PyPy team as well as B. Daloze, G. Duboscq, M. Grimmer, C. Humer, M. Haupt, C. Seaton, L. Stadler C. Wimmer, A. Wöß, T. Würthinger, and W.  ... 
doi:10.1145/2858965.2814275 fatcat:sjcnfyowojbw3nae7izxxkfazm

Optimizing and Evaluating Transient Gradual Typing [article]

Michael M. Vitousek, Jeremy G. Siek, Avik Chaudhuri
2019 arXiv   pre-print
Finally, we measure the efficiency of Reticulated Python programs when running on PyPy, a tracing JIT.  ...  Gradual typing enables programmers to combine static and dynamic typing in the same language.  ...  [2017] showed that Pycket, a language based on Typed Racket but implemented in RPython (a language for automatically generating tracing JITs that PyPy itself is implemented in) [Bolz et al. 2009] ,  ... 
arXiv:1902.07808v1 fatcat:g2eehsnq5fg7xlnl2ovb226pge

Approaches to interpreter composition

Edd Barrett, Carl Friedrich Bolz, Laurence Tratt
2015 Computer languages, systems & structures  
We show that programs that cross the language barrier frequently execute faster in a meta-tracing composition, and that meta-tracing imposes a significantly lower overhead on composed programs relative  ...  and a meta-tracing interpreter.  ...  We thank Jim Baker, Tomas Kalibera, and Jan Wielemaker for help. Martin Berger and Samuele Pedroni gave us insightful feedback on early drafts of this paper.  ... 
doi:10.1016/j.cl.2015.03.001 fatcat:jcydz5z7kbbobgcjzrow6pwavi

Is sound gradual typing dead?

Asumu Takikawa, Daniel Feltey, Ben Greenman, Max S. New, Jan Vitek, Matthias Felleisen
2016 Proceedings of the 43rd Annual ACM SIGPLAN-SIGACT Symposium on Principles of Programming Languages - POPL 2016  
They also thank Matthew Butterick, John Clements, Matthew Might, Vincent St-Amour, Neil Toronto, David Van Horn, Danny Yoo, and Jon Zeppieri for providing benchmark code bases.  ...  The latter implements a JIT compiler that open-codes primitive functions.  ...  Optional Type Systems Optional typing can be traced as far back as MACLISP, which allowed users to declare (unchecked) type specifications [15, §14.2] in an otherwise untyped language.  ... 
doi:10.1145/2837614.2837630 dblp:conf/popl/TakikawaFGNVF16 fatcat:incs2utbkrfotes5djglnrwiwu

Transient Typechecks Are (Almost) Free

Richard Roberts, Stefan Marr, Michael Homer, James Noble, Michael Wagner
2019 European Conference on Object-Oriented Programming  
Transient gradual typing imposes run-time type tests that typically cause a linear slowdown.  ...  These optimizations can give gradually-typed languages performance comparable to state-of-the-art dynamic languages, so programmers can add types to their code without affecting their programs' performance  ...  s study, in which they used Pycket [5] (a tracing JIT for Racket) rather than the standard Racket VM, but maintained full gradually-typed Racket semantics.  ... 
doi:10.4230/lipics.ecoop.2019.5 dblp:conf/ecoop/RobertsMH019 fatcat:mkkfuiwz2bbmbia4bxpgmwh2hi
« Previous Showing results 1 — 15 out of 24 results