jets 0.5.5 → 0.5.6

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (154) hide show
  1. checksums.yaml +4 -4
  2. data/CHANGELOG.md +3 -0
  3. data/Gemfile.lock +1 -1
  4. data/lib/jets/builders/code_builder.rb +1 -0
  5. data/lib/jets/builders/gem_replacer.rb +1 -0
  6. data/lib/jets/version.rb +1 -1
  7. data/vendor/lambdagem/CHANGELOG.md +3 -0
  8. data/vendor/lambdagem/Gemfile.lock +3 -3
  9. data/vendor/lambdagem/README.md +0 -4
  10. data/vendor/lambdagem/lib/lambdagem.rb +2 -0
  11. data/vendor/lambdagem/lib/lambdagem/base.rb +2 -0
  12. data/vendor/lambdagem/lib/lambdagem/extract/base.rb +6 -6
  13. data/vendor/lambdagem/lib/lambdagem/extract/gem.rb +6 -5
  14. data/vendor/lambdagem/lib/lambdagem/extract/ruby.rb +4 -3
  15. data/vendor/lambdagem/lib/lambdagem/util.rb +30 -0
  16. data/vendor/lambdagem/lib/lambdagem/version.rb +1 -1
  17. metadata +3 -140
  18. data/vendor/lambdagem/bundled/gems/ruby/2.5.0/extensions/x86_64-linux/2.5.0-static/byebug-10.0.0/byebug/byebug.so +0 -0
  19. data/vendor/lambdagem/bundled/gems/ruby/2.5.0/extensions/x86_64-linux/2.5.0-static/byebug-10.0.0/gem.build_complete +0 -0
  20. data/vendor/lambdagem/bundled/gems/ruby/2.5.0/extensions/x86_64-linux/2.5.0-static/byebug-10.0.0/gem_make.out +0 -19
  21. data/vendor/lambdagem/bundled/gems/ruby/2.5.0/gems/byebug-10.0.0/LICENSE +0 -23
  22. data/vendor/lambdagem/bundled/gems/ruby/2.5.0/gems/byebug-10.0.0/exe/byebug +0 -6
  23. data/vendor/lambdagem/bundled/gems/ruby/2.5.0/gems/byebug-10.0.0/ext/byebug/Makefile +0 -263
  24. data/vendor/lambdagem/bundled/gems/ruby/2.5.0/gems/byebug-10.0.0/ext/byebug/breakpoint.c +0 -517
  25. data/vendor/lambdagem/bundled/gems/ruby/2.5.0/gems/byebug-10.0.0/ext/byebug/breakpoint.o +0 -0
  26. data/vendor/lambdagem/bundled/gems/ruby/2.5.0/gems/byebug-10.0.0/ext/byebug/byebug.c +0 -905
  27. data/vendor/lambdagem/bundled/gems/ruby/2.5.0/gems/byebug-10.0.0/ext/byebug/byebug.h +0 -143
  28. data/vendor/lambdagem/bundled/gems/ruby/2.5.0/gems/byebug-10.0.0/ext/byebug/byebug.o +0 -0
  29. data/vendor/lambdagem/bundled/gems/ruby/2.5.0/gems/byebug-10.0.0/ext/byebug/byebug.so +0 -0
  30. data/vendor/lambdagem/bundled/gems/ruby/2.5.0/gems/byebug-10.0.0/ext/byebug/context.c +0 -673
  31. data/vendor/lambdagem/bundled/gems/ruby/2.5.0/gems/byebug-10.0.0/ext/byebug/context.o +0 -0
  32. data/vendor/lambdagem/bundled/gems/ruby/2.5.0/gems/byebug-10.0.0/ext/byebug/extconf.rb +0 -12
  33. data/vendor/lambdagem/bundled/gems/ruby/2.5.0/gems/byebug-10.0.0/ext/byebug/locker.c +0 -96
  34. data/vendor/lambdagem/bundled/gems/ruby/2.5.0/gems/byebug-10.0.0/ext/byebug/locker.o +0 -0
  35. data/vendor/lambdagem/bundled/gems/ruby/2.5.0/gems/byebug-10.0.0/ext/byebug/threads.c +0 -230
  36. data/vendor/lambdagem/bundled/gems/ruby/2.5.0/gems/byebug-10.0.0/ext/byebug/threads.o +0 -0
  37. data/vendor/lambdagem/bundled/gems/ruby/2.5.0/gems/byebug-10.0.0/lib/byebug.rb +0 -3
  38. data/vendor/lambdagem/bundled/gems/ruby/2.5.0/gems/byebug-10.0.0/lib/byebug/attacher.rb +0 -48
  39. data/vendor/lambdagem/bundled/gems/ruby/2.5.0/gems/byebug-10.0.0/lib/byebug/breakpoint.rb +0 -111
  40. data/vendor/lambdagem/bundled/gems/ruby/2.5.0/gems/byebug-10.0.0/lib/byebug/byebug.so +0 -0
  41. data/vendor/lambdagem/bundled/gems/ruby/2.5.0/gems/byebug-10.0.0/lib/byebug/command.rb +0 -111
  42. data/vendor/lambdagem/bundled/gems/ruby/2.5.0/gems/byebug-10.0.0/lib/byebug/command_list.rb +0 -34
  43. data/vendor/lambdagem/bundled/gems/ruby/2.5.0/gems/byebug-10.0.0/lib/byebug/commands.rb +0 -39
  44. data/vendor/lambdagem/bundled/gems/ruby/2.5.0/gems/byebug-10.0.0/lib/byebug/commands/break.rb +0 -116
  45. data/vendor/lambdagem/bundled/gems/ruby/2.5.0/gems/byebug-10.0.0/lib/byebug/commands/catch.rb +0 -82
  46. data/vendor/lambdagem/bundled/gems/ruby/2.5.0/gems/byebug-10.0.0/lib/byebug/commands/condition.rb +0 -57
  47. data/vendor/lambdagem/bundled/gems/ruby/2.5.0/gems/byebug-10.0.0/lib/byebug/commands/continue.rb +0 -50
  48. data/vendor/lambdagem/bundled/gems/ruby/2.5.0/gems/byebug-10.0.0/lib/byebug/commands/debug.rb +0 -38
  49. data/vendor/lambdagem/bundled/gems/ruby/2.5.0/gems/byebug-10.0.0/lib/byebug/commands/delete.rb +0 -57
  50. data/vendor/lambdagem/bundled/gems/ruby/2.5.0/gems/byebug-10.0.0/lib/byebug/commands/disable.rb +0 -33
  51. data/vendor/lambdagem/bundled/gems/ruby/2.5.0/gems/byebug-10.0.0/lib/byebug/commands/disable/breakpoints.rb +0 -42
  52. data/vendor/lambdagem/bundled/gems/ruby/2.5.0/gems/byebug-10.0.0/lib/byebug/commands/disable/display.rb +0 -43
  53. data/vendor/lambdagem/bundled/gems/ruby/2.5.0/gems/byebug-10.0.0/lib/byebug/commands/display.rb +0 -66
  54. data/vendor/lambdagem/bundled/gems/ruby/2.5.0/gems/byebug-10.0.0/lib/byebug/commands/down.rb +0 -45
  55. data/vendor/lambdagem/bundled/gems/ruby/2.5.0/gems/byebug-10.0.0/lib/byebug/commands/edit.rb +0 -68
  56. data/vendor/lambdagem/bundled/gems/ruby/2.5.0/gems/byebug-10.0.0/lib/byebug/commands/enable.rb +0 -33
  57. data/vendor/lambdagem/bundled/gems/ruby/2.5.0/gems/byebug-10.0.0/lib/byebug/commands/enable/breakpoints.rb +0 -42
  58. data/vendor/lambdagem/bundled/gems/ruby/2.5.0/gems/byebug-10.0.0/lib/byebug/commands/enable/display.rb +0 -43
  59. data/vendor/lambdagem/bundled/gems/ruby/2.5.0/gems/byebug-10.0.0/lib/byebug/commands/finish.rb +0 -57
  60. data/vendor/lambdagem/bundled/gems/ruby/2.5.0/gems/byebug-10.0.0/lib/byebug/commands/frame.rb +0 -57
  61. data/vendor/lambdagem/bundled/gems/ruby/2.5.0/gems/byebug-10.0.0/lib/byebug/commands/help.rb +0 -64
  62. data/vendor/lambdagem/bundled/gems/ruby/2.5.0/gems/byebug-10.0.0/lib/byebug/commands/history.rb +0 -39
  63. data/vendor/lambdagem/bundled/gems/ruby/2.5.0/gems/byebug-10.0.0/lib/byebug/commands/info.rb +0 -37
  64. data/vendor/lambdagem/bundled/gems/ruby/2.5.0/gems/byebug-10.0.0/lib/byebug/commands/info/breakpoints.rb +0 -67
  65. data/vendor/lambdagem/bundled/gems/ruby/2.5.0/gems/byebug-10.0.0/lib/byebug/commands/info/display.rb +0 -51
  66. data/vendor/lambdagem/bundled/gems/ruby/2.5.0/gems/byebug-10.0.0/lib/byebug/commands/info/file.rb +0 -82
  67. data/vendor/lambdagem/bundled/gems/ruby/2.5.0/gems/byebug-10.0.0/lib/byebug/commands/info/line.rb +0 -35
  68. data/vendor/lambdagem/bundled/gems/ruby/2.5.0/gems/byebug-10.0.0/lib/byebug/commands/info/program.rb +0 -49
  69. data/vendor/lambdagem/bundled/gems/ruby/2.5.0/gems/byebug-10.0.0/lib/byebug/commands/interrupt.rb +0 -34
  70. data/vendor/lambdagem/bundled/gems/ruby/2.5.0/gems/byebug-10.0.0/lib/byebug/commands/irb.rb +0 -52
  71. data/vendor/lambdagem/bundled/gems/ruby/2.5.0/gems/byebug-10.0.0/lib/byebug/commands/kill.rb +0 -47
  72. data/vendor/lambdagem/bundled/gems/ruby/2.5.0/gems/byebug-10.0.0/lib/byebug/commands/list.rb +0 -159
  73. data/vendor/lambdagem/bundled/gems/ruby/2.5.0/gems/byebug-10.0.0/lib/byebug/commands/method.rb +0 -53
  74. data/vendor/lambdagem/bundled/gems/ruby/2.5.0/gems/byebug-10.0.0/lib/byebug/commands/next.rb +0 -40
  75. data/vendor/lambdagem/bundled/gems/ruby/2.5.0/gems/byebug-10.0.0/lib/byebug/commands/pry.rb +0 -43
  76. data/vendor/lambdagem/bundled/gems/ruby/2.5.0/gems/byebug-10.0.0/lib/byebug/commands/quit.rb +0 -42
  77. data/vendor/lambdagem/bundled/gems/ruby/2.5.0/gems/byebug-10.0.0/lib/byebug/commands/restart.rb +0 -64
  78. data/vendor/lambdagem/bundled/gems/ruby/2.5.0/gems/byebug-10.0.0/lib/byebug/commands/save.rb +0 -72
  79. data/vendor/lambdagem/bundled/gems/ruby/2.5.0/gems/byebug-10.0.0/lib/byebug/commands/set.rb +0 -79
  80. data/vendor/lambdagem/bundled/gems/ruby/2.5.0/gems/byebug-10.0.0/lib/byebug/commands/show.rb +0 -45
  81. data/vendor/lambdagem/bundled/gems/ruby/2.5.0/gems/byebug-10.0.0/lib/byebug/commands/source.rb +0 -42
  82. data/vendor/lambdagem/bundled/gems/ruby/2.5.0/gems/byebug-10.0.0/lib/byebug/commands/step.rb +0 -40
  83. data/vendor/lambdagem/bundled/gems/ruby/2.5.0/gems/byebug-10.0.0/lib/byebug/commands/thread.rb +0 -34
  84. data/vendor/lambdagem/bundled/gems/ruby/2.5.0/gems/byebug-10.0.0/lib/byebug/commands/thread/current.rb +0 -37
  85. data/vendor/lambdagem/bundled/gems/ruby/2.5.0/gems/byebug-10.0.0/lib/byebug/commands/thread/list.rb +0 -43
  86. data/vendor/lambdagem/bundled/gems/ruby/2.5.0/gems/byebug-10.0.0/lib/byebug/commands/thread/resume.rb +0 -47
  87. data/vendor/lambdagem/bundled/gems/ruby/2.5.0/gems/byebug-10.0.0/lib/byebug/commands/thread/stop.rb +0 -43
  88. data/vendor/lambdagem/bundled/gems/ruby/2.5.0/gems/byebug-10.0.0/lib/byebug/commands/thread/switch.rb +0 -46
  89. data/vendor/lambdagem/bundled/gems/ruby/2.5.0/gems/byebug-10.0.0/lib/byebug/commands/tracevar.rb +0 -57
  90. data/vendor/lambdagem/bundled/gems/ruby/2.5.0/gems/byebug-10.0.0/lib/byebug/commands/undisplay.rb +0 -52
  91. data/vendor/lambdagem/bundled/gems/ruby/2.5.0/gems/byebug-10.0.0/lib/byebug/commands/untracevar.rb +0 -36
  92. data/vendor/lambdagem/bundled/gems/ruby/2.5.0/gems/byebug-10.0.0/lib/byebug/commands/up.rb +0 -45
  93. data/vendor/lambdagem/bundled/gems/ruby/2.5.0/gems/byebug-10.0.0/lib/byebug/commands/var.rb +0 -37
  94. data/vendor/lambdagem/bundled/gems/ruby/2.5.0/gems/byebug-10.0.0/lib/byebug/commands/var/all.rb +0 -41
  95. data/vendor/lambdagem/bundled/gems/ruby/2.5.0/gems/byebug-10.0.0/lib/byebug/commands/var/args.rb +0 -39
  96. data/vendor/lambdagem/bundled/gems/ruby/2.5.0/gems/byebug-10.0.0/lib/byebug/commands/var/const.rb +0 -51
  97. data/vendor/lambdagem/bundled/gems/ruby/2.5.0/gems/byebug-10.0.0/lib/byebug/commands/var/global.rb +0 -37
  98. data/vendor/lambdagem/bundled/gems/ruby/2.5.0/gems/byebug-10.0.0/lib/byebug/commands/var/instance.rb +0 -39
  99. data/vendor/lambdagem/bundled/gems/ruby/2.5.0/gems/byebug-10.0.0/lib/byebug/commands/var/local.rb +0 -39
  100. data/vendor/lambdagem/bundled/gems/ruby/2.5.0/gems/byebug-10.0.0/lib/byebug/commands/where.rb +0 -53
  101. data/vendor/lambdagem/bundled/gems/ruby/2.5.0/gems/byebug-10.0.0/lib/byebug/context.rb +0 -157
  102. data/vendor/lambdagem/bundled/gems/ruby/2.5.0/gems/byebug-10.0.0/lib/byebug/core.rb +0 -114
  103. data/vendor/lambdagem/bundled/gems/ruby/2.5.0/gems/byebug-10.0.0/lib/byebug/errors.rb +0 -29
  104. data/vendor/lambdagem/bundled/gems/ruby/2.5.0/gems/byebug-10.0.0/lib/byebug/frame.rb +0 -185
  105. data/vendor/lambdagem/bundled/gems/ruby/2.5.0/gems/byebug-10.0.0/lib/byebug/helpers/bin.rb +0 -47
  106. data/vendor/lambdagem/bundled/gems/ruby/2.5.0/gems/byebug-10.0.0/lib/byebug/helpers/eval.rb +0 -126
  107. data/vendor/lambdagem/bundled/gems/ruby/2.5.0/gems/byebug-10.0.0/lib/byebug/helpers/file.rb +0 -63
  108. data/vendor/lambdagem/bundled/gems/ruby/2.5.0/gems/byebug-10.0.0/lib/byebug/helpers/frame.rb +0 -75
  109. data/vendor/lambdagem/bundled/gems/ruby/2.5.0/gems/byebug-10.0.0/lib/byebug/helpers/parse.rb +0 -77
  110. data/vendor/lambdagem/bundled/gems/ruby/2.5.0/gems/byebug-10.0.0/lib/byebug/helpers/path.rb +0 -40
  111. data/vendor/lambdagem/bundled/gems/ruby/2.5.0/gems/byebug-10.0.0/lib/byebug/helpers/reflection.rb +0 -19
  112. data/vendor/lambdagem/bundled/gems/ruby/2.5.0/gems/byebug-10.0.0/lib/byebug/helpers/string.rb +0 -36
  113. data/vendor/lambdagem/bundled/gems/ruby/2.5.0/gems/byebug-10.0.0/lib/byebug/helpers/thread.rb +0 -67
  114. data/vendor/lambdagem/bundled/gems/ruby/2.5.0/gems/byebug-10.0.0/lib/byebug/helpers/toggle.rb +0 -64
  115. data/vendor/lambdagem/bundled/gems/ruby/2.5.0/gems/byebug-10.0.0/lib/byebug/helpers/var.rb +0 -54
  116. data/vendor/lambdagem/bundled/gems/ruby/2.5.0/gems/byebug-10.0.0/lib/byebug/history.rb +0 -130
  117. data/vendor/lambdagem/bundled/gems/ruby/2.5.0/gems/byebug-10.0.0/lib/byebug/interface.rb +0 -146
  118. data/vendor/lambdagem/bundled/gems/ruby/2.5.0/gems/byebug-10.0.0/lib/byebug/interfaces/local_interface.rb +0 -44
  119. data/vendor/lambdagem/bundled/gems/ruby/2.5.0/gems/byebug-10.0.0/lib/byebug/interfaces/remote_interface.rb +0 -50
  120. data/vendor/lambdagem/bundled/gems/ruby/2.5.0/gems/byebug-10.0.0/lib/byebug/interfaces/script_interface.rb +0 -32
  121. data/vendor/lambdagem/bundled/gems/ruby/2.5.0/gems/byebug-10.0.0/lib/byebug/interfaces/test_interface.rb +0 -67
  122. data/vendor/lambdagem/bundled/gems/ruby/2.5.0/gems/byebug-10.0.0/lib/byebug/option_setter.rb +0 -95
  123. data/vendor/lambdagem/bundled/gems/ruby/2.5.0/gems/byebug-10.0.0/lib/byebug/printers/base.rb +0 -69
  124. data/vendor/lambdagem/bundled/gems/ruby/2.5.0/gems/byebug-10.0.0/lib/byebug/printers/plain.rb +0 -44
  125. data/vendor/lambdagem/bundled/gems/ruby/2.5.0/gems/byebug-10.0.0/lib/byebug/printers/texts/base.yml +0 -115
  126. data/vendor/lambdagem/bundled/gems/ruby/2.5.0/gems/byebug-10.0.0/lib/byebug/printers/texts/plain.yml +0 -33
  127. data/vendor/lambdagem/bundled/gems/ruby/2.5.0/gems/byebug-10.0.0/lib/byebug/processors/command_processor.rb +0 -173
  128. data/vendor/lambdagem/bundled/gems/ruby/2.5.0/gems/byebug-10.0.0/lib/byebug/processors/control_processor.rb +0 -24
  129. data/vendor/lambdagem/bundled/gems/ruby/2.5.0/gems/byebug-10.0.0/lib/byebug/processors/post_mortem_processor.rb +0 -18
  130. data/vendor/lambdagem/bundled/gems/ruby/2.5.0/gems/byebug-10.0.0/lib/byebug/processors/script_processor.rb +0 -49
  131. data/vendor/lambdagem/bundled/gems/ruby/2.5.0/gems/byebug-10.0.0/lib/byebug/remote.rb +0 -85
  132. data/vendor/lambdagem/bundled/gems/ruby/2.5.0/gems/byebug-10.0.0/lib/byebug/remote/client.rb +0 -55
  133. data/vendor/lambdagem/bundled/gems/ruby/2.5.0/gems/byebug-10.0.0/lib/byebug/remote/server.rb +0 -47
  134. data/vendor/lambdagem/bundled/gems/ruby/2.5.0/gems/byebug-10.0.0/lib/byebug/runner.rb +0 -198
  135. data/vendor/lambdagem/bundled/gems/ruby/2.5.0/gems/byebug-10.0.0/lib/byebug/setting.rb +0 -79
  136. data/vendor/lambdagem/bundled/gems/ruby/2.5.0/gems/byebug-10.0.0/lib/byebug/settings/autoirb.rb +0 -29
  137. data/vendor/lambdagem/bundled/gems/ruby/2.5.0/gems/byebug-10.0.0/lib/byebug/settings/autolist.rb +0 -29
  138. data/vendor/lambdagem/bundled/gems/ruby/2.5.0/gems/byebug-10.0.0/lib/byebug/settings/autopry.rb +0 -29
  139. data/vendor/lambdagem/bundled/gems/ruby/2.5.0/gems/byebug-10.0.0/lib/byebug/settings/autosave.rb +0 -17
  140. data/vendor/lambdagem/bundled/gems/ruby/2.5.0/gems/byebug-10.0.0/lib/byebug/settings/basename.rb +0 -16
  141. data/vendor/lambdagem/bundled/gems/ruby/2.5.0/gems/byebug-10.0.0/lib/byebug/settings/callstyle.rb +0 -20
  142. data/vendor/lambdagem/bundled/gems/ruby/2.5.0/gems/byebug-10.0.0/lib/byebug/settings/fullpath.rb +0 -16
  143. data/vendor/lambdagem/bundled/gems/ruby/2.5.0/gems/byebug-10.0.0/lib/byebug/settings/histfile.rb +0 -20
  144. data/vendor/lambdagem/bundled/gems/ruby/2.5.0/gems/byebug-10.0.0/lib/byebug/settings/histsize.rb +0 -20
  145. data/vendor/lambdagem/bundled/gems/ruby/2.5.0/gems/byebug-10.0.0/lib/byebug/settings/linetrace.rb +0 -22
  146. data/vendor/lambdagem/bundled/gems/ruby/2.5.0/gems/byebug-10.0.0/lib/byebug/settings/listsize.rb +0 -21
  147. data/vendor/lambdagem/bundled/gems/ruby/2.5.0/gems/byebug-10.0.0/lib/byebug/settings/post_mortem.rb +0 -27
  148. data/vendor/lambdagem/bundled/gems/ruby/2.5.0/gems/byebug-10.0.0/lib/byebug/settings/savefile.rb +0 -20
  149. data/vendor/lambdagem/bundled/gems/ruby/2.5.0/gems/byebug-10.0.0/lib/byebug/settings/stack_on_error.rb +0 -15
  150. data/vendor/lambdagem/bundled/gems/ruby/2.5.0/gems/byebug-10.0.0/lib/byebug/settings/width.rb +0 -20
  151. data/vendor/lambdagem/bundled/gems/ruby/2.5.0/gems/byebug-10.0.0/lib/byebug/source_file_formatter.rb +0 -71
  152. data/vendor/lambdagem/bundled/gems/ruby/2.5.0/gems/byebug-10.0.0/lib/byebug/subcommands.rb +0 -54
  153. data/vendor/lambdagem/bundled/gems/ruby/2.5.0/gems/byebug-10.0.0/lib/byebug/version.rb +0 -8
  154. data/vendor/lambdagem/bundled/gems/ruby/2.5.0/specifications/byebug-10.0.0.gemspec +0 -39
@@ -1,12 +0,0 @@
1
- # frozen_string_literal: true
2
-
3
- require "mkmf"
4
-
5
- makefile_config = RbConfig::MAKEFILE_CONFIG
6
-
7
- makefile_config["CC"] = ENV["CC"] if ENV["CC"]
8
-
9
- makefile_config["CFLAGS"] << " -gdwarf-2 -g3 -O0" if ENV["debug"]
10
-
11
- dir_config("ruby")
12
- with_cflags(makefile_config["CFLAGS"]) { create_makefile("byebug/byebug") }
@@ -1,96 +0,0 @@
1
- #include "byebug.h"
2
-
3
- /**
4
- * A simple linked list containing locked threads, FIFO style.
5
- */
6
-
7
- typedef struct locked_thread_t
8
- {
9
- VALUE thread;
10
- struct locked_thread_t *next;
11
- } locked_thread_t;
12
-
13
- static locked_thread_t *locked_head = NULL;
14
- static locked_thread_t *locked_tail = NULL;
15
-
16
- static int
17
- is_in_locked(VALUE thread)
18
- {
19
- locked_thread_t *node;
20
-
21
- if (!locked_head)
22
- return 0;
23
-
24
- for (node = locked_head; node != locked_tail; node = node->next)
25
- if (node->thread == thread)
26
- return 1;
27
-
28
- return 0;
29
- }
30
-
31
- extern void
32
- add_to_locked(VALUE thread)
33
- {
34
- locked_thread_t *node;
35
-
36
- if (is_in_locked(thread))
37
- return;
38
-
39
- node = ALLOC(locked_thread_t);
40
- node->thread = thread;
41
- node->next = NULL;
42
-
43
- if (locked_tail)
44
- locked_tail->next = node;
45
-
46
- locked_tail = node;
47
-
48
- if (!locked_head)
49
- locked_head = node;
50
- }
51
-
52
- extern VALUE
53
- pop_from_locked()
54
- {
55
- VALUE thread;
56
- locked_thread_t *node;
57
-
58
- if (!locked_head)
59
- return Qnil;
60
-
61
- node = locked_head;
62
- locked_head = locked_head->next;
63
-
64
- if (locked_tail == node)
65
- locked_tail = NULL;
66
-
67
- thread = node->thread;
68
- xfree(node);
69
-
70
- return thread;
71
- }
72
-
73
- extern void
74
- remove_from_locked(VALUE thread)
75
- {
76
- locked_thread_t *node;
77
- locked_thread_t *next_node;
78
-
79
- if (NIL_P(thread) || !locked_head || !is_in_locked(thread))
80
- return;
81
-
82
- if (locked_head->thread == thread)
83
- {
84
- pop_from_locked();
85
- return;
86
- }
87
-
88
- for (node = locked_head; node != locked_tail; node = node->next)
89
- if (node->next && node->next->thread == thread)
90
- {
91
- next_node = node->next;
92
- node->next = next_node->next;
93
- xfree(next_node);
94
- return;
95
- }
96
- }
@@ -1,230 +0,0 @@
1
- #include "byebug.h"
2
-
3
- /* Threads table class */
4
- static VALUE cThreadsTable;
5
-
6
- /* If not Qnil, holds the next thread that must be run */
7
- VALUE next_thread = Qnil;
8
-
9
- /* To allow thread syncronization, we must stop threads when debugging */
10
- static VALUE locker = Qnil;
11
-
12
- static int
13
- t_tbl_mark_keyvalue(st_data_t key, st_data_t value, st_data_t tbl)
14
- {
15
- UNUSED(tbl);
16
-
17
- rb_gc_mark((VALUE)key);
18
-
19
- if (!value)
20
- return ST_CONTINUE;
21
-
22
- rb_gc_mark((VALUE)value);
23
-
24
- return ST_CONTINUE;
25
- }
26
-
27
- static void
28
- t_tbl_mark(void *data)
29
- {
30
- threads_table_t *t_tbl = (threads_table_t *)data;
31
- st_table *tbl = t_tbl->tbl;
32
-
33
- st_foreach(tbl, t_tbl_mark_keyvalue, (st_data_t)tbl);
34
- }
35
-
36
- static void
37
- t_tbl_free(void *data)
38
- {
39
- threads_table_t *t_tbl = (threads_table_t *)data;
40
-
41
- st_free_table(t_tbl->tbl);
42
- xfree(t_tbl);
43
- }
44
-
45
- /*
46
- * Creates a numeric hash whose keys are the currently active threads and
47
- * whose values are their associated contexts.
48
- */
49
- VALUE
50
- create_threads_table(void)
51
- {
52
- threads_table_t *t_tbl;
53
-
54
- t_tbl = ALLOC(threads_table_t);
55
- t_tbl->tbl = st_init_numtable();
56
- return Data_Wrap_Struct(cThreadsTable, t_tbl_mark, t_tbl_free, t_tbl);
57
- }
58
-
59
- /*
60
- * Checks a single entry in the threads table.
61
- *
62
- * If it has no associated context or the key doesn't correspond to a living
63
- * thread, the entry is removed from the thread's list.
64
- */
65
- static int
66
- check_thread_i(st_data_t key, st_data_t value, st_data_t data)
67
- {
68
- UNUSED(data);
69
-
70
- if (!value)
71
- return ST_DELETE;
72
-
73
- if (!is_living_thread((VALUE)key))
74
- return ST_DELETE;
75
-
76
- return ST_CONTINUE;
77
- }
78
-
79
- /*
80
- * Checks whether a thread is either in the running or sleeping state.
81
- */
82
- int
83
- is_living_thread(VALUE thread)
84
- {
85
- VALUE status = rb_funcall(thread, rb_intern("status"), 0);
86
-
87
- if (NIL_P(status) || status == Qfalse)
88
- return 0;
89
-
90
- if (rb_str_cmp(status, rb_str_new2("run")) == 0
91
- || rb_str_cmp(status, rb_str_new2("sleep")) == 0)
92
- return 1;
93
-
94
- return 0;
95
- }
96
-
97
- /*
98
- * Checks threads table for dead/finished threads.
99
- */
100
- static void
101
- cleanup_dead_threads(void)
102
- {
103
- threads_table_t *t_tbl;
104
-
105
- Data_Get_Struct(threads, threads_table_t, t_tbl);
106
- st_foreach(t_tbl->tbl, check_thread_i, 0);
107
- }
108
-
109
- /*
110
- * Looks up a context in the threads table. If not present, it creates it.
111
- */
112
- void
113
- thread_context_lookup(VALUE thread, VALUE *context)
114
- {
115
- threads_table_t *t_tbl;
116
-
117
- Data_Get_Struct(threads, threads_table_t, t_tbl);
118
-
119
- if (!st_lookup(t_tbl->tbl, thread, context) || !*context)
120
- {
121
- *context = context_create(thread);
122
- st_insert(t_tbl->tbl, thread, *context);
123
- }
124
- }
125
-
126
- /*
127
- * Holds thread execution while another thread is active.
128
- *
129
- * Thanks to this, all threads are "frozen" while the user is typing commands.
130
- */
131
- void
132
- acquire_lock(debug_context_t *dc)
133
- {
134
- while ((!NIL_P(locker) && locker != rb_thread_current())
135
- || CTX_FL_TEST(dc, CTX_FL_SUSPEND))
136
- {
137
- add_to_locked(rb_thread_current());
138
- rb_thread_stop();
139
-
140
- if (CTX_FL_TEST(dc, CTX_FL_SUSPEND))
141
- CTX_FL_SET(dc, CTX_FL_WAS_RUNNING);
142
- }
143
-
144
- locker = rb_thread_current();
145
- }
146
-
147
- /*
148
- * Releases our global lock and passes execution on to another thread, either
149
- * the thread specified by +next_thread+ or any other thread if +next_thread+
150
- * is nil.
151
- */
152
- void
153
- release_lock(void)
154
- {
155
- VALUE thread;
156
-
157
- cleanup_dead_threads();
158
-
159
- locker = Qnil;
160
-
161
- if (NIL_P(next_thread))
162
- thread = pop_from_locked();
163
- else
164
- {
165
- remove_from_locked(next_thread);
166
- thread = next_thread;
167
- next_thread = Qnil;
168
- }
169
-
170
- if (!NIL_P(thread) && is_living_thread(thread))
171
- rb_thread_run(thread);
172
- }
173
-
174
- /*
175
- * call-seq:
176
- * Byebug.unlock -> nil
177
- *
178
- * Unlocks global switch so other threads can run.
179
- */
180
- static VALUE
181
- Unlock(VALUE self)
182
- {
183
- UNUSED(self);
184
-
185
- release_lock();
186
-
187
- return locker;
188
- }
189
-
190
- /*
191
- * call-seq:
192
- * Byebug.lock -> Thread.current
193
- *
194
- * Locks global switch to reserve execution to current thread exclusively.
195
- */
196
- static VALUE
197
- Lock(VALUE self)
198
- {
199
- debug_context_t *dc;
200
- VALUE context;
201
-
202
- UNUSED(self);
203
-
204
- if (!is_living_thread(rb_thread_current()))
205
- rb_raise(rb_eRuntimeError, "Current thread is dead!");
206
-
207
- thread_context_lookup(rb_thread_current(), &context);
208
- Data_Get_Struct(context, debug_context_t, dc);
209
-
210
- acquire_lock(dc);
211
-
212
- return locker;
213
- }
214
-
215
- /*
216
- *
217
- * Document-class: ThreadsTable
218
- *
219
- * == Sumary
220
- *
221
- * Hash table holding currently active threads and their associated contexts
222
- */
223
- void
224
- Init_threads_table(VALUE mByebug)
225
- {
226
- cThreadsTable = rb_define_class_under(mByebug, "ThreadsTable", rb_cObject);
227
-
228
- rb_define_module_function(mByebug, "unlock", Unlock, 0);
229
- rb_define_module_function(mByebug, "lock", Lock, 0);
230
- }
@@ -1,3 +0,0 @@
1
- # frozen_string_literal: true
2
-
3
- require "byebug/attacher"
@@ -1,48 +0,0 @@
1
- # frozen_string_literal: true
2
-
3
- #
4
- # Main Container for all of Byebug's code
5
- #
6
- module Byebug
7
- #
8
- # Starts byebug, and stops at the first line of user's code.
9
- #
10
- def self.attach
11
- require "byebug/core"
12
-
13
- unless started?
14
- self.mode = :attached
15
-
16
- start
17
- run_init_script
18
- end
19
-
20
- current_context.step_out(3, true)
21
- end
22
-
23
- def self.spawn(host = "localhost", port = nil)
24
- require "byebug/core"
25
-
26
- self.wait_connection = true
27
- start_server(host, port || PORT)
28
- end
29
- end
30
-
31
- #
32
- # Adds a `byebug` method to the Kernel module.
33
- #
34
- # Dropping a `byebug` call anywhere in your code, you get a debug prompt.
35
- #
36
- module Kernel
37
- def byebug
38
- Byebug.attach
39
- end
40
-
41
- def remote_byebug(host = "localhost", port = nil)
42
- Byebug.spawn(host, port)
43
-
44
- Byebug.attach
45
- end
46
-
47
- alias debugger byebug
48
- end
@@ -1,111 +0,0 @@
1
- # frozen_string_literal: true
2
-
3
- module Byebug
4
- #
5
- # Implements breakpoints
6
- #
7
- class Breakpoint
8
- #
9
- # First breakpoint, in order of creation
10
- #
11
- def self.first
12
- Byebug.breakpoints.first
13
- end
14
-
15
- #
16
- # Last breakpoint, in order of creation
17
- #
18
- def self.last
19
- Byebug.breakpoints.last
20
- end
21
-
22
- #
23
- # Adds a new breakpoint
24
- #
25
- # @param [String] file
26
- # @param [Fixnum] line
27
- # @param [String] expr
28
- #
29
- def self.add(file, line, expr = nil)
30
- breakpoint = Breakpoint.new(file, line, expr)
31
- Byebug.breakpoints << breakpoint
32
- breakpoint
33
- end
34
-
35
- #
36
- # Removes a breakpoint
37
- #
38
- # @param id [integer] breakpoint number
39
- #
40
- def self.remove(id)
41
- Byebug.breakpoints.reject! { |b| b.id == id }
42
- end
43
-
44
- #
45
- # Returns an array of line numbers in file named +filename+ where
46
- # breakpoints could be set. The list will contain an entry for each
47
- # distinct line event call so it is possible (and possibly useful) for a
48
- # line number appear more than once.
49
- #
50
- # @param filename [String] File name to inspect for possible breakpoints
51
- #
52
- def self.potential_lines(filename)
53
- name = "#{Time.new.to_i}_#{rand(2**31)}"
54
- iseq = RubyVM::InstructionSequence.compile(File.read(filename), name)
55
-
56
- if iseq.respond_to?(:each_child)
57
- potential_lines_with_trace_points(iseq, {})
58
- else
59
- potential_lines_without_trace_points(iseq, {})
60
- end
61
- end
62
-
63
- def self.potential_lines_with_trace_points(iseq, lines)
64
- iseq.trace_points.each { |(line, _)| lines[line] = true }
65
- iseq.each_child do |child|
66
- potential_lines_with_trace_points(child, lines)
67
- end
68
-
69
- lines.keys.sort
70
- end
71
-
72
- private_class_method :potential_lines_with_trace_points
73
-
74
- def self.potential_lines_without_trace_points(iseq, lines)
75
- iseq.disasm.each_line do |line|
76
- res = /^\d+ (?<insn>\w+)\s+.+\(\s*(?<lineno>\d+)\)$/.match(line)
77
- next unless res && res[:insn] == "trace"
78
-
79
- lines[res[:lineno].to_i] = true
80
- end
81
-
82
- lines.keys
83
- end
84
-
85
- private_class_method :potential_lines_without_trace_points
86
-
87
- #
88
- # Returns true if a breakpoint could be set in line number +lineno+ in file
89
- # name +filename.
90
- #
91
- def self.potential_line?(filename, lineno)
92
- potential_lines(filename).member?(lineno)
93
- end
94
-
95
- #
96
- # True if there's no breakpoints
97
- #
98
- def self.none?
99
- Byebug.breakpoints.empty?
100
- end
101
-
102
- #
103
- # Prints all information associated to the breakpoint
104
- #
105
- def inspect
106
- meths = %w[id pos source expr hit_condition hit_count hit_value enabled?]
107
- values = meths.map { |field| "#{field}: #{send(field)}" }.join(", ")
108
- "#<Byebug::Breakpoint #{values}>"
109
- end
110
- end
111
- end