home *** CD-ROM | disk | FTP | other *** search
/ The CDPD Public Domain Collection for CDTV 3 / CDPDIII.bin / pd / programming / gnusmalltalk / builtins.st < prev    next >
Text File  |  1992-02-15  |  16KB  |  996 lines

  1. "Smalltalk built in methods.  These are read in by the system initially, to 
  2. prepare the execution environment."
  3.  
  4. "======================================================================
  5. |
  6. | Copyright (C) 1990, 1991, 1992 Free Software Foundation, Inc.
  7. | Written by Steve Byrne.
  8. |
  9. | This file is part of GNU Smalltalk.
  10. |
  11. | GNU Smalltalk is free software; you can redistribute it and/or modify it
  12. | under the terms of the GNU General Public License as published by the Free
  13. | Software Foundation; either version 1, or (at your option) any later version.
  14. | GNU Smalltalk is distributed in the hope that it will be useful, but WITHOUT
  15. | ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS
  16. | FOR A PARTICULAR PURPOSE.  See the GNU General Public License for more
  17. | details.
  18. | You should have received a copy of the GNU General Public License along with
  19. | GNU Smalltalk; see the file COPYING.  If not, write to the Free Software
  20. | Foundation, 675 Mass Ave, Cambridge, MA 02139, USA.  
  21. |
  22.  ======================================================================"
  23.  
  24. "
  25. |     Change Log
  26. | ============================================================================
  27. | Author       Date       Change 
  28. | sbb         28 Nov 91      Added SystemDictionary byteCodeCounter.
  29. |
  30. | sbb          2 Nov 91      Fixed == and ~~ definitions for Integer to fail if
  31. |              the integers aren't = (including the case where they
  32. |              aren't both integers).  Used to retry:coercing: which
  33. |              lost badly.
  34. |
  35. | sbb         20 Oct 91      Added support for user level control of GC growth
  36. |              rate flags.
  37. |
  38. | sbb         22 Sep 91      Switched FileStream to returning nil on failure, so
  39. |              that higher level methods can chose to deal with
  40. |              failure.  This was due to a brilliant observation by
  41. |              Michael Richardson.  Now that higher level functions
  42. |              can handle failure, things like search paths, etc,
  43. |              can be trivially implemented.
  44. |
  45. | sbb          5 Jul 91      added fileInLine:fileName:at: to improve error
  46. |              reporting and recording of file position information
  47. |              for later browsing. 
  48. |
  49. | sbb          6 Jun 91      Switched declare and execution tracing from being
  50. |              direct primitives to a more general primitive
  51. |              mechanism.
  52. |
  53. | sbb         23 Mar 91      Added Integer primitives == and ~~ for more
  54. |              efficient operation.
  55. |
  56. | sbb          3 Aug 90      Added definition of CObject class alloc:.
  57. |
  58. | sbyrne     20 Apr 90      Added SystemDictionary debug to help out with
  59. |              DBX level debugging.
  60. |
  61. | sbyrne     15 Apr 90      Added sqrt primitive (I'm sure this was here before)
  62. |                         must have got lost during breaking out from builtins.
  63. |
  64. | sbyrne      7 Apr 90      Added declare tracing primitive.
  65. |
  66. | sbyrne     13 Jan 90      Experimental Class self-definition.
  67. |
  68. | sbyrne     19 Dec 89      Added filein primitive.
  69. |
  70. | sbyrne     12 Aug 89      Added process and semaphore builtins.
  71. |
  72. | sbyrne      6 Feb 89      Created.
  73. |
  74.  
  75. "
  76.  
  77.  
  78. !Integer methodsFor: 'built ins'!
  79.  
  80. + arg
  81.     <primitive: 1>
  82.     ^self retry: #+ coercing: arg
  83. !
  84.  
  85. - arg
  86.     <primitive: 2>
  87.     ^self retry: #- coercing: arg
  88. !
  89.  
  90. < arg
  91.     <primitive: 3>
  92.     ^self retry: #< coercing: arg
  93. !
  94.  
  95. > arg
  96.     <primitive: 4>
  97.     ^self retry: #> coercing: arg
  98. !
  99.  
  100. <= arg
  101.     <primitive: 5>
  102.     ^self retry: #<= coercing: arg
  103. !
  104.  
  105. >= arg
  106.     <primitive: 6>
  107.     ^self retry: #>= coercing: arg
  108. !
  109.  
  110. = arg
  111.     <primitive: 7>
  112.     ^self retry: #= coercing: arg
  113. !
  114.  
  115. == arg
  116.     <primitive: 7>
  117.     "if they aren't = by the primitive, they're not =="
  118.     ^false
  119. !
  120.  
  121. ~= arg
  122.     <primitive: 8>
  123.     ^self retry: #~= coercing: arg
  124. !
  125.  
  126. ~~ arg
  127.     <primitive: 8>
  128.     ^false            "see comment above for =="
  129. !
  130.  
  131. * arg
  132.     <primitive: 9>
  133.     ^self retry: #* coercing: arg
  134. !
  135.  
  136. / arg
  137.     <primitive: 10>
  138.     " Create a Fraction when it's appropriate "
  139.     ^self retry: #/ coercing: arg
  140. !
  141.  
  142. \\ arg
  143.     <primitive: 11>
  144.     ^self retry: #\\ coercing: arg
  145. !
  146.  
  147. // arg
  148.     <primitive: 12>
  149.     ^self retry: #// coercing: arg
  150. !
  151.  
  152. quo: arg
  153.     <primitive: 13>
  154.     ^self retry: #quo: coercing: arg
  155. !
  156.  
  157. bitAnd: arg
  158.     <primitive: 14>
  159. !
  160.  
  161. bitOr: arg
  162.     <primitive: 15>
  163. !
  164.  
  165. bitXor: arg
  166.     <primitive: 16>
  167. !
  168.  
  169. bitShift: arg
  170.     <primitive: 17>
  171. !
  172.  
  173. asFloat
  174.     <primitive: 40>
  175. !
  176.  
  177. asObject
  178.     <primitive: 76>
  179.     self primitiveFailed
  180. !
  181.  
  182. asObjectNoFail
  183.     <primitive: 76>
  184.  
  185. !!
  186.  
  187.  
  188.  
  189. !Float methodsFor: 'built ins'!
  190.  
  191. + arg
  192.     <primitive: 41>
  193.     ^self retry: #+ coercing: arg
  194. !
  195.  
  196. - arg
  197.     <primitive: 42>
  198.     ^self retry: #- coercing: arg
  199. !
  200.  
  201. < arg
  202.     <primitive: 43>
  203.     ^self retry: #< coercing: arg
  204. !
  205.  
  206. > arg
  207.     <primitive: 44>
  208.     ^self retry: #> coercing: arg
  209. !
  210.  
  211. <= arg
  212.     <primitive: 45>
  213.     ^self retry: #<= coercing: arg
  214. !
  215.  
  216. >= arg
  217.     <primitive: 46>
  218.     ^self retry: #>= coercing: arg
  219. !
  220.  
  221. = arg
  222.     <primitive: 47>
  223.     ^self retry: #= coercing: arg
  224. !
  225.  
  226. ~= arg
  227.     <primitive: 48>
  228.     ^self retry: #~= coercing: arg
  229. !
  230.  
  231. * arg
  232.     <primitive: 49>
  233.     ^self retry: #* coercing: arg
  234. !
  235.  
  236. / arg
  237.     <primitive: 50>
  238.     ^self retry: #/ coercing: arg
  239. !
  240.  
  241. truncated
  242.     <primitive: 51>
  243. !
  244.  
  245. fractionPart
  246.     <primitive: 52>
  247. !
  248.  
  249. exponent
  250.     <primitive: 53>
  251. !
  252.  
  253. timesTwoPower: arg
  254.     <primitive: 54>
  255. !
  256.  
  257. exp
  258.     <primitive: 160>
  259. !
  260.  
  261. ln
  262.     <primitive: 161>
  263. !
  264.  
  265. raisedTo: aNumber
  266.     <primitive: 164>
  267.     ^self retry: #raisedTo: coercing: aNumber
  268. !
  269.  
  270. sqrt
  271.     <primitive: 166>
  272.     ^self error: 'Primitive Sqrt failed!!!'
  273. !
  274.  
  275. ceiling
  276.     <primitive: 168>
  277. !
  278.  
  279. floor
  280.     <primitive: 169>
  281. !
  282.  
  283. sin
  284.     <primitive: 176>
  285. !
  286.  
  287. cos
  288.     <primitive: 177>
  289. !
  290.  
  291. tan
  292.     <primitive: 178>
  293. !
  294.  
  295. arcSin
  296.     <primitive: 179>
  297. !
  298.  
  299. arcCos
  300.     <primitive: 180>
  301. !
  302.  
  303. arcTan
  304.     <primitive: 181>
  305. !!
  306.  
  307.  
  308.  
  309. !Object methodsFor: 'built ins'!
  310.  
  311. at: index
  312.     <primitive: 60>
  313. !
  314.  
  315. basicAt: index
  316.     <primitive: 60>
  317. !
  318.  
  319. at: index put: value
  320.     <primitive: 61>
  321. !
  322.  
  323. basicAt: index put: value
  324.     <primitive: 61>
  325. !
  326.  
  327. size
  328.     <primitive: 62>
  329. !
  330.  
  331. basicSize
  332.     <primitive: 62>
  333. !
  334.  
  335. become: otherObject
  336.     <primitive: 72>
  337. !
  338.  
  339. instVarAt: index
  340.     <primitive: 73>
  341.     ^self primitiveFailed
  342. !
  343.  
  344. instVarAt: index put: value
  345.     <primitive: 74>
  346.     ^self primitiveFailed
  347. !
  348.  
  349. asOop
  350.     <primitive: 75>
  351. !
  352.  
  353. hash
  354.     <primitive: 75>
  355. !
  356.  
  357. nextInstance
  358.     <primitive: 78>
  359.     ^nil
  360. !
  361.  
  362. perform: selector
  363.     <primitive: 83>
  364. !
  365.  
  366. perform: selector with: arg1
  367.     <primitive: 83>
  368. !
  369.  
  370. perform: selector with: arg1 with: arg2
  371.     <primitive: 83>
  372. !
  373.  
  374. perform: selector with: arg1 with: arg2 with: arg3
  375.     <primitive: 83>
  376. !
  377.  
  378. perform: selector withArguments: argumentsArray
  379.     <primitive: 84>
  380. !
  381.  
  382. == arg
  383.     <primitive: 110>
  384. !
  385.  
  386. = arg
  387.     "The equality test is by default the same as that for equal objects"
  388.     <primitive: 110>
  389. !
  390.  
  391. class
  392.     <primitive: 111>
  393.     self primitiveFailed
  394. !
  395.  
  396. doesNotUnderstand: message
  397.     <primitive: 130>
  398. !
  399.  
  400. error: message
  401.     <primitive: 131>
  402. !
  403.  
  404. basicPrint
  405.     <primitive: 252>
  406. !
  407.  
  408. "### look these messages up to be sure"
  409.  
  410. primitiveFailed
  411.     self error: 'primitive operation failed'
  412. !
  413.  
  414. shouldNotImplement
  415.     self error: 'should not implement'
  416. !
  417.  
  418. subclassResponsibility
  419.     self error: 'the method is the responsibility of the subclass'
  420. !
  421.  
  422. notYetImplemented
  423.     self error: 'not yet implemented'
  424.  
  425. !!
  426.  
  427.  
  428.  
  429. !SystemDictionary methodsFor: 'builtins'!
  430.  
  431. quitPrimitive
  432.     <primitive: 113>
  433.     self primitiveFailed
  434. !
  435.  
  436. quitPrimitive: exitStatus
  437.     <primitive: 117>
  438.     ^self error: 'Integer expected, not ', exitStatus printString
  439. !
  440.  
  441. monitor: aBoolean
  442.     <primitive: 230>
  443.     self primitiveFailed
  444. !
  445.  
  446.  
  447. backtrace
  448.     "Prints the method invocation stack backtrace, as an aid to debugging"
  449.     <primitive: 140>
  450.     self primitiveFailed
  451. !
  452.  
  453. getTraceFlag: anIndex
  454.     "Returns a boolean value which is one of the interpreter's tracing flags"
  455.     <primitive: 141>
  456.     self primitiveFailed
  457. !
  458.  
  459. setTraceFlag: anIndex to: aBoolean
  460.     "Sets the value of one of the interpreter's tracing flags (indicated by
  461.      'anIndex') to the value aBoolean."
  462.     <primitive: 142>
  463.     self primitiveFailed
  464. !
  465.  
  466. spaceGrowRate
  467.     <primitive: 153>
  468.     ^self primitiveFailed
  469. !
  470.  
  471. spaceGrowRate: rate
  472.     <primitive: 154>
  473.     ^self primitiveFailed
  474. !
  475.  
  476. growThresholdPercent
  477.     <primitive: 155>
  478.     ^self primitiveFailed
  479. !
  480.  
  481. growThresholdPercent: growPercent
  482.     <primitive: 156>
  483.     ^self primitiveFailed
  484. !
  485.  
  486.  
  487. byteCodeCounter
  488.     <primitive: 231>
  489. !
  490.  
  491. snapshot
  492.     <primitive: 250>
  493. !
  494.  
  495. snapshot: aString
  496.     <primitive: 251>
  497. !
  498.  
  499. debug                "for DBX.  Set breakpoint in debug() and 
  500.                  invoke this primitive near where you want
  501.                  to stop"
  502.     <primitive: 232>
  503. !
  504.  
  505.  
  506. "==========================================================================
  507.  These are so useful throughout the loading of the kernel methods that I
  508.  make an exception here and put in real methods instead of just primitives.
  509.  "
  510.  
  511. executionTrace
  512.     ^self getTraceFlag: 1
  513. !
  514.  
  515. executionTrace: aBoolean
  516.     ^self setTraceFlag: 1 to: aBoolean
  517. !
  518.  
  519. declarationTrace
  520.     ^self getTraceFlag: 0
  521. !
  522.  
  523. declarationTrace: aBoolean
  524.     ^self setTraceFlag: 0 to: aBoolean
  525. !
  526.  
  527. verboseTrace
  528.     ^self getTraceFlag: 2
  529. !
  530.  
  531. verboseTrace: aBoolean
  532.     ^self setTraceFlag: 2 to: aBoolean
  533. !
  534.  
  535. gcMessage
  536.     ^self getTraceFlag: 3
  537. !
  538.  
  539. gcMessage: aBoolean 
  540.     ^self setTraceFlag: 3 to: aBoolean
  541. !!
  542.  
  543.  
  544.  
  545. !Behavior methodsFor: 'built ins'!
  546.  
  547. new
  548.     <primitive: 70>
  549. !
  550.  
  551. basicNew
  552.     <primitive: 70>
  553. !
  554.  
  555. new: numInstanceVariables
  556.     <primitive: 71>
  557. !
  558.  
  559. basicNew: numInstanceVariables
  560.     <primitive: 71>
  561. !
  562.  
  563. someInstance
  564.     <primitive: 77>
  565.     ^nil            "return nil on failure"
  566. !
  567.  
  568. methodsFor: category ifTrue: condition
  569.     <primitive: 151>
  570.     ^self primitiveFailed
  571. !
  572.  
  573. makeDescriptorFor: funcNameString 
  574.   returning: returnTypeSymbol 
  575.   withArgs: argsArray
  576.     <primitive: 249>
  577.     ^self primitiveFailed
  578. !
  579.  
  580. compileString: aString
  581.     <primitive: 235>
  582.     ^self primitiveFailed
  583. !
  584.  
  585. compileString: aString ifError: aBlock
  586.     <primitive: 236>
  587.     ^self primitiveFailed
  588. !!
  589.  
  590.  
  591.  
  592. !CompiledMethod class methodsFor: 'built ins'!
  593.  
  594. newMethod: numBytecodes header: anInteger
  595.     <primitive: 79>
  596.     ^self primitiveFailed
  597. !!
  598.  
  599.  
  600.  
  601. !CompiledMethod methodsFor: 'built ins'!
  602.  
  603. objectAt: index
  604.     <primitive: 68>
  605.     ^self primitiveFailed
  606. !
  607.  
  608. objectAt: index put: value
  609.     <primitive: 69>
  610.     ^self primitiveFailed
  611. !!
  612.  
  613.  
  614.  
  615. !MethodContext methodsFor: 'built ins'!
  616.  
  617. " Note: the name for this class in the book is 'ContextPart' "
  618.  
  619. blockCopy: block
  620.     <primitive: 80>
  621.  
  622. !!
  623.  
  624. !BlockContext methodsFor: 'built ins'!
  625.  
  626. blockCopy: block
  627.     <primitive: 80>
  628.     ^self primitiveFailed
  629. !
  630.  
  631. value
  632.     <primitive: 81>
  633.     ^self primitiveFailed
  634. !
  635.  
  636. value: arg1
  637.     <primitive: 81>
  638.     ^self primitiveFailed
  639. !
  640.  
  641. value: arg1 value: arg2
  642.     <primitive: 81>
  643.     ^self primitiveFailed
  644. !
  645.  
  646. value: arg1 value: arg2 value: arg3
  647.     <primitive: 81>
  648.     ^self primitiveFailed
  649. !
  650.  
  651. valueWithArguments: argArray
  652.     <primitive: 82>
  653.     ^self primitiveFailed
  654.  
  655. !!
  656.  
  657.  
  658. !ArrayedCollection methodsFor: 'built ins'!
  659.  
  660. size
  661.     <primitive: 62>
  662.  
  663. !!
  664.  
  665.  
  666. !String methodsFor: 'built ins'!
  667.  
  668. size
  669.     <primitive: 62>
  670.     ^self primitiveFailed
  671. !
  672.  
  673. at: index
  674.     <primitive: 63>
  675.     ^self primitiveFailed
  676. !
  677.  
  678. basicAt: index
  679.     <primitive: 63>
  680.     ^self primitiveFailed
  681. !
  682.  
  683. at: index put: value
  684.     <primitive: 64>
  685.     ^self primitiveFailed
  686. !
  687.  
  688. basicAt: index put: value
  689.     <primitive: 64>
  690.     ^self primitiveFailed
  691. !
  692.  
  693. replaceFrom: start to: stop withByteArray: byteArray startingAt: replaceStart
  694.     <primitive: 105>
  695.     ^self primitiveFailed
  696. !
  697.  
  698. primReplaceFrom: start to: stop with: replacementString 
  699.     startingAt: replaceStart    
  700.     <primitive: 105>
  701.     ^self primitiveFailed
  702.  
  703. !!
  704.  
  705.  
  706.  
  707. !Symbol class methodsFor: 'built ins'!
  708.  
  709. intern: aString
  710.     <primitive: 134>
  711.     ^self error: 'Attempted to intern non-string'
  712. !!
  713.  
  714.  
  715.  
  716. !Symbol methodsFor: 'built ins'!
  717.  
  718. hash
  719.     <primitive: 75>
  720.  
  721. !!
  722.  
  723.  
  724.  
  725. !Character class methodsFor: 'built ins'!
  726.  
  727. value: anInteger
  728.     "Returns the character object corresponding to anInteger.  Error if
  729.      anInteger is not an integer, or not in 0..255."
  730.      <primitive: 132>
  731.     ^self error: 'invalid argument type or integer out of range'
  732. !!
  733.  
  734.  
  735.  
  736. !Character methodsFor: 'built ins'!
  737.  
  738. = char
  739.     "Boolean return value; true if the characters are equal"
  740.     <primitive: 110>
  741. !
  742.  
  743. asciiValue
  744.     "Returns the integer value corresponding to self"
  745.     <primitive: 133>
  746. !!
  747.  
  748.  
  749.  
  750. !Dictionary class methodsFor: 'built ins'!
  751.  
  752. new
  753.    <primitive: 135>
  754.     ^self primitiveFailed
  755. !!
  756.  
  757.  
  758. !Dictionary methodsFor: 'built ins'!
  759.  
  760. at: key
  761.     <primitive: 128>
  762.     ^self primitiveFailed
  763. !
  764.  
  765. at: key put: value
  766.     <primitive: 129>
  767.     ^self primitiveFailed
  768.  
  769. ! !
  770.  
  771.  
  772.  
  773. !ByteArray methodsFor: 'built ins'!
  774.  
  775. replaceFrom: start to: stop withString: aString startingAt: srcIndex
  776.     <primitive: 105>
  777.     ^self primitiveFailed
  778. !
  779.  
  780. primReplaceFrom: start to: stop with: aByteArray startingAt: srcIndex
  781.     <primitive: 105>
  782.     ^self primitiveFailed
  783. ! !
  784.  
  785.  
  786.  
  787. !FileStream methodsFor: 'built ins'!
  788.  
  789. fileOp: ioFuncIndex
  790.     <primitive: 254>
  791.     ^nil
  792. !
  793.  
  794. fileOp: ioFuncIndex with: arg1
  795.     <primitive: 254>
  796.     ^nil
  797. !
  798.  
  799. fileOp: ioFuncIndex with: arg1 with: arg2
  800.     <primitive: 254>
  801.     ^nil
  802. !
  803.  
  804. fileIn
  805.     <primitive: 247>
  806.     ^self error: 'fileIn failed!!!'
  807. !
  808.  
  809. fileInLine: lineNum fileName: aString at: charPosInt
  810.     <primitive: 248>
  811.     ^self error: 'fileIn failed!!!'
  812. !!
  813.  
  814.  
  815.  
  816. !Memory class methodsFor: 'basic'!
  817.  
  818. addressOfOOP: anObject
  819.     "Returns the address of the OOP for anObject"
  820.     <primitive: 138>
  821. !
  822.  
  823. addressOf: anObject
  824.     "Returns the address of the actual object that anObject references"
  825.     <primitive: 139>
  826. !
  827.  
  828. type: aType at: anAddress
  829.     "Returns a particular type object from memory at anAddress"
  830.     <primitive: 145>
  831.     ^self primitiveFailed
  832. !
  833.  
  834. type: aType at: anAddress put: aValue
  835.     "Sets the memory location anAddress to aValue"
  836.     <primitive: 146>
  837.     ^self primitiveFailed
  838. !!
  839.  
  840.  
  841.  
  842. !ByteMemory class methodsFor: 'basic'!
  843.  
  844. at: address
  845.     "Returns the byte at address as an integer"
  846.     <primitive: 136>
  847. !
  848.  
  849. at: address put: value
  850.     "Sets the byte at ADDRESS (an integer) to be VALUE (INTEGER 0..255)"
  851.     <primitive: 137>
  852.  
  853. !!
  854.  
  855.  
  856.  
  857. !Time class methodsFor: 'builtins'!
  858.  
  859. secondClock
  860.     <primitive: 98>
  861.     ^self primitiveFailed
  862. !
  863.  
  864. millisecondClock
  865.     <primitive: 99>
  866.    ^self primitiveFailed
  867. !!
  868.  
  869.  
  870.  
  871. !Process methodsFor: 'builtins'!
  872.  
  873. resume
  874.     <primitive: 87>
  875.    ^self primitiveFailed
  876. !
  877.  
  878. suspend
  879.     <primitive: 88>
  880.    ^self primitiveFailed
  881. !!
  882.  
  883.  
  884.  
  885. !ProcessorScheduler methodsFor: 'timed invocation'!
  886.  
  887. signal: aSemaphore atMilliseconds: millis
  888.     " signal 'aSemaphore' after 'millis' milliseconds have elapsed" 
  889.     <primitive: 100>
  890.     ^self primitiveFailed
  891. !
  892.  
  893. signal: aSemaphore onInterrupt: anIntegerSignalNumber
  894.     <primitive: 152>
  895.     ^self primitiveFailed
  896. !!
  897.  
  898.  
  899.  
  900. !Semaphore methodsFor: 'builtins'!
  901.  
  902. "communication"
  903.  
  904. signal
  905.     <primitive: 85>
  906.     ^self primitiveFailed
  907. !
  908.  
  909. wait
  910.     <primitive: 86>
  911.     ^self primitiveFailed
  912. !!
  913.  
  914.  
  915.  
  916. !ClassDescription methodsFor: 'builtins'!
  917.  
  918. comment: aString
  919.     <primitive: 143>
  920.     "This method is present so that comment declarations can always work, even
  921.      before the real method is defined."
  922.  
  923. !!
  924.  
  925.  
  926.  
  927. !Class methodsFor: 'builtins'!
  928.  
  929. "These are stubs...they will be replaced with the appropriate class
  930. from Class.st.  These allow for Smalltalk type class declarations
  931. of the built-in classes, so that they may be edited and modified.  This
  932. mostly present to allow for future enhancement in which the Smalltalk source
  933. files take a more active role in the definition of the system, and the 
  934. C definition of the classes diminishes in importance."
  935.  
  936. subclass: classNameString
  937.   instanceVariableNames: stringInstVarNames
  938.   classVariableNames: stringOfClassVarNames
  939.   poolDictionaries: stringOfPoolNames
  940.   category: categoryNameString
  941.     ^nil
  942. !
  943.  
  944. variableSubclass: classNameString
  945.   instanceVariableNames: stringInstVarNames
  946.   classVariableNames: stringOfClassVarNames
  947.   poolDictionaries: stringOfPoolNames
  948.   category: categoryNameString
  949.     ^nil
  950. !
  951.  
  952. variableWordSubclass: classNameString
  953.   instanceVariableNames: stringInstVarNames
  954.   classVariableNames: stringOfClassVarNames
  955.   poolDictionaries: stringOfPoolNames
  956.   category: categoryNameString
  957.     ^nil
  958. !
  959.  
  960. variableByteSubclass: classNameString
  961.   instanceVariableNames: stringInstVarNames
  962.   classVariableNames: stringOfClassVarNames
  963.   poolDictionaries: stringOfPoolNames
  964.   category: categoryNameString
  965.     ^nil    
  966. !!
  967.  
  968.  
  969. !CObject class methodsFor: 'instance creation'!
  970.  
  971. alloc: nBytes
  972.     <primitive: 144>
  973.     ^self error: 'invalid argument'
  974. !!
  975.  
  976.  
  977.  
  978. !CObject methodsFor: 'C data access'!
  979.  
  980. at: anOffset type: aType
  981.     <primitive: 147>
  982.     ^self error: 'invalid argument(s)'
  983. !
  984.     
  985. at: anOffset put: aValue type: aType
  986.     <primitive: 148>
  987.     ^self error: 'invalid argument(s)'
  988. !
  989.     
  990. type
  991.     <primitive: 149>
  992.     ^self primitiveFailed
  993. !!
  994.