Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Features
Speaker Deck
PRO
Sign in
Sign up for free
Search
Search
Topaz is Ruby in Python
Search
Jan Stępień
June 12, 2013
Programming
1
530
Topaz is Ruby in Python
Slides from a talk about Topaz I delivered on 12.06.2013 at Munich Ruby Users Group meetup.
Jan Stępień
June 12, 2013
Tweet
Share
More Decks by Jan Stępień
See All by Jan Stępień
graalvm-jug-bb
jan
1
170
That Looks Oddly Familiar
jan
0
290
Native Clojure
jan
0
190
Native Clojure with GraalVM
jan
0
710
Compiling a lisp into a lisp using a lisp
jan
0
130
Mutation testing in continuous delivery pipelines
jan
0
140
Self-contained systems: an introduction
jan
0
140
Let's just test that real quick
jan
1
370
Combating spam, or how I befriended the Killer Rabbit of Caerbannog
jan
0
260
Other Decks in Programming
See All in Programming
「ソフトウェア設計」のドメイン - 「データモデリングでドメインを駆動する」を読んで
hidenorigoto
6
2k
Upgrading Legacy to the Latest PHP Version
afilina
PRO
0
160
TypeScript Custom GitHub Action Development Tips
peaceiris
4
1k
アイテムレビュー基盤で導入したアーキテクチャとその成果 / Item Review Introduction Architecture Outcome
chichi1091
1
1k
ERB, ancient and future
m_seki
3
210
コンパウンドプロダクト開発の質とスピードを支える Protobuf と Connect #アーキテクチャ_findy / Boosting Compound Product Development Efficiency with Protobuf and Connect
izumin5210
12
640
#kaigieffect LT 2024 - rexml-css_selector: A REXML extension for supporting CSS selector
makenowjust
1
170
JRuby 10: Ruby 3.3 on the Modern JVM
headius
0
140
JS RPCを理解する
yusukebe
5
390
Embedding it into Ruby code
soutaro
3
3.2k
Improved REXML XML parsing performance using StringScanner
naitoh
0
190
Findy - エンジニア向け会社紹介 / Findy Letter for Engineers
findyinc
2
76k
Featured
See All Featured
RailsConf 2023
tenderlove
9
610
Distributed Sagas: A Protocol for Coordinating Microservices
caitiem20
323
20k
Code Reviewing Like a Champion
maltzj
516
39k
ピンチをチャンスに:未来をつくるプロダクトロードマップ #pmconf2020
aki_iinuma
85
45k
The Power of CSS Pseudo Elements
geoffreycrofte
62
5.1k
A better future with KSS
kneath
231
17k
Making the Leap to Tech Lead
cromwellryan
125
8.6k
Exploring the Power of Turbo Streams & Action Cable | RailsConf2023
kevinliebholz
9
3.6k
5 minutes of I Can Smell Your CMS
philhawksworth
199
19k
Robots, Beer and Maslow
schacon
PRO
155
8k
Product Roadmaps are Hard
iamctodd
45
9.8k
Unsuck your backbone
ammeep
664
57k
Transcript
Topaz is in Ruby Python
Hi, my name is Jan Stępień
Topaz is a Ruby implementation written in Python
Topaz is a Ruby implementation which is faster
Ruby Topaz is a bird from South America
cc-by-sa-3.0 geimfyglið
Topaz is in Ruby Python
cc-by-sa-3.0 geimfyglið
cc-by-nc-sa-2.0 marie
Why? would you implement Ruby in Python?
Python CPython PyPy
Ruby MRI JRuby Rubinius
PyPy is a Python implementation
PyPy is amazingly fast See http://speed.pypy.org
PyPy is written in RPython
RPython is a subset of Python
RPython can be statically compiled to C
RPython is optimised for implementing VMs
PyPy is an impl. of Python PyPy is written in
RPython RPython is compiled to C
Topaz is an impl. of Ruby Topaz is written in
RPython RPython is compiled to C
git clone http://github.com/topazproject/topaz
$ cd topaz && cloc . Language files code Python
132 22934 Ruby 35 5058
$ time ./bin/topaz_untranslated.py 3.times { puts :hello } ˆD hello
hello hello real 0m3.539s
$ cd topaz $ python \ .../pypy/rpython/bin/rpython \ -Ojit targettopaz.py
RPython → C
None
$ time ./bin/topaz 3.times { puts :hello } ˆD hello
hello hello real 0m0.050s
freqs = [0] * 256 while buf = $stdin.read(8192) buf.bytes.each
do |b| freqs[b] += 1 end end p freqs
MRI 2.0 36,1 s 5,0 MB/s JRuby 1.7.2 24,8 s
7,3 MB/s Topaz 3,3 s 55,3 MB/s 180MB of data served from caches
50 100 150 Input size [MB] 10 30 20 0
Time [s] M RI JRuby Topaz
Topaz redefines what fast means in the Ruby world
Why is it so fast? PyPy!
Meta-tracing just-in-time compilation
None
Get the source and try for yourself
Is Topaz a Ruby-Python interoperability bridge? No, unfortunately it’s not.
Topaz is still very young
Contributing is easy
See also 096 RR Topaz with Alex Gaynor Introducing Topaz
– Tim Felgentreff topazruby.com
dankeschön dziękuję ślicznie