Hi, First load the latest http://www.squeaksource.com/MorphicsRecordNPlaypackage. Then for instance following fails if I evaluate it in a workspace: MorphicReplayDemoTest compile: 'testMethod self addMMEFrom: 1054@512 to: 1037@504. self addMMEFrom: 1037@504 to: 979@482. self addMMEFrom: 979@482 to: 905@464. self addMMEFrom: 905@464 to: 823@462. self addMMEFrom: 823@462 to: 745@482. self addMMEFrom: 745@482 to: 685@520. self addMMEFrom: 685@520 to: 651@559. self addMMEFrom: 651@559 to: 643@579. self addMMEFrom: 643@579 to: 653@579. self addMMEFrom: 653@579 to: 675@564. self addMMEFrom: 675@564 to: 810@452. self addMMEFrom: 810@452 to: 923@353. self addMMEFrom: 923@353 to: 1005@287. self addMMEFrom: 1005@287 to: 1052@257. self addMMEFrom: 1052@257 to: 1061@252. self addMMEFrom: 1061@252 to: 1059@259. self addMMEFrom: 1059@259 to: 998@314. self addMMEFrom: 998@314 to: 898@414. self addMMEFrom: 898@414 to: 827@502. self addMMEFrom: 827@502 to: 789@570. self addMMEFrom: 789@570 to: 792@610. self addMMEFrom: 792@610 to: 839@630. self addMMEFrom: 839@630 to: 929@620. self addMMEFrom: 929@620 to: 1039@579. self addMMEFrom: 1039@579 to: 1086@549. self addMMEFrom: 1086@549 to: 1158@447. self addMMEFrom: 1158@447 to: 1147@379. self addMMEFrom: 1147@379 to: 1066@377. self addMMEFrom: 1066@377 to: 930@416. self addMMEFrom: 930@416 to: 864@446. self addMMEFrom: 864@446 to: 734@530. self addMMEFrom: 734@530 to: 714@548. self addMMEFrom: 714@548 to: 734@546. self addMMEFrom: 734@546 to: 815@515. self addMMEFrom: 815@515 to: 875@491. self addMMEFrom: 875@491 to: 1065@407. self addMMEFrom: 1065@407 to: 1128@361. self addMMEFrom: 1128@361 to: 1142@343. self addMMEFrom: 1142@343 to: 1112@340. self addMMEFrom: 1112@340 to: 1064@349. self addMMEFrom: 1064@349 to: 864@416. self addMMEFrom: 864@416 to: 757@471. self addMMEFrom: 757@471 to: 705@511. self addMMEFrom: 705@511 to: 701@524. self addMMEFrom: 701@524 to: 743@528. self addMMEFrom: 743@528 to: 845@509. self addMMEFrom: 845@509 to: 914@493. self addMMEFrom: 914@493 to: 1101@446. self addMMEFrom: 1101@446 to: 1154@427. self addMMEFrom: 1154@427 to: 1163@423. self addMMEFrom: 1163@423 to: 1156@422. self addMMEFrom: 1156@422 to: 1129@424. self addMMEFrom: 1129@424 to: 923@449. self addMMEFrom: 923@449 to: 785@479. self addMMEFrom: 785@479 to: 689@503. self addMMEFrom: 689@503 to: 651@512. self addMMEFrom: 651@512 to: 650@512. self addMMEFrom: 650@512 to: 672@508. self addMMEFrom: 672@508 to: 773@492. self addMMEFrom: 773@492 to: 916@486. self addMMEFrom: 916@486 to: 1066@494. self addMMEFrom: 1066@494 to: 1175@508. self addMMEFrom: 1175@508 to: 1229@514. self addMMEFrom: 1229@514 to: 1232@514. self addMMEFrom: 1232@514 to: 1142@492. self addMMEFrom: 1142@492 to: 986@483. self addMMEFrom: 986@483 to: 810@498. self addMMEFrom: 810@498 to: 678@519. self addMMEFrom: 678@519 to: 637@523. self addMMEFrom: 637@523 to: 606@502. self addMMEFrom: 606@502 to: 659@442. self addMMEFrom: 659@442 to: 769@365. self addMMEFrom: 769@365 to: 911@316. self addMMEFrom: 911@316 to: 1052@318. self addMMEFrom: 1052@318 to: 1129@360. self addMMEFrom: 1129@360 to: 1153@403. self addMMEFrom: 1153@403 to: 1127@443. self addMMEFrom: 1127@443 to: 1015@491. self addMMEFrom: 1015@491 to: 850@536. self addMMEFrom: 850@536 to: 697@571. self addMMEFrom: 697@571 to: 642@578. self addMMEFrom: 642@578 to: 571@545. self addMMEFrom: 571@545 to: 604@485. self addMMEFrom: 604@485 to: 701@419. self addMMEFrom: 701@419 to: 843@383. self addMMEFrom: 843@383 to: 919@383. self addMMEFrom: 919@383 to: 1095@425. self addMMEFrom: 1095@425 to: 1126@443. self addMMEFrom: 1126@443 to: 1102@449. self addMMEFrom: 1102@449 to: 984@468. self addMMEFrom: 984@468 to: 829@509. self addMMEFrom: 829@509 to: 703@547. self addMMEFrom: 703@547 to: 637@555. self addMMEFrom: 637@555 to: 633@531. self addMMEFrom: 633@531 to: 694@468. self addMMEFrom: 694@468 to: 809@407. self addMMEFrom: 809@407 to: 946@380. self addMMEFrom: 946@380 to: 1011@378. self addMMEFrom: 1011@378 to: 1119@393. self addMMEFrom: 1119@393 to: 1110@393. self addMMEFrom: 1110@393 to: 1010@388. self addMMEFrom: 1010@388 to: 859@402. self addMMEFrom: 859@402 to: 727@433. self addMMEFrom: 727@433 to: 665@454. self addMMEFrom: 665@454 to: 663@461. self addMMEFrom: 663@461 to: 683@469. self addMMEFrom: 683@469 to: 837@492. self addMMEFrom: 837@492 to: 989@495. self addMMEFrom: 989@495 to: 1103@476. self addMMEFrom: 1103@476 to: 1153@433. self addMMEFrom: 1153@433 to: 1163@404. self addMMEFrom: 1163@404 to: 1147@307. self addMMEFrom: 1147@307 to: 1086@294. self addMMEFrom: 1086@294 to: 995@324. self addMMEFrom: 995@324 to: 935@357. self addMMEFrom: 935@357 to: 922@366. self addMMEFrom: 922@366 to: 925@370. self addMMEFrom: 925@370 to: 941@379. self addMMEFrom: 941@379 to: 974@389. self addMMEFrom: 974@389 to: 1010@399. self addMMEFrom: 1010@399 to: 1036@408. self addMMEFrom: 1036@408 to: 1052@414. self addMMEFrom: 1052@414 to: 1056@416. self addMMEFrom: 1056@416 to: 1061@418. self addMMEFrom: 1061@418 to: 1068@419. self addMMEFrom: 1068@419 to: 1078@418. self addMMEFrom: 1078@418 to: 1086@414. self addMMEFrom: 1086@414 to: 1089@411. self addMMEFrom: 1089@411 to: 1095@404. self addMMEFrom: 1095@404 to: 1097@404. self addMMEFrom: 1097@404 to: 1099@406. self addMMEFrom: 1099@406 to: 1100@407. self addMMEFrom: 1100@407 to: 1101@408. self addMMEFrom: 1101@408 to: 1101@409. self addMMEFrom: 1101@409 to: 1101@410. self addMMEFrom: 1101@410 to: 1102@411. self addMMEFrom: 1102@411 to: 1104@412. self addMMEFrom: 1104@412 to: 1106@411. self addMMEFrom: 1106@411 to: 1110@409. self addMMEFrom: 1110@409 to: 1112@408. self addMMEFrom: 1112@408 to: 1114@407. self addMMEFrom: 1114@407 to: 1115@408. self addMMEFrom: 1115@408 to: 1115@408. self addMMEFrom: 1115@408 to: 1115@407. MouseButtonEvent new. MouseButtonEvent new. self addMMEFrom: 1131@401 to: 1129@403. self addMMEFrom: 1129@403 to: 1121@408. self addMMEFrom: 1121@408 to: 1106@416. self addMMEFrom: 1106@416 to: 1084@426. self addMMEFrom: 1084@426 to: 1051@443. self addMMEFrom: 1051@443 to: 1019@470. self addMMEFrom: 1019@470 to: 995@504. self addMMEFrom: 995@504 to: 981@546. self addMMEFrom: 981@546 to: 980@592. self addMMEFrom: 980@592 to: 990@634. self addMMEFrom: 990@634 to: 1012@665. self addMMEFrom: 1012@665 to: 1043@680. self addMMEFrom: 1043@680 to: 1076@677. self addMMEFrom: 1076@677 to: 1132@658. self addMMEFrom: 1132@658 to: 1189@626. self addMMEFrom: 1189@626 to: 1205@606. self addMMEFrom: 1205@606 to: 1222@543. self addMMEFrom: 1222@543 to: 1219@504. self addMMEFrom: 1219@504 to: 1207@464. self addMMEFrom: 1207@464 to: 1190@425. self addMMEFrom: 1190@425 to: 1180@409. self addMMEFrom: 1180@409 to: 1140@387. self addMMEFrom: 1140@387 to: 1092@397. self addMMEFrom: 1092@397 to: 1044@424. self addMMEFrom: 1044@424 to: 1004@464. self addMMEFrom: 1004@464 to: 977@513. self addMMEFrom: 977@513 to: 965@565. self addMMEFrom: 965@565 to: 965@614. self addMMEFrom: 965@614 to: 977@656. self addMMEFrom: 977@656 to: 1001@689. self addMMEFrom: 1001@689 to: 1035@709. self addMMEFrom: 1035@709 to: 1067@714. self addMMEFrom: 1067@714 to: 1094@710. self addMMEFrom: 1094@710 to: 1219@673. self addMMEFrom: 1219@673 to: 1254@635. self addMMEFrom: 1254@635 to: 1269@594. self addMMEFrom: 1269@594 to: 1277@552. self addMMEFrom: 1277@552 to: 1277@530. self addMMEFrom: 1277@530 to: 1251@459. self addMMEFrom: 1251@459 to: 1215@418. self addMMEFrom: 1215@418 to: 1180@389. self addMMEFrom: 1180@389 to: 1143@377. self addMMEFrom: 1143@377 to: 1092@379. self addMMEFrom: 1092@379 to: 1041@397. self addMMEFrom: 1041@397 to: 1019@410. self addMMEFrom: 1019@410 to: 972@460. self addMMEFrom: 972@460 to: 955@499. self addMMEFrom: 955@499 to: 951@541. self addMMEFrom: 951@541 to: 954@580. self addMMEFrom: 954@580 to: 960@597. self addMMEFrom: 960@597 to: 991@639. self addMMEFrom: 991@639 to: 1027@657. self addMMEFrom: 1027@657 to: 1066@666. self addMMEFrom: 1066@666 to: 1122@665. self addMMEFrom: 1122@665 to: 1199@651. self addMMEFrom: 1199@651 to: 1245@625. self addMMEFrom: 1245@625 to: 1270@596. self addMMEFrom: 1270@596 to: 1284@565. self addMMEFrom: 1284@565 to: 1287@528. self addMMEFrom: 1287@528 to: 1275@486. self addMMEFrom: 1275@486 to: 1242@445. self addMMEFrom: 1242@445 to: 1204@412. self addMMEFrom: 1204@412 to: 1171@390. self addMMEFrom: 1171@390 to: 1126@383. self addMMEFrom: 1126@383 to: 1083@394. self addMMEFrom: 1083@394 to: 1040@420. self addMMEFrom: 1040@420 to: 1025@438. self addMMEFrom: 1025@438 to: 996@506. self addMMEFrom: 996@506 to: 992@555. self addMMEFrom: 992@555 to: 999@596. self addMMEFrom: 999@596 to: 1015@629. self addMMEFrom: 1015@629 to: 1027@641. self addMMEFrom: 1027@641 to: 1068@658. self addMMEFrom: 1068@658 to: 1115@655. self addMMEFrom: 1115@655 to: 1184@640. self addMMEFrom: 1184@640 to: 1234@616. self addMMEFrom: 1234@616 to: 1266@589. self addMMEFrom: 1266@589 to: 1290@555. self addMMEFrom: 1290@555 to: 1301@518. self addMMEFrom: 1301@518 to: 1296@474. self addMMEFrom: 1296@474 to: 1267@430. self addMMEFrom: 1267@430 to: 1223@392. self addMMEFrom: 1223@392 to: 1187@370. self addMMEFrom: 1187@370 to: 1172@366. self addMMEFrom: 1172@366 to: 1115@375. self addMMEFrom: 1115@375 to: 1076@397. self addMMEFrom: 1076@397 to: 1046@429. self addMMEFrom: 1046@429 to: 1027@468. self addMMEFrom: 1027@468 to: 1022@489. self addMMEFrom: 1022@489 to: 1023@545. self addMMEFrom: 1023@545 to: 1033@567. self addMMEFrom: 1033@567 to: 1061@590. self addMMEFrom: 1061@590 to: 1104@603. self addMMEFrom: 1104@603 to: 1165@605. self addMMEFrom: 1165@605 to: 1220@593. self addMMEFrom: 1220@593 to: 1258@571. self addMMEFrom: 1258@571 to: 1284@543. self addMMEFrom: 1284@543 to: 1298@509. self addMMEFrom: 1298@509 to: 1299@466. self addMMEFrom: 1299@466 to: 1276@414. self addMMEFrom: 1276@414 to: 1255@390. self addMMEFrom: 1255@390 to: 1189@340. self addMMEFrom: 1189@340 to: 1148@334. self addMMEFrom: 1148@334 to: 1094@346. self addMMEFrom: 1094@346 to: 1051@373. self addMMEFrom: 1051@373 to: 1021@412. self addMMEFrom: 1021@412 to: 1006@457. self addMMEFrom: 1006@457 to: 1002@506. self addMMEFrom: 1002@506 to: 1006@557. self addMMEFrom: 1006@557 to: 1012@581. self addMMEFrom: 1012@581 to: 1041@637. self addMMEFrom: 1041@637 to: 1070@657. self addMMEFrom: 1070@657 to: 1127@660. self addMMEFrom: 1127@660 to: 1209@644. self addMMEFrom: 1209@644 to: 1234@630. self addMMEFrom: 1234@630 to: 1284@569. self addMMEFrom: 1284@569 to: 1302@521. self addMMEFrom: 1302@521 to: 1304@466. self addMMEFrom: 1304@466 to: 1286@410. self addMMEFrom: 1286@410 to: 1247@369. self addMMEFrom: 1247@369 to: 1208@347. self addMMEFrom: 1208@347 to: 1196@342. self addMMEFrom: 1196@342 to: 1170@346. self addMMEFrom: 1170@346 to: 1151@356. self addMMEFrom: 1151@356 to: 1137@363. self addMMEFrom: 1137@363 to: 1133@366. self addMMEFrom: 1133@366 to: 1133@366. self addMMEFrom: 1133@366 to: 1135@372. self addMMEFrom: 1135@372 to: 1133@381. self addMMEFrom: 1133@381 to: 1128@393. self addMMEFrom: 1128@393 to: 1126@399. self addMMEFrom: 1126@399 to: 1125@401. self addMMEFrom: 1125@401 to: 1125@401. self addMMEFrom: 1125@401 to: 1125@400. self addMMEFrom: 1125@400 to: 1124@401. self addMMEFrom: 1124@401 to: 1124@403. self addMMEFrom: 1124@403 to: 1124@404. self addMMEFrom: 1124@404 to: 1124@405. self addMMEFrom: 1124@405 to: 1124@404. MouseButtonEvent new. MouseButtonEvent new. ' These are autogenerated contents I want to export as a test case. The strange thing is that, if I manually create the testMethod using the system browser, and paste the content in it; it works fine. Kind Regards, Bart 2009/12/21 Eliot Miranda <eliot.miranda@gmail.com>
Hi Bart,
I still want to take a look at this specific case because the compiler should produce a proper error message, not an internal error. So could you please package it up as a reproducible case, or email me the full string that fails?
TIA
2009/12/20 Bart Gauquie <bart.gauquie@gmail.com>
Dear all,
I'm developing code which generates a method content, compiles it and adds it to an existing class. I compile the message using #compile: message: for instance:
MorphicReplayDemoTest compile: ' testMethod self addMMEFrom: 1054@512 to: 1037@504. self addMMEFrom: 651@559 to: 643@579. '.
This works fine. However if the contents of the method is too long; for instance: if the self addMMEFrom: 1054@512 to: 1037@504. is repeated around 250 times; I get following error (see stack below)
The strange thing is that if I manually add that method using the editor and paste it, it works just fine. I even tested up to 5000 lines of code; its slow, but its working.
Any ideas how to solve this?
Thanks,
Bart
I'm using Pharo 1.0 rc update: 10502; using Ubuntu 9.10, using vm pharo-vm-0.15.2f-linux.
THERE_BE_DRAGONS_HERE MessageNotUnderstood: receiver of "<" is nil 20 December 2009 8:17:14 pm
VM: unix - i686 - linux-gnu - Pharo0.1 of 16 May 2008 [latest update: #10074] Image: PharoCore1.0rc1 [Latest update: #10502]
SecurityManager state: Restricted: false FileAccess: true SocketAccess: true Working Dir /home/gauquiebart/Smalltalk/Pharo/Images/Pharo 1.0 Playground Image Trusted Dir /home/gauquiebart/Smalltalk/Pharo/Images/Pharo 1.0 Playground Image/secure Untrusted Dir /home/gauquiebart/Smalltalk/Pharo/Images/Pharo 1.0 Playground Image/My Squeak
UndefinedObject(Object)>>doesNotUnderstand: #< Receiver: nil Arguments and temporary variables: aMessage: < 0 exception: MessageNotUnderstood: receiver of "<" is nil resumeValue: nil Receiver's instance variables: nil
EncoderForV3PlusClosures(EncoderForV3)>>genPushLiteral: Receiver: {an EncoderForV3PlusClosures} Arguments and temporary variables: literalIndex: nil Receiver's instance variables: comment: nil pc: nil scopeTable: a Dictionary('false'->{false} 'nil'->{nil} 'recording'->{recording}...etc... nTemps: 0 supered: false requestor: nil class: MorphicReplayDemoTest selector: #testMethod literalStream: a WriteStream {#addMMEFrom:to:. 1054. 512. 1037. 504. 979. 482. ...etc... selectorSet: a Dictionary(#*->{*} #+->{+} #-->{-} #/->{/} #'//'->{//} #<->{<} #...etc... litIndSet: a Dictionary(#MouseButtonEvent->MouseButtonEvent->{MouseButtonEvent}...etc... litSet: a LiteralDictionary(size 402) sourceRanges: a Dictionary(size 853) globalSourceRanges: an OrderedCollection({'MouseButtonEvent'. (5763 to: 5778). ...etc... addedSelectorAndMethodClassLiterals: false stream: {an EncoderForV3PlusClosures} position: 0 rootNode: testMethod self addMMEFrom: 1054 @ 512 to: 1037 @ 504. self addMMEF...etc... blockExtentsToLocals: nil
EncoderForV3PlusClosures(BytecodeEncoder)>>sizeOpcodeSelector:withArguments: Receiver: {an EncoderForV3PlusClosures} Arguments and temporary variables: genSelector: #genPushLiteral: args: #(nil) Receiver's instance variables: comment: nil pc: nil scopeTable: a Dictionary('false'->{false} 'nil'->{nil} 'recording'->{recording}...etc... nTemps: 0 supered: false requestor: nil class: MorphicReplayDemoTest selector: #testMethod literalStream: a WriteStream {#addMMEFrom:to:. 1054. 512. 1037. 504. 979. 482. ...etc... selectorSet: a Dictionary(#*->{*} #+->{+} #-->{-} #/->{/} #'//'->{//} #<->{<} #...etc... litIndSet: a Dictionary(#MouseButtonEvent->MouseButtonEvent->{MouseButtonEvent}...etc... litSet: a LiteralDictionary(size 402) sourceRanges: a Dictionary(size 853) globalSourceRanges: an OrderedCollection({'MouseButtonEvent'. (5763 to: 5778). ...etc... addedSelectorAndMethodClassLiterals: false stream: {an EncoderForV3PlusClosures} position: 0 rootNode: testMethod self addMMEFrom: 1054 @ 512 to: 1037 @ 504. self addMMEF...etc... blockExtentsToLocals: nil
EncoderForV3PlusClosures(BytecodeEncoder)>>sizePushLiteral: Receiver: {an EncoderForV3PlusClosures} Arguments and temporary variables: literalIndex: nil Receiver's instance variables: comment: nil pc: nil scopeTable: a Dictionary('false'->{false} 'nil'->{nil} 'recording'->{recording}...etc... nTemps: 0 supered: false requestor: nil class: MorphicReplayDemoTest selector: #testMethod literalStream: a WriteStream {#addMMEFrom:to:. 1054. 512. 1037. 504. 979. 482. ...etc... selectorSet: a Dictionary(#*->{*} #+->{+} #-->{-} #/->{/} #'//'->{//} #<->{<} #...etc... litIndSet: a Dictionary(#MouseButtonEvent->MouseButtonEvent->{MouseButtonEvent}...etc... litSet: a LiteralDictionary(size 402) sourceRanges: a Dictionary(size 853) globalSourceRanges: an OrderedCollection({'MouseButtonEvent'. (5763 to: 5778). ...etc... addedSelectorAndMethodClassLiterals: false stream: {an EncoderForV3PlusClosures} position: 0 rootNode: testMethod self addMMEFrom: 1054 @ 512 to: 1037 @ 504. self addMMEF...etc... blockExtentsToLocals: nil
LiteralNode>>sizeCodeForValue: Receiver: {397} Arguments and temporary variables: encoder: {an EncoderForV3PlusClosures} Receiver's instance variables: comment: nil pc: nil key: 397 code: -3 index: nil
[] in MessageNode>>sizeCodeForValue: Receiver: {1092 @ 397} Arguments and temporary variables: <<error during printing> Receiver's instance variables: comment: nil pc: nil receiver: {1092} selector: {@} precedence: 2 special: 0 arguments: #({397}) sizes: #(nil) equalNode: nil caseErrorNode: nil
Array(SequenceableCollection)>>collect: Receiver: #({397}) Arguments and temporary variables: aBlock: [closure] in MessageNode>>sizeCodeForValue: newCollection: #(nil) index: 1 indexLimiT: 1 Receiver's instance variables: #({397})
MessageNode>>sizeCodeForValue: Receiver: {1092 @ 397} Arguments and temporary variables: <<error during printing> Receiver's instance variables: comment: nil pc: nil receiver: {1092} selector: {@} precedence: 2 special: 0 arguments: #({397}) sizes: #(nil) equalNode: nil caseErrorNode: nil
[] in MessageNode>>sizeCodeForValue: Receiver: {self addMMEFrom: 1140 @ 387 to: 1092 @ 397} Arguments and temporary variables: <<error during printing> Receiver's instance variables: comment: nil pc: nil receiver: {self} selector: {addMMEFrom:to:} precedence: 3 special: 0 arguments: an OrderedCollection({1140 @ 387} {1092 @ 397}) sizes: #(nil nil) equalNode: nil caseErrorNode: nil
OrderedCollection>>collect: Receiver: an OrderedCollection({1140 @ 387} {1092 @ 397}) Arguments and temporary variables: aBlock: [closure] in MessageNode>>sizeCodeForValue: newCollection: an OrderedCollection(7) index: 4 Receiver's instance variables: array: an Array(nil nil {1140 @ 387} {1092 @ 397} nil nil nil nil nil nil) firstIndex: 3 lastIndex: 4
MessageNode>>sizeCodeForValue: Receiver: {self addMMEFrom: 1140 @ 387 to: 1092 @ 397} Arguments and temporary variables: <<error during printing> Receiver's instance variables: comment: nil pc: nil receiver: {self} selector: {addMMEFrom:to:} precedence: 3 special: 0 arguments: an OrderedCollection({1140 @ 387} {1092 @ 397}) sizes: #(nil nil) equalNode: nil caseErrorNode: nil
MessageNode(ParseNode)>>sizeCodeForEffect: Receiver: {self addMMEFrom: 1140 @ 387 to: 1092 @ 397} Arguments and temporary variables: encoder: {an EncoderForV3PlusClosures} Receiver's instance variables: comment: nil pc: nil receiver: {self} selector: {addMMEFrom:to:} precedence: 3 special: 0 arguments: an OrderedCollection({1140 @ 387} {1092 @ 397}) sizes: #(nil nil) equalNode: nil caseErrorNode: nil
MessageNode>>sizeCodeForEffect: Receiver: {self addMMEFrom: 1140 @ 387 to: 1092 @ 397} Arguments and temporary variables: encoder: {an EncoderForV3PlusClosures} Receiver's instance variables: comment: nil pc: nil receiver: {self} selector: {addMMEFrom:to:} precedence: 3 special: 0 arguments: an OrderedCollection({1140 @ 387} {1092 @ 397}) sizes: #(nil nil) equalNode: nil caseErrorNode: nil
BlockNode>>sizeCodeExceptLast: Receiver: {[self addMMEFrom: 1054 @ 512 to: 1037 @ 504. self addMMEFrom: 1037 @ 504 to: 979 @ 482. ...etc... Arguments and temporary variables: encoder: {an EncoderForV3PlusClosures} codeSize: 2564 i: 169 statement: {self addMMEFrom: 1140 @ 387 to: 1092 @ 397} iLimiT: 287 Receiver's instance variables: comment: nil pc: nil arguments: #() statements: an OrderedCollection({self addMMEFrom: 1054 @ 512 to: 1037 @ 504} {...etc... returns: true nArgsNode: nil size: nil remoteCopyNode: nil temporaries: an OrderedCollection() optimized: false actualScopeIfOptimized: nil blockExtent: (0 to: 2) remoteTempNode: nil copiedValues: nil closureCreationNode: nil startOfLastStatement: 11519
BlockNode>>sizeCodeForEvaluatedValue: Receiver: {[self addMMEFrom: 1054 @ 512 to: 1037 @ 504. self addMMEFrom: 1037 @ 504 to: 979 @ 482. ...etc... Arguments and temporary variables: encoder: {an EncoderForV3PlusClosures} Receiver's instance variables: comment: nil pc: nil arguments: #() statements: an OrderedCollection({self addMMEFrom: 1054 @ 512 to: 1037 @ 504} {...etc... returns: true nArgsNode: nil size: nil remoteCopyNode: nil temporaries: an OrderedCollection() optimized: false actualScopeIfOptimized: nil blockExtent: (0 to: 2) remoteTempNode: nil copiedValues: nil closureCreationNode: nil startOfLastStatement: 11519
BytecodeAgnosticMethodNode>>generate: Receiver: testMethod self addMMEFrom: 1054 @ 512 to: 1037 @ 504. self addMMEFrom: 1037 @ 504 to: 9...etc... Arguments and temporary variables: trailer: #(0 0 0 0) primErrNode: nil blkSize: nil nLits: nil literals: nil stack: nil method: nil locals: nil lit: nil Receiver's instance variables: comment: nil pc: nil selectorOrFalse: #testMethod precedence: 1 arguments: #() block: {[self addMMEFrom: 1054 @ 512 to: 1037 @ 504. self addMMEFrom: 1037 @ 5...etc... primitive: 0 encoder: {an EncoderForV3PlusClosures} temporaries: #() properties: an AdditionalMethodState sourceText: 'testMethod self addMMEFrom: 1054@512 to: 1037@504. self addMMEFr...etc... locationCounter: 3 localsPool: an IdentitySet()
CompiledMethodWithNode class>>generateMethodFromNode:trailer: Receiver: CompiledMethodWithNode Arguments and temporary variables: aMethodNode: testMethod self addMMEFrom: 1054 @ 512 to: 1037 @ 504. self addM...etc... bytes: #(0 0 0 0) Receiver's instance variables: superclass: Object methodDict: a MethodDictionary(#method->a CompiledMethod(650: CompiledMethodWit...etc... format: 134 instanceVariables: #('node' 'method') organization: ('accessing' method node selector) ('private' method: node:)
subclasses: nil name: #CompiledMethodWithNode classPool: nil sharedPools: nil environment: Smalltalk category: #'Compiler-Support' traitComposition: nil localSelectors: nil
MorphicReplayDemoTest class(Behavior)>>compile:classified:notifying:trailer:ifFail: Receiver: MorphicReplayDemoTest Arguments and temporary variables: code: 'testMethod self addMMEFrom: 1054@512 to: 1037@504. self addMMEFrom: 10...etc... category: #'as yet unclassified' requestor: nil bytes: #(0 0 0 0) failBlock: [closure] in MorphicReplayDemoTest class(ClassDescription)>>compile:...etc... methodNode: testMethod self addMMEFrom: 1054 @ 512 to: 1037 @ 504. self addMM...etc... Receiver's instance variables: superclass: AbstractReplayTestCase methodDict: a MethodDictionary(#testMethod->a CompiledMethod(1191: MorphicRepla...etc... format: 134 instanceVariables: nil organization: ('tests' testMethod)
subclasses: nil name: #MorphicReplayDemoTest classPool: nil sharedPools: nil environment: Smalltalk category: #'MorphicsRecordNPlay-Model' traitComposition: nil localSelectors: nil history: a Dictionary(#errors->a Set() #failures->a Set() #passed->a Set(#testM...etc...
MorphicReplayDemoTest class(ClassDescription)>>compile:classified:withStamp:notifying:logSource: Receiver: MorphicReplayDemoTest Arguments and temporary variables: text: 'testMethod self addMMEFrom: 1054@512 to: 1037@504. self addMMEFrom: 10...etc... category: #'as yet unclassified' changeStamp: 'BartGauquie 12/20/2009 20:17' requestor: nil logSource: true methodAndNode: nil Receiver's instance variables: superclass: AbstractReplayTestCase methodDict: a MethodDictionary(#testMethod->a CompiledMethod(1191: MorphicRepla...etc... format: 134 instanceVariables: nil organization: ('tests' testMethod)
subclasses: nil name: #MorphicReplayDemoTest classPool: nil sharedPools: nil environment: Smalltalk category: #'MorphicsRecordNPlay-Model' traitComposition: nil localSelectors: nil history: a Dictionary(#errors->a Set() #failures->a Set() #passed->a Set(#testM...etc...
MorphicReplayDemoTest class(ClassDescription)>>compile:classified:withStamp:notifying: Receiver: MorphicReplayDemoTest Arguments and temporary variables: text: 'testMethod self addMMEFrom: 1054@512 to: 1037@504. self addMMEFrom: 10...etc... category: #'as yet unclassified' changeStamp: 'BartGauquie 12/20/2009 20:17' requestor: nil Receiver's instance variables: superclass: AbstractReplayTestCase methodDict: a MethodDictionary(#testMethod->a CompiledMethod(1191: MorphicRepla...etc... format: 134 instanceVariables: nil organization: ('tests' testMethod)
subclasses: nil name: #MorphicReplayDemoTest classPool: nil sharedPools: nil environment: Smalltalk category: #'MorphicsRecordNPlay-Model' traitComposition: nil localSelectors: nil history: a Dictionary(#errors->a Set() #failures->a Set() #passed->a Set(#testM...etc...
MorphicReplayDemoTest class(ClassDescription)>>compile:classified:notifying: Receiver: MorphicReplayDemoTest Arguments and temporary variables: text: 'testMethod self addMMEFrom: 1054@512 to: 1037@504. self addMMEFrom: 10...etc... category: #'as yet unclassified' requestor: nil stamp: 'BartGauquie 12/20/2009 20:17' Receiver's instance variables: superclass: AbstractReplayTestCase methodDict: a MethodDictionary(#testMethod->a CompiledMethod(1191: MorphicRepla...etc... format: 134 instanceVariables: nil organization: ('tests' testMethod)
subclasses: nil name: #MorphicReplayDemoTest classPool: nil sharedPools: nil environment: Smalltalk category: #'MorphicsRecordNPlay-Model' traitComposition: nil localSelectors: nil history: a Dictionary(#errors->a Set() #failures->a Set() #passed->a Set(#testM...etc...
MorphicReplayDemoTest class(ClassDescription)>>compile:notifying: Receiver: MorphicReplayDemoTest Arguments and temporary variables: code: 'testMethod self addMMEFrom: 1054@512 to: 1037@504. self addMMEFrom: 10...etc... requestor: nil Receiver's instance variables: superclass: AbstractReplayTestCase methodDict: a MethodDictionary(#testMethod->a CompiledMethod(1191: MorphicRepla...etc... format: 134 instanceVariables: nil organization: ('tests' testMethod)
subclasses: nil name: #MorphicReplayDemoTest classPool: nil sharedPools: nil environment: Smalltalk category: #'MorphicsRecordNPlay-Model' traitComposition: nil localSelectors: nil history: a Dictionary(#errors->a Set() #failures->a Set() #passed->a Set(#testM...etc...
MorphicReplayDemoTest class(Behavior)>>compile: Receiver: MorphicReplayDemoTest Arguments and temporary variables: code: 'testMethod self addMMEFrom: 1054@512 to: 1037@504. self addMMEFrom: 10...etc... Receiver's instance variables: superclass: AbstractReplayTestCase methodDict: a MethodDictionary(#testMethod->a CompiledMethod(1191: MorphicRepla...etc... format: 134 instanceVariables: nil organization: ('tests' testMethod)
subclasses: nil name: #MorphicReplayDemoTest classPool: nil sharedPools: nil environment: Smalltalk category: #'MorphicsRecordNPlay-Model' traitComposition: nil localSelectors: nil history: a Dictionary(#errors->a Set() #failures->a Set() #passed->a Set(#testM...etc...
ByteString>>DoIt Receiver: 'testMethod self addMMEFrom: 1054@512 to: 1037@504. self addMMEFrom: 1037@504 to: 979@48...etc... Arguments and temporary variables:
Receiver's instance variables: 'testMethod self addMMEFrom: 1054@512 to: 1037@504. self addMMEFrom: 1037@504 to: 979@48...etc...
Compiler>>evaluate:in:to:notifying:ifFail:logged: Receiver: a Compiler Arguments and temporary variables: textOrStream: a ReadWriteStream 'MorphicReplayDemoTest compile: self.' aContext: nil receiver: 'testMethod self addMMEFrom: 1054@512 to: 1037@504. self addMMEFrom...etc... aRequestor: a TextMorphEditor failBlock: [closure] in [] in TextMorphEditor(ParagraphEditor)>>evaluateSelecti...etc... logFlag: true methodNode: DoIt ^ MorphicReplayDemoTest compile: self method: a CompiledMethod(2378: ByteString>>DoIt) value: nil toLog: nil itsSelection: nil itsSelectionString: nil Receiver's instance variables: sourceStream: a ReadWriteStream 'MorphicReplayDemoTest compile: self.' requestor: a TextMorphEditor class: ByteString category: nil context: nil parser: a Parser
[] in TextMorphEditor(ParagraphEditor)>>evaluateSelection Receiver: a TextMorphEditor Arguments and temporary variables: rcvr: 'testMethod self addMMEFrom: 1054@512 to: 1037@504. self addMMEFrom: 10...etc... ctxt: nil Receiver's instance variables: model: a NewInspector paragraph: a MultiNewParagraph startBlock: a CharacterBlock with index 39 and rectangle 103@16 corner: 103@32 ...etc... stopBlock: a CharacterBlock with index 1 and character $M and rectangle 0@0 cor...etc... beginTypeInBlock: nil emphasisHere: an Array(a TextFontChange font: 2) initialText: a Text for 'MorphicReplayDemoTest compile: self ' selectionShowing: false otherInterval: (38 to: 38) lastParentLocation: nil morph: a TextMorphForEditView(3730) oldInterval: nil pivotBlock: nil
BlockClosure>>on:do: Receiver: [closure] in TextMorphEditor(ParagraphEditor)>>evaluateSelection Arguments and temporary variables: exception: OutOfScopeNotification handlerAction: [closure] in TextMorphEditor(ParagraphEditor)>>evaluateSelection...etc... handlerActive: true Receiver's instance variables: outerContext: TextMorphEditor(ParagraphEditor)>>evaluateSelection startpc: 116 numArgs: 0
TextMorphEditor(ParagraphEditor)>>evaluateSelection Receiver: a TextMorphEditor Arguments and temporary variables: result: nil rcvr: 'testMethod self addMMEFrom: 1054@512 to: 1037@504. self addMMEFrom: 10...etc... ctxt: nil Receiver's instance variables: model: a NewInspector paragraph: a MultiNewParagraph startBlock: a CharacterBlock with index 39 and rectangle 103@16 corner: 103@32 ...etc... stopBlock: a CharacterBlock with index 1 and character $M and rectangle 0@0 cor...etc... beginTypeInBlock: nil emphasisHere: an Array(a TextFontChange font: 2) initialText: a Text for 'MorphicReplayDemoTest compile: self ' selectionShowing: false otherInterval: (38 to: 38) lastParentLocation: nil morph: a TextMorphForEditView(3730) oldInterval: nil pivotBlock: nil
TextMorphEditor(ParagraphEditor)>>doIt Receiver: a TextMorphEditor Arguments and temporary variables:
Receiver's instance variables: model: a NewInspector paragraph: a MultiNewParagraph startBlock: a CharacterBlock with index 39 and rectangle 103@16 corner: 103@32 ...etc... stopBlock: a CharacterBlock with index 1 and character $M and rectangle 0@0 cor...etc... beginTypeInBlock: nil emphasisHere: an Array(a TextFontChange font: 2) initialText: a Text for 'MorphicReplayDemoTest compile: self ' selectionShowing: false otherInterval: (38 to: 38) lastParentLocation: nil morph: a TextMorphForEditView(3730) oldInterval: nil pivotBlock: nil
[] in TextMorphEditor(ParagraphEditor)>>doIt: Receiver: a TextMorphEditor Arguments and temporary variables:
Receiver's instance variables: model: a NewInspector paragraph: a MultiNewParagraph startBlock: a CharacterBlock with index 39 and rectangle 103@16 corner: 103@32 ...etc... stopBlock: a CharacterBlock with index 1 and character $M and rectangle 0@0 cor...etc... beginTypeInBlock: nil emphasisHere: an Array(a TextFontChange font: 2) initialText: a Text for 'MorphicReplayDemoTest compile: self ' selectionShowing: false otherInterval: (38 to: 38) lastParentLocation: nil morph: a TextMorphForEditView(3730) oldInterval: nil pivotBlock: nil
TextMorphEditor(ParagraphEditor)>>terminateAndInitializeAround: Receiver: a TextMorphEditor Arguments and temporary variables: aBlock: [closure] in TextMorphEditor(ParagraphEditor)>>doIt: Receiver's instance variables: model: a NewInspector paragraph: a MultiNewParagraph startBlock: a CharacterBlock with index 39 and rectangle 103@16 corner: 103@32 ...etc... stopBlock: a CharacterBlock with index 1 and character $M and rectangle 0@0 cor...etc... beginTypeInBlock: nil emphasisHere: an Array(a TextFontChange font: 2) initialText: a Text for 'MorphicReplayDemoTest compile: self ' selectionShowing: false otherInterval: (38 to: 38) lastParentLocation: nil morph: a TextMorphForEditView(3730) oldInterval: nil pivotBlock: nil
TextMorphEditor(ParagraphEditor)>>doIt: Receiver: a TextMorphEditor Arguments and temporary variables: characterStream: a WriteStream '' Receiver's instance variables: model: a NewInspector paragraph: a MultiNewParagraph startBlock: a CharacterBlock with index 39 and rectangle 103@16 corner: 103@32 ...etc... stopBlock: a CharacterBlock with index 1 and character $M and rectangle 0@0 cor...etc... beginTypeInBlock: nil emphasisHere: an Array(a TextFontChange font: 2) initialText: a Text for 'MorphicReplayDemoTest compile: self ' selectionShowing: false otherInterval: (38 to: 38) lastParentLocation: nil morph: a TextMorphForEditView(3730) oldInterval: nil pivotBlock: nil
TextMorphEditor(ParagraphEditor)>>dispatchOnKeyEvent:with: Receiver: a TextMorphEditor Arguments and temporary variables: keyEvent: [keystroke '<Cmd-d>'] typeAheadStream: a WriteStream '' honorCommandKeys: true keyValue: 100 keyChar: $d char: $d action: #doIt: Receiver's instance variables: model: a NewInspector paragraph: a MultiNewParagraph startBlock: a CharacterBlock with index 39 and rectangle 103@16 corner: 103@32 ...etc... stopBlock: a CharacterBlock with index 1 and character $M and rectangle 0@0 cor...etc... beginTypeInBlock: nil emphasisHere: an Array(a TextFontChange font: 2) initialText: a Text for 'MorphicReplayDemoTest compile: self ' selectionShowing: false otherInterval: (38 to: 38) lastParentLocation: nil morph: a TextMorphForEditView(3730) oldInterval: nil pivotBlock: nil
TextMorphEditor>>dispatchOnKeyEvent:with: Receiver: a TextMorphEditor Arguments and temporary variables: keyEvent: [keystroke '<Cmd-d>'] typeAheadStream: a WriteStream '' Receiver's instance variables: model: a NewInspector paragraph: a MultiNewParagraph startBlock: a CharacterBlock with index 39 and rectangle 103@16 corner: 103@32 ...etc... stopBlock: a CharacterBlock with index 1 and character $M and rectangle 0@0 cor...etc... beginTypeInBlock: nil emphasisHere: an Array(a TextFontChange font: 2) initialText: a Text for 'MorphicReplayDemoTest compile: self ' selectionShowing: false otherInterval: (38 to: 38) lastParentLocation: nil morph: a TextMorphForEditView(3730) oldInterval: nil pivotBlock: nil
TextMorphEditor(ParagraphEditor)>>keystroke: Receiver: a TextMorphEditor Arguments and temporary variables: keyEvent: [keystroke '<Cmd-d>'] typeAhead: a WriteStream '' Receiver's instance variables: model: a NewInspector paragraph: a MultiNewParagraph startBlock: a CharacterBlock with index 39 and rectangle 103@16 corner: 103@32 ...etc... stopBlock: a CharacterBlock with index 1 and character $M and rectangle 0@0 cor...etc... beginTypeInBlock: nil emphasisHere: an Array(a TextFontChange font: 2) initialText: a Text for 'MorphicReplayDemoTest compile: self ' selectionShowing: false otherInterval: (38 to: 38) lastParentLocation: nil morph: a TextMorphForEditView(3730) oldInterval: nil pivotBlock: nil
TextMorphEditor>>keystroke: Receiver: a TextMorphEditor Arguments and temporary variables: keyEvent: [keystroke '<Cmd-d>'] Receiver's instance variables: model: a NewInspector paragraph: a MultiNewParagraph startBlock: a CharacterBlock with index 39 and rectangle 103@16 corner: 103@32 ...etc... stopBlock: a CharacterBlock with index 1 and character $M and rectangle 0@0 cor...etc... beginTypeInBlock: nil emphasisHere: an Array(a TextFontChange font: 2) initialText: a Text for 'MorphicReplayDemoTest compile: self ' selectionShowing: false otherInterval: (38 to: 38) lastParentLocation: nil morph: a TextMorphForEditView(3730) oldInterval: nil pivotBlock: nil
[] in [] in TextMorphForEditView(TextMorph)>>keyStroke: Receiver: a TextMorphForEditView(3730) Arguments and temporary variables: evt: [keystroke '<Cmd-d>'] Receiver's instance variables: bounds: 0@0 corner: 358@34 owner: a TransformMorph(942) submorphs: #() fullBounds: 0@0 corner: 358@34 color: Color black extension: a MorphExtension (3477) [other: (blinkStart -> 11369859)] borderWidth: 0 borderColor: Color black textStyle: a TextStyle Bitmap DejaVu Sans 9 text: a Text for 'MorphicReplayDemoTest compile: self.' wrapFlag: true paragraph: a MultiNewParagraph editor: a TextMorphEditor container: nil predecessor: nil successor: nil backgroundColor: nil margins: nil editHistory: a TextMorphCommandHistory editView: a PluggableTextMorphPlus(2866) acceptOnCR: false
TextMorphForEditView(TextMorph)>>handleInteraction: Receiver: a TextMorphForEditView(3730) Arguments and temporary variables: interactionBlock: [closure] in [] in TextMorphForEditView(TextMorph)>>keyStroke...etc... oldEditor: a TextMorphEditor oldParagraph: a MultiNewParagraph oldText: a Text for 'MorphicReplayDemoTest compile: self.' Receiver's instance variables: bounds: 0@0 corner: 358@34 owner: a TransformMorph(942) submorphs: #() fullBounds: 0@0 corner: 358@34 color: Color black extension: a MorphExtension (3477) [other: (blinkStart -> 11369859)] borderWidth: 0 borderColor: Color black textStyle: a TextStyle Bitmap DejaVu Sans 9 text: a Text for 'MorphicReplayDemoTest compile: self.' wrapFlag: true paragraph: a MultiNewParagraph editor: a TextMorphEditor container: nil predecessor: nil successor: nil backgroundColor: nil margins: nil editHistory: a TextMorphCommandHistory editView: a PluggableTextMorphPlus(2866) acceptOnCR: false
TextMorphForEditView>>handleInteraction: Receiver: a TextMorphForEditView(3730) Arguments and temporary variables: interActionBlock: [closure] in [] in TextMorphForEditView(TextMorph)>>keyStroke...etc... Receiver's instance variables: bounds: 0@0 corner: 358@34 owner: a TransformMorph(942) submorphs: #() fullBounds: 0@0 corner: 358@34 color: Color black extension: a MorphExtension (3477) [other: (blinkStart -> 11369859)] borderWidth: 0 borderColor: Color black textStyle: a TextStyle Bitmap DejaVu Sans 9 text: a Text for 'MorphicReplayDemoTest compile: self.' wrapFlag: true paragraph: a MultiNewParagraph editor: a TextMorphEditor container: nil predecessor: nil successor: nil backgroundColor: nil margins: nil editHistory: a TextMorphCommandHistory editView: a PluggableTextMorphPlus(2866) acceptOnCR: false
--- The full stack --- UndefinedObject(Object)>>doesNotUnderstand: #< EncoderForV3PlusClosures(EncoderForV3)>>genPushLiteral:
EncoderForV3PlusClosures(BytecodeEncoder)>>sizeOpcodeSelector:withArguments: EncoderForV3PlusClosures(BytecodeEncoder)>>sizePushLiteral: LiteralNode>>sizeCodeForValue: [] in MessageNode>>sizeCodeForValue: Array(SequenceableCollection)>>collect: MessageNode>>sizeCodeForValue: [] in MessageNode>>sizeCodeForValue: OrderedCollection>>collect: MessageNode>>sizeCodeForValue: MessageNode(ParseNode)>>sizeCodeForEffect: MessageNode>>sizeCodeForEffect: BlockNode>>sizeCodeExceptLast: BlockNode>>sizeCodeForEvaluatedValue: BytecodeAgnosticMethodNode>>generate: CompiledMethodWithNode class>>generateMethodFromNode:trailer: MorphicReplayDemoTest class(Behavior)>>compile:classified:notifying:trailer:ifFail: MorphicReplayDemoTest class(ClassDescription)>>compile:classified:withStamp:notifying:logSource: MorphicReplayDemoTest class(ClassDescription)>>compile:classified:withStamp:notifying: MorphicReplayDemoTest class(ClassDescription)>>compile:classified:notifying: MorphicReplayDemoTest class(ClassDescription)>>compile:notifying: MorphicReplayDemoTest class(Behavior)>>compile: ByteString>>DoIt Compiler>>evaluate:in:to:notifying:ifFail:logged: [] in TextMorphEditor(ParagraphEditor)>>evaluateSelection BlockClosure>>on:do: TextMorphEditor(ParagraphEditor)>>evaluateSelection TextMorphEditor(ParagraphEditor)>>doIt [] in TextMorphEditor(ParagraphEditor)>>doIt: TextMorphEditor(ParagraphEditor)>>terminateAndInitializeAround: TextMorphEditor(ParagraphEditor)>>doIt: TextMorphEditor(ParagraphEditor)>>dispatchOnKeyEvent:with: TextMorphEditor>>dispatchOnKeyEvent:with: TextMorphEditor(ParagraphEditor)>>keystroke: TextMorphEditor>>keystroke: [] in [] in TextMorphForEditView(TextMorph)>>keyStroke: TextMorphForEditView(TextMorph)>>handleInteraction: TextMorphForEditView>>handleInteraction: - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - [] in TextMorphForEditView(TextMorph)>>keyStroke: ECToolSet class>>codeCompletionAround:textMorph:keyStroke: DEVToolSet class>>codeCompletionAround:textMorph:keyStroke: ToolSet class>>codeCompletionAround:textMorph:keyStroke: TextMorphForEditView(TextMorph)>>keyStroke: TextMorphForEditView>>keyStroke: TextMorphForEditView(TextMorph)>>handleKeystroke: KeyboardEvent>>sentTo: TextMorphForEditView(Morph)>>handleEvent: TextMorphForEditView(Morph)>>handleFocusEvent: [] in HandMorph>>sendFocusEvent:to:clear: [] in PasteUpMorph>>becomeActiveDuring: BlockClosure>>on:do: PasteUpMorph>>becomeActiveDuring: HandMorph>>sendFocusEvent:to:clear: HandMorph>>sendEvent:focus:clear: HandMorph>>sendKeyboardEvent: HandMorph>>handleEvent: HandMorph>>processEvents [] in WorldState>>doOneCycleNowFor: Array(SequenceableCollection)>>do: WorldState>>handsDo: WorldState>>doOneCycleNowFor: WorldState>>doOneCycleFor: PasteUpMorph>>doOneCycle [] in Project class>>spawnNewProcess [] in BlockClosure>>newProcess -----------------------------------------------------------
_______________________________________________ Pharo-project mailing list Pharo-project@lists.gforge.inria.fr http://lists.gforge.inria.fr/cgi-bin/mailman/listinfo/pharo-project
_______________________________________________ Pharo-project mailing list Pharo-project@lists.gforge.inria.fr http://lists.gforge.inria.fr/cgi-bin/mailman/listinfo/pharo-project
-- imagination is more important than knowledge - Albert Einstein Logic will get you from A to B. Imagination will take you everywhere - Albert Einstein Learn from yesterday, live for today, hope for tomorrow. The important thing is not to stop questioning. - Albert Einstein The true sign of intelligence is not knowledge but imagination. - Albert Einstein Gravitation is not responsible for people falling in love. - Albert Einstein