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
190
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
純粋なイミュータブルモデルを設計してからイベントソーシングと組み合わせるDeciderの実践方法の紹介 /Introducing Decider Pattern with Event Sourcing
tomohisa
1
1.3k
Web Intelligence and Visual Media Analytics
weblyzard
PRO
1
6.8k
2026/01/16_実体験から学ぶ 2025年の失敗と対策_Progate Bar
teba_eleven
1
210
CodeRabbit CLI + Claude Codeの連携について
oikon48
1
570
Kiro Power - Amazon Bedrock AgentCore を学ぶ、もう一つの方法
r3_yamauchi
PRO
0
110
研究開発部メンバーの働き⽅ / Sansan R&D Profile
sansan33
PRO
4
22k
Proxmoxで作る自宅クラウド入門
koinunopochi
0
180
Models vs Bounded Contexts for Domain Modularizati...
ewolff
0
220
The Engineer with a Three-Year Cycle
e99h2121
0
160
AWS監視を「もっと楽する」ために
uechishingo
0
250
VRTと真面目に向き合う
hiragram
1
370
Eight Engineering Unit 紹介資料
sansan33
PRO
0
6.4k
Featured
See All Featured
A Tale of Four Properties
chriscoyier
162
24k
How Fast Is Fast Enough? [PerfNow 2025]
tammyeverts
3
430
Building Adaptive Systems
keathley
44
2.9k
Noah Learner - AI + Me: how we built a GSC Bulk Export data pipeline
techseoconnect
PRO
0
90
Measuring Dark Social's Impact On Conversion and Attribution
stephenakadiri
1
110
Designing for Performance
lara
610
70k
Applied NLP in the Age of Generative AI
inesmontani
PRO
4
2k
Why You Should Never Use an ORM
jnunemaker
PRO
61
9.7k
Self-Hosted WebAssembly Runtime for Runtime-Neutral Checkpoint/Restore in Edge–Cloud Continuum
chikuwait
0
290
Embracing the Ebb and Flow
colly
88
5k
Future Trends and Review - Lecture 12 - Web Technologies (1019888BNR)
signer
PRO
0
3.2k
Distributed Sagas: A Protocol for Coordinating Microservices
caitiem20
333
22k
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