/objects/applications/pep/pep_runtime.self

http://github.com/ticking/self · Unknown · 1339 lines · 1100 code · 239 blank · 0 comment · 0 complexity · 926f05bd928d2237416153d28d546ecc MD5 · raw file

Large files are truncated click here to view the full file

  1. '$Revision: 30.7 $'
  2. '
  3. Copyright 1992-2006 Sun Microsystems, Inc.
  4. See the LICENSE file for license information.
  5. '
  6. '-- Module body'
  7. bootstrap addSlotsTo: bootstrap stub -> 'globals' -> 'modules' -> () From: ( | {
  8. 'ModuleInfo: Module: pep_runtime InitialContents: FollowSlot'
  9. pep_runtime = bootstrap define: bootstrap stub -> 'globals' -> 'modules' -> 'pep_runtime' -> () ToBe: bootstrap addSlotsTo: (
  10. bootstrap remove: 'comment' From:
  11. bootstrap remove: 'directory' From:
  12. bootstrap remove: 'fileInTimeString' From:
  13. bootstrap remove: 'postFileIn' From:
  14. bootstrap remove: 'revision' From:
  15. bootstrap remove: 'subpartNames' From:
  16. globals modules init copy ) From: bootstrap setObjectAnnotationOf: bootstrap stub -> 'globals' -> 'modules' -> 'pep_runtime' -> () From: ( |
  17. {} = 'ModuleInfo: Creator: globals modules pep_runtime.
  18. CopyDowns:
  19. globals modules init. copy
  20. SlotsToOmit: comment directory fileInTimeString myComment postFileIn revision subpartNames.
  21. \x7fIsComplete: '.
  22. | ) .
  23. } | )
  24. bootstrap addSlotsTo: bootstrap stub -> 'globals' -> 'modules' -> 'pep_runtime' -> () From: ( | {
  25. 'ModuleInfo: Module: pep_runtime InitialContents: FollowSlot\x7fVisibility: private'
  26. myComment <- ''.
  27. } | )
  28. bootstrap addSlotsTo: bootstrap stub -> 'globals' -> 'modules' -> 'pep_runtime' -> () From: ( | {
  29. 'ModuleInfo: Module: pep_runtime InitialContents: FollowSlot\x7fVisibility: public'
  30. directory <- 'applications/pep'.
  31. } | )
  32. bootstrap addSlotsTo: bootstrap stub -> 'globals' -> 'modules' -> 'pep_runtime' -> () From: ( | {
  33. 'ModuleInfo: Module: pep_runtime InitialContents: InitializeToExpression: (_CurrentTimeString)\x7fVisibility: public'
  34. fileInTimeString <- _CurrentTimeString.
  35. } | )
  36. bootstrap addSlotsTo: bootstrap stub -> 'globals' -> 'modules' -> 'pep_runtime' -> () From: ( | {
  37. 'ModuleInfo: Module: pep_runtime InitialContents: FollowSlot'
  38. postFileIn = ( |
  39. |
  40. transporter moduleDictionary resetFillingSemaphore.
  41. snapshotAction addSchedulerInitialMessage:
  42. message copy receiver: transporter moduleDictionary
  43. Selector: 'resetFillingSemaphore'.
  44. resend.postFileIn).
  45. } | )
  46. bootstrap addSlotsTo: bootstrap stub -> 'globals' -> 'modules' -> 'pep_runtime' -> () From: ( | {
  47. 'ModuleInfo: Module: pep_runtime InitialContents: InitializeToExpression: (\'$Revision: 30.7 $\')\x7fVisibility: public'
  48. revision <- '$Revision: 30.7 $'.
  49. } | )
  50. bootstrap addSlotsTo: bootstrap stub -> 'globals' -> 'modules' -> 'pep_runtime' -> () From: ( | {
  51. 'ModuleInfo: Module: pep_runtime InitialContents: FollowSlot\x7fVisibility: public'
  52. subpartNames <- ''.
  53. } | )
  54. bootstrap addSlotsTo: bootstrap stub -> 'globals' -> 'pep' -> 'arrayBuildMixin' -> 'array_masters' -> 'booleanArray' -> () From: ( | {
  55. 'ModuleInfo: Module: pep_runtime InitialContents: FollowSlot\x7fVisibility: private'
  56. my_class* = bootstrap setObjectAnnotationOf: bootstrap stub -> 'globals' -> 'pep' -> 'arrayBuildMixin' -> 'array_masters' -> 'booleanArray' -> 'my_class' -> () From: ( |
  57. {} = 'ModuleInfo: Creator: globals pep arrayBuildMixin array_masters booleanArray my_class.
  58. '.
  59. | ) .
  60. } | )
  61. bootstrap addSlotsTo: bootstrap stub -> 'globals' -> 'pep' -> 'arrayBuildMixin' -> 'array_masters' -> 'byteArray' -> () From: ( | {
  62. 'ModuleInfo: Module: pep_runtime InitialContents: FollowSlot\x7fVisibility: private'
  63. my_class* = bootstrap setObjectAnnotationOf: bootstrap stub -> 'globals' -> 'pep' -> 'arrayBuildMixin' -> 'array_masters' -> 'byteArray' -> 'my_class' -> () From: ( |
  64. {} = 'ModuleInfo: Creator: globals pep arrayBuildMixin array_masters byteArray my_class.
  65. '.
  66. | ) .
  67. } | )
  68. bootstrap addSlotsTo: bootstrap stub -> 'globals' -> 'pep' -> 'arrayBuildMixin' -> 'array_masters' -> 'charArray' -> () From: ( | {
  69. 'ModuleInfo: Module: pep_runtime InitialContents: FollowSlot\x7fVisibility: private'
  70. my_class* = bootstrap setObjectAnnotationOf: bootstrap stub -> 'globals' -> 'pep' -> 'arrayBuildMixin' -> 'array_masters' -> 'charArray' -> 'my_class' -> () From: ( |
  71. {} = 'ModuleInfo: Creator: globals pep arrayBuildMixin array_masters charArray my_class.
  72. '.
  73. | ) .
  74. } | )
  75. bootstrap addSlotsTo: bootstrap stub -> 'globals' -> 'pep' -> 'arrayBuildMixin' -> 'array_masters' -> 'doubleArray' -> () From: ( | {
  76. 'ModuleInfo: Module: pep_runtime InitialContents: FollowSlot\x7fVisibility: private'
  77. my_class* = bootstrap setObjectAnnotationOf: bootstrap stub -> 'globals' -> 'pep' -> 'arrayBuildMixin' -> 'array_masters' -> 'doubleArray' -> 'my_class' -> () From: ( |
  78. {} = 'ModuleInfo: Creator: globals pep arrayBuildMixin array_masters doubleArray my_class.
  79. '.
  80. | ) .
  81. } | )
  82. bootstrap addSlotsTo: bootstrap stub -> 'globals' -> 'pep' -> 'arrayBuildMixin' -> 'array_masters' -> 'floatArray' -> () From: ( | {
  83. 'ModuleInfo: Module: pep_runtime InitialContents: FollowSlot\x7fVisibility: private'
  84. my_class* = bootstrap setObjectAnnotationOf: bootstrap stub -> 'globals' -> 'pep' -> 'arrayBuildMixin' -> 'array_masters' -> 'floatArray' -> 'my_class' -> () From: ( |
  85. {} = 'ModuleInfo: Creator: globals pep arrayBuildMixin array_masters floatArray my_class.
  86. '.
  87. | ) .
  88. } | )
  89. bootstrap addSlotsTo: bootstrap stub -> 'globals' -> 'pep' -> 'arrayBuildMixin' -> 'array_masters' -> 'intArray' -> () From: ( | {
  90. 'ModuleInfo: Module: pep_runtime InitialContents: FollowSlot\x7fVisibility: private'
  91. my_class* = bootstrap setObjectAnnotationOf: bootstrap stub -> 'globals' -> 'pep' -> 'arrayBuildMixin' -> 'array_masters' -> 'intArray' -> 'my_class' -> () From: ( |
  92. {} = 'ModuleInfo: Creator: globals pep arrayBuildMixin array_masters intArray my_class.
  93. '.
  94. | ) .
  95. } | )
  96. bootstrap addSlotsTo: bootstrap stub -> 'globals' -> 'pep' -> 'arrayBuildMixin' -> 'array_masters' -> 'longArray' -> () From: ( | {
  97. 'ModuleInfo: Module: pep_runtime InitialContents: FollowSlot\x7fVisibility: private'
  98. my_class* = bootstrap setObjectAnnotationOf: bootstrap stub -> 'globals' -> 'pep' -> 'arrayBuildMixin' -> 'array_masters' -> 'longArray' -> 'my_class' -> () From: ( |
  99. {} = 'ModuleInfo: Creator: globals pep arrayBuildMixin array_masters longArray my_class.
  100. '.
  101. | ) .
  102. } | )
  103. bootstrap addSlotsTo: bootstrap stub -> 'globals' -> 'pep' -> 'arrayBuildMixin' -> 'array_masters' -> 'objectArray' -> () From: ( | {
  104. 'ModuleInfo: Module: pep_runtime InitialContents: FollowSlot\x7fVisibility: private'
  105. my_class* = bootstrap setObjectAnnotationOf: bootstrap stub -> 'globals' -> 'pep' -> 'arrayBuildMixin' -> 'array_masters' -> 'objectArray' -> 'my_class' -> () From: ( |
  106. {} = 'Comment: For the arrays of the built-in types (int, short, byte, etc.) it is alright to
  107. have methods in the parent of the array objects. For arrays of \"class instances\"
  108. it is best not to add too much state to this array parent, since it will be cloned
  109. as specialized to lots of classes (e.g., array of point, array of colorPoint, etc.).
  110. Instead, we have added an extra parent-indirection and placed the methods up there.\x7fModuleInfo: Creator: globals pep arrayBuildMixin array_masters objectArray my_class.
  111. '.
  112. | ) .
  113. } | )
  114. bootstrap addSlotsTo: bootstrap stub -> 'globals' -> 'pep' -> 'arrayBuildMixin' -> 'array_masters' -> 'shortArray' -> () From: ( | {
  115. 'ModuleInfo: Module: pep_runtime InitialContents: FollowSlot\x7fVisibility: private'
  116. my_class* = bootstrap setObjectAnnotationOf: bootstrap stub -> 'globals' -> 'pep' -> 'arrayBuildMixin' -> 'array_masters' -> 'shortArray' -> 'my_class' -> () From: ( |
  117. {} = 'ModuleInfo: Creator: globals pep arrayBuildMixin array_masters shortArray my_class.
  118. '.
  119. | ) .
  120. } | )
  121. bootstrap addSlotsTo: bootstrap stub -> 'globals' -> 'pep' -> 'arrayBuildMixin' -> 'array_masters' -> 'traits_allArrays' -> () From: ( | {
  122. 'Category: array instantiation\x7fModuleInfo: Module: pep_runtime InitialContents: FollowSlot\x7fVisibility: public'
  123. java_inst_newArraySize: n = ( |
  124. |
  125. 0 pep ifTraceMutator: [
  126. ^ 0 pep mutatorTracer newarray: (basic_newArraySize: n).
  127. ].
  128. basic_newArraySize: n).
  129. } | )
  130. bootstrap addSlotsTo: bootstrap stub -> 'globals' -> 'pep' -> 'arrayBuildMixin' -> 'array_masters' -> 'traits_byteVectorBasedArray' -> () From: ( | {
  131. 'ModuleInfo: Module: pep_runtime InitialContents: FollowSlot\x7fVisibility: private'
  132. array_parent* = bootstrap stub -> 'globals' -> 'pep' -> 'arrayBuildMixin' -> 'array_masters' -> 'traits_allArrays' -> ().
  133. } | )
  134. bootstrap addSlotsTo: bootstrap stub -> 'globals' -> 'pep' -> 'arrayBuildMixin' -> 'array_masters' -> 'traits_byteVectorBasedArray' -> () From: ( | {
  135. 'Comment: Needed for IO etc. which calls into Self
  136. code.\x7fModuleInfo: Module: pep_runtime InitialContents: FollowSlot\x7fVisibility: public'
  137. asVMByteVector = ( |
  138. | self).
  139. } | )
  140. bootstrap addSlotsTo: bootstrap stub -> 'globals' -> 'pep' -> 'arrayBuildMixin' -> 'array_masters' -> 'traits_byteVectorBasedArray' -> () From: ( | {
  141. 'Category: primitive wrappers\x7fModuleInfo: Module: pep_runtime InitialContents: FollowSlot\x7fVisibility: public'
  142. basic_newArraySize: n = ( |
  143. |
  144. _CloneBytes: n Filler: java_inst_filler IfFail: [|:e|
  145. 0 > n ifTrue: [java_inst_athrow: class_java_lang_NegativeArraySizeException].
  146. 'outOfMemoryError' != e ifFalse: [java_error: e].
  147. 0 memory allocationFailedBytes: n.
  148. _CloneBytes: n Filler: java_inst_filler.
  149. ]).
  150. } | )
  151. bootstrap addSlotsTo: bootstrap stub -> 'globals' -> 'pep' -> 'arrayBuildMixin' -> 'array_masters' -> 'traits_byteVectorBasedArray' -> () From: ( | {
  152. 'ModuleInfo: Module: pep_runtime InitialContents: FollowSlot\x7fVisibility: public'
  153. java_inst_arraylength = ( |
  154. |
  155. _ByteSize).
  156. } | )
  157. bootstrap addSlotsTo: bootstrap stub -> 'globals' -> 'pep' -> 'arrayBuildMixin' -> 'array_masters' -> 'traits_byteVectorBasedArray' -> () From: ( | {
  158. 'Category: primitive wrappers\x7fModuleInfo: Module: pep_runtime InitialContents: FollowSlot\x7fVisibility: private'
  159. java_inst_at: index = ( |
  160. |
  161. _ByteAt: index IfFail: [|:e|
  162. java_inst_handlePrimError: e.
  163. ]).
  164. } | )
  165. bootstrap addSlotsTo: bootstrap stub -> 'globals' -> 'pep' -> 'arrayBuildMixin' -> 'array_masters' -> 'traits_byteVectorBasedArray' -> () From: ( | {
  166. 'Category: primitive wrappers\x7fModuleInfo: Module: pep_runtime InitialContents: FollowSlot\x7fVisibility: private'
  167. java_inst_at: index Put: v = ( |
  168. |
  169. _ByteAt: index Put: v IfFail: [|:e|
  170. java_inst_handlePrimError: e.
  171. ]).
  172. } | )
  173. bootstrap addSlotsTo: bootstrap stub -> 'globals' -> 'pep' -> 'arrayBuildMixin' -> 'array_masters' -> 'traits_byteVectorBasedArray' -> () From: ( | {
  174. 'Category: primitive wrappers\x7fModuleInfo: Module: pep_runtime InitialContents: FollowSlot\x7fVisibility: private'
  175. java_inst_copyRangeDstPos: dstPos SrcArray: srcArray SrcPos: srcPos Len: len IfFail: errBlk = ( |
  176. |
  177. _CopyByteRangeDstPos: dstPos Src: srcArray SrcPos: srcPos Length: len IfFail: errBlk).
  178. } | )
  179. bootstrap addSlotsTo: bootstrap stub -> 'globals' -> 'pep' -> 'arrayBuildMixin' -> 'array_masters' -> 'traits_vectorBasedArray' -> () From: ( | {
  180. 'ModuleInfo: Module: pep_runtime InitialContents: FollowSlot\x7fVisibility: private'
  181. array_parent* = bootstrap stub -> 'globals' -> 'pep' -> 'arrayBuildMixin' -> 'array_masters' -> 'traits_allArrays' -> ().
  182. } | )
  183. bootstrap addSlotsTo: bootstrap stub -> 'globals' -> 'pep' -> 'arrayBuildMixin' -> 'array_masters' -> 'traits_vectorBasedArray' -> () From: ( | {
  184. 'Category: primitive wrappers\x7fModuleInfo: Module: pep_runtime InitialContents: FollowSlot\x7fVisibility: private'
  185. basic_newArraySize: n = ( |
  186. |
  187. _Clone: n Filler: java_inst_filler IfFail: [|:e|
  188. 0 > n ifTrue: [java_inst_athrow: class_java_lang_NegativeArraySizeException].
  189. 'outOfMemoryError' != e ifFalse: [java_error: e].
  190. 0 memory allocationFailedBytes: n.
  191. _Clone: n Filler: java_inst_filler.
  192. ]).
  193. } | )
  194. bootstrap addSlotsTo: bootstrap stub -> 'globals' -> 'pep' -> 'arrayBuildMixin' -> 'array_masters' -> 'traits_vectorBasedArray' -> () From: ( | {
  195. 'ModuleInfo: Module: pep_runtime InitialContents: FollowSlot\x7fVisibility: public'
  196. java_inst_arraylength = ( |
  197. | _Size).
  198. } | )
  199. bootstrap addSlotsTo: bootstrap stub -> 'globals' -> 'pep' -> 'arrayBuildMixin' -> 'array_masters' -> 'traits_vectorBasedArray' -> () From: ( | {
  200. 'Category: primitive wrappers\x7fModuleInfo: Module: pep_runtime InitialContents: FollowSlot\x7fVisibility: private'
  201. java_inst_at: index = ( |
  202. |
  203. _At: index IfFail: [|:e|
  204. java_inst_handlePrimError: e.
  205. ]).
  206. } | )
  207. bootstrap addSlotsTo: bootstrap stub -> 'globals' -> 'pep' -> 'arrayBuildMixin' -> 'array_masters' -> 'traits_vectorBasedArray' -> () From: ( | {
  208. 'Category: primitive wrappers\x7fModuleInfo: Module: pep_runtime InitialContents: FollowSlot\x7fVisibility: private'
  209. java_inst_at: index Put: v = ( |
  210. |
  211. _At: index Put: v IfFail: [|:e|
  212. java_inst_handlePrimError: e.
  213. ].
  214. 0 pep ifTraceMutator: [
  215. obj_flags = 'T_CLASS' ifTrue: [ "Array of references."
  216. 0 pep mutatorTracer putarray: self Idx: index StoredObj: v.
  217. ].
  218. ].
  219. self).
  220. } | )
  221. bootstrap addSlotsTo: bootstrap stub -> 'globals' -> 'pep' -> 'arrayBuildMixin' -> 'array_masters' -> 'traits_vectorBasedArray' -> () From: ( | {
  222. 'Category: primitive wrappers\x7fModuleInfo: Module: pep_runtime InitialContents: FollowSlot\x7fVisibility: private'
  223. java_inst_copyRangeDstPos: dstPos SrcArray: srcArray SrcPos: srcPos Len: len IfFail: errBlk = ( |
  224. |
  225. _CopyRangeDstPos: dstPos Src: srcArray SrcPos: srcPos Length: len IfFail: errBlk).
  226. } | )
  227. bootstrap addSlotsTo: bootstrap stub -> 'globals' -> 'pep' -> 'arrayBuildMixin' -> 'array_masters' -> 'traits_vectorBasedArray' -> () From: ( | {
  228. 'Comment: Better implement this method if you are a vector, or the UI will crash.\x7fModuleInfo: Module: pep_runtime InitialContents: FollowSlot\x7fVisibility: public'
  229. methodPointerIfFail: b = ( |
  230. | _MethodPointerIfFail: b).
  231. } | )
  232. bootstrap addSlotsTo: bootstrap stub -> 'globals' -> 'pep' -> 'nativeMethods' -> () From: ( | {
  233. 'Category: java\x7fCategory: io\x7fCategory: FileDescriptor\x7fModuleInfo: Module: pep_runtime InitialContents: FollowSlot'
  234. java_io_FileDescriptor_initSystemFD_Ljava_io_FileDescriptor: fdObj I: fd0 = ( |
  235. |
  236. fdObj java_inst_setFileNumber: fd0.
  237. fdObj).
  238. } | )
  239. bootstrap addSlotsTo: bootstrap stub -> 'globals' -> 'pep' -> 'nativeMethods' -> () From: ( | {
  240. 'Category: java\x7fCategory: io\x7fCategory: FileDescriptor\x7fModuleInfo: Module: pep_runtime InitialContents: FollowSlot'
  241. java_io_FileDescriptor_valid = ( |
  242. |
  243. "Note: getFileNumber already subtracts 1, so
  244. compare using '<=' not '<'."
  245. 0 <= java_inst_getFileNumber ifTrue: [java_true]
  246. False: [java_false]).
  247. } | )
  248. bootstrap addSlotsTo: bootstrap stub -> 'globals' -> 'pep' -> 'nativeMethods' -> () From: ( | {
  249. 'Category: java\x7fCategory: io\x7fCategory: FileInputStream\x7fModuleInfo: Module: pep_runtime InitialContents: FollowSlot'
  250. java_io_FileInputStream_available = ( |
  251. cur <- 0.
  252. end <- 0.
  253. selfFile.
  254. statObj.
  255. |
  256. java_io_FileInputStream_fd_ java_inst_athrowIfNullMessage: 'null FileDescriptor'.
  257. selfFile: (java_io_FileInputStream_fd_ java_inst_getSelfFileIfFail: [
  258. java_inst_IOException.
  259. ]).
  260. statObj: (selfFile fstatIfFail: [java_inst_IOException]).
  261. statObj s_ischr || [statObj s_isfifo] || [statObj s_issock] ifTrue: [
  262. 0 error: 'special devices currently not supported'. "%%%"
  263. ].
  264. java_inst_tripleSeek: selfFile Cur: [|:c| cur: c] End: [|:e| end: e].
  265. end - cur).
  266. } | )
  267. bootstrap addSlotsTo: bootstrap stub -> 'globals' -> 'pep' -> 'nativeMethods' -> () From: ( | {
  268. 'Category: java\x7fCategory: io\x7fCategory: FileInputStream\x7fModuleInfo: Module: pep_runtime InitialContents: FollowSlot'
  269. java_io_FileInputStream_close = ( |
  270. |
  271. java_io_FileInputStream_fd_ java_inst_closeFileDescriptor).
  272. } | )
  273. bootstrap addSlotsTo: bootstrap stub -> 'globals' -> 'pep' -> 'nativeMethods' -> () From: ( | {
  274. 'Category: java\x7fCategory: io\x7fCategory: FileInputStream\x7fModuleInfo: Module: pep_runtime InitialContents: FollowSlot'
  275. java_io_FileInputStream_open_Ljava_lang_String: name = ( |
  276. |
  277. java_inst_openFileName: name
  278. Flags: 0 os_file flags read
  279. Mode: 0
  280. FileDescObj: java_io_FileInputStream_fd_).
  281. } | )
  282. bootstrap addSlotsTo: bootstrap stub -> 'globals' -> 'pep' -> 'nativeMethods' -> () From: ( | {
  283. 'Category: java\x7fCategory: io\x7fCategory: FileInputStream\x7fModuleInfo: Module: pep_runtime InitialContents: FollowSlot'
  284. java_io_FileInputStream_read = ( |
  285. selfFile.
  286. |
  287. java_io_FileInputStream_fd_ java_inst_athrowIfNullMessage: 'null FileDescriptor'.
  288. selfFile: (java_io_FileInputStream_fd_ java_inst_getSelfFileIfFail: [
  289. java_inst_IOException: 'read error'.
  290. ]).
  291. (selfFile readOneCharIfFail: [
  292. selfFile atEOF ifTrue: [^ -1].
  293. java_inst_IOException: 'read error'.
  294. ]) asByte).
  295. } | )
  296. bootstrap addSlotsTo: bootstrap stub -> 'globals' -> 'pep' -> 'nativeMethods' -> () From: ( | {
  297. 'Category: java\x7fCategory: io\x7fCategory: FileInputStream\x7fModuleInfo: Module: pep_runtime InitialContents: FollowSlot'
  298. java_io_FileInputStream_readBytes_Array_B: byteArray I: off I: len = ( |
  299. bytesRead <- 0.
  300. |
  301. bytesRead: (java_inst_readFromFileDescObj: java_io_FileInputStream_fd_
  302. Into: byteArray
  303. Offset: off
  304. Length: len
  305. MinBytes: 1).
  306. 0 = bytesRead ifTrue: [-1] False: [bytesRead]).
  307. } | )
  308. bootstrap addSlotsTo: bootstrap stub -> 'globals' -> 'pep' -> 'nativeMethods' -> () From: ( | {
  309. 'Category: java\x7fCategory: io\x7fCategory: FileInputStream\x7fModuleInfo: Module: pep_runtime InitialContents: FollowSlot'
  310. java_io_FileInputStream_skip_J: n = ( |
  311. cur <- 0.
  312. end <- 0.
  313. selfFile.
  314. |
  315. java_io_FileInputStream_fd_ java_inst_athrowIfNullMessage: 'null FileDescriptor'.
  316. selfFile: (java_io_FileInputStream_fd_ java_inst_getSelfFileIfFail: [
  317. java_inst_IOException.
  318. ]).
  319. cur: (selfFile lseekOffset: 0 Whence: selfFile seek_cur IfFail: [
  320. java_inst_IOException.
  321. ]).
  322. end: (selfFile lseekOffset: n Whence: selfFile seek_cur IfFail: [
  323. java_inst_IOException.
  324. ]).
  325. end java_inst_lsub: cur).
  326. } | )
  327. bootstrap addSlotsTo: bootstrap stub -> 'globals' -> 'pep' -> 'nativeMethods' -> () From: ( | {
  328. 'Category: java\x7fCategory: io\x7fCategory: FileOutputStream\x7fModuleInfo: Module: pep_runtime InitialContents: FollowSlot'
  329. java_io_FileOutputStream_close = ( |
  330. |
  331. java_io_FileOutputStream_fd_ java_inst_closeFileDescriptor).
  332. } | )
  333. bootstrap addSlotsTo: bootstrap stub -> 'globals' -> 'pep' -> 'nativeMethods' -> () From: ( | {
  334. 'Category: java\x7fCategory: io\x7fCategory: FileOutputStream\x7fModuleInfo: Module: pep_runtime InitialContents: FollowSlot'
  335. java_io_FileOutputStream_open_Ljava_lang_String: name = ( |
  336. flags.
  337. |
  338. flags: 0 os_file flags.
  339. java_inst_openFileName: name
  340. Flags: flags write || flags create || flags truncate
  341. Mode: 8r664
  342. FileDescObj: java_io_FileOutputStream_fd_).
  343. } | )
  344. bootstrap addSlotsTo: bootstrap stub -> 'globals' -> 'pep' -> 'nativeMethods' -> () From: ( | {
  345. 'Category: java\x7fCategory: io\x7fCategory: FileOutputStream\x7fModuleInfo: Module: pep_runtime InitialContents: FollowSlot'
  346. java_io_FileOutputStream_writeBytes_Array_B: byteArray I: off I: len = ( |
  347. |
  348. java_inst_writeToFileDescObj: java_io_FileOutputStream_fd_
  349. From: byteArray
  350. Offset: off
  351. Length: len).
  352. } | )
  353. bootstrap addSlotsTo: bootstrap stub -> 'globals' -> 'pep' -> 'nativeMethods' -> () From: ( | {
  354. 'Category: java\x7fCategory: io\x7fCategory: FileOutputStream\x7fModuleInfo: Module: pep_runtime InitialContents: FollowSlot'
  355. java_io_FileOutputStream_write_I: byte = ( |
  356. selfFile.
  357. |
  358. java_io_FileOutputStream_fd_ java_inst_athrowIfNullMessage: 'null FileDescriptor'.
  359. selfFile: (java_io_FileOutputStream_fd_ java_inst_getSelfFileIfFail: [
  360. java_inst_IOException: 'write error'.
  361. ]).
  362. selfFile write: (0 byteVector copySize: 1 FillingWith: byte)
  363. IfFail: [java_inst_IOException: 'write error'].
  364. self).
  365. } | )
  366. bootstrap addSlotsTo: bootstrap stub -> 'globals' -> 'pep' -> 'nativeMethods' -> () From: ( | {
  367. 'Category: java\x7fCategory: io\x7fCategory: File\x7fModuleInfo: Module: pep_runtime InitialContents: FollowSlot'
  368. java_io_File_canRead0 = ( |
  369. |
  370. java_inst_sysAccessMode: 0 os accessModes r_ok).
  371. } | )
  372. bootstrap addSlotsTo: bootstrap stub -> 'globals' -> 'pep' -> 'nativeMethods' -> () From: ( | {
  373. 'Category: java\x7fCategory: io\x7fCategory: File\x7fModuleInfo: Module: pep_runtime InitialContents: FollowSlot'
  374. java_io_File_canWrite0 = ( |
  375. |
  376. java_inst_sysAccessMode: 0 os accessModes w_ok).
  377. } | )
  378. bootstrap addSlotsTo: bootstrap stub -> 'globals' -> 'pep' -> 'nativeMethods' -> () From: ( | {
  379. 'Category: java\x7fCategory: io\x7fCategory: File\x7fModuleInfo: Module: pep_runtime InitialContents: FollowSlot'
  380. java_io_File_exists0 = ( |
  381. |
  382. java_inst_sysAccessMode: 0 os accessModes f_ok).
  383. } | )
  384. bootstrap addSlotsTo: bootstrap stub -> 'globals' -> 'pep' -> 'nativeMethods' -> () From: ( | {
  385. 'Category: java\x7fCategory: io\x7fCategory: File\x7fModuleInfo: Module: pep_runtime InitialContents: FollowSlot'
  386. java_io_File_isAbsolute = ( |
  387. selfStrPath <- ''.
  388. |
  389. java_io_File_path_ java_inst_athrowIfNull.
  390. selfStrPath: java_io_File_path_ o_javaStrToSelfStr.
  391. (0 os_file isAbsolutePath: selfStrPath) ifTrue: [java_true]
  392. False: [java_false]).
  393. } | )
  394. bootstrap addSlotsTo: bootstrap stub -> 'globals' -> 'pep' -> 'nativeMethods' -> () From: ( | {
  395. 'Category: java\x7fCategory: io\x7fCategory: File\x7fModuleInfo: Module: pep_runtime InitialContents: FollowSlot'
  396. java_io_File_isDirectory0 = ( |
  397. |
  398. java_inst_statOp: [|:statObj|
  399. (statObj s_isdirIfFail: [^ java_false]) ifTrue: [java_true]
  400. False: [java_false].
  401. ] IfFail: [java_false]).
  402. } | )
  403. bootstrap addSlotsTo: bootstrap stub -> 'globals' -> 'pep' -> 'nativeMethods' -> () From: ( | {
  404. 'Category: java\x7fCategory: io\x7fCategory: File\x7fModuleInfo: Module: pep_runtime InitialContents: FollowSlot'
  405. java_io_File_isFile0 = ( |
  406. |
  407. java_inst_statOp: [|:statObj|
  408. (statObj s_isregIfFail: [^ java_false]) ifTrue: [java_true]
  409. False: [java_false].
  410. ] IfFail: [java_false]).
  411. } | )
  412. bootstrap addSlotsTo: bootstrap stub -> 'globals' -> 'pep' -> 'nativeMethods' -> () From: ( | {
  413. 'Category: java\x7fCategory: io\x7fCategory: File\x7fModuleInfo: Module: pep_runtime InitialContents: FollowSlot'
  414. java_io_File_lastModified0 = ( |
  415. |
  416. java_inst_statOp: [|:statObj. v|
  417. v: (statObj st_mtimeIfFail: [^ java_zero_long]).
  418. (0 time msecPerDay java_inst_lmul: (v at: 0)) java_inst_ladd: (v at: 1).
  419. ] IfFail: [java_zero_long]).
  420. } | )
  421. bootstrap addSlotsTo: bootstrap stub -> 'globals' -> 'pep' -> 'nativeMethods' -> () From: ( | {
  422. 'Category: java\x7fCategory: io\x7fCategory: File\x7fModuleInfo: Module: pep_runtime InitialContents: FollowSlot'
  423. java_io_File_length0 = ( |
  424. |
  425. java_inst_statOp: [|:statObj|
  426. statObj st_sizeIfFail: [^ java_zero_long].
  427. ] IfFail: [java_zero_long]).
  428. } | )
  429. bootstrap addSlotsTo: bootstrap stub -> 'globals' -> 'pep' -> 'nativeMethods' -> () From: ( | {
  430. 'Category: java\x7fCategory: io\x7fCategory: File\x7fModuleInfo: Module: pep_runtime InitialContents: FollowSlot'
  431. java_io_File_mkdir0 = ( |
  432. path.
  433. |
  434. path: java_io_File_path_.
  435. path java_inst_athrowIfNull.
  436. 0 os mkdir: path o_javaStrToSelfStr
  437. Mode: 8r771
  438. IfFail: [^ java_false].
  439. java_true. "Indicate success.").
  440. } | )
  441. bootstrap addSlotsTo: bootstrap stub -> 'globals' -> 'pep' -> 'nativeMethods' -> () From: ( | {
  442. 'Category: java\x7fCategory: io\x7fCategory: RandomAccessFile\x7fModuleInfo: Module: pep_runtime InitialContents: FollowSlot'
  443. java_io_RandomAccessFile_close = ( |
  444. |
  445. java_io_FileInputStream_fd_ java_inst_closeFileDescriptor).
  446. } | )
  447. bootstrap addSlotsTo: bootstrap stub -> 'globals' -> 'pep' -> 'nativeMethods' -> () From: ( | {
  448. 'Category: java\x7fCategory: io\x7fCategory: RandomAccessFile\x7fModuleInfo: Module: pep_runtime InitialContents: FollowSlot'
  449. java_io_RandomAccessFile_length = ( |
  450. end <- 0.
  451. selfFile.
  452. |
  453. java_io_RandomAccessFile_fd_ java_inst_athrowIfNullMessage: 'null FileDescriptor'.
  454. selfFile: (java_io_RandomAccessFile_fd_ java_inst_getSelfFileIfFail: [
  455. java_inst_IOException.
  456. ]).
  457. java_inst_tripleSeek: selfFile Cur: [] End: [|:e| end: e].
  458. end).
  459. } | )
  460. bootstrap addSlotsTo: bootstrap stub -> 'globals' -> 'pep' -> 'nativeMethods' -> () From: ( | {
  461. 'Category: java\x7fCategory: io\x7fCategory: RandomAccessFile\x7fModuleInfo: Module: pep_runtime InitialContents: FollowSlot'
  462. java_io_RandomAccessFile_open_Ljava_lang_String: name Z: writable = ( |
  463. f <- 0.
  464. flags.
  465. m <- 0.
  466. |
  467. flags: 0 os_file flags.
  468. (o_javaBoolToSelfBool: writable) ifTrue: [
  469. m: 8r664.
  470. f: flags readWrite || flags create.
  471. ] False: [
  472. m: 0.
  473. f: flags read.
  474. ].
  475. java_inst_openFileName: name
  476. Flags: f
  477. Mode: m
  478. FileDescObj: java_io_RandomAccessFile_fd_).
  479. } | )
  480. bootstrap addSlotsTo: bootstrap stub -> 'globals' -> 'pep' -> 'nativeMethods' -> () From: ( | {
  481. 'Category: java\x7fCategory: io\x7fCategory: RandomAccessFile\x7fModuleInfo: Module: pep_runtime InitialContents: FollowSlot'
  482. java_io_RandomAccessFile_readBytes_Array_B: byteArray I: off I: len = ( |
  483. |
  484. java_inst_readFromFileDescObj: java_io_RandomAccessFile_fd_
  485. Into: byteArray
  486. Offset: off
  487. Length: len
  488. MinBytes: 1).
  489. } | )
  490. bootstrap addSlotsTo: bootstrap stub -> 'globals' -> 'pep' -> 'nativeMethods' -> () From: ( | {
  491. 'Category: java\x7fCategory: io\x7fCategory: RandomAccessFile\x7fModuleInfo: Module: pep_runtime InitialContents: FollowSlot'
  492. java_io_RandomAccessFile_seek_J: pos = ( |
  493. selfFile.
  494. |
  495. java_io_RandomAccessFile_fd_ java_inst_athrowIfNullMessage: 'null FileDescriptor'.
  496. selfFile: (java_io_RandomAccessFile_fd_ java_inst_getSelfFileIfFail: [
  497. java_inst_IOException.
  498. ]).
  499. selfFile lseekOffset: pos Whence: selfFile seek_set IfFail: [
  500. java_inst_IOException.
  501. ].
  502. self).
  503. } | )
  504. bootstrap addSlotsTo: bootstrap stub -> 'globals' -> 'pep' -> 'nativeMethods' -> () From: ( | {
  505. 'Category: java\x7fCategory: lang\x7fCategory: ClassLoader\x7fComment: Corresponding native method defined in ...share/java/lang/class.c.\x7fModuleInfo: Module: pep_runtime InitialContents: FollowSlot'
  506. java_lang_ClassLoader_defineClass0_Array_B: data I: offset I: length = ( |
  507. bytes.
  508. cl.
  509. dlen <- 0.
  510. |
  511. data java_inst_athrowIfNull.
  512. dlen: data java_inst_arraylength.
  513. offset java_inst_iflt ||
  514. [length java_inst_iflt] ||
  515. [(offset java_inst_iadd: length) java_inst_if_icmpgt: dlen] ifTrue: [
  516. java_inst_athrow: java_classes
  517. class_java_lang_ArrayIndexOutOfBoundsException.
  518. ].
  519. "Transfer the 'data' to a self bytevector."
  520. bytes: (0 byteVector copySize: length).
  521. bytes copyRangeDstPos: 0 SrcArray: data SrcPos: offset Len: length.
  522. cl: (0 pep loader defineClassFromBytes: bytes IfFail: [|:e|
  523. java_inst_athrow: java_classes class_java_lang_ClassFormatError
  524. Message: e. "Supplying the message is my addition. Ole, July 1996."
  525. ]).
  526. cl proto_instance java_lang_Object_getClass).
  527. } | )
  528. bootstrap addSlotsTo: bootstrap stub -> 'globals' -> 'pep' -> 'nativeMethods' -> () From: ( | {
  529. 'Category: java\x7fCategory: lang\x7fCategory: ClassLoader\x7fComment: Corresponding native method defined in ...share/java/lang/class.c.
  530. How is this method different from the method
  531. java_lang_Class_forName_Ljava_lang_String:?
  532. They seem to do the same!\x7fModuleInfo: Module: pep_runtime InitialContents: FollowSlot'
  533. java_lang_ClassLoader_findSystemClass0_Ljava_lang_String: className = ( |
  534. cl.
  535. name <- ''.
  536. |
  537. name: className o_javaStrToSelfStr.
  538. cl: (0 pep loader getClassNamed: name IfFail: [
  539. java_inst_athrow: java_classes class_java_lang_ClassNotFoundException Message: name.
  540. ]).
  541. cl proto_instance java_lang_Object_getClass).
  542. } | )
  543. bootstrap addSlotsTo: bootstrap stub -> 'globals' -> 'pep' -> 'nativeMethods' -> () From: ( | {
  544. 'Category: java\x7fCategory: lang\x7fCategory: ClassLoader\x7fComment: Corresponding native method defined in ...share/java/lang/class.c.\x7fModuleInfo: Module: pep_runtime InitialContents: FollowSlot'
  545. java_lang_ClassLoader_init = ( |
  546. |
  547. self).
  548. } | )
  549. bootstrap addSlotsTo: bootstrap stub -> 'globals' -> 'pep' -> 'nativeMethods' -> () From: ( | {
  550. 'Category: java\x7fCategory: lang\x7fCategory: ClassLoader\x7fComment: Corresponding native method defined in ...share/java/lang/class.c.\x7fModuleInfo: Module: pep_runtime InitialContents: FollowSlot'
  551. java_lang_ClassLoader_resolveClass0_Ljava_lang_Class: c = ( |
  552. |
  553. self).
  554. } | )
  555. bootstrap addSlotsTo: bootstrap stub -> 'globals' -> 'pep' -> 'nativeMethods' -> () From: ( | {
  556. 'Category: java\x7fCategory: lang\x7fCategory: Class\x7fComment: Corresponding native method defined in .../class.c.
  557. How is this method different from the method
  558. java_lang_ClassLoader_findSystemClass_Ljava_lang_String:?
  559. They seem to do the same!\x7fModuleInfo: Module: pep_runtime InitialContents: FollowSlot'
  560. java_lang_Class_forName_Ljava_lang_String: className = ( |
  561. cl.
  562. name <- ''.
  563. |
  564. name: className o_javaStrToSelfStr.
  565. cl: (0 pep loader getClassNamed: name IfFail: [
  566. java_inst_athrow: java_classes class_java_lang_ClassNotFoundException Message: name.
  567. ]).
  568. cl proto_instance java_lang_Object_getClass).
  569. } | )
  570. bootstrap addSlotsTo: bootstrap stub -> 'globals' -> 'pep' -> 'nativeMethods' -> () From: ( | {
  571. 'Category: java\x7fCategory: lang\x7fCategory: Class\x7fModuleInfo: Module: pep_runtime InitialContents: FollowSlot'
  572. java_lang_Class_getInterfaces = ( |
  573. intfs.
  574. res.
  575. |
  576. intfs: the_class interface_names.
  577. res: (java_classes class_java_lang_Class array_1 java_inst_newArraySize: intfs size).
  578. intfs do: [|:className. :idx. cl|
  579. cl: (0 pep loader getClassNamed: className IfFail: [
  580. java_inst_athrow: java_classes class_java_lang_ClassNotFoundException Message: name.
  581. ]).
  582. res java_inst_aastore: idx With: cl proto_instance java_lang_Object_getClass.
  583. ].
  584. res).
  585. } | )
  586. bootstrap addSlotsTo: bootstrap stub -> 'globals' -> 'pep' -> 'nativeMethods' -> () From: ( | {
  587. 'Category: java\x7fCategory: lang\x7fCategory: Class\x7fModuleInfo: Module: pep_runtime InitialContents: FollowSlot'
  588. java_lang_Class_getName = ( |
  589. |
  590. o_selfStrToJavaStr: the_class class_name).
  591. } | )
  592. bootstrap addSlotsTo: bootstrap stub -> 'globals' -> 'pep' -> 'nativeMethods' -> () From: ( | {
  593. 'Category: java\x7fCategory: lang\x7fCategory: Class\x7fModuleInfo: Module: pep_runtime InitialContents: FollowSlot'
  594. java_lang_Class_getSuperclass = ( |
  595. |
  596. (the_class _Eq: java_classes class_java_lang_Object) ifTrue: [^ java_null].
  597. the_class super_class proto_instance java_lang_Object_getClass).
  598. } | )
  599. bootstrap addSlotsTo: bootstrap stub -> 'globals' -> 'pep' -> 'nativeMethods' -> () From: ( | {
  600. 'Category: java\x7fCategory: lang\x7fCategory: Class\x7fModuleInfo: Module: pep_runtime InitialContents: FollowSlot'
  601. java_lang_Class_isInterface = ( |
  602. |
  603. the_class class_is_interface ifTrue: [java_true]
  604. False: [java_false]).
  605. } | )
  606. bootstrap addSlotsTo: bootstrap stub -> 'globals' -> 'pep' -> 'nativeMethods' -> () From: ( | {
  607. 'Category: java\x7fCategory: lang\x7fCategory: Class\x7fModuleInfo: Module: pep_runtime InitialContents: FollowSlot'
  608. java_lang_Class_newInstance = ( |
  609. |
  610. the_class class_is_interface || [the_class class_is_abstract] ifTrue: [
  611. java_inst_athrow: java_classes class_java_lang_InstantiationException.
  612. ].
  613. "Also should check for illegal access (how?). %%%"
  614. 0 pep mutatorTracer keepAlive: the_class java_inst_new
  615. Do: [|:inst| inst init_obj]).
  616. } | )
  617. bootstrap addSlotsTo: bootstrap stub -> 'globals' -> 'pep' -> 'nativeMethods' -> () From: ( | {
  618. 'Category: java\x7fCategory: lang\x7fCategory: Double\x7fModuleInfo: Module: pep_runtime InitialContents: FollowSlot'
  619. java_lang_Double_doubleToLongBits_D: val = ( |
  620. bv.
  621. |
  622. bv: (0 byteVector copySize: 8).
  623. bv javaAt: 0 PutDouble: val.
  624. bv javaLongAt: 0).
  625. } | )
  626. bootstrap addSlotsTo: bootstrap stub -> 'globals' -> 'pep' -> 'nativeMethods' -> () From: ( | {
  627. 'Category: java\x7fCategory: lang\x7fCategory: Double\x7fModuleInfo: Module: pep_runtime InitialContents: FollowSlot'
  628. java_lang_Double_longBitsToDouble_J: bits = ( |
  629. bv.
  630. |
  631. bv: (0 byteVector copySize: 8).
  632. bv javaAt: 0 PutLong: bits.
  633. bv javaDoubleAt: 0).
  634. } | )
  635. bootstrap addSlotsTo: bootstrap stub -> 'globals' -> 'pep' -> 'nativeMethods' -> () From: ( | {
  636. 'Category: java\x7fCategory: lang\x7fCategory: Double\x7fModuleInfo: Module: pep_runtime InitialContents: FollowSlot'
  637. java_lang_Double_toString_D: double = ( |
  638. |
  639. o_selfStrToJavaStr: double _FloatPrintString).
  640. } | )
  641. bootstrap addSlotsTo: bootstrap stub -> 'globals' -> 'pep' -> 'nativeMethods' -> () From: ( | {
  642. 'Category: java\x7fCategory: lang\x7fCategory: Double\x7fModuleInfo: Module: pep_runtime InitialContents: FollowSlot'
  643. java_lang_Double_valueOf_Ljava_lang_String: str = ( |
  644. |
  645. 0 pep mutatorTracer keepAlive: java_classes class_java_lang_Double
  646. java_inst_new
  647. Do: [|:inst|
  648. inst init_obj_D: (java_inst_javaStringToSelfFloat: str).
  649. ]).
  650. } | )
  651. bootstrap addSlotsTo: bootstrap stub -> 'globals' -> 'pep' -> 'nativeMethods' -> () From: ( | {
  652. 'Category: java\x7fCategory: lang\x7fCategory: Float\x7fModuleInfo: Module: pep_runtime InitialContents: FollowSlot'
  653. java_lang_Float_floatToIntBits_F: val = ( |
  654. bv.
  655. |
  656. bv: (0 byteVector copySize: 4).
  657. bv javaAt: 0 PutFloat: val.
  658. bv javaIntAt: 0).
  659. } | )
  660. bootstrap addSlotsTo: bootstrap stub -> 'globals' -> 'pep' -> 'nativeMethods' -> () From: ( | {
  661. 'Category: java\x7fCategory: lang\x7fCategory: Float\x7fModuleInfo: Module: pep_runtime InitialContents: FollowSlot'
  662. java_lang_Float_intBitsToFloat_I: bits = ( |
  663. bv.
  664. |
  665. bv: (0 byteVector copySize: 4).
  666. bv javaAt: 0 PutInt: bits.
  667. bv javaFloatAt: 0).
  668. } | )
  669. bootstrap addSlotsTo: bootstrap stub -> 'globals' -> 'pep' -> 'nativeMethods' -> () From: ( | {
  670. 'Category: java\x7fCategory: lang\x7fCategory: Float\x7fModuleInfo: Module: pep_runtime InitialContents: FollowSlot'
  671. java_lang_Float_toString_F: float = ( |
  672. |
  673. o_selfStrToJavaStr: float _FloatPrintString).
  674. } | )
  675. bootstrap addSlotsTo: bootstrap stub -> 'globals' -> 'pep' -> 'nativeMethods' -> () From: ( | {
  676. 'Category: java\x7fCategory: lang\x7fCategory: Float\x7fModuleInfo: Module: pep_runtime InitialContents: FollowSlot'
  677. java_lang_Float_valueOf_Ljava_lang_String: str = ( |
  678. |
  679. 0 pep mutatorTracer keepAlive: java_classes class_java_lang_Float
  680. java_inst_new
  681. Do: [|:inst|
  682. inst init_obj_F: (java_inst_javaStringToSelfFloat: str).
  683. ]).
  684. } | )
  685. bootstrap addSlotsTo: bootstrap stub -> 'globals' -> 'pep' -> 'nativeMethods' -> () From: ( | {
  686. 'Category: java\x7fCategory: lang\x7fCategory: Math\x7fModuleInfo: Module: pep_runtime InitialContents: FollowSlot'
  687. java_lang_Math_acos_D: d = ( |
  688. | d arcCos).
  689. } | )
  690. bootstrap addSlotsTo: bootstrap stub -> 'globals' -> 'pep' -> 'nativeMethods' -> () From: ( | {
  691. 'Category: java\x7fCategory: lang\x7fCategory: Math\x7fModuleInfo: Module: pep_runtime InitialContents: FollowSlot'
  692. java_lang_Math_asin_D: d = ( |
  693. | d arcSin).
  694. } | )
  695. bootstrap addSlotsTo: bootstrap stub -> 'globals' -> 'pep' -> 'nativeMethods' -> () From: ( | {
  696. 'Category: java\x7fCategory: lang\x7fCategory: Math\x7fModuleInfo: Module: pep_runtime InitialContents: FollowSlot'
  697. java_lang_Math_atan_D: d = ( |
  698. | d arcTan).
  699. } | )
  700. bootstrap addSlotsTo: bootstrap stub -> 'globals' -> 'pep' -> 'nativeMethods' -> () From: ( | {
  701. 'Category: java\x7fCategory: lang\x7fCategory: Math\x7fModuleInfo: Module: pep_runtime InitialContents: FollowSlot'
  702. java_lang_Math_ceil_D: d = ( |
  703. | d ceil).
  704. } | )
  705. bootstrap addSlotsTo: bootstrap stub -> 'globals' -> 'pep' -> 'nativeMethods' -> () From: ( | {
  706. 'Category: java\x7fCategory: lang\x7fCategory: Math\x7fModuleInfo: Module: pep_runtime InitialContents: FollowSlot'
  707. java_lang_Math_cos_D: d = ( |
  708. | d cos).
  709. } | )
  710. bootstrap addSlotsTo: bootstrap stub -> 'globals' -> 'pep' -> 'nativeMethods' -> () From: ( | {
  711. 'Category: java\x7fCategory: lang\x7fCategory: Math\x7fModuleInfo: Module: pep_runtime InitialContents: FollowSlot'
  712. java_lang_Math_floor_D: d = ( |
  713. | d floor).
  714. } | )
  715. bootstrap addSlotsTo: bootstrap stub -> 'globals' -> 'pep' -> 'nativeMethods' -> () From: ( | {
  716. 'Category: java\x7fCategory: lang\x7fCategory: Math\x7fModuleInfo: Module: pep_runtime InitialContents: FollowSlot'
  717. java_lang_Math_log_D: d = ( |
  718. | d naturalLog).
  719. } | )
  720. bootstrap addSlotsTo: bootstrap stub -> 'globals' -> 'pep' -> 'nativeMethods' -> () From: ( | {
  721. 'Category: java\x7fCategory: lang\x7fCategory: Math\x7fModuleInfo: Module: pep_runtime InitialContents: FollowSlot'
  722. java_lang_Math_sin_D: d = ( |
  723. | d sin).
  724. } | )
  725. bootstrap addSlotsTo: bootstrap stub -> 'globals' -> 'pep' -> 'nativeMethods' -> () From: ( | {
  726. 'Category: java\x7fCategory: lang\x7fCategory: Math\x7fModuleInfo: Module: pep_runtime InitialContents: FollowSlot'
  727. java_lang_Math_sqrt_D: d = ( |
  728. | d squareRoot).
  729. } | )
  730. bootstrap addSlotsTo: bootstrap stub -> 'globals' -> 'pep' -> 'nativeMethods' -> () From: ( | {
  731. 'Category: java\x7fCategory: lang\x7fCategory: Math\x7fModuleInfo: Module: pep_runtime InitialContents: FollowSlot'
  732. java_lang_Math_tan_D: d = ( |
  733. | d tan).
  734. } | )
  735. bootstrap addSlotsTo: bootstrap stub -> 'globals' -> 'pep' -> 'nativeMethods' -> () From: ( | {
  736. 'Category: java\x7fCategory: lang\x7fCategory: Object\x7fModuleInfo: Module: pep_runtime InitialContents: FollowSlot'
  737. java_lang_Object_clone = ( |
  738. |
  739. 'T_NORMAL_OBJECT' = obj_flags ifTrue: [
  740. is_java_lang_Cloneable ifFalse: [
  741. java_inst_athrow: java_classes class_java_lang_CloneNotSupportedException
  742. Message: class_name.
  743. ].
  744. ].
  745. _Clone).
  746. } | )
  747. bootstrap addSlotsTo: bootstrap stub -> 'globals' -> 'pep' -> 'nativeMethods' -> () From: ( | {
  748. 'Category: java\x7fCategory: lang\x7fCategory: Object\x7fModuleInfo: Module: pep_runtime InitialContents: FollowSlot'
  749. java_lang_Object_getClass = ( |
  750. |
  751. java_inst_athrowIfNull.
  752. 0 pep mutatorTracer keepAlive: java_classes class_java_lang_Class
  753. java_inst_new
  754. Do: [|:res|
  755. res init_obj.
  756. res the_class: my_class.
  757. res.
  758. ]).
  759. } | )
  760. bootstrap addSlotsTo: bootstrap stub -> 'globals' -> 'pep' -> 'nativeMethods' -> () From: ( | {
  761. 'Category: java\x7fCategory: lang\x7fCategory: Object\x7fModuleInfo: Module: pep_runtime InitialContents: FollowSlot'
  762. java_lang_Object_hashCode = ( |
  763. |
  764. _IdentityHash).
  765. } | )
  766. bootstrap addSlotsTo: bootstrap stub -> 'globals' -> 'pep' -> 'nativeMethods' -> () From: ( | {
  767. 'Category: java\x7fCategory: lang\x7fCategory: Object\x7fModuleInfo: Module: pep_runtime InitialContents: FollowSlot'
  768. java_lang_Object_notify = ( |
  769. |
  770. check_holds_monitor.
  771. my_waitQ isEmpty ifFalse: [my_waitQ signal].
  772. self).
  773. } | )
  774. bootstrap addSlotsTo: bootstrap stub -> 'globals' -> 'pep' -> 'nativeMethods' -> () From: ( | {
  775. 'Category: java\x7fCategory: lang\x7fCategory: Object\x7fModuleInfo: Module: pep_runtime InitialContents: FollowSlot'
  776. java_lang_Object_notifyAll = ( |
  777. |
  778. check_holds_monitor.
  779. [my_waitQ isEmpty] whileFalse: [my_waitQ signal].
  780. self).
  781. } | )
  782. bootstrap addSlotsTo: bootstrap stub -> 'globals' -> 'pep' -> 'nativeMethods' -> () From: ( | {
  783. 'Category: java\x7fCategory: lang\x7fCategory: Object\x7fModuleInfo: Module: pep_runtime InitialContents: FollowSlot'
  784. java_lang_Object_wait_J: millis = ( |
  785. ms <- 0.
  786. |
  787. check_holds_monitor.
  788. my_waitQ allocateIn: self. "Lazy allocation."
  789. ms: millis asInteger.
  790. "'waiting on: ' print. my_waitQ objectID printLine."
  791. 0 = ms ifTrue: [ "In Java, a wait of 0 ms is forever."
  792. my_lock forceUnlockForWaitOn: my_waitQ.
  793. ] False: [
  794. my_lock forceUnlockForWaitOn: my_waitQ TimeOut: ms.
  795. ].
  796. self).
  797. } | )
  798. bootstrap addSlotsTo: bootstrap stub -> 'globals' -> 'pep' -> 'nativeMethods' -> () From: ( | {
  799. 'Category: java\x7fCategory: lang\x7fCategory: Runtime\x7fModuleInfo: Module: pep_runtime InitialContents: FollowSlot'
  800. java_lang_Runtime_buildLibName_Ljava_lang_String: path Ljava_lang_String: filename = ( |
  801. sname <- ''.
  802. spath <- ''.
  803. sres <- ''.
  804. |
  805. path java_inst_athrowIfNull.
  806. filename java_inst_athrowIfNull.
  807. spath: path o_javaStrToSelfStr.
  808. sname: filename o_javaStrToSelfStr.
  809. sres: spath, '/lib', sname, '.so'. "Gwak! Why did they have to do
  810. that in a native method?"
  811. o_selfStrToJavaStr: sres).
  812. } | )
  813. bootstrap addSlotsTo: bootstrap stub -> 'globals' -> 'pep' -> 'nativeMethods' -> () From: ( | {
  814. 'Category: java\x7fCategory: lang\x7fCategory: Runtime\x7fModuleInfo: Module: pep_runtime InitialContents: FollowSlot'
  815. java_lang_Runtime_exitInternal_I: int = ( |
  816. str <- ''.
  817. |
  818. str: 'exitInternal called with arg: ', int printString.
  819. str printLine.
  820. "this_process abort: str.").
  821. } | )
  822. bootstrap addSlotsTo: bootstrap stub -> 'globals' -> 'pep' -> 'nativeMethods' -> () From: ( | {
  823. 'Category: java\x7fCategory: lang\x7fCategory: Runtime\x7fModuleInfo: Module: pep_runtime InitialContents: FollowSlot'
  824. java_lang_Runtime_initializeLinkerInternal = ( |
  825. |
  826. sync_do: [
  827. "Should also initialize linker, but for now just return LD_LIBRARY_PATH
  828. (as is required). %%%"
  829. o_selfStrToJavaStr: (0 os environmentAt: 'LD_LIBRARY_PATH'
  830. IfFail: [^ java_null]).
  831. ]).
  832. } | )
  833. bootstrap addSlotsTo: bootstrap stub -> 'globals' -> 'pep' -> 'nativeMethods' -> () From: ( | {
  834. 'Category: java\x7fCategory: lang\x7fCategory: Runtime\x7fModuleInfo: Module: pep_runtime InitialContents: FollowSlot'
  835. java_lang_Runtime_loadFileInternal_Ljava_lang_String: filename = ( |