el4r 1.0.4

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 (249) hide show
  1. data/BUGS +2 -0
  2. data/Changes +2412 -0
  3. data/bin/el4r +26 -0
  4. data/bin/el4r-instance +1105 -0
  5. data/bin/el4r-rctool +279 -0
  6. data/bin/el4r-runtest +26 -0
  7. data/data/emacs/site-lisp/el4r.el +441 -0
  8. data/doc/classes/El4r.html +200 -0
  9. data/doc/classes/El4r.src/M000004.html +25 -0
  10. data/doc/classes/El4r.src/M000005.html +25 -0
  11. data/doc/classes/El4r.src/M000006.html +18 -0
  12. data/doc/classes/El4r.src/M000008.html +25 -0
  13. data/doc/classes/El4r.src/M000009.html +18 -0
  14. data/doc/classes/El4r/ELConsCell.html +145 -0
  15. data/doc/classes/El4r/ELConsCell.src/M000044.html +16 -0
  16. data/doc/classes/El4r/ELConsCell.src/M000046.html +16 -0
  17. data/doc/classes/El4r/ELConsCell.src/M000050.html +16 -0
  18. data/doc/classes/El4r/ELInstance.html +755 -0
  19. data/doc/classes/El4r/ELInstance.src/M000046.html +36 -0
  20. data/doc/classes/El4r/ELInstance.src/M000047.html +41 -0
  21. data/doc/classes/El4r/ELInstance.src/M000048.html +31 -0
  22. data/doc/classes/El4r/ELInstance.src/M000049.html +22 -0
  23. data/doc/classes/El4r/ELInstance.src/M000050.html +25 -0
  24. data/doc/classes/El4r/ELInstance.src/M000051.html +35 -0
  25. data/doc/classes/El4r/ELInstance.src/M000052.html +31 -0
  26. data/doc/classes/El4r/ELInstance.src/M000053.html +23 -0
  27. data/doc/classes/El4r/ELInstance.src/M000054.html +41 -0
  28. data/doc/classes/El4r/ELInstance.src/M000055.html +31 -0
  29. data/doc/classes/El4r/ELInstance.src/M000056.html +43 -0
  30. data/doc/classes/El4r/ELInstance.src/M000057.html +31 -0
  31. data/doc/classes/El4r/ELInstance.src/M000058.html +22 -0
  32. data/doc/classes/El4r/ELInstance.src/M000059.html +25 -0
  33. data/doc/classes/El4r/ELInstance.src/M000060.html +43 -0
  34. data/doc/classes/El4r/ELInstance.src/M000061.html +31 -0
  35. data/doc/classes/El4r/ELInstance.src/M000062.html +22 -0
  36. data/doc/classes/El4r/ELInstance.src/M000063.html +25 -0
  37. data/doc/classes/El4r/ELInstance.src/M000064.html +35 -0
  38. data/doc/classes/El4r/ELInstance.src/M000065.html +23 -0
  39. data/doc/classes/El4r/ELInstance.src/M000066.html +23 -0
  40. data/doc/classes/El4r/ELInstance.src/M000067.html +19 -0
  41. data/doc/classes/El4r/ELInstance.src/M000068.html +18 -0
  42. data/doc/classes/El4r/ELInstance.src/M000069.html +20 -0
  43. data/doc/classes/El4r/ELInstance.src/M000070.html +18 -0
  44. data/doc/classes/El4r/ELInstance.src/M000071.html +19 -0
  45. data/doc/classes/El4r/ELInstance.src/M000072.html +30 -0
  46. data/doc/classes/El4r/ELInstance.src/M000073.html +20 -0
  47. data/doc/classes/El4r/ELInstance.src/M000074.html +20 -0
  48. data/doc/classes/El4r/ELInstance.src/M000075.html +17 -0
  49. data/doc/classes/El4r/ELInstance.src/M000076.html +18 -0
  50. data/doc/classes/El4r/ELInstance.src/M000077.html +21 -0
  51. data/doc/classes/El4r/ELInstance.src/M000078.html +18 -0
  52. data/doc/classes/El4r/ELInstance.src/M000079.html +18 -0
  53. data/doc/classes/El4r/ELInstance.src/M000080.html +35 -0
  54. data/doc/classes/El4r/ELInstance.src/M000081.html +24 -0
  55. data/doc/classes/El4r/ELInstance.src/M000082.html +22 -0
  56. data/doc/classes/El4r/ELInstance.src/M000083.html +21 -0
  57. data/doc/classes/El4r/ELInstance.src/M000084.html +19 -0
  58. data/doc/classes/El4r/ELInstance.src/M000085.html +18 -0
  59. data/doc/classes/El4r/ELInstance.src/M000086.html +21 -0
  60. data/doc/classes/El4r/ELInstance.src/M000087.html +18 -0
  61. data/doc/classes/El4r/ELInstance.src/M000088.html +24 -0
  62. data/doc/classes/El4r/ELInstance.src/M000089.html +23 -0
  63. data/doc/classes/El4r/ELInstance.src/M000090.html +18 -0
  64. data/doc/classes/El4r/ELInstance.src/M000091.html +20 -0
  65. data/doc/classes/El4r/ELInstance.src/M000092.html +18 -0
  66. data/doc/classes/El4r/ELInstance.src/M000093.html +19 -0
  67. data/doc/classes/El4r/ELListCell.html +163 -0
  68. data/doc/classes/El4r/ELListCell.src/M000026.html +16 -0
  69. data/doc/classes/El4r/ELListCell.src/M000027.html +16 -0
  70. data/doc/classes/El4r/ELListCell.src/M000028.html +23 -0
  71. data/doc/classes/El4r/ELListCell.src/M000031.html +16 -0
  72. data/doc/classes/El4r/ELListCell.src/M000032.html +23 -0
  73. data/doc/classes/El4r/ELListCell.src/M000033.html +16 -0
  74. data/doc/classes/El4r/ELListCell.src/M000034.html +23 -0
  75. data/doc/classes/El4r/ELListCell.src/M000037.html +16 -0
  76. data/doc/classes/El4r/ELListCell.src/M000038.html +23 -0
  77. data/doc/classes/El4r/ELMethodsMixin.html +648 -0
  78. data/doc/classes/El4r/ELMethodsMixin.src/M000006.html +27 -0
  79. data/doc/classes/El4r/ELMethodsMixin.src/M000007.html +27 -0
  80. data/doc/classes/El4r/ELMethodsMixin.src/M000008.html +18 -0
  81. data/doc/classes/El4r/ELMethodsMixin.src/M000009.html +18 -0
  82. data/doc/classes/El4r/ELMethodsMixin.src/M000010.html +27 -0
  83. data/doc/classes/El4r/ELMethodsMixin.src/M000011.html +19 -0
  84. data/doc/classes/El4r/ELMethodsMixin.src/M000012.html +18 -0
  85. data/doc/classes/El4r/ELMethodsMixin.src/M000013.html +19 -0
  86. data/doc/classes/El4r/ELMethodsMixin.src/M000014.html +19 -0
  87. data/doc/classes/El4r/ELMethodsMixin.src/M000015.html +18 -0
  88. data/doc/classes/El4r/ELMethodsMixin.src/M000016.html +21 -0
  89. data/doc/classes/El4r/ELMethodsMixin.src/M000017.html +18 -0
  90. data/doc/classes/El4r/ELMethodsMixin.src/M000018.html +23 -0
  91. data/doc/classes/El4r/ELMethodsMixin.src/M000019.html +18 -0
  92. data/doc/classes/El4r/ELMethodsMixin.src/M000020.html +46 -0
  93. data/doc/classes/El4r/ELMethodsMixin.src/M000021.html +18 -0
  94. data/doc/classes/El4r/ELMethodsMixin.src/M000022.html +23 -0
  95. data/doc/classes/El4r/ELMethodsMixin.src/M000023.html +28 -0
  96. data/doc/classes/El4r/ELMethodsMixin.src/M000024.html +46 -0
  97. data/doc/classes/El4r/ELMethodsMixin.src/M000025.html +18 -0
  98. data/doc/classes/El4r/ELMethodsMixin.src/M000026.html +18 -0
  99. data/doc/classes/El4r/ELMethodsMixin.src/M000027.html +28 -0
  100. data/doc/classes/El4r/ELMethodsMixin.src/M000028.html +31 -0
  101. data/doc/classes/El4r/ELMethodsMixin.src/M000029.html +24 -0
  102. data/doc/classes/El4r/ELMethodsMixin.src/M000030.html +18 -0
  103. data/doc/classes/El4r/ELMethodsMixin.src/M000031.html +18 -0
  104. data/doc/classes/El4r/ELMethodsMixin.src/M000032.html +18 -0
  105. data/doc/classes/El4r/ELMethodsMixin.src/M000033.html +18 -0
  106. data/doc/classes/El4r/ELMethodsMixin.src/M000034.html +18 -0
  107. data/doc/classes/El4r/ELMethodsMixin.src/M000035.html +18 -0
  108. data/doc/classes/El4r/ELMethodsMixin.src/M000036.html +25 -0
  109. data/doc/classes/El4r/ELObject.html +235 -0
  110. data/doc/classes/El4r/ELObject.src/M000078.html +19 -0
  111. data/doc/classes/El4r/ELObject.src/M000079.html +18 -0
  112. data/doc/classes/El4r/ELObject.src/M000080.html +19 -0
  113. data/doc/classes/El4r/ELObject.src/M000081.html +18 -0
  114. data/doc/classes/El4r/ELObject.src/M000082.html +19 -0
  115. data/doc/classes/El4r/ELObject.src/M000083.html +18 -0
  116. data/doc/classes/El4r/ELObject.src/M000084.html +18 -0
  117. data/doc/classes/El4r/ELObject.src/M000085.html +18 -0
  118. data/doc/classes/El4r/ELObject.src/M000086.html +20 -0
  119. data/doc/classes/El4r/ELObject.src/M000087.html +19 -0
  120. data/doc/classes/El4r/ELObject.src/M000088.html +20 -0
  121. data/doc/classes/El4r/ELObject.src/M000090.html +19 -0
  122. data/doc/classes/El4r/ELObject.src/M000091.html +19 -0
  123. data/doc/classes/El4r/ELObject.src/M000092.html +18 -0
  124. data/doc/classes/El4r/ELObject.src/M000093.html +19 -0
  125. data/doc/classes/El4r/ELObject.src/M000094.html +18 -0
  126. data/doc/classes/El4r/ELObject.src/M000095.html +18 -0
  127. data/doc/classes/El4r/ELObject.src/M000096.html +18 -0
  128. data/doc/classes/El4r/ELObject.src/M000097.html +19 -0
  129. data/doc/classes/El4r/ELObject.src/M000098.html +18 -0
  130. data/doc/classes/El4r/ELObject.src/M000099.html +18 -0
  131. data/doc/classes/El4r/ELObject.src/M000100.html +18 -0
  132. data/doc/classes/El4r/ELObject.src/M000102.html +19 -0
  133. data/doc/classes/El4r/ELObject.src/M000103.html +20 -0
  134. data/doc/classes/El4r/ELRubyObjectStock.html +283 -0
  135. data/doc/classes/El4r/ELRubyObjectStock.src/M000030.html +21 -0
  136. data/doc/classes/El4r/ELRubyObjectStock.src/M000031.html +22 -0
  137. data/doc/classes/El4r/ELRubyObjectStock.src/M000032.html +22 -0
  138. data/doc/classes/El4r/ELRubyObjectStock.src/M000033.html +42 -0
  139. data/doc/classes/El4r/ELRubyObjectStock.src/M000034.html +19 -0
  140. data/doc/classes/El4r/ELRubyObjectStock.src/M000035.html +22 -0
  141. data/doc/classes/El4r/ELRubyObjectStock.src/M000036.html +22 -0
  142. data/doc/classes/El4r/ELRubyObjectStock.src/M000037.html +22 -0
  143. data/doc/classes/El4r/ELRubyObjectStock.src/M000038.html +22 -0
  144. data/doc/classes/El4r/ELRubyObjectStock.src/M000039.html +17 -0
  145. data/doc/classes/El4r/ELRubyObjectStock.src/M000040.html +17 -0
  146. data/doc/classes/El4r/ELRubyObjectStock.src/M000041.html +22 -0
  147. data/doc/classes/El4r/ELRubyObjectStock.src/M000042.html +22 -0
  148. data/doc/classes/El4r/ELRubyObjectStock.src/M000043.html +17 -0
  149. data/doc/classes/El4r/ELRubyObjectStock.src/M000044.html +17 -0
  150. data/doc/classes/El4r/ELRubyObjectStock.src/M000045.html +46 -0
  151. data/doc/classes/El4r/ELRubyObjectStock.src/M000046.html +19 -0
  152. data/doc/classes/El4r/ELRubyObjectStock.src/M000047.html +21 -0
  153. data/doc/classes/El4r/ELRubyObjectStock.src/M000048.html +19 -0
  154. data/doc/classes/El4r/ELRubyObjectStock.src/M000049.html +18 -0
  155. data/doc/classes/El4r/ELSequence.html +221 -0
  156. data/doc/classes/El4r/ELSequence.src/M000040.html +18 -0
  157. data/doc/classes/El4r/ELSequence.src/M000041.html +18 -0
  158. data/doc/classes/El4r/ELSequence.src/M000042.html +20 -0
  159. data/doc/classes/El4r/ELSequence.src/M000043.html +19 -0
  160. data/doc/classes/El4r/ELSequence.src/M000044.html +18 -0
  161. data/doc/classes/El4r/ELSequence.src/M000045.html +19 -0
  162. data/doc/classes/El4r/ELSequence.src/M000048.html +18 -0
  163. data/doc/classes/El4r/ELSequence.src/M000049.html +20 -0
  164. data/doc/classes/El4r/ELSequence.src/M000050.html +18 -0
  165. data/doc/classes/El4r/ELSequence.src/M000051.html +20 -0
  166. data/doc/classes/El4r/ELSequence.src/M000052.html +19 -0
  167. data/doc/classes/El4r/ELSequence.src/M000053.html +18 -0
  168. data/doc/classes/El4r/ELSequence.src/M000054.html +18 -0
  169. data/doc/classes/El4r/ELSequence.src/M000055.html +20 -0
  170. data/doc/classes/El4r/ELSequence.src/M000056.html +19 -0
  171. data/doc/classes/El4r/ELSequence.src/M000057.html +18 -0
  172. data/doc/classes/El4r/ELSequence.src/M000058.html +19 -0
  173. data/doc/classes/El4r/ELVariables.html +173 -0
  174. data/doc/classes/El4r/ELVariables.src/M000037.html +18 -0
  175. data/doc/classes/El4r/ELVariables.src/M000038.html +18 -0
  176. data/doc/classes/El4r/ELVariables.src/M000039.html +18 -0
  177. data/doc/classes/El4r/ELVariables.src/M000040.html +23 -0
  178. data/doc/classes/El4r/ELVariables.src/M000045.html +18 -0
  179. data/doc/classes/El4r/ELVariables.src/M000046.html +18 -0
  180. data/doc/classes/El4r/ELVariables.src/M000047.html +18 -0
  181. data/doc/classes/El4r/ELVariables.src/M000048.html +18 -0
  182. data/doc/classes/El4r/ELVariables.src/M000049.html +23 -0
  183. data/doc/classes/El4r/ELVariables.src/M000051.html +18 -0
  184. data/doc/classes/El4r/ELVariables.src/M000052.html +18 -0
  185. data/doc/classes/El4r/ELVariables.src/M000053.html +23 -0
  186. data/doc/classes/El4r/ELVector.html +160 -0
  187. data/doc/classes/El4r/ELVector.src/M000028.html +22 -0
  188. data/doc/classes/El4r/ELVector.src/M000029.html +22 -0
  189. data/doc/classes/El4r/ELVector.src/M000030.html +16 -0
  190. data/doc/classes/El4r/ELVector.src/M000033.html +22 -0
  191. data/doc/classes/El4r/ELVector.src/M000034.html +16 -0
  192. data/doc/classes/El4r/ELVector.src/M000035.html +22 -0
  193. data/doc/classes/El4r/ELVector.src/M000036.html +16 -0
  194. data/doc/classes/El4r/ELVector.src/M000039.html +22 -0
  195. data/doc/classes/El4r/ELVector.src/M000040.html +16 -0
  196. data/doc/classes/El4r/El4rOutput.html +175 -0
  197. data/doc/classes/El4r/El4rOutput.src/M000080.html +18 -0
  198. data/doc/classes/El4r/El4rOutput.src/M000081.html +21 -0
  199. data/doc/classes/El4r/El4rOutput.src/M000088.html +18 -0
  200. data/doc/classes/El4r/El4rOutput.src/M000089.html +21 -0
  201. data/doc/classes/El4r/El4rOutput.src/M000090.html +18 -0
  202. data/doc/classes/El4r/El4rOutput.src/M000091.html +21 -0
  203. data/doc/classes/El4r/El4rOutput.src/M000092.html +18 -0
  204. data/doc/classes/El4r/El4rOutput.src/M000094.html +18 -0
  205. data/doc/classes/El4r/El4rOutput.src/M000095.html +21 -0
  206. data/doc/classes/El4r/El4rOutput.src/M000096.html +18 -0
  207. data/doc/classes/El4rAccessor.html +134 -0
  208. data/doc/classes/El4rAccessor.src/M000005.html +18 -0
  209. data/doc/classes/ElApp.html +211 -0
  210. data/doc/classes/ElApp.src/M000001.html +21 -0
  211. data/doc/classes/ElApp.src/M000002.html +17 -0
  212. data/doc/classes/ElApp.src/M000003.html +18 -0
  213. data/doc/classes/ElApp.src/M000004.html +18 -0
  214. data/doc/classes/ElMixin.html +163 -0
  215. data/doc/classes/ElMixin.src/M000001.html +19 -0
  216. data/doc/classes/ElMixin.src/M000002.html +19 -0
  217. data/doc/classes/ElMixin.src/M000003.html +18 -0
  218. data/doc/classes/ElMixin.src/M000004.html +18 -0
  219. data/doc/classes/ElMixin.src/M000006.html +19 -0
  220. data/doc/classes/ElMixin.src/M000007.html +18 -0
  221. data/doc/created.rid +1 -0
  222. data/doc/files/bin/el4r-instance.html +119 -0
  223. data/doc/fr_class_index.html +40 -0
  224. data/doc/fr_file_index.html +27 -0
  225. data/doc/fr_method_index.html +129 -0
  226. data/doc/index.html +24 -0
  227. data/doc/rdoc-style.css +208 -0
  228. data/el4r.en.html +468 -0
  229. data/el4r.ja.html +640 -0
  230. data/files +29 -0
  231. data/lib/el4r/el4r-sub.rb +1023 -0
  232. data/lib/el4r/emacsruby/autoload/70el4r-mode.rb +9 -0
  233. data/lib/el4r/emacsruby/el4r-mode.rb +35 -0
  234. data/lib/el4r/emacsruby/stdlib.rb +37 -0
  235. data/lib/el4r/exec-el4r.rb +182 -0
  236. data/man/el4r.1 +125 -0
  237. data/setup.rb +1551 -0
  238. data/testing/alltest.rb +5 -0
  239. data/testing/badcase.rb +50 -0
  240. data/testing/el4r.e +262 -0
  241. data/testing/euc.txt +1 -0
  242. data/testing/jis.txt +1 -0
  243. data/testing/sjis.txt +1 -0
  244. data/testing/test-el4r.rb +1053 -0
  245. data/testing/test-gc.rb +81 -0
  246. data/testing/test.el +16 -0
  247. data/testing/test.rb +97 -0
  248. data/testing/utf8.txt +1 -0
  249. metadata +311 -0
@@ -0,0 +1,81 @@
1
+ #!/usr/bin/env ruby
2
+ require 'tmpdir'
3
+ require 'test/unit'
4
+
5
+ # This test must be performed separately
6
+ class TestGC < Test::Unit::TestCase
7
+
8
+ def setup
9
+ el4r_rubyobj_stock.gc_trigger_count = 100
10
+ el4r_rubyobj_stock.gc_trigger_increment = 100
11
+ elvar.el4r_lisp_object_gc_trigger_count = 100
12
+ elvar.el4r_lisp_object_gc_trigger_increment = 200
13
+ end
14
+
15
+ # Lisp object GC
16
+ def test_lispGC
17
+ # message(hash_table_count(el(:el4r_lisp_object_hash)))
18
+ # message(getq(:el4r_lisp_object_gc_trigger_count))
19
+ 100.times {
20
+ el4r_lisp_eval("(cons nil nil)")
21
+ }
22
+ # message(hash_table_count(el(:el4r_lisp_object_hash)))
23
+ # message(getq(:el4r_lisp_object_gc_trigger_count))
24
+
25
+ assert( hash_table_count(el(:el4r_lisp_object_hash)) < 100 )
26
+ assert( getq(:el4r_lisp_object_gc_trigger_count) > 100 )
27
+ end
28
+
29
+ class Foo < ElApp
30
+ def initialize(x={})
31
+ defun(:f){zero}
32
+ end
33
+ def zero
34
+ 0
35
+ end
36
+ end
37
+
38
+ # Ruby object GC
39
+ def test_rubyGC
40
+ Foo.run
41
+ 100.times{
42
+ el4r_lisp_eval(el4r_ruby2lisp(Object.new))
43
+ }
44
+ GC.start
45
+ funcall(:garbage_collect)
46
+ funcall(:garbage_collect)
47
+ funcall(:garbage_collect)
48
+ assert( el4r_rubyobj_stock.count_of_stocked_objects < 100, "count_of_stocked_objects=#{el4r_rubyobj_stock.count_of_stocked_objects}" )
49
+ assert( el4r_rubyobj_stock.gc_trigger_count > 100 )
50
+
51
+ assert_equal(0, f)
52
+ funcall(:garbage_collect)
53
+ funcall(:garbage_collect)
54
+ el4r_rubyobj_stock.garbage_collect
55
+
56
+ oid2obj = el4r_rubyobj_stock.instance_variable_get(:@oid_to_obj_hash)
57
+ alive_ids = oid2obj.keys
58
+ el4r_log(alive_ids.map{|id| "#{id}:#{oid2obj[id].class}"}.join("\n"))
59
+ begin
60
+ open(File.join(Dir.tmpdir,"el4r-idlst"),"w") {|f|
61
+ f.puts alive_ids
62
+ }
63
+ rescue
64
+ end
65
+ end
66
+
67
+ # Interactive and GC
68
+ # (view-diary "2006-02-24" -1)
69
+ def test_interactive
70
+ defun(:itest, :interactive=>lambda{[1]}){|x| x}
71
+ el4r_garbage_collect
72
+ assert_equal(1, call_interactively(:itest))
73
+ end
74
+
75
+ def test_define_key
76
+ define_key(:global_map, "\C-c\C-x") { 1 }
77
+ el4r_garbage_collect
78
+ assert_equal(1, call_interactively(key_binding "\C-c\C-x"))
79
+ end
80
+
81
+ end
@@ -0,0 +1,16 @@
1
+ (el4r-debug-ruby-eval-report "nil")
2
+ (el4r-debug-ruby-eval-report "true")
3
+ (el4r-debug-ruby-eval-report "false")
4
+ (el4r-debug-ruby-eval-report "1 + 6")
5
+ (el4r-debug-ruby-eval-report "\"String\"")
6
+
7
+ (put 'test-error
8
+ 'error-conditions
9
+ '(error test-error))
10
+ (put 'test-error 'error-message "Test Error")
11
+
12
+ (condition-case err
13
+ (el4r-ruby-eval "el4r_lisp_eval(\"(signal 'test-error '(123))\")")
14
+ (test-error (insert-string (format "Error is passed: %s" err))
15
+ ))
16
+
@@ -0,0 +1,97 @@
1
+ def assert_fail
2
+ el4r_log(El4r::ErrorUtils.backtrace_message(caller))
3
+ raise("el4r assertion failure.")
4
+ end
5
+
6
+ el4r_lisp_eval(<<'EOF')
7
+ (insert-string (el4r-ruby-eval "\"Hello from ruby from emacs from ruby!\n\""))
8
+ EOF
9
+ el4r_lisp_eval('t')
10
+ insert_string("Hello from ruby!\n")
11
+
12
+ list = el("'(3 2 1)")
13
+ list = cons(4, list)
14
+ insert_string(prin1_to_string(list)); newline
15
+
16
+ ary = []
17
+ while list
18
+ ary << car(list)
19
+ list = cdr(list)
20
+ end
21
+ insert_string(ary.inspect); newline
22
+
23
+ obj = Object.new
24
+ insert_string("Is ruby object passed? ... #{car(cons(obj, nil)) == obj}")
25
+ newline
26
+
27
+ # Using defun ( Proc -> Lambda conversion )
28
+ defun(:my_ruby_func) { |a|
29
+ insert_string("String from my_ruby_func: '#{a}'"); newline
30
+ }
31
+ my_ruby_func("Hello!")
32
+
33
+ defun(:my_command, :interactive => true) {
34
+ insert_string("My Interactive command from Ruby."); newline
35
+ }
36
+ call_interactively(:my_command)
37
+
38
+ defun(:my_command2,
39
+ :interactive => "d", :docstring => "description...") { |point|
40
+ insert_string("Current point is #{point}."); newline
41
+ }
42
+ nth(1, commandp(:my_command2)) == "d" or assert_fail
43
+ documentation(:my_command2) == "description..." or assert_fail
44
+ call_interactively(:my_command2)
45
+
46
+
47
+ # Calling lambda
48
+ lambda = el4r_lisp_eval("(lambda (i) (+ i 1))")
49
+ funcall(lambda, 1) == 2 or assert_fail
50
+
51
+ # Calling special form like save-excursion
52
+ with(:save_excursion) {
53
+ beginning_of_buffer
54
+ insert_string("This is inserted at the beginning of buffer."); newline
55
+ }
56
+
57
+ # ELListCell
58
+ cons(1, cons(2, nil)).to_a == [1, 2] or assert_fail
59
+
60
+ # Accessing to lisp variables with elvar
61
+ elvar.myvar = 123
62
+ 123 == elvar.myvar or assert_fail
63
+
64
+ # Lisp object GC
65
+ 100.times {
66
+ el4r_lisp_eval("(cons nil nil)")
67
+ }
68
+ hash_table_count(el(:el4r_lisp_object_hash)) < 100 or assert_fail
69
+ getq(:el4r_lisp_object_gc_trigger_count) > 100 or assert_fail
70
+ insert_string("Okay, GC of lisp objects works well!"); newline
71
+
72
+ # Ruby object GC
73
+ 100.times {
74
+ el4r_lisp_eval(el4r_ruby2lisp(Object.new))
75
+ }
76
+ el4r_rubyobj_stock.count_of_stocked_objects < 100 or assert_fail
77
+ el4r_rubyobj_stock.gc_trigger_count > 100 or assert_fail
78
+ insert_string("Okay, GC of Ruby objects works well!"); newline
79
+
80
+ # Error passing
81
+ begin
82
+ el4r_lisp_eval(<<-'EOF')
83
+ (el4r-ruby-eval "raise \"Is error handled correctly?\""))
84
+ EOF
85
+ raise("Oh, no!")
86
+ rescue RuntimeError
87
+ end
88
+
89
+ # let
90
+ elvar.testval = 12
91
+ testval_in_letblock = nil
92
+ let(:testval, 24) {
93
+ testval_in_letblock = elvar.testval
94
+ }
95
+ testval_in_letblock == 24 or assert_fail
96
+ elvar.testval == 12 or assert_fail
97
+ insert_string("Ok, let form works well."); newline
@@ -0,0 +1 @@
1
+ 日本語
metadata ADDED
@@ -0,0 +1,311 @@
1
+ --- !ruby/object:Gem::Specification
2
+ rubygems_version: 0.9.0
3
+ specification_version: 1
4
+ name: el4r
5
+ version: !ruby/object:Gem::Version
6
+ version: 1.0.4
7
+ date: 2006-12-17 00:00:00 +09:00
8
+ summary: EmacsRuby engine - EmacsLisp for Ruby
9
+ require_paths:
10
+ - lib
11
+ email:
12
+ homepage:
13
+ rubyforge_project:
14
+ description: El4r enables you to write Emacs programs in Ruby(EmacsRuby) as well as in EmacsLisp. It also enables you to unit-test Emacs programs automatically both in EmacsLisp and in EmacsRuby. == How to install ruby -ropen-uri -e 'URI("http://www.rubyist.net/~rubikitch/archive/el4r-1.0.4.tar.gz").read.display' > el4r-1.0.4.tar.gz tar xzf el4r-1.0.4.tar.gz cd el4r-1.0.4 ruby setup.rb ruby -S el4r-rctool -p ruby -S el4r-rctool -i == How to use See the files below testing/ and doc/.
15
+ autorequire:
16
+ default_executable:
17
+ bindir: bin
18
+ has_rdoc: false
19
+ required_ruby_version: !ruby/object:Gem::Version::Requirement
20
+ requirements:
21
+ - - ">"
22
+ - !ruby/object:Gem::Version
23
+ version: 0.0.0
24
+ version:
25
+ platform: ruby
26
+ signing_key:
27
+ cert_chain:
28
+ post_install_message:
29
+ authors: []
30
+
31
+ files:
32
+ - BUGS
33
+ - Changes
34
+ - bin/el4r-instance
35
+ - bin/el4r-rctool
36
+ - bin/el4r-runtest
37
+ - bin/el4r
38
+ - data/emacs/site-lisp/el4r.el
39
+ - doc/created.rid
40
+ - doc/rdoc-style.css
41
+ - doc/files
42
+ - doc/classes
43
+ - doc/fr_file_index.html
44
+ - doc/fr_class_index.html
45
+ - doc/fr_method_index.html
46
+ - doc/index.html
47
+ - doc/files/bin
48
+ - doc/files/bin/el4r-instance.html
49
+ - doc/classes/ElMixin.src
50
+ - doc/classes/El4r.src
51
+ - doc/classes/El4r
52
+ - doc/classes/ElMixin.html
53
+ - doc/classes/El4r.html
54
+ - doc/classes/ElApp.src
55
+ - doc/classes/ElApp.html
56
+ - doc/classes/El4rAccessor.src
57
+ - doc/classes/El4rAccessor.html
58
+ - doc/classes/ElMixin.src/M000001.html
59
+ - doc/classes/ElMixin.src/M000002.html
60
+ - doc/classes/ElMixin.src/M000003.html
61
+ - doc/classes/ElMixin.src/M000004.html
62
+ - doc/classes/ElMixin.src/M000006.html
63
+ - doc/classes/ElMixin.src/M000007.html
64
+ - doc/classes/El4r.src/M000004.html
65
+ - doc/classes/El4r.src/M000005.html
66
+ - doc/classes/El4r.src/M000006.html
67
+ - doc/classes/El4r.src/M000008.html
68
+ - doc/classes/El4r.src/M000009.html
69
+ - doc/classes/El4r/ELMethodsMixin.src
70
+ - doc/classes/El4r/ELListCell.src
71
+ - doc/classes/El4r/ELVector.src
72
+ - doc/classes/El4r/ELRubyObjectStock.src
73
+ - doc/classes/El4r/ELVariables.src
74
+ - doc/classes/El4r/ELSequence.src
75
+ - doc/classes/El4r/ELInstance.src
76
+ - doc/classes/El4r/ELObject.src
77
+ - doc/classes/El4r/ELMethodsMixin.html
78
+ - doc/classes/El4r/ELListCell.html
79
+ - doc/classes/El4r/ELVector.html
80
+ - doc/classes/El4r/ELRubyObjectStock.html
81
+ - doc/classes/El4r/ELVariables.html
82
+ - doc/classes/El4r/ELSequence.html
83
+ - doc/classes/El4r/ELInstance.html
84
+ - doc/classes/El4r/ELObject.html
85
+ - doc/classes/El4r/El4rOutput.src
86
+ - doc/classes/El4r/El4rOutput.html
87
+ - doc/classes/El4r/ELConsCell.src
88
+ - doc/classes/El4r/ELConsCell.html
89
+ - doc/classes/El4r/ELMethodsMixin.src/M000006.html
90
+ - doc/classes/El4r/ELMethodsMixin.src/M000008.html
91
+ - doc/classes/El4r/ELMethodsMixin.src/M000009.html
92
+ - doc/classes/El4r/ELMethodsMixin.src/M000010.html
93
+ - doc/classes/El4r/ELMethodsMixin.src/M000011.html
94
+ - doc/classes/El4r/ELMethodsMixin.src/M000012.html
95
+ - doc/classes/El4r/ELMethodsMixin.src/M000014.html
96
+ - doc/classes/El4r/ELMethodsMixin.src/M000016.html
97
+ - doc/classes/El4r/ELMethodsMixin.src/M000017.html
98
+ - doc/classes/El4r/ELMethodsMixin.src/M000018.html
99
+ - doc/classes/El4r/ELMethodsMixin.src/M000019.html
100
+ - doc/classes/El4r/ELMethodsMixin.src/M000020.html
101
+ - doc/classes/El4r/ELMethodsMixin.src/M000021.html
102
+ - doc/classes/El4r/ELMethodsMixin.src/M000022.html
103
+ - doc/classes/El4r/ELMethodsMixin.src/M000023.html
104
+ - doc/classes/El4r/ELMethodsMixin.src/M000024.html
105
+ - doc/classes/El4r/ELMethodsMixin.src/M000025.html
106
+ - doc/classes/El4r/ELMethodsMixin.src/M000007.html
107
+ - doc/classes/El4r/ELMethodsMixin.src/M000013.html
108
+ - doc/classes/El4r/ELMethodsMixin.src/M000015.html
109
+ - doc/classes/El4r/ELMethodsMixin.src/M000026.html
110
+ - doc/classes/El4r/ELMethodsMixin.src/M000027.html
111
+ - doc/classes/El4r/ELMethodsMixin.src/M000028.html
112
+ - doc/classes/El4r/ELMethodsMixin.src/M000029.html
113
+ - doc/classes/El4r/ELMethodsMixin.src/M000030.html
114
+ - doc/classes/El4r/ELMethodsMixin.src/M000031.html
115
+ - doc/classes/El4r/ELMethodsMixin.src/M000032.html
116
+ - doc/classes/El4r/ELMethodsMixin.src/M000033.html
117
+ - doc/classes/El4r/ELMethodsMixin.src/M000034.html
118
+ - doc/classes/El4r/ELMethodsMixin.src/M000035.html
119
+ - doc/classes/El4r/ELMethodsMixin.src/M000036.html
120
+ - doc/classes/El4r/ELListCell.src/M000026.html
121
+ - doc/classes/El4r/ELListCell.src/M000027.html
122
+ - doc/classes/El4r/ELListCell.src/M000028.html
123
+ - doc/classes/El4r/ELListCell.src/M000031.html
124
+ - doc/classes/El4r/ELListCell.src/M000032.html
125
+ - doc/classes/El4r/ELListCell.src/M000033.html
126
+ - doc/classes/El4r/ELListCell.src/M000034.html
127
+ - doc/classes/El4r/ELListCell.src/M000037.html
128
+ - doc/classes/El4r/ELListCell.src/M000038.html
129
+ - doc/classes/El4r/ELVector.src/M000028.html
130
+ - doc/classes/El4r/ELVector.src/M000029.html
131
+ - doc/classes/El4r/ELVector.src/M000030.html
132
+ - doc/classes/El4r/ELVector.src/M000033.html
133
+ - doc/classes/El4r/ELVector.src/M000034.html
134
+ - doc/classes/El4r/ELVector.src/M000035.html
135
+ - doc/classes/El4r/ELVector.src/M000036.html
136
+ - doc/classes/El4r/ELVector.src/M000039.html
137
+ - doc/classes/El4r/ELVector.src/M000040.html
138
+ - doc/classes/El4r/ELRubyObjectStock.src/M000030.html
139
+ - doc/classes/El4r/ELRubyObjectStock.src/M000031.html
140
+ - doc/classes/El4r/ELRubyObjectStock.src/M000032.html
141
+ - doc/classes/El4r/ELRubyObjectStock.src/M000033.html
142
+ - doc/classes/El4r/ELRubyObjectStock.src/M000034.html
143
+ - doc/classes/El4r/ELRubyObjectStock.src/M000035.html
144
+ - doc/classes/El4r/ELRubyObjectStock.src/M000036.html
145
+ - doc/classes/El4r/ELRubyObjectStock.src/M000037.html
146
+ - doc/classes/El4r/ELRubyObjectStock.src/M000038.html
147
+ - doc/classes/El4r/ELRubyObjectStock.src/M000039.html
148
+ - doc/classes/El4r/ELRubyObjectStock.src/M000040.html
149
+ - doc/classes/El4r/ELRubyObjectStock.src/M000041.html
150
+ - doc/classes/El4r/ELRubyObjectStock.src/M000042.html
151
+ - doc/classes/El4r/ELRubyObjectStock.src/M000043.html
152
+ - doc/classes/El4r/ELRubyObjectStock.src/M000044.html
153
+ - doc/classes/El4r/ELRubyObjectStock.src/M000045.html
154
+ - doc/classes/El4r/ELRubyObjectStock.src/M000046.html
155
+ - doc/classes/El4r/ELRubyObjectStock.src/M000047.html
156
+ - doc/classes/El4r/ELRubyObjectStock.src/M000048.html
157
+ - doc/classes/El4r/ELRubyObjectStock.src/M000049.html
158
+ - doc/classes/El4r/ELVariables.src/M000037.html
159
+ - doc/classes/El4r/ELVariables.src/M000038.html
160
+ - doc/classes/El4r/ELVariables.src/M000039.html
161
+ - doc/classes/El4r/ELVariables.src/M000040.html
162
+ - doc/classes/El4r/ELVariables.src/M000045.html
163
+ - doc/classes/El4r/ELVariables.src/M000046.html
164
+ - doc/classes/El4r/ELVariables.src/M000047.html
165
+ - doc/classes/El4r/ELVariables.src/M000048.html
166
+ - doc/classes/El4r/ELVariables.src/M000049.html
167
+ - doc/classes/El4r/ELVariables.src/M000051.html
168
+ - doc/classes/El4r/ELVariables.src/M000052.html
169
+ - doc/classes/El4r/ELVariables.src/M000053.html
170
+ - doc/classes/El4r/ELSequence.src/M000040.html
171
+ - doc/classes/El4r/ELSequence.src/M000041.html
172
+ - doc/classes/El4r/ELSequence.src/M000042.html
173
+ - doc/classes/El4r/ELSequence.src/M000043.html
174
+ - doc/classes/El4r/ELSequence.src/M000044.html
175
+ - doc/classes/El4r/ELSequence.src/M000045.html
176
+ - doc/classes/El4r/ELSequence.src/M000048.html
177
+ - doc/classes/El4r/ELSequence.src/M000049.html
178
+ - doc/classes/El4r/ELSequence.src/M000050.html
179
+ - doc/classes/El4r/ELSequence.src/M000051.html
180
+ - doc/classes/El4r/ELSequence.src/M000052.html
181
+ - doc/classes/El4r/ELSequence.src/M000053.html
182
+ - doc/classes/El4r/ELSequence.src/M000054.html
183
+ - doc/classes/El4r/ELSequence.src/M000055.html
184
+ - doc/classes/El4r/ELSequence.src/M000056.html
185
+ - doc/classes/El4r/ELSequence.src/M000057.html
186
+ - doc/classes/El4r/ELSequence.src/M000058.html
187
+ - doc/classes/El4r/ELInstance.src/M000046.html
188
+ - doc/classes/El4r/ELInstance.src/M000047.html
189
+ - doc/classes/El4r/ELInstance.src/M000048.html
190
+ - doc/classes/El4r/ELInstance.src/M000049.html
191
+ - doc/classes/El4r/ELInstance.src/M000050.html
192
+ - doc/classes/El4r/ELInstance.src/M000051.html
193
+ - doc/classes/El4r/ELInstance.src/M000052.html
194
+ - doc/classes/El4r/ELInstance.src/M000053.html
195
+ - doc/classes/El4r/ELInstance.src/M000054.html
196
+ - doc/classes/El4r/ELInstance.src/M000055.html
197
+ - doc/classes/El4r/ELInstance.src/M000056.html
198
+ - doc/classes/El4r/ELInstance.src/M000057.html
199
+ - doc/classes/El4r/ELInstance.src/M000058.html
200
+ - doc/classes/El4r/ELInstance.src/M000059.html
201
+ - doc/classes/El4r/ELInstance.src/M000060.html
202
+ - doc/classes/El4r/ELInstance.src/M000061.html
203
+ - doc/classes/El4r/ELInstance.src/M000062.html
204
+ - doc/classes/El4r/ELInstance.src/M000063.html
205
+ - doc/classes/El4r/ELInstance.src/M000064.html
206
+ - doc/classes/El4r/ELInstance.src/M000065.html
207
+ - doc/classes/El4r/ELInstance.src/M000066.html
208
+ - doc/classes/El4r/ELInstance.src/M000067.html
209
+ - doc/classes/El4r/ELInstance.src/M000068.html
210
+ - doc/classes/El4r/ELInstance.src/M000069.html
211
+ - doc/classes/El4r/ELInstance.src/M000070.html
212
+ - doc/classes/El4r/ELInstance.src/M000071.html
213
+ - doc/classes/El4r/ELInstance.src/M000072.html
214
+ - doc/classes/El4r/ELInstance.src/M000073.html
215
+ - doc/classes/El4r/ELInstance.src/M000074.html
216
+ - doc/classes/El4r/ELInstance.src/M000075.html
217
+ - doc/classes/El4r/ELInstance.src/M000076.html
218
+ - doc/classes/El4r/ELInstance.src/M000077.html
219
+ - doc/classes/El4r/ELInstance.src/M000078.html
220
+ - doc/classes/El4r/ELInstance.src/M000079.html
221
+ - doc/classes/El4r/ELInstance.src/M000080.html
222
+ - doc/classes/El4r/ELInstance.src/M000081.html
223
+ - doc/classes/El4r/ELInstance.src/M000082.html
224
+ - doc/classes/El4r/ELInstance.src/M000083.html
225
+ - doc/classes/El4r/ELInstance.src/M000084.html
226
+ - doc/classes/El4r/ELInstance.src/M000085.html
227
+ - doc/classes/El4r/ELInstance.src/M000086.html
228
+ - doc/classes/El4r/ELInstance.src/M000087.html
229
+ - doc/classes/El4r/ELInstance.src/M000088.html
230
+ - doc/classes/El4r/ELInstance.src/M000089.html
231
+ - doc/classes/El4r/ELInstance.src/M000090.html
232
+ - doc/classes/El4r/ELInstance.src/M000091.html
233
+ - doc/classes/El4r/ELInstance.src/M000092.html
234
+ - doc/classes/El4r/ELInstance.src/M000093.html
235
+ - doc/classes/El4r/ELObject.src/M000078.html
236
+ - doc/classes/El4r/ELObject.src/M000079.html
237
+ - doc/classes/El4r/ELObject.src/M000080.html
238
+ - doc/classes/El4r/ELObject.src/M000081.html
239
+ - doc/classes/El4r/ELObject.src/M000083.html
240
+ - doc/classes/El4r/ELObject.src/M000084.html
241
+ - doc/classes/El4r/ELObject.src/M000082.html
242
+ - doc/classes/El4r/ELObject.src/M000085.html
243
+ - doc/classes/El4r/ELObject.src/M000086.html
244
+ - doc/classes/El4r/ELObject.src/M000087.html
245
+ - doc/classes/El4r/ELObject.src/M000088.html
246
+ - doc/classes/El4r/ELObject.src/M000090.html
247
+ - doc/classes/El4r/ELObject.src/M000091.html
248
+ - doc/classes/El4r/ELObject.src/M000092.html
249
+ - doc/classes/El4r/ELObject.src/M000093.html
250
+ - doc/classes/El4r/ELObject.src/M000095.html
251
+ - doc/classes/El4r/ELObject.src/M000096.html
252
+ - doc/classes/El4r/ELObject.src/M000094.html
253
+ - doc/classes/El4r/ELObject.src/M000097.html
254
+ - doc/classes/El4r/ELObject.src/M000098.html
255
+ - doc/classes/El4r/ELObject.src/M000099.html
256
+ - doc/classes/El4r/ELObject.src/M000100.html
257
+ - doc/classes/El4r/ELObject.src/M000102.html
258
+ - doc/classes/El4r/ELObject.src/M000103.html
259
+ - doc/classes/El4r/El4rOutput.src/M000080.html
260
+ - doc/classes/El4r/El4rOutput.src/M000081.html
261
+ - doc/classes/El4r/El4rOutput.src/M000088.html
262
+ - doc/classes/El4r/El4rOutput.src/M000089.html
263
+ - doc/classes/El4r/El4rOutput.src/M000090.html
264
+ - doc/classes/El4r/El4rOutput.src/M000091.html
265
+ - doc/classes/El4r/El4rOutput.src/M000092.html
266
+ - doc/classes/El4r/El4rOutput.src/M000094.html
267
+ - doc/classes/El4r/El4rOutput.src/M000095.html
268
+ - doc/classes/El4r/El4rOutput.src/M000096.html
269
+ - doc/classes/El4r/ELConsCell.src/M000044.html
270
+ - doc/classes/El4r/ELConsCell.src/M000046.html
271
+ - doc/classes/El4r/ELConsCell.src/M000050.html
272
+ - doc/classes/ElApp.src/M000001.html
273
+ - doc/classes/ElApp.src/M000002.html
274
+ - doc/classes/ElApp.src/M000003.html
275
+ - doc/classes/ElApp.src/M000004.html
276
+ - doc/classes/El4rAccessor.src/M000005.html
277
+ - el4r.en.html
278
+ - el4r.ja.html
279
+ - files
280
+ - lib/el4r/el4r-sub.rb
281
+ - lib/el4r/emacsruby/autoload/70el4r-mode.rb
282
+ - lib/el4r/emacsruby/el4r-mode.rb
283
+ - lib/el4r/emacsruby/stdlib.rb
284
+ - lib/el4r/exec-el4r.rb
285
+ - man/el4r.1
286
+ - setup.rb
287
+ - testing/alltest.rb
288
+ - testing/badcase.rb
289
+ - testing/el4r.e
290
+ - testing/euc.txt
291
+ - testing/jis.txt
292
+ - testing/sjis.txt
293
+ - testing/test-el4r.rb
294
+ - testing/test-gc.rb
295
+ - testing/test.el
296
+ - testing/test.rb
297
+ - testing/utf8.txt
298
+ test_files: []
299
+
300
+ rdoc_options: []
301
+
302
+ extra_rdoc_files: []
303
+
304
+ executables: []
305
+
306
+ extensions: []
307
+
308
+ requirements:
309
+ - none
310
+ dependencies: []
311
+