Proceedings of the 18th ACM SIGPLAN International Conference on Managed Programming Languages and Runtimes 2021
DOI: 10.1145/3475738.3480715
|View full text |Cite
|
Sign up to set email alerts
|

Abstract: Testing and debugging a Virtual Machine is a laborious task without the proper tooling. This is particularly true for VMs with JIT compilation and dynamic code patching for techniques such as inline caching. In addition, this situation is getting worse when the VM builds and runs on multiple target architectures.In this paper, we report on several lessons we learned while testing the Pharo VM, particularly during the port of its Cogit JIT compiler to the AArch64 architecture. The Pharo VM presented already a s… Show more

Help me understand this report

Search citation statements

Order By: Relevance

Paper Sections

Select...
2
1
1
1

Citation Types

0
9
0

Year Published

2022
2022
2023
2023

Publication Types

Select...
4
1

Relationship

3
2

Authors

Journals

citations
Cited by 7 publications
(9 citation statements)
references
References 15 publications
0
9
0
Order By: Relevance
“…The Pharo VM presents a high-level simulation environment that is very handy to simulate full executions including JITt'ed code and liveprogram the VM [22], illustrated in Figure 4. The simulation environment is extended with a testing infrastructure [25] that allows VM developers to write fine-grained testing scenarios, making tests small, fast, reproducible, and cross-ISA. The VM is executed as Pharo code in the simulation environment and transpiled to C to produce the production artefact.…”
Section: Realizationmentioning
confidence: 99%
See 1 more Smart Citation
“…The Pharo VM presents a high-level simulation environment that is very handy to simulate full executions including JITt'ed code and liveprogram the VM [22], illustrated in Figure 4. The simulation environment is extended with a testing infrastructure [25] that allows VM developers to write fine-grained testing scenarios, making tests small, fast, reproducible, and cross-ISA. The VM is executed as Pharo code in the simulation environment and transpiled to C to produce the production artefact.…”
Section: Realizationmentioning
confidence: 99%
“…VM Testing. Maxine and Pharo reported recently QEMU based unit testing infrastructures for cross-ISA testing and debugging [15,25]. They reported that this infrastructures helped them in porting their VMs to ARMv7 and ARMv8 64bits respectively.…”
Section: Related Workmentioning
confidence: 99%
“…Most debugging and development happens in the simulation environment and is compiled to a machine executable VM [20,25]. The Pharo VM has around 1000 unit test cases [24] written in the simulation environment, covering the bytecode interpreter, the language native functions, and the Just-In-Time compiler. These test cases are executed with different parameters configuring different word sizes (32/64 bits) and processor architectures (x86, x86-64, ARM32 and ARM64).…”
Section: Experimentation Platformmentioning
confidence: 99%
“…Testing and debugging Virtual Machines (VMs) is a laborious task without the proper tooling, which is aggravated when the VM targets multiple architectures [5]. To cope with the elevated cost of building language VMs, approaches such as VM generation frameworks [9,11,13,15,20,25,33], Metacircular VMs [28,31,32] and simulation-based VM generators [15,20,24,25] were created.…”
Section: Introduction and Problemmentioning
confidence: 99%
“…While RISC-V defends key design choices, it comes as a clash for compilers inspired from or supporting the x86 architecture. This mismatch has to be addressed when writing a JIT compiler for RISC-V. To leverage some work needed to port a VM to a new ISA, an instruction set architecture (ISA)-agnostic test suite has been developed around the Pharo VM and its JIT compiler Cogit [1]. This suite consists of around 1400 configurable tests that range from checks on simple one-bytecode recompilation to correct polymorphic inline cache [2] generation.…”
Section: Introductionmentioning
confidence: 99%