Shouldn't Parser Encoder & co just raise Error and Warning, and let the upper level handle these (or not) ? Expert driver methods would install ad-hoc handlers actions (like inserting an error message in source controller, or opening a Debugger, or. a SyntaxErrror window, or...)
Nicolas 2009/12/21 Bart Gauquie <[email protected]>: > Hi, > > First load the latest http://www.squeaksource.com/MorphicsRecordNPlay > package. > Then for instance following fails if I evaluate it in a workspace: > MorphicReplayDemoTest compile: > 'testMethod > self addMMEFrom: 1...@512 to: 1...@504. > self addMMEFrom: 1...@504 to: 9...@482. > self addMMEFrom: 9...@482 to: 9...@464. > self addMMEFrom: 9...@464 to: 8...@462. > self addMMEFrom: 8...@462 to: 7...@482. > self addMMEFrom: 7...@482 to: 6...@520. > self addMMEFrom: 6...@520 to: 6...@559. > self addMMEFrom: 6...@559 to: 6...@579. > self addMMEFrom: 6...@579 to: 6...@579. > self addMMEFrom: 6...@579 to: 6...@564. > self addMMEFrom: 6...@564 to: 8...@452. > self addMMEFrom: 8...@452 to: 9...@353. > self addMMEFrom: 9...@353 to: 1...@287. > self addMMEFrom: 1...@287 to: 1...@257. > self addMMEFrom: 1...@257 to: 1...@252. > self addMMEFrom: 1...@252 to: 1...@259. > self addMMEFrom: 1...@259 to: 9...@314. > self addMMEFrom: 9...@314 to: 8...@414. > self addMMEFrom: 8...@414 to: 8...@502. > self addMMEFrom: 8...@502 to: 7...@570. > self addMMEFrom: 7...@570 to: 7...@610. > self addMMEFrom: 7...@610 to: 8...@630. > self addMMEFrom: 8...@630 to: 9...@620. > self addMMEFrom: 9...@620 to: 1...@579. > self addMMEFrom: 1...@579 to: 1...@549. > self addMMEFrom: 1...@549 to: 1...@447. > self addMMEFrom: 1...@447 to: 1...@379. > self addMMEFrom: 1...@379 to: 1...@377. > self addMMEFrom: 1...@377 to: 9...@416. > self addMMEFrom: 9...@416 to: 8...@446. > self addMMEFrom: 8...@446 to: 7...@530. > self addMMEFrom: 7...@530 to: 7...@548. > self addMMEFrom: 7...@548 to: 7...@546. > self addMMEFrom: 7...@546 to: 8...@515. > self addMMEFrom: 8...@515 to: 8...@491. > self addMMEFrom: 8...@491 to: 1...@407. > self addMMEFrom: 1...@407 to: 1...@361. > self addMMEFrom: 1...@361 to: 1...@343. > self addMMEFrom: 1...@343 to: 1...@340. > self addMMEFrom: 1...@340 to: 1...@349. > self addMMEFrom: 1...@349 to: 8...@416. > self addMMEFrom: 8...@416 to: 7...@471. > self addMMEFrom: 7...@471 to: 7...@511. > self addMMEFrom: 7...@511 to: 7...@524. > self addMMEFrom: 7...@524 to: 7...@528. > self addMMEFrom: 7...@528 to: 8...@509. > self addMMEFrom: 8...@509 to: 9...@493. > self addMMEFrom: 9...@493 to: 1...@446. > self addMMEFrom: 1...@446 to: 1...@427. > self addMMEFrom: 1...@427 to: 1...@423. > self addMMEFrom: 1...@423 to: 1...@422. > self addMMEFrom: 1...@422 to: 1...@424. > self addMMEFrom: 1...@424 to: 9...@449. > self addMMEFrom: 9...@449 to: 7...@479. > self addMMEFrom: 7...@479 to: 6...@503. > self addMMEFrom: 6...@503 to: 6...@512. > self addMMEFrom: 6...@512 to: 6...@512. > self addMMEFrom: 6...@512 to: 6...@508. > self addMMEFrom: 6...@508 to: 7...@492. > self addMMEFrom: 7...@492 to: 9...@486. > self addMMEFrom: 9...@486 to: 1...@494. > self addMMEFrom: 1...@494 to: 1...@508. > self addMMEFrom: 1...@508 to: 1...@514. > self addMMEFrom: 1...@514 to: 1...@514. > self addMMEFrom: 1...@514 to: 1...@492. > self addMMEFrom: 1...@492 to: 9...@483. > self addMMEFrom: 9...@483 to: 8...@498. > self addMMEFrom: 8...@498 to: 6...@519. > self addMMEFrom: 6...@519 to: 6...@523. > self addMMEFrom: 6...@523 to: 6...@502. > self addMMEFrom: 6...@502 to: 6...@442. > self addMMEFrom: 6...@442 to: 7...@365. > self addMMEFrom: 7...@365 to: 9...@316. > self addMMEFrom: 9...@316 to: 1...@318. > self addMMEFrom: 1...@318 to: 1...@360. > self addMMEFrom: 1...@360 to: 1...@403. > self addMMEFrom: 1...@403 to: 1...@443. > self addMMEFrom: 1...@443 to: 1...@491. > self addMMEFrom: 1...@491 to: 8...@536. > self addMMEFrom: 8...@536 to: 6...@571. > self addMMEFrom: 6...@571 to: 6...@578. > self addMMEFrom: 6...@578 to: 5...@545. > self addMMEFrom: 5...@545 to: 6...@485. > self addMMEFrom: 6...@485 to: 7...@419. > self addMMEFrom: 7...@419 to: 8...@383. > self addMMEFrom: 8...@383 to: 9...@383. > self addMMEFrom: 9...@383 to: 1...@425. > self addMMEFrom: 1...@425 to: 1...@443. > self addMMEFrom: 1...@443 to: 1...@449. > self addMMEFrom: 1...@449 to: 9...@468. > self addMMEFrom: 9...@468 to: 8...@509. > self addMMEFrom: 8...@509 to: 7...@547. > self addMMEFrom: 7...@547 to: 6...@555. > self addMMEFrom: 6...@555 to: 6...@531. > self addMMEFrom: 6...@531 to: 6...@468. > self addMMEFrom: 6...@468 to: 8...@407. > self addMMEFrom: 8...@407 to: 9...@380. > self addMMEFrom: 9...@380 to: 1...@378. > self addMMEFrom: 1...@378 to: 1...@393. > self addMMEFrom: 1...@393 to: 1...@393. > self addMMEFrom: 1...@393 to: 1...@388. > self addMMEFrom: 1...@388 to: 8...@402. > self addMMEFrom: 8...@402 to: 7...@433. > self addMMEFrom: 7...@433 to: 6...@454. > self addMMEFrom: 6...@454 to: 6...@461. > self addMMEFrom: 6...@461 to: 6...@469. > self addMMEFrom: 6...@469 to: 8...@492. > self addMMEFrom: 8...@492 to: 9...@495. > self addMMEFrom: 9...@495 to: 1...@476. > self addMMEFrom: 1...@476 to: 1...@433. > self addMMEFrom: 1...@433 to: 1...@404. > self addMMEFrom: 1...@404 to: 1...@307. > self addMMEFrom: 1...@307 to: 1...@294. > self addMMEFrom: 1...@294 to: 9...@324. > self addMMEFrom: 9...@324 to: 9...@357. > self addMMEFrom: 9...@357 to: 9...@366. > self addMMEFrom: 9...@366 to: 9...@370. > self addMMEFrom: 9...@370 to: 9...@379. > self addMMEFrom: 9...@379 to: 9...@389. > self addMMEFrom: 9...@389 to: 1...@399. > self addMMEFrom: 1...@399 to: 1...@408. > self addMMEFrom: 1...@408 to: 1...@414. > self addMMEFrom: 1...@414 to: 1...@416. > self addMMEFrom: 1...@416 to: 1...@418. > self addMMEFrom: 1...@418 to: 1...@419. > self addMMEFrom: 1...@419 to: 1...@418. > self addMMEFrom: 1...@418 to: 1...@414. > self addMMEFrom: 1...@414 to: 1...@411. > self addMMEFrom: 1...@411 to: 1...@404. > self addMMEFrom: 1...@404 to: 1...@404. > self addMMEFrom: 1...@404 to: 1...@406. > self addMMEFrom: 1...@406 to: 1...@407. > self addMMEFrom: 1...@407 to: 1...@408. > self addMMEFrom: 1...@408 to: 1...@409. > self addMMEFrom: 1...@409 to: 1...@410. > self addMMEFrom: 1...@410 to: 1...@411. > self addMMEFrom: 1...@411 to: 1...@412. > self addMMEFrom: 1...@412 to: 1...@411. > self addMMEFrom: 1...@411 to: 1...@409. > self addMMEFrom: 1...@409 to: 1...@408. > self addMMEFrom: 1...@408 to: 1...@407. > self addMMEFrom: 1...@407 to: 1...@408. > self addMMEFrom: 1...@408 to: 1...@408. > self addMMEFrom: 1...@408 to: 1...@407. > MouseButtonEvent new. > MouseButtonEvent new. > self addMMEFrom: 1...@401 to: 1...@403. > self addMMEFrom: 1...@403 to: 1...@408. > self addMMEFrom: 1...@408 to: 1...@416. > self addMMEFrom: 1...@416 to: 1...@426. > self addMMEFrom: 1...@426 to: 1...@443. > self addMMEFrom: 1...@443 to: 1...@470. > self addMMEFrom: 1...@470 to: 9...@504. > self addMMEFrom: 9...@504 to: 9...@546. > self addMMEFrom: 9...@546 to: 9...@592. > self addMMEFrom: 9...@592 to: 9...@634. > self addMMEFrom: 9...@634 to: 1...@665. > self addMMEFrom: 1...@665 to: 1...@680. > self addMMEFrom: 1...@680 to: 1...@677. > self addMMEFrom: 1...@677 to: 1...@658. > self addMMEFrom: 1...@658 to: 1...@626. > self addMMEFrom: 1...@626 to: 1...@606. > self addMMEFrom: 1...@606 to: 1...@543. > self addMMEFrom: 1...@543 to: 1...@504. > self addMMEFrom: 1...@504 to: 1...@464. > self addMMEFrom: 1...@464 to: 1...@425. > self addMMEFrom: 1...@425 to: 1...@409. > self addMMEFrom: 1...@409 to: 1...@387. > self addMMEFrom: 1...@387 to: 1...@397. > self addMMEFrom: 1...@397 to: 1...@424. > self addMMEFrom: 1...@424 to: 1...@464. > self addMMEFrom: 1...@464 to: 9...@513. > self addMMEFrom: 9...@513 to: 9...@565. > self addMMEFrom: 9...@565 to: 9...@614. > self addMMEFrom: 9...@614 to: 9...@656. > self addMMEFrom: 9...@656 to: 1...@689. > self addMMEFrom: 1...@689 to: 1...@709. > self addMMEFrom: 1...@709 to: 1...@714. > self addMMEFrom: 1...@714 to: 1...@710. > self addMMEFrom: 1...@710 to: 1...@673. > self addMMEFrom: 1...@673 to: 1...@635. > self addMMEFrom: 1...@635 to: 1...@594. > self addMMEFrom: 1...@594 to: 1...@552. > self addMMEFrom: 1...@552 to: 1...@530. > self addMMEFrom: 1...@530 to: 1...@459. > self addMMEFrom: 1...@459 to: 1...@418. > self addMMEFrom: 1...@418 to: 1...@389. > self addMMEFrom: 1...@389 to: 1...@377. > self addMMEFrom: 1...@377 to: 1...@379. > self addMMEFrom: 1...@379 to: 1...@397. > self addMMEFrom: 1...@397 to: 1...@410. > self addMMEFrom: 1...@410 to: 9...@460. > self addMMEFrom: 9...@460 to: 9...@499. > self addMMEFrom: 9...@499 to: 9...@541. > self addMMEFrom: 9...@541 to: 9...@580. > self addMMEFrom: 9...@580 to: 9...@597. > self addMMEFrom: 9...@597 to: 9...@639. > self addMMEFrom: 9...@639 to: 1...@657. > self addMMEFrom: 1...@657 to: 1...@666. > self addMMEFrom: 1...@666 to: 1...@665. > self addMMEFrom: 1...@665 to: 1...@651. > self addMMEFrom: 1...@651 to: 1...@625. > self addMMEFrom: 1...@625 to: 1...@596. > self addMMEFrom: 1...@596 to: 1...@565. > self addMMEFrom: 1...@565 to: 1...@528. > self addMMEFrom: 1...@528 to: 1...@486. > self addMMEFrom: 1...@486 to: 1...@445. > self addMMEFrom: 1...@445 to: 1...@412. > self addMMEFrom: 1...@412 to: 1...@390. > self addMMEFrom: 1...@390 to: 1...@383. > self addMMEFrom: 1...@383 to: 1...@394. > self addMMEFrom: 1...@394 to: 1...@420. > self addMMEFrom: 1...@420 to: 1...@438. > self addMMEFrom: 1...@438 to: 9...@506. > self addMMEFrom: 9...@506 to: 9...@555. > self addMMEFrom: 9...@555 to: 9...@596. > self addMMEFrom: 9...@596 to: 1...@629. > self addMMEFrom: 1...@629 to: 1...@641. > self addMMEFrom: 1...@641 to: 1...@658. > self addMMEFrom: 1...@658 to: 1...@655. > self addMMEFrom: 1...@655 to: 1...@640. > self addMMEFrom: 1...@640 to: 1...@616. > self addMMEFrom: 1...@616 to: 1...@589. > self addMMEFrom: 1...@589 to: 1...@555. > self addMMEFrom: 1...@555 to: 1...@518. > self addMMEFrom: 1...@518 to: 1...@474. > self addMMEFrom: 1...@474 to: 1...@430. > self addMMEFrom: 1...@430 to: 1...@392. > self addMMEFrom: 1...@392 to: 1...@370. > self addMMEFrom: 1...@370 to: 1...@366. > self addMMEFrom: 1...@366 to: 1...@375. > self addMMEFrom: 1...@375 to: 1...@397. > self addMMEFrom: 1...@397 to: 1...@429. > self addMMEFrom: 1...@429 to: 1...@468. > self addMMEFrom: 1...@468 to: 1...@489. > self addMMEFrom: 1...@489 to: 1...@545. > self addMMEFrom: 1...@545 to: 1...@567. > self addMMEFrom: 1...@567 to: 1...@590. > self addMMEFrom: 1...@590 to: 1...@603. > self addMMEFrom: 1...@603 to: 1...@605. > self addMMEFrom: 1...@605 to: 1...@593. > self addMMEFrom: 1...@593 to: 1...@571. > self addMMEFrom: 1...@571 to: 1...@543. > self addMMEFrom: 1...@543 to: 1...@509. > self addMMEFrom: 1...@509 to: 1...@466. > self addMMEFrom: 1...@466 to: 1...@414. > self addMMEFrom: 1...@414 to: 1...@390. > self addMMEFrom: 1...@390 to: 1...@340. > self addMMEFrom: 1...@340 to: 1...@334. > self addMMEFrom: 1...@334 to: 1...@346. > self addMMEFrom: 1...@346 to: 1...@373. > self addMMEFrom: 1...@373 to: 1...@412. > self addMMEFrom: 1...@412 to: 1...@457. > self addMMEFrom: 1...@457 to: 1...@506. > self addMMEFrom: 1...@506 to: 1...@557. > self addMMEFrom: 1...@557 to: 1...@581. > self addMMEFrom: 1...@581 to: 1...@637. > self addMMEFrom: 1...@637 to: 1...@657. > self addMMEFrom: 1...@657 to: 1...@660. > self addMMEFrom: 1...@660 to: 1...@644. > self addMMEFrom: 1...@644 to: 1...@630. > self addMMEFrom: 1...@630 to: 1...@569. > self addMMEFrom: 1...@569 to: 1...@521. > self addMMEFrom: 1...@521 to: 1...@466. > self addMMEFrom: 1...@466 to: 1...@410. > self addMMEFrom: 1...@410 to: 1...@369. > self addMMEFrom: 1...@369 to: 1...@347. > self addMMEFrom: 1...@347 to: 1...@342. > self addMMEFrom: 1...@342 to: 1...@346. > self addMMEFrom: 1...@346 to: 1...@356. > self addMMEFrom: 1...@356 to: 1...@363. > self addMMEFrom: 1...@363 to: 1...@366. > self addMMEFrom: 1...@366 to: 1...@366. > self addMMEFrom: 1...@366 to: 1...@372. > self addMMEFrom: 1...@372 to: 1...@381. > self addMMEFrom: 1...@381 to: 1...@393. > self addMMEFrom: 1...@393 to: 1...@399. > self addMMEFrom: 1...@399 to: 1...@401. > self addMMEFrom: 1...@401 to: 1...@401. > self addMMEFrom: 1...@401 to: 1...@400. > self addMMEFrom: 1...@400 to: 1...@401. > self addMMEFrom: 1...@401 to: 1...@403. > self addMMEFrom: 1...@403 to: 1...@404. > self addMMEFrom: 1...@404 to: 1...@405. > self addMMEFrom: 1...@405 to: 1...@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 <[email protected]> >> >> 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 <[email protected]> >>> >>> 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: 1...@512 to: 1...@504. >>> self addMMEFrom: 6...@559 to: 6...@579. >>> '. >>> >>> This works fine. However if the contents of the method is too long; for >>> instance: >>> if the self addMMEFrom: 1...@512 to: 1...@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: 1...@512 to: 1...@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: 1...@512 to: 1...@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: 1...@512 to: 1...@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: 1...@512 to: 1...@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: 1...@512 to: 1...@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: 1...@512 to: 1...@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: 1...@512 to: 1...@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: 1...@512 to: 1...@504. >>> self addMMEFrom: 1...@504 to: [email protected]... >>> Arguments and temporary variables: >>> >>> Receiver's instance variables: >>> 'testMethod >>> self addMMEFrom: 1...@512 to: 1...@504. >>> self addMMEFrom: 1...@504 to: [email protected]... >>> >>> 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: 1...@512 to: 1...@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: 1...@512 to: 1...@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 1...@16 corner: >>> 1...@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: 1...@512 to: 1...@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 1...@16 corner: >>> 1...@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 1...@16 corner: >>> 1...@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 1...@16 corner: >>> 1...@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 1...@16 corner: >>> 1...@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 1...@16 corner: >>> 1...@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 1...@16 corner: >>> 1...@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 1...@16 corner: >>> 1...@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 1...@16 corner: >>> 1...@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 1...@16 corner: >>> 1...@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: 3...@34 >>> owner: a TransformMorph(942) >>> submorphs: #() >>> fullBounds: 0...@0 corner: 3...@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: 3...@34 >>> owner: a TransformMorph(942) >>> submorphs: #() >>> fullBounds: 0...@0 corner: 3...@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: 3...@34 >>> owner: a TransformMorph(942) >>> submorphs: #() >>> fullBounds: 0...@0 corner: 3...@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 >>> [email protected] >>> http://lists.gforge.inria.fr/cgi-bin/mailman/listinfo/pharo-project >> >> >> _______________________________________________ >> Pharo-project mailing list >> [email protected] >> 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 > > _______________________________________________ > Pharo-project mailing list > [email protected] > http://lists.gforge.inria.fr/cgi-bin/mailman/listinfo/pharo-project > _______________________________________________ Pharo-project mailing list [email protected] http://lists.gforge.inria.fr/cgi-bin/mailman/listinfo/pharo-project
