Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Sign up for free
Menu
Search
Features
All features
Private URLs
Password Protection
Custom URLS
Scheduled publishing
Remove Branding
Restrict embedding
Deck Collections
Notes
Features
All features
Private URLs
Password Protection
Custom URLS
Scheduled publishing
Remove Branding
Restrict embedding
Deck Collections
Notes
Explore
Featured decks
Featured speakers
Programming
Technology
Storyboards
Explore
Featured decks
Featured speakers
Programming
Technology
Storyboards
Pricing
Search
Sign in
Sign up for free
Wroclove.rb - JRuby vs. Rubinius
Search
Sponsored
·
Ship Features Fearlessly
Turn features on and off without deploys. Used by thousands of Ruby developers.
→
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
170
The tricky truth about parallel execution and modern hardware
dbussink
0
400
The future of Ruby is faster
dbussink
3
580
Security for dummies
dbussink
1
210
The myth of dynamic language performance
dbussink
3
520
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
Essential architectural thinking (revised edition)
ufried
0
110
Execution in the Kingdom of Agents: Reflections on Abstraction and Complexity
bcantrill
0
940
FactoryBotアンチパターン / factory_bot anti-patterns
toshimaru
0
150
V8のArray.prototype.flatを最大約20倍速くするまでと、巨大OSSへの大規模コミットの道のり
riyaamemiya
0
230
SREでアラート疲れを 解決しよう!
kairim0
1
220
AI 時代の Azure エンジニアリング ~ 私たちは何を磨き、何を任せるのか ~
chack411
1
580
初対面のメンバーがチームを組み、Claude Codeでゼロからサービスをリリース
mkdev10
1
120
ゲームのリアルタイム通信から見た QUIC と MoQ
segadevtech
0
110
Getting Started with Google Antigravity
glaforge
0
180
DWH の限界突破! AI エージェント向け爆速リアルタイムデータ基盤 ClickHouse
jozono
1
380
転んだ話が背中を預ける理由になる / A_story_about_falling_down_gives_you_a_reason_to_watch_each_other_s_backs.pdf
pauli
3
350
Running Kotlin + Quarkus with Lambda
nealle
1
410
Featured
See All Featured
Fireside Chat
paigeccino
43
4.1k
Utilizing Notion as your number one productivity tool
mfonobong
4
620
No one is an island. Learnings from fostering a developers community.
thoeni
21
3.9k
Improving Core Web Vitals using Speculation Rules API
sergeychernyshev
21
1.7k
Exploring the Power of Turbo Streams & Action Cable | RailsConf2023
kevinliebholz
37
6.6k
How To Stay Up To Date on Web Technology
chriscoyier
790
250k
RailsConf & Balkan Ruby 2019: The Past, Present, and Future of Rails at GitHub
eileencodes
141
35k
The Power of CSS Pseudo Elements
geoffreycrofte
82
6.6k
Why Our Code Smells
bkeepers
PRO
340
58k
Introduction to Domain-Driven Design and Collaborative software design
baasie
1
1k
HDC tutorial
michielstock
2
950
Reflections from 52 weeks, 52 projects
jeffersonlam
356
21k
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