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
Wroclove.rb - JRuby vs. Rubinius
Search
Dirkjan Bussink
March 14, 2012
Technology
1
120
Wroclove.rb - JRuby vs. Rubinius
Fighting for the Rubinius side
Dirkjan Bussink
March 14, 2012
Tweet
Share
More Decks by Dirkjan Bussink
See All by Dirkjan Bussink
Managing a widely distributed team
dbussink
1
200
Time
dbussink
0
110
The tricky truth about parallel execution and modern hardware
dbussink
0
360
The future of Ruby is faster
dbussink
3
550
Security for dummies
dbussink
1
170
The myth of dynamic language performance
dbussink
3
480
Rubinius - Tales from the trenches @ Railsclub.ru 2012
dbussink
2
220
Rubinius - Tales from the trenches @ Baruco 2012
dbussink
1
280
Rubinius Eurucamp 2012 Workshop
dbussink
2
130
Other Decks in Technology
See All in Technology
Embedded SREの終わりを設計する 「なんとなく」から計画的な自立支援へ
sansantech
PRO
3
2.1k
小さく始めるBCP ― 多プロダクト環境で始める最初の一歩
kekke_n
1
340
日本の85%が使う公共SaaSは、どう育ったのか
taketakekaho
1
140
Data Hubグループ 紹介資料
sansan33
PRO
0
2.7k
Introduction to Sansan for Engineers / エンジニア向け会社紹介
sansan33
PRO
6
67k
ファインディの横断SREがTakumi byGMOと取り組む、セキュリティと開発スピードの両立
rvirus0817
1
1.1k
Bill One急成長の舞台裏 開発組織が直面した失敗と教訓
sansantech
PRO
1
280
10Xにおける品質保証活動の全体像と改善 #no_more_wait_for_test
nihonbuson
PRO
1
190
プロポーザルに込める段取り八分
shoheimitani
0
160
学生・新卒・ジュニアから目指すSRE
hiroyaonoe
2
530
Agile Leadership Summit Keynote 2026
m_seki
1
340
Context Engineeringの取り組み
nutslove
0
280
Featured
See All Featured
Leading Effective Engineering Teams in the AI Era
addyosmani
9
1.6k
Collaborative Software Design: How to facilitate domain modelling decisions
baasie
0
130
Let's Do A Bunch of Simple Stuff to Make Websites Faster
chriscoyier
508
140k
Pawsitive SEO: Lessons from My Dog (and Many Mistakes) on Thriving as a Consultant in the Age of AI
davidcarrasco
0
62
Claude Code どこまでも/ Claude Code Everywhere
nwiizo
61
52k
Fantastic passwords and where to find them - at NoRuKo
philnash
52
3.6k
Sharpening the Axe: The Primacy of Toolmaking
bcantrill
46
2.7k
Future Trends and Review - Lecture 12 - Web Technologies (1019888BNR)
signer
PRO
0
3.2k
BBQ
matthewcrist
89
10k
Leveraging LLMs for student feedback in introductory data science courses - posit::conf(2025)
minecr
0
140
The Success of Rails: Ensuring Growth for the Next 100 Years
eileencodes
47
7.9k
The Director’s Chair: Orchestrating AI for Truly Effective Learning
tmiket
1
96
Transcript
Dirkjan Bussink http://github.com/dbussink @dbussink
None
None
REMOVED
@JRubyMethod(name = {"collect", "map"}, compat = CompatVersion.RUBY1_8) public static IRubyObject
collect(ThreadContext context, IRubyObject self, final Block block) { final Ruby runtime = context.getRuntime(); final RubyArray result = runtime.newArray(); if (block.isGiven()) { callEach(runtime, context, self, block.arity(), new BlockCallback() { public IRubyObject call(ThreadContext ctx, IRubyObject[] largs, Block blk) { IRubyObject larg = checkArgs(runtime, largs); IRubyObject value = block.yield(ctx, larg); synchronized (result) { result.append(value); } return runtime.getNil(); } }); } else { callEach(runtime, context, self, Arity.ONE_ARGUMENT, new AppendBlockCallback(runtime, result)); } return result; }
def collect if block_given? ary = [] each do |*o|
ary << yield(*o) end ary else to_enum :collect end end
None
> (x . xs) = [1, 2, 3] [1, 2,
3] > x 1 > xs [2, 3]
1 patch == commit access