Closed KenDickey closed 9 months ago
Hi Ken, this configuration is tested automatically on each merge so I'd suspect there's something odd in your setup.
The transpiler should not be visiting a thisContext node anyway, are you sure your repo is clean?
You might try to make mrproper
in your bootstrap/pharo dir (it'll delete almost all changes there, be careful)
On 2023-12-17 13:31, Javier Pimas wrote:
Hi Ken, this configuration is tested automatically on each merge so I'd suspect there's something odd in your setup.
Could be. I don't use Intel often, so got ancient Toshiba Satellite laptop out, updated Ubunto, git cloned Egg.
After changing bootstrap/pharo/Makefile ifdef OS
to use one less slash
in ICEBURG_URL, I get a lot further.
Now dying with False not understanding #orNot:
The transpiler should not be visiting a thisContext node anyway, are you sure your repo is clean?
Tried again w new clone, but same behavior.
You might try to make mrproper in your bootstrap/pharo dir (it'll delete almost all changes there, be careful)
I'll try adding #andNot: and #orNot: and report back ...
the andNot:
, orNot:
and friends should be loaded with the Powerlang-compatibility-pharo package that gets loaded automatically by the BaselineOfPowerlang. I don't know how you got a powerlangjs.image without that.
Hmmm.. seems to work now in emacs shell (with makefile edit).
How to test?
x86:Ubuntu:~ >>> uname -a
Linux OlIntelLaptop 6.2.0-39-generic #40~22.04.1-Ubuntu SMP PREEMPT_DYNAMIC Thu Nov 16 10:53:04 UTC 2 x86_64 x86_64 x86_64 GNU/Linux
x86:Ubuntu:~ >>> rm -rf Egg
x86:Ubuntu:~ >>> git clone https://github.com/powerlang/egg Egg
Cloning into 'Egg'...
remote: Enumerating objects: 2104, done.
remote: Counting objects: 100% (866/866), done.
remote: Compressing objects: 100% (529/529), done.
remote: Total 2104 (delta 363), reused 753 (delta 303), pack-reused 1238
Receiving objects: 100% (2104/2104), 1.29 MiB | 691.00 KiB/s, done.
Resolving deltas: 100% (728/728), done.
x86:Ubuntu:~ >>> cd Egg
x86:Ubuntu:~/Egg >>> ## Hack ICEBURG_URL
x86:Ubuntu:~/Egg >>> make js
make -C runtime/js all
make[1]: Entering directory '/home/kend/Egg/runtime/js'
make -C /home/kend/Egg/bootstrap/pharo bootstrap.image
make[2]: Entering directory '/home/kend/Egg/bootstrap/pharo'
curl https://get.pharo.org/64/90+vm | bash
% Total % Received % Xferd Average Speed Time Time Time Current
Dload Upload Total Spent Left Speed
100 3054 100 3054 0 0 4615 0 --:--:-- --:--:-- --:--:-- 4613
Downloading the latest 90 Image:
http://files.pharo.org/get-files/90/pharoImage-x86_64.zip
Pharo.image
Downloading the latest pharoVM:
http://files.pharo.org/get-files/90/pharo-vm-Linux-x86_64-stable.zip
pharo-vm/pharo
Creating starter scripts pharo and pharo-ui
./pharo Pharo.image save bootstrap
./pharo bootstrap.image eval --save "(IceRepositoryCreator new url: 'file:///home/kend/Egg'; createRepository) register"
IceLibgitRepository(nil)
./pharo bootstrap.image metacello install tonel://. BaselineOfPowerlang --groups=base
MetacelloNotification: Fetched -> BaselineOfPowerlang-tonel.1 --- tonel:///home/kend/Egg/bootstrap/pharo --- tonel:///home/kend/Egg/bootstrap/pharo
MetacelloNotification: Loading -> BaselineOfPowerlang-tonel.1 --- tonel:///home/kend/Egg/bootstrap/pharo --- tonel:///home/kend/Egg/bootstrap/pharo
MetacelloNotification: Loaded -> BaselineOfPowerlang-tonel.1 --- tonel:///home/kend/Egg/bootstrap/pharo --- tonel:///home/kend/Egg/bootstrap/pharo
MetacelloNotification: Loading baseline of BaselineOfPowerlang...
MetacelloNotification: Fetched -> Powerlang-Compatibility-Pharo-tonel.1 --- tonel:///home/kend/Egg/bootstrap/pharo --- tonel:///home/kend/Egg/bootstrap/pharo
MetacelloNotification: Fetched -> Powerlang-SCompiler-tonel.1 --- tonel:///home/kend/Egg/bootstrap/pharo --- tonel:///home/kend/Egg/bootstrap/pharo
MetacelloNotification: Fetched -> Powerlang-Core-tonel.1 --- tonel:///home/kend/Egg/bootstrap/pharo --- tonel:///home/kend/Egg/bootstrap/pharo
MetacelloNotification: Fetched -> Powerlang-SCompiler-Tests-tonel.1 --- tonel:///home/kend/Egg/bootstrap/pharo --- tonel:///home/kend/Egg/bootstrap/pharo
MetacelloNotification: Fetched -> Powerlang-Tests-tonel.1 --- tonel:///home/kend/Egg/bootstrap/pharo --- tonel:///home/kend/Egg/bootstrap/pharo
MetacelloNotification: Fetched -> Powerlang-TestsFailing-tonel.1 --- tonel:///home/kend/Egg/bootstrap/pharo --- tonel:///home/kend/Egg/bootstrap/pharo
MetacelloNotification: Loading -> Powerlang-Compatibility-Pharo-tonel.1 --- tonel:///home/kend/Egg/bootstrap/pharo --- cache
MetacelloNotification: Loaded -> Powerlang-Compatibility-Pharo-tonel.1 --- tonel:///home/kend/Egg/bootstrap/pharo --- cache
MetacelloNotification: Loading -> Powerlang-SCompiler-tonel.1 --- tonel:///home/kend/Egg/bootstrap/pharo --- cache
NewUndeclaredWarning: SCompiledMethod>>sexpressions (AstcodeDecoder is Undeclared)
NewUndeclaredWarning: SCompiledBlock>>newClosure (SClosure is Undeclared)
NewUndeclaredWarning: AstcodeEncoder>>encodeLoadRvisitingReceiver (LoadRvisitingReceiverId is Undeclared)
MetacelloNotification: Loaded -> Powerlang-SCompiler-tonel.1 --- tonel:///home/kend/Egg/bootstrap/pharo --- cache
MetacelloNotification: Loading -> Powerlang-Core-tonel.1 --- tonel:///home/kend/Egg/bootstrap/pharo --- cache
MetacelloNotification: Loaded -> Powerlang-Core-tonel.1 --- tonel:///home/kend/Egg/bootstrap/pharo --- cache
MetacelloNotification: Loading -> Powerlang-SCompiler-Tests-tonel.1 --- tonel:///home/kend/Egg/bootstrap/pharo --- cache
MetacelloNotification: Loaded -> Powerlang-SCompiler-Tests-tonel.1 --- tonel:///home/kend/Egg/bootstrap/pharo --- cache
MetacelloNotification: Loading -> Powerlang-Tests-tonel.1 --- tonel:///home/kend/Egg/bootstrap/pharo --- cache
MetacelloNotification: Loaded -> Powerlang-Tests-tonel.1 --- tonel:///home/kend/Egg/bootstrap/pharo --- cache
MetacelloNotification: Loading -> Powerlang-TestsFailing-tonel.1 --- tonel:///home/kend/Egg/bootstrap/pharo --- cache
NewUndeclaredWarning: SExpressionEmulatorTest>>setUp (VirtualImage is Undeclared)
NewUndeclaredWarning: SExpressionEmulatorTest>>write (VirtualImage is Undeclared)
NewUndeclaredWarning: SExpressionInterpreterTest>>setUp (VirtualImage is Undeclared)
NewUndeclaredWarning: SExpressionInterpreterTest>>write (VirtualImage is Undeclared)
NewUndeclaredWarning: AstcodeTest>>encode:in: (VirtualImage is Undeclared)
NewUndeclaredWarning: AstcodeTest>>test021encodeClassVar (ClassVarId is Undeclared)
NewUndeclaredWarning: AstcodeTest>>test021encodeInstVar (InstVarId is Undeclared)
NewUndeclaredWarning: AstcodeTest>>test021encodePoolVar (PoolVarId is Undeclared)
NewUndeclaredWarning: AstcodeTest>>test023encodeClass (GlobalClassId is Undeclared)
NewUndeclaredWarning: AstcodeTest>>test050instVarAssignment (InstVarId is Undeclared)
MetacelloNotification: Loaded -> Powerlang-TestsFailing-tonel.1 --- tonel:///home/kend/Egg/bootstrap/pharo --- cache
MetacelloNotification: ...finished baseline
./pharo bootstrap.image eval --save "SystemWindow closeTopWindow. GTPlayground openContents: 'first-steps.st' asFileReference contents withSqueakLineEndings"
a GTPlayground(id=886532864 title='Playground' pane=a GLMPane(227362816 root))
To open Pharo bootstrap image run:
./pharo-ui bootstrap.image
git remote -v | grep -w pharo-bootstrap || git remote add pharo-bootstrap bootstrap/pharo/pharo-local/iceberg/local/egg/ make[2]: Leaving directory '/home/kend/Egg/bootstrap/pharo' cd /home/kend/Egg/bootstrap/pharo && ./pharo bootstrap.image save powerlangjs cd /home/kend/Egg/bootstrap/pharo && ./pharo powerlangjs.image metacello install tonel://. BaselineOfPowerlang --groups=powerlangjs MetacelloNotification: Fetched -> BaselineOfPowerlang-tonel.1 --- tonel:///home/kend/Egg/bootstrap/pharo --- tonel:///home/kend/Egg/bootstrap/pharo MetacelloNotification: Loading -> BaselineOfPowerlang-tonel.1 --- tonel:///home/kend/Egg/bootstrap/pharo --- tonel:///home/kend/Egg/bootstrap/pharo MetacelloNotification: Loaded -> BaselineOfPowerlang-tonel.1 --- tonel:///home/kend/Egg/bootstrap/pharo --- tonel:///home/kend/Egg/bootstrap/pharo MetacelloNotification: Loading baseline of BaselineOfPowerlang... MetacelloNotification: Fetched -> OCompiler-Pharo-tonel.1 --- tonel:///home/kend/Egg/bootstrap/pharo --- tonel:///home/kend/Egg/bootstrap/pharo MetacelloNotification: Fetched -> OCompiler-Core-tonel.1 --- tonel:///home/kend/Egg/bootstrap/pharo --- tonel:///home/kend/Egg/bootstrap/pharo MetacelloNotification: Fetched -> PowerlangJS-Core-tonel.1 --- tonel:///home/kend/Egg/bootstrap/pharo --- tonel:///home/kend/Egg/bootstrap/pharo MetacelloNotification: Fetched -> PowerlangJS-Tests-tonel.1 --- tonel:///home/kend/Egg/bootstrap/pharo --- tonel:///home/kend/Egg/bootstrap/pharo MetacelloNotification: Fetched -> PowerlangJS-TestsFailing-tonel.1 --- tonel:///home/kend/Egg/bootstrap/pharo --- tonel:///home/kend/Egg/bootstrap/pharo MetacelloNotification: Loading -> OCompiler-Pharo-tonel.1 --- tonel:///home/kend/Egg/bootstrap/pharo --- cache NewUndeclaredWarning: OptimizingRBVisitor>>allActivations (OActivationContext is Undeclared) NewUndeclaredWarning: OptimizingRBVisitor>>defineActivationRecord (OActivationContext is Undeclared) NewUndeclaredWarning: OptimizingRBVisitor>>defineSelf (OLoadImplicit is Undeclared) NewUndeclaredWarning: OptimizingRBVisitor>>initialize (OBasicBlock is Undeclared) NewUndeclaredWarning: OptimizingRBVisitor>>insertReturnSelf (OReturn is Undeclared) NewUndeclaredWarning: OptimizingRBVisitor>>loadArgument: (OLoadOperation is Undeclared) NewUndeclaredWarning: OptimizingRBVisitor>>loadAssociation: (OLoadConstant is Undeclared) NewUndeclaredWarning: OptimizingRBVisitor>>loadAssociation: (OLoadOperation is Undeclared) NewUndeclaredWarning: OptimizingRBVisitor>>loadEnvironment: (OLoadOperation is Undeclared) NewUndeclaredWarning: OptimizingRBVisitor>>loadEnvironmentTemporary:environment: (OLoadOperation is Undeclared) NewUndeclaredWarning: OptimizingRBVisitor>>loadInstance: (OLoadOperation is Undeclared) NewUndeclaredWarning: OptimizingRBVisitor>>loadLiteral: (OLoadConstant is Undeclared) NewUndeclaredWarning: OptimizingRBVisitor>>loadTemporary: (OLoadOperation is Undeclared) NewUndeclaredWarning: OptimizingRBVisitor>>lowerSpecialABI: (OLoadImplicit is Undeclared) NewUndeclaredWarning: OptimizingRBVisitor>>storeAssociation:with: (OLoadConstant is Undeclared) NewUndeclaredWarning: OptimizingRBVisitor>>storeAssociation:with: (OStoreOperation is Undeclared) NewUndeclaredWarning: OptimizingRBVisitor>>storeEnvironmentTemporary:environment:with: (OStoreOperation is Undeclared) NewUndeclaredWarning: OptimizingRBVisitor>>storeInstance:with: (OStoreOperation is Undeclared) NewUndeclaredWarning: OptimizingRBVisitor>>storeTemporary:with: (OStoreOperation is Undeclared) NewUndeclaredWarning: OptimizingRBVisitor>>visitBlockNode: (OBasicBlock is Undeclared) NewUndeclaredWarning: OptimizingRBVisitor>>visitBlockNode: (OBlockClosure is Undeclared) NewUndeclaredWarning: OptimizingRBVisitor>>visitCascadeNode: (OMessageSend is Undeclared) NewUndeclaredWarning: OptimizingRBVisitor>>visitLiteralValueNode: (OLoadConstant is Undeclared) NewUndeclaredWarning: OptimizingRBVisitor>>visitMessageNode: (OMessageSend is Undeclared) NewUndeclaredWarning: OptimizingRBVisitor>>visitReturnNode: (OReturn is Undeclared) MetacelloNotification: Loaded -> OCompiler-Pharo-tonel.1 --- tonel:///home/kend/Egg/bootstrap/pharo --- cache MetacelloNotification: Loading -> OCompiler-Core-tonel.1 --- tonel:///home/kend/Egg/bootstrap/pharo --- cache SystemNotification: OBasicBlock>>dominanceFrontiersUsing:(end is shadowed) SystemNotification: OBasicBlock>>isEmptyPhiBranch(next is shadowed) SystemNotification: OBasicBlock>>movePhisTo:(next is shadowed) SystemNotification: OBasicBlock>>unifyReturns(prev is shadowed) SystemNotification: OBasicBlock>>unifyReturns(end is shadowed) NewUndeclaredWarning: OptimizingBraunAssigner>>allRegistersByPreference (ebp is Undeclared) NewUndeclaredWarning: OptimizingBraunAssigner>>allRegistersByPreference (eax is Undeclared) NewUndeclaredWarning: OptimizingBraunAssigner>>allRegistersByPreference (edx is Undeclared) NewUndeclaredWarning: OptimizingBraunAssigner>>allRegistersByPreference (ecx is Undeclared) NewUndeclaredWarning: OptimizingBraunAssigner>>allRegistersByPreference (esi is Undeclared) NewUndeclaredWarning: OptimizingBraunAssigner>>allRegistersByPreference (rbp is Undeclared) NewUndeclaredWarning: OptimizingBraunAssigner>>allRegistersByPreference (rax is Undeclared) NewUndeclaredWarning: OptimizingBraunAssigner>>allRegistersByPreference (rdx is Undeclared) NewUndeclaredWarning: OptimizingBraunAssigner>>allRegistersByPreference (rcx is Undeclared) NewUndeclaredWarning: OptimizingBraunAssigner>>allRegistersByPreference (rsi is Undeclared) NewUndeclaredWarning: OptimizingBraunAssigner>>allRegistersByPreference (r8 is Undeclared) NewUndeclaredWarning: OptimizingBraunAssigner>>allRegistersByPreference (r9 is Undeclared) NewUndeclaredWarning: OptimizingBraunAssigner>>allRegistersByPreference (r10 is Undeclared) NewUndeclaredWarning: OptimizingBraunAssigner>>allRegistersByPreference (r11 is Undeclared) NewUndeclaredWarning: OptimizingBraunAssigner>>allRegistersByPreference (rbx is Undeclared) NewUndeclaredWarning: OptimizingBraunAssigner>>allRegistersByPreference (r12 is Undeclared) NewUndeclaredWarning: OptimizingBraunAssigner>>allRegistersByPreference (r13 is Undeclared) NewUndeclaredWarning: OptimizingBraunAssigner>>allRegistersByPreference (r14 is Undeclared) NewUndeclaredWarning: OptimizingBraunAssigner>>allRegistersByPreference (r15 is Undeclared) NewUndeclaredWarning: OptimizingBraunAssigner>>getRegisterForSend: (eax is Undeclared) NewUndeclaredWarning: OptimizingBraunAssigner>>getRegisterForSend: (eax is Undeclared) NewUndeclaredWarning: OptimizingCodeEmitter>>assembleExtendedSize: (_ExtendedSize is Undeclared) NewUndeclaredWarning: OptimizingCodeEmitter>>initializeLowLevelAssembler (JITAssembler64 is Undeclared) NewUndeclaredWarning: OptimizingInstructionFragmenter>>fragmentLoadFlags: (_Flags is Undeclared) NewUndeclaredWarning: OptimizingInstructionFragmenter>>fragmentLoadLargeSize: (_ExtendedSize is Undeclared) NewUndeclaredWarning: OptimizingInstructionFragmenter>>fragmentLoadSmallSize: (_SmallSize is Undeclared) NewUndeclaredWarning: OptimizingInstructionFragmenter>>fragmentStoreFlags: (_Flags is Undeclared) NewUndeclaredWarning: OptimizingInstructionFragmenter>>fragmentStoreLargeSize: (_ExtendedSize is Undeclared) NewUndeclaredWarning: OptimizingInstructionFragmenter>>fragmentStoreSmallSize: (_SmallSize is Undeclared) MetacelloNotification: Loaded -> OCompiler-Core-tonel.1 --- tonel:///home/kend/Egg/bootstrap/pharo --- cache MetacelloNotification: Loading -> PowerlangJS-Core-tonel.1 --- tonel:///home/kend/Egg/bootstrap/pharo --- cache MetacelloNotification: Loaded -> PowerlangJS-Core-tonel.1 --- tonel:///home/kend/Egg/bootstrap/pharo --- cache MetacelloNotification: Loading -> PowerlangJS-Tests-tonel.1 --- tonel:///home/kend/Egg/bootstrap/pharo --- cache MetacelloNotification: Loaded -> PowerlangJS-Tests-tonel.1 --- tonel:///home/kend/Egg/bootstrap/pharo --- cache MetacelloNotification: Loading -> PowerlangJS-TestsFailing-tonel.1 --- tonel:///home/kend/Egg/bootstrap/pharo --- cache MetacelloNotification: Loaded -> PowerlangJS-TestsFailing-tonel.1 --- tonel:///home/kend/Egg/bootstrap/pharo --- cache MetacelloNotification: ...finished baseline cd /home/kend/Egg/bootstrap/pharo && ./pharo powerlangjs.image eval "JSTranspiler transpilePowerlangInterpreter" JSTranspiler export IMAGE_SEGMENTS_DIR cd /home/kend/Egg/bootstrap/pharo && ./pharo powerlangjs.image eval "JSTranspiler generateKernelSegment" JSTranspiler make[1]: Leaving directory '/home/kend/Egg/runtime/js' x86:Ubuntu:~/Egg >>> ls bootstrap CODE_OF_CONDUCT.md CONTRIBUTING.md docs LICENSE Makefile modules README.md runtime x86:Ubuntu:~/Egg >>> make js make -C runtime/js all make[1]: Entering directory '/home/kend/Egg/runtime/js' make[1]: Nothing to be done for 'all'. make[1]: Leaving directory '/home/kend/Egg/runtime/js' x86:Ubuntu:~/Egg >>> cd runtime/ x86:Ubuntu:~/Egg/runtime >>> ls js x86:Ubuntu:~/Egg/runtime >>> cd js x86:Ubuntu:~/Egg/runtime/js >>> ls -F bootstrapper.js image-segments/ LICENSE Makefile README.md webside/ ImageSegmentReader.js interpreter/ lmr.js package.json sample-server/
The make js command should have left a few things in egg/runtime/js. There you'll find a sample-server dir, an interpreter with the transpiled vm and an image-segments folder with kernel.json.
The sample server is a nodejs application that basically reads the kernel.json image and lets you browse it from a web browser. You will need to have node in your system to test it. Egg doesn't come with an IDE written in Smalltalk, but instead has a webside backend.
In order to configure webside, you need two things: (1) to setup the webside server, and (2) to setup the webside backend.
For (1):
git clone git@github.com:guillermoamaral/Webside.git
cd Webside
npm install
npm start
This will start the webside server. You still need to connect to it. For (2): cd /home/kend/Egg/runtime/js/webside npm install
This will install the webside backend dependencies. Finally, start the sample-server:
cd /home/kend/Egg/runtime/js/sample-server
npm start
From your output I also see that our make js isn't generating the compiler.json image segment yet, but still you should be able to do it manually with:
cd /home/kend/Egg/bootstrap/pharo && ./pharo powerlangjs.image eval "JSTranspiler generateCompilerSegment"
With that setup you'll have:
The image has two main modules and nothing else: Kernel and Compiler. This is in an early alpha stage, so YMMV. We are working on implementing more webside api endpoints to allow doing more stuff, but a this point I think it may even be possible to open a debugger on a doesNotUnderstand message. Code can be changed from the browsers, but it is not possible to save changes back to files yet.
No joy. No "start" script found in sample server. Webside brings up browser, but spawns new processes until cursor freezes and system power cycle to reboot. Same result with FireFox, Falkon, and Chromium browsers.
==== x86:Ubuntu:~/Webside >>> npm start
webside2@0.1.0 start react-scripts start
OK. Magic incantation for sample-server is (resources/js dir)
node sample-server/index.js
NOT
npm start
Yes! Sorry about that!
Were you able to get the "full" thing working?
I get the PowerlangJS Web IDE up. I can view class definitions and method defs in some classes (else BackendError). On my old laptop is verrrry sloooow. I don't know how to eval (no workspace).
Ok great, you are getting into the limits of what is possible right now. Just one detail, if you have a fast computer, you should be able to setup webside server there, open the browser and connect to the remotely running egg endpoint. We have not tested this with egg, but it should work fine, modulo setup of network permissions.
Looks like connection, but no access
'String' BackendError: "Cannot get class names from http://192.168.50.238:9005/classes?names=true"
You can check the requests and responses in the browser inspector to see what's going on. Make sure to open the inspector before performing the action that fails and opening the network tab (I use chrome but I believe ff is the same or very similar).
I'll be out of reach for a couple of days, hope you can move a little bit forward with this in the meantime. Merry Christmas! ššš
Pharo does not run on an arm64 but I copied the built runtime/js folder from Intel onto the egg repo on a Pinebook and am able to run Webside and ProtoBeeJS runtime on the Pinebook.
Not fast, but fast enough to be usable.
Merry Christmas to you as well!
-KenD
x86:Ubuntu:~/egg >>> git pull Already up to date.
x86:Ubuntu:~/egg >>> make js make -C runtime/js all make[1]: Entering directory '/home/kend/egg/runtime/js' cd /home/kend/egg/bootstrap/pharo && ./pharo powerlangjs.image eval "JSTranspiler transpilePowerlangInterpreter" Instance of DirectJSCodeEmitter did not understand #visitThisContextNode: DirectJSCodeEmitter(Object)>>doesNotUnderstand: #visitThisContextNode: ThisContextVariable>>acceptVisitor:node: RBVariableNode>>acceptVisitor: DirectJSCodeEmitter>>basicVisitMessageNode: DirectJSCodeEmitter>>visitMessageNode: RBMessageNode>>acceptVisitor: DirectJSCodeEmitter>>basicVisitMessageNode: DirectJSCodeEmitter>>visitMessageNode: RBMessageNode>>acceptVisitor: DirectJSCodeEmitter>>basicVisitMessageNode: DirectJSCodeEmitter>>visitMessageNode: RBMessageNode>>acceptVisitor: [ :arg | arg acceptVisitor: self ] in DirectJSCodeEmitter>>basicVisitMessageNode: in Block: [ :arg | arg acceptVisitor: self ] OrderedCollection(SequenceableCollection)>>do:separatedBy: DirectJSCodeEmitter>>basicVisitMessageNode: DirectJSCodeEmitter>>visitMessageNode: RBMessageNode>>acceptVisitor: DirectJSCodeEmitter>>visitAssignmentNode: RBAssignmentNode>>acceptVisitor: DirectJSCodeEmitter>>visitBlockStatements:inline: DirectJSCodeEmitter>>visitBlockNode: RBBlockNode>>acceptVisitor: DirectJSCodeEmitter>>basicVisitMessageNode: DirectJSCodeEmitter>>visitMessageNode: RBMessageNode>>acceptVisitor: [ :s | s acceptVisitor: self. stream nextPut: $; ] in DirectJSCodeEmitter>>visitMethodNode: in Block: [ :s | ... OrderedCollection(SequenceableCollection)>>do:separatedBy: DirectJSCodeEmitter>>visitMethodNode: RBMethodNode>>acceptVisitor: DirectJSCodeEmitter>>transpile make[1]: [Makefile:21: interpreter/PowertalkEvaluator.js] Error 1 make[1]: Leaving directory '/home/kend/egg/runtime/js' make: [Makefile:6: js] Error 2
x86:Ubuntu:~/egg >>> uname -a Linux OlIntelLaptop 6.2.0-39-generic #40~22.04.1-Ubuntu SMP PREEMPT_DYNAMIC Thu Nov 16 10:53:04 UTC 2 x86_64 x86_64 x86_64 GNU/Linux
x86:Ubuntu:~/egg >>>