clojure 1.0.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (1378) hide show
  1. data/.document +5 -0
  2. data/.gitignore +21 -0
  3. data/LICENSE +23 -0
  4. data/README.rdoc +18 -0
  5. data/Rakefile +18 -0
  6. data/VERSION +1 -0
  7. data/bin/clj +13 -0
  8. data/epl-v10.html +261 -0
  9. data/lib/clojure/asm/AnnotationVisitor.class +0 -0
  10. data/lib/clojure/asm/AnnotationWriter.class +0 -0
  11. data/lib/clojure/asm/Attribute.class +0 -0
  12. data/lib/clojure/asm/ByteVector.class +0 -0
  13. data/lib/clojure/asm/ClassAdapter.class +0 -0
  14. data/lib/clojure/asm/ClassReader.class +0 -0
  15. data/lib/clojure/asm/ClassVisitor.class +0 -0
  16. data/lib/clojure/asm/ClassWriter.class +0 -0
  17. data/lib/clojure/asm/Edge.class +0 -0
  18. data/lib/clojure/asm/FieldVisitor.class +0 -0
  19. data/lib/clojure/asm/FieldWriter.class +0 -0
  20. data/lib/clojure/asm/Frame.class +0 -0
  21. data/lib/clojure/asm/Handler.class +0 -0
  22. data/lib/clojure/asm/Item.class +0 -0
  23. data/lib/clojure/asm/Label.class +0 -0
  24. data/lib/clojure/asm/MethodAdapter.class +0 -0
  25. data/lib/clojure/asm/MethodVisitor.class +0 -0
  26. data/lib/clojure/asm/MethodWriter.class +0 -0
  27. data/lib/clojure/asm/Opcodes.class +0 -0
  28. data/lib/clojure/asm/Type.class +0 -0
  29. data/lib/clojure/asm/commons/AdviceAdapter.class +0 -0
  30. data/lib/clojure/asm/commons/AnalyzerAdapter.class +0 -0
  31. data/lib/clojure/asm/commons/CodeSizeEvaluator.class +0 -0
  32. data/lib/clojure/asm/commons/EmptyVisitor.class +0 -0
  33. data/lib/clojure/asm/commons/GeneratorAdapter.class +0 -0
  34. data/lib/clojure/asm/commons/LocalVariablesSorter.class +0 -0
  35. data/lib/clojure/asm/commons/Method.class +0 -0
  36. data/lib/clojure/asm/commons/SerialVersionUIDAdder$Item.class +0 -0
  37. data/lib/clojure/asm/commons/SerialVersionUIDAdder.class +0 -0
  38. data/lib/clojure/asm/commons/StaticInitMerger.class +0 -0
  39. data/lib/clojure/asm/commons/TableSwitchGenerator.class +0 -0
  40. data/lib/clojure/core$_DOT__DOT___3630.class +0 -0
  41. data/lib/clojure/core$_EQ__EQ___3398.class +0 -0
  42. data/lib/clojure/core$_EQ___3291.class +0 -0
  43. data/lib/clojure/core$_GT__EQ___3390.class +0 -0
  44. data/lib/clojure/core$_GT___3382.class +0 -0
  45. data/lib/clojure/core$_LT__EQ___3374.class +0 -0
  46. data/lib/clojure/core$_LT___3366.class +0 -0
  47. data/lib/clojure/core$_PLUS___3332.class +0 -0
  48. data/lib/clojure/core$_SLASH___3350.class +0 -0
  49. data/lib/clojure/core$_STAR___3341.class +0 -0
  50. data/lib/clojure/core$__GT___3634.class +0 -0
  51. data/lib/clojure/core$___3358.class +0 -0
  52. data/lib/clojure/core$accessor__4294.class +0 -0
  53. data/lib/clojure/core$aclone__4211.class +0 -0
  54. data/lib/clojure/core$add_classpath__4707.class +0 -0
  55. data/lib/clojure/core$add_doc__5153.class +0 -0
  56. data/lib/clojure/core$add_watch__3697.class +0 -0
  57. data/lib/clojure/core$add_watcher__3703$fn__3705.class +0 -0
  58. data/lib/clojure/core$add_watcher__3703.class +0 -0
  59. data/lib/clojure/core$agent__3684.class +0 -0
  60. data/lib/clojure/core$agent_errors__3712.class +0 -0
  61. data/lib/clojure/core$aget__4217.class +0 -0
  62. data/lib/clojure/core$alength__4205.class +0 -0
  63. data/lib/clojure/core$alias__4367.class +0 -0
  64. data/lib/clojure/core$all_ns__4318.class +0 -0
  65. data/lib/clojure/core$alter__3759.class +0 -0
  66. data/lib/clojure/core$alter_meta_BANG___3750.class +0 -0
  67. data/lib/clojure/core$alter_var_root__4827.class +0 -0
  68. data/lib/clojure/core$amap__4725.class +0 -0
  69. data/lib/clojure/core$ancestors__4866$fn__4869.class +0 -0
  70. data/lib/clojure/core$ancestors__4866.class +0 -0
  71. data/lib/clojure/core$and__3308.class +0 -0
  72. data/lib/clojure/core$apply__3243.class +0 -0
  73. data/lib/clojure/core$areduce__4729.class +0 -0
  74. data/lib/clojure/core$array__4040.class +0 -0
  75. data/lib/clojure/core$array_map__4401.class +0 -0
  76. data/lib/clojure/core$aset__4224.class +0 -0
  77. data/lib/clojure/core$aset_boolean__4244.class +0 -0
  78. data/lib/clojure/core$aset_byte__4260.class +0 -0
  79. data/lib/clojure/core$aset_char__4264.class +0 -0
  80. data/lib/clojure/core$aset_double__4252.class +0 -0
  81. data/lib/clojure/core$aset_float__4248.class +0 -0
  82. data/lib/clojure/core$aset_int__4236.class +0 -0
  83. data/lib/clojure/core$aset_long__4240.class +0 -0
  84. data/lib/clojure/core$aset_short__4256.class +0 -0
  85. data/lib/clojure/core$asm_type__5683.class +0 -0
  86. data/lib/clojure/core$assert__4528.class +0 -0
  87. data/lib/clojure/core$assert_args__3659.class +0 -0
  88. data/lib/clojure/core$assoc__3148.class +0 -0
  89. data/lib/clojure/core$assoc_in__5075.class +0 -0
  90. data/lib/clojure/core$associative_QMARK___5102.class +0 -0
  91. data/lib/clojure/core$atom__3728.class +0 -0
  92. data/lib/clojure/core$await1__4014.class +0 -0
  93. data/lib/clojure/core$await__4007$count_down__4009.class +0 -0
  94. data/lib/clojure/core$await__4007.class +0 -0
  95. data/lib/clojure/core$await_for__4017$count_down__4019.class +0 -0
  96. data/lib/clojure/core$await_for__4017.class +0 -0
  97. data/lib/clojure/core$bases__4836.class +0 -0
  98. data/lib/clojure/core$bean__5303$fn__5305$fn__5307.class +0 -0
  99. data/lib/clojure/core$bean__5303$fn__5305.class +0 -0
  100. data/lib/clojure/core$bean__5303$fn__5321$thisfn__5323$fn__5324.class +0 -0
  101. data/lib/clojure/core$bean__5303$fn__5321$thisfn__5323.class +0 -0
  102. data/lib/clojure/core$bean__5303$fn__5321.class +0 -0
  103. data/lib/clojure/core$bean__5303$fn__5330.class +0 -0
  104. data/lib/clojure/core$bean__5303$fn__5333.class +0 -0
  105. data/lib/clojure/core$bean__5303$fn__5336.class +0 -0
  106. data/lib/clojure/core$bean__5303$fn__5339.class +0 -0
  107. data/lib/clojure/core$bean__5303$fn__5342.class +0 -0
  108. data/lib/clojure/core$bean__5303$fn__5346.class +0 -0
  109. data/lib/clojure/core$bean__5303$fn__5349.class +0 -0
  110. data/lib/clojure/core$bean__5303$snapshot__5315$fn__5317.class +0 -0
  111. data/lib/clojure/core$bean__5303$snapshot__5315.class +0 -0
  112. data/lib/clojure/core$bean__5303$v__5312.class +0 -0
  113. data/lib/clojure/core$bean__5303.class +0 -0
  114. data/lib/clojure/core$bigdec__4136.class +0 -0
  115. data/lib/clojure/core$bigint__4133.class +0 -0
  116. data/lib/clojure/core$binding__3672$var_ize__3674.class +0 -0
  117. data/lib/clojure/core$binding__3672.class +0 -0
  118. data/lib/clojure/core$bit_and__3509.class +0 -0
  119. data/lib/clojure/core$bit_and_not__3524.class +0 -0
  120. data/lib/clojure/core$bit_clear__3527.class +0 -0
  121. data/lib/clojure/core$bit_flip__3533.class +0 -0
  122. data/lib/clojure/core$bit_not__3503.class +0 -0
  123. data/lib/clojure/core$bit_or__3515.class +0 -0
  124. data/lib/clojure/core$bit_set__3530.class +0 -0
  125. data/lib/clojure/core$bit_shift_left__3539.class +0 -0
  126. data/lib/clojure/core$bit_shift_right__3542.class +0 -0
  127. data/lib/clojure/core$bit_test__3536.class +0 -0
  128. data/lib/clojure/core$bit_xor__3521.class +0 -0
  129. data/lib/clojure/core$boolean__4101.class +0 -0
  130. data/lib/clojure/core$bound_fn__4679$fn__4681.class +0 -0
  131. data/lib/clojure/core$bound_fn__4679.class +0 -0
  132. data/lib/clojure/core$butlast__3156.class +0 -0
  133. data/lib/clojure/core$byte__4089.class +0 -0
  134. data/lib/clojure/core$cast__3160.class +0 -0
  135. data/lib/clojure/core$char__4095.class +0 -0
  136. data/lib/clojure/core$class_QMARK___4824.class +0 -0
  137. data/lib/clojure/core$class__4043.class +0 -0
  138. data/lib/clojure/core$clear_agent_errors__3715.class +0 -0
  139. data/lib/clojure/core$clojure_version__5781.class +0 -0
  140. data/lib/clojure/core$coll_QMARK___5087.class +0 -0
  141. data/lib/clojure/core$comment__4501.class +0 -0
  142. data/lib/clojure/core$commute__3756.class +0 -0
  143. data/lib/clojure/core$comp__3775$fn__3777.class +0 -0
  144. data/lib/clojure/core$comp__3775.class +0 -0
  145. data/lib/clojure/core$comparator__3965$fn__3967.class +0 -0
  146. data/lib/clojure/core$comparator__3965.class +0 -0
  147. data/lib/clojure/core$compare__3304.class +0 -0
  148. data/lib/clojure/core$compare_and_set_BANG___3738.class +0 -0
  149. data/lib/clojure/core$compile__5065$fn__5067.class +0 -0
  150. data/lib/clojure/core$compile__5065.class +0 -0
  151. data/lib/clojure/core$complement__3551$fn__3553.class +0 -0
  152. data/lib/clojure/core$complement__3551.class +0 -0
  153. data/lib/clojure/core$concat__3255$cat__3269$fn__3270.class +0 -0
  154. data/lib/clojure/core$concat__3255$cat__3269.class +0 -0
  155. data/lib/clojure/core$concat__3255$fn__3257.class +0 -0
  156. data/lib/clojure/core$concat__3255$fn__3261.class +0 -0
  157. data/lib/clojure/core$concat__3255$fn__3265.class +0 -0
  158. data/lib/clojure/core$concat__3255.class +0 -0
  159. data/lib/clojure/core$cond__3237.class +0 -0
  160. data/lib/clojure/core$condp__5146$emit__5148.class +0 -0
  161. data/lib/clojure/core$condp__5146.class +0 -0
  162. data/lib/clojure/core$conj__3121.class +0 -0
  163. data/lib/clojure/core$cons__3107.class +0 -0
  164. data/lib/clojure/core$constantly__3560$fn__3562.class +0 -0
  165. data/lib/clojure/core$constantly__3560.class +0 -0
  166. data/lib/clojure/core$construct_proxy__5265.class +0 -0
  167. data/lib/clojure/core$contains_QMARK___3582.class +0 -0
  168. data/lib/clojure/core$count__3569.class +0 -0
  169. data/lib/clojure/core$counted_QMARK___5111.class +0 -0
  170. data/lib/clojure/core$create_ns__4312.class +0 -0
  171. data/lib/clojure/core$create_struct__4282.class +0 -0
  172. data/lib/clojure/core$ctor_sigs__5565$iter__5567__5569$fn__5570.class +0 -0
  173. data/lib/clojure/core$ctor_sigs__5565$iter__5567__5569.class +0 -0
  174. data/lib/clojure/core$ctor_sigs__5565.class +0 -0
  175. data/lib/clojure/core$cycle__3899$fn__3901.class +0 -0
  176. data/lib/clojure/core$cycle__3899.class +0 -0
  177. data/lib/clojure/core$dec__3422.class +0 -0
  178. data/lib/clojure/core$decimal_QMARK___4121.class +0 -0
  179. data/lib/clojure/core$declare__5118$fn__5120.class +0 -0
  180. data/lib/clojure/core$declare__5118.class +0 -0
  181. data/lib/clojure/core$def_aset__4233.class +0 -0
  182. data/lib/clojure/core$definline__4716.class +0 -0
  183. data/lib/clojure/core$defmacro__3190.class +0 -0
  184. data/lib/clojure/core$defmethod__3641.class +0 -0
  185. data/lib/clojure/core$defmulti__3638.class +0 -0
  186. data/lib/clojure/core$defn__3158.class +0 -0
  187. data/lib/clojure/core$defn___4565.class +0 -0
  188. data/lib/clojure/core$defonce__4973.class +0 -0
  189. data/lib/clojure/core$defstruct__4285.class +0 -0
  190. data/lib/clojure/core$delay_QMARK___3278.class +0 -0
  191. data/lib/clojure/core$delay__3275.class +0 -0
  192. data/lib/clojure/core$deref__3725.class +0 -0
  193. data/lib/clojure/core$derive__4877$tf__4880$fn__4882.class +0 -0
  194. data/lib/clojure/core$derive__4877$tf__4880.class +0 -0
  195. data/lib/clojure/core$derive__4877.class +0 -0
  196. data/lib/clojure/core$descendants__4873.class +0 -0
  197. data/lib/clojure/core$destructure__4413$pb__4415$pmap__4419$fn__4421$fn__4423.class +0 -0
  198. data/lib/clojure/core$destructure__4413$pb__4415$pmap__4419$fn__4421.class +0 -0
  199. data/lib/clojure/core$destructure__4413$pb__4415$pmap__4419$fn__4427.class +0 -0
  200. data/lib/clojure/core$destructure__4413$pb__4415$pmap__4419$fn__4430.class +0 -0
  201. data/lib/clojure/core$destructure__4413$pb__4415$pmap__4419.class +0 -0
  202. data/lib/clojure/core$destructure__4413$pb__4415$pvec__4416.class +0 -0
  203. data/lib/clojure/core$destructure__4413$pb__4415.class +0 -0
  204. data/lib/clojure/core$destructure__4413$process_entry__4436.class +0 -0
  205. data/lib/clojure/core$destructure__4413.class +0 -0
  206. data/lib/clojure/core$disj__3594.class +0 -0
  207. data/lib/clojure/core$dissoc__3589.class +0 -0
  208. data/lib/clojure/core$distinct_QMARK___4901.class +0 -0
  209. data/lib/clojure/core$distinct__4646$step__4648$fn__4649$fn__4652.class +0 -0
  210. data/lib/clojure/core$distinct__4646$step__4648$fn__4649.class +0 -0
  211. data/lib/clojure/core$distinct__4646$step__4648.class +0 -0
  212. data/lib/clojure/core$distinct__4646.class +0 -0
  213. data/lib/clojure/core$doall__4003.class +0 -0
  214. data/lib/clojure/core$doc__4590.class +0 -0
  215. data/lib/clojure/core$dorun__3998.class +0 -0
  216. data/lib/clojure/core$doseq__3993$step__3995.class +0 -0
  217. data/lib/clojure/core$doseq__3993.class +0 -0
  218. data/lib/clojure/core$dosync__4672.class +0 -0
  219. data/lib/clojure/core$dotimes__4025.class +0 -0
  220. data/lib/clojure/core$doto__4187$fn__4189.class +0 -0
  221. data/lib/clojure/core$doto__4187.class +0 -0
  222. data/lib/clojure/core$double__4077.class +0 -0
  223. data/lib/clojure/core$double_array__4742.class +0 -0
  224. data/lib/clojure/core$doubles__4790.class +0 -0
  225. data/lib/clojure/core$drop__3872$fn__3878.class +0 -0
  226. data/lib/clojure/core$drop__3872$step__3874.class +0 -0
  227. data/lib/clojure/core$drop__3872.class +0 -0
  228. data/lib/clojure/core$drop_last__3882$fn__3885.class +0 -0
  229. data/lib/clojure/core$drop_last__3882.class +0 -0
  230. data/lib/clojure/core$drop_while__3889$fn__3895.class +0 -0
  231. data/lib/clojure/core$drop_while__3889$step__3891.class +0 -0
  232. data/lib/clojure/core$drop_while__3889.class +0 -0
  233. data/lib/clojure/core$empty_QMARK___5084.class +0 -0
  234. data/lib/clojure/core$empty__4721.class +0 -0
  235. data/lib/clojure/core$ensure__3765.class +0 -0
  236. data/lib/clojure/core$enumeration_seq__4935.class +0 -0
  237. data/lib/clojure/core$escape_class_name__5576.class +0 -0
  238. data/lib/clojure/core$eval__3990.class +0 -0
  239. data/lib/clojure/core$eval__4760$fn__4762.class +0 -0
  240. data/lib/clojure/core$eval__4760.class +0 -0
  241. data/lib/clojure/core$eval__4772$fn__4774.class +0 -0
  242. data/lib/clojure/core$eval__4772.class +0 -0
  243. data/lib/clojure/core$eval__4784$fn__4786.class +0 -0
  244. data/lib/clojure/core$eval__4784.class +0 -0
  245. data/lib/clojure/core$eval__4796$fn__4798.class +0 -0
  246. data/lib/clojure/core$eval__4796.class +0 -0
  247. data/lib/clojure/core$even_QMARK___3545.class +0 -0
  248. data/lib/clojure/core$every_QMARK___3806.class +0 -0
  249. data/lib/clojure/core$false_QMARK___3202.class +0 -0
  250. data/lib/clojure/core$ffirst__3125.class +0 -0
  251. data/lib/clojure/core$file_seq__4601$fn__4603.class +0 -0
  252. data/lib/clojure/core$file_seq__4601$fn__4606.class +0 -0
  253. data/lib/clojure/core$file_seq__4601.class +0 -0
  254. data/lib/clojure/core$filter__3845$fn__3851.class +0 -0
  255. data/lib/clojure/core$filter__3845$step__3847.class +0 -0
  256. data/lib/clojure/core$filter__3845.class +0 -0
  257. data/lib/clojure/core$filter_key__4306.class +0 -0
  258. data/lib/clojure/core$find__3599.class +0 -0
  259. data/lib/clojure/core$find_doc__4571.class +0 -0
  260. data/lib/clojure/core$find_field__5583$fn__5585.class +0 -0
  261. data/lib/clojure/core$find_field__5583.class +0 -0
  262. data/lib/clojure/core$find_ns__4309.class +0 -0
  263. data/lib/clojure/core$find_var__3678.class +0 -0
  264. data/lib/clojure/core$first__3115.class +0 -0
  265. data/lib/clojure/core$float_QMARK___4124.class +0 -0
  266. data/lib/clojure/core$float__4071.class +0 -0
  267. data/lib/clojure/core$float_array__4735.class +0 -0
  268. data/lib/clojure/core$floats__4766.class +0 -0
  269. data/lib/clojure/core$flush__4156.class +0 -0
  270. data/lib/clojure/core$fn_QMARK___5099.class +0 -0
  271. data/lib/clojure/core$fn__3113.class +0 -0
  272. data/lib/clojure/core$fn__3288.class +0 -0
  273. data/lib/clojure/core$fn__3301.class +0 -0
  274. data/lib/clojure/core$fn__3329.class +0 -0
  275. data/lib/clojure/core$fn__3338.class +0 -0
  276. data/lib/clojure/core$fn__3347.class +0 -0
  277. data/lib/clojure/core$fn__3355.class +0 -0
  278. data/lib/clojure/core$fn__3363.class +0 -0
  279. data/lib/clojure/core$fn__3371.class +0 -0
  280. data/lib/clojure/core$fn__3379.class +0 -0
  281. data/lib/clojure/core$fn__3387.class +0 -0
  282. data/lib/clojure/core$fn__3395.class +0 -0
  283. data/lib/clojure/core$fn__3413.class +0 -0
  284. data/lib/clojure/core$fn__3419.class +0 -0
  285. data/lib/clojure/core$fn__3425.class +0 -0
  286. data/lib/clojure/core$fn__3431.class +0 -0
  287. data/lib/clojure/core$fn__3437.class +0 -0
  288. data/lib/clojure/core$fn__3443.class +0 -0
  289. data/lib/clojure/core$fn__3449.class +0 -0
  290. data/lib/clojure/core$fn__3455.class +0 -0
  291. data/lib/clojure/core$fn__3461.class +0 -0
  292. data/lib/clojure/core$fn__3467.class +0 -0
  293. data/lib/clojure/core$fn__3473.class +0 -0
  294. data/lib/clojure/core$fn__3479.class +0 -0
  295. data/lib/clojure/core$fn__3485.class +0 -0
  296. data/lib/clojure/core$fn__3500.class +0 -0
  297. data/lib/clojure/core$fn__3506.class +0 -0
  298. data/lib/clojure/core$fn__3512.class +0 -0
  299. data/lib/clojure/core$fn__3518.class +0 -0
  300. data/lib/clojure/core$fn__4050.class +0 -0
  301. data/lib/clojure/core$fn__4056.class +0 -0
  302. data/lib/clojure/core$fn__4062.class +0 -0
  303. data/lib/clojure/core$fn__4068.class +0 -0
  304. data/lib/clojure/core$fn__4074.class +0 -0
  305. data/lib/clojure/core$fn__4080.class +0 -0
  306. data/lib/clojure/core$fn__4086.class +0 -0
  307. data/lib/clojure/core$fn__4092.class +0 -0
  308. data/lib/clojure/core$fn__4098.class +0 -0
  309. data/lib/clojure/core$fn__4139.class +0 -0
  310. data/lib/clojure/core$fn__4142.class +0 -0
  311. data/lib/clojure/core$fn__4202.class +0 -0
  312. data/lib/clojure/core$fn__4208.class +0 -0
  313. data/lib/clojure/core$fn__4214.class +0 -0
  314. data/lib/clojure/core$fn__4221.class +0 -0
  315. data/lib/clojure/core$fn__4443$psig__4445.class +0 -0
  316. data/lib/clojure/core$fn__4443.class +0 -0
  317. data/lib/clojure/core$fn__4732.class +0 -0
  318. data/lib/clojure/core$fn__4739.class +0 -0
  319. data/lib/clojure/core$fn__4746.class +0 -0
  320. data/lib/clojure/core$fn__4753.class +0 -0
  321. data/lib/clojure/core$fn__4769.class +0 -0
  322. data/lib/clojure/core$fn__4781.class +0 -0
  323. data/lib/clojure/core$fn__4793.class +0 -0
  324. data/lib/clojure/core$fn__4805.class +0 -0
  325. data/lib/clojure/core$fn__4976.class +0 -0
  326. data/lib/clojure/core$fn__4980.class +0 -0
  327. data/lib/clojure/core$fn__4984.class +0 -0
  328. data/lib/clojure/core$fn__5379$fn__5381.class +0 -0
  329. data/lib/clojure/core$fn__5379.class +0 -0
  330. data/lib/clojure/core$fn__5385.class +0 -0
  331. data/lib/clojure/core$fn__5388.class +0 -0
  332. data/lib/clojure/core$fn__5394.class +0 -0
  333. data/lib/clojure/core$fn__5397.class +0 -0
  334. data/lib/clojure/core$fn__5400.class +0 -0
  335. data/lib/clojure/core$fn__5403.class +0 -0
  336. data/lib/clojure/core$fn__5406$fn__5408.class +0 -0
  337. data/lib/clojure/core$fn__5406.class +0 -0
  338. data/lib/clojure/core$fn__5412$fn__5414.class +0 -0
  339. data/lib/clojure/core$fn__5412.class +0 -0
  340. data/lib/clojure/core$fn__5418.class +0 -0
  341. data/lib/clojure/core$fn__5421.class +0 -0
  342. data/lib/clojure/core$fn__5427.class +0 -0
  343. data/lib/clojure/core$fn__5430.class +0 -0
  344. data/lib/clojure/core$fn__5433.class +0 -0
  345. data/lib/clojure/core$fn__5436.class +0 -0
  346. data/lib/clojure/core$fn__5439.class +0 -0
  347. data/lib/clojure/core$fn__5442.class +0 -0
  348. data/lib/clojure/core$fn__5445.class +0 -0
  349. data/lib/clojure/core$fn__5448.class +0 -0
  350. data/lib/clojure/core$fn__5453$fn__5455.class +0 -0
  351. data/lib/clojure/core$fn__5453.class +0 -0
  352. data/lib/clojure/core$fn__5459.class +0 -0
  353. data/lib/clojure/core$fn__5462.class +0 -0
  354. data/lib/clojure/core$fn__5467.class +0 -0
  355. data/lib/clojure/core$fn__5470.class +0 -0
  356. data/lib/clojure/core$fn__5479.class +0 -0
  357. data/lib/clojure/core$fn__5484$fn__5486.class +0 -0
  358. data/lib/clojure/core$fn__5484.class +0 -0
  359. data/lib/clojure/core$fn__5490.class +0 -0
  360. data/lib/clojure/core$fn__5493.class +0 -0
  361. data/lib/clojure/core$fn__5496.class +0 -0
  362. data/lib/clojure/core$fn__5500.class +0 -0
  363. data/lib/clojure/core$fn__5503.class +0 -0
  364. data/lib/clojure/core$fn__5506.class +0 -0
  365. data/lib/clojure/core$fn__5509.class +0 -0
  366. data/lib/clojure/core$fn__5512.class +0 -0
  367. data/lib/clojure/core$fn__5515.class +0 -0
  368. data/lib/clojure/core$fn__5518.class +0 -0
  369. data/lib/clojure/core$fn__5521.class +0 -0
  370. data/lib/clojure/core$fn__5524.class +0 -0
  371. data/lib/clojure/core$fn__5527.class +0 -0
  372. data/lib/clojure/core$fn__5530.class +0 -0
  373. data/lib/clojure/core$fn__5533.class +0 -0
  374. data/lib/clojure/core$fn__5536.class +0 -0
  375. data/lib/clojure/core$fn__5544.class +0 -0
  376. data/lib/clojure/core$fn__5547.class +0 -0
  377. data/lib/clojure/core$fn__5550.class +0 -0
  378. data/lib/clojure/core$fn__5774$prop__5777.class +0 -0
  379. data/lib/clojure/core$fn__5774.class +0 -0
  380. data/lib/clojure/core$fnext__3129.class +0 -0
  381. data/lib/clojure/core$for__4475$emit_bind__4489$do_mod__4495.class +0 -0
  382. data/lib/clojure/core$for__4475$emit_bind__4489.class +0 -0
  383. data/lib/clojure/core$for__4475$err__4485.class +0 -0
  384. data/lib/clojure/core$for__4475$to_groups__4477$fn__4480.class +0 -0
  385. data/lib/clojure/core$for__4475$to_groups__4477.class +0 -0
  386. data/lib/clojure/core$for__4475.class +0 -0
  387. data/lib/clojure/core$force__3281.class +0 -0
  388. data/lib/clojure/core$format__4938.class +0 -0
  389. data/lib/clojure/core$future__5722.class +0 -0
  390. data/lib/clojure/core$future_call__5702$fn__5704.class +0 -0
  391. data/lib/clojure/core$future_call__5702$fn__5707.class +0 -0
  392. data/lib/clojure/core$future_call__5702$fn__5710.class +0 -0
  393. data/lib/clojure/core$future_call__5702$fn__5713.class +0 -0
  394. data/lib/clojure/core$future_call__5702$fn__5717.class +0 -0
  395. data/lib/clojure/core$future_call__5702.class +0 -0
  396. data/lib/clojure/core$gen_class__5679.class +0 -0
  397. data/lib/clojure/core$gen_interface__5698.class +0 -0
  398. data/lib/clojure/core$generate_class__5596$arg_types__5608.class +0 -0
  399. data/lib/clojure/core$generate_class__5596$emit_forwarding_method__5642.class +0 -0
  400. data/lib/clojure/core$generate_class__5596$emit_get_var__5636.class +0 -0
  401. data/lib/clojure/core$generate_class__5596$emit_unsupported__5639.class +0 -0
  402. data/lib/clojure/core$generate_class__5596$fn__5614.class +0 -0
  403. data/lib/clojure/core$generate_class__5596$fn__5619.class +0 -0
  404. data/lib/clojure/core$generate_class__5596$fn__5624.class +0 -0
  405. data/lib/clojure/core$generate_class__5596$fn__5629$fn__5632.class +0 -0
  406. data/lib/clojure/core$generate_class__5596$fn__5629.class +0 -0
  407. data/lib/clojure/core$generate_class__5596$fn__5651.class +0 -0
  408. data/lib/clojure/core$generate_class__5596$fn__5654.class +0 -0
  409. data/lib/clojure/core$generate_class__5596$fn__5657.class +0 -0
  410. data/lib/clojure/core$generate_class__5596$fn__5664.class +0 -0
  411. data/lib/clojure/core$generate_class__5596$iname__5599.class +0 -0
  412. data/lib/clojure/core$generate_class__5596$to_types__5605.class +0 -0
  413. data/lib/clojure/core$generate_class__5596$totype__5602.class +0 -0
  414. data/lib/clojure/core$generate_class__5596$var_name__5611.class +0 -0
  415. data/lib/clojure/core$generate_class__5596.class +0 -0
  416. data/lib/clojure/core$generate_interface__5689$fn__5692.class +0 -0
  417. data/lib/clojure/core$generate_interface__5689.class +0 -0
  418. data/lib/clojure/core$generate_proxy__5188$fn__5209$fn__5212.class +0 -0
  419. data/lib/clojure/core$generate_proxy__5188$fn__5209.class +0 -0
  420. data/lib/clojure/core$generate_proxy__5188$fn__5237.class +0 -0
  421. data/lib/clojure/core$generate_proxy__5188$fn__5240.class +0 -0
  422. data/lib/clojure/core$generate_proxy__5188$fn__5247.class +0 -0
  423. data/lib/clojure/core$generate_proxy__5188$fn__5251.class +0 -0
  424. data/lib/clojure/core$generate_proxy__5188$gen_bridge__5199.class +0 -0
  425. data/lib/clojure/core$generate_proxy__5188$gen_method__5203.class +0 -0
  426. data/lib/clojure/core$generate_proxy__5188$iname__5190.class +0 -0
  427. data/lib/clojure/core$generate_proxy__5188$iter__5221__5225$fn__5226$iter__5223__5228$fn__5229.class +0 -0
  428. data/lib/clojure/core$generate_proxy__5188$iter__5221__5225$fn__5226$iter__5223__5228.class +0 -0
  429. data/lib/clojure/core$generate_proxy__5188$iter__5221__5225$fn__5226.class +0 -0
  430. data/lib/clojure/core$generate_proxy__5188$iter__5221__5225.class +0 -0
  431. data/lib/clojure/core$generate_proxy__5188$to_types__5196.class +0 -0
  432. data/lib/clojure/core$generate_proxy__5188$totype__5193.class +0 -0
  433. data/lib/clojure/core$generate_proxy__5188.class +0 -0
  434. data/lib/clojure/core$gensym__3233.class +0 -0
  435. data/lib/clojure/core$get__3585.class +0 -0
  436. data/lib/clojure/core$get_in__5071.class +0 -0
  437. data/lib/clojure/core$get_method__3653.class +0 -0
  438. data/lib/clojure/core$get_proxy_class__5259.class +0 -0
  439. data/lib/clojure/core$get_super_and_interfaces__5256.class +0 -0
  440. data/lib/clojure/core$get_validator__3747.class +0 -0
  441. data/lib/clojure/core$group_by_sig__5170$fn__5173.class +0 -0
  442. data/lib/clojure/core$group_by_sig__5170.class +0 -0
  443. data/lib/clojure/core$hash__4710.class +0 -0
  444. data/lib/clojure/core$hash_map__3173.class +0 -0
  445. data/lib/clojure/core$hash_set__3177.class +0 -0
  446. data/lib/clojure/core$identity__3566.class +0 -0
  447. data/lib/clojure/core$if_let__3663.class +0 -0
  448. data/lib/clojure/core$if_not__3284.class +0 -0
  449. data/lib/clojure/core$ifn_QMARK___5096.class +0 -0
  450. data/lib/clojure/core$import__4028.class +0 -0
  451. data/lib/clojure/core$inc__3416.class +0 -0
  452. data/lib/clojure/core$init_proxy__5268.class +0 -0
  453. data/lib/clojure/core$instance_QMARK___3135.class +0 -0
  454. data/lib/clojure/core$int__4059.class +0 -0
  455. data/lib/clojure/core$int_array__4749.class +0 -0
  456. data/lib/clojure/core$integer_QMARK___4107.class +0 -0
  457. data/lib/clojure/core$interleave__4383.class +0 -0
  458. data/lib/clojure/core$intern__5131.class +0 -0
  459. data/lib/clojure/core$interpose__4713.class +0 -0
  460. data/lib/clojure/core$into__4037.class +0 -0
  461. data/lib/clojure/core$into_array__4033.class +0 -0
  462. data/lib/clojure/core$ints__4778.class +0 -0
  463. data/lib/clojure/core$io_BANG___3771.class +0 -0
  464. data/lib/clojure/core$isa_QMARK___4843$fn__4846.class +0 -0
  465. data/lib/clojure/core$isa_QMARK___4843.class +0 -0
  466. data/lib/clojure/core$iterate__3922$fn__3924.class +0 -0
  467. data/lib/clojure/core$iterate__3922.class +0 -0
  468. data/lib/clojure/core$iterator_seq__4932.class +0 -0
  469. data/lib/clojure/core$key__3611.class +0 -0
  470. data/lib/clojure/core$keys__3605.class +0 -0
  471. data/lib/clojure/core$keyword_QMARK___3222.class +0 -0
  472. data/lib/clojure/core$keyword__3229.class +0 -0
  473. data/lib/clojure/core$last__3154.class +0 -0
  474. data/lib/clojure/core$lazy_cat__4466$fn__4468.class +0 -0
  475. data/lib/clojure/core$lazy_cat__4466.class +0 -0
  476. data/lib/clojure/core$lazy_seq__3252.class +0 -0
  477. data/lib/clojure/core$let__3109.class +0 -0
  478. data/lib/clojure/core$let__4440.class +0 -0
  479. data/lib/clojure/core$letfn__5768$fn__5770.class +0 -0
  480. data/lib/clojure/core$letfn__5768.class +0 -0
  481. data/lib/clojure/core$libspec_QMARK___4995.class +0 -0
  482. data/lib/clojure/core$line_seq__3959$fn__3961.class +0 -0
  483. data/lib/clojure/core$line_seq__3959.class +0 -0
  484. data/lib/clojure/core$list_QMARK___5090.class +0 -0
  485. data/lib/clojure/core$list_STAR___3249.class +0 -0
  486. data/lib/clojure/core$load__5058$fn__5061.class +0 -0
  487. data/lib/clojure/core$load__5058.class +0 -0
  488. data/lib/clojure/core$load_all__5019$fn__5021$fn__5023.class +0 -0
  489. data/lib/clojure/core$load_all__5019$fn__5021$fn__5026.class +0 -0
  490. data/lib/clojure/core$load_all__5019$fn__5021.class +0 -0
  491. data/lib/clojure/core$load_all__5019.class +0 -0
  492. data/lib/clojure/core$load_lib__5031.class +0 -0
  493. data/lib/clojure/core$load_libs__5043.class +0 -0
  494. data/lib/clojure/core$load_one__5010$fn__5012.class +0 -0
  495. data/lib/clojure/core$load_one__5010.class +0 -0
  496. data/lib/clojure/core$load_reader__4297.class +0 -0
  497. data/lib/clojure/core$load_string__4300.class +0 -0
  498. data/lib/clojure/core$loaded_libs__5055.class +0 -0
  499. data/lib/clojure/core$locking__3627.class +0 -0
  500. data/lib/clojure/core$long__4065.class +0 -0
  501. data/lib/clojure/core$long_array__4756.class +0 -0
  502. data/lib/clojure/core$longs__4802.class +0 -0
  503. data/lib/clojure/core$loop__3111.class +0 -0
  504. data/lib/clojure/core$loop__4450$fn__4452.class +0 -0
  505. data/lib/clojure/core$loop__4450$fn__4456.class +0 -0
  506. data/lib/clojure/core$loop__4450.class +0 -0
  507. data/lib/clojure/core$macroexpand_1__4276.class +0 -0
  508. data/lib/clojure/core$macroexpand__4279.class +0 -0
  509. data/lib/clojure/core$make_array__4268.class +0 -0
  510. data/lib/clojure/core$make_hierarchy__4830.class +0 -0
  511. data/lib/clojure/core$map_QMARK___3141.class +0 -0
  512. data/lib/clojure/core$map__3815$fn__3817.class +0 -0
  513. data/lib/clojure/core$map__3815$fn__3822.class +0 -0
  514. data/lib/clojure/core$map__3815$fn__3827.class +0 -0
  515. data/lib/clojure/core$map__3815$fn__3838.class +0 -0
  516. data/lib/clojure/core$map__3815$step__3833$fn__3834.class +0 -0
  517. data/lib/clojure/core$map__3815$step__3833.class +0 -0
  518. data/lib/clojure/core$map__3815.class +0 -0
  519. data/lib/clojure/core$mapcat__3842.class +0 -0
  520. data/lib/clojure/core$max__3403.class +0 -0
  521. data/lib/clojure/core$max_key__4628$fn__4632.class +0 -0
  522. data/lib/clojure/core$max_key__4628.class +0 -0
  523. data/lib/clojure/core$memfn__4194.class +0 -0
  524. data/lib/clojure/core$memoize__5138$fn__5140.class +0 -0
  525. data/lib/clojure/core$memoize__5138.class +0 -0
  526. data/lib/clojure/core$merge__3938$fn__3940.class +0 -0
  527. data/lib/clojure/core$merge__3938.class +0 -0
  528. data/lib/clojure/core$merge_with__3945$merge2__3950.class +0 -0
  529. data/lib/clojure/core$merge_with__3945$merge_entry__3947.class +0 -0
  530. data/lib/clojure/core$merge_with__3945.class +0 -0
  531. data/lib/clojure/core$meta__3150.class +0 -0
  532. data/lib/clojure/core$method_sig__5156.class +0 -0
  533. data/lib/clojure/core$methods__3650.class +0 -0
  534. data/lib/clojure/core$min__3408.class +0 -0
  535. data/lib/clojure/core$min_key__4638$fn__4642.class +0 -0
  536. data/lib/clojure/core$min_key__4638.class +0 -0
  537. data/lib/clojure/core$mod__4114.class +0 -0
  538. data/lib/clojure/core$most_specific__5160$fn__5162$fn__5164.class +0 -0
  539. data/lib/clojure/core$most_specific__5160$fn__5162.class +0 -0
  540. data/lib/clojure/core$most_specific__5160.class +0 -0
  541. data/lib/clojure/core$name__3620.class +0 -0
  542. data/lib/clojure/core$namespace__3623.class +0 -0
  543. data/lib/clojure/core$neg_QMARK___3482.class +0 -0
  544. data/lib/clojure/core$newline__4153.class +0 -0
  545. data/lib/clojure/core$next__3117.class +0 -0
  546. data/lib/clojure/core$nfirst__3127.class +0 -0
  547. data/lib/clojure/core$nil_QMARK___3199.class +0 -0
  548. data/lib/clojure/core$nnext__3131.class +0 -0
  549. data/lib/clojure/core$non_private_methods__5553$fn__5556.class +0 -0
  550. data/lib/clojure/core$non_private_methods__5553.class +0 -0
  551. data/lib/clojure/core$not_EQ___3296.class +0 -0
  552. data/lib/clojure/core$not__3208.class +0 -0
  553. data/lib/clojure/core$not_empty__4833.class +0 -0
  554. data/lib/clojure/core$ns__4948$fn__4958.class +0 -0
  555. data/lib/clojure/core$ns__4948$fn__4961.class +0 -0
  556. data/lib/clojure/core$ns__4948$fn__4964.class +0 -0
  557. data/lib/clojure/core$ns__4948$process_reference__4951$fn__4954.class +0 -0
  558. data/lib/clojure/core$ns__4948$process_reference__4951.class +0 -0
  559. data/lib/clojure/core$ns__4948.class +0 -0
  560. data/lib/clojure/core$ns_aliases__4370.class +0 -0
  561. data/lib/clojure/core$ns_imports__4342.class +0 -0
  562. data/lib/clojure/core$ns_interns__4360$fn__4362.class +0 -0
  563. data/lib/clojure/core$ns_interns__4360.class +0 -0
  564. data/lib/clojure/core$ns_map__4328.class +0 -0
  565. data/lib/clojure/core$ns_name__4325.class +0 -0
  566. data/lib/clojure/core$ns_publics__4334$fn__4336.class +0 -0
  567. data/lib/clojure/core$ns_publics__4334.class +0 -0
  568. data/lib/clojure/core$ns_refers__4353$fn__4355.class +0 -0
  569. data/lib/clojure/core$ns_refers__4353.class +0 -0
  570. data/lib/clojure/core$ns_resolve__4395.class +0 -0
  571. data/lib/clojure/core$ns_unalias__4373.class +0 -0
  572. data/lib/clojure/core$ns_unmap__4331.class +0 -0
  573. data/lib/clojure/core$nth__3578.class +0 -0
  574. data/lib/clojure/core$nthnext__4405.class +0 -0
  575. data/lib/clojure/core$num__4053.class +0 -0
  576. data/lib/clojure/core$number_QMARK___4104.class +0 -0
  577. data/lib/clojure/core$odd_QMARK___3548.class +0 -0
  578. data/lib/clojure/core$or__3314.class +0 -0
  579. data/lib/clojure/core$overload_name__5579.class +0 -0
  580. data/lib/clojure/core$parents__4861.class +0 -0
  581. data/lib/clojure/core$partial__3781$fn__3783.class +0 -0
  582. data/lib/clojure/core$partial__3781$fn__3787.class +0 -0
  583. data/lib/clojure/core$partial__3781$fn__3791.class +0 -0
  584. data/lib/clojure/core$partial__3781$fn__3795.class +0 -0
  585. data/lib/clojure/core$partial__3781.class +0 -0
  586. data/lib/clojure/core$partition__3982$fn__3985.class +0 -0
  587. data/lib/clojure/core$partition__3982.class +0 -0
  588. data/lib/clojure/core$pcalls__5754$fn__5756.class +0 -0
  589. data/lib/clojure/core$pcalls__5754.class +0 -0
  590. data/lib/clojure/core$peek__3572.class +0 -0
  591. data/lib/clojure/core$pmap__5727$fn__5729$fn__5731.class +0 -0
  592. data/lib/clojure/core$pmap__5727$fn__5729.class +0 -0
  593. data/lib/clojure/core$pmap__5727$fn__5749.class +0 -0
  594. data/lib/clojure/core$pmap__5727$step__5736$fn__5738.class +0 -0
  595. data/lib/clojure/core$pmap__5727$step__5736.class +0 -0
  596. data/lib/clojure/core$pmap__5727$step__5744$fn__5745.class +0 -0
  597. data/lib/clojure/core$pmap__5727$step__5744.class +0 -0
  598. data/lib/clojure/core$pmap__5727.class +0 -0
  599. data/lib/clojure/core$pop__3575.class +0 -0
  600. data/lib/clojure/core$pos_QMARK___3476.class +0 -0
  601. data/lib/clojure/core$pr__4148.class +0 -0
  602. data/lib/clojure/core$pr_on__4145.class +0 -0
  603. data/lib/clojure/core$pr_str__4512.class +0 -0
  604. data/lib/clojure/core$prefer_method__3647.class +0 -0
  605. data/lib/clojure/core$prefers__3656.class +0 -0
  606. data/lib/clojure/core$prependss__5001.class +0 -0
  607. data/lib/clojure/core$print__4162.class +0 -0
  608. data/lib/clojure/core$print_ctor__5391.class +0 -0
  609. data/lib/clojure/core$print_doc__4568.class +0 -0
  610. data/lib/clojure/core$print_map__5473$fn__5475.class +0 -0
  611. data/lib/clojure/core$print_map__5473.class +0 -0
  612. data/lib/clojure/core$print_meta__5370.class +0 -0
  613. data/lib/clojure/core$print_namespace_doc__4587.class +0 -0
  614. data/lib/clojure/core$print_sequential__5354.class +0 -0
  615. data/lib/clojure/core$print_simple__5424.class +0 -0
  616. data/lib/clojure/core$print_special_doc__4584.class +0 -0
  617. data/lib/clojure/core$print_str__4520.class +0 -0
  618. data/lib/clojure/core$printf__4941.class +0 -0
  619. data/lib/clojure/core$println__4165.class +0 -0
  620. data/lib/clojure/core$println_str__4524.class +0 -0
  621. data/lib/clojure/core$prn__4159.class +0 -0
  622. data/lib/clojure/core$prn_str__4516.class +0 -0
  623. data/lib/clojure/core$proxy__5279$fn__5282.class +0 -0
  624. data/lib/clojure/core$proxy__5279$fn__5287$fn__5291.class +0 -0
  625. data/lib/clojure/core$proxy__5279$fn__5287.class +0 -0
  626. data/lib/clojure/core$proxy__5279.class +0 -0
  627. data/lib/clojure/core$proxy_call_with_super__5297.class +0 -0
  628. data/lib/clojure/core$proxy_mappings__5274.class +0 -0
  629. data/lib/clojure/core$proxy_name__5179$fn__5181.class +0 -0
  630. data/lib/clojure/core$proxy_name__5179.class +0 -0
  631. data/lib/clojure/core$proxy_super__5300.class +0 -0
  632. data/lib/clojure/core$pvalues__5761$fn__5763.class +0 -0
  633. data/lib/clojure/core$pvalues__5761.class +0 -0
  634. data/lib/clojure/core$quot__3491.class +0 -0
  635. data/lib/clojure/core$rand__4558.class +0 -0
  636. data/lib/clojure/core$rand_int__4562.class +0 -0
  637. data/lib/clojure/core$range__3928.class +0 -0
  638. data/lib/clojure/core$ratio_QMARK___4118.class +0 -0
  639. data/lib/clojure/core$rational_QMARK___4128.class +0 -0
  640. data/lib/clojure/core$rationalize__3497.class +0 -0
  641. data/lib/clojure/core$re_find__4554.class +0 -0
  642. data/lib/clojure/core$re_groups__4540.class +0 -0
  643. data/lib/clojure/core$re_matcher__4537.class +0 -0
  644. data/lib/clojure/core$re_matches__4551.class +0 -0
  645. data/lib/clojure/core$re_pattern__4534.class +0 -0
  646. data/lib/clojure/core$re_seq__4543$step__4545$fn__4546.class +0 -0
  647. data/lib/clojure/core$re_seq__4543$step__4545.class +0 -0
  648. data/lib/clojure/core$re_seq__4543.class +0 -0
  649. data/lib/clojure/core$read__4168.class +0 -0
  650. data/lib/clojure/core$read_line__4174.class +0 -0
  651. data/lib/clojure/core$read_string__4177.class +0 -0
  652. data/lib/clojure/core$reduce__3319$fn__3322.class +0 -0
  653. data/lib/clojure/core$reduce__3319.class +0 -0
  654. data/lib/clojure/core$ref__3721.class +0 -0
  655. data/lib/clojure/core$ref_set__3762.class +0 -0
  656. data/lib/clojure/core$refer__4345.class +0 -0
  657. data/lib/clojure/core$refer_clojure__4969.class +0 -0
  658. data/lib/clojure/core$release_pending_sends__3694.class +0 -0
  659. data/lib/clojure/core$rem__3494.class +0 -0
  660. data/lib/clojure/core$remove__3855.class +0 -0
  661. data/lib/clojure/core$remove_method__3644.class +0 -0
  662. data/lib/clojure/core$remove_ns__4315.class +0 -0
  663. data/lib/clojure/core$remove_watch__3700.class +0 -0
  664. data/lib/clojure/core$remove_watcher__3709.class +0 -0
  665. data/lib/clojure/core$repeat__3912$fn__3914.class +0 -0
  666. data/lib/clojure/core$repeat__3912.class +0 -0
  667. data/lib/clojure/core$repeatedly__4701$fn__4703.class +0 -0
  668. data/lib/clojure/core$repeatedly__4701.class +0 -0
  669. data/lib/clojure/core$replace__4661$fn__4663.class +0 -0
  670. data/lib/clojure/core$replace__4661$fn__4667.class +0 -0
  671. data/lib/clojure/core$replace__4661.class +0 -0
  672. data/lib/clojure/core$replicate__3919.class +0 -0
  673. data/lib/clojure/core$require__5049.class +0 -0
  674. data/lib/clojure/core$reset_BANG___3741.class +0 -0
  675. data/lib/clojure/core$reset_meta_BANG___3753.class +0 -0
  676. data/lib/clojure/core$resolve__4398.class +0 -0
  677. data/lib/clojure/core$rest__3119.class +0 -0
  678. data/lib/clojure/core$resultset_seq__4911$fn__4913.class +0 -0
  679. data/lib/clojure/core$resultset_seq__4911$fn__4916.class +0 -0
  680. data/lib/clojure/core$resultset_seq__4911$row_values__4919$fn__4921.class +0 -0
  681. data/lib/clojure/core$resultset_seq__4911$row_values__4919.class +0 -0
  682. data/lib/clojure/core$resultset_seq__4911$thisfn__4925$fn__4926.class +0 -0
  683. data/lib/clojure/core$resultset_seq__4911$thisfn__4925.class +0 -0
  684. data/lib/clojure/core$resultset_seq__4911.class +0 -0
  685. data/lib/clojure/core$reverse__3326.class +0 -0
  686. data/lib/clojure/core$reversible_QMARK___5114.class +0 -0
  687. data/lib/clojure/core$root_directory__5007.class +0 -0
  688. data/lib/clojure/core$root_resource__5004.class +0 -0
  689. data/lib/clojure/core$rseq__3617.class +0 -0
  690. data/lib/clojure/core$rsubseq__4693.class +0 -0
  691. data/lib/clojure/core$second__3123.class +0 -0
  692. data/lib/clojure/core$select_keys__3602.class +0 -0
  693. data/lib/clojure/core$send__3688.class +0 -0
  694. data/lib/clojure/core$send_off__3691.class +0 -0
  695. data/lib/clojure/core$seq_QMARK___3137.class +0 -0
  696. data/lib/clojure/core$seq__3133.class +0 -0
  697. data/lib/clojure/core$seque__4808$drain__4818$fn__4819.class +0 -0
  698. data/lib/clojure/core$seque__4808$drain__4818.class +0 -0
  699. data/lib/clojure/core$seque__4808$fill__4811.class +0 -0
  700. data/lib/clojure/core$seque__4808.class +0 -0
  701. data/lib/clojure/core$sequence__3802.class +0 -0
  702. data/lib/clojure/core$sequential_QMARK___5105.class +0 -0
  703. data/lib/clojure/core$set_QMARK___5093.class +0 -0
  704. data/lib/clojure/core$set__4303.class +0 -0
  705. data/lib/clojure/core$set_validator_BANG___3744.class +0 -0
  706. data/lib/clojure/core$setup_reference__3681.class +0 -0
  707. data/lib/clojure/core$short__4083.class +0 -0
  708. data/lib/clojure/core$shutdown_agents__3718.class +0 -0
  709. data/lib/clojure/core$sigs__3145.class +0 -0
  710. data/lib/clojure/core$slurp__4619.class +0 -0
  711. data/lib/clojure/core$some__3810.class +0 -0
  712. data/lib/clojure/core$sort__3971.class +0 -0
  713. data/lib/clojure/core$sort_by__3975$fn__3978.class +0 -0
  714. data/lib/clojure/core$sort_by__3975.class +0 -0
  715. data/lib/clojure/core$sorted_QMARK___5108.class +0 -0
  716. data/lib/clojure/core$sorted_map__3181.class +0 -0
  717. data/lib/clojure/core$sorted_map_by__3187.class +0 -0
  718. data/lib/clojure/core$sorted_set__3184.class +0 -0
  719. data/lib/clojure/core$special_form_anchor__4578.class +0 -0
  720. data/lib/clojure/core$special_symbol_QMARK___4613.class +0 -0
  721. data/lib/clojure/core$split_at__3906.class +0 -0
  722. data/lib/clojure/core$split_with__3909.class +0 -0
  723. data/lib/clojure/core$spread__3240.class +0 -0
  724. data/lib/clojure/core$str__3211$fn__3215.class +0 -0
  725. data/lib/clojure/core$str__3211.class +0 -0
  726. data/lib/clojure/core$stream_QMARK___3799.class +0 -0
  727. data/lib/clojure/core$string_QMARK___3139.class +0 -0
  728. data/lib/clojure/core$struct__4291.class +0 -0
  729. data/lib/clojure/core$struct_map__4288.class +0 -0
  730. data/lib/clojure/core$subs__4622.class +0 -0
  731. data/lib/clojure/core$subseq__4685.class +0 -0
  732. data/lib/clojure/core$subvec__4180.class +0 -0
  733. data/lib/clojure/core$supers__4839.class +0 -0
  734. data/lib/clojure/core$swap_BANG___3732.class +0 -0
  735. data/lib/clojure/core$symbol_QMARK___3219.class +0 -0
  736. data/lib/clojure/core$symbol__3225.class +0 -0
  737. data/lib/clojure/core$sync__3768.class +0 -0
  738. data/lib/clojure/core$syntax_symbol_anchor__4581.class +0 -0
  739. data/lib/clojure/core$take__3858$fn__3860.class +0 -0
  740. data/lib/clojure/core$take__3858.class +0 -0
  741. data/lib/clojure/core$take_nth__4376$fn__4378.class +0 -0
  742. data/lib/clojure/core$take_nth__4376.class +0 -0
  743. data/lib/clojure/core$take_while__3865$fn__3867.class +0 -0
  744. data/lib/clojure/core$take_while__3865.class +0 -0
  745. data/lib/clojure/core$test__4531.class +0 -0
  746. data/lib/clojure/core$the_class__5590.class +0 -0
  747. data/lib/clojure/core$the_ns__4321.class +0 -0
  748. data/lib/clojure/core$throw_if__4989$boring_QMARK___4991.class +0 -0
  749. data/lib/clojure/core$throw_if__4989.class +0 -0
  750. data/lib/clojure/core$time__4199.class +0 -0
  751. data/lib/clojure/core$to_array_2d__4273.class +0 -0
  752. data/lib/clojure/core$to_array__3163.class +0 -0
  753. data/lib/clojure/core$trampoline__5124$fn__5127.class +0 -0
  754. data/lib/clojure/core$trampoline__5124.class +0 -0
  755. data/lib/clojure/core$tree_seq__4593$walk__4595$fn__4596.class +0 -0
  756. data/lib/clojure/core$tree_seq__4593$walk__4595.class +0 -0
  757. data/lib/clojure/core$tree_seq__4593.class +0 -0
  758. data/lib/clojure/core$true_QMARK___3205.class +0 -0
  759. data/lib/clojure/core$type__4046.class +0 -0
  760. data/lib/clojure/core$unchecked_add__3446.class +0 -0
  761. data/lib/clojure/core$unchecked_dec__3434.class +0 -0
  762. data/lib/clojure/core$unchecked_divide__3464.class +0 -0
  763. data/lib/clojure/core$unchecked_inc__3428.class +0 -0
  764. data/lib/clojure/core$unchecked_multiply__3458.class +0 -0
  765. data/lib/clojure/core$unchecked_negate__3440.class +0 -0
  766. data/lib/clojure/core$unchecked_remainder__3470.class +0 -0
  767. data/lib/clojure/core$unchecked_subtract__3452.class +0 -0
  768. data/lib/clojure/core$underive__4891$tf__4894$fn__4896.class +0 -0
  769. data/lib/clojure/core$underive__4891$tf__4894.class +0 -0
  770. data/lib/clojure/core$underive__4891.class +0 -0
  771. data/lib/clojure/core$update_in__5080.class +0 -0
  772. data/lib/clojure/core$update_proxy__5271.class +0 -0
  773. data/lib/clojure/core$use__5052.class +0 -0
  774. data/lib/clojure/core$val__3614.class +0 -0
  775. data/lib/clojure/core$vals__3608.class +0 -0
  776. data/lib/clojure/core$var_QMARK___4616.class +0 -0
  777. data/lib/clojure/core$var_get__4386.class +0 -0
  778. data/lib/clojure/core$var_set__4389.class +0 -0
  779. data/lib/clojure/core$vary_meta__3246.class +0 -0
  780. data/lib/clojure/core$vec__3170.class +0 -0
  781. data/lib/clojure/core$vector_QMARK___3143.class +0 -0
  782. data/lib/clojure/core$vector__3166.class +0 -0
  783. data/lib/clojure/core$when__3193.class +0 -0
  784. data/lib/clojure/core$when_first__4461.class +0 -0
  785. data/lib/clojure/core$when_let__3669.class +0 -0
  786. data/lib/clojure/core$when_not__3196.class +0 -0
  787. data/lib/clojure/core$while__5135.class +0 -0
  788. data/lib/clojure/core$with_in_str__4509.class +0 -0
  789. data/lib/clojure/core$with_local_vars__4392.class +0 -0
  790. data/lib/clojure/core$with_meta__3152.class +0 -0
  791. data/lib/clojure/core$with_open__4184.class +0 -0
  792. data/lib/clojure/core$with_out_str__4505.class +0 -0
  793. data/lib/clojure/core$with_precision__4675.class +0 -0
  794. data/lib/clojure/core$xml_seq__4610.class +0 -0
  795. data/lib/clojure/core$zero_QMARK___3488.class +0 -0
  796. data/lib/clojure/core$zipmap__3955.class +0 -0
  797. data/lib/clojure/core.clj +4121 -0
  798. data/lib/clojure/core__init.class +0 -0
  799. data/lib/clojure/core_print.clj +317 -0
  800. data/lib/clojure/core_print__init.class +0 -0
  801. data/lib/clojure/core_proxy.clj +394 -0
  802. data/lib/clojure/core_proxy__init.class +0 -0
  803. data/lib/clojure/genclass.clj +683 -0
  804. data/lib/clojure/genclass__init.class +0 -0
  805. data/lib/clojure/inspector$atom_QMARK___6181.class +0 -0
  806. data/lib/clojure/inspector$collection_tag__6184.class +0 -0
  807. data/lib/clojure/inspector$fn__6187.class +0 -0
  808. data/lib/clojure/inspector$fn__6190.class +0 -0
  809. data/lib/clojure/inspector$fn__6193.class +0 -0
  810. data/lib/clojure/inspector$fn__6196.class +0 -0
  811. data/lib/clojure/inspector$fn__6199.class +0 -0
  812. data/lib/clojure/inspector$fn__6202.class +0 -0
  813. data/lib/clojure/inspector$fn__6205.class +0 -0
  814. data/lib/clojure/inspector$fn__6208.class +0 -0
  815. data/lib/clojure/inspector$fn__6211.class +0 -0
  816. data/lib/clojure/inspector$fn__6278$fn__6280.class +0 -0
  817. data/lib/clojure/inspector$fn__6278$fn__6283.class +0 -0
  818. data/lib/clojure/inspector$fn__6278.class +0 -0
  819. data/lib/clojure/inspector$fn__6287$fn__6289.class +0 -0
  820. data/lib/clojure/inspector$fn__6287$fn__6292.class +0 -0
  821. data/lib/clojure/inspector$fn__6287.class +0 -0
  822. data/lib/clojure/inspector$fn__6296$fn__6299.class +0 -0
  823. data/lib/clojure/inspector$fn__6296$fn__6303.class +0 -0
  824. data/lib/clojure/inspector$fn__6296$fn__6306.class +0 -0
  825. data/lib/clojure/inspector$fn__6296.class +0 -0
  826. data/lib/clojure/inspector$fn__6324$fn__6326.class +0 -0
  827. data/lib/clojure/inspector$fn__6324$fn__6329.class +0 -0
  828. data/lib/clojure/inspector$fn__6324$fn__6332.class +0 -0
  829. data/lib/clojure/inspector$fn__6324.class +0 -0
  830. data/lib/clojure/inspector$inspect__6337.class +0 -0
  831. data/lib/clojure/inspector$inspect_table__6274.class +0 -0
  832. data/lib/clojure/inspector$inspect_tree__6270.class +0 -0
  833. data/lib/clojure/inspector$list_model__6310$fn__6313.class +0 -0
  834. data/lib/clojure/inspector$list_model__6310$fn__6316.class +0 -0
  835. data/lib/clojure/inspector$list_model__6310$fn__6319.class +0 -0
  836. data/lib/clojure/inspector$list_model__6310.class +0 -0
  837. data/lib/clojure/inspector$old_table_model__6242$fn__6244.class +0 -0
  838. data/lib/clojure/inspector$old_table_model__6242$fn__6247.class +0 -0
  839. data/lib/clojure/inspector$old_table_model__6242$fn__6250.class +0 -0
  840. data/lib/clojure/inspector$old_table_model__6242$fn__6253.class +0 -0
  841. data/lib/clojure/inspector$old_table_model__6242$fn__6256.class +0 -0
  842. data/lib/clojure/inspector$old_table_model__6242$fn__6259.class +0 -0
  843. data/lib/clojure/inspector$old_table_model__6242$fn__6262.class +0 -0
  844. data/lib/clojure/inspector$old_table_model__6242$fn__6265.class +0 -0
  845. data/lib/clojure/inspector$old_table_model__6242.class +0 -0
  846. data/lib/clojure/inspector$tree_model__6214$fn__6216.class +0 -0
  847. data/lib/clojure/inspector$tree_model__6214$fn__6219.class +0 -0
  848. data/lib/clojure/inspector$tree_model__6214$fn__6222.class +0 -0
  849. data/lib/clojure/inspector$tree_model__6214$fn__6225.class +0 -0
  850. data/lib/clojure/inspector$tree_model__6214$fn__6228.class +0 -0
  851. data/lib/clojure/inspector$tree_model__6214$fn__6231.class +0 -0
  852. data/lib/clojure/inspector$tree_model__6214$fn__6234.class +0 -0
  853. data/lib/clojure/inspector$tree_model__6214$fn__6237.class +0 -0
  854. data/lib/clojure/inspector$tree_model__6214.class +0 -0
  855. data/lib/clojure/inspector.clj +180 -0
  856. data/lib/clojure/inspector__init.class +0 -0
  857. data/lib/clojure/lang/AFn.class +0 -0
  858. data/lib/clojure/lang/AFunction.class +0 -0
  859. data/lib/clojure/lang/AMapEntry.class +0 -0
  860. data/lib/clojure/lang/APersistentMap$1.class +0 -0
  861. data/lib/clojure/lang/APersistentMap$2$1.class +0 -0
  862. data/lib/clojure/lang/APersistentMap$2.class +0 -0
  863. data/lib/clojure/lang/APersistentMap$3$1.class +0 -0
  864. data/lib/clojure/lang/APersistentMap$3.class +0 -0
  865. data/lib/clojure/lang/APersistentMap$KeySeq.class +0 -0
  866. data/lib/clojure/lang/APersistentMap$ValSeq.class +0 -0
  867. data/lib/clojure/lang/APersistentMap.class +0 -0
  868. data/lib/clojure/lang/APersistentSet.class +0 -0
  869. data/lib/clojure/lang/APersistentVector$1.class +0 -0
  870. data/lib/clojure/lang/APersistentVector$2.class +0 -0
  871. data/lib/clojure/lang/APersistentVector$RSeq.class +0 -0
  872. data/lib/clojure/lang/APersistentVector$Seq.class +0 -0
  873. data/lib/clojure/lang/APersistentVector$Src.class +0 -0
  874. data/lib/clojure/lang/APersistentVector$SubVector.class +0 -0
  875. data/lib/clojure/lang/APersistentVector.class +0 -0
  876. data/lib/clojure/lang/ARef.class +0 -0
  877. data/lib/clojure/lang/AReference.class +0 -0
  878. data/lib/clojure/lang/ASeq$Src.class +0 -0
  879. data/lib/clojure/lang/ASeq.class +0 -0
  880. data/lib/clojure/lang/Agent$Action.class +0 -0
  881. data/lib/clojure/lang/Agent.class +0 -0
  882. data/lib/clojure/lang/ArraySeq$ArraySeq_double.class +0 -0
  883. data/lib/clojure/lang/ArraySeq$ArraySeq_float.class +0 -0
  884. data/lib/clojure/lang/ArraySeq$ArraySeq_int.class +0 -0
  885. data/lib/clojure/lang/ArraySeq$ArraySeq_long.class +0 -0
  886. data/lib/clojure/lang/ArraySeq.class +0 -0
  887. data/lib/clojure/lang/ArrayStream$ArrayStream_boolean.class +0 -0
  888. data/lib/clojure/lang/ArrayStream$ArrayStream_byte.class +0 -0
  889. data/lib/clojure/lang/ArrayStream$ArrayStream_char.class +0 -0
  890. data/lib/clojure/lang/ArrayStream$ArrayStream_double.class +0 -0
  891. data/lib/clojure/lang/ArrayStream$ArrayStream_float.class +0 -0
  892. data/lib/clojure/lang/ArrayStream$ArrayStream_int.class +0 -0
  893. data/lib/clojure/lang/ArrayStream$ArrayStream_long.class +0 -0
  894. data/lib/clojure/lang/ArrayStream$ArrayStream_short.class +0 -0
  895. data/lib/clojure/lang/ArrayStream.class +0 -0
  896. data/lib/clojure/lang/Associative.class +0 -0
  897. data/lib/clojure/lang/Atom.class +0 -0
  898. data/lib/clojure/lang/Binding.class +0 -0
  899. data/lib/clojure/lang/Box.class +0 -0
  900. data/lib/clojure/lang/Compile.class +0 -0
  901. data/lib/clojure/lang/Compiler$1.class +0 -0
  902. data/lib/clojure/lang/Compiler$AssignExpr$Parser.class +0 -0
  903. data/lib/clojure/lang/Compiler$AssignExpr.class +0 -0
  904. data/lib/clojure/lang/Compiler$AssignableExpr.class +0 -0
  905. data/lib/clojure/lang/Compiler$BindingInit.class +0 -0
  906. data/lib/clojure/lang/Compiler$BodyExpr$Parser.class +0 -0
  907. data/lib/clojure/lang/Compiler$BodyExpr.class +0 -0
  908. data/lib/clojure/lang/Compiler$BooleanExpr.class +0 -0
  909. data/lib/clojure/lang/Compiler$C.class +0 -0
  910. data/lib/clojure/lang/Compiler$CompilerException.class +0 -0
  911. data/lib/clojure/lang/Compiler$ConstantExpr$Parser.class +0 -0
  912. data/lib/clojure/lang/Compiler$ConstantExpr.class +0 -0
  913. data/lib/clojure/lang/Compiler$DefExpr$Parser.class +0 -0
  914. data/lib/clojure/lang/Compiler$DefExpr.class +0 -0
  915. data/lib/clojure/lang/Compiler$EmptyExpr.class +0 -0
  916. data/lib/clojure/lang/Compiler$Expr.class +0 -0
  917. data/lib/clojure/lang/Compiler$FieldExpr.class +0 -0
  918. data/lib/clojure/lang/Compiler$FnExpr.class +0 -0
  919. data/lib/clojure/lang/Compiler$FnLoaderThunk.class +0 -0
  920. data/lib/clojure/lang/Compiler$FnMethod.class +0 -0
  921. data/lib/clojure/lang/Compiler$HostExpr$Parser.class +0 -0
  922. data/lib/clojure/lang/Compiler$HostExpr.class +0 -0
  923. data/lib/clojure/lang/Compiler$IParser.class +0 -0
  924. data/lib/clojure/lang/Compiler$IfExpr$Parser.class +0 -0
  925. data/lib/clojure/lang/Compiler$IfExpr.class +0 -0
  926. data/lib/clojure/lang/Compiler$InstanceFieldExpr.class +0 -0
  927. data/lib/clojure/lang/Compiler$InstanceMethodExpr.class +0 -0
  928. data/lib/clojure/lang/Compiler$InvokeExpr.class +0 -0
  929. data/lib/clojure/lang/Compiler$KeywordExpr.class +0 -0
  930. data/lib/clojure/lang/Compiler$LetExpr$Parser.class +0 -0
  931. data/lib/clojure/lang/Compiler$LetExpr.class +0 -0
  932. data/lib/clojure/lang/Compiler$LetFnExpr$Parser.class +0 -0
  933. data/lib/clojure/lang/Compiler$LetFnExpr.class +0 -0
  934. data/lib/clojure/lang/Compiler$ListExpr.class +0 -0
  935. data/lib/clojure/lang/Compiler$LiteralExpr.class +0 -0
  936. data/lib/clojure/lang/Compiler$LocalBinding.class +0 -0
  937. data/lib/clojure/lang/Compiler$LocalBindingExpr.class +0 -0
  938. data/lib/clojure/lang/Compiler$MapExpr.class +0 -0
  939. data/lib/clojure/lang/Compiler$MaybePrimitiveExpr.class +0 -0
  940. data/lib/clojure/lang/Compiler$MetaExpr.class +0 -0
  941. data/lib/clojure/lang/Compiler$MethodExpr.class +0 -0
  942. data/lib/clojure/lang/Compiler$MonitorEnterExpr$Parser.class +0 -0
  943. data/lib/clojure/lang/Compiler$MonitorEnterExpr.class +0 -0
  944. data/lib/clojure/lang/Compiler$MonitorExitExpr$Parser.class +0 -0
  945. data/lib/clojure/lang/Compiler$MonitorExitExpr.class +0 -0
  946. data/lib/clojure/lang/Compiler$NewExpr$Parser.class +0 -0
  947. data/lib/clojure/lang/Compiler$NewExpr.class +0 -0
  948. data/lib/clojure/lang/Compiler$NilExpr.class +0 -0
  949. data/lib/clojure/lang/Compiler$PSTATE.class +0 -0
  950. data/lib/clojure/lang/Compiler$RecurExpr$Parser.class +0 -0
  951. data/lib/clojure/lang/Compiler$RecurExpr.class +0 -0
  952. data/lib/clojure/lang/Compiler$SetExpr.class +0 -0
  953. data/lib/clojure/lang/Compiler$SourceDebugExtensionAttribute.class +0 -0
  954. data/lib/clojure/lang/Compiler$StaticFieldExpr.class +0 -0
  955. data/lib/clojure/lang/Compiler$StaticMethodExpr.class +0 -0
  956. data/lib/clojure/lang/Compiler$StringExpr.class +0 -0
  957. data/lib/clojure/lang/Compiler$TheVarExpr$Parser.class +0 -0
  958. data/lib/clojure/lang/Compiler$TheVarExpr.class +0 -0
  959. data/lib/clojure/lang/Compiler$ThrowExpr$Parser.class +0 -0
  960. data/lib/clojure/lang/Compiler$ThrowExpr.class +0 -0
  961. data/lib/clojure/lang/Compiler$TryExpr$CatchClause.class +0 -0
  962. data/lib/clojure/lang/Compiler$TryExpr$Parser.class +0 -0
  963. data/lib/clojure/lang/Compiler$TryExpr.class +0 -0
  964. data/lib/clojure/lang/Compiler$UnresolvedVarExpr.class +0 -0
  965. data/lib/clojure/lang/Compiler$UntypedExpr.class +0 -0
  966. data/lib/clojure/lang/Compiler$VarExpr.class +0 -0
  967. data/lib/clojure/lang/Compiler$VectorExpr.class +0 -0
  968. data/lib/clojure/lang/Compiler.class +0 -0
  969. data/lib/clojure/lang/Cons.class +0 -0
  970. data/lib/clojure/lang/Counted.class +0 -0
  971. data/lib/clojure/lang/Delay.class +0 -0
  972. data/lib/clojure/lang/DynamicClassLoader.class +0 -0
  973. data/lib/clojure/lang/EnumerationSeq$State.class +0 -0
  974. data/lib/clojure/lang/EnumerationSeq.class +0 -0
  975. data/lib/clojure/lang/Fn.class +0 -0
  976. data/lib/clojure/lang/IDeref.class +0 -0
  977. data/lib/clojure/lang/IFn.class +0 -0
  978. data/lib/clojure/lang/IMapEntry.class +0 -0
  979. data/lib/clojure/lang/IMeta.class +0 -0
  980. data/lib/clojure/lang/IObj.class +0 -0
  981. data/lib/clojure/lang/IPersistentCollection.class +0 -0
  982. data/lib/clojure/lang/IPersistentList.class +0 -0
  983. data/lib/clojure/lang/IPersistentMap.class +0 -0
  984. data/lib/clojure/lang/IPersistentSet.class +0 -0
  985. data/lib/clojure/lang/IPersistentStack.class +0 -0
  986. data/lib/clojure/lang/IPersistentVector.class +0 -0
  987. data/lib/clojure/lang/IProxy.class +0 -0
  988. data/lib/clojure/lang/IReduce.class +0 -0
  989. data/lib/clojure/lang/IRef.class +0 -0
  990. data/lib/clojure/lang/IReference.class +0 -0
  991. data/lib/clojure/lang/ISeq.class +0 -0
  992. data/lib/clojure/lang/IndexedSeq.class +0 -0
  993. data/lib/clojure/lang/IteratorSeq$State.class +0 -0
  994. data/lib/clojure/lang/IteratorSeq.class +0 -0
  995. data/lib/clojure/lang/IteratorStream.class +0 -0
  996. data/lib/clojure/lang/Keyword.class +0 -0
  997. data/lib/clojure/lang/LazilyPersistentVector.class +0 -0
  998. data/lib/clojure/lang/LazySeq.class +0 -0
  999. data/lib/clojure/lang/LineNumberingPushbackReader.class +0 -0
  1000. data/lib/clojure/lang/LispReader$ArgReader.class +0 -0
  1001. data/lib/clojure/lang/LispReader$CharacterReader.class +0 -0
  1002. data/lib/clojure/lang/LispReader$CommentReader.class +0 -0
  1003. data/lib/clojure/lang/LispReader$CtorReader.class +0 -0
  1004. data/lib/clojure/lang/LispReader$DiscardReader.class +0 -0
  1005. data/lib/clojure/lang/LispReader$DispatchReader.class +0 -0
  1006. data/lib/clojure/lang/LispReader$EvalReader.class +0 -0
  1007. data/lib/clojure/lang/LispReader$FnReader.class +0 -0
  1008. data/lib/clojure/lang/LispReader$ListReader.class +0 -0
  1009. data/lib/clojure/lang/LispReader$MapReader.class +0 -0
  1010. data/lib/clojure/lang/LispReader$MetaReader.class +0 -0
  1011. data/lib/clojure/lang/LispReader$ReaderException.class +0 -0
  1012. data/lib/clojure/lang/LispReader$RegexReader.class +0 -0
  1013. data/lib/clojure/lang/LispReader$SetReader.class +0 -0
  1014. data/lib/clojure/lang/LispReader$StringReader.class +0 -0
  1015. data/lib/clojure/lang/LispReader$SyntaxQuoteReader.class +0 -0
  1016. data/lib/clojure/lang/LispReader$UnmatchedDelimiterReader.class +0 -0
  1017. data/lib/clojure/lang/LispReader$UnquoteReader.class +0 -0
  1018. data/lib/clojure/lang/LispReader$UnreadableReader.class +0 -0
  1019. data/lib/clojure/lang/LispReader$VarReader.class +0 -0
  1020. data/lib/clojure/lang/LispReader$VectorReader.class +0 -0
  1021. data/lib/clojure/lang/LispReader$WrappingReader.class +0 -0
  1022. data/lib/clojure/lang/LispReader.class +0 -0
  1023. data/lib/clojure/lang/LockingTransaction$AbortException.class +0 -0
  1024. data/lib/clojure/lang/LockingTransaction$CFn.class +0 -0
  1025. data/lib/clojure/lang/LockingTransaction$Info.class +0 -0
  1026. data/lib/clojure/lang/LockingTransaction$Notify.class +0 -0
  1027. data/lib/clojure/lang/LockingTransaction$RetryEx.class +0 -0
  1028. data/lib/clojure/lang/LockingTransaction.class +0 -0
  1029. data/lib/clojure/lang/MapEntry.class +0 -0
  1030. data/lib/clojure/lang/MultiFn.class +0 -0
  1031. data/lib/clojure/lang/Named.class +0 -0
  1032. data/lib/clojure/lang/Namespace.class +0 -0
  1033. data/lib/clojure/lang/Numbers$BigDecimalOps.class +0 -0
  1034. data/lib/clojure/lang/Numbers$BigIntegerBitOps.class +0 -0
  1035. data/lib/clojure/lang/Numbers$BigIntegerOps.class +0 -0
  1036. data/lib/clojure/lang/Numbers$BitOps.class +0 -0
  1037. data/lib/clojure/lang/Numbers$DoubleOps.class +0 -0
  1038. data/lib/clojure/lang/Numbers$FloatOps.class +0 -0
  1039. data/lib/clojure/lang/Numbers$IntegerBitOps.class +0 -0
  1040. data/lib/clojure/lang/Numbers$IntegerOps.class +0 -0
  1041. data/lib/clojure/lang/Numbers$LongBitOps.class +0 -0
  1042. data/lib/clojure/lang/Numbers$LongOps.class +0 -0
  1043. data/lib/clojure/lang/Numbers$Ops.class +0 -0
  1044. data/lib/clojure/lang/Numbers$RatioOps.class +0 -0
  1045. data/lib/clojure/lang/Numbers.class +0 -0
  1046. data/lib/clojure/lang/Obj.class +0 -0
  1047. data/lib/clojure/lang/PersistentArrayMap$Iter.class +0 -0
  1048. data/lib/clojure/lang/PersistentArrayMap$Seq.class +0 -0
  1049. data/lib/clojure/lang/PersistentArrayMap.class +0 -0
  1050. data/lib/clojure/lang/PersistentHashMap$BitmapIndexedNode$Seq.class +0 -0
  1051. data/lib/clojure/lang/PersistentHashMap$BitmapIndexedNode.class +0 -0
  1052. data/lib/clojure/lang/PersistentHashMap$EmptyNode.class +0 -0
  1053. data/lib/clojure/lang/PersistentHashMap$FullNode$Seq.class +0 -0
  1054. data/lib/clojure/lang/PersistentHashMap$FullNode.class +0 -0
  1055. data/lib/clojure/lang/PersistentHashMap$HashCollisionNode.class +0 -0
  1056. data/lib/clojure/lang/PersistentHashMap$INode.class +0 -0
  1057. data/lib/clojure/lang/PersistentHashMap$LeafNode.class +0 -0
  1058. data/lib/clojure/lang/PersistentHashMap.class +0 -0
  1059. data/lib/clojure/lang/PersistentHashSet.class +0 -0
  1060. data/lib/clojure/lang/PersistentList$1.class +0 -0
  1061. data/lib/clojure/lang/PersistentList$EmptyList$1.class +0 -0
  1062. data/lib/clojure/lang/PersistentList$EmptyList.class +0 -0
  1063. data/lib/clojure/lang/PersistentList.class +0 -0
  1064. data/lib/clojure/lang/PersistentQueue$Seq.class +0 -0
  1065. data/lib/clojure/lang/PersistentQueue.class +0 -0
  1066. data/lib/clojure/lang/PersistentStructMap$1.class +0 -0
  1067. data/lib/clojure/lang/PersistentStructMap$Def.class +0 -0
  1068. data/lib/clojure/lang/PersistentStructMap$Seq.class +0 -0
  1069. data/lib/clojure/lang/PersistentStructMap.class +0 -0
  1070. data/lib/clojure/lang/PersistentTreeMap$Black.class +0 -0
  1071. data/lib/clojure/lang/PersistentTreeMap$BlackBranch.class +0 -0
  1072. data/lib/clojure/lang/PersistentTreeMap$BlackBranchVal.class +0 -0
  1073. data/lib/clojure/lang/PersistentTreeMap$BlackVal.class +0 -0
  1074. data/lib/clojure/lang/PersistentTreeMap$KeyIterator.class +0 -0
  1075. data/lib/clojure/lang/PersistentTreeMap$Node.class +0 -0
  1076. data/lib/clojure/lang/PersistentTreeMap$NodeIterator.class +0 -0
  1077. data/lib/clojure/lang/PersistentTreeMap$Red.class +0 -0
  1078. data/lib/clojure/lang/PersistentTreeMap$RedBranch.class +0 -0
  1079. data/lib/clojure/lang/PersistentTreeMap$RedBranchVal.class +0 -0
  1080. data/lib/clojure/lang/PersistentTreeMap$RedVal.class +0 -0
  1081. data/lib/clojure/lang/PersistentTreeMap$Seq.class +0 -0
  1082. data/lib/clojure/lang/PersistentTreeMap$ValIterator.class +0 -0
  1083. data/lib/clojure/lang/PersistentTreeMap.class +0 -0
  1084. data/lib/clojure/lang/PersistentTreeSet.class +0 -0
  1085. data/lib/clojure/lang/PersistentVector.class +0 -0
  1086. data/lib/clojure/lang/ProxyHandler.class +0 -0
  1087. data/lib/clojure/lang/RT$1.class +0 -0
  1088. data/lib/clojure/lang/RT$2.class +0 -0
  1089. data/lib/clojure/lang/RT$3.class +0 -0
  1090. data/lib/clojure/lang/RT$4.class +0 -0
  1091. data/lib/clojure/lang/RT$5.class +0 -0
  1092. data/lib/clojure/lang/RT$6.class +0 -0
  1093. data/lib/clojure/lang/RT.class +0 -0
  1094. data/lib/clojure/lang/Range$Src.class +0 -0
  1095. data/lib/clojure/lang/Range.class +0 -0
  1096. data/lib/clojure/lang/Ratio.class +0 -0
  1097. data/lib/clojure/lang/Ref$TVal.class +0 -0
  1098. data/lib/clojure/lang/Ref.class +0 -0
  1099. data/lib/clojure/lang/Reflector.class +0 -0
  1100. data/lib/clojure/lang/Repl.class +0 -0
  1101. data/lib/clojure/lang/RestFn.class +0 -0
  1102. data/lib/clojure/lang/Reversible.class +0 -0
  1103. data/lib/clojure/lang/Script.class +0 -0
  1104. data/lib/clojure/lang/SeqEnumeration.class +0 -0
  1105. data/lib/clojure/lang/SeqIterator.class +0 -0
  1106. data/lib/clojure/lang/Seqable.class +0 -0
  1107. data/lib/clojure/lang/Sequential.class +0 -0
  1108. data/lib/clojure/lang/Settable.class +0 -0
  1109. data/lib/clojure/lang/Sorted.class +0 -0
  1110. data/lib/clojure/lang/Stream$1.class +0 -0
  1111. data/lib/clojure/lang/Stream$2.class +0 -0
  1112. data/lib/clojure/lang/Stream.class +0 -0
  1113. data/lib/clojure/lang/Streamable.class +0 -0
  1114. data/lib/clojure/lang/StringSeq.class +0 -0
  1115. data/lib/clojure/lang/Symbol.class +0 -0
  1116. data/lib/clojure/lang/TransactionalHashMap$1.class +0 -0
  1117. data/lib/clojure/lang/TransactionalHashMap.class +0 -0
  1118. data/lib/clojure/lang/Util.class +0 -0
  1119. data/lib/clojure/lang/Var$1.class +0 -0
  1120. data/lib/clojure/lang/Var$2.class +0 -0
  1121. data/lib/clojure/lang/Var$Frame.class +0 -0
  1122. data/lib/clojure/lang/Var.class +0 -0
  1123. data/lib/clojure/lang/XMLHandler.class +0 -0
  1124. data/lib/clojure/main$eval_opt__5839.class +0 -0
  1125. data/lib/clojure/main$help_opt__5871.class +0 -0
  1126. data/lib/clojure/main$init_dispatch__5843.class +0 -0
  1127. data/lib/clojure/main$init_opt__5836.class +0 -0
  1128. data/lib/clojure/main$initialize__5846.class +0 -0
  1129. data/lib/clojure/main$legacy_repl__5878.class +0 -0
  1130. data/lib/clojure/main$legacy_script__5883.class +0 -0
  1131. data/lib/clojure/main$load_script__5833.class +0 -0
  1132. data/lib/clojure/main$main__5888.class +0 -0
  1133. data/lib/clojure/main$main_dispatch__5874.class +0 -0
  1134. data/lib/clojure/main$null_opt__5868.class +0 -0
  1135. data/lib/clojure/main$repl__5813$fn__5816.class +0 -0
  1136. data/lib/clojure/main$repl__5813$fn__5819.class +0 -0
  1137. data/lib/clojure/main$repl__5813$fn__5822.class +0 -0
  1138. data/lib/clojure/main$repl__5813$fn__5829.class +0 -0
  1139. data/lib/clojure/main$repl__5813$read_eval_print__5825.class +0 -0
  1140. data/lib/clojure/main$repl__5813.class +0 -0
  1141. data/lib/clojure/main$repl_caught__5810.class +0 -0
  1142. data/lib/clojure/main$repl_exception__5807.class +0 -0
  1143. data/lib/clojure/main$repl_opt__5853$fn__5856.class +0 -0
  1144. data/lib/clojure/main$repl_opt__5853$fn__5859.class +0 -0
  1145. data/lib/clojure/main$repl_opt__5853.class +0 -0
  1146. data/lib/clojure/main$repl_prompt__5789.class +0 -0
  1147. data/lib/clojure/main$repl_read__5799.class +0 -0
  1148. data/lib/clojure/main$root_cause__5803.class +0 -0
  1149. data/lib/clojure/main$script_opt__5864.class +0 -0
  1150. data/lib/clojure/main$skip_if_eol__5792.class +0 -0
  1151. data/lib/clojure/main$skip_whitespace__5795.class +0 -0
  1152. data/lib/clojure/main$with_bindings__5786.class +0 -0
  1153. data/lib/clojure/main.class +0 -0
  1154. data/lib/clojure/main.clj +337 -0
  1155. data/lib/clojure/main__init.class +0 -0
  1156. data/lib/clojure/parallel.clj +248 -0
  1157. data/lib/clojure/proxy/clojure/lang/APersistentMap.class +0 -0
  1158. data/lib/clojure/proxy/java/lang/Object$ContentHandler.class +0 -0
  1159. data/lib/clojure/proxy/java/lang/Object$Future$IDeref.class +0 -0
  1160. data/lib/clojure/proxy/java/lang/Object$TableModel.class +0 -0
  1161. data/lib/clojure/proxy/java/lang/Object$TreeModel.class +0 -0
  1162. data/lib/clojure/proxy/javax/swing/table/AbstractTableModel.class +0 -0
  1163. data/lib/clojure/set$bubble_max_key__5896$fn__5898.class +0 -0
  1164. data/lib/clojure/set$bubble_max_key__5896.class +0 -0
  1165. data/lib/clojure/set$difference__5920$fn__5923.class +0 -0
  1166. data/lib/clojure/set$difference__5920.class +0 -0
  1167. data/lib/clojure/set$index__5956$fn__5958.class +0 -0
  1168. data/lib/clojure/set$index__5956.class +0 -0
  1169. data/lib/clojure/set$intersection__5909$fn__5912.class +0 -0
  1170. data/lib/clojure/set$intersection__5909$fn__5916.class +0 -0
  1171. data/lib/clojure/set$intersection__5909.class +0 -0
  1172. data/lib/clojure/set$join__5974$fn__5977$fn__5979.class +0 -0
  1173. data/lib/clojure/set$join__5974$fn__5977.class +0 -0
  1174. data/lib/clojure/set$join__5974$fn__5985$fn__5987.class +0 -0
  1175. data/lib/clojure/set$join__5974$fn__5985.class +0 -0
  1176. data/lib/clojure/set$join__5974.class +0 -0
  1177. data/lib/clojure/set$map_invert__5962$fn__5965.class +0 -0
  1178. data/lib/clojure/set$map_invert__5962.class +0 -0
  1179. data/lib/clojure/set$project__5935$fn__5937.class +0 -0
  1180. data/lib/clojure/set$project__5935.class +0 -0
  1181. data/lib/clojure/set$rename__5950$fn__5952.class +0 -0
  1182. data/lib/clojure/set$rename__5950.class +0 -0
  1183. data/lib/clojure/set$rename_keys__5941$fn__5944.class +0 -0
  1184. data/lib/clojure/set$rename_keys__5941.class +0 -0
  1185. data/lib/clojure/set$select__5928$fn__5930.class +0 -0
  1186. data/lib/clojure/set$select__5928.class +0 -0
  1187. data/lib/clojure/set$union__5902.class +0 -0
  1188. data/lib/clojure/set.clj +148 -0
  1189. data/lib/clojure/set__init.class +0 -0
  1190. data/lib/clojure/version.properties +5 -0
  1191. data/lib/clojure/xml$emit__6057.class +0 -0
  1192. data/lib/clojure/xml$emit_element__6052.class +0 -0
  1193. data/lib/clojure/xml$fn__5994$fn__6007.class +0 -0
  1194. data/lib/clojure/xml$fn__5994$fn__6010.class +0 -0
  1195. data/lib/clojure/xml$fn__5994$fn__6013.class +0 -0
  1196. data/lib/clojure/xml$fn__5994$fn__6016.class +0 -0
  1197. data/lib/clojure/xml$fn__5994$fn__6019.class +0 -0
  1198. data/lib/clojure/xml$fn__5994$fn__6022.class +0 -0
  1199. data/lib/clojure/xml$fn__5994$fn__6025.class +0 -0
  1200. data/lib/clojure/xml$fn__5994$fn__6028$attrs__6030.class +0 -0
  1201. data/lib/clojure/xml$fn__5994$fn__6028.class +0 -0
  1202. data/lib/clojure/xml$fn__5994$fn__6034.class +0 -0
  1203. data/lib/clojure/xml$fn__5994$fn__6037.class +0 -0
  1204. data/lib/clojure/xml$fn__5994$fn__6040.class +0 -0
  1205. data/lib/clojure/xml$fn__5994$push_chars__6000$fn__6002.class +0 -0
  1206. data/lib/clojure/xml$fn__5994$push_chars__6000.class +0 -0
  1207. data/lib/clojure/xml$fn__5994$push_content__5996.class +0 -0
  1208. data/lib/clojure/xml$fn__5994.class +0 -0
  1209. data/lib/clojure/xml$parse__6048.class +0 -0
  1210. data/lib/clojure/xml$startparse_sax__6045.class +0 -0
  1211. data/lib/clojure/xml.clj +115 -0
  1212. data/lib/clojure/xml__init.class +0 -0
  1213. data/lib/clojure/zip$append_child__6155.class +0 -0
  1214. data/lib/clojure/zip$branch_QMARK___6085.class +0 -0
  1215. data/lib/clojure/zip$children__6088.class +0 -0
  1216. data/lib/clojure/zip$down__6103.class +0 -0
  1217. data/lib/clojure/zip$edit__6149.class +0 -0
  1218. data/lib/clojure/zip$end_QMARK___6171.class +0 -0
  1219. data/lib/clojure/zip$insert_child__6152.class +0 -0
  1220. data/lib/clojure/zip$insert_left__6137.class +0 -0
  1221. data/lib/clojure/zip$insert_right__6141.class +0 -0
  1222. data/lib/clojure/zip$left__6127.class +0 -0
  1223. data/lib/clojure/zip$leftmost__6132.class +0 -0
  1224. data/lib/clojure/zip$lefts__6097.class +0 -0
  1225. data/lib/clojure/zip$make_node__6091.class +0 -0
  1226. data/lib/clojure/zip$next__6158.class +0 -0
  1227. data/lib/clojure/zip$node__6082.class +0 -0
  1228. data/lib/clojure/zip$path__6094.class +0 -0
  1229. data/lib/clojure/zip$prev__6165.class +0 -0
  1230. data/lib/clojure/zip$remove__6174.class +0 -0
  1231. data/lib/clojure/zip$replace__6145.class +0 -0
  1232. data/lib/clojure/zip$right__6116.class +0 -0
  1233. data/lib/clojure/zip$rightmost__6122.class +0 -0
  1234. data/lib/clojure/zip$rights__6100.class +0 -0
  1235. data/lib/clojure/zip$root__6113.class +0 -0
  1236. data/lib/clojure/zip$seq_zip__6063$fn__6065.class +0 -0
  1237. data/lib/clojure/zip$seq_zip__6063.class +0 -0
  1238. data/lib/clojure/zip$up__6108.class +0 -0
  1239. data/lib/clojure/zip$vector_zip__6069$fn__6071.class +0 -0
  1240. data/lib/clojure/zip$vector_zip__6069.class +0 -0
  1241. data/lib/clojure/zip$xml_zip__6075$fn__6077.class +0 -0
  1242. data/lib/clojure/zip$xml_zip__6075.class +0 -0
  1243. data/lib/clojure/zip$zipper__6060.class +0 -0
  1244. data/lib/clojure/zip.clj +278 -0
  1245. data/lib/clojure/zip__init.class +0 -0
  1246. data/src/clj/clojure/core.clj +4121 -0
  1247. data/src/clj/clojure/core_print.clj +317 -0
  1248. data/src/clj/clojure/core_proxy.clj +394 -0
  1249. data/src/clj/clojure/genclass.clj +683 -0
  1250. data/src/clj/clojure/inspector.clj +180 -0
  1251. data/src/clj/clojure/main.clj +337 -0
  1252. data/src/clj/clojure/parallel.clj +248 -0
  1253. data/src/clj/clojure/set.clj +148 -0
  1254. data/src/clj/clojure/version.properties +5 -0
  1255. data/src/clj/clojure/xml.clj +115 -0
  1256. data/src/clj/clojure/zip.clj +278 -0
  1257. data/src/jvm/clojure/asm/AnnotationVisitor.java +97 -0
  1258. data/src/jvm/clojure/asm/AnnotationWriter.java +357 -0
  1259. data/src/jvm/clojure/asm/Attribute.java +253 -0
  1260. data/src/jvm/clojure/asm/ByteVector.java +318 -0
  1261. data/src/jvm/clojure/asm/ClassAdapter.java +115 -0
  1262. data/src/jvm/clojure/asm/ClassReader.java +2224 -0
  1263. data/src/jvm/clojure/asm/ClassVisitor.java +196 -0
  1264. data/src/jvm/clojure/asm/ClassWriter.java +1415 -0
  1265. data/src/jvm/clojure/asm/Edge.java +75 -0
  1266. data/src/jvm/clojure/asm/FieldVisitor.java +64 -0
  1267. data/src/jvm/clojure/asm/FieldWriter.java +290 -0
  1268. data/src/jvm/clojure/asm/Frame.java +1506 -0
  1269. data/src/jvm/clojure/asm/Handler.java +70 -0
  1270. data/src/jvm/clojure/asm/Item.java +258 -0
  1271. data/src/jvm/clojure/asm/Label.java +437 -0
  1272. data/src/jvm/clojure/asm/MethodAdapter.java +186 -0
  1273. data/src/jvm/clojure/asm/MethodVisitor.java +396 -0
  1274. data/src/jvm/clojure/asm/MethodWriter.java +3029 -0
  1275. data/src/jvm/clojure/asm/Opcodes.java +341 -0
  1276. data/src/jvm/clojure/asm/Type.java +872 -0
  1277. data/src/jvm/clojure/asm/commons/AdviceAdapter.java +681 -0
  1278. data/src/jvm/clojure/asm/commons/AnalyzerAdapter.java +938 -0
  1279. data/src/jvm/clojure/asm/commons/CodeSizeEvaluator.java +234 -0
  1280. data/src/jvm/clojure/asm/commons/EmptyVisitor.java +221 -0
  1281. data/src/jvm/clojure/asm/commons/GeneratorAdapter.java +1533 -0
  1282. data/src/jvm/clojure/asm/commons/LocalVariablesSorter.java +330 -0
  1283. data/src/jvm/clojure/asm/commons/Method.java +267 -0
  1284. data/src/jvm/clojure/asm/commons/SerialVersionUIDAdder.java +508 -0
  1285. data/src/jvm/clojure/asm/commons/StaticInitMerger.java +102 -0
  1286. data/src/jvm/clojure/asm/commons/TableSwitchGenerator.java +55 -0
  1287. data/src/jvm/clojure/asm/commons/package.html +48 -0
  1288. data/src/jvm/clojure/asm/package.html +87 -0
  1289. data/src/jvm/clojure/lang/AFn.java +452 -0
  1290. data/src/jvm/clojure/lang/AFunction.java +47 -0
  1291. data/src/jvm/clojure/lang/AMapEntry.java +149 -0
  1292. data/src/jvm/clojure/lang/APersistentMap.java +382 -0
  1293. data/src/jvm/clojure/lang/APersistentSet.java +159 -0
  1294. data/src/jvm/clojure/lang/APersistentVector.java +579 -0
  1295. data/src/jvm/clojure/lang/ARef.java +107 -0
  1296. data/src/jvm/clojure/lang/AReference.java +40 -0
  1297. data/src/jvm/clojure/lang/ASeq.java +282 -0
  1298. data/src/jvm/clojure/lang/Agent.java +194 -0
  1299. data/src/jvm/clojure/lang/ArraySeq.java +316 -0
  1300. data/src/jvm/clojure/lang/ArrayStream.java +184 -0
  1301. data/src/jvm/clojure/lang/Associative.java +22 -0
  1302. data/src/jvm/clojure/lang/Atom.java +104 -0
  1303. data/src/jvm/clojure/lang/Binding.java +26 -0
  1304. data/src/jvm/clojure/lang/Box.java +22 -0
  1305. data/src/jvm/clojure/lang/Compile.java +73 -0
  1306. data/src/jvm/clojure/lang/Compiler.java +5017 -0
  1307. data/src/jvm/clojure/lang/Cons.java +53 -0
  1308. data/src/jvm/clojure/lang/Counted.java +18 -0
  1309. data/src/jvm/clojure/lang/Delay.java +38 -0
  1310. data/src/jvm/clojure/lang/DynamicClassLoader.java +71 -0
  1311. data/src/jvm/clojure/lang/EnumerationSeq.java +71 -0
  1312. data/src/jvm/clojure/lang/Fn.java +16 -0
  1313. data/src/jvm/clojure/lang/IDeref.java +17 -0
  1314. data/src/jvm/clojure/lang/IFn.java +90 -0
  1315. data/src/jvm/clojure/lang/IMapEntry.java +19 -0
  1316. data/src/jvm/clojure/lang/IMeta.java +17 -0
  1317. data/src/jvm/clojure/lang/IObj.java +18 -0
  1318. data/src/jvm/clojure/lang/IPersistentCollection.java +23 -0
  1319. data/src/jvm/clojure/lang/IPersistentList.java +16 -0
  1320. data/src/jvm/clojure/lang/IPersistentMap.java +23 -0
  1321. data/src/jvm/clojure/lang/IPersistentSet.java +19 -0
  1322. data/src/jvm/clojure/lang/IPersistentStack.java +19 -0
  1323. data/src/jvm/clojure/lang/IPersistentVector.java +22 -0
  1324. data/src/jvm/clojure/lang/IProxy.java +21 -0
  1325. data/src/jvm/clojure/lang/IReduce.java +19 -0
  1326. data/src/jvm/clojure/lang/IRef.java +27 -0
  1327. data/src/jvm/clojure/lang/IReference.java +18 -0
  1328. data/src/jvm/clojure/lang/ISeq.java +29 -0
  1329. data/src/jvm/clojure/lang/IndexedSeq.java +16 -0
  1330. data/src/jvm/clojure/lang/IteratorSeq.java +69 -0
  1331. data/src/jvm/clojure/lang/IteratorStream.java +29 -0
  1332. data/src/jvm/clojure/lang/Keyword.java +199 -0
  1333. data/src/jvm/clojure/lang/LazilyPersistentVector.java +79 -0
  1334. data/src/jvm/clojure/lang/LazySeq.java +233 -0
  1335. data/src/jvm/clojure/lang/LineNumberingPushbackReader.java +75 -0
  1336. data/src/jvm/clojure/lang/LispReader.java +1063 -0
  1337. data/src/jvm/clojure/lang/LockingTransaction.java +583 -0
  1338. data/src/jvm/clojure/lang/MapEntry.java +40 -0
  1339. data/src/jvm/clojure/lang/MultiFn.java +308 -0
  1340. data/src/jvm/clojure/lang/Named.java +19 -0
  1341. data/src/jvm/clojure/lang/Namespace.java +178 -0
  1342. data/src/jvm/clojure/lang/Numbers.java +4371 -0
  1343. data/src/jvm/clojure/lang/Obj.java +33 -0
  1344. data/src/jvm/clojure/lang/PersistentArrayMap.java +263 -0
  1345. data/src/jvm/clojure/lang/PersistentHashMap.java +746 -0
  1346. data/src/jvm/clojure/lang/PersistentHashSet.java +72 -0
  1347. data/src/jvm/clojure/lang/PersistentList.java +298 -0
  1348. data/src/jvm/clojure/lang/PersistentQueue.java +304 -0
  1349. data/src/jvm/clojure/lang/PersistentStructMap.java +225 -0
  1350. data/src/jvm/clojure/lang/PersistentTreeMap.java +998 -0
  1351. data/src/jvm/clojure/lang/PersistentTreeSet.java +94 -0
  1352. data/src/jvm/clojure/lang/PersistentVector.java +320 -0
  1353. data/src/jvm/clojure/lang/ProxyHandler.java +72 -0
  1354. data/src/jvm/clojure/lang/RT.java +1676 -0
  1355. data/src/jvm/clojure/lang/Range.java +85 -0
  1356. data/src/jvm/clojure/lang/Ratio.java +74 -0
  1357. data/src/jvm/clojure/lang/Ref.java +335 -0
  1358. data/src/jvm/clojure/lang/Reflector.java +448 -0
  1359. data/src/jvm/clojure/lang/Repl.java +22 -0
  1360. data/src/jvm/clojure/lang/RestFn.java +1335 -0
  1361. data/src/jvm/clojure/lang/Reversible.java +17 -0
  1362. data/src/jvm/clojure/lang/Script.java +22 -0
  1363. data/src/jvm/clojure/lang/SeqEnumeration.java +33 -0
  1364. data/src/jvm/clojure/lang/SeqIterator.java +41 -0
  1365. data/src/jvm/clojure/lang/Seqable.java +17 -0
  1366. data/src/jvm/clojure/lang/Sequential.java +13 -0
  1367. data/src/jvm/clojure/lang/Settable.java +18 -0
  1368. data/src/jvm/clojure/lang/Sorted.java +25 -0
  1369. data/src/jvm/clojure/lang/Stream.java +88 -0
  1370. data/src/jvm/clojure/lang/Streamable.java +17 -0
  1371. data/src/jvm/clojure/lang/StringSeq.java +50 -0
  1372. data/src/jvm/clojure/lang/Symbol.java +121 -0
  1373. data/src/jvm/clojure/lang/TransactionalHashMap.java +197 -0
  1374. data/src/jvm/clojure/lang/Util.java +74 -0
  1375. data/src/jvm/clojure/lang/Var.java +472 -0
  1376. data/src/jvm/clojure/lang/XMLHandler.java +89 -0
  1377. data/src/jvm/clojure/main.java +41 -0
  1378. metadata +1433 -0
@@ -0,0 +1,1676 @@
1
+ /**
2
+ * Copyright (c) Rich Hickey. All rights reserved.
3
+ * The use and distribution terms for this software are covered by the
4
+ * Eclipse Public License 1.0 (http://opensource.org/licenses/eclipse-1.0.php)
5
+ * which can be found in the file epl-v10.html at the root of this distribution.
6
+ * By using this software in any fashion, you are agreeing to be bound by
7
+ * the terms of this license.
8
+ * You must not remove this notice, or any other, from this software.
9
+ **/
10
+
11
+ /* rich Mar 25, 2006 4:28:27 PM */
12
+
13
+ package clojure.lang;
14
+
15
+ import java.util.concurrent.atomic.AtomicInteger;
16
+ import java.util.concurrent.Callable;
17
+ import java.util.*;
18
+ import java.util.regex.Matcher;
19
+ import java.io.*;
20
+ import java.lang.reflect.Array;
21
+ import java.math.BigDecimal;
22
+ import java.math.BigInteger;
23
+ import java.security.AccessController;
24
+ import java.security.PrivilegedAction;
25
+ import java.net.URL;
26
+ import java.net.JarURLConnection;
27
+ import java.nio.charset.Charset;
28
+
29
+ public class RT{
30
+
31
+ static final public Boolean T = Boolean.TRUE;//Keyword.intern(Symbol.create(null, "t"));
32
+ static final public Boolean F = Boolean.FALSE;//Keyword.intern(Symbol.create(null, "t"));
33
+ static final public String LOADER_SUFFIX = "__init";
34
+
35
+ //simple-symbol->class
36
+ final static IPersistentMap DEFAULT_IMPORTS = map(
37
+ // Symbol.create("RT"), "clojure.lang.RT",
38
+ // Symbol.create("Num"), "clojure.lang.Num",
39
+ // Symbol.create("Symbol"), "clojure.lang.Symbol",
40
+ // Symbol.create("Keyword"), "clojure.lang.Keyword",
41
+ // Symbol.create("Var"), "clojure.lang.Var",
42
+ // Symbol.create("Ref"), "clojure.lang.Ref",
43
+ // Symbol.create("IFn"), "clojure.lang.IFn",
44
+ // Symbol.create("IObj"), "clojure.lang.IObj",
45
+ // Symbol.create("ISeq"), "clojure.lang.ISeq",
46
+ // Symbol.create("IPersistentCollection"),
47
+ // "clojure.lang.IPersistentCollection",
48
+ // Symbol.create("IPersistentMap"), "clojure.lang.IPersistentMap",
49
+ // Symbol.create("IPersistentList"), "clojure.lang.IPersistentList",
50
+ // Symbol.create("IPersistentVector"), "clojure.lang.IPersistentVector",
51
+ Symbol.create("Boolean"), Boolean.class,
52
+ Symbol.create("Byte"), Byte.class,
53
+ Symbol.create("Character"), Character.class,
54
+ Symbol.create("Class"), Class.class,
55
+ Symbol.create("ClassLoader"), ClassLoader.class,
56
+ Symbol.create("Compiler"), Compiler.class,
57
+ Symbol.create("Double"), Double.class,
58
+ Symbol.create("Enum"), Enum.class,
59
+ Symbol.create("Float"), Float.class,
60
+ Symbol.create("InheritableThreadLocal"), InheritableThreadLocal.class,
61
+ Symbol.create("Integer"), Integer.class,
62
+ Symbol.create("Long"), Long.class,
63
+ Symbol.create("Math"), Math.class,
64
+ Symbol.create("Number"), Number.class,
65
+ Symbol.create("Object"), Object.class,
66
+ Symbol.create("Package"), Package.class,
67
+ Symbol.create("Process"), Process.class,
68
+ Symbol.create("ProcessBuilder"), ProcessBuilder.class,
69
+ Symbol.create("Runtime"), Runtime.class,
70
+ Symbol.create("RuntimePermission"), RuntimePermission.class,
71
+ Symbol.create("SecurityManager"), SecurityManager.class,
72
+ Symbol.create("Short"), Short.class,
73
+ Symbol.create("StackTraceElement"), StackTraceElement.class,
74
+ Symbol.create("StrictMath"), StrictMath.class,
75
+ Symbol.create("String"), String.class,
76
+ Symbol.create("StringBuffer"), StringBuffer.class,
77
+ Symbol.create("StringBuilder"), StringBuilder.class,
78
+ Symbol.create("System"), System.class,
79
+ Symbol.create("Thread"), Thread.class,
80
+ Symbol.create("ThreadGroup"), ThreadGroup.class,
81
+ Symbol.create("ThreadLocal"), ThreadLocal.class,
82
+ Symbol.create("Throwable"), Throwable.class,
83
+ Symbol.create("Void"), Void.class,
84
+ Symbol.create("Appendable"), Appendable.class,
85
+ Symbol.create("CharSequence"), CharSequence.class,
86
+ Symbol.create("Cloneable"), Cloneable.class,
87
+ Symbol.create("Comparable"), Comparable.class,
88
+ Symbol.create("Iterable"), Iterable.class,
89
+ Symbol.create("Readable"), Readable.class,
90
+ Symbol.create("Runnable"), Runnable.class,
91
+ Symbol.create("Callable"), Callable.class,
92
+ Symbol.create("BigInteger"), BigInteger.class,
93
+ Symbol.create("BigDecimal"), BigDecimal.class,
94
+ Symbol.create("ArithmeticException"), ArithmeticException.class,
95
+ Symbol.create("ArrayIndexOutOfBoundsException"), ArrayIndexOutOfBoundsException.class,
96
+ Symbol.create("ArrayStoreException"), ArrayStoreException.class,
97
+ Symbol.create("ClassCastException"), ClassCastException.class,
98
+ Symbol.create("ClassNotFoundException"), ClassNotFoundException.class,
99
+ Symbol.create("CloneNotSupportedException"), CloneNotSupportedException.class,
100
+ Symbol.create("EnumConstantNotPresentException"), EnumConstantNotPresentException.class,
101
+ Symbol.create("Exception"), Exception.class,
102
+ Symbol.create("IllegalAccessException"), IllegalAccessException.class,
103
+ Symbol.create("IllegalArgumentException"), IllegalArgumentException.class,
104
+ Symbol.create("IllegalMonitorStateException"), IllegalMonitorStateException.class,
105
+ Symbol.create("IllegalStateException"), IllegalStateException.class,
106
+ Symbol.create("IllegalThreadStateException"), IllegalThreadStateException.class,
107
+ Symbol.create("IndexOutOfBoundsException"), IndexOutOfBoundsException.class,
108
+ Symbol.create("InstantiationException"), InstantiationException.class,
109
+ Symbol.create("InterruptedException"), InterruptedException.class,
110
+ Symbol.create("NegativeArraySizeException"), NegativeArraySizeException.class,
111
+ Symbol.create("NoSuchFieldException"), NoSuchFieldException.class,
112
+ Symbol.create("NoSuchMethodException"), NoSuchMethodException.class,
113
+ Symbol.create("NullPointerException"), NullPointerException.class,
114
+ Symbol.create("NumberFormatException"), NumberFormatException.class,
115
+ Symbol.create("RuntimeException"), RuntimeException.class,
116
+ Symbol.create("SecurityException"), SecurityException.class,
117
+ Symbol.create("StringIndexOutOfBoundsException"), StringIndexOutOfBoundsException.class,
118
+ Symbol.create("TypeNotPresentException"), TypeNotPresentException.class,
119
+ Symbol.create("UnsupportedOperationException"), UnsupportedOperationException.class,
120
+ Symbol.create("AbstractMethodError"), AbstractMethodError.class,
121
+ Symbol.create("AssertionError"), AssertionError.class,
122
+ Symbol.create("ClassCircularityError"), ClassCircularityError.class,
123
+ Symbol.create("ClassFormatError"), ClassFormatError.class,
124
+ Symbol.create("Error"), Error.class,
125
+ Symbol.create("ExceptionInInitializerError"), ExceptionInInitializerError.class,
126
+ Symbol.create("IllegalAccessError"), IllegalAccessError.class,
127
+ Symbol.create("IncompatibleClassChangeError"), IncompatibleClassChangeError.class,
128
+ Symbol.create("InstantiationError"), InstantiationError.class,
129
+ Symbol.create("InternalError"), InternalError.class,
130
+ Symbol.create("LinkageError"), LinkageError.class,
131
+ Symbol.create("NoClassDefFoundError"), NoClassDefFoundError.class,
132
+ Symbol.create("NoSuchFieldError"), NoSuchFieldError.class,
133
+ Symbol.create("NoSuchMethodError"), NoSuchMethodError.class,
134
+ Symbol.create("OutOfMemoryError"), OutOfMemoryError.class,
135
+ Symbol.create("StackOverflowError"), StackOverflowError.class,
136
+ Symbol.create("ThreadDeath"), ThreadDeath.class,
137
+ Symbol.create("UnknownError"), UnknownError.class,
138
+ Symbol.create("UnsatisfiedLinkError"), UnsatisfiedLinkError.class,
139
+ Symbol.create("UnsupportedClassVersionError"), UnsupportedClassVersionError.class,
140
+ Symbol.create("VerifyError"), VerifyError.class,
141
+ Symbol.create("VirtualMachineError"), VirtualMachineError.class,
142
+ Symbol.create("Thread$UncaughtExceptionHandler"), Thread.UncaughtExceptionHandler.class,
143
+ Symbol.create("Thread$State"), Thread.State.class,
144
+ Symbol.create("Deprecated"), Deprecated.class,
145
+ Symbol.create("Override"), Override.class,
146
+ Symbol.create("SuppressWarnings"), SuppressWarnings.class
147
+
148
+ // Symbol.create("Collection"), "java.util.Collection",
149
+ // Symbol.create("Comparator"), "java.util.Comparator",
150
+ // Symbol.create("Enumeration"), "java.util.Enumeration",
151
+ // Symbol.create("EventListener"), "java.util.EventListener",
152
+ // Symbol.create("Formattable"), "java.util.Formattable",
153
+ // Symbol.create("Iterator"), "java.util.Iterator",
154
+ // Symbol.create("List"), "java.util.List",
155
+ // Symbol.create("ListIterator"), "java.util.ListIterator",
156
+ // Symbol.create("Map"), "java.util.Map",
157
+ // Symbol.create("Map$Entry"), "java.util.Map$Entry",
158
+ // Symbol.create("Observer"), "java.util.Observer",
159
+ // Symbol.create("Queue"), "java.util.Queue",
160
+ // Symbol.create("RandomAccess"), "java.util.RandomAccess",
161
+ // Symbol.create("Set"), "java.util.Set",
162
+ // Symbol.create("SortedMap"), "java.util.SortedMap",
163
+ // Symbol.create("SortedSet"), "java.util.SortedSet"
164
+ );
165
+
166
+ // single instance of UTF-8 Charset, so as to avoid catching UnsupportedCharsetExceptions everywhere
167
+ static public Charset UTF8 = Charset.forName("UTF-8");
168
+
169
+ static public final Namespace CLOJURE_NS = Namespace.findOrCreate(Symbol.create("clojure.core"));
170
+ //static final Namespace USER_NS = Namespace.findOrCreate(Symbol.create("user"));
171
+ final static public Var OUT =
172
+ Var.intern(CLOJURE_NS, Symbol.create("*out*"), new OutputStreamWriter(System.out));
173
+ final static public Var IN =
174
+ Var.intern(CLOJURE_NS, Symbol.create("*in*"),
175
+ new LineNumberingPushbackReader(new InputStreamReader(System.in)));
176
+ final static public Var ERR =
177
+ Var.intern(CLOJURE_NS, Symbol.create("*err*"),
178
+ new PrintWriter(new OutputStreamWriter(System.err), true));
179
+ final static Keyword TAG_KEY = Keyword.intern(null, "tag");
180
+ final static public Var AGENT = Var.intern(CLOJURE_NS, Symbol.create("*agent*"), null);
181
+ final static public Var READEVAL = Var.intern(CLOJURE_NS, Symbol.create("*read-eval*"), T);
182
+ final static public Var MACRO_META = Var.intern(CLOJURE_NS, Symbol.create("*macro-meta*"), null);
183
+ final static public Var MATH_CONTEXT = Var.intern(CLOJURE_NS, Symbol.create("*math-context*"), null);
184
+ static Keyword LINE_KEY = Keyword.intern(null, "line");
185
+ static Keyword FILE_KEY = Keyword.intern(null, "file");
186
+ final static public Var USE_CONTEXT_CLASSLOADER =
187
+ Var.intern(CLOJURE_NS, Symbol.create("*use-context-classloader*"), null);
188
+ //final static public Var CURRENT_MODULE = Var.intern(Symbol.create("clojure.core", "current-module"),
189
+ // Module.findOrCreateModule("clojure/user"));
190
+
191
+ final static Symbol LOAD_FILE = Symbol.create("load-file");
192
+ final static Symbol IN_NAMESPACE = Symbol.create("in-ns");
193
+ final static Symbol NAMESPACE = Symbol.create("ns");
194
+ static final Symbol IDENTICAL = Symbol.create("identical?");
195
+ final static Var CMD_LINE_ARGS = Var.intern(CLOJURE_NS, Symbol.create("*command-line-args*"), null);
196
+ //symbol
197
+ final public static Var CURRENT_NS = Var.intern(CLOJURE_NS, Symbol.create("*ns*"),
198
+ CLOJURE_NS);
199
+
200
+ final static Var FLUSH_ON_NEWLINE = Var.intern(CLOJURE_NS, Symbol.create("*flush-on-newline*"), T);
201
+ final static Var PRINT_META = Var.intern(CLOJURE_NS, Symbol.create("*print-meta*"), F);
202
+ final static Var PRINT_READABLY = Var.intern(CLOJURE_NS, Symbol.create("*print-readably*"), T);
203
+ final static Var PRINT_DUP = Var.intern(CLOJURE_NS, Symbol.create("*print-dup*"), F);
204
+ final static Var WARN_ON_REFLECTION = Var.intern(CLOJURE_NS, Symbol.create("*warn-on-reflection*"), F);
205
+ final static Var ALLOW_UNRESOLVED_VARS = Var.intern(CLOJURE_NS, Symbol.create("*allow-unresolved-vars*"), F);
206
+
207
+ final static Var IN_NS_VAR = Var.intern(CLOJURE_NS, Symbol.create("in-ns"), F);
208
+ final static Var NS_VAR = Var.intern(CLOJURE_NS, Symbol.create("ns"), F);
209
+ static final Var PRINT_INITIALIZED = Var.intern(CLOJURE_NS, Symbol.create("print-initialized"));
210
+ static final Var PR_ON = Var.intern(CLOJURE_NS, Symbol.create("pr-on"));
211
+ //final static Var IMPORTS = Var.intern(CLOJURE_NS, Symbol.create("*imports*"), DEFAULT_IMPORTS);
212
+ final static IFn inNamespace = new AFn(){
213
+ public Object invoke(Object arg1) throws Exception{
214
+ Symbol nsname = (Symbol) arg1;
215
+ Namespace ns = Namespace.findOrCreate(nsname);
216
+ CURRENT_NS.set(ns);
217
+ return ns;
218
+ }
219
+ };
220
+
221
+ public static List<String> processCommandLine(String[] args){
222
+ List<String> arglist = Arrays.asList(args);
223
+ int split = arglist.indexOf("--");
224
+ if(split >= 0) {
225
+ CMD_LINE_ARGS.bindRoot(RT.seq(arglist.subList(split + 1, args.length)));
226
+ return arglist.subList(0, split);
227
+ }
228
+ return arglist;
229
+ }
230
+
231
+ static public final Object[] EMPTY_ARRAY = new Object[]{};
232
+ static public final Comparator DEFAULT_COMPARATOR = new Comparator(){
233
+ public int compare(Object o1, Object o2){
234
+ return Util.compare(o1, o2);
235
+ }
236
+ };
237
+
238
+ static AtomicInteger id = new AtomicInteger(1);
239
+ private static DynamicClassLoader ROOT_CLASSLOADER = null;
240
+
241
+ static public void addURL(Object url) throws Exception{
242
+ URL u = (url instanceof String) ? (new URL((String) url)) : (URL) url;
243
+ getRootClassLoader().addURL(u);
244
+ }
245
+
246
+ final static public Object EOS = new Object();
247
+ final static public Object SKIP = new Object();
248
+ static final public IFn EMPTY_GEN = new AFn(){
249
+ synchronized public Object invoke() throws Exception {
250
+ return EOS;
251
+ }
252
+ };
253
+
254
+ static{
255
+ Keyword dockw = Keyword.intern(null, "doc");
256
+ Keyword arglistskw = Keyword.intern(null, "arglists");
257
+ Symbol namesym = Symbol.create("name");
258
+ OUT.setTag(Symbol.create("java.io.Writer"));
259
+ CURRENT_NS.setTag(Symbol.create("clojure.lang.Namespace"));
260
+ AGENT.setMeta(map(dockw, "The agent currently running an action on this thread, else nil"));
261
+ AGENT.setTag(Symbol.create("clojure.lang.Agent"));
262
+ MATH_CONTEXT.setTag(Symbol.create("java.math.MathContext"));
263
+ //during bootstrap ns same as in-ns
264
+ Var nv = Var.intern(CLOJURE_NS, NAMESPACE, inNamespace);
265
+ nv.setMacro();
266
+ Var v;
267
+ v = Var.intern(CLOJURE_NS, IN_NAMESPACE, inNamespace);
268
+ v.setMeta(map(dockw, "Sets *ns* to the namespace named by the symbol, creating it if needed.",
269
+ arglistskw, list(vector(namesym))));
270
+ v = Var.intern(CLOJURE_NS, LOAD_FILE,
271
+ new AFn(){
272
+ public Object invoke(Object arg1) throws Exception{
273
+ return Compiler.loadFile((String) arg1);
274
+ }
275
+ });
276
+ v.setMeta(map(dockw, "Sequentially read and evaluate the set of forms contained in the file.",
277
+ arglistskw, list(vector(namesym))));
278
+ v = Var.intern(CLOJURE_NS, IDENTICAL,
279
+ new AFn(){
280
+ public Object invoke(Object arg1, Object arg2)
281
+ throws Exception{
282
+ return arg1 == arg2 ? RT.T : RT.F;
283
+ }
284
+ });
285
+ v.setMeta(map(dockw, "Tests if 2 arguments are the same object",
286
+ arglistskw, list(vector(Symbol.create("x"), Symbol.create("y")))));
287
+ try {
288
+ doInit();
289
+ }
290
+ catch(Exception e) {
291
+ throw new RuntimeException(e);
292
+ }
293
+ }
294
+
295
+
296
+ static public Var var(String ns, String name){
297
+ return Var.intern(Namespace.findOrCreate(Symbol.intern(null, ns)), Symbol.intern(null, name));
298
+ }
299
+
300
+ static public Var var(String ns, String name, Object init){
301
+ return Var.intern(Namespace.findOrCreate(Symbol.intern(null, ns)), Symbol.intern(null, name), init);
302
+ }
303
+
304
+ public static void loadResourceScript(String name) throws Exception{
305
+ loadResourceScript(name, true);
306
+ }
307
+
308
+ public static void maybeLoadResourceScript(String name) throws Exception{
309
+ loadResourceScript(name, false);
310
+ }
311
+
312
+ public static void loadResourceScript(String name, boolean failIfNotFound) throws Exception{
313
+ loadResourceScript(RT.class, name, failIfNotFound);
314
+ }
315
+
316
+ public static void loadResourceScript(Class c, String name) throws Exception{
317
+ loadResourceScript(c, name, true);
318
+ }
319
+
320
+ public static void loadResourceScript(Class c, String name, boolean failIfNotFound) throws Exception{
321
+ int slash = name.lastIndexOf('/');
322
+ String file = slash >= 0 ? name.substring(slash + 1) : name;
323
+ InputStream ins = baseLoader().getResourceAsStream(name);
324
+ if(ins != null) {
325
+ try {
326
+ Compiler.load(new InputStreamReader(ins, UTF8), name, file);
327
+ }
328
+ finally {
329
+ ins.close();
330
+ }
331
+ }
332
+ else if(failIfNotFound) {
333
+ throw new FileNotFoundException("Could not locate Clojure resource on classpath: " + name);
334
+ }
335
+ }
336
+
337
+ static public void init() throws Exception{
338
+ ((PrintWriter) RT.ERR.deref()).println("No need to call RT.init() anymore");
339
+ }
340
+
341
+ static public long lastModified(URL url, String libfile) throws Exception{
342
+ if(url.getProtocol().equals("jar")) {
343
+ return ((JarURLConnection) url.openConnection()).getJarFile().getEntry(libfile).getTime();
344
+ }
345
+ else {
346
+ return url.openConnection().getLastModified();
347
+ }
348
+ }
349
+
350
+ static void compile(String cljfile) throws Exception{
351
+ InputStream ins = baseLoader().getResourceAsStream(cljfile);
352
+ if(ins != null) {
353
+ try {
354
+ Compiler.compile(new InputStreamReader(ins, UTF8), cljfile,
355
+ cljfile.substring(1 + cljfile.lastIndexOf("/")));
356
+ }
357
+ finally {
358
+ ins.close();
359
+ }
360
+
361
+ }
362
+ else
363
+ throw new FileNotFoundException("Could not locate Clojure resource on classpath: " + cljfile);
364
+ }
365
+
366
+ static public void load(String scriptbase) throws Exception{
367
+ load(scriptbase, true);
368
+ }
369
+
370
+ static public void load(String scriptbase, boolean failIfNotFound) throws Exception{
371
+ String classfile = scriptbase + LOADER_SUFFIX + ".class";
372
+ String cljfile = scriptbase + ".clj";
373
+ URL classURL = baseLoader().getResource(classfile);
374
+ URL cljURL = baseLoader().getResource(cljfile);
375
+ boolean loaded = false;
376
+
377
+ if((classURL != null &&
378
+ (cljURL == null
379
+ || lastModified(classURL, classfile) > lastModified(cljURL, cljfile)))
380
+ || classURL == null) {
381
+ try {
382
+ Var.pushThreadBindings(
383
+ RT.map(CURRENT_NS, CURRENT_NS.deref(),
384
+ WARN_ON_REFLECTION, WARN_ON_REFLECTION.deref()));
385
+ loaded = (loadClassForName(scriptbase.replace('/', '.') + LOADER_SUFFIX) != null);
386
+ }
387
+ finally {
388
+ Var.popThreadBindings();
389
+ }
390
+ }
391
+ if(!loaded && cljURL != null) {
392
+ if(booleanCast(Compiler.COMPILE_FILES.deref()))
393
+ compile(cljfile);
394
+ else
395
+ loadResourceScript(RT.class, cljfile);
396
+ }
397
+ else if(!loaded && failIfNotFound)
398
+ throw new FileNotFoundException(String.format("Could not locate %s or %s on classpath: ", classfile, cljfile));
399
+ }
400
+
401
+ static void doInit() throws Exception{
402
+ load("clojure/core");
403
+ load("clojure/zip", false);
404
+ load("clojure/xml", false);
405
+ load("clojure/set", false);
406
+
407
+ Var.pushThreadBindings(
408
+ RT.map(CURRENT_NS, CURRENT_NS.deref(),
409
+ WARN_ON_REFLECTION, WARN_ON_REFLECTION.deref()));
410
+ try {
411
+ Symbol USER = Symbol.create("user");
412
+ Symbol CLOJURE = Symbol.create("clojure.core");
413
+
414
+ Var in_ns = var("clojure.core", "in-ns");
415
+ Var refer = var("clojure.core", "refer");
416
+ in_ns.invoke(USER);
417
+ refer.invoke(CLOJURE);
418
+ maybeLoadResourceScript("user.clj");
419
+ }
420
+ finally {
421
+ Var.popThreadBindings();
422
+ }
423
+ }
424
+
425
+ static public int nextID(){
426
+ return id.getAndIncrement();
427
+ }
428
+
429
+
430
+ ////////////// Collections support /////////////////////////////////
431
+
432
+ static public ISeq seq(Object coll){
433
+ if(coll instanceof ASeq)
434
+ return (ASeq) coll;
435
+ else if(coll instanceof LazySeq)
436
+ return ((LazySeq) coll).seq();
437
+ else
438
+ return seqFrom(coll);
439
+ }
440
+
441
+ static public Stream stream(final Object coll) throws Exception{
442
+ if(coll == null)
443
+ return new Stream(EMPTY_GEN);
444
+ else if(coll instanceof Streamable)
445
+ return ((Streamable) coll).stream();
446
+ else if(coll instanceof Fn)
447
+ return new Stream((IFn) coll);
448
+ else if(coll instanceof Iterable)
449
+ return new Stream(new IteratorStream(((Iterable) coll).iterator()));
450
+ else if(coll.getClass().isArray())
451
+ return ArrayStream.createFromObject(coll);
452
+ else if(coll instanceof String)
453
+ return ArrayStream.createFromObject(((String) coll).toCharArray());
454
+ else
455
+ return new Stream(new ASeq.Src(RT.seq(coll)));
456
+
457
+ }
458
+
459
+ static ISeq seqFrom(Object coll){
460
+ if(coll instanceof Seqable)
461
+ return ((Seqable) coll).seq();
462
+ else if(coll == null)
463
+ return null;
464
+ else if(coll instanceof Iterable)
465
+ return IteratorSeq.create(((Iterable) coll).iterator());
466
+ else if(coll.getClass().isArray())
467
+ return ArraySeq.createFromObject(coll);
468
+ else if(coll instanceof String)
469
+ return StringSeq.create((String) coll);
470
+ else if(coll instanceof Map)
471
+ return seq(((Map) coll).entrySet());
472
+ else {
473
+ Class c = coll.getClass();
474
+ Class sc = c.getSuperclass();
475
+ throw new IllegalArgumentException("Don't know how to create ISeq from: " + c.getSimpleName());
476
+ }
477
+ }
478
+
479
+ static public ISeq keys(Object coll){
480
+ return APersistentMap.KeySeq.create(seq(coll));
481
+ }
482
+
483
+ static public ISeq vals(Object coll){
484
+ return APersistentMap.ValSeq.create(seq(coll));
485
+ }
486
+
487
+ static public IPersistentMap meta(Object x){
488
+ if(x instanceof IMeta)
489
+ return ((IMeta) x).meta();
490
+ return null;
491
+ }
492
+
493
+ public static int count(Object o){
494
+ if(o == null)
495
+ return 0;
496
+ else if(o instanceof Counted)
497
+ return ((Counted) o).count();
498
+ else if(o instanceof IPersistentCollection) {
499
+ ISeq s = seq(o);
500
+ o = null;
501
+ int i = 0;
502
+ for(; s != null; s = s.next()) {
503
+ if(s instanceof Counted)
504
+ return i + s.count();
505
+ i++;
506
+ }
507
+ return i;
508
+ }
509
+ else if(o instanceof String)
510
+ return ((String) o).length();
511
+ else if(o instanceof Collection)
512
+ return ((Collection) o).size();
513
+ else if(o instanceof Map)
514
+ return ((Map) o).size();
515
+ else if(o.getClass().isArray())
516
+ return Array.getLength(o);
517
+
518
+ throw new UnsupportedOperationException("count not supported on this type: " + o.getClass().getSimpleName());
519
+ }
520
+
521
+ static public IPersistentCollection conj(IPersistentCollection coll, Object x){
522
+ if(coll == null)
523
+ return new PersistentList(x);
524
+ return coll.cons(x);
525
+ }
526
+
527
+ static public ISeq cons(Object x, Object coll){
528
+ //ISeq y = seq(coll);
529
+ if(coll == null)
530
+ return new PersistentList(x);
531
+ else if(coll instanceof ISeq)
532
+ return new Cons(x, (ISeq) coll);
533
+ else
534
+ return new Cons(x, seq(coll));
535
+ }
536
+
537
+ static public Object first(Object x){
538
+ if(x instanceof ISeq)
539
+ return ((ISeq) x).first();
540
+ ISeq seq = seq(x);
541
+ if(seq == null)
542
+ return null;
543
+ return seq.first();
544
+ }
545
+
546
+ static public Object second(Object x){
547
+ return first(next(x));
548
+ }
549
+
550
+ static public Object third(Object x){
551
+ return first(next(next(x)));
552
+ }
553
+
554
+ static public Object fourth(Object x){
555
+ return first(next(next(next(x))));
556
+ }
557
+
558
+ static public ISeq next(Object x){
559
+ if(x instanceof ISeq)
560
+ return ((ISeq) x).next();
561
+ ISeq seq = seq(x);
562
+ if(seq == null)
563
+ return null;
564
+ return seq.next();
565
+ }
566
+
567
+ static public ISeq more(Object x){
568
+ if(x instanceof ISeq)
569
+ return ((ISeq) x).more();
570
+ ISeq seq = seq(x);
571
+ if(seq == null)
572
+ return PersistentList.EMPTY;
573
+ return seq.more();
574
+ }
575
+
576
+ //static public Seqable more(Object x){
577
+ // Seqable ret = null;
578
+ // if(x instanceof ISeq)
579
+ // ret = ((ISeq) x).more();
580
+ // else
581
+ // {
582
+ // ISeq seq = seq(x);
583
+ // if(seq == null)
584
+ // ret = PersistentList.EMPTY;
585
+ // else
586
+ // ret = seq.more();
587
+ // }
588
+ // if(ret == null)
589
+ // ret = PersistentList.EMPTY;
590
+ // return ret;
591
+ //}
592
+
593
+ static public Object peek(Object x){
594
+ if(x == null)
595
+ return null;
596
+ return ((IPersistentStack) x).peek();
597
+ }
598
+
599
+ static public Object pop(Object x){
600
+ if(x == null)
601
+ return null;
602
+ return ((IPersistentStack) x).pop();
603
+ }
604
+
605
+ static public Object get(Object coll, Object key){
606
+ if(coll == null)
607
+ return null;
608
+ else if(coll instanceof Associative)
609
+ return ((Associative) coll).valAt(key);
610
+ else if(coll instanceof Map) {
611
+ Map m = (Map) coll;
612
+ return m.get(key);
613
+ }
614
+ else if(coll instanceof IPersistentSet) {
615
+ IPersistentSet set = (IPersistentSet) coll;
616
+ return set.get(key);
617
+ }
618
+ else if(key instanceof Number && (coll instanceof String || coll.getClass().isArray())) {
619
+ int n = ((Number) key).intValue();
620
+ if(n >= 0 && n < count(coll))
621
+ return nth(coll, n);
622
+ return null;
623
+ }
624
+
625
+ return null;
626
+ }
627
+
628
+ static public Object get(Object coll, Object key, Object notFound){
629
+ if(coll == null)
630
+ return notFound;
631
+ else if(coll instanceof Associative)
632
+ return ((Associative) coll).valAt(key, notFound);
633
+ else if(coll instanceof Map) {
634
+ Map m = (Map) coll;
635
+ if(m.containsKey(key))
636
+ return m.get(key);
637
+ return notFound;
638
+ }
639
+ else if(coll instanceof IPersistentSet) {
640
+ IPersistentSet set = (IPersistentSet) coll;
641
+ if(set.contains(key))
642
+ return set.get(key);
643
+ return notFound;
644
+ }
645
+ else if(key instanceof Number && (coll instanceof String || coll.getClass().isArray())) {
646
+ int n = ((Number) key).intValue();
647
+ return n >= 0 && n < count(coll) ? nth(coll, n) : notFound;
648
+ }
649
+ return notFound;
650
+
651
+ }
652
+
653
+ static public Associative assoc(Object coll, Object key, Object val){
654
+ if(coll == null)
655
+ return new PersistentArrayMap(new Object[]{key, val});
656
+ return ((Associative) coll).assoc(key, val);
657
+ }
658
+
659
+ static public Object contains(Object coll, Object key){
660
+ if(coll == null)
661
+ return F;
662
+ else if(coll instanceof Associative)
663
+ return ((Associative) coll).containsKey(key) ? T : F;
664
+ else if(coll instanceof IPersistentSet)
665
+ return ((IPersistentSet) coll).contains(key) ? T : F;
666
+ else if(coll instanceof Map) {
667
+ Map m = (Map) coll;
668
+ return m.containsKey(key) ? T : F;
669
+ }
670
+ else if(key instanceof Number && (coll instanceof String || coll.getClass().isArray())) {
671
+ int n = ((Number) key).intValue();
672
+ return n >= 0 && n < count(coll);
673
+ }
674
+ return F;
675
+ }
676
+
677
+ static public Object find(Object coll, Object key){
678
+ if(coll == null)
679
+ return null;
680
+ else if(coll instanceof Associative)
681
+ return ((Associative) coll).entryAt(key);
682
+ else {
683
+ Map m = (Map) coll;
684
+ if(m.containsKey(key))
685
+ return new MapEntry(key, m.get(key));
686
+ return null;
687
+ }
688
+ }
689
+
690
+ //takes a seq of key,val,key,val
691
+
692
+ //returns tail starting at val of matching key if found, else null
693
+ static public ISeq findKey(Keyword key, ISeq keyvals) throws Exception{
694
+ while(keyvals != null) {
695
+ ISeq r = keyvals.next();
696
+ if(r == null)
697
+ throw new Exception("Malformed keyword argslist");
698
+ if(keyvals.first() == key)
699
+ return r;
700
+ keyvals = r.next();
701
+ }
702
+ return null;
703
+ }
704
+
705
+ static public Object dissoc(Object coll, Object key) throws Exception{
706
+ if(coll == null)
707
+ return null;
708
+ return ((IPersistentMap) coll).without(key);
709
+ }
710
+
711
+ static public Object nth(Object coll, int n){
712
+ if(coll == null)
713
+ return null;
714
+ else if(coll instanceof IPersistentVector)
715
+ return ((IPersistentVector) coll).nth(n);
716
+ else if(coll instanceof String)
717
+ return Character.valueOf(((String) coll).charAt(n));
718
+ else if(coll.getClass().isArray())
719
+ return Reflector.prepRet(Array.get(coll, n));
720
+ else if(coll instanceof RandomAccess)
721
+ return ((List) coll).get(n);
722
+ else if(coll instanceof Matcher)
723
+ return ((Matcher) coll).group(n);
724
+
725
+ else if(coll instanceof Map.Entry) {
726
+ Map.Entry e = (Map.Entry) coll;
727
+ if(n == 0)
728
+ return e.getKey();
729
+ else if(n == 1)
730
+ return e.getValue();
731
+ throw new IndexOutOfBoundsException();
732
+ }
733
+
734
+ else if(coll instanceof Sequential) {
735
+ ISeq seq = RT.seq(coll);
736
+ coll = null;
737
+ for(int i = 0; i <= n && seq != null; ++i, seq = seq.next()) {
738
+ if(i == n)
739
+ return seq.first();
740
+ }
741
+ throw new IndexOutOfBoundsException();
742
+ }
743
+ else
744
+ throw new UnsupportedOperationException(
745
+ "nth not supported on this type: " + coll.getClass().getSimpleName());
746
+ }
747
+
748
+ static public Object nth(Object coll, int n, Object notFound){
749
+ if(coll == null)
750
+ return notFound;
751
+ else if(n < 0)
752
+ return notFound;
753
+ else if(coll instanceof IPersistentVector) {
754
+ IPersistentVector v = (IPersistentVector) coll;
755
+ if(n < v.count())
756
+ return v.nth(n);
757
+ return notFound;
758
+ }
759
+ else if(coll instanceof String) {
760
+ String s = (String) coll;
761
+ if(n < s.length())
762
+ return Character.valueOf(s.charAt(n));
763
+ return notFound;
764
+ }
765
+ else if(coll.getClass().isArray()) {
766
+ if(n < Array.getLength(coll))
767
+ return Reflector.prepRet(Array.get(coll, n));
768
+ return notFound;
769
+ }
770
+ else if(coll instanceof RandomAccess) {
771
+ List list = (List) coll;
772
+ if(n < list.size())
773
+ return list.get(n);
774
+ return notFound;
775
+ }
776
+ else if(coll instanceof Matcher) {
777
+ Matcher m = (Matcher) coll;
778
+ if(n < m.groupCount())
779
+ return m.group(n);
780
+ return notFound;
781
+ }
782
+ else if(coll instanceof Map.Entry) {
783
+ Map.Entry e = (Map.Entry) coll;
784
+ if(n == 0)
785
+ return e.getKey();
786
+ else if(n == 1)
787
+ return e.getValue();
788
+ return notFound;
789
+ }
790
+ else if(coll instanceof Sequential) {
791
+ ISeq seq = RT.seq(coll);
792
+ coll = null;
793
+ for(int i = 0; i <= n && seq != null; ++i, seq = seq.next()) {
794
+ if(i == n)
795
+ return seq.first();
796
+ }
797
+ return notFound;
798
+ }
799
+ else
800
+ throw new UnsupportedOperationException(
801
+ "nth not supported on this type: " + coll.getClass().getSimpleName());
802
+ }
803
+
804
+ static public Object assocN(int n, Object val, Object coll){
805
+ if(coll == null)
806
+ return null;
807
+ else if(coll instanceof IPersistentVector)
808
+ return ((IPersistentVector) coll).assocN(n, val);
809
+ else if(coll instanceof Object[]) {
810
+ //hmm... this is not persistent
811
+ Object[] array = ((Object[]) coll);
812
+ array[n] = val;
813
+ return array;
814
+ }
815
+ else
816
+ return null;
817
+ }
818
+
819
+ static boolean hasTag(Object o, Object tag){
820
+ return Util.equals(tag, RT.get(RT.meta(o), TAG_KEY));
821
+ }
822
+
823
+ /**
824
+ * ********************* Boxing/casts ******************************
825
+ */
826
+ static public Object box(Object x){
827
+ return x;
828
+ }
829
+
830
+ static public Character box(char x){
831
+ return Character.valueOf(x);
832
+ }
833
+
834
+ static public Object box(boolean x){
835
+ return x ? T : F;
836
+ }
837
+
838
+ static public Object box(Boolean x){
839
+ return x;// ? T : null;
840
+ }
841
+
842
+ static public Number box(byte x){
843
+ return x;//Num.from(x);
844
+ }
845
+
846
+ static public Number box(short x){
847
+ return x;//Num.from(x);
848
+ }
849
+
850
+ static public Number box(int x){
851
+ return x;//Num.from(x);
852
+ }
853
+
854
+ static public Number box(long x){
855
+ return x;//Num.from(x);
856
+ }
857
+
858
+ static public Number box(float x){
859
+ return x;//Num.from(x);
860
+ }
861
+
862
+ static public Number box(double x){
863
+ return x;//Num.from(x);
864
+ }
865
+
866
+ static public char charCast(Object x){
867
+ if(x instanceof Character)
868
+ return ((Character) x).charValue();
869
+ return (char) ((Number) x).intValue();
870
+ }
871
+
872
+ static public boolean booleanCast(Object x){
873
+ if(x instanceof Boolean)
874
+ return ((Boolean) x).booleanValue();
875
+ return x != null;
876
+ }
877
+
878
+ static public byte byteCast(Object x){
879
+ return ((Number) x).byteValue();
880
+ }
881
+
882
+ static public short shortCast(Object x){
883
+ return ((Number) x).shortValue();
884
+ }
885
+
886
+ static public int intCast(Object x){
887
+ if(x instanceof Number)
888
+ return ((Number) x).intValue();
889
+ return ((Character) x).charValue();
890
+ }
891
+
892
+ static public int intCast(char x){
893
+ return x;
894
+ }
895
+
896
+ static public int intCast(byte x){
897
+ return x;
898
+ }
899
+
900
+ static public int intCast(short x){
901
+ return x;
902
+ }
903
+
904
+ static public int intCast(int x){
905
+ return x;
906
+ }
907
+
908
+ static public int intCast(float x){
909
+ return (int) x;
910
+ }
911
+
912
+ static public int intCast(long x){
913
+ return (int) x;
914
+ }
915
+
916
+ static public int intCast(double x){
917
+ return (int) x;
918
+ }
919
+
920
+ static public long longCast(Object x){
921
+ return ((Number) x).longValue();
922
+ }
923
+
924
+ static public long longCast(int x){
925
+ return x;
926
+ }
927
+
928
+ static public long longCast(float x){
929
+ return (long) x;
930
+ }
931
+
932
+ static public long longCast(long x){
933
+ return x;
934
+ }
935
+
936
+ static public long longCast(double x){
937
+ return (long) x;
938
+ }
939
+
940
+ static public float floatCast(Object x){
941
+ return ((Number) x).floatValue();
942
+ }
943
+
944
+ static public float floatCast(int x){
945
+ return x;
946
+ }
947
+
948
+ static public float floatCast(float x){
949
+ return x;
950
+ }
951
+
952
+ static public float floatCast(long x){
953
+ return x;
954
+ }
955
+
956
+ static public float floatCast(double x){
957
+ return (float) x;
958
+ }
959
+
960
+ static public double doubleCast(Object x){
961
+ return ((Number) x).doubleValue();
962
+ }
963
+
964
+ static public double doubleCast(int x){
965
+ return x;
966
+ }
967
+
968
+ static public double doubleCast(float x){
969
+ return x;
970
+ }
971
+
972
+ static public double doubleCast(long x){
973
+ return x;
974
+ }
975
+
976
+ static public double doubleCast(double x){
977
+ return x;
978
+ }
979
+
980
+ static public IPersistentMap map(Object... init){
981
+ if(init == null)
982
+ return PersistentArrayMap.EMPTY;
983
+ else if(init.length <= PersistentArrayMap.HASHTABLE_THRESHOLD)
984
+ return new PersistentArrayMap(init);
985
+ return PersistentHashMap.create(init);
986
+ }
987
+
988
+ static public IPersistentSet set(Object... init){
989
+ return PersistentHashSet.create(init);
990
+ }
991
+
992
+ static public IPersistentVector vector(Object... init){
993
+ return LazilyPersistentVector.createOwning(init);
994
+ }
995
+
996
+ static public IPersistentVector subvec(IPersistentVector v, int start, int end){
997
+ if(end < start || start < 0 || end > v.count())
998
+ throw new IndexOutOfBoundsException();
999
+ if(start == end)
1000
+ return PersistentVector.EMPTY;
1001
+ return new APersistentVector.SubVector(null, v, start, end);
1002
+ }
1003
+
1004
+ /**
1005
+ * **************************************** list support *******************************
1006
+ */
1007
+
1008
+
1009
+ static public ISeq list(){
1010
+ return null;
1011
+ }
1012
+
1013
+ static public ISeq list(Object arg1){
1014
+ return new PersistentList(arg1);
1015
+ }
1016
+
1017
+ static public ISeq list(Object arg1, Object arg2){
1018
+ return listStar(arg1, arg2, null);
1019
+ }
1020
+
1021
+ static public ISeq list(Object arg1, Object arg2, Object arg3){
1022
+ return listStar(arg1, arg2, arg3, null);
1023
+ }
1024
+
1025
+ static public ISeq list(Object arg1, Object arg2, Object arg3, Object arg4){
1026
+ return listStar(arg1, arg2, arg3, arg4, null);
1027
+ }
1028
+
1029
+ static public ISeq list(Object arg1, Object arg2, Object arg3, Object arg4, Object arg5){
1030
+ return listStar(arg1, arg2, arg3, arg4, arg5, null);
1031
+ }
1032
+
1033
+ static public ISeq listStar(Object arg1, ISeq rest){
1034
+ return (ISeq) cons(arg1, rest);
1035
+ }
1036
+
1037
+ static public ISeq listStar(Object arg1, Object arg2, ISeq rest){
1038
+ return (ISeq) cons(arg1, cons(arg2, rest));
1039
+ }
1040
+
1041
+ static public ISeq listStar(Object arg1, Object arg2, Object arg3, ISeq rest){
1042
+ return (ISeq) cons(arg1, cons(arg2, cons(arg3, rest)));
1043
+ }
1044
+
1045
+ static public ISeq listStar(Object arg1, Object arg2, Object arg3, Object arg4, ISeq rest){
1046
+ return (ISeq) cons(arg1, cons(arg2, cons(arg3, cons(arg4, rest))));
1047
+ }
1048
+
1049
+ static public ISeq listStar(Object arg1, Object arg2, Object arg3, Object arg4, Object arg5, ISeq rest){
1050
+ return (ISeq) cons(arg1, cons(arg2, cons(arg3, cons(arg4, cons(arg5, rest)))));
1051
+ }
1052
+
1053
+ static public ISeq arrayToList(Object[] a) throws Exception{
1054
+ ISeq ret = null;
1055
+ for(int i = a.length - 1; i >= 0; --i)
1056
+ ret = (ISeq) cons(a[i], ret);
1057
+ return ret;
1058
+ }
1059
+
1060
+ static public Object[] toArray(Object coll) throws Exception{
1061
+ if(coll == null)
1062
+ return EMPTY_ARRAY;
1063
+ else if(coll instanceof Object[])
1064
+ return (Object[]) coll;
1065
+ else if(coll instanceof Collection)
1066
+ return ((Collection) coll).toArray();
1067
+ else if(coll instanceof Map)
1068
+ return ((Map) coll).entrySet().toArray();
1069
+ else if(coll instanceof String) {
1070
+ char[] chars = ((String) coll).toCharArray();
1071
+ Object[] ret = new Object[chars.length];
1072
+ for(int i = 0; i < chars.length; i++)
1073
+ ret[i] = chars[i];
1074
+ return ret;
1075
+ }
1076
+ else if(coll.getClass().isArray()) {
1077
+ ISeq s = (seq(coll));
1078
+ Object[] ret = new Object[count(s)];
1079
+ for(int i = 0; i < ret.length; i++, s = s.next())
1080
+ ret[i] = s.first();
1081
+ return ret;
1082
+ }
1083
+ else
1084
+ throw new Exception("Unable to convert: " + coll.getClass() + " to Object[]");
1085
+ }
1086
+
1087
+ static public Object[] seqToArray(ISeq seq){
1088
+ int len = length(seq);
1089
+ Object[] ret = new Object[len];
1090
+ for(int i = 0; seq != null; ++i, seq = seq.next())
1091
+ ret[i] = seq.first();
1092
+ return ret;
1093
+ }
1094
+
1095
+ static public Object seqToTypedArray(ISeq seq) throws Exception{
1096
+ Class type = (seq != null) ? seq.first().getClass() : Object.class;
1097
+ return seqToTypedArray(type, seq);
1098
+ }
1099
+
1100
+ static public Object seqToTypedArray(Class type, ISeq seq) throws Exception{
1101
+ Object ret = Array.newInstance(type, length(seq));
1102
+ for(int i = 0; seq != null; ++i, seq = seq.next())
1103
+ Array.set(ret, i, seq.first());
1104
+ return ret;
1105
+ }
1106
+
1107
+ static public int length(ISeq list){
1108
+ int i = 0;
1109
+ for(ISeq c = list; c != null; c = c.next()) {
1110
+ i++;
1111
+ }
1112
+ return i;
1113
+ }
1114
+
1115
+ static public int boundedLength(ISeq list, int limit) throws Exception{
1116
+ int i = 0;
1117
+ for(ISeq c = list; c != null && i <= limit; c = c.next()) {
1118
+ i++;
1119
+ }
1120
+ return i;
1121
+ }
1122
+
1123
+ ///////////////////////////////// reader support ////////////////////////////////
1124
+
1125
+ static Character readRet(int ret){
1126
+ if(ret == -1)
1127
+ return null;
1128
+ return box((char) ret);
1129
+ }
1130
+
1131
+ static public Character readChar(Reader r) throws Exception{
1132
+ int ret = r.read();
1133
+ return readRet(ret);
1134
+ }
1135
+
1136
+ static public Character peekChar(Reader r) throws Exception{
1137
+ int ret;
1138
+ if(r instanceof PushbackReader) {
1139
+ ret = r.read();
1140
+ ((PushbackReader) r).unread(ret);
1141
+ }
1142
+ else {
1143
+ r.mark(1);
1144
+ ret = r.read();
1145
+ r.reset();
1146
+ }
1147
+
1148
+ return readRet(ret);
1149
+ }
1150
+
1151
+ static public int getLineNumber(Reader r){
1152
+ if(r instanceof LineNumberingPushbackReader)
1153
+ return ((LineNumberingPushbackReader) r).getLineNumber();
1154
+ return 0;
1155
+ }
1156
+
1157
+ static public LineNumberingPushbackReader getLineNumberingReader(Reader r){
1158
+ if(isLineNumberingReader(r))
1159
+ return (LineNumberingPushbackReader) r;
1160
+ return new LineNumberingPushbackReader(r);
1161
+ }
1162
+
1163
+ static public boolean isLineNumberingReader(Reader r){
1164
+ return r instanceof LineNumberingPushbackReader;
1165
+ }
1166
+
1167
+ static public String resolveClassNameInContext(String className){
1168
+ //todo - look up in context var
1169
+ return className;
1170
+ }
1171
+
1172
+ static public boolean suppressRead(){
1173
+ //todo - look up in suppress-read var
1174
+ return false;
1175
+ }
1176
+
1177
+ static public String printString(Object x){
1178
+ try {
1179
+ StringWriter sw = new StringWriter();
1180
+ print(x, sw);
1181
+ return sw.toString();
1182
+ }
1183
+ catch(Exception e) {
1184
+ throw new RuntimeException(e);
1185
+ }
1186
+ }
1187
+
1188
+ static public Object readString(String s){
1189
+ PushbackReader r = new PushbackReader(new StringReader(s));
1190
+ try {
1191
+ return LispReader.read(r, true, null, false);
1192
+ }
1193
+ catch(Exception e) {
1194
+ throw new RuntimeException(e);
1195
+ }
1196
+ }
1197
+
1198
+ static public void print(Object x, Writer w) throws Exception{
1199
+ //call multimethod
1200
+ if(PRINT_INITIALIZED.isBound() && RT.booleanCast(PRINT_INITIALIZED.deref()))
1201
+ PR_ON.invoke(x, w);
1202
+ //*
1203
+ else {
1204
+ boolean readably = booleanCast(PRINT_READABLY.deref());
1205
+ if(x instanceof Obj) {
1206
+ Obj o = (Obj) x;
1207
+ if(RT.count(o.meta()) > 0 &&
1208
+ ((readably && booleanCast(PRINT_META.deref()))
1209
+ || booleanCast(PRINT_DUP.deref()))) {
1210
+ IPersistentMap meta = o.meta();
1211
+ w.write("#^");
1212
+ if(meta.count() == 1 && meta.containsKey(TAG_KEY))
1213
+ print(meta.valAt(TAG_KEY), w);
1214
+ else
1215
+ print(meta, w);
1216
+ w.write(' ');
1217
+ }
1218
+ }
1219
+ if(x == null)
1220
+ w.write("nil");
1221
+ else if(x instanceof ISeq || x instanceof IPersistentList) {
1222
+ w.write('(');
1223
+ printInnerSeq(seq(x), w);
1224
+ w.write(')');
1225
+ }
1226
+ else if(x instanceof String) {
1227
+ String s = (String) x;
1228
+ if(!readably)
1229
+ w.write(s);
1230
+ else {
1231
+ w.write('"');
1232
+ //w.write(x.toString());
1233
+ for(int i = 0; i < s.length(); i++) {
1234
+ char c = s.charAt(i);
1235
+ switch(c) {
1236
+ case '\n':
1237
+ w.write("\\n");
1238
+ break;
1239
+ case '\t':
1240
+ w.write("\\t");
1241
+ break;
1242
+ case '\r':
1243
+ w.write("\\r");
1244
+ break;
1245
+ case '"':
1246
+ w.write("\\\"");
1247
+ break;
1248
+ case '\\':
1249
+ w.write("\\\\");
1250
+ break;
1251
+ case '\f':
1252
+ w.write("\\f");
1253
+ break;
1254
+ case '\b':
1255
+ w.write("\\b");
1256
+ break;
1257
+ default:
1258
+ w.write(c);
1259
+ }
1260
+ }
1261
+ w.write('"');
1262
+ }
1263
+ }
1264
+ else if(x instanceof IPersistentMap) {
1265
+ w.write('{');
1266
+ for(ISeq s = seq(x); s != null; s = s.next()) {
1267
+ IMapEntry e = (IMapEntry) s.first();
1268
+ print(e.key(), w);
1269
+ w.write(' ');
1270
+ print(e.val(), w);
1271
+ if(s.next() != null)
1272
+ w.write(", ");
1273
+ }
1274
+ w.write('}');
1275
+ }
1276
+ else if(x instanceof IPersistentVector) {
1277
+ IPersistentVector a = (IPersistentVector) x;
1278
+ w.write('[');
1279
+ for(int i = 0; i < a.count(); i++) {
1280
+ print(a.nth(i), w);
1281
+ if(i < a.count() - 1)
1282
+ w.write(' ');
1283
+ }
1284
+ w.write(']');
1285
+ }
1286
+ else if(x instanceof IPersistentSet) {
1287
+ w.write("#{");
1288
+ for(ISeq s = seq(x); s != null; s = s.next()) {
1289
+ print(s.first(), w);
1290
+ if(s.next() != null)
1291
+ w.write(" ");
1292
+ }
1293
+ w.write('}');
1294
+ }
1295
+ else if(x instanceof Character) {
1296
+ char c = ((Character) x).charValue();
1297
+ if(!readably)
1298
+ w.write(c);
1299
+ else {
1300
+ w.write('\\');
1301
+ switch(c) {
1302
+ case '\n':
1303
+ w.write("newline");
1304
+ break;
1305
+ case '\t':
1306
+ w.write("tab");
1307
+ break;
1308
+ case ' ':
1309
+ w.write("space");
1310
+ break;
1311
+ case '\b':
1312
+ w.write("backspace");
1313
+ break;
1314
+ case '\f':
1315
+ w.write("formfeed");
1316
+ break;
1317
+ case '\r':
1318
+ w.write("return");
1319
+ break;
1320
+ default:
1321
+ w.write(c);
1322
+ }
1323
+ }
1324
+ }
1325
+ else if(x instanceof Class) {
1326
+ w.write("#=");
1327
+ w.write(((Class) x).getName());
1328
+ }
1329
+ else if(x instanceof BigDecimal && readably) {
1330
+ w.write(x.toString());
1331
+ w.write('M');
1332
+ }
1333
+ else if(x instanceof Var) {
1334
+ Var v = (Var) x;
1335
+ w.write("#=(var " + v.ns.name + "/" + v.sym + ")");
1336
+ }
1337
+ else w.write(x.toString());
1338
+ }
1339
+ //*/
1340
+ }
1341
+
1342
+ private static void printInnerSeq(ISeq x, Writer w) throws Exception{
1343
+ for(ISeq s = x; s != null; s = s.next()) {
1344
+ print(s.first(), w);
1345
+ if(s.next() != null)
1346
+ w.write(' ');
1347
+ }
1348
+ }
1349
+
1350
+ static public void formatAesthetic(Writer w, Object obj) throws IOException{
1351
+ if(obj == null)
1352
+ w.write("null");
1353
+ else
1354
+ w.write(obj.toString());
1355
+ }
1356
+
1357
+ static public void formatStandard(Writer w, Object obj) throws IOException{
1358
+ if(obj == null)
1359
+ w.write("null");
1360
+ else if(obj instanceof String) {
1361
+ w.write('"');
1362
+ w.write((String) obj);
1363
+ w.write('"');
1364
+ }
1365
+ else if(obj instanceof Character) {
1366
+ w.write('\\');
1367
+ char c = ((Character) obj).charValue();
1368
+ switch(c) {
1369
+ case '\n':
1370
+ w.write("newline");
1371
+ break;
1372
+ case '\t':
1373
+ w.write("tab");
1374
+ break;
1375
+ case ' ':
1376
+ w.write("space");
1377
+ break;
1378
+ case '\b':
1379
+ w.write("backspace");
1380
+ break;
1381
+ case '\f':
1382
+ w.write("formfeed");
1383
+ break;
1384
+ default:
1385
+ w.write(c);
1386
+ }
1387
+ }
1388
+ else
1389
+ w.write(obj.toString());
1390
+ }
1391
+
1392
+ static public Object format(Object o, String s, Object... args) throws Exception{
1393
+ Writer w;
1394
+ if(o == null)
1395
+ w = new StringWriter();
1396
+ else if(Util.equals(o, T))
1397
+ w = (Writer) OUT.deref();
1398
+ else
1399
+ w = (Writer) o;
1400
+ doFormat(w, s, ArraySeq.create(args));
1401
+ if(o == null)
1402
+ return w.toString();
1403
+ return null;
1404
+ }
1405
+
1406
+ static public ISeq doFormat(Writer w, String s, ISeq args) throws Exception{
1407
+ for(int i = 0; i < s.length();) {
1408
+ char c = s.charAt(i++);
1409
+ switch(Character.toLowerCase(c)) {
1410
+ case '~':
1411
+ char d = s.charAt(i++);
1412
+ switch(Character.toLowerCase(d)) {
1413
+ case '%':
1414
+ w.write('\n');
1415
+ break;
1416
+ case 't':
1417
+ w.write('\t');
1418
+ break;
1419
+ case 'a':
1420
+ if(args == null)
1421
+ throw new IllegalArgumentException("Missing argument");
1422
+ RT.formatAesthetic(w, RT.first(args));
1423
+ args = RT.next(args);
1424
+ break;
1425
+ case 's':
1426
+ if(args == null)
1427
+ throw new IllegalArgumentException("Missing argument");
1428
+ RT.formatStandard(w, RT.first(args));
1429
+ args = RT.next(args);
1430
+ break;
1431
+ case '{':
1432
+ int j = s.indexOf("~}", i); //note - does not nest
1433
+ if(j == -1)
1434
+ throw new IllegalArgumentException("Missing ~}");
1435
+ String subs = s.substring(i, j);
1436
+ for(ISeq sargs = RT.seq(RT.first(args)); sargs != null;)
1437
+ sargs = doFormat(w, subs, sargs);
1438
+ args = RT.next(args);
1439
+ i = j + 2; //skip ~}
1440
+ break;
1441
+ case '^':
1442
+ if(args == null)
1443
+ return null;
1444
+ break;
1445
+ case '~':
1446
+ w.write('~');
1447
+ break;
1448
+ default:
1449
+ throw new IllegalArgumentException("Unsupported ~ directive: " + d);
1450
+ }
1451
+ break;
1452
+ default:
1453
+ w.write(c);
1454
+ }
1455
+ }
1456
+ return args;
1457
+ }
1458
+ ///////////////////////////////// values //////////////////////////
1459
+
1460
+ static public Object[] setValues(Object... vals){
1461
+ //ThreadLocalData.setValues(vals);
1462
+ if(vals.length > 0)
1463
+ return vals;//[0];
1464
+ return null;
1465
+ }
1466
+
1467
+
1468
+ static public ClassLoader makeClassLoader(){
1469
+ return (ClassLoader) AccessController.doPrivileged(new PrivilegedAction(){
1470
+ public Object run(){
1471
+ getRootClassLoader();
1472
+ return new DynamicClassLoader(baseLoader());
1473
+ }
1474
+ });
1475
+ }
1476
+
1477
+ static public ClassLoader baseLoader(){
1478
+ if(booleanCast(USE_CONTEXT_CLASSLOADER.deref()))
1479
+ return Thread.currentThread().getContextClassLoader();
1480
+ else if(ROOT_CLASSLOADER != null)
1481
+ return ROOT_CLASSLOADER;
1482
+ return Compiler.class.getClassLoader();
1483
+ }
1484
+
1485
+ static public Class classForName(String name) throws ClassNotFoundException{
1486
+
1487
+ return Class.forName(name, true, baseLoader());
1488
+ }
1489
+
1490
+ static public Class loadClassForName(String name) throws ClassNotFoundException{
1491
+ try
1492
+ {
1493
+ Class.forName(name, false, baseLoader());
1494
+ }
1495
+ catch(ClassNotFoundException e)
1496
+ {
1497
+ return null;
1498
+ }
1499
+ return Class.forName(name, true, baseLoader());
1500
+ }
1501
+
1502
+ static public float aget(float[] xs, int i){
1503
+ return xs[i];
1504
+ }
1505
+
1506
+ static public float aset(float[] xs, int i, float v){
1507
+ xs[i] = v;
1508
+ return v;
1509
+ }
1510
+
1511
+ static public int alength(float[] xs){
1512
+ return xs.length;
1513
+ }
1514
+
1515
+ static public float[] aclone(float[] xs){
1516
+ return xs.clone();
1517
+ }
1518
+
1519
+ static public double aget(double[] xs, int i){
1520
+ return xs[i];
1521
+ }
1522
+
1523
+ static public double aset(double[] xs, int i, double v){
1524
+ xs[i] = v;
1525
+ return v;
1526
+ }
1527
+
1528
+ static public int alength(double[] xs){
1529
+ return xs.length;
1530
+ }
1531
+
1532
+ static public double[] aclone(double[] xs){
1533
+ return xs.clone();
1534
+ }
1535
+
1536
+ static public int aget(int[] xs, int i){
1537
+ return xs[i];
1538
+ }
1539
+
1540
+ static public int aset(int[] xs, int i, int v){
1541
+ xs[i] = v;
1542
+ return v;
1543
+ }
1544
+
1545
+ static public int alength(int[] xs){
1546
+ return xs.length;
1547
+ }
1548
+
1549
+ static public int[] aclone(int[] xs){
1550
+ return xs.clone();
1551
+ }
1552
+
1553
+ static public long aget(long[] xs, int i){
1554
+ return xs[i];
1555
+ }
1556
+
1557
+ static public long aset(long[] xs, int i, long v){
1558
+ xs[i] = v;
1559
+ return v;
1560
+ }
1561
+
1562
+ static public int alength(long[] xs){
1563
+ return xs.length;
1564
+ }
1565
+
1566
+ static public long[] aclone(long[] xs){
1567
+ return xs.clone();
1568
+ }
1569
+
1570
+ static public char aget(char[] xs, int i){
1571
+ return xs[i];
1572
+ }
1573
+
1574
+ static public char aset(char[] xs, int i, char v){
1575
+ xs[i] = v;
1576
+ return v;
1577
+ }
1578
+
1579
+ static public int alength(char[] xs){
1580
+ return xs.length;
1581
+ }
1582
+
1583
+ static public char[] aclone(char[] xs){
1584
+ return xs.clone();
1585
+ }
1586
+
1587
+ static public byte aget(byte[] xs, int i){
1588
+ return xs[i];
1589
+ }
1590
+
1591
+ static public byte aset(byte[] xs, int i, byte v){
1592
+ xs[i] = v;
1593
+ return v;
1594
+ }
1595
+
1596
+ static public int alength(byte[] xs){
1597
+ return xs.length;
1598
+ }
1599
+
1600
+ static public byte[] aclone(byte[] xs){
1601
+ return xs.clone();
1602
+ }
1603
+
1604
+ static public short aget(short[] xs, int i){
1605
+ return xs[i];
1606
+ }
1607
+
1608
+ static public short aset(short[] xs, int i, short v){
1609
+ xs[i] = v;
1610
+ return v;
1611
+ }
1612
+
1613
+ static public int alength(short[] xs){
1614
+ return xs.length;
1615
+ }
1616
+
1617
+ static public short[] aclone(short[] xs){
1618
+ return xs.clone();
1619
+ }
1620
+
1621
+ static public boolean aget(boolean[] xs, int i){
1622
+ return xs[i];
1623
+ }
1624
+
1625
+ static public boolean aset(boolean[] xs, int i, boolean v){
1626
+ xs[i] = v;
1627
+ return v;
1628
+ }
1629
+
1630
+ static public int alength(boolean[] xs){
1631
+ return xs.length;
1632
+ }
1633
+
1634
+ static public boolean[] aclone(boolean[] xs){
1635
+ return xs.clone();
1636
+ }
1637
+
1638
+ static public Object aget(Object[] xs, int i){
1639
+ return xs[i];
1640
+ }
1641
+
1642
+ static public Object aset(Object[] xs, int i, Object v){
1643
+ xs[i] = v;
1644
+ return v;
1645
+ }
1646
+
1647
+ static public int alength(Object[] xs){
1648
+ return xs.length;
1649
+ }
1650
+
1651
+ static public Object[] aclone(Object[] xs){
1652
+ return xs.clone();
1653
+ }
1654
+
1655
+ static public Object aget(Object xs, int i){
1656
+ return Reflector.prepRet(Array.get(xs, i));
1657
+ }
1658
+
1659
+ static public Object aset(Object xs, int i, Object v){
1660
+ Array.set(xs, i, v);
1661
+ return v;
1662
+ }
1663
+
1664
+ static public int alength(Object xs){
1665
+ return Array.getLength(xs);
1666
+ }
1667
+
1668
+
1669
+
1670
+
1671
+ synchronized public static DynamicClassLoader getRootClassLoader(){
1672
+ if(ROOT_CLASSLOADER == null)
1673
+ ROOT_CLASSLOADER = new DynamicClassLoader();
1674
+ return ROOT_CLASSLOADER;
1675
+ }
1676
+ }