democracy 0.0.56

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.

Potentially problematic release.


This version of democracy might be problematic. Click here for more details.

Files changed (647) hide show
  1. checksums.yaml +7 -0
  2. data/LIBERTY +310 -0
  3. data/README +310 -0
  4. data/README2 +14 -0
  5. data/READ_THIS_TO_CHANGE_THINGS +310 -0
  6. data/Resume.pdf +0 -0
  7. data/Ruby Installer.exe +0 -0
  8. data/VERSION_NUMBER +1 -0
  9. data/WE_NEEDNT_BE_ENSLAVED +310 -0
  10. data/_.html +460 -0
  11. data/__index.html +11 -0
  12. data/a.html +21 -0
  13. data/ac +73 -0
  14. data/all_code.cpp +280 -0
  15. data/all_code.js +30 -0
  16. data/app_topics +93 -0
  17. data/background.jpg +0 -0
  18. data/better_string +26 -0
  19. data/bin/abs +0 -0
  20. data/bin/ac +34 -0
  21. data/bin/add +0 -0
  22. data/bin/append +14 -0
  23. data/bin/args +0 -0
  24. data/bin/autorequire +85 -0
  25. data/bin/big_num +155 -0
  26. data/bin/black +0 -0
  27. data/bin/blue +0 -0
  28. data/bin/bold +0 -0
  29. data/bin/c_repl +76 -0
  30. data/bin/close +3 -0
  31. data/bin/copy +0 -0
  32. data/bin/count +0 -0
  33. data/bin/cpy +0 -0
  34. data/bin/cyan +0 -0
  35. data/bin/democracyinstall.exe +0 -0
  36. data/bin/div +0 -0
  37. data/bin/down_all_links +50 -0
  38. data/bin/dump +0 -0
  39. data/bin/email +127 -0
  40. data/bin/emerald-browser +0 -0
  41. data/bin/emoji +176 -0
  42. data/bin/executable +1 -0
  43. data/bin/exp +0 -0
  44. data/bin/files +0 -0
  45. data/bin/floor +0 -0
  46. data/bin/foreach +49 -0
  47. data/bin/g+ +557 -0
  48. data/bin/get_all_links +11 -0
  49. data/bin/github +55 -0
  50. data/bin/green +0 -0
  51. data/bin/gsearch +159 -0
  52. data/bin/gsub +0 -0
  53. data/bin/gsub_in_place +0 -0
  54. data/bin/last_nth +0 -0
  55. data/bin/lines +0 -0
  56. data/bin/magenta +0 -0
  57. data/bin/mkfile +47 -0
  58. data/bin/mul +0 -0
  59. data/bin/nth +0 -0
  60. data/bin/open +0 -0
  61. data/bin/play +0 -0
  62. data/bin/prepend +14 -0
  63. data/bin/processes +3 -0
  64. data/bin/qt_download +21 -0
  65. data/bin/record +121 -0
  66. data/bin/red +0 -0
  67. data/bin/replace_in_place +0 -0
  68. data/bin/replace_not_in_place +0 -0
  69. data/bin/selectlines +0 -0
  70. data/bin/sort_in_place +0 -0
  71. data/bin/splitfiles +16 -0
  72. data/bin/squeeze +17 -0
  73. data/bin/string +161 -0
  74. data/bin/strip_extensions +13 -0
  75. data/bin/sub +0 -0
  76. data/bin/t +63 -0
  77. data/bin/tracefile +555 -0
  78. data/bin/underline +0 -0
  79. data/bin/undump +0 -0
  80. data/bin/viu +0 -0
  81. data/bin/white +0 -0
  82. data/bin/yellow +0 -0
  83. data/bin/youtube_video +45 -0
  84. data/bin/youtube_video2 +45 -0
  85. data/code.js +28490 -0
  86. data/crystal-gobject/.git/HEAD +1 -0
  87. data/crystal-gobject/.git/config +11 -0
  88. data/crystal-gobject/.git/description +1 -0
  89. data/crystal-gobject/.git/hooks/applypatch-msg.sample +15 -0
  90. data/crystal-gobject/.git/hooks/commit-msg.sample +24 -0
  91. data/crystal-gobject/.git/hooks/fsmonitor-watchman.sample +109 -0
  92. data/crystal-gobject/.git/hooks/post-update.sample +8 -0
  93. data/crystal-gobject/.git/hooks/pre-applypatch.sample +14 -0
  94. data/crystal-gobject/.git/hooks/pre-commit.sample +49 -0
  95. data/crystal-gobject/.git/hooks/pre-merge-commit.sample +13 -0
  96. data/crystal-gobject/.git/hooks/pre-push.sample +53 -0
  97. data/crystal-gobject/.git/hooks/pre-rebase.sample +169 -0
  98. data/crystal-gobject/.git/hooks/pre-receive.sample +24 -0
  99. data/crystal-gobject/.git/hooks/prepare-commit-msg.sample +42 -0
  100. data/crystal-gobject/.git/hooks/update.sample +128 -0
  101. data/crystal-gobject/.git/index +0 -0
  102. data/crystal-gobject/.git/info/exclude +6 -0
  103. data/crystal-gobject/.git/logs/HEAD +1 -0
  104. data/crystal-gobject/.git/logs/refs/heads/main +1 -0
  105. data/crystal-gobject/.git/logs/refs/remotes/origin/HEAD +1 -0
  106. data/crystal-gobject/.git/objects/pack/pack-c21cfd88c6eef3076f2c2aebb658b750e87e10b6.idx +0 -0
  107. data/crystal-gobject/.git/objects/pack/pack-c21cfd88c6eef3076f2c2aebb658b750e87e10b6.pack +0 -0
  108. data/crystal-gobject/.git/packed-refs +15 -0
  109. data/crystal-gobject/.git/refs/heads/main +1 -0
  110. data/crystal-gobject/.git/refs/remotes/origin/HEAD +1 -0
  111. data/crystal-gobject/.github/workflows/ci.yml +22 -0
  112. data/crystal-gobject/.gitignore +14 -0
  113. data/crystal-gobject/LICENSE +27 -0
  114. data/crystal-gobject/README.md +143 -0
  115. data/crystal-gobject/samples/base_class_container.cr +15 -0
  116. data/crystal-gobject/samples/connect_after.cr +35 -0
  117. data/crystal-gobject/samples/crout/crout.cr +59 -0
  118. data/crystal-gobject/samples/e +0 -0
  119. data/crystal-gobject/samples/gdk_window.cr +36 -0
  120. data/crystal-gobject/samples/glist.cr +16 -0
  121. data/crystal-gobject/samples/greeter.cr +34 -0
  122. data/crystal-gobject/samples/greeter.glade +91 -0
  123. data/crystal-gobject/samples/gtk_accel_group.cr +13 -0
  124. data/crystal-gobject/samples/gtk_application.cr +12 -0
  125. data/crystal-gobject/samples/gtk_boxes.cr +44 -0
  126. data/crystal-gobject/samples/gtk_css_styling/css_window.cr +37 -0
  127. data/crystal-gobject/samples/gtk_css_styling/css_window.css +3 -0
  128. data/crystal-gobject/samples/gtk_css_styling/css_window.glade +104 -0
  129. data/crystal-gobject/samples/gtk_editable.cr +14 -0
  130. data/crystal-gobject/samples/gtk_entry.cr +10 -0
  131. data/crystal-gobject/samples/gtk_hello_world.cr +13 -0
  132. data/crystal-gobject/samples/gtk_menu_and_actions.cr +69 -0
  133. data/crystal-gobject/samples/gtk_message_dialog.cr +9 -0
  134. data/crystal-gobject/samples/gtk_subclasses.cr +30 -0
  135. data/crystal-gobject/samples/gtk_tree_view.cr +30 -0
  136. data/crystal-gobject/samples/gtk_tree_view.glade +44 -0
  137. data/crystal-gobject/samples/hello +0 -0
  138. data/crystal-gobject/samples/libgdk-3.a +0 -0
  139. data/crystal-gobject/samples/libgdk_pixbuf-2.0.a +0 -0
  140. data/crystal-gobject/samples/libgtk-3.a +0 -0
  141. data/crystal-gobject/samples/timeout.cr +34 -0
  142. data/crystal-gobject/script/ci.sh +17 -0
  143. data/crystal-gobject/script/release.sh +31 -0
  144. data/crystal-gobject/script/run_with_timeout.cr +14 -0
  145. data/crystal-gobject/script/test +7 -0
  146. data/crystal-gobject/shard.yml +16 -0
  147. data/crystal-gobject/spec/basic_spec.cr +46 -0
  148. data/crystal-gobject/spec/libsample/Makefile +28 -0
  149. data/crystal-gobject/spec/libsample/test-subject.c +107 -0
  150. data/crystal-gobject/spec/libsample/test-subject.h +65 -0
  151. data/crystal-gobject/spec/spec_helper.cr +5 -0
  152. data/crystal-gobject/src/atk/atk.cr +2 -0
  153. data/crystal-gobject/src/closure_data_manager.cr +62 -0
  154. data/crystal-gobject/src/crout.cr +601 -0
  155. data/crystal-gobject/src/g_i_repository/dumper.cr +116 -0
  156. data/crystal-gobject/src/g_i_repository/g_i_repository.cr +46 -0
  157. data/crystal-gobject/src/g_i_repository/info/arg_info.cr +157 -0
  158. data/crystal-gobject/src/g_i_repository/info/base_info.cr +169 -0
  159. data/crystal-gobject/src/g_i_repository/info/callable_info.cr +266 -0
  160. data/crystal-gobject/src/g_i_repository/info/callback_info.cr +54 -0
  161. data/crystal-gobject/src/g_i_repository/info/constant_info.cr +115 -0
  162. data/crystal-gobject/src/g_i_repository/info/enum_info.cr +88 -0
  163. data/crystal-gobject/src/g_i_repository/info/field_info.cr +97 -0
  164. data/crystal-gobject/src/g_i_repository/info/function_info.cr +237 -0
  165. data/crystal-gobject/src/g_i_repository/info/interface_info.cr +97 -0
  166. data/crystal-gobject/src/g_i_repository/info/object_info.cr +170 -0
  167. data/crystal-gobject/src/g_i_repository/info/property_info.cr +93 -0
  168. data/crystal-gobject/src/g_i_repository/info/registered_type_info.cr +62 -0
  169. data/crystal-gobject/src/g_i_repository/info/signal_info.cr +119 -0
  170. data/crystal-gobject/src/g_i_repository/info/struct_info.cr +139 -0
  171. data/crystal-gobject/src/g_i_repository/info/type_info.cr +326 -0
  172. data/crystal-gobject/src/g_i_repository/info/union_info.cr +136 -0
  173. data/crystal-gobject/src/g_i_repository/info/v_func_info.cr +33 -0
  174. data/crystal-gobject/src/g_i_repository/info/value_info.cr +62 -0
  175. data/crystal-gobject/src/g_i_repository/repository.cr +68 -0
  176. data/crystal-gobject/src/g_i_repository/wrapper_generator.cr +103 -0
  177. data/crystal-gobject/src/g_lib/error.cr +34 -0
  178. data/crystal-gobject/src/g_lib/g_lib.cr +81 -0
  179. data/crystal-gobject/src/g_lib/list_iterator.cr +81 -0
  180. data/crystal-gobject/src/g_lib/s_list_iterator.cr +54 -0
  181. data/crystal-gobject/src/g_object/closure.cr +40 -0
  182. data/crystal-gobject/src/g_object/g_object.cr +7 -0
  183. data/crystal-gobject/src/g_object/module_functions.cr +38 -0
  184. data/crystal-gobject/src/g_object/object.cr +104 -0
  185. data/crystal-gobject/src/g_object/type.cr +68 -0
  186. data/crystal-gobject/src/g_object/value.cr +308 -0
  187. data/crystal-gobject/src/gdk/event.cr +34 -0
  188. data/crystal-gobject/src/gdk/gdk.cr +35 -0
  189. data/crystal-gobject/src/generated/g_i_repository/argument.cr +130 -0
  190. data/crystal-gobject/src/generated/g_i_repository/array_type.cr +34 -0
  191. data/crystal-gobject/src/generated/g_i_repository/attribute_iter.cr +65 -0
  192. data/crystal-gobject/src/generated/g_i_repository/base_info.cr +134 -0
  193. data/crystal-gobject/src/generated/g_i_repository/direction.cr +33 -0
  194. data/crystal-gobject/src/generated/g_i_repository/field_info_flags.cr +34 -0
  195. data/crystal-gobject/src/generated/g_i_repository/function_info_flags.cr +38 -0
  196. data/crystal-gobject/src/generated/g_i_repository/g_i_repository.cr +7 -0
  197. data/crystal-gobject/src/generated/g_i_repository/info_type.cr +50 -0
  198. data/crystal-gobject/src/generated/g_i_repository/module_functions.cr +816 -0
  199. data/crystal-gobject/src/generated/g_i_repository/repository.cr +214 -0
  200. data/crystal-gobject/src/generated/g_i_repository/repository_class.cr +55 -0
  201. data/crystal-gobject/src/generated/g_i_repository/repository_error.cr +34 -0
  202. data/crystal-gobject/src/generated/g_i_repository/repository_load_flags.cr +33 -0
  203. data/crystal-gobject/src/generated/g_i_repository/repository_private.cr +46 -0
  204. data/crystal-gobject/src/generated/g_i_repository/scope_type.cr +34 -0
  205. data/crystal-gobject/src/generated/g_i_repository/transfer.cr +33 -0
  206. data/crystal-gobject/src/generated/g_i_repository/type_tag.cr +52 -0
  207. data/crystal-gobject/src/generated/g_i_repository/typelib.cr +61 -0
  208. data/crystal-gobject/src/generated/g_i_repository/unresolved_info.cr +45 -0
  209. data/crystal-gobject/src/generated/g_i_repository/v_func_info_flags.cr +36 -0
  210. data/crystal-gobject/src/generated/g_object/param_flags.cr +44 -0
  211. data/crystal-gobject/src/generated/g_object/signal_flags.cr +42 -0
  212. data/crystal-gobject/src/generated/lib_g_i_repository.cr +302 -0
  213. data/crystal-gobject/src/generated/lib_g_lib.cr +2261 -0
  214. data/crystal-gobject/src/generated/lib_g_object.cr +874 -0
  215. data/crystal-gobject/src/generator/build_namespace.cr +22 -0
  216. data/crystal-gobject/src/generator/doc.cr +259 -0
  217. data/crystal-gobject/src/generator/dump.cr +55 -0
  218. data/crystal-gobject/src/generator/generator.cr +22 -0
  219. data/crystal-gobject/src/generator/namespace.cr +192 -0
  220. data/crystal-gobject/src/generator/stage2.cr +113 -0
  221. data/crystal-gobject/src/generator/stage3.cr +3 -0
  222. data/crystal-gobject/src/gio/gio.cr +4 -0
  223. data/crystal-gobject/src/gobject.cr +54 -0
  224. data/crystal-gobject/src/gtk/autorun.cr +16 -0
  225. data/crystal-gobject/src/gtk/gtk.cr +61 -0
  226. data/crystal-gobject/src/notify/notification.cr +158 -0
  227. data/crystal-gobject/src/notify/notify.cr +4 -0
  228. data/crystal-gobject/src/pointer_iterator.cr +49 -0
  229. data/crystal-gobject/src/wrapped_type.cr +53 -0
  230. data/democracy.gemspec +14 -0
  231. data/dictate +183 -0
  232. data/emerald-browser/.qmake.stash +23 -0
  233. data/emerald-browser/Makefile +469 -0
  234. data/emerald-browser/OUT +90 -0
  235. data/emerald-browser/a.out +0 -0
  236. data/emerald-browser/empty +0 -0
  237. data/emerald-browser/empty.c +1 -0
  238. data/emerald-browser/open +0 -0
  239. data/emerald-browser/open.c +57 -0
  240. data/emerald-browser/qmake.pro +23 -0
  241. data/emerald-browser/src/OUT +438 -0
  242. data/emerald-browser/src/a.cpp +303 -0
  243. data/emerald-browser/src/a.out +0 -0
  244. data/emerald-browser/src/ss.h +12 -0
  245. data/emerald-browser/src/t/fullscreennotification.cpp +98 -0
  246. data/emerald-browser/src/t/fullscreennotification.h +72 -0
  247. data/emerald-browser/src/t/fullscreenwindow.cpp +99 -0
  248. data/emerald-browser/src/t/fullscreenwindow.h +76 -0
  249. data/emerald-browser/src/t/main.cpp +64 -0
  250. data/emerald-browser/src/t/mainwindow.cpp +83 -0
  251. data/emerald-browser/src/t/mainwindow.h +75 -0
  252. data/emerald-browser/test/a.cpp +2 -0
  253. data/f +0 -0
  254. data/faster_googler +31 -0
  255. data/favicon.ico +0 -0
  256. data/foo +80 -0
  257. data/foo.c +39 -0
  258. data/foo.cpp +36 -0
  259. data/foo.js +25 -0
  260. data/free_icons/site/bulb +0 -0
  261. data/free_icons/site/chess +0 -0
  262. data/free_icons/site/compiz.svg +463 -0
  263. data/free_icons/site/cursor.svg +1 -0
  264. data/free_icons/site/dock +0 -0
  265. data/free_icons/site/gnu +0 -0
  266. data/free_icons/site/info.svg +200 -0
  267. data/free_icons/site/iphone.svg +222 -0
  268. data/free_icons/site/laptop +0 -0
  269. data/free_icons/site/magic.svg +856 -0
  270. data/free_icons/site/man +0 -0
  271. data/free_icons/site/mint +0 -0
  272. data/free_icons/site/mouse +0 -0
  273. data/free_icons/site/paint.svg +2640 -0
  274. data/free_icons/site/present +0 -0
  275. data/free_icons/site/python +0 -0
  276. data/free_icons/site/reality +0 -0
  277. data/free_icons/site/ruby +0 -0
  278. data/free_icons/site/skeptic +0 -0
  279. data/free_icons/site/terminal +0 -0
  280. data/free_icons/site/video.svg +358 -0
  281. data/free_icons/site/warning +0 -0
  282. data/free_icons/site/wikipedia.svg +553 -0
  283. data/free_icons/site/write.svg +287 -0
  284. data/g +0 -0
  285. data/graphical_help.c +6 -0
  286. data/gregory_coreutils/DOC +14 -0
  287. data/gregory_coreutils/build/Makefile +12 -0
  288. data/gregory_coreutils/build/code +1 -0
  289. data/gregory_coreutils/build/functions +465 -0
  290. data/gregory_coreutils/build/make +93 -0
  291. data/gregory_coreutils/build/mk +74 -0
  292. data/gregory_coreutils/build/regex +2 -0
  293. data/gregory_coreutils/build/ruby_functions +0 -0
  294. data/gregory_coreutils/utilities/abs +0 -0
  295. data/gregory_coreutils/utilities/add +0 -0
  296. data/gregory_coreutils/utilities/args +0 -0
  297. data/gregory_coreutils/utilities/black +0 -0
  298. data/gregory_coreutils/utilities/blue +0 -0
  299. data/gregory_coreutils/utilities/bold +0 -0
  300. data/gregory_coreutils/utilities/copy +0 -0
  301. data/gregory_coreutils/utilities/count +0 -0
  302. data/gregory_coreutils/utilities/cpy +0 -0
  303. data/gregory_coreutils/utilities/cyan +0 -0
  304. data/gregory_coreutils/utilities/div +0 -0
  305. data/gregory_coreutils/utilities/dump +0 -0
  306. data/gregory_coreutils/utilities/exp +0 -0
  307. data/gregory_coreutils/utilities/files +0 -0
  308. data/gregory_coreutils/utilities/floor +0 -0
  309. data/gregory_coreutils/utilities/green +0 -0
  310. data/gregory_coreutils/utilities/gsub +0 -0
  311. data/gregory_coreutils/utilities/gsub_in_place +0 -0
  312. data/gregory_coreutils/utilities/last_nth +0 -0
  313. data/gregory_coreutils/utilities/lines +0 -0
  314. data/gregory_coreutils/utilities/magenta +0 -0
  315. data/gregory_coreutils/utilities/mul +0 -0
  316. data/gregory_coreutils/utilities/nth +0 -0
  317. data/gregory_coreutils/utilities/red +0 -0
  318. data/gregory_coreutils/utilities/replace_in_place +0 -0
  319. data/gregory_coreutils/utilities/replace_not_in_place +0 -0
  320. data/gregory_coreutils/utilities/selectlines +0 -0
  321. data/gregory_coreutils/utilities/sort_in_place +0 -0
  322. data/gregory_coreutils/utilities/sub +0 -0
  323. data/gregory_coreutils/utilities/underline +0 -0
  324. data/gregory_coreutils/utilities/undump +0 -0
  325. data/gregory_coreutils/utilities/white +0 -0
  326. data/gregory_coreutils/utilities/yellow +0 -0
  327. data/gtk +3 -0
  328. data/html_file +0 -0
  329. data/html_file.html +92 -0
  330. data/i +181 -0
  331. data/index.html +38 -0
  332. data/index2.html +344 -0
  333. data/inspect.rb +209 -0
  334. data/lib/README +310 -0
  335. data/lib/__index.html +11 -0
  336. data/lib/because.rb +41 -0
  337. data/lib/code.js +28490 -0
  338. data/lib/compile +5 -0
  339. data/lib/conjunction.rb +49 -0
  340. data/lib/evidence.rb +45 -0
  341. data/lib/graphical_help +90 -0
  342. data/lib/however.rb +42 -0
  343. data/lib/index.html +49 -0
  344. data/lib/index2.html +344 -0
  345. data/lib/inputreceiver.rb +135 -0
  346. data/lib/item.rb +77 -0
  347. data/lib/itemlist.rb +50 -0
  348. data/lib/negative.rb +43 -0
  349. data/lib/neutral.rb +43 -0
  350. data/lib/outputter.rb +60 -0
  351. data/lib/p.rb +71 -0
  352. data/lib/positive.rb +41 -0
  353. data/lib/script.js +423 -0
  354. data/lib/string__.rb +110 -0
  355. data/lib/sub/file +5 -0
  356. data/man/foo.rb +6 -0
  357. data/man/gtk.html +1 -0
  358. data/man/out +7288 -0
  359. data/more/ac.desktop +12 -0
  360. data/more/res +1 -0
  361. data/more/web-speech-api/.git/HEAD +1 -0
  362. data/more/web-speech-api/.git/config +11 -0
  363. data/more/web-speech-api/.git/description +1 -0
  364. data/more/web-speech-api/.git/hooks/applypatch-msg.sample +15 -0
  365. data/more/web-speech-api/.git/hooks/commit-msg.sample +24 -0
  366. data/more/web-speech-api/.git/hooks/fsmonitor-watchman.sample +109 -0
  367. data/more/web-speech-api/.git/hooks/post-update.sample +8 -0
  368. data/more/web-speech-api/.git/hooks/pre-applypatch.sample +14 -0
  369. data/more/web-speech-api/.git/hooks/pre-commit.sample +49 -0
  370. data/more/web-speech-api/.git/hooks/pre-merge-commit.sample +13 -0
  371. data/more/web-speech-api/.git/hooks/pre-push.sample +53 -0
  372. data/more/web-speech-api/.git/hooks/pre-rebase.sample +169 -0
  373. data/more/web-speech-api/.git/hooks/pre-receive.sample +24 -0
  374. data/more/web-speech-api/.git/hooks/prepare-commit-msg.sample +42 -0
  375. data/more/web-speech-api/.git/hooks/update.sample +128 -0
  376. data/more/web-speech-api/.git/index +0 -0
  377. data/more/web-speech-api/.git/info/exclude +6 -0
  378. data/more/web-speech-api/.git/logs/HEAD +1 -0
  379. data/more/web-speech-api/.git/logs/refs/heads/master +1 -0
  380. data/more/web-speech-api/.git/logs/refs/remotes/origin/HEAD +1 -0
  381. data/more/web-speech-api/.git/objects/pack/pack-4d2adae000c513b287d53e24937e9e836954f901.idx +0 -0
  382. data/more/web-speech-api/.git/objects/pack/pack-4d2adae000c513b287d53e24937e9e836954f901.pack +0 -0
  383. data/more/web-speech-api/.git/packed-refs +2 -0
  384. data/more/web-speech-api/.git/refs/heads/master +1 -0
  385. data/more/web-speech-api/.git/refs/remotes/origin/HEAD +1 -0
  386. data/more/web-speech-api/CODE_OF_CONDUCT.md +15 -0
  387. data/more/web-speech-api/LICENSE +116 -0
  388. data/more/web-speech-api/README.md +23 -0
  389. data/more/web-speech-api/index.html +25 -0
  390. data/more/web-speech-api/phrase-matcher/index.html +30 -0
  391. data/more/web-speech-api/phrase-matcher/script.js +124 -0
  392. data/more/web-speech-api/phrase-matcher/style.css +54 -0
  393. data/more/web-speech-api/speak-easy-synthesis/img/ws128.png +0 -0
  394. data/more/web-speech-api/speak-easy-synthesis/img/ws512.png +0 -0
  395. data/more/web-speech-api/speak-easy-synthesis/index.html +43 -0
  396. data/more/web-speech-api/speak-easy-synthesis/manifest.webapp +14 -0
  397. data/more/web-speech-api/speak-easy-synthesis/script.js +87 -0
  398. data/more/web-speech-api/speak-easy-synthesis/style.css +74 -0
  399. data/more/web-speech-api/speech-color-changer/img/ws128.png +0 -0
  400. data/more/web-speech-api/speech-color-changer/img/ws512.png +0 -0
  401. data/more/web-speech-api/speech-color-changer/index.html +26 -0
  402. data/more/web-speech-api/speech-color-changer/manifest.webapp +23 -0
  403. data/more/web-speech-api/speech-color-changer/script.js +58 -0
  404. data/more/web-speech-api/speech-color-changer/style.css +38 -0
  405. data/opensrc +68 -0
  406. data/out +39 -0
  407. data/playsrc +14 -0
  408. data/program.c +11 -0
  409. data/program.prog +568 -0
  410. data/proj/a +0 -0
  411. data/proj/a.c +1 -0
  412. data/proj/a.o +0 -0
  413. data/proj/a.rs +18 -0
  414. data/proj/b.rs +22 -0
  415. data/proj/linker.sh +8 -0
  416. data/proj/save_last +4 -0
  417. data/push +16 -0
  418. data/q.cpp +175 -0
  419. data/qt/.qmake.stash +23 -0
  420. data/qt/Qt5Core.dll +0 -0
  421. data/qt/Qt5Gui.dll +0 -0
  422. data/qt/Qt5Multimedia.dll +0 -0
  423. data/qt/Qt5MultimediaWidgets.dll +0 -0
  424. data/qt/Qt5Network.dll +0 -0
  425. data/qt/Qt5PrintSupport.dll +0 -0
  426. data/qt/Qt5Qml.dll +0 -0
  427. data/qt/Qt5QmlModels.dll +0 -0
  428. data/qt/Qt5Quick.dll +0 -0
  429. data/qt/Qt5Sensors.dll +0 -0
  430. data/qt/Qt5WebChannel.dll +0 -0
  431. data/qt/Qt5WebKit.dll +0 -0
  432. data/qt/Qt5WebKitWidgets.dll +0 -0
  433. data/qt/Qt5Widgets.dll +0 -0
  434. data/qt/a.cpp +39 -0
  435. data/qt/a.out +0 -0
  436. data/qt/a.sh +7 -0
  437. data/qt/icudt66.dll +0 -0
  438. data/qt/icuin66.dll +0 -0
  439. data/qt/icuuc66.dll +0 -0
  440. data/qt/libbz2.dll +0 -0
  441. data/qt/libcrypto-1_1-x64.dll +0 -0
  442. data/qt/libfreetype-6.dll +0 -0
  443. data/qt/libgcc_s_seh-1.dll +0 -0
  444. data/qt/libglib-2.0-0.dll +0 -0
  445. data/qt/libharfbuzz-0.dll +0 -0
  446. data/qt/libiconv-2.dll +0 -0
  447. data/qt/libintl-8.dll +0 -0
  448. data/qt/libjpeg-9.dll +0 -0
  449. data/qt/liblzma-5.dll +0 -0
  450. data/qt/libpcre-1.dll +0 -0
  451. data/qt/libpcre2-16-0.dll +0 -0
  452. data/qt/libpng16-16.dll +0 -0
  453. data/qt/libsqlite3-0.dll +0 -0
  454. data/qt/libssl-1_1-x64.dll +0 -0
  455. data/qt/libstdc++-6.dll +0 -0
  456. data/qt/libwebp-7.dll +0 -0
  457. data/qt/libwinpthread-1.dll +0 -0
  458. data/qt/libxml2-2.dll +0 -0
  459. data/qt/libxslt-1.dll +0 -0
  460. data/qt/libzstd.dll +0 -0
  461. data/qt/prog +1 -0
  462. data/qt/qwindows.dll +0 -0
  463. data/qt/zlib1.dll +0 -0
  464. data/quickjs/.git/HEAD +1 -0
  465. data/quickjs/.git/config +11 -0
  466. data/quickjs/.git/description +1 -0
  467. data/quickjs/.git/hooks/applypatch-msg.sample +15 -0
  468. data/quickjs/.git/hooks/commit-msg.sample +24 -0
  469. data/quickjs/.git/hooks/fsmonitor-watchman.sample +109 -0
  470. data/quickjs/.git/hooks/post-update.sample +8 -0
  471. data/quickjs/.git/hooks/pre-applypatch.sample +14 -0
  472. data/quickjs/.git/hooks/pre-commit.sample +49 -0
  473. data/quickjs/.git/hooks/pre-merge-commit.sample +13 -0
  474. data/quickjs/.git/hooks/pre-push.sample +53 -0
  475. data/quickjs/.git/hooks/pre-rebase.sample +169 -0
  476. data/quickjs/.git/hooks/pre-receive.sample +24 -0
  477. data/quickjs/.git/hooks/prepare-commit-msg.sample +42 -0
  478. data/quickjs/.git/hooks/update.sample +128 -0
  479. data/quickjs/.git/index +0 -0
  480. data/quickjs/.git/info/exclude +6 -0
  481. data/quickjs/.git/logs/HEAD +1 -0
  482. data/quickjs/.git/logs/refs/heads/master +1 -0
  483. data/quickjs/.git/logs/refs/remotes/origin/HEAD +1 -0
  484. data/quickjs/.git/objects/pack/pack-744a13dba8773a756b22372ba65ded3aca50cdeb.idx +0 -0
  485. data/quickjs/.git/objects/pack/pack-744a13dba8773a756b22372ba65ded3aca50cdeb.pack +0 -0
  486. data/quickjs/.git/packed-refs +2 -0
  487. data/quickjs/.git/refs/heads/master +1 -0
  488. data/quickjs/.git/refs/remotes/origin/HEAD +1 -0
  489. data/quickjs/.obj/.d +1 -0
  490. data/quickjs/.obj/cutils.nolto.o +0 -0
  491. data/quickjs/.obj/cutils.o +0 -0
  492. data/quickjs/.obj/cutils.o.d +1 -0
  493. data/quickjs/.obj/hello.o +0 -0
  494. data/quickjs/.obj/hello.o.d +1 -0
  495. data/quickjs/.obj/libbf.nolto.o +0 -0
  496. data/quickjs/.obj/libbf.o +0 -0
  497. data/quickjs/.obj/libbf.o.d +1 -0
  498. data/quickjs/.obj/libregexp.nolto.o +0 -0
  499. data/quickjs/.obj/libregexp.o +0 -0
  500. data/quickjs/.obj/libregexp.o.d +2 -0
  501. data/quickjs/.obj/libunicode.nolto.o +0 -0
  502. data/quickjs/.obj/libunicode.o +0 -0
  503. data/quickjs/.obj/libunicode.o.d +1 -0
  504. data/quickjs/.obj/qjs.check.o +0 -0
  505. data/quickjs/.obj/qjs.check.o.d +1 -0
  506. data/quickjs/.obj/qjs.o +0 -0
  507. data/quickjs/.obj/qjs.o.d +1 -0
  508. data/quickjs/.obj/qjsc.o +0 -0
  509. data/quickjs/.obj/qjsc.o.d +1 -0
  510. data/quickjs/.obj/qjscalc.o +0 -0
  511. data/quickjs/.obj/qjscalc.o.d +1 -0
  512. data/quickjs/.obj/quickjs-libc.nolto.o +0 -0
  513. data/quickjs/.obj/quickjs-libc.o +0 -0
  514. data/quickjs/.obj/quickjs-libc.o.d +2 -0
  515. data/quickjs/.obj/quickjs.check.o +0 -0
  516. data/quickjs/.obj/quickjs.check.o.d +2 -0
  517. data/quickjs/.obj/quickjs.nolto.o +0 -0
  518. data/quickjs/.obj/quickjs.o +0 -0
  519. data/quickjs/.obj/quickjs.o.d +2 -0
  520. data/quickjs/.obj/repl.o +0 -0
  521. data/quickjs/.obj/repl.o.d +1 -0
  522. data/quickjs/.obj/run-test262.o +0 -0
  523. data/quickjs/.obj/run-test262.o.d +2 -0
  524. data/quickjs/COMPILE_WIN +1 -0
  525. data/quickjs/Changelog +148 -0
  526. data/quickjs/LICENSE +22 -0
  527. data/quickjs/Makefile +470 -0
  528. data/quickjs/TODO +70 -0
  529. data/quickjs/VERSION +1 -0
  530. data/quickjs/a.c +50038 -0
  531. data/quickjs/a.js +26075 -0
  532. data/quickjs/a.rb +3 -0
  533. data/quickjs/cutils.c +631 -0
  534. data/quickjs/cutils.h +297 -0
  535. data/quickjs/doc/jsbignum.texi +589 -0
  536. data/quickjs/doc/quickjs.texi +1097 -0
  537. data/quickjs/examples/fib.c +72 -0
  538. data/quickjs/examples/fib_module.js +10 -0
  539. data/quickjs/examples/hello +0 -0
  540. data/quickjs/examples/hello.js +1 -0
  541. data/quickjs/examples/hello_module.js +6 -0
  542. data/quickjs/examples/pi_bigdecimal.js +68 -0
  543. data/quickjs/examples/pi_bigfloat.js +66 -0
  544. data/quickjs/examples/pi_bigint.js +118 -0
  545. data/quickjs/examples/point.c +151 -0
  546. data/quickjs/examples/test_fib.js +6 -0
  547. data/quickjs/examples/test_point.js +40 -0
  548. data/quickjs/hello.c +44 -0
  549. data/quickjs/libbf.c +8466 -0
  550. data/quickjs/libbf.h +535 -0
  551. data/quickjs/libquickjs.a +0 -0
  552. data/quickjs/libquickjs.lto.a +0 -0
  553. data/quickjs/libregexp-opcode.h +58 -0
  554. data/quickjs/libregexp.c +2610 -0
  555. data/quickjs/libregexp.h +92 -0
  556. data/quickjs/libunicode-table.h +4368 -0
  557. data/quickjs/libunicode.c +1556 -0
  558. data/quickjs/libunicode.h +124 -0
  559. data/quickjs/libwinpthread-1.dll +0 -0
  560. data/quickjs/list.h +100 -0
  561. data/quickjs/out.c +24 -0
  562. data/quickjs/out55.c +59 -0
  563. data/quickjs/out56.c +79 -0
  564. data/quickjs/out57.c +24 -0
  565. data/quickjs/out58.c +4 -0
  566. data/quickjs/p.exe +0 -0
  567. data/quickjs/qjs +0 -0
  568. data/quickjs/qjs.c +570 -0
  569. data/quickjs/qjsc +0 -0
  570. data/quickjs/qjsc.c +762 -0
  571. data/quickjs/qjsc.exe +0 -0
  572. data/quickjs/qjscalc.c +4005 -0
  573. data/quickjs/qjscalc.js +2657 -0
  574. data/quickjs/quickjs-atom.h +273 -0
  575. data/quickjs/quickjs-libc.c +3927 -0
  576. data/quickjs/quickjs-libc.h +59 -0
  577. data/quickjs/quickjs-opcode.h +365 -0
  578. data/quickjs/quickjs.c +54036 -0
  579. data/quickjs/quickjs.h +1049 -0
  580. data/quickjs/readme.txt +1 -0
  581. data/quickjs/release.sh +158 -0
  582. data/quickjs/repl.c +2020 -0
  583. data/quickjs/repl.js +1566 -0
  584. data/quickjs/run-test262 +0 -0
  585. data/quickjs/run-test262.c +2107 -0
  586. data/quickjs/test262.conf +199 -0
  587. data/quickjs/test262_errors.txt +35 -0
  588. data/quickjs/test262o.conf +410 -0
  589. data/quickjs/test262o_errors.txt +0 -0
  590. data/quickjs/tests/bjson.c +96 -0
  591. data/quickjs/tests/microbench.js +1065 -0
  592. data/quickjs/tests/test262.patch +71 -0
  593. data/quickjs/tests/test_bignum.js +326 -0
  594. data/quickjs/tests/test_bjson.js +191 -0
  595. data/quickjs/tests/test_builtin.js +685 -0
  596. data/quickjs/tests/test_closure.js +221 -0
  597. data/quickjs/tests/test_language.js +547 -0
  598. data/quickjs/tests/test_loop.js +368 -0
  599. data/quickjs/tests/test_op_overloading.js +207 -0
  600. data/quickjs/tests/test_qjscalc.js +256 -0
  601. data/quickjs/tests/test_std.js +281 -0
  602. data/quickjs/tests/test_worker.js +62 -0
  603. data/quickjs/tests/test_worker_module.js +31 -0
  604. data/quickjs/unicode_download.sh +19 -0
  605. data/quickjs/unicode_gen.c +3057 -0
  606. data/quickjs/unicode_gen_def.h +284 -0
  607. data/readline +3 -0
  608. data/rm_com +1 -0
  609. data/run.sh +13 -0
  610. data/scaling +6 -0
  611. data/script.js +572 -0
  612. data/server_creator/__ +307 -0
  613. data/server_creator/a/a (1).tar.gz +0 -0
  614. data/server_creator/a/a.out +0 -0
  615. data/server_creator/a/hello_world +0 -0
  616. data/server_creator/a/help +57 -0
  617. data/server_creator/a/main_v1.cpp +83 -0
  618. data/server_creator/a/my_libs_gregory/.deps +0 -0
  619. data/server_creator/a/my_libs_gregory/.libs/mod_my_libs_gregory.lai +41 -0
  620. data/server_creator/a/my_libs_gregory/.libs/mod_my_libs_gregory.o +0 -0
  621. data/server_creator/a/my_libs_gregory/.libs/mod_my_libs_gregory.so +0 -0
  622. data/server_creator/a/my_libs_gregory/mod_my_libs_gregory.c +72 -0
  623. data/server_creator/a/my_libs_gregory/mod_my_libs_gregory.la +41 -0
  624. data/server_creator/a/my_libs_gregory/mod_my_libs_gregory.lo +12 -0
  625. data/server_creator/a/my_libs_gregory/mod_my_libs_gregory.slo +0 -0
  626. data/server_creator/a/nginx.conf +32 -0
  627. data/server_creator/a/six +1 -0
  628. data/server_creator/a.out +0 -0
  629. data/server_creator/all_code.cpp +448 -0
  630. data/server_creator/all_code.js +27 -0
  631. data/server_creator/code +510 -0
  632. data/server_creator/make_application +64 -0
  633. data/server_creator/prog.cpp +33 -0
  634. data/server_creator/prog.js +22 -0
  635. data/server_creator/program.js +745 -0
  636. data/server_creator/rm_com +1 -0
  637. data/server_creator/test.sh +82 -0
  638. data/speakcat.rb +9 -0
  639. data/string +48 -0
  640. data/super_trans +83 -0
  641. data/test.sh +21 -0
  642. data/todo +8 -0
  643. data/version_decrement +3 -0
  644. data/viu_license +21 -0
  645. data/windows/program.c +21 -0
  646. data/windows/program.exe +0 -0
  647. metadata +759 -0
data/quickjs/LICENSE ADDED
@@ -0,0 +1,22 @@
1
+ QuickJS Javascript Engine
2
+
3
+ Copyright (c) 2017-2021 Fabrice Bellard
4
+ Copyright (c) 2017-2021 Charlie Gordon
5
+
6
+ Permission is hereby granted, free of charge, to any person obtaining a copy
7
+ of this software and associated documentation files (the "Software"), to deal
8
+ in the Software without restriction, including without limitation the rights
9
+ to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
10
+ copies of the Software, and to permit persons to whom the Software is
11
+ furnished to do so, subject to the following conditions:
12
+
13
+ The above copyright notice and this permission notice shall be included in
14
+ all copies or substantial portions of the Software.
15
+
16
+ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
17
+ IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
18
+ FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL
19
+ THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
20
+ LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
21
+ OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
22
+ THE SOFTWARE.
data/quickjs/Makefile ADDED
@@ -0,0 +1,470 @@
1
+ #
2
+ # QuickJS Javascript Engine
3
+ #
4
+ # Copyright (c) 2017-2021 Fabrice Bellard
5
+ # Copyright (c) 2017-2021 Charlie Gordon
6
+ #
7
+ # Permission is hereby granted, free of charge, to any person obtaining a copy
8
+ # of this software and associated documentation files (the "Software"), to deal
9
+ # in the Software without restriction, including without limitation the rights
10
+ # to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
11
+ # copies of the Software, and to permit persons to whom the Software is
12
+ # furnished to do so, subject to the following conditions:
13
+ #
14
+ # The above copyright notice and this permission notice shall be included in
15
+ # all copies or substantial portions of the Software.
16
+ #
17
+ # THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
18
+ # IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
19
+ # FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL
20
+ # THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
21
+ # LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
22
+ # OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
23
+ # THE SOFTWARE.
24
+
25
+ ifeq ($(shell uname -s),Darwin)
26
+ CONFIG_DARWIN=y
27
+ endif
28
+ # Windows cross compilation from Linux
29
+ #CONFIG_WIN32=y
30
+ # use link time optimization (smaller and faster executables but slower build)
31
+ CONFIG_LTO=y
32
+ # consider warnings as errors (for development)
33
+ #CONFIG_WERROR=y
34
+ # force 32 bit build for some utilities
35
+ #CONFIG_M32=y
36
+
37
+ ifdef CONFIG_DARWIN
38
+ # use clang instead of gcc
39
+ CONFIG_CLANG=y
40
+ CONFIG_DEFAULT_AR=y
41
+ endif
42
+
43
+ # installation directory
44
+ prefix=/usr/local
45
+
46
+ # use the gprof profiler
47
+ #CONFIG_PROFILE=y
48
+ # use address sanitizer
49
+ #CONFIG_ASAN=y
50
+ # include the code for BigInt/BigFloat/BigDecimal and math mode
51
+ CONFIG_BIGNUM=y
52
+
53
+ OBJDIR=.obj
54
+
55
+ ifdef CONFIG_WIN32
56
+ ifdef CONFIG_M32
57
+ CROSS_PREFIX=i686-w64-mingw32-
58
+ else
59
+ CROSS_PREFIX=x86_64-w64-mingw32-
60
+ endif
61
+ EXE=.exe
62
+ else
63
+ CROSS_PREFIX=
64
+ EXE=
65
+ endif
66
+ ifdef CONFIG_CLANG
67
+ HOST_CC=clang
68
+ CC=$(CROSS_PREFIX)clang
69
+ CFLAGS=-g -Wall -MMD -MF $(OBJDIR)/$(@F).d
70
+ CFLAGS += -Wextra
71
+ CFLAGS += -Wno-sign-compare
72
+ CFLAGS += -Wno-missing-field-initializers
73
+ CFLAGS += -Wundef -Wuninitialized
74
+ CFLAGS += -Wunused -Wno-unused-parameter
75
+ CFLAGS += -Wwrite-strings
76
+ CFLAGS += -Wchar-subscripts -funsigned-char
77
+ CFLAGS += -MMD -MF $(OBJDIR)/$(@F).d
78
+ ifdef CONFIG_DEFAULT_AR
79
+ AR=$(CROSS_PREFIX)ar
80
+ else
81
+ ifdef CONFIG_LTO
82
+ AR=$(CROSS_PREFIX)llvm-ar
83
+ else
84
+ AR=$(CROSS_PREFIX)ar
85
+ endif
86
+ endif
87
+ else
88
+ HOST_CC=gcc
89
+ CC=$(CROSS_PREFIX)gcc
90
+ CFLAGS=-g -Wall -MMD -MF $(OBJDIR)/$(@F).d
91
+ CFLAGS += -Wno-array-bounds -Wno-format-truncation
92
+ ifdef CONFIG_LTO
93
+ AR=$(CROSS_PREFIX)gcc-ar
94
+ else
95
+ AR=$(CROSS_PREFIX)ar
96
+ endif
97
+ endif
98
+ STRIP=$(CROSS_PREFIX)strip
99
+ ifdef CONFIG_WERROR
100
+ CFLAGS+=-Werror
101
+ endif
102
+ DEFINES:=-D_GNU_SOURCE -DCONFIG_VERSION=\"$(shell cat VERSION)\"
103
+ ifdef CONFIG_BIGNUM
104
+ DEFINES+=-DCONFIG_BIGNUM
105
+ endif
106
+ ifdef CONFIG_WIN32
107
+ DEFINES+=-D__USE_MINGW_ANSI_STDIO # for standard snprintf behavior
108
+ endif
109
+
110
+ CFLAGS+=$(DEFINES)
111
+ CFLAGS_DEBUG=$(CFLAGS) -O0
112
+ CFLAGS_SMALL=$(CFLAGS) -Os
113
+ CFLAGS_OPT=$(CFLAGS) -O2
114
+ CFLAGS_NOLTO:=$(CFLAGS_OPT)
115
+ LDFLAGS=-g
116
+ ifdef CONFIG_LTO
117
+ CFLAGS_SMALL+=-flto
118
+ CFLAGS_OPT+=-flto
119
+ LDFLAGS+=-flto
120
+ endif
121
+ ifdef CONFIG_PROFILE
122
+ CFLAGS+=-p
123
+ LDFLAGS+=-p
124
+ endif
125
+ ifdef CONFIG_ASAN
126
+ CFLAGS+=-fsanitize=address -fno-omit-frame-pointer
127
+ LDFLAGS+=-fsanitize=address -fno-omit-frame-pointer
128
+ endif
129
+ ifdef CONFIG_WIN32
130
+ LDEXPORT=
131
+ else
132
+ LDEXPORT=
133
+ endif
134
+
135
+ PROGS=qjs$(EXE) qjsc$(EXE) run-test262
136
+ ifneq ($(CROSS_PREFIX),)
137
+ QJSC_CC=gcc
138
+ QJSC=./host-qjsc
139
+ PROGS+=$(QJSC)
140
+ else
141
+ QJSC_CC=$(CC)
142
+ QJSC=/usr/bin/env qjsc$(EXE)
143
+ endif
144
+ ifndef CONFIG_WIN32
145
+ PROGS+=qjscalc
146
+ endif
147
+ ifdef CONFIG_M32
148
+ PROGS+=qjs32 qjs32_s
149
+ endif
150
+ PROGS+=libquickjs.a
151
+ ifdef CONFIG_LTO
152
+ PROGS+=libquickjs.lto.a
153
+ endif
154
+
155
+ # examples
156
+ ifeq ($(CROSS_PREFIX),)
157
+ ifdef CONFIG_ASAN
158
+ PROGS+=
159
+ else
160
+ PROGS+=examples/hello examples/hello_module examples/test_fib
161
+ ifndef CONFIG_DARWIN
162
+ PROGS+=examples/fib.so examples/point.so
163
+ endif
164
+ endif
165
+ endif
166
+
167
+ all: $(OBJDIR) $(OBJDIR)/quickjs.check.o $(OBJDIR)/qjs.check.o $(PROGS)
168
+
169
+ QJS_LIB_OBJS=$(OBJDIR)/quickjs.o $(OBJDIR)/libregexp.o $(OBJDIR)/libunicode.o $(OBJDIR)/cutils.o $(OBJDIR)/quickjs-libc.o
170
+
171
+ QJS_OBJS=$(OBJDIR)/qjs.o $(OBJDIR)/repl.o $(QJS_LIB_OBJS)
172
+ ifdef CONFIG_BIGNUM
173
+ QJS_LIB_OBJS+=$(OBJDIR)/libbf.o
174
+ QJS_OBJS+=$(OBJDIR)/qjscalc.o
175
+ endif
176
+
177
+ HOST_LIBS=-lm -ldl -lpthread
178
+ LIBS=-lm
179
+ ifndef CONFIG_WIN32
180
+ LIBS+=-ldl -lpthread
181
+ endif
182
+ LIBS+=$(EXTRA_LIBS)
183
+
184
+ $(OBJDIR):
185
+ mkdir -p $(OBJDIR) $(OBJDIR)/examples $(OBJDIR)/tests
186
+
187
+ qjs$(EXE): $(QJS_OBJS)
188
+ $(CC) $(LDFLAGS) $(LDEXPORT) -o $@ $^ $(LIBS)
189
+
190
+ qjs-debug$(EXE): $(patsubst %.o, %.debug.o, $(QJS_OBJS))
191
+ $(CC) $(LDFLAGS) -o $@ $^ $(LIBS)
192
+
193
+ qjsc$(EXE): $(OBJDIR)/qjsc.o $(QJS_LIB_OBJS)
194
+ $(CC) $(LDFLAGS) -o $@ $^ $(LIBS)
195
+
196
+ ifneq ($(CROSS_PREFIX),)
197
+
198
+ $(QJSC): $(OBJDIR)/qjsc.host.o \
199
+ $(patsubst %.o, %.host.o, $(QJS_LIB_OBJS))
200
+ $(HOST_CC) $(LDFLAGS) -o $@ $^ $(HOST_LIBS)
201
+
202
+ endif #CROSS_PREFIX
203
+
204
+ QJSC_DEFINES:=-DCONFIG_CC=\"$(QJSC_CC)\" -DCONFIG_PREFIX=\"$(prefix)\"
205
+ ifdef CONFIG_LTO
206
+ QJSC_DEFINES+=-DCONFIG_LTO
207
+ endif
208
+ QJSC_HOST_DEFINES:=-DCONFIG_CC=\"$(HOST_CC)\" -DCONFIG_PREFIX=\"$(prefix)\"
209
+
210
+ $(OBJDIR)/qjsc.o: CFLAGS+=$(QJSC_DEFINES)
211
+ $(OBJDIR)/qjsc.host.o: CFLAGS+=$(QJSC_HOST_DEFINES)
212
+
213
+ qjs32: $(patsubst %.o, %.m32.o, $(QJS_OBJS))
214
+ $(CC) -m32 $(LDFLAGS) $(LDEXPORT) -o $@ $^ $(LIBS)
215
+
216
+ qjs32_s: $(patsubst %.o, %.m32s.o, $(QJS_OBJS))
217
+ $(CC) -m32 $(LDFLAGS) -o $@ $^ $(LIBS)
218
+ @size $@
219
+
220
+ qjscalc: qjs
221
+ ln -sf $< $@
222
+
223
+ ifdef CONFIG_LTO
224
+ LTOEXT=.lto
225
+ else
226
+ LTOEXT=
227
+ endif
228
+
229
+ libquickjs$(LTOEXT).a: $(QJS_LIB_OBJS)
230
+ $(AR) rcs $@ $^
231
+
232
+ ifdef CONFIG_LTO
233
+ libquickjs.a: $(patsubst %.o, %.nolto.o, $(QJS_LIB_OBJS))
234
+ $(AR) rcs $@ $^
235
+ endif # CONFIG_LTO
236
+
237
+ repl.c: $(QJSC) repl.js
238
+ $(QJSC) -c -o $@ -m repl.js
239
+
240
+ qjscalc.c: $(QJSC) qjscalc.js
241
+ $(QJSC) -fbignum -c -o $@ qjscalc.js
242
+
243
+ ifneq ($(wildcard unicode/UnicodeData.txt),)
244
+ $(OBJDIR)/libunicode.o $(OBJDIR)/libunicode.m32.o $(OBJDIR)/libunicode.m32s.o \
245
+ $(OBJDIR)/libunicode.nolto.o: libunicode-table.h
246
+
247
+ libunicode-table.h: unicode_gen
248
+ ./unicode_gen unicode $@
249
+ endif
250
+
251
+ run-test262: $(OBJDIR)/run-test262.o $(QJS_LIB_OBJS)
252
+ $(CC) $(LDFLAGS) -o $@ $^ $(LIBS)
253
+
254
+ run-test262-debug: $(patsubst %.o, %.debug.o, $(OBJDIR)/run-test262.o $(QJS_LIB_OBJS))
255
+ $(CC) $(LDFLAGS) -o $@ $^ $(LIBS)
256
+
257
+ run-test262-32: $(patsubst %.o, %.m32.o, $(OBJDIR)/run-test262.o $(QJS_LIB_OBJS))
258
+ $(CC) -m32 $(LDFLAGS) -o $@ $^ $(LIBS)
259
+
260
+ # object suffix order: nolto, [m32|m32s]
261
+
262
+ $(OBJDIR)/%.o: %.c | $(OBJDIR)
263
+ $(CC) $(CFLAGS_OPT) -c -o $@ $<
264
+
265
+ $(OBJDIR)/%.host.o: %.c | $(OBJDIR)
266
+ $(HOST_CC) $(CFLAGS_OPT) -c -o $@ $<
267
+
268
+ $(OBJDIR)/%.pic.o: %.c | $(OBJDIR)
269
+ $(CC) $(CFLAGS_OPT) -fPIC -DJS_SHARED_LIBRARY -c -o $@ $<
270
+
271
+ $(OBJDIR)/%.nolto.o: %.c | $(OBJDIR)
272
+ $(CC) $(CFLAGS_NOLTO) -c -o $@ $<
273
+
274
+ $(OBJDIR)/%.m32.o: %.c | $(OBJDIR)
275
+ $(CC) -m32 $(CFLAGS_OPT) -c -o $@ $<
276
+
277
+ $(OBJDIR)/%.m32s.o: %.c | $(OBJDIR)
278
+ $(CC) -m32 $(CFLAGS_SMALL) -c -o $@ $<
279
+
280
+ $(OBJDIR)/%.debug.o: %.c | $(OBJDIR)
281
+ $(CC) $(CFLAGS_DEBUG) -c -o $@ $<
282
+
283
+ $(OBJDIR)/%.check.o: %.c | $(OBJDIR)
284
+ $(CC) $(CFLAGS) -DCONFIG_CHECK_JSVALUE -c -o $@ $<
285
+
286
+ regexp_test: libregexp.c libunicode.c cutils.c
287
+ $(CC) $(LDFLAGS) $(CFLAGS) -DTEST -o $@ libregexp.c libunicode.c cutils.c $(LIBS)
288
+
289
+ unicode_gen: $(OBJDIR)/unicode_gen.host.o $(OBJDIR)/cutils.host.o libunicode.c unicode_gen_def.h
290
+ $(HOST_CC) $(LDFLAGS) $(CFLAGS) -o $@ $(OBJDIR)/unicode_gen.host.o $(OBJDIR)/cutils.host.o
291
+
292
+ clean:
293
+ rm -f repl.c qjscalc.c out.c
294
+ rm -f *.a *.o *.d *~ unicode_gen regexp_test $(PROGS)
295
+ rm -f hello.c test_fib.c
296
+ rm -f examples/*.so tests/*.so
297
+ rm -rf $(OBJDIR)/ *.dSYM/ qjs-debug
298
+ rm -rf run-test262-debug run-test262-32
299
+
300
+ install: all
301
+ mkdir -p "$(DESTDIR)$(prefix)/bin"
302
+ $(STRIP) qjs qjsc
303
+ install -m755 qjs qjsc "$(DESTDIR)$(prefix)/bin"
304
+ ln -sf qjs "$(DESTDIR)$(prefix)/bin/qjscalc"
305
+ mkdir -p "$(DESTDIR)$(prefix)/lib/quickjs"
306
+ install -m644 libquickjs.a "$(DESTDIR)$(prefix)/lib/quickjs"
307
+ ifdef CONFIG_LTO
308
+ install -m644 libquickjs.lto.a "$(DESTDIR)$(prefix)/lib/quickjs"
309
+ endif
310
+ mkdir -p "$(DESTDIR)$(prefix)/include/quickjs"
311
+ install -m644 quickjs.h quickjs-libc.h "$(DESTDIR)$(prefix)/include/quickjs"
312
+
313
+ ###############################################################################
314
+ # examples
315
+
316
+ # example of static JS compilation
317
+ HELLO_SRCS=examples/hello.js
318
+ HELLO_OPTS=-fno-string-normalize -fno-map -fno-promise -fno-typedarray \
319
+ -fno-typedarray -fno-regexp -fno-json -fno-eval -fno-proxy \
320
+ -fno-date -fno-module-loader
321
+ ifdef CONFIG_BIGNUM
322
+ HELLO_OPTS+=-fno-bigint
323
+ endif
324
+
325
+ hello.c: $(QJSC) $(HELLO_SRCS)
326
+ $(QJSC) -e $(HELLO_OPTS) -o $@ $(HELLO_SRCS)
327
+
328
+ ifdef CONFIG_M32
329
+ examples/hello: $(OBJDIR)/hello.m32s.o $(patsubst %.o, %.m32s.o, $(QJS_LIB_OBJS))
330
+ $(CC) -m32 $(LDFLAGS) -o $@ $^ $(LIBS)
331
+ else
332
+ examples/hello: $(OBJDIR)/hello.o $(QJS_LIB_OBJS)
333
+ $(CC) $(LDFLAGS) -o $@ $^ $(LIBS)
334
+ endif
335
+
336
+ # example of static JS compilation with modules
337
+ HELLO_MODULE_SRCS=examples/hello_module.js
338
+ HELLO_MODULE_OPTS=-fno-string-normalize -fno-map -fno-promise -fno-typedarray \
339
+ -fno-typedarray -fno-regexp -fno-json -fno-eval -fno-proxy \
340
+ -fno-date -m
341
+ examples/hello_module: $(QJSC) libquickjs$(LTOEXT).a $(HELLO_MODULE_SRCS)
342
+ $(QJSC) $(HELLO_MODULE_OPTS) -o $@ $(HELLO_MODULE_SRCS)
343
+
344
+ # use of an external C module (static compilation)
345
+
346
+ test_fib.c: $(QJSC) examples/test_fib.js
347
+ $(QJSC) -e -M examples/fib.so,fib -m -o $@ examples/test_fib.js
348
+
349
+ examples/test_fib: $(OBJDIR)/test_fib.o $(OBJDIR)/examples/fib.o libquickjs$(LTOEXT).a
350
+ $(CC) $(LDFLAGS) -o $@ $^ $(LIBS)
351
+
352
+ examples/fib.so: $(OBJDIR)/examples/fib.pic.o
353
+ $(CC) $(LDFLAGS) -shared -o $@ $^
354
+
355
+ examples/point.so: $(OBJDIR)/examples/point.pic.o
356
+ $(CC) $(LDFLAGS) -shared -o $@ $^
357
+
358
+ ###############################################################################
359
+ # documentation
360
+
361
+ DOCS=doc/quickjs.pdf doc/quickjs.html doc/jsbignum.pdf doc/jsbignum.html
362
+
363
+ build_doc: $(DOCS)
364
+
365
+ clean_doc:
366
+ rm -f $(DOCS)
367
+
368
+ doc/%.pdf: doc/%.texi
369
+ texi2pdf --clean -o $@ -q $<
370
+
371
+ doc/%.html.pre: doc/%.texi
372
+ makeinfo --html --no-headers --no-split --number-sections -o $@ $<
373
+
374
+ doc/%.html: doc/%.html.pre
375
+ sed -e 's|</style>|</style>\n<meta name="viewport" content="width=device-width, initial-scale=1.0">|' < $< > $@
376
+
377
+ ###############################################################################
378
+ # tests
379
+
380
+ ifndef CONFIG_DARWIN
381
+ test: tests/bjson.so examples/point.so
382
+ endif
383
+ ifdef CONFIG_M32
384
+ test: qjs32
385
+ endif
386
+
387
+ test: qjs
388
+ ./qjs tests/test_closure.js
389
+ ./qjs tests/test_language.js
390
+ ./qjs tests/test_builtin.js
391
+ ./qjs tests/test_loop.js
392
+ ./qjs tests/test_std.js
393
+ ./qjs tests/test_worker.js
394
+ ifndef CONFIG_DARWIN
395
+ ifdef CONFIG_BIGNUM
396
+ ./qjs --bignum tests/test_bjson.js
397
+ else
398
+ ./qjs tests/test_bjson.js
399
+ endif
400
+ ./qjs examples/test_point.js
401
+ endif
402
+ ifdef CONFIG_BIGNUM
403
+ ./qjs --bignum tests/test_op_overloading.js
404
+ ./qjs --bignum tests/test_bignum.js
405
+ ./qjs --qjscalc tests/test_qjscalc.js
406
+ endif
407
+ ifdef CONFIG_M32
408
+ ./qjs32 tests/test_closure.js
409
+ ./qjs32 tests/test_language.js
410
+ ./qjs32 tests/test_builtin.js
411
+ ./qjs32 tests/test_loop.js
412
+ ./qjs32 tests/test_std.js
413
+ ./qjs32 tests/test_worker.js
414
+ ifdef CONFIG_BIGNUM
415
+ ./qjs32 --bignum tests/test_op_overloading.js
416
+ ./qjs32 --bignum tests/test_bignum.js
417
+ ./qjs32 --qjscalc tests/test_qjscalc.js
418
+ endif
419
+ endif
420
+
421
+ stats: qjs qjs32
422
+ ./qjs -qd
423
+ ./qjs32 -qd
424
+
425
+ microbench: qjs
426
+ ./qjs tests/microbench.js
427
+
428
+ microbench-32: qjs32
429
+ ./qjs32 tests/microbench.js
430
+
431
+ # ES5 tests (obsolete)
432
+ test2o: run-test262
433
+ time ./run-test262 -m -c test262o.conf
434
+
435
+ test2o-32: run-test262-32
436
+ time ./run-test262-32 -m -c test262o.conf
437
+
438
+ test2o-update: run-test262
439
+ ./run-test262 -u -c test262o.conf
440
+
441
+ # Test262 tests
442
+ test2-default: run-test262
443
+ time ./run-test262 -m -c test262.conf
444
+
445
+ test2: run-test262
446
+ time ./run-test262 -m -c test262.conf -a
447
+
448
+ test2-32: run-test262-32
449
+ time ./run-test262-32 -m -c test262.conf -a
450
+
451
+ test2-update: run-test262
452
+ ./run-test262 -u -c test262.conf -a
453
+
454
+ test2-check: run-test262
455
+ time ./run-test262 -m -c test262.conf -E -a
456
+
457
+ testall: all test microbench test2o test2
458
+
459
+ testall-32: all test-32 microbench-32 test2o-32 test2-32
460
+
461
+ testall-complete: testall testall-32
462
+
463
+ bench-v8: qjs
464
+ make -C tests/bench-v8
465
+ ./qjs -d tests/bench-v8/combined.js
466
+
467
+ tests/bjson.so: $(OBJDIR)/tests/bjson.pic.o
468
+ $(CC) $(LDFLAGS) -shared -o $@ $^ $(LIBS)
469
+
470
+ -include $(wildcard $(OBJDIR)/*.d)
data/quickjs/TODO ADDED
@@ -0,0 +1,70 @@
1
+ Bugs:
2
+ - modules: better error handling with cyclic module references
3
+
4
+ Misc ideas:
5
+ - use custom printf to avoid compatibility issues with floating point numbers
6
+ - consistent naming for preprocessor defines
7
+ - unify coding style and naming conventions
8
+ - use names from the ECMA spec in library implementation
9
+ - use byte code emitters with typed arguments (for clarity)
10
+ - use 2 bytecode DynBufs in JSFunctionDef, one for reading, one for writing
11
+ and use the same wrappers in all phases
12
+ - use more generic method for line numbers in resolve_variables and resolve_labels
13
+ - use custom timezone support to avoid C library compatibility issues
14
+
15
+ Memory:
16
+ - use memory pools for objects, etc?
17
+ - test border cases for max number of atoms, object properties, string length
18
+ - add emergency malloc mode for out of memory exceptions.
19
+ - test all DynBuf memory errors
20
+ - test all js_realloc memory errors
21
+ - improve JS_ComputeMemoryUsage() with more info
22
+
23
+ Built-in standard library:
24
+ - BSD sockets
25
+ - modules: use realpath in module name normalizer and put it in quickjs-libc
26
+ - modules: if no ".", use a well known module loading path ?
27
+ - get rid of __loadScript, use more common name
28
+
29
+ REPL:
30
+ - debugger
31
+ - readline: support MS Windows terminal
32
+ - readline: handle dynamic terminal resizing
33
+ - readline: handle double width unicode characters
34
+ - multiline editing
35
+ - runtime object and function inspectors
36
+ - interactive object browser
37
+ - use more generic approach to display evaluation results
38
+ - improve directive handling: dispatch, colorize, completion...
39
+ - save history
40
+ - close all predefined methods in repl.js and jscalc.js
41
+
42
+ Optimization ideas:
43
+ - 64-bit atoms in 64-bit mode ?
44
+ - 64-bit small bigint in 64-bit mode ?
45
+ - reuse stack slots for disjoint scopes, if strip
46
+ - add heuristic to avoid some cycles in closures
47
+ - small String (0-2 charcodes) with immediate storage
48
+ - perform static string concatenation at compile time
49
+ - optimize string concatenation with ropes or miniropes?
50
+ - add implicit numeric strings for Uint32 numbers?
51
+ - optimize `s += a + b`, `s += a.b` and similar simple expressions
52
+ - ensure string canonical representation and optimise comparisons and hashes?
53
+ - remove JSObject.first_weak_ref, use bit+context based hashed array for weak references
54
+ - property access optimization on the global object, functions,
55
+ prototypes and special non extensible objects.
56
+ - create object literals with the correct length by backpatching length argument
57
+ - remove redundant set_loc_uninitialized/check_uninitialized opcodes
58
+ - peephole optim: push_atom_value, to_propkey -> push_atom_value
59
+ - peephole optim: put_loc x, get_loc_check x -> set_loc x
60
+ - convert slow array to fast array when all properties != length are numeric
61
+ - optimize destructuring assignments for global and local variables
62
+ - implement some form of tail-call-optimization
63
+ - optimize OP_apply
64
+ - optimize f(...b)
65
+
66
+ Test262o: 0/11262 errors, 463 excluded
67
+ Test262o commit: 7da91bceb9ce7613f87db47ddd1292a2dda58b42 (es5-tests branch)
68
+
69
+ Result: 35/75280 errors, 909 excluded, 585 skipped
70
+ Test262 commit: 31126581e7290f9233c29cefd93f66c6ac78f1c9
data/quickjs/VERSION ADDED
@@ -0,0 +1 @@
1
+ 2021-03-27