tcc 0.1.0

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 (283) hide show
  1. checksums.yaml +7 -0
  2. data/LICENSE +35 -0
  3. data/README.md +196 -0
  4. data/ext/tcc/extconf.rb +25 -0
  5. data/ext/tcc/tcc-0.9.26.patch +30 -0
  6. data/ext/tcc/tcc-0.9.26/COPYING +504 -0
  7. data/ext/tcc/tcc-0.9.26/Changelog +396 -0
  8. data/ext/tcc/tcc-0.9.26/Makefile +349 -0
  9. data/ext/tcc/tcc-0.9.26/README +101 -0
  10. data/ext/tcc/tcc-0.9.26/TODO +93 -0
  11. data/ext/tcc/tcc-0.9.26/VERSION +1 -0
  12. data/ext/tcc/tcc-0.9.26/arm-gen.c +2005 -0
  13. data/ext/tcc/tcc-0.9.26/c67-gen.c +2560 -0
  14. data/ext/tcc/tcc-0.9.26/coff.h +446 -0
  15. data/ext/tcc/tcc-0.9.26/config.h +8 -0
  16. data/ext/tcc/tcc-0.9.26/config.mak +28 -0
  17. data/ext/tcc/tcc-0.9.26/config.texi +1 -0
  18. data/ext/tcc/tcc-0.9.26/configure +540 -0
  19. data/ext/tcc/tcc-0.9.26/conftest.c +71 -0
  20. data/ext/tcc/tcc-0.9.26/elf.h +1731 -0
  21. data/ext/tcc/tcc-0.9.26/examples/ex1.c +8 -0
  22. data/ext/tcc/tcc-0.9.26/examples/ex2.c +98 -0
  23. data/ext/tcc/tcc-0.9.26/examples/ex3.c +24 -0
  24. data/ext/tcc/tcc-0.9.26/examples/ex4.c +26 -0
  25. data/ext/tcc/tcc-0.9.26/examples/ex5.c +8 -0
  26. data/ext/tcc/tcc-0.9.26/i386-asm.c +1498 -0
  27. data/ext/tcc/tcc-0.9.26/i386-asm.h +473 -0
  28. data/ext/tcc/tcc-0.9.26/i386-gen.c +1096 -0
  29. data/ext/tcc/tcc-0.9.26/i386-tok.h +243 -0
  30. data/ext/tcc/tcc-0.9.26/il-gen.c +667 -0
  31. data/ext/tcc/tcc-0.9.26/il-opcodes.h +251 -0
  32. data/ext/tcc/tcc-0.9.26/include/float.h +57 -0
  33. data/ext/tcc/tcc-0.9.26/include/stdarg.h +41 -0
  34. data/ext/tcc/tcc-0.9.26/include/stdbool.h +10 -0
  35. data/ext/tcc/tcc-0.9.26/include/stddef.h +28 -0
  36. data/ext/tcc/tcc-0.9.26/include/tcclib.h +78 -0
  37. data/ext/tcc/tcc-0.9.26/include/varargs.h +12 -0
  38. data/ext/tcc/tcc-0.9.26/lib/Makefile +102 -0
  39. data/ext/tcc/tcc-0.9.26/lib/alloca86-bt.S +47 -0
  40. data/ext/tcc/tcc-0.9.26/lib/alloca86.S +35 -0
  41. data/ext/tcc/tcc-0.9.26/lib/alloca86_64.S +42 -0
  42. data/ext/tcc/tcc-0.9.26/lib/bcheck.c +875 -0
  43. data/ext/tcc/tcc-0.9.26/lib/libtcc1.c +691 -0
  44. data/ext/tcc/tcc-0.9.26/libtcc.c +1941 -0
  45. data/ext/tcc/tcc-0.9.26/libtcc.h +103 -0
  46. data/ext/tcc/tcc-0.9.26/stab.def +234 -0
  47. data/ext/tcc/tcc-0.9.26/stab.h +17 -0
  48. data/ext/tcc/tcc-0.9.26/tcc-doc.html +2332 -0
  49. data/ext/tcc/tcc-0.9.26/tcc-doc.info +1151 -0
  50. data/ext/tcc/tcc-0.9.26/tcc-doc.texi +1268 -0
  51. data/ext/tcc/tcc-0.9.26/tcc.1 +415 -0
  52. data/ext/tcc/tcc-0.9.26/tcc.c +352 -0
  53. data/ext/tcc/tcc-0.9.26/tcc.h +1379 -0
  54. data/ext/tcc/tcc-0.9.26/tccasm.c +1118 -0
  55. data/ext/tcc/tcc-0.9.26/tcccoff.c +948 -0
  56. data/ext/tcc/tcc-0.9.26/tccelf.c +3129 -0
  57. data/ext/tcc/tcc-0.9.26/tccgen.c +5841 -0
  58. data/ext/tcc/tcc-0.9.26/tccpe.c +1887 -0
  59. data/ext/tcc/tcc-0.9.26/tccpp.c +3128 -0
  60. data/ext/tcc/tcc-0.9.26/tccrun.c +737 -0
  61. data/ext/tcc/tcc-0.9.26/tcctok.h +278 -0
  62. data/ext/tcc/tcc-0.9.26/tests/Makefile +199 -0
  63. data/ext/tcc/tcc-0.9.26/tests/asmtest.S +609 -0
  64. data/ext/tcc/tcc-0.9.26/tests/boundtest.c +233 -0
  65. data/ext/tcc/tcc-0.9.26/tests/gcctestsuite.sh +33 -0
  66. data/ext/tcc/tcc-0.9.26/tests/libtcc_test.c +76 -0
  67. data/ext/tcc/tcc-0.9.26/tests/tcctest.c +2713 -0
  68. data/ext/tcc/tcc-0.9.26/tests/tests2/00_assignment.c +18 -0
  69. data/ext/tcc/tcc-0.9.26/tests/tests2/00_assignment.expect +3 -0
  70. data/ext/tcc/tcc-0.9.26/tests/tests2/01_comment.c +14 -0
  71. data/ext/tcc/tcc-0.9.26/tests/tests2/01_comment.expect +5 -0
  72. data/ext/tcc/tcc-0.9.26/tests/tests2/02_printf.c +18 -0
  73. data/ext/tcc/tcc-0.9.26/tests/tests2/02_printf.expect +15 -0
  74. data/ext/tcc/tcc-0.9.26/tests/tests2/03_struct.c +31 -0
  75. data/ext/tcc/tcc-0.9.26/tests/tests2/03_struct.expect +6 -0
  76. data/ext/tcc/tcc-0.9.26/tests/tests2/04_for.c +15 -0
  77. data/ext/tcc/tcc-0.9.26/tests/tests2/04_for.expect +10 -0
  78. data/ext/tcc/tcc-0.9.26/tests/tests2/05_array.c +21 -0
  79. data/ext/tcc/tcc-0.9.26/tests/tests2/05_array.expect +10 -0
  80. data/ext/tcc/tcc-0.9.26/tests/tests2/06_case.c +29 -0
  81. data/ext/tcc/tcc-0.9.26/tests/tests2/06_case.expect +8 -0
  82. data/ext/tcc/tcc-0.9.26/tests/tests2/07_function.c +30 -0
  83. data/ext/tcc/tcc-0.9.26/tests/tests2/07_function.expect +4 -0
  84. data/ext/tcc/tcc-0.9.26/tests/tests2/08_while.c +24 -0
  85. data/ext/tcc/tcc-0.9.26/tests/tests2/08_while.expect +11 -0
  86. data/ext/tcc/tcc-0.9.26/tests/tests2/09_do_while.c +24 -0
  87. data/ext/tcc/tcc-0.9.26/tests/tests2/09_do_while.expect +11 -0
  88. data/ext/tcc/tcc-0.9.26/tests/tests2/10_pointer.c +40 -0
  89. data/ext/tcc/tcc-0.9.26/tests/tests2/10_pointer.expect +8 -0
  90. data/ext/tcc/tcc-0.9.26/tests/tests2/11_precedence.c +40 -0
  91. data/ext/tcc/tcc-0.9.26/tests/tests2/11_precedence.expect +15 -0
  92. data/ext/tcc/tcc-0.9.26/tests/tests2/12_hashdefine.c +14 -0
  93. data/ext/tcc/tcc-0.9.26/tests/tests2/12_hashdefine.expect +2 -0
  94. data/ext/tcc/tcc-0.9.26/tests/tests2/13_integer_literals.c +20 -0
  95. data/ext/tcc/tcc-0.9.26/tests/tests2/13_integer_literals.expect +5 -0
  96. data/ext/tcc/tcc-0.9.26/tests/tests2/14_if.c +21 -0
  97. data/ext/tcc/tcc-0.9.26/tests/tests2/14_if.expect +2 -0
  98. data/ext/tcc/tcc-0.9.26/tests/tests2/15_recursion.c +21 -0
  99. data/ext/tcc/tcc-0.9.26/tests/tests2/15_recursion.expect +10 -0
  100. data/ext/tcc/tcc-0.9.26/tests/tests2/16_nesting.c +21 -0
  101. data/ext/tcc/tcc-0.9.26/tests/tests2/16_nesting.expect +18 -0
  102. data/ext/tcc/tcc-0.9.26/tests/tests2/17_enum.c +29 -0
  103. data/ext/tcc/tcc-0.9.26/tests/tests2/17_enum.expect +3 -0
  104. data/ext/tcc/tcc-0.9.26/tests/tests2/18_include.c +12 -0
  105. data/ext/tcc/tcc-0.9.26/tests/tests2/18_include.expect +3 -0
  106. data/ext/tcc/tcc-0.9.26/tests/tests2/18_include.h +1 -0
  107. data/ext/tcc/tcc-0.9.26/tests/tests2/19_pointer_arithmetic.c +28 -0
  108. data/ext/tcc/tcc-0.9.26/tests/tests2/19_pointer_arithmetic.expect +3 -0
  109. data/ext/tcc/tcc-0.9.26/tests/tests2/20_pointer_comparison.c +24 -0
  110. data/ext/tcc/tcc-0.9.26/tests/tests2/20_pointer_comparison.expect +6 -0
  111. data/ext/tcc/tcc-0.9.26/tests/tests2/21_char_array.c +33 -0
  112. data/ext/tcc/tcc-0.9.26/tests/tests2/21_char_array.expect +7 -0
  113. data/ext/tcc/tcc-0.9.26/tests/tests2/22_floating_point.c +50 -0
  114. data/ext/tcc/tcc-0.9.26/tests/tests2/22_floating_point.expect +16 -0
  115. data/ext/tcc/tcc-0.9.26/tests/tests2/23_type_coercion.c +54 -0
  116. data/ext/tcc/tcc-0.9.26/tests/tests2/23_type_coercion.expect +12 -0
  117. data/ext/tcc/tcc-0.9.26/tests/tests2/24_math_library.c +28 -0
  118. data/ext/tcc/tcc-0.9.26/tests/tests2/24_math_library.expect +18 -0
  119. data/ext/tcc/tcc-0.9.26/tests/tests2/25_quicksort.c +83 -0
  120. data/ext/tcc/tcc-0.9.26/tests/tests2/25_quicksort.expect +2 -0
  121. data/ext/tcc/tcc-0.9.26/tests/tests2/26_character_constants.c +17 -0
  122. data/ext/tcc/tcc-0.9.26/tests/tests2/26_character_constants.expect +8 -0
  123. data/ext/tcc/tcc-0.9.26/tests/tests2/27_sizeof.c +16 -0
  124. data/ext/tcc/tcc-0.9.26/tests/tests2/27_sizeof.expect +3 -0
  125. data/ext/tcc/tcc-0.9.26/tests/tests2/28_strings.c +46 -0
  126. data/ext/tcc/tcc-0.9.26/tests/tests2/28_strings.expect +19 -0
  127. data/ext/tcc/tcc-0.9.26/tests/tests2/29_array_address.c +13 -0
  128. data/ext/tcc/tcc-0.9.26/tests/tests2/29_array_address.expect +1 -0
  129. data/ext/tcc/tcc-0.9.26/tests/tests2/30_hanoi.c +122 -0
  130. data/ext/tcc/tcc-0.9.26/tests/tests2/30_hanoi.expect +71 -0
  131. data/ext/tcc/tcc-0.9.26/tests/tests2/31_args.c +14 -0
  132. data/ext/tcc/tcc-0.9.26/tests/tests2/31_args.expect +7 -0
  133. data/ext/tcc/tcc-0.9.26/tests/tests2/32_led.c +266 -0
  134. data/ext/tcc/tcc-0.9.26/tests/tests2/32_led.expect +4 -0
  135. data/ext/tcc/tcc-0.9.26/tests/tests2/33_ternary_op.c +15 -0
  136. data/ext/tcc/tcc-0.9.26/tests/tests2/33_ternary_op.expect +10 -0
  137. data/ext/tcc/tcc-0.9.26/tests/tests2/34_array_assignment.c +23 -0
  138. data/ext/tcc/tcc-0.9.26/tests/tests2/34_array_assignment.expect +2 -0
  139. data/ext/tcc/tcc-0.9.26/tests/tests2/35_sizeof.c +14 -0
  140. data/ext/tcc/tcc-0.9.26/tests/tests2/35_sizeof.expect +2 -0
  141. data/ext/tcc/tcc-0.9.26/tests/tests2/36_array_initialisers.c +21 -0
  142. data/ext/tcc/tcc-0.9.26/tests/tests2/36_array_initialisers.expect +20 -0
  143. data/ext/tcc/tcc-0.9.26/tests/tests2/37_sprintf.c +17 -0
  144. data/ext/tcc/tcc-0.9.26/tests/tests2/37_sprintf.expect +20 -0
  145. data/ext/tcc/tcc-0.9.26/tests/tests2/38_multiple_array_index.c +32 -0
  146. data/ext/tcc/tcc-0.9.26/tests/tests2/38_multiple_array_index.expect +4 -0
  147. data/ext/tcc/tcc-0.9.26/tests/tests2/39_typedef.c +31 -0
  148. data/ext/tcc/tcc-0.9.26/tests/tests2/39_typedef.expect +3 -0
  149. data/ext/tcc/tcc-0.9.26/tests/tests2/40_stdio.c +52 -0
  150. data/ext/tcc/tcc-0.9.26/tests/tests2/40_stdio.expect +27 -0
  151. data/ext/tcc/tcc-0.9.26/tests/tests2/41_hashif.c +85 -0
  152. data/ext/tcc/tcc-0.9.26/tests/tests2/41_hashif.expect +6 -0
  153. data/ext/tcc/tcc-0.9.26/tests/tests2/42_function_pointer.c +18 -0
  154. data/ext/tcc/tcc-0.9.26/tests/tests2/42_function_pointer.expect +2 -0
  155. data/ext/tcc/tcc-0.9.26/tests/tests2/43_void_param.c +15 -0
  156. data/ext/tcc/tcc-0.9.26/tests/tests2/43_void_param.expect +1 -0
  157. data/ext/tcc/tcc-0.9.26/tests/tests2/44_scoped_declarations.c +17 -0
  158. data/ext/tcc/tcc-0.9.26/tests/tests2/44_scoped_declarations.expect +1 -0
  159. data/ext/tcc/tcc-0.9.26/tests/tests2/45_empty_for.c +18 -0
  160. data/ext/tcc/tcc-0.9.26/tests/tests2/45_empty_for.expect +10 -0
  161. data/ext/tcc/tcc-0.9.26/tests/tests2/46_grep.c +564 -0
  162. data/ext/tcc/tcc-0.9.26/tests/tests2/47_switch_return.c +24 -0
  163. data/ext/tcc/tcc-0.9.26/tests/tests2/47_switch_return.expect +4 -0
  164. data/ext/tcc/tcc-0.9.26/tests/tests2/48_nested_break.c +26 -0
  165. data/ext/tcc/tcc-0.9.26/tests/tests2/48_nested_break.expect +1 -0
  166. data/ext/tcc/tcc-0.9.26/tests/tests2/49_bracket_evaluation.c +23 -0
  167. data/ext/tcc/tcc-0.9.26/tests/tests2/49_bracket_evaluation.expect +1 -0
  168. data/ext/tcc/tcc-0.9.26/tests/tests2/50_logical_second_arg.c +29 -0
  169. data/ext/tcc/tcc-0.9.26/tests/tests2/50_logical_second_arg.expect +20 -0
  170. data/ext/tcc/tcc-0.9.26/tests/tests2/51_static.c +30 -0
  171. data/ext/tcc/tcc-0.9.26/tests/tests2/51_static.expect +8 -0
  172. data/ext/tcc/tcc-0.9.26/tests/tests2/52_unnamed_enum.c +27 -0
  173. data/ext/tcc/tcc-0.9.26/tests/tests2/52_unnamed_enum.expect +9 -0
  174. data/ext/tcc/tcc-0.9.26/tests/tests2/54_goto.c +56 -0
  175. data/ext/tcc/tcc-0.9.26/tests/tests2/54_goto.expect +8 -0
  176. data/ext/tcc/tcc-0.9.26/tests/tests2/55_lshift_type.c +52 -0
  177. data/ext/tcc/tcc-0.9.26/tests/tests2/55_lshift_type.expect +1 -0
  178. data/ext/tcc/tcc-0.9.26/tests/tests2/LICENSE +37 -0
  179. data/ext/tcc/tcc-0.9.26/tests/tests2/Makefile +98 -0
  180. data/ext/tcc/tcc-0.9.26/texi2pod.pl +427 -0
  181. data/ext/tcc/tcc-0.9.26/win32/build-tcc.bat +60 -0
  182. data/ext/tcc/tcc-0.9.26/win32/examples/dll.c +12 -0
  183. data/ext/tcc/tcc-0.9.26/win32/examples/fib.c +23 -0
  184. data/ext/tcc/tcc-0.9.26/win32/examples/hello_dll.c +19 -0
  185. data/ext/tcc/tcc-0.9.26/win32/examples/hello_win.c +163 -0
  186. data/ext/tcc/tcc-0.9.26/win32/include/_mingw.h +139 -0
  187. data/ext/tcc/tcc-0.9.26/win32/include/assert.h +54 -0
  188. data/ext/tcc/tcc-0.9.26/win32/include/conio.h +409 -0
  189. data/ext/tcc/tcc-0.9.26/win32/include/ctype.h +281 -0
  190. data/ext/tcc/tcc-0.9.26/win32/include/dir.h +31 -0
  191. data/ext/tcc/tcc-0.9.26/win32/include/direct.h +68 -0
  192. data/ext/tcc/tcc-0.9.26/win32/include/dirent.h +135 -0
  193. data/ext/tcc/tcc-0.9.26/win32/include/dos.h +55 -0
  194. data/ext/tcc/tcc-0.9.26/win32/include/errno.h +75 -0
  195. data/ext/tcc/tcc-0.9.26/win32/include/excpt.h +123 -0
  196. data/ext/tcc/tcc-0.9.26/win32/include/fcntl.h +52 -0
  197. data/ext/tcc/tcc-0.9.26/win32/include/fenv.h +108 -0
  198. data/ext/tcc/tcc-0.9.26/win32/include/inttypes.h +297 -0
  199. data/ext/tcc/tcc-0.9.26/win32/include/io.h +418 -0
  200. data/ext/tcc/tcc-0.9.26/win32/include/limits.h +111 -0
  201. data/ext/tcc/tcc-0.9.26/win32/include/locale.h +91 -0
  202. data/ext/tcc/tcc-0.9.26/win32/include/malloc.h +175 -0
  203. data/ext/tcc/tcc-0.9.26/win32/include/math.h +777 -0
  204. data/ext/tcc/tcc-0.9.26/win32/include/mem.h +13 -0
  205. data/ext/tcc/tcc-0.9.26/win32/include/memory.h +40 -0
  206. data/ext/tcc/tcc-0.9.26/win32/include/process.h +176 -0
  207. data/ext/tcc/tcc-0.9.26/win32/include/sec_api/conio_s.h +42 -0
  208. data/ext/tcc/tcc-0.9.26/win32/include/sec_api/crtdbg_s.h +19 -0
  209. data/ext/tcc/tcc-0.9.26/win32/include/sec_api/io_s.h +33 -0
  210. data/ext/tcc/tcc-0.9.26/win32/include/sec_api/mbstring_s.h +52 -0
  211. data/ext/tcc/tcc-0.9.26/win32/include/sec_api/search_s.h +25 -0
  212. data/ext/tcc/tcc-0.9.26/win32/include/sec_api/stdio_s.h +145 -0
  213. data/ext/tcc/tcc-0.9.26/win32/include/sec_api/stdlib_s.h +67 -0
  214. data/ext/tcc/tcc-0.9.26/win32/include/sec_api/stralign_s.h +30 -0
  215. data/ext/tcc/tcc-0.9.26/win32/include/sec_api/string_s.h +41 -0
  216. data/ext/tcc/tcc-0.9.26/win32/include/sec_api/sys/timeb_s.h +34 -0
  217. data/ext/tcc/tcc-0.9.26/win32/include/sec_api/tchar_s.h +266 -0
  218. data/ext/tcc/tcc-0.9.26/win32/include/sec_api/time_s.h +61 -0
  219. data/ext/tcc/tcc-0.9.26/win32/include/sec_api/wchar_s.h +128 -0
  220. data/ext/tcc/tcc-0.9.26/win32/include/setjmp.h +160 -0
  221. data/ext/tcc/tcc-0.9.26/win32/include/share.h +28 -0
  222. data/ext/tcc/tcc-0.9.26/win32/include/signal.h +63 -0
  223. data/ext/tcc/tcc-0.9.26/win32/include/stdint.h +209 -0
  224. data/ext/tcc/tcc-0.9.26/win32/include/stdio.h +429 -0
  225. data/ext/tcc/tcc-0.9.26/win32/include/stdlib.h +580 -0
  226. data/ext/tcc/tcc-0.9.26/win32/include/string.h +164 -0
  227. data/ext/tcc/tcc-0.9.26/win32/include/sys/fcntl.h +13 -0
  228. data/ext/tcc/tcc-0.9.26/win32/include/sys/file.h +14 -0
  229. data/ext/tcc/tcc-0.9.26/win32/include/sys/locking.h +30 -0
  230. data/ext/tcc/tcc-0.9.26/win32/include/sys/stat.h +290 -0
  231. data/ext/tcc/tcc-0.9.26/win32/include/sys/time.h +69 -0
  232. data/ext/tcc/tcc-0.9.26/win32/include/sys/timeb.h +133 -0
  233. data/ext/tcc/tcc-0.9.26/win32/include/sys/types.h +118 -0
  234. data/ext/tcc/tcc-0.9.26/win32/include/sys/unistd.h +14 -0
  235. data/ext/tcc/tcc-0.9.26/win32/include/sys/utime.h +146 -0
  236. data/ext/tcc/tcc-0.9.26/win32/include/tchar.h +1102 -0
  237. data/ext/tcc/tcc-0.9.26/win32/include/time.h +287 -0
  238. data/ext/tcc/tcc-0.9.26/win32/include/vadefs.h +11 -0
  239. data/ext/tcc/tcc-0.9.26/win32/include/values.h +4 -0
  240. data/ext/tcc/tcc-0.9.26/win32/include/wchar.h +871 -0
  241. data/ext/tcc/tcc-0.9.26/win32/include/wctype.h +172 -0
  242. data/ext/tcc/tcc-0.9.26/win32/include/winapi/basetsd.h +149 -0
  243. data/ext/tcc/tcc-0.9.26/win32/include/winapi/basetyps.h +85 -0
  244. data/ext/tcc/tcc-0.9.26/win32/include/winapi/guiddef.h +151 -0
  245. data/ext/tcc/tcc-0.9.26/win32/include/winapi/intrin.h +11 -0
  246. data/ext/tcc/tcc-0.9.26/win32/include/winapi/poppack.h +8 -0
  247. data/ext/tcc/tcc-0.9.26/win32/include/winapi/pshpack1.h +8 -0
  248. data/ext/tcc/tcc-0.9.26/win32/include/winapi/pshpack2.h +8 -0
  249. data/ext/tcc/tcc-0.9.26/win32/include/winapi/pshpack4.h +8 -0
  250. data/ext/tcc/tcc-0.9.26/win32/include/winapi/pshpack8.h +8 -0
  251. data/ext/tcc/tcc-0.9.26/win32/include/winapi/reason.h +80 -0
  252. data/ext/tcc/tcc-0.9.26/win32/include/winapi/specstrings.h +7 -0
  253. data/ext/tcc/tcc-0.9.26/win32/include/winapi/stralign.h +154 -0
  254. data/ext/tcc/tcc-0.9.26/win32/include/winapi/tvout.h +79 -0
  255. data/ext/tcc/tcc-0.9.26/win32/include/winapi/winbase.h +2951 -0
  256. data/ext/tcc/tcc-0.9.26/win32/include/winapi/wincon.h +301 -0
  257. data/ext/tcc/tcc-0.9.26/win32/include/winapi/windef.h +293 -0
  258. data/ext/tcc/tcc-0.9.26/win32/include/winapi/windows.h +123 -0
  259. data/ext/tcc/tcc-0.9.26/win32/include/winapi/winerror.h +3166 -0
  260. data/ext/tcc/tcc-0.9.26/win32/include/winapi/wingdi.h +4080 -0
  261. data/ext/tcc/tcc-0.9.26/win32/include/winapi/winnetwk.h +476 -0
  262. data/ext/tcc/tcc-0.9.26/win32/include/winapi/winnls.h +765 -0
  263. data/ext/tcc/tcc-0.9.26/win32/include/winapi/winnt.h +5770 -0
  264. data/ext/tcc/tcc-0.9.26/win32/include/winapi/winreg.h +272 -0
  265. data/ext/tcc/tcc-0.9.26/win32/include/winapi/winuser.h +5651 -0
  266. data/ext/tcc/tcc-0.9.26/win32/include/winapi/winver.h +160 -0
  267. data/ext/tcc/tcc-0.9.26/win32/lib/chkstk.S +191 -0
  268. data/ext/tcc/tcc-0.9.26/win32/lib/crt1.c +34 -0
  269. data/ext/tcc/tcc-0.9.26/win32/lib/dllcrt1.c +13 -0
  270. data/ext/tcc/tcc-0.9.26/win32/lib/dllmain.c +9 -0
  271. data/ext/tcc/tcc-0.9.26/win32/lib/gdi32.def +337 -0
  272. data/ext/tcc/tcc-0.9.26/win32/lib/kernel32.def +765 -0
  273. data/ext/tcc/tcc-0.9.26/win32/lib/msvcrt.def +1399 -0
  274. data/ext/tcc/tcc-0.9.26/win32/lib/user32.def +654 -0
  275. data/ext/tcc/tcc-0.9.26/win32/lib/wincrt1.c +64 -0
  276. data/ext/tcc/tcc-0.9.26/win32/tcc-win32.txt +156 -0
  277. data/ext/tcc/tcc-0.9.26/win32/tools/tiny_impdef.c +243 -0
  278. data/ext/tcc/tcc-0.9.26/win32/tools/tiny_libmaker.c +258 -0
  279. data/ext/tcc/tcc-0.9.26/x86_64-asm.h +448 -0
  280. data/ext/tcc/tcc-0.9.26/x86_64-gen.c +1701 -0
  281. data/lib/tcc.rb +291 -0
  282. data/tcc.gemspec +15 -0
  283. metadata +343 -0
data/lib/tcc.rb ADDED
@@ -0,0 +1,291 @@
1
+ # Modified based on the version generated by ffi-gen.
2
+
3
+ require 'ffi'
4
+
5
+ module TCC
6
+ extend FFI::Library
7
+
8
+ # Find libtcc.so
9
+ lib_paths = [File.join(File.dirname(caller[0]), '../ext/tcc/build/lib'), '/usr/lib', '/usr/local/lib']
10
+ libtcc_path = lib_paths.product(%w(libtcc.so libtcc1.so)).map {|*names| File.join(*names)}.find {|path| File.exists?(path)}
11
+ raise "Can not find libtcc.so" unless libtcc_path
12
+ ffi_lib libtcc_path
13
+
14
+ OUTPUT_MEMORY = 0
15
+ OUTPUT_EXE = 1
16
+ OUTPUT_DLL = 2
17
+ OUTPUT_OBJ = 3
18
+ OUTPUT_PREPROCESS = 4
19
+
20
+ class Error < RuntimeError; end
21
+
22
+ # High-level, OO-style TCCState. Example:
23
+ #
24
+ # state = TCC::State.new
25
+ # state.compile_string(code)
26
+ # state.run
27
+ # state.destroy
28
+ #
29
+ # Equivalent plain libtcc code:
30
+ #
31
+ # state = TCC::new
32
+ # TCC.compile_string(state, code)
33
+ # TCC.run(state)
34
+ # TCC.delete(state)
35
+ class State
36
+ DEFAULT_ERROR_CALLBACK = FFI::Function.new(:void, [:pointer, :string], proc {|_, msg| raise TCC::Error, msg})
37
+
38
+ def initialize(output_type = TCC::OUTPUT_MEMORY)
39
+ @state = TCC.send :new
40
+ set_output_type output_type
41
+ set_error_func(nil, DEFAULT_ERROR_CALLBACK)
42
+ ObjectSpace.define_finalizer(self, proc { TCC.delete(@state) unless @state.nil? })
43
+ end
44
+
45
+ def compile(code)
46
+ compile_string(code)
47
+ end
48
+
49
+ def destroy
50
+ TCC.delete @state
51
+ @state = nil
52
+ end
53
+
54
+ def get_function(name, param_types = [], return_type = :void)
55
+ FFI::Function.new(return_type, param_types, get_symbol(name))
56
+ end
57
+
58
+ def relocate
59
+ relocate_auto
60
+ self
61
+ end
62
+
63
+ private
64
+
65
+ def self.delegate_to_libtcc(name)
66
+ define_method(name) do |*params|
67
+ raise TCC::Error, 'Cannot reuse a destroyed TCC::State' unless @state
68
+ # Normalize argv for 'run' method
69
+ params = State::normalize_argv(params) if name == :run
70
+ result = TCC.send name, @state, *params
71
+ # Return self sometimes to make chainning possible
72
+ %w(add compile define set undefine).include?(name.to_s.split('_', 2)[0]) ? self : result
73
+ end
74
+ end
75
+
76
+ def self.normalize_argv(argv)
77
+ return [0, nil] if argv.nil? || argv == []
78
+ argv = argv[0] while argv.is_a?(Array) && argv.size == 1
79
+ if argv.is_a?(Array) && argv.all? {|s| s.is_a?(String)}
80
+ # Convert [String] to FFI::MemoryPointer
81
+ pointer = FFI::MemoryPointer.new(:pointer, argv.size)
82
+ pointer.write_array_of_pointer(argv.map {|arg| FFI::MemoryPointer.from_string(arg.to_s)})
83
+ [argv.size, pointer]
84
+ else
85
+ # Leave it as-is
86
+ argv
87
+ end
88
+ end
89
+ end
90
+
91
+ class RawTCCState < FFI::Struct
92
+ layout :dummy, :char
93
+ end
94
+
95
+ def self.attach_function(name, symbol, param_types, *_)
96
+ begin
97
+ super
98
+ return if param_types.first != RawTCCState || [:delegate, :relocate].include?(name)
99
+ # Add method to TCC::State to make it OO. Note 'delete' should be called via
100
+ # high-level 'destroy' method. 'relocate' is replaced with 'relocate_auto'.
101
+ State.delegate_to_libtcc name
102
+ rescue FFI::NotFoundError => e
103
+ (class << self; self; end).class_eval { define_method(name) { |*_| raise e } }
104
+ end
105
+ end
106
+
107
+
108
+ # create a new TCC compilation context
109
+ #
110
+ # @method new()
111
+ # @return [RawTCCState]
112
+ # @scope class
113
+ attach_function :new, :tcc_new, [], RawTCCState
114
+
115
+ # free a TCC compilation context
116
+ #
117
+ # @method delete(s)
118
+ # @param [RawTCCState] s
119
+ # @return [nil]
120
+ # @scope class
121
+ attach_function :delete, :tcc_delete, [RawTCCState], :void
122
+
123
+ # set CONFIG_TCCDIR at runtime
124
+ #
125
+ # @method set_lib_path(s, path)
126
+ # @param [RawTCCState] s
127
+ # @param [String] path
128
+ # @return [nil]
129
+ # @scope class
130
+ attach_function :set_lib_path, :tcc_set_lib_path, [RawTCCState, :string], :void
131
+
132
+ # set error/warning display callback
133
+ #
134
+ # @method set_error_func(s, error_opaque, error_func)
135
+ # @param [RawTCCState] s
136
+ # @param [FFI::Pointer(*Void)] error_opaque
137
+ # @param [FFI::Pointer(*)] error_func
138
+ # @return [nil]
139
+ # @scope class
140
+ attach_function :set_error_func, :tcc_set_error_func, [RawTCCState, :pointer, :pointer], :void
141
+
142
+ # set options as from command line (multiple supported)
143
+ #
144
+ # @method set_options(s, str)
145
+ # @param [RawTCCState] s
146
+ # @param [String] str
147
+ # @return [Integer]
148
+ # @scope class
149
+ attach_function :set_options, :tcc_set_options, [RawTCCState, :string], :int
150
+
151
+ # add include path
152
+ #
153
+ # @method add_include_path(s, pathname)
154
+ # @param [RawTCCState] s
155
+ # @param [String] pathname
156
+ # @return [Integer]
157
+ # @scope class
158
+ attach_function :add_include_path, :tcc_add_include_path, [RawTCCState, :string], :int
159
+
160
+ # add in system include path
161
+ #
162
+ # @method add_sysinclude_path(s, pathname)
163
+ # @param [RawTCCState] s
164
+ # @param [String] pathname
165
+ # @return [Integer]
166
+ # @scope class
167
+ attach_function :add_sysinclude_path, :tcc_add_sysinclude_path, [RawTCCState, :string], :int
168
+
169
+ # define preprocessor symbol 'sym'. Can put optional value
170
+ #
171
+ # @method define_symbol(s, sym, value)
172
+ # @param [RawTCCState] s
173
+ # @param [String] sym
174
+ # @param [String] value
175
+ # @return [nil]
176
+ # @scope class
177
+ attach_function :define_symbol, :tcc_define_symbol, [RawTCCState, :string, :string], :void
178
+
179
+ # undefine preprocess symbol 'sym'
180
+ #
181
+ # @method undefine_symbol(s, sym)
182
+ # @param [RawTCCState] s
183
+ # @param [String] sym
184
+ # @return [nil]
185
+ # @scope class
186
+ attach_function :undefine_symbol, :tcc_undefine_symbol, [RawTCCState, :string], :void
187
+
188
+ # add a file (C file, dll, object, library, ld script). Return -1 if error.
189
+ #
190
+ # @method add_file(s, filename)
191
+ # @param [RawTCCState] s
192
+ # @param [String] filename
193
+ # @return [Integer]
194
+ # @scope class
195
+ attach_function :add_file, :tcc_add_file, [RawTCCState, :string], :int
196
+
197
+ # compile a string containing a C source. Return -1 if error.
198
+ #
199
+ # @method compile_string(s, buf)
200
+ # @param [RawTCCState] s
201
+ # @param [String] buf
202
+ # @return [Integer]
203
+ # @scope class
204
+ attach_function :compile_string, :tcc_compile_string, [RawTCCState, :string], :int
205
+
206
+ # set output type. MUST BE CALLED before any compilation
207
+ #
208
+ # @method set_output_type(s, output_type)
209
+ # @param [RawTCCState] s
210
+ # @param [Integer] output_type
211
+ # @return [Integer]
212
+ # @scope class
213
+ attach_function :set_output_type, :tcc_set_output_type, [RawTCCState, :int], :int
214
+
215
+ # equivalent to -Lpath option
216
+ #
217
+ # @method add_library_path(s, pathname)
218
+ # @param [RawTCCState] s
219
+ # @param [String] pathname
220
+ # @return [Integer]
221
+ # @scope class
222
+ attach_function :add_library_path, :tcc_add_library_path, [RawTCCState, :string], :int
223
+
224
+ # the library name is the same as the argument of the '-l' option
225
+ #
226
+ # @method add_library(s, libraryname)
227
+ # @param [RawTCCState] s
228
+ # @param [String] libraryname
229
+ # @return [Integer]
230
+ # @scope class
231
+ attach_function :add_library, :tcc_add_library, [RawTCCState, :string], :int
232
+
233
+ # add a symbol to the compiled program
234
+ #
235
+ # @method add_symbol(s, name, val)
236
+ # @param [RawTCCState] s
237
+ # @param [String] name
238
+ # @param [FFI::Pointer(*Void)] val
239
+ # @return [Integer]
240
+ # @scope class
241
+ attach_function :add_symbol, :tcc_add_symbol, [RawTCCState, :string, :pointer], :int
242
+
243
+ # output an executable, library or object file. DO NOT call
244
+ # tcc_relocate() before.
245
+ #
246
+ # @method output_file(s, filename)
247
+ # @param [RawTCCState] s
248
+ # @param [String] filename
249
+ # @return [Integer]
250
+ # @scope class
251
+ attach_function :output_file, :tcc_output_file, [RawTCCState, :string], :int
252
+
253
+ # link and run main() function and return its value. DO NOT call
254
+ # tcc_relocate() before.
255
+ #
256
+ # @method run(s, argc, argv)
257
+ # @param [RawTCCState] s
258
+ # @param [Integer] argc
259
+ # @param [FFI::Pointer(**CharS)] argv
260
+ # @return [Integer]
261
+ # @scope class
262
+ attach_function :run, :tcc_run, [RawTCCState, :int, :pointer], :int
263
+
264
+ # do all relocations (needed before using tcc_get_symbol())
265
+ #
266
+ # @method relocate(s1, ptr)
267
+ # @param [RawTCCState] s1
268
+ # @param [FFI::Pointer(*Void)] ptr
269
+ # @return [Integer]
270
+ # @scope class
271
+ attach_function :relocate, :tcc_relocate, [RawTCCState, :pointer], :int
272
+
273
+ # Same as `tcc_relocate(s1, TCC_RELOCATE_AUTO)`
274
+ #
275
+ # @method relocate_auto(s1)
276
+ # @param [RawTCCState] s1
277
+ # @return [Integer]
278
+ # @scope class
279
+ attach_function :relocate_auto, :tcc_relocate_auto, [RawTCCState], :int
280
+
281
+ # return symbol value or NULL if not found
282
+ #
283
+ # @method get_symbol(s, name)
284
+ # @param [RawTCCState] s
285
+ # @param [String] name
286
+ # @return [FFI::Pointer(*Void)]
287
+ # @scope class
288
+ attach_function :get_symbol, :tcc_get_symbol, [RawTCCState, :string], :pointer
289
+
290
+ end
291
+
data/tcc.gemspec ADDED
@@ -0,0 +1,15 @@
1
+ Gem::Specification.new do |s|
2
+ s.name = 'tcc'
3
+ s.version = '0.1.0'
4
+ s.summary = 'libtcc (library of Tiny C Compiler) wrapper.'
5
+ s.description = 'Tiny C Compiler is a small and fast C compiler, which makes C behavor like a script language. This is the Ruby wrapper for its library, libtcc.'
6
+ s.authors = ['Jun Wu', 'TinyCC develoeprs']
7
+ s.email = 'quark@lihdd.net'
8
+ s.homepage = 'https://github.com/quark-zju/ruby-libtcc'
9
+ s.licenses = ['BSD', 'LGPL']
10
+ s.require_paths = ['lib']
11
+ s.files = %w[LICENSE README.md tcc.gemspec lib/tcc.rb ext/tcc/tcc-0.9.26.patch ext/tcc/extconf.rb]
12
+ s.files += Dir.glob('ext/tcc/tcc-0.9.26/**/*')
13
+ s.extensions = %w[ext/tcc/extconf.rb]
14
+ s.add_dependency 'ffi', '~> 1.9.0'
15
+ end
metadata ADDED
@@ -0,0 +1,343 @@
1
+ --- !ruby/object:Gem::Specification
2
+ name: tcc
3
+ version: !ruby/object:Gem::Version
4
+ version: 0.1.0
5
+ platform: ruby
6
+ authors:
7
+ - Jun Wu
8
+ - TinyCC develoeprs
9
+ autorequire:
10
+ bindir: bin
11
+ cert_chain: []
12
+ date: 2013-10-30 00:00:00.000000000 Z
13
+ dependencies:
14
+ - !ruby/object:Gem::Dependency
15
+ name: ffi
16
+ requirement: !ruby/object:Gem::Requirement
17
+ requirements:
18
+ - - ~>
19
+ - !ruby/object:Gem::Version
20
+ version: 1.9.0
21
+ type: :runtime
22
+ prerelease: false
23
+ version_requirements: !ruby/object:Gem::Requirement
24
+ requirements:
25
+ - - ~>
26
+ - !ruby/object:Gem::Version
27
+ version: 1.9.0
28
+ description: Tiny C Compiler is a small and fast C compiler, which makes C behavor
29
+ like a script language. This is the Ruby wrapper for its library, libtcc.
30
+ email: quark@lihdd.net
31
+ executables: []
32
+ extensions:
33
+ - ext/tcc/extconf.rb
34
+ extra_rdoc_files: []
35
+ files:
36
+ - LICENSE
37
+ - README.md
38
+ - tcc.gemspec
39
+ - lib/tcc.rb
40
+ - ext/tcc/tcc-0.9.26.patch
41
+ - ext/tcc/extconf.rb
42
+ - ext/tcc/tcc-0.9.26/il-gen.c
43
+ - ext/tcc/tcc-0.9.26/tcc.1
44
+ - ext/tcc/tcc-0.9.26/lib/Makefile
45
+ - ext/tcc/tcc-0.9.26/lib/alloca86.S
46
+ - ext/tcc/tcc-0.9.26/lib/libtcc1.c
47
+ - ext/tcc/tcc-0.9.26/lib/alloca86-bt.S
48
+ - ext/tcc/tcc-0.9.26/lib/bcheck.c
49
+ - ext/tcc/tcc-0.9.26/lib/alloca86_64.S
50
+ - ext/tcc/tcc-0.9.26/README
51
+ - ext/tcc/tcc-0.9.26/tccasm.c
52
+ - ext/tcc/tcc-0.9.26/config.h
53
+ - ext/tcc/tcc-0.9.26/texi2pod.pl
54
+ - ext/tcc/tcc-0.9.26/libtcc.c
55
+ - ext/tcc/tcc-0.9.26/tcc-doc.html
56
+ - ext/tcc/tcc-0.9.26/config.mak
57
+ - ext/tcc/tcc-0.9.26/coff.h
58
+ - ext/tcc/tcc-0.9.26/c67-gen.c
59
+ - ext/tcc/tcc-0.9.26/win32/lib/wincrt1.c
60
+ - ext/tcc/tcc-0.9.26/win32/lib/msvcrt.def
61
+ - ext/tcc/tcc-0.9.26/win32/lib/crt1.c
62
+ - ext/tcc/tcc-0.9.26/win32/lib/kernel32.def
63
+ - ext/tcc/tcc-0.9.26/win32/lib/dllmain.c
64
+ - ext/tcc/tcc-0.9.26/win32/lib/user32.def
65
+ - ext/tcc/tcc-0.9.26/win32/lib/dllcrt1.c
66
+ - ext/tcc/tcc-0.9.26/win32/lib/chkstk.S
67
+ - ext/tcc/tcc-0.9.26/win32/lib/gdi32.def
68
+ - ext/tcc/tcc-0.9.26/win32/build-tcc.bat
69
+ - ext/tcc/tcc-0.9.26/win32/tcc-win32.txt
70
+ - ext/tcc/tcc-0.9.26/win32/tools/tiny_libmaker.c
71
+ - ext/tcc/tcc-0.9.26/win32/tools/tiny_impdef.c
72
+ - ext/tcc/tcc-0.9.26/win32/include/fcntl.h
73
+ - ext/tcc/tcc-0.9.26/win32/include/conio.h
74
+ - ext/tcc/tcc-0.9.26/win32/include/assert.h
75
+ - ext/tcc/tcc-0.9.26/win32/include/direct.h
76
+ - ext/tcc/tcc-0.9.26/win32/include/winapi/intrin.h
77
+ - ext/tcc/tcc-0.9.26/win32/include/winapi/wingdi.h
78
+ - ext/tcc/tcc-0.9.26/win32/include/winapi/winbase.h
79
+ - ext/tcc/tcc-0.9.26/win32/include/winapi/winuser.h
80
+ - ext/tcc/tcc-0.9.26/win32/include/winapi/reason.h
81
+ - ext/tcc/tcc-0.9.26/win32/include/winapi/pshpack2.h
82
+ - ext/tcc/tcc-0.9.26/win32/include/winapi/pshpack4.h
83
+ - ext/tcc/tcc-0.9.26/win32/include/winapi/stralign.h
84
+ - ext/tcc/tcc-0.9.26/win32/include/winapi/specstrings.h
85
+ - ext/tcc/tcc-0.9.26/win32/include/winapi/poppack.h
86
+ - ext/tcc/tcc-0.9.26/win32/include/winapi/winnls.h
87
+ - ext/tcc/tcc-0.9.26/win32/include/winapi/windef.h
88
+ - ext/tcc/tcc-0.9.26/win32/include/winapi/tvout.h
89
+ - ext/tcc/tcc-0.9.26/win32/include/winapi/winreg.h
90
+ - ext/tcc/tcc-0.9.26/win32/include/winapi/basetsd.h
91
+ - ext/tcc/tcc-0.9.26/win32/include/winapi/guiddef.h
92
+ - ext/tcc/tcc-0.9.26/win32/include/winapi/winnt.h
93
+ - ext/tcc/tcc-0.9.26/win32/include/winapi/pshpack8.h
94
+ - ext/tcc/tcc-0.9.26/win32/include/winapi/winver.h
95
+ - ext/tcc/tcc-0.9.26/win32/include/winapi/basetyps.h
96
+ - ext/tcc/tcc-0.9.26/win32/include/winapi/windows.h
97
+ - ext/tcc/tcc-0.9.26/win32/include/winapi/wincon.h
98
+ - ext/tcc/tcc-0.9.26/win32/include/winapi/winerror.h
99
+ - ext/tcc/tcc-0.9.26/win32/include/winapi/pshpack1.h
100
+ - ext/tcc/tcc-0.9.26/win32/include/winapi/winnetwk.h
101
+ - ext/tcc/tcc-0.9.26/win32/include/fenv.h
102
+ - ext/tcc/tcc-0.9.26/win32/include/values.h
103
+ - ext/tcc/tcc-0.9.26/win32/include/share.h
104
+ - ext/tcc/tcc-0.9.26/win32/include/wchar.h
105
+ - ext/tcc/tcc-0.9.26/win32/include/inttypes.h
106
+ - ext/tcc/tcc-0.9.26/win32/include/sys/fcntl.h
107
+ - ext/tcc/tcc-0.9.26/win32/include/sys/timeb.h
108
+ - ext/tcc/tcc-0.9.26/win32/include/sys/unistd.h
109
+ - ext/tcc/tcc-0.9.26/win32/include/sys/stat.h
110
+ - ext/tcc/tcc-0.9.26/win32/include/sys/file.h
111
+ - ext/tcc/tcc-0.9.26/win32/include/sys/time.h
112
+ - ext/tcc/tcc-0.9.26/win32/include/sys/utime.h
113
+ - ext/tcc/tcc-0.9.26/win32/include/sys/locking.h
114
+ - ext/tcc/tcc-0.9.26/win32/include/sys/types.h
115
+ - ext/tcc/tcc-0.9.26/win32/include/io.h
116
+ - ext/tcc/tcc-0.9.26/win32/include/stdlib.h
117
+ - ext/tcc/tcc-0.9.26/win32/include/limits.h
118
+ - ext/tcc/tcc-0.9.26/win32/include/wctype.h
119
+ - ext/tcc/tcc-0.9.26/win32/include/dirent.h
120
+ - ext/tcc/tcc-0.9.26/win32/include/string.h
121
+ - ext/tcc/tcc-0.9.26/win32/include/excpt.h
122
+ - ext/tcc/tcc-0.9.26/win32/include/_mingw.h
123
+ - ext/tcc/tcc-0.9.26/win32/include/process.h
124
+ - ext/tcc/tcc-0.9.26/win32/include/vadefs.h
125
+ - ext/tcc/tcc-0.9.26/win32/include/malloc.h
126
+ - ext/tcc/tcc-0.9.26/win32/include/signal.h
127
+ - ext/tcc/tcc-0.9.26/win32/include/stdio.h
128
+ - ext/tcc/tcc-0.9.26/win32/include/time.h
129
+ - ext/tcc/tcc-0.9.26/win32/include/dir.h
130
+ - ext/tcc/tcc-0.9.26/win32/include/locale.h
131
+ - ext/tcc/tcc-0.9.26/win32/include/errno.h
132
+ - ext/tcc/tcc-0.9.26/win32/include/math.h
133
+ - ext/tcc/tcc-0.9.26/win32/include/memory.h
134
+ - ext/tcc/tcc-0.9.26/win32/include/mem.h
135
+ - ext/tcc/tcc-0.9.26/win32/include/tchar.h
136
+ - ext/tcc/tcc-0.9.26/win32/include/dos.h
137
+ - ext/tcc/tcc-0.9.26/win32/include/sec_api/stdio_s.h
138
+ - ext/tcc/tcc-0.9.26/win32/include/sec_api/io_s.h
139
+ - ext/tcc/tcc-0.9.26/win32/include/sec_api/stralign_s.h
140
+ - ext/tcc/tcc-0.9.26/win32/include/sec_api/mbstring_s.h
141
+ - ext/tcc/tcc-0.9.26/win32/include/sec_api/time_s.h
142
+ - ext/tcc/tcc-0.9.26/win32/include/sec_api/wchar_s.h
143
+ - ext/tcc/tcc-0.9.26/win32/include/sec_api/tchar_s.h
144
+ - ext/tcc/tcc-0.9.26/win32/include/sec_api/crtdbg_s.h
145
+ - ext/tcc/tcc-0.9.26/win32/include/sec_api/search_s.h
146
+ - ext/tcc/tcc-0.9.26/win32/include/sec_api/string_s.h
147
+ - ext/tcc/tcc-0.9.26/win32/include/sec_api/sys/timeb_s.h
148
+ - ext/tcc/tcc-0.9.26/win32/include/sec_api/conio_s.h
149
+ - ext/tcc/tcc-0.9.26/win32/include/sec_api/stdlib_s.h
150
+ - ext/tcc/tcc-0.9.26/win32/include/stdint.h
151
+ - ext/tcc/tcc-0.9.26/win32/include/setjmp.h
152
+ - ext/tcc/tcc-0.9.26/win32/include/ctype.h
153
+ - ext/tcc/tcc-0.9.26/win32/examples/fib.c
154
+ - ext/tcc/tcc-0.9.26/win32/examples/dll.c
155
+ - ext/tcc/tcc-0.9.26/win32/examples/hello_dll.c
156
+ - ext/tcc/tcc-0.9.26/win32/examples/hello_win.c
157
+ - ext/tcc/tcc-0.9.26/stab.h
158
+ - ext/tcc/tcc-0.9.26/stab.def
159
+ - ext/tcc/tcc-0.9.26/libtcc.h
160
+ - ext/tcc/tcc-0.9.26/Makefile
161
+ - ext/tcc/tcc-0.9.26/configure
162
+ - ext/tcc/tcc-0.9.26/tccpe.c
163
+ - ext/tcc/tcc-0.9.26/i386-tok.h
164
+ - ext/tcc/tcc-0.9.26/tccrun.c
165
+ - ext/tcc/tcc-0.9.26/tcccoff.c
166
+ - ext/tcc/tcc-0.9.26/tcc.c
167
+ - ext/tcc/tcc-0.9.26/elf.h
168
+ - ext/tcc/tcc-0.9.26/conftest.c
169
+ - ext/tcc/tcc-0.9.26/tccgen.c
170
+ - ext/tcc/tcc-0.9.26/i386-asm.c
171
+ - ext/tcc/tcc-0.9.26/tccelf.c
172
+ - ext/tcc/tcc-0.9.26/tccpp.c
173
+ - ext/tcc/tcc-0.9.26/include/float.h
174
+ - ext/tcc/tcc-0.9.26/include/stddef.h
175
+ - ext/tcc/tcc-0.9.26/include/stdarg.h
176
+ - ext/tcc/tcc-0.9.26/include/stdbool.h
177
+ - ext/tcc/tcc-0.9.26/include/varargs.h
178
+ - ext/tcc/tcc-0.9.26/include/tcclib.h
179
+ - ext/tcc/tcc-0.9.26/examples/ex1.c
180
+ - ext/tcc/tcc-0.9.26/examples/ex5.c
181
+ - ext/tcc/tcc-0.9.26/examples/ex4.c
182
+ - ext/tcc/tcc-0.9.26/examples/ex2.c
183
+ - ext/tcc/tcc-0.9.26/examples/ex3.c
184
+ - ext/tcc/tcc-0.9.26/i386-asm.h
185
+ - ext/tcc/tcc-0.9.26/config.texi
186
+ - ext/tcc/tcc-0.9.26/tcc-doc.texi
187
+ - ext/tcc/tcc-0.9.26/i386-gen.c
188
+ - ext/tcc/tcc-0.9.26/tcc.h
189
+ - ext/tcc/tcc-0.9.26/COPYING
190
+ - ext/tcc/tcc-0.9.26/TODO
191
+ - ext/tcc/tcc-0.9.26/il-opcodes.h
192
+ - ext/tcc/tcc-0.9.26/x86_64-gen.c
193
+ - ext/tcc/tcc-0.9.26/tcc-doc.info
194
+ - ext/tcc/tcc-0.9.26/tcctok.h
195
+ - ext/tcc/tcc-0.9.26/tests/tcctest.c
196
+ - ext/tcc/tcc-0.9.26/tests/gcctestsuite.sh
197
+ - ext/tcc/tcc-0.9.26/tests/asmtest.S
198
+ - ext/tcc/tcc-0.9.26/tests/Makefile
199
+ - ext/tcc/tcc-0.9.26/tests/libtcc_test.c
200
+ - ext/tcc/tcc-0.9.26/tests/boundtest.c
201
+ - ext/tcc/tcc-0.9.26/tests/tests2/44_scoped_declarations.c
202
+ - ext/tcc/tcc-0.9.26/tests/tests2/40_stdio.c
203
+ - ext/tcc/tcc-0.9.26/tests/tests2/39_typedef.c
204
+ - ext/tcc/tcc-0.9.26/tests/tests2/27_sizeof.c
205
+ - ext/tcc/tcc-0.9.26/tests/tests2/24_math_library.expect
206
+ - ext/tcc/tcc-0.9.26/tests/tests2/18_include.c
207
+ - ext/tcc/tcc-0.9.26/tests/tests2/09_do_while.expect
208
+ - ext/tcc/tcc-0.9.26/tests/tests2/01_comment.expect
209
+ - ext/tcc/tcc-0.9.26/tests/tests2/17_enum.c
210
+ - ext/tcc/tcc-0.9.26/tests/tests2/51_static.c
211
+ - ext/tcc/tcc-0.9.26/tests/tests2/33_ternary_op.expect
212
+ - ext/tcc/tcc-0.9.26/tests/tests2/47_switch_return.expect
213
+ - ext/tcc/tcc-0.9.26/tests/tests2/33_ternary_op.c
214
+ - ext/tcc/tcc-0.9.26/tests/tests2/14_if.c
215
+ - ext/tcc/tcc-0.9.26/tests/tests2/06_case.c
216
+ - ext/tcc/tcc-0.9.26/tests/tests2/05_array.c
217
+ - ext/tcc/tcc-0.9.26/tests/tests2/29_array_address.expect
218
+ - ext/tcc/tcc-0.9.26/tests/tests2/26_character_constants.c
219
+ - ext/tcc/tcc-0.9.26/tests/tests2/45_empty_for.c
220
+ - ext/tcc/tcc-0.9.26/tests/tests2/49_bracket_evaluation.expect
221
+ - ext/tcc/tcc-0.9.26/tests/tests2/52_unnamed_enum.c
222
+ - ext/tcc/tcc-0.9.26/tests/tests2/43_void_param.expect
223
+ - ext/tcc/tcc-0.9.26/tests/tests2/10_pointer.c
224
+ - ext/tcc/tcc-0.9.26/tests/tests2/48_nested_break.c
225
+ - ext/tcc/tcc-0.9.26/tests/tests2/54_goto.c
226
+ - ext/tcc/tcc-0.9.26/tests/tests2/55_lshift_type.expect
227
+ - ext/tcc/tcc-0.9.26/tests/tests2/11_precedence.c
228
+ - ext/tcc/tcc-0.9.26/tests/tests2/23_type_coercion.expect
229
+ - ext/tcc/tcc-0.9.26/tests/tests2/49_bracket_evaluation.c
230
+ - ext/tcc/tcc-0.9.26/tests/tests2/20_pointer_comparison.c
231
+ - ext/tcc/tcc-0.9.26/tests/tests2/Makefile
232
+ - ext/tcc/tcc-0.9.26/tests/tests2/38_multiple_array_index.c
233
+ - ext/tcc/tcc-0.9.26/tests/tests2/19_pointer_arithmetic.expect
234
+ - ext/tcc/tcc-0.9.26/tests/tests2/50_logical_second_arg.expect
235
+ - ext/tcc/tcc-0.9.26/tests/tests2/43_void_param.c
236
+ - ext/tcc/tcc-0.9.26/tests/tests2/30_hanoi.c
237
+ - ext/tcc/tcc-0.9.26/tests/tests2/10_pointer.expect
238
+ - ext/tcc/tcc-0.9.26/tests/tests2/25_quicksort.expect
239
+ - ext/tcc/tcc-0.9.26/tests/tests2/12_hashdefine.c
240
+ - ext/tcc/tcc-0.9.26/tests/tests2/04_for.c
241
+ - ext/tcc/tcc-0.9.26/tests/tests2/26_character_constants.expect
242
+ - ext/tcc/tcc-0.9.26/tests/tests2/14_if.expect
243
+ - ext/tcc/tcc-0.9.26/tests/tests2/07_function.c
244
+ - ext/tcc/tcc-0.9.26/tests/tests2/29_array_address.c
245
+ - ext/tcc/tcc-0.9.26/tests/tests2/52_unnamed_enum.expect
246
+ - ext/tcc/tcc-0.9.26/tests/tests2/41_hashif.c
247
+ - ext/tcc/tcc-0.9.26/tests/tests2/03_struct.expect
248
+ - ext/tcc/tcc-0.9.26/tests/tests2/27_sizeof.expect
249
+ - ext/tcc/tcc-0.9.26/tests/tests2/28_strings.c
250
+ - ext/tcc/tcc-0.9.26/tests/tests2/00_assignment.expect
251
+ - ext/tcc/tcc-0.9.26/tests/tests2/22_floating_point.c
252
+ - ext/tcc/tcc-0.9.26/tests/tests2/05_array.expect
253
+ - ext/tcc/tcc-0.9.26/tests/tests2/06_case.expect
254
+ - ext/tcc/tcc-0.9.26/tests/tests2/42_function_pointer.c
255
+ - ext/tcc/tcc-0.9.26/tests/tests2/42_function_pointer.expect
256
+ - ext/tcc/tcc-0.9.26/tests/tests2/18_include.h
257
+ - ext/tcc/tcc-0.9.26/tests/tests2/23_type_coercion.c
258
+ - ext/tcc/tcc-0.9.26/tests/tests2/30_hanoi.expect
259
+ - ext/tcc/tcc-0.9.26/tests/tests2/55_lshift_type.c
260
+ - ext/tcc/tcc-0.9.26/tests/tests2/32_led.c
261
+ - ext/tcc/tcc-0.9.26/tests/tests2/39_typedef.expect
262
+ - ext/tcc/tcc-0.9.26/tests/tests2/46_grep.c
263
+ - ext/tcc/tcc-0.9.26/tests/tests2/08_while.expect
264
+ - ext/tcc/tcc-0.9.26/tests/tests2/47_switch_return.c
265
+ - ext/tcc/tcc-0.9.26/tests/tests2/21_char_array.expect
266
+ - ext/tcc/tcc-0.9.26/tests/tests2/16_nesting.expect
267
+ - ext/tcc/tcc-0.9.26/tests/tests2/50_logical_second_arg.c
268
+ - ext/tcc/tcc-0.9.26/tests/tests2/09_do_while.c
269
+ - ext/tcc/tcc-0.9.26/tests/tests2/45_empty_for.expect
270
+ - ext/tcc/tcc-0.9.26/tests/tests2/13_integer_literals.c
271
+ - ext/tcc/tcc-0.9.26/tests/tests2/28_strings.expect
272
+ - ext/tcc/tcc-0.9.26/tests/tests2/31_args.expect
273
+ - ext/tcc/tcc-0.9.26/tests/tests2/22_floating_point.expect
274
+ - ext/tcc/tcc-0.9.26/tests/tests2/08_while.c
275
+ - ext/tcc/tcc-0.9.26/tests/tests2/01_comment.c
276
+ - ext/tcc/tcc-0.9.26/tests/tests2/34_array_assignment.c
277
+ - ext/tcc/tcc-0.9.26/tests/tests2/37_sprintf.expect
278
+ - ext/tcc/tcc-0.9.26/tests/tests2/38_multiple_array_index.expect
279
+ - ext/tcc/tcc-0.9.26/tests/tests2/02_printf.expect
280
+ - ext/tcc/tcc-0.9.26/tests/tests2/LICENSE
281
+ - ext/tcc/tcc-0.9.26/tests/tests2/07_function.expect
282
+ - ext/tcc/tcc-0.9.26/tests/tests2/48_nested_break.expect
283
+ - ext/tcc/tcc-0.9.26/tests/tests2/41_hashif.expect
284
+ - ext/tcc/tcc-0.9.26/tests/tests2/37_sprintf.c
285
+ - ext/tcc/tcc-0.9.26/tests/tests2/21_char_array.c
286
+ - ext/tcc/tcc-0.9.26/tests/tests2/15_recursion.c
287
+ - ext/tcc/tcc-0.9.26/tests/tests2/13_integer_literals.expect
288
+ - ext/tcc/tcc-0.9.26/tests/tests2/32_led.expect
289
+ - ext/tcc/tcc-0.9.26/tests/tests2/04_for.expect
290
+ - ext/tcc/tcc-0.9.26/tests/tests2/11_precedence.expect
291
+ - ext/tcc/tcc-0.9.26/tests/tests2/00_assignment.c
292
+ - ext/tcc/tcc-0.9.26/tests/tests2/25_quicksort.c
293
+ - ext/tcc/tcc-0.9.26/tests/tests2/40_stdio.expect
294
+ - ext/tcc/tcc-0.9.26/tests/tests2/16_nesting.c
295
+ - ext/tcc/tcc-0.9.26/tests/tests2/15_recursion.expect
296
+ - ext/tcc/tcc-0.9.26/tests/tests2/12_hashdefine.expect
297
+ - ext/tcc/tcc-0.9.26/tests/tests2/20_pointer_comparison.expect
298
+ - ext/tcc/tcc-0.9.26/tests/tests2/02_printf.c
299
+ - ext/tcc/tcc-0.9.26/tests/tests2/51_static.expect
300
+ - ext/tcc/tcc-0.9.26/tests/tests2/34_array_assignment.expect
301
+ - ext/tcc/tcc-0.9.26/tests/tests2/35_sizeof.c
302
+ - ext/tcc/tcc-0.9.26/tests/tests2/35_sizeof.expect
303
+ - ext/tcc/tcc-0.9.26/tests/tests2/31_args.c
304
+ - ext/tcc/tcc-0.9.26/tests/tests2/18_include.expect
305
+ - ext/tcc/tcc-0.9.26/tests/tests2/44_scoped_declarations.expect
306
+ - ext/tcc/tcc-0.9.26/tests/tests2/19_pointer_arithmetic.c
307
+ - ext/tcc/tcc-0.9.26/tests/tests2/03_struct.c
308
+ - ext/tcc/tcc-0.9.26/tests/tests2/17_enum.expect
309
+ - ext/tcc/tcc-0.9.26/tests/tests2/36_array_initialisers.c
310
+ - ext/tcc/tcc-0.9.26/tests/tests2/24_math_library.c
311
+ - ext/tcc/tcc-0.9.26/tests/tests2/36_array_initialisers.expect
312
+ - ext/tcc/tcc-0.9.26/tests/tests2/54_goto.expect
313
+ - ext/tcc/tcc-0.9.26/VERSION
314
+ - ext/tcc/tcc-0.9.26/x86_64-asm.h
315
+ - ext/tcc/tcc-0.9.26/Changelog
316
+ - ext/tcc/tcc-0.9.26/arm-gen.c
317
+ homepage: https://github.com/quark-zju/ruby-libtcc
318
+ licenses:
319
+ - BSD
320
+ - LGPL
321
+ metadata: {}
322
+ post_install_message:
323
+ rdoc_options: []
324
+ require_paths:
325
+ - lib
326
+ required_ruby_version: !ruby/object:Gem::Requirement
327
+ requirements:
328
+ - - '>='
329
+ - !ruby/object:Gem::Version
330
+ version: '0'
331
+ required_rubygems_version: !ruby/object:Gem::Requirement
332
+ requirements:
333
+ - - '>='
334
+ - !ruby/object:Gem::Version
335
+ version: '0'
336
+ requirements: []
337
+ rubyforge_project:
338
+ rubygems_version: 2.0.2
339
+ signing_key:
340
+ specification_version: 4
341
+ summary: libtcc (library of Tiny C Compiler) wrapper.
342
+ test_files: []
343
+ has_rdoc: