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
130
1
Share
Embed
Copy iframe code
Copy JS code
Copy link
Start on current slide
Wroclove.rb - JRuby vs. Rubinius
Fighting for the Rubinius side
Dirkjan Bussink
March 14, 2012
More Decks by Dirkjan Bussink
See All by Dirkjan Bussink
Managing a widely distributed team
dbussink
1
210
Time
dbussink
0
160
The tricky truth about parallel execution and modern hardware
dbussink
0
390
The future of Ruby is faster
dbussink
3
570
Security for dummies
dbussink
1
210
The myth of dynamic language performance
dbussink
3
510
Rubinius - Tales from the trenches @ Railsclub.ru 2012
dbussink
2
240
Rubinius - Tales from the trenches @ Baruco 2012
dbussink
1
300
Rubinius Eurucamp 2012 Workshop
dbussink
2
160
Other Decks in Technology
See All in Technology
モダンフロントエンド 開発研修
recruitengineers
PRO
4
780
20260804_Q4AzureUpdateBite_FabricDataAgentの精度を高める設計.pdf
matayuuu
1
140
Head First モブプログラミング / Head First Mobprogramming
takaking22
10
12k
AI-DLC実践録_フルサイクル開発への挑戦
miyuc
0
240
オートロックマンションなのに、各部屋は施錠なし!? 攻撃者が組織内ネットワークで大暴れする理由 / The Front Door Is Locked, but the Rooms Are Wide Open: Why Attackers Move Freely Inside Enterprise Networks
nttcom
1
6k
Apache Icebergインフラストラクチャ:ストレージ・カタログ・エンジンの選択肢とClouderaプラットフォームでの実装
tsugiyama
0
120
【GCC2026】大規模言語モデルを活用した内製検索サービスの社内展開や業務活用
bandainamcostudios
PRO
0
210
モバイルアプリ開発概論2026
recruitengineers
PRO
6
650
今こそ聞きたいソフトウェア設計 ドメイン駆動設計再入門
masuda220
PRO
17
7.6k
LanceDB入門
mocobeta
8
590
What's new in Go 1.27?
ciarana
0
230
事業価値と Engineering 2026年度版
recruitengineers
PRO
51
25k
Featured
See All Featured
Gemini Prompt Engineering: Practical Techniques for Tangible AI Outcomes
mfonobong
2
490
Game over? The fight for quality and originality in the time of robots
wayneb77
1
240
Navigating Team Friction
lara
192
16k
Kristin Tynski - Automating Marketing Tasks With AI
techseoconnect
PRO
0
470
From π to Pie charts
rasagy
0
300
WENDY [Excerpt]
tessaabrams
11
39k
A brief & incomplete history of UX Design for the World Wide Web: 1989–2019
jct
2
470
GraphQLの誤解/rethinking-graphql
sonatard
75
12k
Building Flexible Design Systems
yeseniaperezcruz
330
40k
4 Signs Your Business is Dying
shpigford
187
23k
How to Ace a Technical Interview
jacobian
281
24k
Paper Plane (Part 1)
katiecoart
PRO
1
10k
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