Skip to content

Instantly share code, notes, and snippets.

@tarcieri
Created November 21, 2012 05:57
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save tarcieri/4123305 to your computer and use it in GitHub Desktop.
Save tarcieri/4123305 to your computer and use it in GitHub Desktop.
╭─tony@wintermute ~/src/celluloid-io ‹ruby-1.8.7› ‹master›
╰─$ ../rubinius/bin/rbx --version
rubinius 2.0.0rc1 (1.8.7 ce14ea64 2012-11-02 JI) [x86_64-apple-darwin11.4.0]
╭─tony@wintermute ~/src/celluloid-io ‹ruby-1.8.7› ‹master›
╰─$ ../rubinius/bin/rbx -X19 -S bundle
Fetching git://github.com/celluloid/celluloid
remote: Counting objects: 4705, done.
remote: Compressing objects: 100% (1909/1909), done.
remote: Total 4705 (delta 2818), reused 4624 (delta 2757)
Receiving objects: 100% (4705/4705), 656.58 KiB | 440 KiB/s, done.
Resolving deltas: 100% (2818/2818), done.
Fetching gem metadata from http://rubygems.org/.........
Fetching gem metadata from http://rubygems.org/..
Using rake (10.0.2)
Installing benchmark-ips (1.2.0)
Installing benchmark_suite (1.0.0)
Installing facter (1.6.14)
Installing timers (1.0.1)
Using celluloid (0.12.3) from git://github.com/celluloid/celluloid (at master)
Installing nio4r (0.4.2) with native extensions
Using celluloid-io (0.12.1) from source at .
Installing diff-lcs (1.1.3)
Installing rspec-core (2.12.0)
Installing rspec-expectations (2.12.0)
Installing rspec-mocks (2.12.0)
Installing rspec (2.12.0)
Using bundler (1.2.2)
Your bundle is complete! Use `bundle show [gemname]` to see where a bundled gem is installed.
╭─tony@wintermute ~/src/celluloid-io ‹ruby-1.8.7› ‹master›
╰─$ ../rubinius/bin/rbx -X19 -S rake
/Users/tony/src/rubinius/bin/rbx -S rspec ./spec/celluloid/io/actor_spec.rb ./spec/celluloid/io/dns_resolver_spec.rb ./spec/celluloid/io/mailbox_spec.rb ./spec/celluloid/io/tcp_server_spec.rb ./spec/celluloid/io/tcp_socket_spec.rb ./spec/celluloid/io/udp_socket_spec.rb
Celluloid::IO
behaves like a Celluloid Actor
returns the actor's class, not the proxy's
compares with the actor's class in a case statement
can be stored in hashes
supports synchronous calls
supports synchronous calls via #method
supports future(:method) syntax for synchronous future calls
supports future.method syntax for synchronous future calls
handles circular synchronous calls
properly handles method_missing
properly handles respond_to with include_private
raises NoMethodError when a nonexistent method is called
reraises exceptions which occur during synchronous calls in the caller
E, [2012-11-20T21:56:38.070742 #10851] ERROR -- : #<Class:0x7768> crashed!
ExampleCrash: the spec purposely crashed me :(
/Users/tony/.rvm/gems/ruby-1.8.7-p371/bundler/gems/celluloid-f07e038e727b/spec/support/example_actor_class.rb:33:in `crash'
/Users/tony/.rvm/gems/ruby-1.8.7-p371/bundler/gems/celluloid-f07e038e727b/lib/celluloid/calls.rb:57:in `dispatch'
/Users/tony/.rvm/gems/ruby-1.8.7-p371/bundler/gems/celluloid-f07e038e727b/lib/celluloid/actor.rb:325:in `handle_message'
/Users/tony/.rvm/gems/ruby-1.8.7-p371/bundler/gems/celluloid-f07e038e727b/lib/celluloid/tasks/task_fiber.rb:24:in `initialize'
E, [2012-11-20T21:56:38.072920 #10851] ERROR -- : #<Class:0x77b4> crashed!
ExampleCrash: the spec purposely crashed me :(
/Users/tony/.rvm/gems/ruby-1.8.7-p371/bundler/gems/celluloid-f07e038e727b/spec/support/example_actor_class.rb:33:in `crash'
/Users/tony/.rvm/gems/ruby-1.8.7-p371/bundler/gems/celluloid-f07e038e727b/lib/celluloid/calls.rb:57:in `dispatch'
/Users/tony/.rvm/gems/ruby-1.8.7-p371/bundler/gems/celluloid-f07e038e727b/lib/celluloid/actor.rb:325:in `handle_message'
/Users/tony/.rvm/gems/ruby-1.8.7-p371/bundler/gems/celluloid-f07e038e727b/lib/celluloid/tasks/task_fiber.rb:24:in `initialize'
raises DeadActorError if methods are synchronously called on a dead actor
supports method! syntax for asynchronous calls
supports async(:method) syntax for asynchronous calls
supports async.method syntax for asynchronous calls
supports method! syntax for asynchronous calls to itself
supports async.method syntax for asynchronous calls to itself
allows an actor to call private methods asynchronously with a bang
knows if it's inside actor scope
inspects properly
inspects properly when dead
allows access to the wrapped object
warns about leaked wrapped objects via #inspect
when #abort is called
raises exceptions in the caller but keeps running
converts strings to runtime errors
E, [2012-11-20T21:56:38.127144 #10851] ERROR -- : #<Class:0x7ca4> crashed!
TypeError: Exception object/String expected, but Fixnum received
/Users/tony/.rvm/gems/ruby-1.8.7-p371/bundler/gems/celluloid-f07e038e727b/lib/celluloid.rb:301:in `abort'
/Users/tony/.rvm/gems/ruby-1.8.7-p371/bundler/gems/celluloid-f07e038e727b/spec/support/example_actor_class.rb:43:in `crash_with_abort_raw'
/Users/tony/.rvm/gems/ruby-1.8.7-p371/bundler/gems/celluloid-f07e038e727b/lib/celluloid/calls.rb:57:in `dispatch'
/Users/tony/.rvm/gems/ruby-1.8.7-p371/bundler/gems/celluloid-f07e038e727b/lib/celluloid/actor.rb:325:in `handle_message'
/Users/tony/.rvm/gems/ruby-1.8.7-p371/bundler/gems/celluloid-f07e038e727b/lib/celluloid/tasks/task_fiber.rb:24:in `initialize'
crashes the caller if we pass neither String nor Exception
mocking methods
works externally via the proxy
works internally when called on self
termination
terminates
kills
raises DeadActorError if called after terminated
raises the right DeadActorError if terminate! called after terminated
current_actor
knows the current actor
raises NotActorError if called outside an actor
linking
links to other actors
unlinks from other actors
monitors other actors unidirectionally
---------------------------------------------
CRASH: A fatal error has occurred.
Backtrace:
0 rbx 0x000000010b0447bc _ZN8rubiniusL12segv_handlerEi + 316
1 libsystem_c.dylib 0x00007fff8230dcfa _sigtramp + 26
2 ??? 0x000000000001b00e 0x0 + 110606
3 rbx 0x000000010b14dac8 _ZN8rubinius14SingletonClass4Info9auto_markEPNS_6ObjectERNS_10ObjectMarkE + 200
4 rbx 0x000000010b20bea8 _ZN8rubinius16GarbageCollector11scan_objectEPNS_6ObjectE + 168
5 rbx 0x000000010b20a508 _ZN8rubinius7BakerGC7collectERNS_6GCDataEPNS_17YoungCollectStatsE + 120
6 rbx 0x000000010b12005a _ZN8rubinius12ObjectMemory13collect_youngERNS_6GCDataEPNS_17YoungCollectStatsE + 74
7 rbx 0x000000010b1224b5 _ZN8rubinius12ObjectMemory13collect_maybeEPNS_5StateERNS_11GCTokenImplEPNS_9CallFrameE + 597
8 rbx 0x000000010b168997 _ZN8rubinius2VM13collect_maybeERNS_11GCTokenImplEPNS_9CallFrameE + 55
9 rbx 0x000000010b0c594c _ZN8rubinius11MachineCode19execute_specializedINS_14FixedArgumentsEEEPNS_6ObjectEPNS_5StateEPNS_9CallFrameEPNS_10ExecutableEPNS_6ModuleERNS_9ArgumentsE + 1100
10 ??? 0x000000010d6b5e6f 0x0 + 4520107631
11 rbx 0x000000010b0529a2 _ZN8rubinius11InlineCache19empty_cache_privateEPNS_5StateEPS0_PNS_9CallFrameERNS_9ArgumentsE + 258
12 rbx 0x000000010b06845f _ZN8rubinius11MachineCode11interpreterEPNS_5StateEPS0_PNS_20InterpreterCallFrameE + 14991
13 rbx 0x000000010b0c4306 _ZN8rubinius11MachineCode19execute_specializedINS_11OneArgumentEEEPNS_6ObjectEPNS_5StateEPNS_9CallFrameEPNS_10ExecutableEPNS_6ModuleERNS_9ArgumentsE + 518
14 rbx 0x000000010b06845f _ZN8rubinius11MachineCode11interpreterEPNS_5StateEPS0_PNS_20InterpreterCallFrameE + 14991
15 rbx 0x000000010b17127b _ZN8rubinius16BlockEnvironment19execute_interpreterEPNS_5StateEPNS_9CallFrameEPS0_RNS_9ArgumentsERNS_15BlockInvocationE + 667
16 rbx 0x000000010b1719c1 _ZN8rubinius16BlockEnvironment6invokeEPNS_5StateEPNS_9CallFrameEPS0_RNS_9ArgumentsERNS_15BlockInvocationE + 145
17 rbx 0x000000010b171ae4 _ZN8rubinius16BlockEnvironment4callEPNS_5StateEPNS_9CallFrameERNS_9ArgumentsEi + 68
18 rbx 0x000000010b06a443 _ZN8rubinius11MachineCode11interpreterEPNS_5StateEPS0_PNS_20InterpreterCallFrameE + 23155
19 rbx 0x000000010b0c4ba6 _ZN8rubinius11MachineCode19execute_specializedINS_11NoArgumentsEEEPNS_6ObjectEPNS_5StateEPNS_9CallFrameEPNS_10ExecutableEPNS_6ModuleERNS_9ArgumentsE + 502
20 rbx 0x000000010b068356 _ZN8rubinius11MachineCode11interpreterEPNS_5StateEPS0_PNS_20InterpreterCallFrameE + 14726
21 rbx 0x000000010b0c4306 _ZN8rubinius11MachineCode19execute_specializedINS_11OneArgumentEEEPNS_6ObjectEPNS_5StateEPNS_9CallFrameEPNS_10ExecutableEPNS_6ModuleERNS_9ArgumentsE + 518
22 rbx 0x000000010b06845f _ZN8rubinius11MachineCode11interpreterEPNS_5StateEPS0_PNS_20InterpreterCallFrameE + 14991
23 rbx 0x000000010b0c573f _ZN8rubinius11MachineCode19execute_specializedINS_14FixedArgumentsEEEPNS_6ObjectEPNS_5StateEPNS_9CallFrameEPNS_10ExecutableEPNS_6ModuleERNS_9ArgumentsE + 575
24 rbx 0x000000010b06845f _ZN8rubinius11MachineCode11interpreterEPNS_5StateEPS0_PNS_20InterpreterCallFrameE + 14991
25 rbx 0x000000010b0c5072 _ZN8rubinius11MachineCode19execute_specializedINS_16GenericArgumentsEEEPNS_6ObjectEPNS_5StateEPNS_9CallFrameEPNS_10ExecutableEPNS_6ModuleERNS_9ArgumentsE + 626
26 rbx 0x000000010b06845f _ZN8rubinius11MachineCode11interpreterEPNS_5StateEPS0_PNS_20InterpreterCallFrameE + 14991
27 rbx 0x000000010b0c4306 _ZN8rubinius11MachineCode19execute_specializedINS_11OneArgumentEEEPNS_6ObjectEPNS_5StateEPNS_9CallFrameEPNS_10ExecutableEPNS_6ModuleERNS_9ArgumentsE + 518
28 rbx 0x000000010b06845f _ZN8rubinius11MachineCode11interpreterEPNS_5StateEPS0_PNS_20InterpreterCallFrameE + 14991
29 rbx 0x000000010b0c4ba6 _ZN8rubinius11MachineCode19execute_specializedINS_11NoArgumentsEEEPNS_6ObjectEPNS_5StateEPNS_9CallFrameEPNS_10ExecutableEPNS_6ModuleERNS_9ArgumentsE + 502
30 rbx 0x000000010b066587 _ZN8rubinius11MachineCode11interpreterEPNS_5StateEPS0_PNS_20InterpreterCallFrameE + 7095
31 rbx 0x000000010b17127b _ZN8rubinius16BlockEnvironment19execute_interpreterEPNS_5StateEPNS_9CallFrameEPS0_RNS_9ArgumentsERNS_15BlockInvocationE + 667
32 rbx 0x000000010b1719c1 _ZN8rubinius16BlockEnvironment6invokeEPNS_5StateEPNS_9CallFrameEPS0_RNS_9ArgumentsERNS_15BlockInvocationE + 145
33 rbx 0x000000010b171ae4 _ZN8rubinius16BlockEnvironment4callEPNS_5StateEPNS_9CallFrameERNS_9ArgumentsEi + 68
34 rbx 0x000000010b06a443 _ZN8rubinius11MachineCode11interpreterEPNS_5StateEPS0_PNS_20InterpreterCallFrameE + 23155
35 rbx 0x000000010b0c4ba6 _ZN8rubinius11MachineCode19execute_specializedINS_11NoArgumentsEEEPNS_6ObjectEPNS_5StateEPNS_9CallFrameEPNS_10ExecutableEPNS_6ModuleERNS_9ArgumentsE + 502
36 rbx 0x000000010b068356 _ZN8rubinius11MachineCode11interpreterEPNS_5StateEPS0_PNS_20InterpreterCallFrameE + 14726
37 rbx 0x000000010b0c6026 _ZN8rubinius11MachineCode19execute_specializedINS_12TwoArgumentsEEEPNS_6ObjectEPNS_5StateEPNS_9CallFrameEPNS_10ExecutableEPNS_6ModuleERNS_9ArgumentsE + 534
38 rbx 0x000000010b052bf6 _ZN8rubinius11InlineCache11empty_cacheEPNS_5StateEPS0_PNS_9CallFrameERNS_9ArgumentsE + 294
39 rbx 0x000000010b06845f _ZN8rubinius11MachineCode11interpreterEPNS_5StateEPS0_PNS_20InterpreterCallFrameE + 14991
40 rbx 0x000000010b17127b _ZN8rubinius16BlockEnvironment19execute_interpreterEPNS_5StateEPNS_9CallFrameEPS0_RNS_9ArgumentsERNS_15BlockInvocationE + 667
41 rbx 0x000000010b1719c1 _ZN8rubinius16BlockEnvironment6invokeEPNS_5StateEPNS_9CallFrameEPS0_RNS_9ArgumentsERNS_15BlockInvocationE + 145
42 rbx 0x000000010b171ae4 _ZN8rubinius16BlockEnvironment4callEPNS_5StateEPNS_9CallFrameERNS_9ArgumentsEi + 68
43 rbx 0x000000010b06a443 _ZN8rubinius11MachineCode11interpreterEPNS_5StateEPS0_PNS_20InterpreterCallFrameE + 23155
44 rbx 0x000000010b0c4ba6 _ZN8rubinius11MachineCode19execute_specializedINS_11NoArgumentsEEEPNS_6ObjectEPNS_5StateEPNS_9CallFrameEPNS_10ExecutableEPNS_6ModuleERNS_9ArgumentsE + 502
45 rbx 0x000000010b052bf6 _ZN8rubinius11InlineCache11empty_cacheEPNS_5StateEPS0_PNS_9CallFrameERNS_9ArgumentsE + 294
46 rbx 0x000000010b068356 _ZN8rubinius11MachineCode11interpreterEPNS_5StateEPS0_PNS_20InterpreterCallFrameE + 14726
47 rbx 0x000000010b0c4306 _ZN8rubinius11MachineCode19execute_specializedINS_11OneArgumentEEEPNS_6ObjectEPNS_5StateEPNS_9CallFrameEPNS_10ExecutableEPNS_6ModuleERNS_9ArgumentsE + 518
48 rbx 0x000000010b0529a2 _ZN8rubinius11InlineCache19empty_cache_privateEPNS_5StateEPS0_PNS_9CallFrameERNS_9ArgumentsE + 258
49 rbx 0x000000010b06845f _ZN8rubinius11MachineCode11interpreterEPNS_5StateEPS0_PNS_20InterpreterCallFrameE + 14991
50 rbx 0x000000010b0c4306 _ZN8rubinius11MachineCode19execute_specializedINS_11OneArgumentEEEPNS_6ObjectEPNS_5StateEPNS_9CallFrameEPNS_10ExecutableEPNS_6ModuleERNS_9ArgumentsE + 518
51 rbx 0x000000010b052bf6 _ZN8rubinius11InlineCache11empty_cacheEPNS_5StateEPS0_PNS_9CallFrameERNS_9ArgumentsE + 294
52 rbx 0x000000010b06845f _ZN8rubinius11MachineCode11interpreterEPNS_5StateEPS0_PNS_20InterpreterCallFrameE + 14991
53 rbx 0x000000010b17127b _ZN8rubinius16BlockEnvironment19execute_interpreterEPNS_5StateEPNS_9CallFrameEPS0_RNS_9ArgumentsERNS_15BlockInvocationE + 667
54 rbx 0x000000010b1719c1 _ZN8rubinius16BlockEnvironment6invokeEPNS_5StateEPNS_9CallFrameEPS0_RNS_9ArgumentsERNS_15BlockInvocationE + 145
55 rbx 0x000000010b171ae4 _ZN8rubinius16BlockEnvironment4callEPNS_5StateEPNS_9CallFrameERNS_9ArgumentsEi + 68
56 rbx 0x000000010b06a443 _ZN8rubinius11MachineCode11interpreterEPNS_5StateEPS0_PNS_20InterpreterCallFrameE + 23155
57 rbx 0x000000010b0c4ba6 _ZN8rubinius11MachineCode19execute_specializedINS_11NoArgumentsEEEPNS_6ObjectEPNS_5StateEPNS_9CallFrameEPNS_10ExecutableEPNS_6ModuleERNS_9ArgumentsE + 502
58 rbx 0x000000010b052bf6 _ZN8rubinius11InlineCache11empty_cacheEPNS_5StateEPS0_PNS_9CallFrameERNS_9ArgumentsE + 294
59 rbx 0x000000010b068356 _ZN8rubinius11MachineCode11interpreterEPNS_5StateEPS0_PNS_20InterpreterCallFrameE + 14726
60 rbx 0x000000010b0c4306 _ZN8rubinius11MachineCode19execute_specializedINS_11OneArgumentEEEPNS_6ObjectEPNS_5StateEPNS_9CallFrameEPNS_10ExecutableEPNS_6ModuleERNS_9ArgumentsE + 518
61 rbx 0x000000010b052bf6 _ZN8rubinius11InlineCache11empty_cacheEPNS_5StateEPS0_PNS_9CallFrameERNS_9ArgumentsE + 294
62 rbx 0x000000010b06845f _ZN8rubinius11MachineCode11interpreterEPNS_5StateEPS0_PNS_20InterpreterCallFrameE + 14991
63 rbx 0x000000010b17127b _ZN8rubinius16BlockEnvironment19execute_interpreterEPNS_5StateEPNS_9CallFrameEPS0_RNS_9ArgumentsERNS_15BlockInvocationE + 667
Wrote full error report to: /Users/tony/.rbx/rubinius_last_error_10851
Run 'rbx report' to submit this crash report!
rake aborted!
/Users/tony/src/rubinius/bin/rbx -S rspec ./spec/celluloid/io/actor_spec.rb ./spec/celluloid/io/dns_resolver_spec.rb ./spec/celluloid/io/mailbox_spec.rb ./spec/celluloid/io/tcp_server_spec.rb ./spec/celluloid/io/tcp_socket_spec.rb ./spec/celluloid/io/udp_socket_spec.rb failed
/Users/tony/.rvm/gems/ruby-1.8.7-p371/gems/rspec-core-2.12.0/lib/rspec/core/rake_task.rb:154:in `run_task'
/Users/tony/.rvm/gems/ruby-1.8.7-p371/gems/rspec-core-2.12.0/lib/rspec/core/rake_task.rb:122:in `initialize'
/Users/tony/.rvm/gems/ruby-1.8.7-p371/gems/rspec-core-2.12.0/lib/rspec/core/rake_task.rb:120:in `initialize'
kernel/bootstrap/array.rb:68:in `each'
kernel/bootstrap/array.rb:68:in `each'
kernel/bootstrap/array.rb:68:in `each'
kernel/common/kernel.rb:597:in `load'
kernel/delta/codeloader.rb:68:in `load_script'
kernel/delta/codeloader.rb:118:in `load_script'
kernel/loader.rb:615:in `script'
kernel/loader.rb:816:in `main'
Tasks: TOP => default => spec
(See full trace by running task with --trace)
@sleeptillseven
Copy link

WFT?

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment