galaaz 0.4.10 → 2.0.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 (391) hide show
  1. checksums.yaml +4 -4
  2. data/CHANGELOG.md +26 -0
  3. data/LICENSE +0 -0
  4. data/README.md +3123 -882
  5. data/Rakefile +62 -41
  6. data/bin/galaaz-bootstrap +137 -0
  7. data/bin/galaaz-jruby +14 -0
  8. data/bin/galaaz_jruby_env.inc.sh +6 -0
  9. data/bin/gbookdown +64 -0
  10. data/bin/gknit +223 -6
  11. data/bin/gknit-draft +105 -0
  12. data/bin/gknit-draft.rb +28 -0
  13. data/bin/gknit_Rscript +127 -0
  14. data/bin/grun +27 -1
  15. data/bin/gstudio +49 -4
  16. data/bin/{gstudio.rb → gstudio_irb.rb} +0 -0
  17. data/bin/gstudio_pry.rb +7 -0
  18. data/bin/install-tinytex +6 -0
  19. data/bin/run_all_rspec +43 -0
  20. data/bin/run_example +14 -0
  21. data/bin/run_old_rspec +19 -0
  22. data/bin/run_rspec +23 -0
  23. data/bin/run_rspec_subset +38 -0
  24. data/bin/run_slow_rspec +19 -0
  25. data/blogs/R-on-Rails-Planning-Document.md +940 -0
  26. data/blogs/README.md +100 -0
  27. data/blogs/galaaz_ggplot/galaaz_ggplot.Rmd +38 -66
  28. data/blogs/galaaz_ggplot/galaaz_ggplot.log +754 -0
  29. data/blogs/galaaz_ggplot/galaaz_ggplot.md +364 -0
  30. data/blogs/galaaz_ggplot/galaaz_ggplot.tex +607 -0
  31. data/blogs/galaaz_ggplot/galaaz_ggplot_files/figure-html/midwest_rb.png +0 -0
  32. data/blogs/galaaz_ggplot/galaaz_ggplot_files/figure-html/scatter_plot_rb.png +0 -0
  33. data/blogs/galaaz_ggplot/galaaz_ggplot_files/figure-markdown_github/midwest_rb.png +0 -0
  34. data/blogs/galaaz_ggplot/galaaz_ggplot_files/figure-markdown_github/scatter_plot_rb.png +0 -0
  35. data/blogs/galaaz_ggplot/midwest.Rmd +3 -3
  36. data/blogs/galaaz_ggplot/midwest_external_png +0 -0
  37. data/blogs/gknit/gknit.Rmd +52 -55
  38. data/blogs/gknit/gknit.md +94 -94
  39. data/blogs/gknit/gknit_files/figure-html/bubble-1.png +0 -0
  40. data/blogs/gknit/gknit_files/figure-html/diverging_bar.png +0 -0
  41. data/blogs/gknit/lst.rds +0 -0
  42. data/blogs/gknit/model.rb +1 -1
  43. data/blogs/gknit/stats.bib +0 -0
  44. data/blogs/manual/include_model_local_repro.Rmd +14 -0
  45. data/blogs/manual/include_model_local_repro.md +75 -0
  46. data/blogs/manual/lst.rds +0 -0
  47. data/blogs/manual/manual.Rmd +1582 -196
  48. data/blogs/manual/manual.log +1786 -0
  49. data/blogs/manual/manual.md +3107 -890
  50. data/blogs/manual/manual.tex +3018 -1086
  51. data/blogs/manual/manual_files/figure-html/bubble-1.png +0 -0
  52. data/blogs/manual/manual_files/figure-html/diverging_bar.png +0 -0
  53. data/blogs/manual/manual_files/figure-latex/bubble-1.png +0 -0
  54. data/blogs/manual/model.rb +41 -0
  55. data/blogs/nse_dplyr/nse_dplyr.Rmd +277 -151
  56. data/blogs/nse_dplyr/nse_dplyr.log +928 -0
  57. data/blogs/nse_dplyr/nse_dplyr.md +457 -293
  58. data/blogs/oh_my/not_so.rb +0 -0
  59. data/blogs/oh_my/oh_my.Rmd +1234 -25
  60. data/blogs/oh_my/oh_my.log +804 -0
  61. data/blogs/oh_my/oh_my.md +1808 -228
  62. data/blogs/oh_my/oh_my.tex +821 -0
  63. data/blogs/oh_my/old.Rmd +15 -14
  64. data/blogs/ruby_plot/ruby_plot.Rmd +58 -82
  65. data/blogs/ruby_plot/ruby_plot.log +885 -0
  66. data/blogs/ruby_plot/ruby_plot.md +71 -103
  67. data/blogs/ruby_plot/ruby_plot.tex +940 -0
  68. data/blogs/ruby_plot/ruby_plot_files/figure-html/dose_len.png +0 -0
  69. data/blogs/ruby_plot/ruby_plot_files/figure-html/facet_by_delivery.png +0 -0
  70. data/blogs/ruby_plot/ruby_plot_files/figure-html/facet_by_dose.png +0 -0
  71. data/blogs/ruby_plot/ruby_plot_files/figure-html/facets_by_delivery_color.png +0 -0
  72. data/blogs/ruby_plot/ruby_plot_files/figure-html/facets_by_delivery_color2.png +0 -0
  73. data/blogs/ruby_plot/ruby_plot_files/figure-html/facets_with_decorations.png +0 -0
  74. data/blogs/ruby_plot/ruby_plot_files/figure-html/facets_with_jitter.png +0 -0
  75. data/blogs/ruby_plot/ruby_plot_files/figure-html/facets_with_points.png +0 -0
  76. data/blogs/ruby_plot/ruby_plot_files/figure-html/final_box_plot.png +0 -0
  77. data/blogs/ruby_plot/ruby_plot_files/figure-html/final_violin_plot.png +0 -0
  78. data/blogs/ruby_plot/ruby_plot_files/figure-html/violin_with_jitter.png +0 -0
  79. data/blogs/ruby_plot/ruby_plot_files/figure-latex/dose_len.png +0 -0
  80. data/blogs/ruby_plot/ruby_plot_files/figure-latex/facet_by_delivery.png +0 -0
  81. data/blogs/ruby_plot/ruby_plot_files/figure-latex/facet_by_dose.png +0 -0
  82. data/blogs/ruby_plot/ruby_plot_files/figure-latex/facets_by_delivery_color.png +0 -0
  83. data/blogs/ruby_plot/ruby_plot_files/figure-latex/facets_by_delivery_color2.png +0 -0
  84. data/blogs/ruby_plot/ruby_plot_files/figure-latex/facets_with_decorations.png +0 -0
  85. data/blogs/ruby_plot/ruby_plot_files/figure-latex/facets_with_jitter.png +0 -0
  86. data/blogs/ruby_plot/ruby_plot_files/figure-latex/facets_with_points.png +0 -0
  87. data/blogs/ruby_plot/ruby_plot_files/figure-latex/final_box_plot.png +0 -0
  88. data/blogs/ruby_plot/ruby_plot_files/figure-latex/final_violin_plot.png +0 -0
  89. data/blogs/ruby_plot/ruby_plot_files/figure-latex/violin_with_jitter.png +0 -0
  90. data/blogs/test/test.Rmd +14 -0
  91. data/examples/50Plots_MasterList/Images/midwest-scatterplot.PNG +0 -0
  92. data/examples/50Plots_MasterList/ScatterPlot.rb +0 -0
  93. data/examples/50Plots_MasterList/scatter_plot.rb +0 -0
  94. data/examples/Bibliography/master.bib +50 -0
  95. data/examples/Bibliography/stats.bib +72 -0
  96. data/examples/R/calc.R +0 -0
  97. data/examples/R/java_interop.R +0 -0
  98. data/examples/bioconductor_deseq2_airway/Documentation/DESeq2-airway-walkthrough.md +56 -0
  99. data/examples/bioconductor_deseq2_airway/bench_galaaz_three_same_process.rb +53 -0
  100. data/examples/bioconductor_deseq2_airway/bench_r_three_same_process.R +34 -0
  101. data/examples/bioconductor_deseq2_airway/deseq2_airway_galaaz.rb +33 -0
  102. data/examples/bioconductor_deseq2_airway/deseq2_airway_galaaz_optimized.rb +34 -0
  103. data/examples/bioconductor_deseq2_airway/deseq2_airway_minimal.R +30 -0
  104. data/examples/bioconductor_deseq2_airway/deseq2_airway_pipeline_for_bench.R +36 -0
  105. data/examples/islr/all.rb +13 -0
  106. data/examples/islr/ch2.spec.rb +37 -7
  107. data/examples/islr/ch3.spec.rb +11 -2
  108. data/examples/islr/ch3_boston.rb +27 -0
  109. data/examples/islr/ch3_multiple_regression.rb +0 -0
  110. data/examples/islr/ch6.spec.rb +24 -1
  111. data/examples/islr/x_y_rnorm.jpg +0 -0
  112. data/examples/latex_templates/Test-acm_article/Makefile +16 -0
  113. data/examples/latex_templates/Test-acm_article/Test-acm_article.Rmd +65 -0
  114. data/examples/latex_templates/Test-acm_article/acm_proc_article-sp.cls +1670 -0
  115. data/examples/latex_templates/Test-acm_article/sensys-abstract.cls +703 -0
  116. data/examples/latex_templates/Test-acm_article/sigproc.bib +59 -0
  117. data/examples/latex_templates/Test-acs_article/Test-acs_article.Rmd +260 -0
  118. data/examples/latex_templates/Test-acs_article/acs-Test-acs_article.bib +11 -0
  119. data/examples/latex_templates/Test-acs_article/acs-my_output.bib +11 -0
  120. data/examples/latex_templates/Test-acs_article/acstest.bib +17 -0
  121. data/examples/latex_templates/Test-aea_article/AEA.cls +1414 -0
  122. data/{blogs/gknit/marshal.dump → examples/latex_templates/Test-aea_article/BibFile.bib} +0 -0
  123. data/examples/latex_templates/Test-aea_article/Test-aea_article.Rmd +108 -0
  124. data/examples/latex_templates/Test-aea_article/aea.bst +1269 -0
  125. data/examples/latex_templates/Test-aea_article/multicol.sty +853 -0
  126. data/examples/latex_templates/Test-aea_article/references.bib +0 -0
  127. data/examples/latex_templates/Test-aea_article/setspace.sty +546 -0
  128. data/examples/latex_templates/Test-amq_article/Test-amq_article.Rmd +256 -0
  129. data/examples/latex_templates/Test-amq_article/Test-amq_article.pdfsync +3397 -0
  130. data/examples/latex_templates/Test-ams_article/Test-ams_article.Rmd +215 -0
  131. data/examples/latex_templates/Test-ams_article/amstest.bib +436 -0
  132. data/examples/latex_templates/Test-asa_article/Test-asa_article.Rmd +153 -0
  133. data/examples/latex_templates/Test-asa_article/agsm.bst +1353 -0
  134. data/examples/latex_templates/Test-asa_article/bibliography.bib +233 -0
  135. data/examples/latex_templates/Test-ieee_article/IEEEtran.bst +2409 -0
  136. data/examples/latex_templates/Test-ieee_article/IEEEtran.cls +6346 -0
  137. data/examples/latex_templates/Test-ieee_article/Test-ieee_article.Rmd +175 -0
  138. data/examples/latex_templates/Test-ieee_article/mybibfile.bib +20 -0
  139. data/examples/latex_templates/Test-rjournal_article/RJournal.sty +335 -0
  140. data/examples/latex_templates/Test-rjournal_article/RJreferences.bib +18 -0
  141. data/examples/latex_templates/Test-rjournal_article/Test-rjournal_article.Rmd +52 -0
  142. data/examples/latex_templates/Test-springer_article/Test-springer_article.Rmd +65 -0
  143. data/examples/latex_templates/Test-springer_article/bibliography.bib +26 -0
  144. data/examples/latex_templates/Test-springer_article/spbasic.bst +1658 -0
  145. data/examples/latex_templates/Test-springer_article/spmpsci.bst +1512 -0
  146. data/examples/latex_templates/Test-springer_article/spphys.bst +1443 -0
  147. data/examples/latex_templates/Test-springer_article/svglov3.clo +113 -0
  148. data/examples/latex_templates/Test-springer_article/svjour3.cls +1431 -0
  149. data/examples/misc/baseball.csv +0 -0
  150. data/examples/misc/ggplot.rb +3 -2
  151. data/examples/misc/moneyball.rb +0 -0
  152. data/examples/misc/subsetting.rb +0 -0
  153. data/examples/multithread_shards_to_r/shards_to_r.rb +67 -0
  154. data/examples/rmarkdown/svm-rmarkdown-anon-ms-example/svm-rmarkdown-anon-ms-example.Rmd +73 -0
  155. data/examples/rmarkdown/svm-rmarkdown-article-example/svm-rmarkdown-article-example.Rmd +382 -0
  156. data/examples/rmarkdown/svm-rmarkdown-beamer-example/svm-rmarkdown-beamer-example.Rmd +164 -0
  157. data/examples/rmarkdown/svm-rmarkdown-cv/svm-rmarkdown-cv.Rmd +92 -0
  158. data/examples/rmarkdown/svm-rmarkdown-syllabus-example/attend-grade-relationships.csv +482 -0
  159. data/examples/rmarkdown/svm-rmarkdown-syllabus-example/svm-rmarkdown-syllabus-example.Rmd +280 -0
  160. data/examples/rmarkdown/svm-xaringan-example/svm-xaringan-example.Rmd +386 -0
  161. data/examples/sthda_ggplot/README.md +0 -0
  162. data/examples/sthda_ggplot/RUN.md +41 -0
  163. data/examples/sthda_ggplot/all.rb +0 -0
  164. data/examples/sthda_ggplot/one_variable_continuous/density_gg.rb +0 -0
  165. data/examples/sthda_ggplot/one_variable_continuous/geom_area.rb +0 -0
  166. data/examples/sthda_ggplot/one_variable_continuous/geom_density.rb +2 -0
  167. data/examples/sthda_ggplot/one_variable_continuous/geom_dotplot.rb +0 -0
  168. data/examples/sthda_ggplot/one_variable_continuous/geom_freqpoly.rb +0 -0
  169. data/examples/sthda_ggplot/one_variable_continuous/geom_histogram.rb +0 -0
  170. data/examples/sthda_ggplot/one_variable_continuous/histogram_density.rb +0 -0
  171. data/examples/sthda_ggplot/one_variable_continuous/stat.rb +0 -0
  172. data/examples/sthda_ggplot/one_variable_discrete/bar.rb +0 -0
  173. data/examples/sthda_ggplot/qplots/box_violin_dot.rb +0 -0
  174. data/examples/sthda_ggplot/qplots/scatter_plots.rb +0 -0
  175. data/examples/sthda_ggplot/scatter_gg.rb +0 -0
  176. data/examples/sthda_ggplot/two_variables_cont_bivariate/geom_bin2d.rb +0 -0
  177. data/examples/sthda_ggplot/two_variables_cont_bivariate/geom_density2d.rb +0 -0
  178. data/examples/sthda_ggplot/two_variables_cont_bivariate/geom_hex.rb +0 -0
  179. data/examples/sthda_ggplot/two_variables_cont_cont/geom_point.rb +0 -0
  180. data/examples/sthda_ggplot/two_variables_cont_cont/geom_smooth.rb +0 -0
  181. data/examples/sthda_ggplot/two_variables_cont_cont/misc.rb +0 -0
  182. data/examples/sthda_ggplot/two_variables_cont_function/geom_area.rb +4 -3
  183. data/examples/sthda_ggplot/two_variables_disc_cont/geom_bar.rb +0 -0
  184. data/examples/sthda_ggplot/two_variables_disc_cont/geom_boxplot.rb +0 -0
  185. data/examples/sthda_ggplot/two_variables_disc_cont/geom_dotplot.rb +0 -0
  186. data/examples/sthda_ggplot/two_variables_disc_cont/geom_jitter.rb +0 -0
  187. data/examples/sthda_ggplot/two_variables_disc_cont/geom_line.rb +0 -0
  188. data/examples/sthda_ggplot/two_variables_disc_cont/geom_violin.rb +0 -0
  189. data/examples/sthda_ggplot/two_variables_disc_disc/geom_jitter.rb +0 -0
  190. data/examples/sthda_ggplot/two_variables_error/geom_crossbar.rb +0 -0
  191. data/ext/new_bridge/Makefile +46 -0
  192. data/ext/new_bridge/galaaz_gatekeeper_phase0.cpp +12 -0
  193. data/ext/new_bridge/galaaz_gatekeeper_phase1.cpp +1639 -0
  194. data/lib/R_interface/galaaz_device.R +20 -0
  195. data/lib/R_interface/include_engine.R +109 -0
  196. data/lib/R_interface/new_bridge_adapter.rb +824 -0
  197. data/lib/R_interface/r.rb +177 -25
  198. data/lib/R_interface/r_arrow.rb +113 -0
  199. data/lib/R_interface/r_libs.R +4 -4
  200. data/lib/R_interface/r_methods.rb +13 -116
  201. data/lib/R_interface/r_module_s.rb +0 -0
  202. data/lib/R_interface/rbinary_operators.rb +20 -2
  203. data/lib/R_interface/rclosure.rb +5 -1
  204. data/lib/R_interface/rdata_frame.rb +34 -70
  205. data/lib/R_interface/rdevice.rb +125 -0
  206. data/lib/R_interface/rdevices.R +0 -0
  207. data/lib/R_interface/renvironment.rb +10 -4
  208. data/lib/R_interface/rexpression.rb +5 -1
  209. data/lib/R_interface/rindexed_object.rb +41 -13
  210. data/lib/R_interface/rlanguage.rb +20 -62
  211. data/lib/R_interface/rlist.rb +115 -25
  212. data/lib/R_interface/rlogical_operators.rb +0 -0
  213. data/lib/R_interface/rmatrix.rb +2 -11
  214. data/lib/R_interface/rmd_indexed_object.rb +5 -1
  215. data/lib/R_interface/robject.rb +348 -290
  216. data/lib/R_interface/rpkg.rb +1 -0
  217. data/lib/R_interface/rsupport.rb +610 -331
  218. data/lib/R_interface/rsupport_scope.rb +2 -1
  219. data/lib/R_interface/rsymbol.rb +50 -0
  220. data/lib/R_interface/ruby_callback.rb +2 -3
  221. data/lib/R_interface/ruby_extensions.rb +225 -175
  222. data/lib/R_interface/runary_operators.rb +0 -0
  223. data/lib/R_interface/rvector.rb +147 -31
  224. data/lib/galaaz.rb +0 -0
  225. data/lib/galaaz_jruby.rb +22 -0
  226. data/lib/gknit/diagnostics.rb +50 -0
  227. data/lib/gknit/draft.rb +111 -0
  228. data/lib/gknit/include_engine.rb +15 -7
  229. data/lib/gknit/knitr_engine.rb +223 -107
  230. data/lib/gknit/rb_engine.rb +3 -3
  231. data/lib/gknit/ruby_engine.rb +0 -0
  232. data/lib/gknit.rb +3 -0
  233. data/lib/new_bridge/bootstrap/windows_bootstrap.rb +285 -0
  234. data/lib/new_bridge/envelope.rb +51 -0
  235. data/lib/new_bridge/eval_result.rb +26 -0
  236. data/lib/new_bridge/framing.rb +39 -0
  237. data/lib/new_bridge/instance_pool_client.rb +38 -0
  238. data/lib/new_bridge/r_instance_manager.rb +404 -0
  239. data/lib/new_bridge/session_client.rb +530 -0
  240. data/lib/new_bridge/tcp_framed.rb +44 -0
  241. data/lib/new_bridge.rb +9 -0
  242. data/lib/util/exec_ruby.rb +95 -46
  243. data/lib/util/inline_file.rb +35 -30
  244. data/new_bridge_specs/benchmark_phase5_5_unboxing_spec.rb +96 -0
  245. data/new_bridge_specs/eval_r_async_spec.rb +113 -0
  246. data/new_bridge_specs/integration_phase5_1_concurrent_spec.rb +50 -0
  247. data/new_bridge_specs/integration_phase5_1_eval_spec.rb +16 -0
  248. data/new_bridge_specs/integration_phase5_1_r_api_spec.rb +25 -0
  249. data/new_bridge_specs/integration_phase5_1_smoke_spec.rb +31 -0
  250. data/new_bridge_specs/integration_phase5_2_dataframe_unboxing_spec.rb +19 -0
  251. data/new_bridge_specs/integration_phase5_2_handle_eval_unboxing_spec.rb +25 -0
  252. data/new_bridge_specs/integration_phase5_3_callback_args_spec.rb +28 -0
  253. data/new_bridge_specs/integration_phase5_3_callback_error_spec.rb +22 -0
  254. data/new_bridge_specs/integration_phase5_3_callback_timeout_spec.rb +28 -0
  255. data/new_bridge_specs/integration_phase5_3_callbacks_smoke_spec.rb +22 -0
  256. data/new_bridge_specs/integration_phase5_3_edge_cases_spec.rb +52 -0
  257. data/new_bridge_specs/integration_phase5_3_nested_spec.rb +30 -0
  258. data/new_bridge_specs/integration_phase5_4_concurrent_sessions_spec.rb +53 -0
  259. data/new_bridge_specs/integration_phase5_4_nested_session_callbacks_spec.rb +49 -0
  260. data/new_bridge_specs/integration_phase5_4_session_routing_spec.rb +38 -0
  261. data/new_bridge_specs/integration_phase5_5_stress_concurrency_spec.rb +52 -0
  262. data/new_bridge_specs/integration_phase5_5_unbox_walk_spec.rb +46 -0
  263. data/new_bridge_specs/phase0_protocol_spec.rb +96 -0
  264. data/new_bridge_specs/phase1_req_ret_spec.rb +66 -0
  265. data/new_bridge_specs/phase2_multi_instance_spec.rb +67 -0
  266. data/new_bridge_specs/phase3_callbacks_spec.rb +71 -0
  267. data/new_bridge_specs/phase4_2_hardening_spec.rb +252 -0
  268. data/new_bridge_specs/phase4_3_r_instance_manager_spec.rb +85 -0
  269. data/new_bridge_specs/phase4_nested_callbacks_spec.rb +123 -0
  270. data/r_requires/ggplot.rb +0 -0
  271. data/r_requires/knitr.rb +0 -0
  272. data/specs/all.rb +15 -11
  273. data/specs/arrow_from_ruby_batches_spec.rb +50 -0
  274. data/specs/arrow_semantics_spec.rb +64 -0
  275. data/specs/bridge_concurrent_spec.rb +46 -0
  276. data/specs/bridge_nested_spec.rb +25 -0
  277. data/specs/dataframe_semantics_spec.rb +122 -0
  278. data/specs/dataframe_single_index_logical_filter_spec.rb +21 -0
  279. data/specs/dispatch_probe_cache_spec.rb +38 -0
  280. data/specs/dispatch_probe_error_class_fallback_spec.rb +20 -0
  281. data/specs/dispatch_probe_fallback_spec.rb +18 -0
  282. data/specs/environment_semantics_spec.rb +89 -0
  283. data/specs/field_access_spec.rb +31 -0
  284. data/specs/figures/bg.jpeg +0 -0
  285. data/specs/figures/bg.png +0 -0
  286. data/specs/figures/bg.svg +168 -57
  287. data/specs/figures/dose_len.png +0 -0
  288. data/specs/figures/no_args.jpeg +0 -0
  289. data/specs/figures/no_args.png +0 -0
  290. data/specs/figures/no_args.svg +168 -57
  291. data/specs/figures/width_height.jpeg +0 -0
  292. data/specs/figures/width_height.png +0 -0
  293. data/specs/figures/width_height_units1.jpeg +0 -0
  294. data/specs/figures/width_height_units1.png +0 -0
  295. data/specs/figures/width_height_units2.jpeg +0 -0
  296. data/specs/figures/width_height_units2.png +0 -0
  297. data/specs/formula_semantics_spec.rb +81 -0
  298. data/specs/galaaz_util_exec_ruby_spec.rb +85 -0
  299. data/specs/galaaz_util_inline_file_spec.rb +54 -0
  300. data/specs/gknit_cli_option_permutation_spec.rb +24 -0
  301. data/specs/gknit_include_engine_spec.rb +72 -0
  302. data/specs/gknit_install_timeout_report_spec.rb +69 -0
  303. data/specs/gknit_internal_error_report_spec.rb +57 -0
  304. data/specs/gknit_vector_map_output_spec.rb +59 -0
  305. data/specs/globalenv_guardrail_spec.rb +52 -0
  306. data/specs/language_expression_semantics_spec.rb +145 -0
  307. data/specs/list_semantics_spec.rb +111 -0
  308. data/specs/new_bridge_bulk_dataframe_transfer_spec.rb +44 -0
  309. data/specs/new_bridge_bulk_vector_transfer_spec.rb +73 -0
  310. data/specs/new_bridge_callback_timeout_spec.rb +69 -0
  311. data/specs/new_bridge_eval_r_fallback_spec.rb +55 -0
  312. data/specs/nil_null_spec.rb +42 -0
  313. data/specs/object_build_phase2_spec.rb +53 -0
  314. data/specs/phase1_callback_bridge_spec.rb +84 -0
  315. data/specs/phase2_gknit_generic_rendering_guardrail_spec.rb +46 -0
  316. data/specs/phase2_gknit_no_raw_code_leakage_spec.rb +43 -0
  317. data/specs/phase3_gknit_generic_graphics_capture_spec.rb +71 -0
  318. data/specs/plot_device_semantics_spec.rb +28 -0
  319. data/specs/plot_snapshot_semantics_spec.rb +58 -0
  320. data/specs/protocol_result_spec.rb +236 -0
  321. data/specs/r_batch_fail_fast_spec.rb +47 -0
  322. data/specs/r_bridge_bootstrap_spec.rb +11 -0
  323. data/specs/r_devices.spec.rb +1 -1
  324. data/specs/r_eval.spec.rb +16 -18
  325. data/specs/r_function.spec.rb +1 -1
  326. data/specs/r_instance_manager_spec.rb +285 -0
  327. data/specs/r_list_apply.spec.rb +15 -15
  328. data/specs/r_matrix.spec.rb +0 -0
  329. data/specs/r_nse.spec.rb +5 -5
  330. data/specs/r_object_send_dispatch_spec.rb +13 -0
  331. data/specs/r_vector_comparator_spec.rb +8 -0
  332. data/specs/r_vector_creation.spec.rb +0 -0
  333. data/specs/r_vector_functions.spec.rb +0 -0
  334. data/specs/r_vector_object.spec.rb +0 -0
  335. data/specs/r_vector_operators.spec.rb +0 -0
  336. data/specs/r_vector_structured_scalar_reads_spec.rb +35 -0
  337. data/specs/r_vector_subsetting.spec.rb +0 -0
  338. data/specs/range_helper_spec.rb +21 -0
  339. data/specs/rsupport_scope_spec.rb +28 -0
  340. data/specs/rsupport_var_name_thread_safety_spec.rb +24 -0
  341. data/specs/scalar_character_spec.rb +44 -0
  342. data/specs/scoped_symbol_dsl_refinement_spec.rb +40 -0
  343. data/specs/session_env_bridge_spec.rb +25 -0
  344. data/specs/simplecov_bootstrap_spec.rb +10 -0
  345. data/specs/spec_helper.rb +10 -0
  346. data/specs/tmp.rb +41 -20
  347. data/specs/unboxing_recursion_regression_spec.rb +30 -0
  348. data/specs/unboxing_spec.rb +49 -0
  349. data/specs/verify_callbacks.rb +42 -0
  350. data/sty/galaaz.sty +0 -0
  351. data/version.rb +1 -1
  352. metadata +239 -71
  353. data/blogs/galaaz_ggplot/galaaz_ggplot.aux +0 -41
  354. data/blogs/galaaz_ggplot/galaaz_ggplot.html +0 -705
  355. data/blogs/galaaz_ggplot/galaaz_ggplot.out +0 -10
  356. data/blogs/galaaz_ggplot/galaaz_ggplot.pdf +0 -0
  357. data/blogs/galaaz_ggplot/galaaz_ggplot_files/figure-latex/midwest_rb.pdf +0 -0
  358. data/blogs/galaaz_ggplot/galaaz_ggplot_files/figure-latex/scatter_plot_rb.pdf +0 -0
  359. data/blogs/galaaz_ggplot/midwest.html +0 -188
  360. data/blogs/gknit/gknit.html +0 -2266
  361. data/blogs/gknit/gknit.pdf +0 -0
  362. data/blogs/gknit/gknit.tex +0 -1358
  363. data/blogs/manual/graph.rb +0 -29
  364. data/blogs/manual/manual.html +0 -2995
  365. data/blogs/manual/manual.pdf +0 -0
  366. data/blogs/manual/manual_files/figure-latex/diverging_bar.pdf +0 -0
  367. data/blogs/nse_dplyr/nse_dplyr.html +0 -960
  368. data/blogs/nse_dplyr/nse_dplyr.pdf +0 -0
  369. data/blogs/nse_dplyr/nse_dplyr.tex +0 -1373
  370. data/blogs/oh_my/oh_my.html +0 -680
  371. data/blogs/ruby_plot/ruby_plot.Rmd_external_figs +0 -662
  372. data/blogs/ruby_plot/ruby_plot.html +0 -729
  373. data/blogs/ruby_plot/ruby_plot.pdf +0 -0
  374. data/blogs/ruby_plot/ruby_plot_files/figure-html/dose_len.svg +0 -57
  375. data/blogs/ruby_plot/ruby_plot_files/figure-html/facet_by_delivery.svg +0 -106
  376. data/blogs/ruby_plot/ruby_plot_files/figure-html/facet_by_dose.svg +0 -110
  377. data/blogs/ruby_plot/ruby_plot_files/figure-html/facets_by_delivery_color.svg +0 -174
  378. data/blogs/ruby_plot/ruby_plot_files/figure-html/facets_by_delivery_color2.svg +0 -236
  379. data/blogs/ruby_plot/ruby_plot_files/figure-html/facets_with_jitter.svg +0 -296
  380. data/blogs/ruby_plot/ruby_plot_files/figure-html/facets_with_points.svg +0 -236
  381. data/blogs/ruby_plot/ruby_plot_files/figure-html/final_box_plot.svg +0 -218
  382. data/blogs/ruby_plot/ruby_plot_files/figure-html/final_violin_plot.svg +0 -128
  383. data/blogs/ruby_plot/ruby_plot_files/figure-html/violin_with_jitter.svg +0 -150
  384. data/examples/paper/paper.rb +0 -36
  385. data/specs/r_dataframe.spec.rb +0 -379
  386. data/specs/r_environment.spec.rb +0 -140
  387. data/specs/r_formula.spec.rb +0 -232
  388. data/specs/r_language.spec.rb +0 -112
  389. data/specs/r_list.spec.rb +0 -293
  390. data/specs/r_plots.spec.rb +0 -72
  391. data/specs/ruby_expression.spec.rb +0 -315
@@ -0,0 +1,853 @@
1
+ %%
2
+ %% This is file `multicol.sty',
3
+ %% generated with the docstrip utility.
4
+ %%
5
+ %% The original source files were:
6
+ %%
7
+ %% multicol.dtx (with options: `package,badness,check,marktrace,nobalance,colbreak')
8
+ %%
9
+ %% This is a generated file.
10
+ %%
11
+ %% Copyright 1993 1994 1995 1996 1997 1998 1999 2000 2001 2002 2003
12
+ %% The LaTeX3 Project and any individual authors listed elsewhere
13
+ %% in this file.
14
+ %%
15
+ %% This file was generated from file(s) of the Standard LaTeX `Tools Bundle'.
16
+ %% --------------------------------------------------------------------------
17
+ %%
18
+ %% It may be distributed and/or modified under the
19
+ %% conditions of the LaTeX Project Public License, either version 1.3
20
+ %% of this license or (at your option) any later version.
21
+ %% The latest version of this license is in
22
+ %% http://www.latex-project.org/lppl.txt
23
+ %% and version 1.3 or later is part of all distributions of LaTeX
24
+ %% version 2003/12/01 or later.
25
+ %%
26
+ %% This file may only be distributed together with a copy of the LaTeX
27
+ %% `Tools Bundle'. You may however distribute the LaTeX `Tools Bundle'
28
+ %% without such generated files.
29
+ %%
30
+ %% The list of all files belonging to the LaTeX `Tools Bundle' is
31
+ %% given in the file `manifest.txt'.
32
+ %%
33
+ %% Package `multicol' to use with LaTeX2e
34
+ %% Copyright 1989-2003 Frank Mittelbach
35
+ %%
36
+ %% In addition to the terms of LPPL any distributed version
37
+ %% (unchanged or modified) of multicol has to keep the statement
38
+ %% about the moral obligation for using multicol. In case of major
39
+ %% changes where this would not be appropriate the author of the
40
+ %% changed version should contact the copyright holder.
41
+ %%
42
+ %%
43
+ %% Moral obligation for using multicol:
44
+ %% ------------------------------------
45
+ %%
46
+ %% Users of multicol who wish to include or use multicol or a modified
47
+ %% version in a proprietary and commercially market product are asked
48
+ %% under certain conditions (see below) for the payment of a license
49
+ %% fee. The size of this fee is to be determined, in each instance,
50
+ %% by the commercial user, depending on his/her judgment of the value of
51
+ %% multicol for his/her product.
52
+ %%
53
+ %%
54
+ %% The conditions for this are as follows:
55
+ %%
56
+ %% The producer of a proprietary and commercially market product
57
+ %% that involves typesetting using multicol is asked to determine
58
+ %% the value of a license fee for using multicol if
59
+ %%
60
+ %% - the product is a document and the producer has decided to
61
+ %% include multicol to typeset (parts of) the document or has
62
+ %% directed the author of the document to include multicol (for
63
+ %% example, by providing a class file to be used by the author)
64
+ %%
65
+ %% - the product is a LaTeX class or package that includes multicol
66
+ %%
67
+ %%
68
+ %% There is no moral obligation in case
69
+ %%
70
+ %% - the product is a document but producer has not directed
71
+ %% the author to include multicol (in that case the moral obligation
72
+ %% lies with the author of the document)
73
+ %%
74
+ %% - the product does not involve typesetting, e.g., consists, for
75
+ %% example, of distributing multicol and its documentation.
76
+ %%
77
+ %% - the product is not proprietary, i.e., is made available as free
78
+ %% software itself (which doesn't prohibit its commercial marketing)
79
+ %%
80
+ %% - multicol is used for non-commercial purposes
81
+ %%
82
+ %%
83
+ %% Determinating a license fee might result in a license fee of zero
84
+ %% (i.e., no payment) in case a producer has determined that the use
85
+ %% of multicol has no enhancing effect on the product. This is a
86
+ %% plausible scenario, i.e., in the above two cases the producer is
87
+ %% only asked to evaluate the value of multicol for the product
88
+ %% not for the payment of a license fee per se (which might or might
89
+ %% not follow from this evaluation).
90
+ %%
91
+ %% The license fee, if any, can be payed either to the LaTeX3 fund
92
+ %% (see ltx3info.txt in the base LaTeX distribution) or to the author of
93
+ %% the program who can be contacted at
94
+ %%
95
+ %% Frank.Mittelbach@latex-project.org
96
+ %%
97
+ \NeedsTeXFormat{LaTeX2e}[1997/12/01]
98
+ \ProvidesPackage{multicol}
99
+ [2004/02/14 v1.6e multicolumn formatting (FMi)]
100
+ %% \CheckSum{1561}
101
+ %% \CharacterTable
102
+ %% {Upper-case \A\B\C\D\E\F\G\H\I\J\K\L\M\N\O\P\Q\R\S\T\U\V\W\X\Y\Z
103
+ %% Lower-case \a\b\c\d\e\f\g\h\i\j\k\l\m\n\o\p\q\r\s\t\u\v\w\x\y\z
104
+ %% Digits \0\1\2\3\4\5\6\7\8\9
105
+ %% Exclamation \! Double quote \" Hash (number) \#
106
+ %% Dollar \$ Percent \% Ampersand \&
107
+ %% Acute accent \' Left paren \( Right paren \)
108
+ %% Asterisk \* Plus \+ Comma \,
109
+ %% Minus \- Point \. Solidus \/
110
+ %% Colon \: Semicolon \; Less than \<
111
+ %% Equals \= Greater than \> Question mark \?
112
+ %% Commercial at \@ Left bracket \[ Backslash \\
113
+ %% Right bracket \] Circumflex \^ Underscore \_
114
+ %% Grave accent \` Left brace \{ Vertical bar \|
115
+ %% Right brace \} Tilde \~}
116
+ %%
117
+ \DeclareOption{twocolumn}
118
+ {\PackageWarning{multicol}{May not work
119
+ with the twocolumn option}}
120
+ \newcount\c@tracingmulticols
121
+ \DeclareOption{errorshow}
122
+ {\c@tracingmulticols\z@}
123
+ \DeclareOption{infoshow}
124
+ {\c@tracingmulticols\@ne}
125
+ \DeclareOption{balancingshow}
126
+ {\c@tracingmulticols\tw@}
127
+ \DeclareOption{markshow}
128
+ {\c@tracingmulticols\thr@@}
129
+ \DeclareOption{debugshow}
130
+ {\c@tracingmulticols5\relax}
131
+ \let\mc@gridwarn\maxdimen
132
+ \DeclareOption{grid}{\def\mc@gridwarn{\maxdepth}}
133
+ \ProcessOptions
134
+ \def\multicols#1{\col@number#1\relax
135
+ \ifnum\col@number<\tw@
136
+ \PackageWarning{multicol}%
137
+ {Using `\number\col@number'
138
+ columns doesn't seem a good idea.^^J
139
+ I therefore use two columns instead}%
140
+ \col@number\tw@ \fi
141
+ \ifnum\col@number>10
142
+ \PackageError{multicol}%
143
+ {Too many columns}%
144
+ {Current implementation doesn't
145
+ support more than 10 columns.%
146
+ \MessageBreak
147
+ I therefore use 10 columns instead}%
148
+ \col@number10 \fi
149
+ \ifx\@footnotetext\mult@footnotetext\else
150
+ \let\orig@footnotetext\@footnotetext
151
+ \let\@footnotetext\mult@footnotetext
152
+ \fi
153
+ \@ifnextchar[\mult@cols{\mult@cols[]}}
154
+ \long\def\mult@footnotetext#1{\begingroup
155
+ \columnwidth\textwidth
156
+ \orig@footnotetext{#1}\endgroup}
157
+ \def\mult@cols[#1]{\@ifnextchar[%
158
+ {\mult@@cols{#1}}%
159
+ {\mult@@cols{#1}[\premulticols]}}
160
+ \def\mult@@cols#1[#2]{%
161
+ \par
162
+ \ifinner \@boxedmulticolstrue
163
+ \else
164
+ \ifnum \doublecol@number>\z@
165
+ \@boxedmulticolstrue
166
+ \fi
167
+ \fi
168
+ \mult@info\z@
169
+ {Starting environment with
170
+ \the\col@number\space columns%
171
+ \if@boxedmulticols\MessageBreak
172
+ (boxed mode)\fi
173
+ }%
174
+ \enough@room{#2}%
175
+ #1\par\addvspace\multicolsep
176
+ \ifdim \prevdepth = -\@m\p@
177
+ \else
178
+ \@tempcnta\prevdepth
179
+ \@tempcntb\baselineskip
180
+ \divide\@tempcnta\@tempcntb
181
+ \advance\@tempcnta\@ne
182
+ \dimen@\prevdepth
183
+ \advance\dimen@ -\@tempcnta\baselineskip
184
+ \advance\dimen@ \topskip
185
+ \kern-\dimen@
186
+ \fi
187
+ \begingroup
188
+ \prepare@multicols
189
+ \if@boxedmulticols
190
+ \setbox\mult@box\vbox\bgroup
191
+ \fi
192
+ \ignorespaces}
193
+ \newif\if@boxedmulticols
194
+ \@boxedmulticolsfalse
195
+ \newbox\mult@box
196
+ \def\enough@room#1{%
197
+ \if@boxedmulticols\else
198
+ \par
199
+ \bgroup\@nobreakfalse\addpenalty\z@\egroup
200
+ \page@free \pagegoal
201
+ \advance \page@free -\pagetotal
202
+ \@tempskipa#1\relax
203
+ \mult@info\z@
204
+ {Current page:\MessageBreak
205
+ height=%
206
+ \the\pagegoal: used \the\pagetotal
207
+ \space -> free=\the\page@free
208
+ \MessageBreak
209
+ needed \the\@tempskipa
210
+ \space(for #1)}%
211
+ \ifdim \page@free <#1\newpage \fi
212
+ \fi}
213
+ \def\prepare@multicols{%
214
+ \multicol@leftmargin\@totalleftmargin
215
+ \@totalleftmargin\z@
216
+ \parshape\z@
217
+ \doublecol@number\col@number
218
+ \multiply\doublecol@number\tw@
219
+ \advance\doublecol@number\mult@rightbox
220
+ \if@boxedmulticols
221
+ \let\l@kept@firstmark\kept@firstmark
222
+ \let\l@kept@botmark\kept@botmark
223
+ \global\let\kept@firstmark\@empty
224
+ \global\let\kept@botmark\@empty
225
+ \else
226
+ \nointerlineskip {\topskip\z@\null}%
227
+ \output{%
228
+ \global\setbox\partial@page\vbox
229
+ {%
230
+ \ifvoid\partial@page\else
231
+ \PackageError{multicol}%
232
+ {Error saving partial page}%
233
+ {The part of the page before
234
+ the multicols environment was
235
+ nearly full with^^Jthe result
236
+ that starting the environment
237
+ will produce an overfull
238
+ page. Some^^Jtext may be lost!
239
+ Please increase \premulticols
240
+ either generally or for this%
241
+ ^^Jenvironment by specifying a
242
+ suitable value in the second
243
+ optional argument to^^Jthe
244
+ multicols environment.}
245
+ \unvbox\partial@page
246
+ \box\last@line
247
+ \fi
248
+ \unvbox\@cclv
249
+ \global\setbox\last@line\lastbox
250
+ }%
251
+ \prep@keptmarks
252
+ \global\let\kept@topmark\firstmark
253
+ }\eject
254
+ \advance\@colroom-\ht\partial@page
255
+ \set@mult@vsize\relax
256
+ \output{\multi@column@out}%
257
+ \init@mult@footins
258
+ \reinsert@footnotes
259
+ \fi
260
+ \vbadness\@Mi \hbadness5000
261
+ \tolerance\multicoltolerance
262
+ \pretolerance\multicolpretolerance
263
+ \setemergencystretch\col@number\hsize
264
+ \set@floatcmds
265
+ \advance\baselineskip\multicolbaselineskip
266
+ \hsize\linewidth \advance\hsize\columnsep
267
+ \advance\hsize-\col@number\columnsep
268
+ \divide\hsize\col@number
269
+ \full@width\linewidth
270
+ \linewidth\hsize
271
+ \columnwidth\hsize
272
+ }
273
+ \def\init@mult@footins{%
274
+ \multiply\count\footins\col@number
275
+ \multiply\skip \footins\col@number
276
+ }
277
+ \def\set@mult@vsize#1{%
278
+ \vsize\@colroom
279
+ \@tempdima\baselineskip
280
+ \advance\@tempdima-\topskip
281
+ \advance\vsize\@tempdima
282
+ \vsize\col@number\vsize
283
+ \advance\vsize-\@tempdima
284
+ \advance\vsize\col@number\baselineskip
285
+ #1\advance\vsize
286
+ \c@collectmore\baselineskip}
287
+ \newdimen\multicol@leftmargin
288
+ \def\endmulticols{\par
289
+ \if@boxedmulticols
290
+ \egroup
291
+ \balance@columns
292
+ \return@nonemptymark{first}%
293
+ \kept@firstmark
294
+ \return@nonemptymark{bot}%
295
+ \kept@botmark
296
+ \page@sofar
297
+ \global\let\kept@firstmark
298
+ \l@kept@firstmark
299
+ \global\let\kept@botmark
300
+ \l@kept@botmark
301
+ \mult@info\tw@
302
+ {Restore kept marks to\MessageBreak
303
+ first: \meaning\kept@firstmark
304
+ \MessageBreak bot\space\space:
305
+ \meaning\kept@botmark }%
306
+ \else
307
+ \ifdim\pagegoal=\maxdimen
308
+ \ifvoid\colbreak@box\else
309
+ \mult@info\@ne{Re-adding forced
310
+ break(s) for splitting}%
311
+ \unvbox\colbreak@box\fi
312
+ \fi
313
+ \penalty\z@
314
+ \prevdepth\z@
315
+ \output{\balance@columns@out}\eject
316
+ \ifvbox\partial@page
317
+ \unvbox\partial@page\fi
318
+ \global\let\kept@firstmark\@empty
319
+ \global\let\kept@botmark\@empty
320
+ \mult@info\tw@
321
+ {Make kept marks empty}%
322
+ \fi
323
+ \@checkend{multicols}%
324
+ \endgroup
325
+ \global\c@unbalance\z@
326
+ \if@boxedmulticols\else
327
+ \reinsert@footnotes
328
+ \ifdim \pagegoal=\maxdimen
329
+ \global\vsize\@colroom
330
+ \else
331
+ \enough@room\postmulticols
332
+ \fi
333
+ \fi
334
+ \addvspace\multicolsep
335
+ \mult@info\z@
336
+ {Ending environment
337
+ \if@boxedmulticols
338
+ \space(boxed mode)\fi
339
+ }}
340
+ \newcount\c@unbalance
341
+ \newcount\c@collectmore
342
+ \newcount\doublecol@number
343
+ \newcount\multicoltolerance
344
+ \newcount\multicolpretolerance
345
+ \newdimen\full@width
346
+ \newdimen\page@free
347
+ \newdimen\premulticols
348
+ \newdimen\postmulticols
349
+ \newskip\multicolsep
350
+ \newskip\multicolbaselineskip
351
+ \newbox\partial@page
352
+ \newbox\last@line
353
+ \c@unbalance = 0
354
+ \c@collectmore = 0
355
+ \col@number = 1
356
+ \multicoltolerance = 9999
357
+ \multicolpretolerance = -1
358
+ \premulticols = 50pt
359
+ \postmulticols= 20pt
360
+ \multicolsep = 12pt plus 4pt minus 3pt
361
+ \multicolbaselineskip=0pt
362
+ \def\process@cols#1#2{\count@#1\relax
363
+ \loop
364
+ #2%
365
+ \advance\count@\tw@
366
+ \ifnum\count@<\doublecol@number
367
+ \repeat}
368
+ \def\page@sofar{%
369
+ \process@cols\mult@rightbox
370
+ {\ifvoid\count@
371
+ \setbox\count@\hbox to\hsize{}%
372
+ \else
373
+ \wd\count@\hsize
374
+ \fi}%
375
+ \count@\col@number \advance\count@\m@ne
376
+ \mult@info\z@
377
+ {Column spec: \the\full@width\space = indent
378
+ + columns + sep =\MessageBreak
379
+ \the\multicol@leftmargin\space
380
+ + \the\col@number\space
381
+ x \the\hsize\space
382
+ + \the\count@\space
383
+ x \the\columnsep
384
+ }%
385
+ \ifvmode\else\errmessage{Multicol Error}\fi
386
+ \nointerlineskip
387
+ \setbox\z@\hbox{p}\global\dimen\tw@\dp\z@
388
+ \moveright\multicol@leftmargin
389
+ \hbox to\full@width{%
390
+ \process@cols\mult@gfirstbox{%
391
+ \ifdim\dp\count@>\dimen\tw@
392
+ \global\dimen\tw@\dp\count@ \fi
393
+ \box\count@
394
+ \hss{\normalcolor\vrule
395
+ \@width\columnseprule}\hss}%
396
+ \ifdim\dp\mult@rightbox>\dimen\tw@
397
+ \global\dimen\tw@\dp\mult@rightbox \fi
398
+ \box\mult@rightbox
399
+ \rlap{\phantom p}%
400
+ }%
401
+ \kern-\dimen\tw@
402
+ \ifdim\dimen\tw@ = \mc@gridwarn
403
+ \PackageWarning{multicol}%
404
+ {Very deep columns!\MessageBreak
405
+ Grid alignment might be broken}%
406
+ \fi
407
+ }
408
+ \def\reinsert@footnotes{\ifvoid\footins\else
409
+ \insert\footins{}\fi}
410
+ \def\multi@column@out{%
411
+ \ifnum\outputpenalty <-\@M
412
+ \speci@ls \else
413
+ \ifvoid\colbreak@box\else
414
+ \mult@info\@ne{Re-adding forced
415
+ break(s) for splitting}%
416
+ \setbox\@cclv\vbox{%
417
+ \unvbox\colbreak@box
418
+ \penalty-\@Mv\unvbox\@cclv}%
419
+ \fi
420
+ \splittopskip\topskip
421
+ \splitmaxdepth\maxdepth
422
+ \dimen@\@colroom
423
+ \divide\skip\footins\col@number
424
+ \ifvoid\footins \else
425
+ \leave@mult@footins
426
+ \fi
427
+ \process@cols\mult@gfirstbox{%
428
+ \setbox\count@
429
+ \vsplit\@cclv to\dimen@
430
+ \set@keptmarks
431
+ \ifshr@nking
432
+ \setbox\count@
433
+ \vbox to\dimen@
434
+ {\unvbox\count@\vfill}%
435
+ \fi
436
+ }%
437
+ \setbox\mult@rightbox
438
+ \vsplit\@cclv to\dimen@
439
+ \set@keptmarks
440
+ \ifshr@nking
441
+ \setbox\mult@rightbox\vbox to\dimen@
442
+ {\unvbox\mult@rightbox\vfill}%
443
+ \fi
444
+ \ifvoid\@cclv \else
445
+ \unvbox\@cclv
446
+ \penalty\outputpenalty
447
+ \ifvoid\footins\else
448
+ \PackageWarning{multicol}%
449
+ {I moved some lines to
450
+ the next page.\MessageBreak
451
+ Footnotes on page
452
+ \thepage\space might be wrong}%
453
+ \fi
454
+ \ifnum \c@tracingmulticols>\thr@@
455
+ \hrule\allowbreak \fi
456
+ \fi
457
+ \ifx\@empty\kept@firstmark
458
+ \let\firstmark\kept@topmark
459
+ \let\botmark\kept@topmark
460
+ \else
461
+ \let\firstmark\kept@firstmark
462
+ \let\botmark\kept@botmark
463
+ \fi
464
+ \let\topmark\kept@topmark
465
+ \mult@info\tw@
466
+ {Use kept top mark:\MessageBreak
467
+ \meaning\kept@topmark
468
+ \MessageBreak
469
+ Use kept first mark:\MessageBreak
470
+ \meaning\kept@firstmark
471
+ \MessageBreak
472
+ Use kept bot mark:\MessageBreak
473
+ \meaning\kept@botmark
474
+ \MessageBreak
475
+ Produce first mark:\MessageBreak
476
+ \meaning\firstmark
477
+ \MessageBreak
478
+ Produce bot mark:\MessageBreak
479
+ \meaning\botmark
480
+ \@gobbletwo}%
481
+ \setbox\@cclv\vbox{\unvbox\partial@page
482
+ \page@sofar}%
483
+ \@makecol\@outputpage
484
+ \global\let\kept@topmark\botmark
485
+ \global\let\kept@firstmark\@empty
486
+ \global\let\kept@botmark\@empty
487
+ \mult@info\tw@
488
+ {(Re)Init top mark:\MessageBreak
489
+ \meaning\kept@topmark
490
+ \@gobbletwo}%
491
+ \global\@colroom\@colht
492
+ \process@deferreds
493
+ \@whilesw\if@fcolmade\fi{\@outputpage
494
+ \global\@colroom\@colht
495
+ \process@deferreds}%
496
+ \mult@info\@ne
497
+ {Colroom:\MessageBreak
498
+ \the\@colht\space
499
+ after float space removed
500
+ = \the\@colroom \@gobble}%
501
+ \set@mult@vsize \global
502
+ \fi}
503
+ \def\leave@mult@footins{%
504
+ \advance\dimen@-\skip\footins
505
+ \advance\dimen@-\ht\footins
506
+ }
507
+ \def\speci@ls{%
508
+ \ifnum\outputpenalty <-\@Mi
509
+ \ifnum \outputpenalty<-\@MM
510
+ \PackageError{multicol}{Document end
511
+ inside multicols environment}\@ehd
512
+ \@specialoutput
513
+ \else
514
+ \ifnum\outputpenalty = -\@Mv
515
+ \mult@info\@ne{Forced column
516
+ break seen}%
517
+ \global\advance\vsize-\pagetotal
518
+ \global\setbox\colbreak@box
519
+ \vbox{\ifvoid\colbreak@box
520
+ \else
521
+ \unvbox\colbreak@box
522
+ \penalty-\@Mv
523
+ \fi
524
+ \unvbox\@cclv}
525
+ \reinsert@footnotes
526
+ \else
527
+ \PackageWarningNoLine{multicol}%
528
+ {Floats and marginpars not
529
+ allowed inside `multicols'
530
+ environment!}
531
+ \unvbox\@cclv\reinsert@footnotes
532
+ \xdef\@freelist{\@freelist\@currlist}%
533
+ \gdef\@currlist{}%
534
+ \fi
535
+ \fi
536
+ \else \@doclearpage \fi
537
+ }
538
+ \def\process@deferreds{%
539
+ \@floatplacement
540
+ \@tryfcolumn\@deferlist
541
+ \if@fcolmade\else
542
+ \begingroup
543
+ \let\@tempb\@deferlist
544
+ \gdef\@deferlist{}%
545
+ \let\@elt\@scolelt
546
+ \@tempb \endgroup
547
+ \fi}
548
+ \newif\ifshr@nking
549
+ \def\raggedcolumns{%
550
+ \@bsphack\shr@nkingtrue\@esphack}
551
+ \def\flushcolumns{%
552
+ \@bsphack\shr@nkingfalse\@esphack}
553
+ \def\balance@columns@out{%
554
+ \setbox\mult@box\vbox{%
555
+ \ifvoid\colbreak@box\else
556
+ \unvbox\colbreak@box\break
557
+ \mult@info\@ne{Re-adding
558
+ forced break(s) in balancing}%
559
+ \fi
560
+ \unvbox\@cclv}%
561
+ \balance@columns
562
+ \global\vsize\@colroom
563
+ \global\advance\vsize\ht\partial@page
564
+ \unvbox\partial@page
565
+ \return@nonemptymark{first}\kept@firstmark
566
+ \return@nonemptymark{bot}\kept@botmark
567
+ \page@sofar
568
+ \penalty\z@
569
+ }
570
+ \def\balance@columns{%
571
+ \get@keptmarks\mult@box
572
+ \setbox\mult@box\vbox{%
573
+ \penalty-\@M
574
+ \unvbox\mult@box
575
+ \remove@discardable@items
576
+ }%
577
+ \@tempdima\topskip
578
+ \splittopskip\@tempdima
579
+ \@plus\multicolundershoot
580
+ \@minus\multicolovershoot
581
+ \splitmaxdepth\maxdepth
582
+ \setbox\@tempboxa\vsplit\mult@box to\z@
583
+ \@tempdima\ht\mult@box
584
+ \advance\@tempdima\dp\mult@box
585
+ \divide\@tempdima\col@number
586
+ \count@\@tempdima
587
+ \divide\count@\baselineskip
588
+ \dimen@\count@\baselineskip
589
+ \advance\dimen@\topskip
590
+ \ifdim \dimen@ >\@tempdima
591
+ \advance\dimen@-\baselineskip
592
+ \fi
593
+ \advance\dimen@\c@unbalance\baselineskip
594
+ \mult@info\@ne
595
+ {Balance columns\on@line:
596
+ \ifnum\c@unbalance=\z@\else
597
+ (off balance=\number\c@unbalance)\fi
598
+ \@gobbletwo}%
599
+ \ifnum\dimen@<\topskip
600
+ \mult@info\@ne
601
+ {Start value
602
+ \the\dimen@ \space ->
603
+ \the\topskip \space (corrected)}%
604
+ \dimen@\topskip
605
+ \fi
606
+ \vbadness\@M
607
+ \vfuzz \col@number\baselineskip
608
+ \last@try-\p@
609
+ \loop
610
+ {\process@cols\mult@grightbox
611
+ {\global\setbox\count@
612
+ \box\voidb@x}}%
613
+ \global\setbox\mult@grightbox
614
+ \copy\mult@box
615
+ \global\too@badfalse
616
+ {\process@cols\mult@firstbox{%
617
+ \global\setbox\count@
618
+ \vsplit\mult@grightbox to\dimen@
619
+ \ifnum\c@tracingmulticols>\@ne
620
+ \@tempcnta\count@
621
+ \advance\@tempcnta-\mult@grightbox
622
+ \divide\@tempcnta \tw@
623
+ \message{^^JColumn
624
+ \number\@tempcnta\space
625
+ badness: \the\badness\space}%
626
+ \fi
627
+ \ifnum\badness>\c@columnbadness
628
+ \ifnum\c@tracingmulticols>\@ne
629
+ \message{too bad
630
+ (>\the\c@columnbadness)}%
631
+ \fi
632
+ \global\too@badtrue
633
+ \fi
634
+ }}%
635
+ \boxmaxdepth\maxdepth
636
+ \global\setbox\mult@grightbox
637
+ \vbox{\unvbox\mult@grightbox}%
638
+ \setbox\mult@nat@firstbox
639
+ \vbox{\unvcopy\mult@firstbox}%
640
+ \ifnum\c@tracingmulticols>\@ne
641
+ \message{^^JFirst column
642
+ = \the\dimen@\space
643
+ (\the\ht\mult@nat@firstbox)}\fi
644
+ \ifnum\c@tracingmulticols>\@ne
645
+ \message{<> last column =
646
+ \the\ht\mult@grightbox^^J}%
647
+ \fi
648
+ \ifdim\ht\mult@grightbox >\dimen@
649
+ \too@badtrue
650
+ \ifnum\c@tracingmulticols>\@ne
651
+ \typeout{Rejected: last
652
+ column too large!}%
653
+ \fi
654
+ \else
655
+ \setbox\@tempboxa
656
+ \copy\mult@grightbox
657
+ \setbox\z@\vsplit\@tempboxa to\maxdimen
658
+ \ifvoid\@tempboxa
659
+ \global\setbox\mult@grightbox
660
+ \vbox to\dimen@
661
+ {\unvbox\mult@grightbox}%
662
+ \ifnum\c@tracingmulticols>\@ne
663
+ \message{Final badness:
664
+ \the\badness}%
665
+ \fi
666
+ \ifnum\badness>\c@finalcolumnbadness
667
+ \global\setbox\mult@grightbox
668
+ \vbox to\dimen@
669
+ {\unvbox\mult@grightbox\vfill}%
670
+ \ifnum\c@tracingmulticols>\@ne
671
+ \message{ setting natural
672
+ (> \the\c@finalcolumnbadness)}%
673
+ \fi
674
+ \fi
675
+ \else
676
+ \too@badtrue
677
+ \ifnum\c@tracingmulticols>\@ne
678
+ \typeout{Rejected: unprocessed
679
+ forced break(s) in last column!}%
680
+ \fi
681
+ \fi
682
+ \fi
683
+ \ifdim\ht\mult@nat@firstbox<\dimen@
684
+ \ifdim\ht\mult@nat@firstbox>\last@try
685
+ \too@badtrue
686
+ \ifnum\c@tracingmulticols>\@ne
687
+ \typeout{Retry: using natural
688
+ height of first column!}%
689
+ \fi
690
+ \dimen@\ht\mult@nat@firstbox
691
+ \last@try\dimen@
692
+ \advance\dimen@-\p@
693
+ \fi
694
+ \fi
695
+ \iftoo@bad
696
+ \advance\dimen@\p@
697
+ \repeat
698
+ \if@boxedmulticols\else
699
+ \ifdim\dimen@>\@colroom
700
+ \dimen@\@colroom
701
+ \fi
702
+ \fi
703
+ \process@cols\mult@rightbox
704
+ {\@tempcnta\count@
705
+ \advance\@tempcnta\@ne
706
+ \setbox\count@\vbox to\dimen@
707
+ {%
708
+ \vskip \z@
709
+ \@plus-\multicolundershoot
710
+ \@minus-\multicolovershoot
711
+ \unvbox\@tempcnta
712
+ \ifshr@nking\vfill\fi}}%
713
+ }
714
+ \newbox\mult@rightbox
715
+ \newbox\mult@grightbox
716
+ \newbox\mult@gfirstbox
717
+ \newbox\mult@firstbox
718
+ \newbox\@tempa\newbox\@tempa
719
+ \newbox\@tempa\newbox\@tempa
720
+ \newbox\@tempa\newbox\@tempa
721
+ \newbox\@tempa\newbox\@tempa
722
+ \newbox\@tempa\newbox\@tempa
723
+ \newbox\@tempa\newbox\@tempa
724
+ \newbox\@tempa\newbox\@tempa
725
+ \newbox\@tempa\newbox\@tempa
726
+ \newbox\@tempa
727
+ \let\@tempa\relax
728
+ \@ifundefined{emergencystretch}
729
+ {\newdimen\emergencystretch}{}
730
+ \def\setemergencystretch#1#2{%
731
+ \emergencystretch 4pt
732
+ \multiply\emergencystretch#1}
733
+
734
+ \def\set@floatcmds{%
735
+ \let\@dblfloat\@dbflt
736
+ \def\end@dblfloat{\par
737
+ \vskip\z@
738
+ \egroup
739
+ \color@endbox
740
+ \@largefloatcheck
741
+ \outer@nobreak
742
+ \ifnum\@floatpenalty<\z@
743
+ \@cons\@deferlist\@currbox
744
+ \fi
745
+ \ifnum\@floatpenalty=-\@Mii
746
+ \@Esphack
747
+ \fi}}
748
+ \def\kept@topmark{{}{}}
749
+ \let\kept@firstmark\@empty
750
+ \let\kept@botmark\@empty
751
+ \def\return@nonemptymark#1#2{%
752
+ \ifx#2\@empty
753
+ \else
754
+ \mult@info\tw@
755
+ {Returned #1 mark:\MessageBreak
756
+ \meaning#2}%
757
+ \toks@\expandafter{#2}%
758
+ \mark{\the\toks@}%
759
+ \nobreak
760
+ \fi}
761
+ \def\get@keptmarks#1{%
762
+ \begingroup
763
+ \vbadness\@M
764
+ \setbox#1\copy#1%
765
+ \setbox#1\vsplit#1to\maxdimen
766
+ \set@keptmarks
767
+ \endgroup
768
+ }
769
+ \def\set@keptmarks{%
770
+ \ifx\kept@firstmark\@empty
771
+ \expandafter\gdef\expandafter
772
+ \kept@firstmark
773
+ \expandafter{\splitfirstmark}%
774
+ \ifx\kept@firstmark\@empty\else
775
+ \mult@info\tw@
776
+ {Set kept first mark:\MessageBreak
777
+ \meaning\kept@firstmark%
778
+ \@gobbletwo}%
779
+ \fi
780
+ \fi
781
+ \expandafter\def\expandafter\@tempa
782
+ \expandafter{\splitbotmark}%
783
+ \ifx\@tempa\@empty\else
784
+ \global\let\kept@botmark\@tempa
785
+ \mult@info\tw@
786
+ {Set kept bot mark:\MessageBreak
787
+ \meaning\kept@botmark%
788
+ \@gobbletwo}%
789
+ \fi}%
790
+ \def\prep@keptmarks{%
791
+ \if@boxedmulticols \else
792
+ \get@keptmarks\partial@page
793
+ \fi}
794
+ \def\remove@discardable@items{%
795
+ \unskip\unpenalty\unkern
796
+ \unskip\unpenalty\unkern
797
+ \unskip\unpenalty\unkern
798
+ \unskip\unpenalty\unkern
799
+ }
800
+ \newif\iftoo@bad
801
+ \newcount\c@columnbadness
802
+ \c@columnbadness=10000
803
+ \newcount\c@finalcolumnbadness
804
+ \c@finalcolumnbadness=9999
805
+
806
+ \newdimen\last@try
807
+
808
+ \newdimen\multicolovershoot
809
+ \newdimen\multicolundershoot
810
+ \multicolovershoot=0pt
811
+ \multicolundershoot=2pt
812
+ \newbox\mult@nat@firstbox
813
+ \def\mult@info#1#2{%
814
+ \ifnum\c@tracingmulticols>#1%
815
+ \GenericWarning
816
+ {(multicol)\@spaces\@spaces}%
817
+ {Package multicol: #2}%
818
+ \fi
819
+ }
820
+ \@namedef{multicols*}{%
821
+ \ifinner
822
+ \PackageWarning{multicol}%
823
+ {multicols* inside a box does
824
+ not make sense.\MessageBreak
825
+ Going to balance anyway}%
826
+ \else
827
+ \let\balance@columns@out
828
+ \multi@column@out
829
+ \fi
830
+ \begin{multicols}
831
+ }
832
+ \@namedef{endmulticols*}{\vfill
833
+ \end{multicols}}
834
+ \mathchardef\@Mv=10005
835
+ \def\columnbreak{%
836
+ \ifnum\col@number<\tw@
837
+ \PackageError{multicol}%
838
+ {\noexpand\columnbreak outside multicols}%
839
+ {This command can only be used within
840
+ a multicols or multicols* environment.}%
841
+ \else
842
+ \ifvmode
843
+ \penalty -\@Mv\relax
844
+ \else
845
+ \@bsphack
846
+ \vadjust{\penalty -\@Mv\relax}%
847
+ \@esphack
848
+ \fi
849
+ \fi}
850
+ \newbox\colbreak@box
851
+ \endinput
852
+ %%
853
+ %% End of file `multicol.sty'.