SlideShare uma empresa Scribd logo
1 de 42
Baixar para ler offline
Eclipse	OMR	
	
A	Modern	Toolkit	for	Building	Language	Run:mes	
	
	
Mark	Stoodley	
OMR	Project	Technical	Lead
About me
•  Mark Stoodley
mstoodle@ca.ibm.com
@mstoodle
•  Senior software developer in
Toronto, Canada working for
IBM Runtime Technologies
•  Spent the last 14 years
building JIT compilers in JVMs
•  OMR Project Technical Lead
2
hBp://www.eclipse.org/omr	
hBps://github.com/eclipse/omr	
Interact	with	team	via	mailing	list	or	GitHub	Issues	
(omr-dev@eclipse.org)	
	
Dual	License:	
Eclipse	Public	License	V1.0	
Apache	2.0	
	
Contributors:	please	sign	Eclipse	CLA	J	!	
hBp://www.eclipse.org/legal/CLA.php	
Eclipse	OMR	is	Live	!!	
3
4	
•  Ini:al	contribu:on	from	IBM	on	March	7	is	about	200KLOC	
•  Project	team	is	very	excited	to	be	moving	forward	in	the	open!
OMR	is…	
	
																																																							
	
	
5
OMR	is…	
																																																					
for	Building	Language	Run:mes	
6
OMR	is…	
																																																					
for	Building	Language	Run:mes	
7
OMR	is…	
				A	Modern	Toolkit																	
for	Building	Language	Run:mes	
8
What	does	
	
Building	Language	Run-mes	
	
mean?	
9
Java Execution Environment
What’s	in	a	Language	Run:me	for	Java?	
Java	
Plaaorm	Abstrac:on Layer	
Java	
Garbage Collector	
Java	
Diagnos:c	Services	
Source Code Bytecode/AST
Compiler
10	
Java	
Just-In-Time	Compiler	
Interpreter
Java	
Source	
Java	
Bytecode	
Compiler	
Java	
Bytecode	
Interpreter
Ruby Execution Environment
What’s	in	a	Language	Run:me	for	Ruby?	
Ruby	
Plaaorm	Abstrac:on Layer	
Ruby	
Garbage Collector	
Ruby	
Diagnos:c	Services	
Source Code Bytecode/AST
Compiler
11	
Ruby	
Just-In-Time	Compiler	
Interpreter
Ruby	
Source	
Ruby	
Bytecode	
Compiler	
Ruby	
Bytecode	
Interpreter
Python Execution Environment
What’s	in	a	Language	Run:me	for	Python?	
Python	
Plaaorm	Abstrac:on Layer	
Python	
Garbage Collector	
Python	
Diagnos:c	Services	
Source Code Bytecode/AST
Compiler
12	
Python	
Just-In-Time	Compiler	
Interpreter
Python	
Source	
Python	
Bytecode	
Compiler	
Python	
Bytecode	
Interpreter
•  Investment in one runtime has no leverage in other runtimes
•  Cloud => many languages => expensive to advance platform
But all language runtimes are
completely different implementations
13
Java Execution Environment
OMR	started	from	IBM	J9	Java…	
J9	Java	
Plaaorm	Abstrac:on Layer	
J9	Java	
Garbage Collector	
J9	Java	
Diagnos:c	Services	
Source Code Bytecode/AST
Compiler
14	
J9	Java	
Just-In-Time	Compiler	
Interpreter
Java	
Source	
J9	Java	
Bytecode	
Compiler	
J9	Java	
Bytecode	
Interpreter
J9	Java	
JIT	Compiler	Glue	
J9 Java Execution Environment
By	concentra:ng	“Java”ness	into	a	“glue”	layer					
for	each	core	component	
OMR	
Plaaorm	Abstrac:on Layer	
														OMR	
															Garbage
															Collector	
OMR	
Diagnos:c	Services	
	
	
Source Code Bytecode/AST
Compiler
15	
		
	
	
Interpreter
Java	
Source	
J9	Java	
Bytecode	
Compiler	
J9	Java	
Bytecode	
Interpreter	
J9	Java	Diagnos:c	
Glue	
J9	
Java	
GC	
Glue	
OMR	
Just	in	Time	
(JIT)	
Compiler
1.  OMR	has	no	language	seman:cs	
	
2.  OMR	is	not	a	language	run:me	
	
3.  OMR	can	become	part	of	any	language	run:me	
16
…toolkit	doesn’t	seem	quite	right…	
17
…toolkit	not	quite	right…	
	
OMR	provides	
High	Quality	Language	Run:me	
Ingredients	
18
Ingredients	Now	Available!	
port	 	 	 	plaaorm	abstrac:on	(por:ng)	library	
thread 	 	 	cross	plaaorm	pthread-like	threading	library	
gc 	 	 	 	garbage	collec:on	framework	for	managed	heaps	
vm 	 	 	 	APIs	to	manage	per-interpreter	and	per-thread	contexts	
omrtrace 	 	tracing	library	for	communica:on	with	IBM	Health	Center	
	 	 	 	monitoring	tools	
omrsigcompat 	signal	handling	compa:bility	library	
example	 	 	demonstra:on	code	to	show	how	a	language	run:me	might	
	 	 	 	consume	some	OMR	components,	also	used	for	tes:ng	
fvtest 	 	 	a	language	independent	test	framework	so	that	OMR	 	
	 	 	 	components	can	be	tested	outside	of	a	language	run:me	
+	a	few	others	
	
…a	liBle	less	than	200KLOC	at	this	point	
19
More	ingredients	coming	soon!	
diag: 	 	 	more	diagnos:c	support	for	run:mes	to	aid	run:me	 	
	 	 	 	developers	and	users	
	
hcagentcore:	 	core	IBM	Health	Center	agent	code	to	connect	with	a	 	
	 	 	 	run:me	
	
gc: 	 	 	 	adding	genera:onal	and	other	policies	/	technologies	
	
jit: 	 	 	 	Just	In	Time	compiler	and	na:ve	code	genera:on	tools	
	
docs: 	 	 	<gasp>	we	need	more	overview	documenta:on	
	
tests: 	 	 	more	tests	to	ensure	high	quality	contribu:ons	
20
How	do	you	test	
	
language	run:me	components	
	
with	no	language	seman:cs?	
21
Mock	it	up!	
•  fvtest	directory	
–  Leverages	Google	test	unit	test	framework	
–  Component	tests	for:	
•  Port,	gc,	signals,	threads,	vm	fork,	trace,	agents	
•  U:li:es	and	data	structures,	method	dic:onary	
•  etc.	
•  “make	test”	forms	the	basis	for	high	quality	contribu:ons	
–  Contribu:ons	cannot	cause	new	failures	in	“make	test”	
22
Can	it	really	work?	
	
We	asked	ourselves	the	same	ques:on…	
	
	
23
So	we	put	it	to	the	test!	
	
Ruby+OMR	
Python+OMR	
SOM++	(Smalltalk)	+OMR	
	
…also	used	in	IBM	SDK	for	Java	8	
…and	consumed	daily	as	we	build	the	next	IBM	SDK	for	Java	
	
Goal:	test	drive	integra:on	into	exis:ng	run:me	communi:es	
COMPATIBILITY	is	cri:cal	
24
Ruby	+	OMR	Technology	Preview	
•  We	ported	OMR	into	CRuby	
–  Focus	on	easy	integra:on	and	compa:bility	
–  All	C	extensions	work	as-is	
–  It	runs	Rails!	
•  Presented	at	Ruby	Kaigi	2015,	FOSDEM	&	jFokus	2016	
•  Available	on	github:	
–  Download	docker	images	for	64-bit	X86,	OpenPOWER,	and	
LinuxONE	@	hBps://goo.gl/P3yXuy	
25
Diagnos:c	Tooling	
	
	
26
Health	Center	
•  Provides	a	live	view	of	run:me	details	
•  Works	with	IBM	JDK,	IBM	Node.js,	and									
Ruby+OMR	Technology	Preview	
•  hBp://goo.gl/u3VITI	
	
27
Health Center – CRuby Method Profiling
28
Health Center – OMR GC Statistics from CRuby
29
Garbage	Collec:on	and	Memory	Visualizer	
30	
•  Provides	a	graphical	details	on	GC	events	post	
mortem	from	verbose:gc	logs	
•  Works	with	IBM	JDK,	IBM	Node.js	and										
Ruby+OMR	Technology	Preview	
•  hBps://goo.gl/YwNrmI
Garbage	Collec:on	and	Memory	Visualizer
31
Performance	
	
Up	to	2.5X	faster	on	some	
benchmarks	with	Ruby+OMR	JIT!	
32
112.84	
122.57	
0	
20	
40	
60	
80	
100	
120	
140	
Ruby	2.2.2	 Ruby	2.2.2	+	OMR	
Is	Ruby	Fast	Yet?	
	
33
28.4	
17.2	
5.5	
1.1	
0	
5	
10	
15	
20	
25	
30	
Ruby	2.2.2	 Ruby	2.2.2	+	OMR	 Ruby	2.2.2	+	OMR	+	JIT	 OMR	Il	Builder	
Pow(2,N)	
34	
Time	(seconds)
•  We	know	it	works;	we	tried	it!	
•  IBM	Java	SDK	will	con:nue	to	consume	OMR	technology	
and	work	directly	in	open	OMR	project	
•  Project	is	open	to	all;	we	welcome	others	
–  New	contributors!	
–  New	plaaorms!	
–  New	languages!	
–  New	tool	interfaces!	
–  New	technology	to	help	build	run:mes!	
35
Wrap	Up	
•  Eclipse	OMR:	high	quality	language	run:me	components	
1.  has	no	language	seman:cs	
2.  is	not	a	language	run:me	
3.  can	become	part	of	any	language	run:me	
•  We	are	live	at	Eclipse	as	an	incubator!	
–  hBp://www.eclipse.org/omr	
–  hBps://github.com/eclipse/omr	
–  omr-dev@eclipse.org	
–  Contact	us	via	mailing	list	or	GItHub	issues	
•  Dual	Eclipse	1.0	+	Apache	2.0	license	
•  We	would	love	to	see	you	all	there!	
36
•  Almost no one starts a new project saying:
–  First, I’ll write the firmware from scratch …
–  First, I’ll write the file system from scratch …
–  First, I’ll write the display drivers from scratch …
•  We would like to make these statements just as unlikely:
–  First, I’ll write the cross platform port library from scratch …
–  First, I’ll write a garbage collector technology from scratch …
–  First, I’ll write the JIT compiler technology from scratch …
37	
A	Par:ng	Thought
•  Almost no one starts a new project saying:
–  First, I’ll write the firmware from scratch …
–  First, I’ll write the file system from scratch …
–  First, I’ll write the display drivers from scratch …
•  We would like to make these statements just as unlikely:
–  First, I’ll write the cross platform port library from scratch …
–  First, I’ll write the garbage collector from scratch …
–  First, I’ll write the JIT compiler from scratch …
38	
A	Par:ng	Thought
BoF	session	tonight	at	7pm	in	Lake	Anne	A	
Na:ve	code	genera:on	for	dynamic	languages	
	
Learn	a	bit	more	about	the	OMR	JIT	and														
its	na:ve	code	genera:on	services	
39
Learn	more	about	OMR!	
•  A	VM	is	a	VM	is	a	VM:	The	Secret	Path	to	High	Performance	Mul:	Language	Run:mes	(Mark	Stoodley,	JVM	
Languages	Summit	2015)	
hBps://www.youtube.com/watch?v=kOnyJurioyw	
•  Beyond	the	Coffee	Cup:	Leveraging	Java	Run:me	Technologies	for	the	Polyglot	(Daryl	Maier,	Java	One	2015)	
hBp://www.slideshare.net/0xdaryl/javaone-2015-con7547-beyond-the-coffee-cup-leveraging-java-run:me-technologies-for-polyglot	
•  What’s	in	an	Object?	Java	Garbage	Collec:on	for	the	Polyglot	(Charlie	Gracie,	Java	One	2015)	
hBp://www.slideshare.net/charliegracie1/javaone-whats-in-an-object	
•  Building	Your	Own	Language	Run:me	(Angela	Lin,	Robert	Young,	Craig	Lehmann,	Xiaoli	Liang,	CASCON	2015)	
hBps://ibm.box.com/s/7xdg25we2ezmdjjbqdys30d7dl1iyo49	
•  It’s	Dangerous	to	GC	alone.	Take	this!	(Robert	Young	and	Craig	Lehmann,	Ruby	Kaigi	2015)	
hBp://www.slideshare.net/craiglehmann/the-omr-gc-talk-ruby-kaigi-2015	
•  Experiments	in	sharing	Java	VM	Technology	with	CRuby	(MaBhew	Gaudet,	Ruby	Kaigi	2015) 	 	
hBp://www.slideshare.net/MaBhewGaudet/experiments-in-sharing-java-vm-technology-with-cruby	
•  Ruby	and	OMR:	Experiments	in	u:lizing	OMR	technologies	in	Ruby	(MRI)	(Charlie	Gracie,	FOSDEM	2016)	
hBp://www.slideshare.net/CharlieGracie/ruby-and-omr	
•  A	JVMs	Journey	into	Polyglot	Run:mes	(Charlie	Gracie,	jFokus	2016)	
hBps://t.co/efCKf6aCB4	
•  OMR:	A	modern	toolkit	for	building	language	run:mes	(Mark	Stoodley,	EclipseCon	March	2016)	
[	You’re	reading	it	right	now!	]	
•  Ruby+OMR	Technology	Preview	github	project	with	docker	images	for	Linux	on	LinuxONE,	OpenPOWER,	and	X86	
hBps://github.com/rubyomr-preview/rubyomr-preview	
	
•  Contact:	
–  Mark	Stoodley	(mstoodle@ca.ibm.com,	@mstoodle)	 	 	 	OMR	Project	Technical	Lead	
40
Trademarks,	Copyrights,	Disclaimers	
IBM’s statements regarding its plans, directions, and intent are subject to change or withdrawal without
notice at IBM’s sole discretion. Information regarding potential future products is intended to outline our
general product direction and it should not be relied on in making a purchasing decision. The information
mentioned regarding potential future products is not a commitment, promise, or legal obligation to deliver
any material, code or functionality. Information about potential future products may not be incorporated into
any contract. The development, release, and timing of any future features or functionality described for our
products remains at our sole discretion.
IBM, the IBM logo, and ibm.com are trademarks or registered trademarks of International Business Machines Corp.,
registered in many jurisdictions worldwide. Other product and service names might be trademarks of IBM or other
companies. A current list of other IBM trademarks is available on the web at "Copyright and trademark information" at
http://www.ibm.com/legal/copytrade.shtml
Other company, product, or service names may be trademarks or service marks of others.
THE INFORMATION CONTAINED IN THIS PRESENTATION IS PROVIDED FOR INFORMATIONAL PURPOSES ONLY.
WHILE EFFORTS WERE MADE TO VERIFY THE COMPLETENESS AND ACCURACY OF THE INFORMATION
CONTAINED IN THIS PRESENTATION, IT IS PROVIDED "AS IS" WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
IMPLIED. IN ADDITION, THIS INFORMATION IS BASED ON IBM’S CURRENT PRODUCT PLANS AND STRATEGY,
WHICH ARE SUBJECT TO CHANGE BY IBM WITHOUT NOTICE. IBM SHALL NOT BE RESPONSIBLE FOR ANY
DAMAGES ARISING OUT OF THE USE OF, OR OTHERWISE RELATED TO, THIS PRESENTATION OR ANY OTHER
DOCUMENTATION. NOTHING CONTAINED IN THIS PRESENTATION IS INTENDED TO, NOR SHALL HAVE THE
EFFECT OF, CREATING ANY WARRANTIES OR REPRESENTATIONS FROM IBM (OR ITS SUPPLIERS OR
LICENSORS), OR ALTERING THE TERMS AND CONDITIONS OF ANY AGREEMENT OR LICENSE GOVERNING THE
USE OF IBM PRODUCTS OR SOFTWARE.
© Copyright International Business Machines Corporation 2016. All rights reserved.
41
Addi:onal	Important	Disclaimers	
•  THE	INFORMATION	CONTAINED	IN	THIS	PRESENTATION	IS	PROVIDED	FOR	INFORMATIONAL	
PURPOSES	ONLY.		
•  WHILST	EFFORTS	WERE	MADE	TO	VERIFY	THE	COMPLETENESS	AND	ACCURACY	OF	THE	
INFORMATION	CONTAINED	IN	THIS	PRESENTATION,	IT	IS	PROVIDED	“AS	IS”,	WITHOUT	WARRANTY	
OF	ANY	KIND,	EXPRESS	OR	IMPLIED.		
•  ALL	PERFORMANCE	DATA	INCLUDED	IN	THIS	PRESENTATION	HAVE	BEEN	GATHERED	IN	A	
CONTROLLED	ENVIRONMENT.		YOUR	OWN	TEST	RESULTS	MAY	VARY	BASED	ON	HARDWARE,	
SOFTWARE	OR	INFRASTRUCTURE	DIFFERENCES.	
•  ALL	DATA	INCLUDED	IN	THIS	PRESENTATION	ARE	MEANT	TO	BE	USED	ONLY	AS	A	GUIDE.	
•  IN	ADDITION,	THE	INFORMATION	CONTAINED	IN	THIS	PRESENTATION	IS	BASED	ON	IBM’S	CURRENT	
PRODUCT	PLANS	AND	STRATEGY,	WHICH	ARE	SUBJECT	TO	CHANGE	BY	IBM,	WITHOUT	NOTICE.		
•  IBM	AND	ITS	AFFILIATED	COMPANIES	SHALL	NOT	BE	RESPONSIBLE	FOR	ANY	DAMAGES	ARISING	
OUT	OF	THE	USE	OF,	OR	OTHERWISE	RELATED	TO,	THIS	PRESENTATION	OR	ANY	OTHER	
DOCUMENTATION.		
•  NOTHING	CONTAINED	IN	THIS	PRESENTATION	IS	INTENDED	TO,	OR	SHALL	HAVE	THE	EFFECT	OF:		
•  -	CREATING	ANY	WARRANT	OR	REPRESENTATION	FROM	IBM,	ITS	AFFILIATED	COMPANIES	OR	ITS	
OR	THEIR	SUPPLIERS	AND/OR	LICENSORS	
42

Mais conteúdo relacionado

Mais procurados

Py.test
Py.testPy.test
Py.testsoasme
 
Introduction to rook
Introduction to rookIntroduction to rook
Introduction to rookRohan Gupta
 
RedisConf18 - Techniques for Synchronizing In-Memory Caches with Redis
RedisConf18 - Techniques for Synchronizing In-Memory Caches with RedisRedisConf18 - Techniques for Synchronizing In-Memory Caches with Redis
RedisConf18 - Techniques for Synchronizing In-Memory Caches with RedisRedis Labs
 
BUD17-302: LLVM Internals #2
BUD17-302: LLVM Internals #2 BUD17-302: LLVM Internals #2
BUD17-302: LLVM Internals #2 Linaro
 
Velocity 2015 linux perf tools
Velocity 2015 linux perf toolsVelocity 2015 linux perf tools
Velocity 2015 linux perf toolsBrendan Gregg
 
Tech Talk: RocksDB Slides by Dhruba Borthakur & Haobo Xu of Facebook
Tech Talk: RocksDB Slides by Dhruba Borthakur & Haobo Xu of FacebookTech Talk: RocksDB Slides by Dhruba Borthakur & Haobo Xu of Facebook
Tech Talk: RocksDB Slides by Dhruba Borthakur & Haobo Xu of FacebookThe Hive
 
Blazing Performance with Flame Graphs
Blazing Performance with Flame GraphsBlazing Performance with Flame Graphs
Blazing Performance with Flame GraphsBrendan Gregg
 
The Linux Kernel Scheduler (For Beginners) - SFO17-421
The Linux Kernel Scheduler (For Beginners) - SFO17-421The Linux Kernel Scheduler (For Beginners) - SFO17-421
The Linux Kernel Scheduler (For Beginners) - SFO17-421Linaro
 
LAS16-111: Easing Access to ARM TrustZone – OP-TEE and Raspberry Pi 3
LAS16-111: Easing Access to ARM TrustZone – OP-TEE and Raspberry Pi 3LAS16-111: Easing Access to ARM TrustZone – OP-TEE and Raspberry Pi 3
LAS16-111: Easing Access to ARM TrustZone – OP-TEE and Raspberry Pi 3Linaro
 
Introduction of cloud native CI/CD on kubernetes
Introduction of cloud native CI/CD on kubernetesIntroduction of cloud native CI/CD on kubernetes
Introduction of cloud native CI/CD on kubernetesKyohei Mizumoto
 
A whirlwind tour of the LLVM optimizer
A whirlwind tour of the LLVM optimizerA whirlwind tour of the LLVM optimizer
A whirlwind tour of the LLVM optimizerNikita Popov
 
Functional Tests Automation with Robot Framework
Functional Tests Automation with Robot FrameworkFunctional Tests Automation with Robot Framework
Functional Tests Automation with Robot Frameworklaurent bristiel
 
Go Programming language, golang
Go Programming language, golangGo Programming language, golang
Go Programming language, golangBasil N G
 
Streaming Apps and Poison Pills: handle the unexpected with Kafka Streams
Streaming Apps and Poison Pills: handle the unexpected with Kafka StreamsStreaming Apps and Poison Pills: handle the unexpected with Kafka Streams
Streaming Apps and Poison Pills: handle the unexpected with Kafka Streamsconfluent
 

Mais procurados (20)

Py.test
Py.testPy.test
Py.test
 
Introduction to rook
Introduction to rookIntroduction to rook
Introduction to rook
 
RedisConf18 - Techniques for Synchronizing In-Memory Caches with Redis
RedisConf18 - Techniques for Synchronizing In-Memory Caches with RedisRedisConf18 - Techniques for Synchronizing In-Memory Caches with Redis
RedisConf18 - Techniques for Synchronizing In-Memory Caches with Redis
 
BUD17-302: LLVM Internals #2
BUD17-302: LLVM Internals #2 BUD17-302: LLVM Internals #2
BUD17-302: LLVM Internals #2
 
Velocity 2015 linux perf tools
Velocity 2015 linux perf toolsVelocity 2015 linux perf tools
Velocity 2015 linux perf tools
 
Tech Talk: RocksDB Slides by Dhruba Borthakur & Haobo Xu of Facebook
Tech Talk: RocksDB Slides by Dhruba Borthakur & Haobo Xu of FacebookTech Talk: RocksDB Slides by Dhruba Borthakur & Haobo Xu of Facebook
Tech Talk: RocksDB Slides by Dhruba Borthakur & Haobo Xu of Facebook
 
Blazing Performance with Flame Graphs
Blazing Performance with Flame GraphsBlazing Performance with Flame Graphs
Blazing Performance with Flame Graphs
 
The Linux Kernel Scheduler (For Beginners) - SFO17-421
The Linux Kernel Scheduler (For Beginners) - SFO17-421The Linux Kernel Scheduler (For Beginners) - SFO17-421
The Linux Kernel Scheduler (For Beginners) - SFO17-421
 
LAS16-111: Easing Access to ARM TrustZone – OP-TEE and Raspberry Pi 3
LAS16-111: Easing Access to ARM TrustZone – OP-TEE and Raspberry Pi 3LAS16-111: Easing Access to ARM TrustZone – OP-TEE and Raspberry Pi 3
LAS16-111: Easing Access to ARM TrustZone – OP-TEE and Raspberry Pi 3
 
Introduction of cloud native CI/CD on kubernetes
Introduction of cloud native CI/CD on kubernetesIntroduction of cloud native CI/CD on kubernetes
Introduction of cloud native CI/CD on kubernetes
 
Ruby programming
Ruby programmingRuby programming
Ruby programming
 
A whirlwind tour of the LLVM optimizer
A whirlwind tour of the LLVM optimizerA whirlwind tour of the LLVM optimizer
A whirlwind tour of the LLVM optimizer
 
Terraform
TerraformTerraform
Terraform
 
Go Lang Tutorial
Go Lang TutorialGo Lang Tutorial
Go Lang Tutorial
 
Functional Tests Automation with Robot Framework
Functional Tests Automation with Robot FrameworkFunctional Tests Automation with Robot Framework
Functional Tests Automation with Robot Framework
 
Introduction to Robot Framework
Introduction to Robot FrameworkIntroduction to Robot Framework
Introduction to Robot Framework
 
Embedded Android : System Development - Part III
Embedded Android : System Development - Part IIIEmbedded Android : System Development - Part III
Embedded Android : System Development - Part III
 
Go Programming language, golang
Go Programming language, golangGo Programming language, golang
Go Programming language, golang
 
Streaming Apps and Poison Pills: handle the unexpected with Kafka Streams
Streaming Apps and Poison Pills: handle the unexpected with Kafka StreamsStreaming Apps and Poison Pills: handle the unexpected with Kafka Streams
Streaming Apps and Poison Pills: handle the unexpected with Kafka Streams
 
FreeRTOS API
FreeRTOS APIFreeRTOS API
FreeRTOS API
 

Destaque

Jfokus 2016 - A JVMs Journey into Polyglot Runtimes
Jfokus 2016 - A JVMs Journey into Polyglot RuntimesJfokus 2016 - A JVMs Journey into Polyglot Runtimes
Jfokus 2016 - A JVMs Journey into Polyglot RuntimesCharlie Gracie
 
#JavaOne What's in an object?
#JavaOne What's in an object?#JavaOne What's in an object?
#JavaOne What's in an object?Charlie Gracie
 
JavaOne 2015 CON7547 "Beyond the Coffee Cup: Leveraging Java Runtime Technolo...
JavaOne 2015 CON7547 "Beyond the Coffee Cup: Leveraging Java Runtime Technolo...JavaOne 2015 CON7547 "Beyond the Coffee Cup: Leveraging Java Runtime Technolo...
JavaOne 2015 CON7547 "Beyond the Coffee Cup: Leveraging Java Runtime Technolo...0xdaryl
 
Implementing a JavaScript Engine
Implementing a JavaScript EngineImplementing a JavaScript Engine
Implementing a JavaScript EngineKris Mok
 
FOSDEM 2017 - A different Lua JIT using Eclipse OMR
FOSDEM 2017 - A different Lua JIT using Eclipse OMRFOSDEM 2017 - A different Lua JIT using Eclipse OMR
FOSDEM 2017 - A different Lua JIT using Eclipse OMRCharlie Gracie
 
The OMR GC talk - Ruby Kaigi 2015
The OMR GC talk - Ruby Kaigi 2015The OMR GC talk - Ruby Kaigi 2015
The OMR GC talk - Ruby Kaigi 2015craig lehmann
 
Experiments in Sharing Java VM Technology with CRuby
Experiments in Sharing Java VM Technology with CRubyExperiments in Sharing Java VM Technology with CRuby
Experiments in Sharing Java VM Technology with CRubyMatthew Gaudet
 

Destaque (7)

Jfokus 2016 - A JVMs Journey into Polyglot Runtimes
Jfokus 2016 - A JVMs Journey into Polyglot RuntimesJfokus 2016 - A JVMs Journey into Polyglot Runtimes
Jfokus 2016 - A JVMs Journey into Polyglot Runtimes
 
#JavaOne What's in an object?
#JavaOne What's in an object?#JavaOne What's in an object?
#JavaOne What's in an object?
 
JavaOne 2015 CON7547 "Beyond the Coffee Cup: Leveraging Java Runtime Technolo...
JavaOne 2015 CON7547 "Beyond the Coffee Cup: Leveraging Java Runtime Technolo...JavaOne 2015 CON7547 "Beyond the Coffee Cup: Leveraging Java Runtime Technolo...
JavaOne 2015 CON7547 "Beyond the Coffee Cup: Leveraging Java Runtime Technolo...
 
Implementing a JavaScript Engine
Implementing a JavaScript EngineImplementing a JavaScript Engine
Implementing a JavaScript Engine
 
FOSDEM 2017 - A different Lua JIT using Eclipse OMR
FOSDEM 2017 - A different Lua JIT using Eclipse OMRFOSDEM 2017 - A different Lua JIT using Eclipse OMR
FOSDEM 2017 - A different Lua JIT using Eclipse OMR
 
The OMR GC talk - Ruby Kaigi 2015
The OMR GC talk - Ruby Kaigi 2015The OMR GC talk - Ruby Kaigi 2015
The OMR GC talk - Ruby Kaigi 2015
 
Experiments in Sharing Java VM Technology with CRuby
Experiments in Sharing Java VM Technology with CRubyExperiments in Sharing Java VM Technology with CRuby
Experiments in Sharing Java VM Technology with CRuby
 

Semelhante a Eclipse OMR: a modern toolkit for building language runtimes

Eclipse OMR: a modern, open-source toolkit for building language runtimes
Eclipse OMR: a modern, open-source toolkit for building language runtimesEclipse OMR: a modern, open-source toolkit for building language runtimes
Eclipse OMR: a modern, open-source toolkit for building language runtimesDev_Events
 
차세대컴파일러, VM의미래: 애플 오픈소스 LLVM
차세대컴파일러, VM의미래: 애플 오픈소스 LLVM차세대컴파일러, VM의미래: 애플 오픈소스 LLVM
차세대컴파일러, VM의미래: 애플 오픈소스 LLVMJung Kim
 
Introduction to course
Introduction to courseIntroduction to course
Introduction to coursenikit meshram
 
Programing fundamentals with C++
Programing fundamentals with C++Programing fundamentals with C++
Programing fundamentals with C++farooq2016
 
computer languages
computer languagescomputer languages
computer languagesRajendran
 
Number of Computer Languages = 3
Number of Computer Languages = 3Number of Computer Languages = 3
Number of Computer Languages = 3Ram Sekhar
 
The .NET Platform - A Brief Overview
The .NET Platform - A Brief OverviewThe .NET Platform - A Brief Overview
The .NET Platform - A Brief OverviewCarlos Lopes
 
Open arkcompiler
Open arkcompilerOpen arkcompiler
Open arkcompileryiwei yang
 
Are High Level Programming Languages for Multicore and Safety Critical Conver...
Are High Level Programming Languages for Multicore and Safety Critical Conver...Are High Level Programming Languages for Multicore and Safety Critical Conver...
Are High Level Programming Languages for Multicore and Safety Critical Conver...InfinIT - Innovationsnetværket for it
 
Introduction to Python Programming
Introduction to Python ProgrammingIntroduction to Python Programming
Introduction to Python ProgrammingAkhil Kaushik
 
2016 bioinformatics i_python_part_1_wim_vancriekinge
2016 bioinformatics i_python_part_1_wim_vancriekinge2016 bioinformatics i_python_part_1_wim_vancriekinge
2016 bioinformatics i_python_part_1_wim_vancriekingeProf. Wim Van Criekinge
 
C++ programming languages lectures
C++ programming languages lectures C++ programming languages lectures
C++ programming languages lectures jabirMemon
 

Semelhante a Eclipse OMR: a modern toolkit for building language runtimes (20)

Eclipse OMR: a modern, open-source toolkit for building language runtimes
Eclipse OMR: a modern, open-source toolkit for building language runtimesEclipse OMR: a modern, open-source toolkit for building language runtimes
Eclipse OMR: a modern, open-source toolkit for building language runtimes
 
차세대컴파일러, VM의미래: 애플 오픈소스 LLVM
차세대컴파일러, VM의미래: 애플 오픈소스 LLVM차세대컴파일러, VM의미래: 애플 오픈소스 LLVM
차세대컴파일러, VM의미래: 애플 오픈소스 LLVM
 
Introduction to course
Introduction to courseIntroduction to course
Introduction to course
 
Rustbridge
RustbridgeRustbridge
Rustbridge
 
Programing fundamentals with C++
Programing fundamentals with C++Programing fundamentals with C++
Programing fundamentals with C++
 
DSA Day 2 PPT.pdf
DSA Day 2 PPT.pdfDSA Day 2 PPT.pdf
DSA Day 2 PPT.pdf
 
Introduction to multicore .ppt
Introduction to multicore .pptIntroduction to multicore .ppt
Introduction to multicore .ppt
 
computer languages
computer languagescomputer languages
computer languages
 
P1 2018 python
P1 2018 pythonP1 2018 python
P1 2018 python
 
Number of Computer Languages = 3
Number of Computer Languages = 3Number of Computer Languages = 3
Number of Computer Languages = 3
 
The .NET Platform - A Brief Overview
The .NET Platform - A Brief OverviewThe .NET Platform - A Brief Overview
The .NET Platform - A Brief Overview
 
Open arkcompiler
Open arkcompilerOpen arkcompiler
Open arkcompiler
 
Are High Level Programming Languages for Multicore and Safety Critical Conver...
Are High Level Programming Languages for Multicore and Safety Critical Conver...Are High Level Programming Languages for Multicore and Safety Critical Conver...
Are High Level Programming Languages for Multicore and Safety Critical Conver...
 
Introduction to Python Programming
Introduction to Python ProgrammingIntroduction to Python Programming
Introduction to Python Programming
 
P1 2017 python
P1 2017 pythonP1 2017 python
P1 2017 python
 
Evolution of Programming Languages.pdf
Evolution of Programming Languages.pdfEvolution of Programming Languages.pdf
Evolution of Programming Languages.pdf
 
Evolution of Programming Languages.pdf
Evolution of Programming Languages.pdfEvolution of Programming Languages.pdf
Evolution of Programming Languages.pdf
 
2016 bioinformatics i_python_part_1_wim_vancriekinge
2016 bioinformatics i_python_part_1_wim_vancriekinge2016 bioinformatics i_python_part_1_wim_vancriekinge
2016 bioinformatics i_python_part_1_wim_vancriekinge
 
Introduction to Computer Programming
Introduction to Computer ProgrammingIntroduction to Computer Programming
Introduction to Computer Programming
 
C++ programming languages lectures
C++ programming languages lectures C++ programming languages lectures
C++ programming languages lectures
 

Mais de Mark Stoodley

Eliminating the Pauses in your Java Application
Eliminating the Pauses in your Java ApplicationEliminating the Pauses in your Java Application
Eliminating the Pauses in your Java ApplicationMark Stoodley
 
Oh the compilers you'll build
Oh the compilers you'll buildOh the compilers you'll build
Oh the compilers you'll buildMark Stoodley
 
Turbo2018 workshop JIT as a Service
Turbo2018 workshop   JIT as a ServiceTurbo2018 workshop   JIT as a Service
Turbo2018 workshop JIT as a ServiceMark Stoodley
 
Jit builder status and directions 2018 03-28
Jit builder status and directions 2018 03-28Jit builder status and directions 2018 03-28
Jit builder status and directions 2018 03-28Mark Stoodley
 
JavaOne 2017 - Mark Stoodley - Open Sourcing IBM J9 JVM
JavaOne 2017 - Mark Stoodley - Open Sourcing IBM J9 JVMJavaOne 2017 - Mark Stoodley - Open Sourcing IBM J9 JVM
JavaOne 2017 - Mark Stoodley - Open Sourcing IBM J9 JVMMark Stoodley
 
VMIL keynote : Lessons from a production JVM runtime developer
VMIL keynote : Lessons from a production JVM runtime developerVMIL keynote : Lessons from a production JVM runtime developer
VMIL keynote : Lessons from a production JVM runtime developerMark Stoodley
 
Under the Hood of the Testarossa JIT Compiler
Under the Hood of the Testarossa JIT CompilerUnder the Hood of the Testarossa JIT Compiler
Under the Hood of the Testarossa JIT CompilerMark Stoodley
 

Mais de Mark Stoodley (7)

Eliminating the Pauses in your Java Application
Eliminating the Pauses in your Java ApplicationEliminating the Pauses in your Java Application
Eliminating the Pauses in your Java Application
 
Oh the compilers you'll build
Oh the compilers you'll buildOh the compilers you'll build
Oh the compilers you'll build
 
Turbo2018 workshop JIT as a Service
Turbo2018 workshop   JIT as a ServiceTurbo2018 workshop   JIT as a Service
Turbo2018 workshop JIT as a Service
 
Jit builder status and directions 2018 03-28
Jit builder status and directions 2018 03-28Jit builder status and directions 2018 03-28
Jit builder status and directions 2018 03-28
 
JavaOne 2017 - Mark Stoodley - Open Sourcing IBM J9 JVM
JavaOne 2017 - Mark Stoodley - Open Sourcing IBM J9 JVMJavaOne 2017 - Mark Stoodley - Open Sourcing IBM J9 JVM
JavaOne 2017 - Mark Stoodley - Open Sourcing IBM J9 JVM
 
VMIL keynote : Lessons from a production JVM runtime developer
VMIL keynote : Lessons from a production JVM runtime developerVMIL keynote : Lessons from a production JVM runtime developer
VMIL keynote : Lessons from a production JVM runtime developer
 
Under the Hood of the Testarossa JIT Compiler
Under the Hood of the Testarossa JIT CompilerUnder the Hood of the Testarossa JIT Compiler
Under the Hood of the Testarossa JIT Compiler
 

Último

FWD Group - Insurer Innovation Award 2024
FWD Group - Insurer Innovation Award 2024FWD Group - Insurer Innovation Award 2024
FWD Group - Insurer Innovation Award 2024The Digital Insurer
 
Apidays Singapore 2024 - Modernizing Securities Finance by Madhu Subbu
Apidays Singapore 2024 - Modernizing Securities Finance by Madhu SubbuApidays Singapore 2024 - Modernizing Securities Finance by Madhu Subbu
Apidays Singapore 2024 - Modernizing Securities Finance by Madhu Subbuapidays
 
Apidays Singapore 2024 - Scalable LLM APIs for AI and Generative AI Applicati...
Apidays Singapore 2024 - Scalable LLM APIs for AI and Generative AI Applicati...Apidays Singapore 2024 - Scalable LLM APIs for AI and Generative AI Applicati...
Apidays Singapore 2024 - Scalable LLM APIs for AI and Generative AI Applicati...apidays
 
2024: Domino Containers - The Next Step. News from the Domino Container commu...
2024: Domino Containers - The Next Step. News from the Domino Container commu...2024: Domino Containers - The Next Step. News from the Domino Container commu...
2024: Domino Containers - The Next Step. News from the Domino Container commu...Martijn de Jong
 
DBX First Quarter 2024 Investor Presentation
DBX First Quarter 2024 Investor PresentationDBX First Quarter 2024 Investor Presentation
DBX First Quarter 2024 Investor PresentationDropbox
 
Connector Corner: Accelerate revenue generation using UiPath API-centric busi...
Connector Corner: Accelerate revenue generation using UiPath API-centric busi...Connector Corner: Accelerate revenue generation using UiPath API-centric busi...
Connector Corner: Accelerate revenue generation using UiPath API-centric busi...DianaGray10
 
"I see eyes in my soup": How Delivery Hero implemented the safety system for ...
"I see eyes in my soup": How Delivery Hero implemented the safety system for ..."I see eyes in my soup": How Delivery Hero implemented the safety system for ...
"I see eyes in my soup": How Delivery Hero implemented the safety system for ...Zilliz
 
Strategize a Smooth Tenant-to-tenant Migration and Copilot Takeoff
Strategize a Smooth Tenant-to-tenant Migration and Copilot TakeoffStrategize a Smooth Tenant-to-tenant Migration and Copilot Takeoff
Strategize a Smooth Tenant-to-tenant Migration and Copilot Takeoffsammart93
 
Web Form Automation for Bonterra Impact Management (fka Social Solutions Apri...
Web Form Automation for Bonterra Impact Management (fka Social Solutions Apri...Web Form Automation for Bonterra Impact Management (fka Social Solutions Apri...
Web Form Automation for Bonterra Impact Management (fka Social Solutions Apri...Jeffrey Haguewood
 
Strategies for Landing an Oracle DBA Job as a Fresher
Strategies for Landing an Oracle DBA Job as a FresherStrategies for Landing an Oracle DBA Job as a Fresher
Strategies for Landing an Oracle DBA Job as a FresherRemote DBA Services
 
Ransomware_Q4_2023. The report. [EN].pdf
Ransomware_Q4_2023. The report. [EN].pdfRansomware_Q4_2023. The report. [EN].pdf
Ransomware_Q4_2023. The report. [EN].pdfOverkill Security
 
EMPOWERMENT TECHNOLOGY GRADE 11 QUARTER 2 REVIEWER
EMPOWERMENT TECHNOLOGY GRADE 11 QUARTER 2 REVIEWEREMPOWERMENT TECHNOLOGY GRADE 11 QUARTER 2 REVIEWER
EMPOWERMENT TECHNOLOGY GRADE 11 QUARTER 2 REVIEWERMadyBayot
 
AXA XL - Insurer Innovation Award Americas 2024
AXA XL - Insurer Innovation Award Americas 2024AXA XL - Insurer Innovation Award Americas 2024
AXA XL - Insurer Innovation Award Americas 2024The Digital Insurer
 
presentation ICT roal in 21st century education
presentation ICT roal in 21st century educationpresentation ICT roal in 21st century education
presentation ICT roal in 21st century educationjfdjdjcjdnsjd
 
AWS Community Day CPH - Three problems of Terraform
AWS Community Day CPH - Three problems of TerraformAWS Community Day CPH - Three problems of Terraform
AWS Community Day CPH - Three problems of TerraformAndrey Devyatkin
 
Artificial Intelligence Chap.5 : Uncertainty
Artificial Intelligence Chap.5 : UncertaintyArtificial Intelligence Chap.5 : Uncertainty
Artificial Intelligence Chap.5 : UncertaintyKhushali Kathiriya
 
ICT role in 21st century education and its challenges
ICT role in 21st century education and its challengesICT role in 21st century education and its challenges
ICT role in 21st century education and its challengesrafiqahmad00786416
 
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...Drew Madelung
 
Apidays New York 2024 - The value of a flexible API Management solution for O...
Apidays New York 2024 - The value of a flexible API Management solution for O...Apidays New York 2024 - The value of a flexible API Management solution for O...
Apidays New York 2024 - The value of a flexible API Management solution for O...apidays
 

Último (20)

FWD Group - Insurer Innovation Award 2024
FWD Group - Insurer Innovation Award 2024FWD Group - Insurer Innovation Award 2024
FWD Group - Insurer Innovation Award 2024
 
Apidays Singapore 2024 - Modernizing Securities Finance by Madhu Subbu
Apidays Singapore 2024 - Modernizing Securities Finance by Madhu SubbuApidays Singapore 2024 - Modernizing Securities Finance by Madhu Subbu
Apidays Singapore 2024 - Modernizing Securities Finance by Madhu Subbu
 
Apidays Singapore 2024 - Scalable LLM APIs for AI and Generative AI Applicati...
Apidays Singapore 2024 - Scalable LLM APIs for AI and Generative AI Applicati...Apidays Singapore 2024 - Scalable LLM APIs for AI and Generative AI Applicati...
Apidays Singapore 2024 - Scalable LLM APIs for AI and Generative AI Applicati...
 
2024: Domino Containers - The Next Step. News from the Domino Container commu...
2024: Domino Containers - The Next Step. News from the Domino Container commu...2024: Domino Containers - The Next Step. News from the Domino Container commu...
2024: Domino Containers - The Next Step. News from the Domino Container commu...
 
DBX First Quarter 2024 Investor Presentation
DBX First Quarter 2024 Investor PresentationDBX First Quarter 2024 Investor Presentation
DBX First Quarter 2024 Investor Presentation
 
Connector Corner: Accelerate revenue generation using UiPath API-centric busi...
Connector Corner: Accelerate revenue generation using UiPath API-centric busi...Connector Corner: Accelerate revenue generation using UiPath API-centric busi...
Connector Corner: Accelerate revenue generation using UiPath API-centric busi...
 
"I see eyes in my soup": How Delivery Hero implemented the safety system for ...
"I see eyes in my soup": How Delivery Hero implemented the safety system for ..."I see eyes in my soup": How Delivery Hero implemented the safety system for ...
"I see eyes in my soup": How Delivery Hero implemented the safety system for ...
 
Strategize a Smooth Tenant-to-tenant Migration and Copilot Takeoff
Strategize a Smooth Tenant-to-tenant Migration and Copilot TakeoffStrategize a Smooth Tenant-to-tenant Migration and Copilot Takeoff
Strategize a Smooth Tenant-to-tenant Migration and Copilot Takeoff
 
Web Form Automation for Bonterra Impact Management (fka Social Solutions Apri...
Web Form Automation for Bonterra Impact Management (fka Social Solutions Apri...Web Form Automation for Bonterra Impact Management (fka Social Solutions Apri...
Web Form Automation for Bonterra Impact Management (fka Social Solutions Apri...
 
Strategies for Landing an Oracle DBA Job as a Fresher
Strategies for Landing an Oracle DBA Job as a FresherStrategies for Landing an Oracle DBA Job as a Fresher
Strategies for Landing an Oracle DBA Job as a Fresher
 
Ransomware_Q4_2023. The report. [EN].pdf
Ransomware_Q4_2023. The report. [EN].pdfRansomware_Q4_2023. The report. [EN].pdf
Ransomware_Q4_2023. The report. [EN].pdf
 
EMPOWERMENT TECHNOLOGY GRADE 11 QUARTER 2 REVIEWER
EMPOWERMENT TECHNOLOGY GRADE 11 QUARTER 2 REVIEWEREMPOWERMENT TECHNOLOGY GRADE 11 QUARTER 2 REVIEWER
EMPOWERMENT TECHNOLOGY GRADE 11 QUARTER 2 REVIEWER
 
+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...
+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...
+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...
 
AXA XL - Insurer Innovation Award Americas 2024
AXA XL - Insurer Innovation Award Americas 2024AXA XL - Insurer Innovation Award Americas 2024
AXA XL - Insurer Innovation Award Americas 2024
 
presentation ICT roal in 21st century education
presentation ICT roal in 21st century educationpresentation ICT roal in 21st century education
presentation ICT roal in 21st century education
 
AWS Community Day CPH - Three problems of Terraform
AWS Community Day CPH - Three problems of TerraformAWS Community Day CPH - Three problems of Terraform
AWS Community Day CPH - Three problems of Terraform
 
Artificial Intelligence Chap.5 : Uncertainty
Artificial Intelligence Chap.5 : UncertaintyArtificial Intelligence Chap.5 : Uncertainty
Artificial Intelligence Chap.5 : Uncertainty
 
ICT role in 21st century education and its challenges
ICT role in 21st century education and its challengesICT role in 21st century education and its challenges
ICT role in 21st century education and its challenges
 
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
 
Apidays New York 2024 - The value of a flexible API Management solution for O...
Apidays New York 2024 - The value of a flexible API Management solution for O...Apidays New York 2024 - The value of a flexible API Management solution for O...
Apidays New York 2024 - The value of a flexible API Management solution for O...
 

Eclipse OMR: a modern toolkit for building language runtimes