diff --git a/Chapters/Intro.md b/Chapters/Intro.md deleted file mode 100644 index 445df6f..0000000 --- a/Chapters/Intro.md +++ /dev/null @@ -1,90 +0,0 @@ -## Architecture - - - -``` -Pharo --slang --> C - -Interpreter JIT Compiler - -``` - -## Interpreter - -Each bytecode is a method -Bytecode table - #( - byte1 - byte2) - -``` -while (true){ - b =fetch (byte) - table[b]() -} -``` - -Threaded interpreter with goto between branches - - -## JIT -#( - genByte1 - genByte2 - ... -) -250 different bytecode - -genByte1 -- generates IR abstract interpretation of the byte code -- code generation -- generated code is a code cache -- there is a reference counting algorithm of the code cache - -Primitives - - -### Stack - -The native stack is split into stack. -Each thread on pages on the native stack. - -Each of the thread - -### Spur the memory scavenger - -- scavenger old - mark and compact -- copy collector for young object - future / past / nursery (eden), .... old - -### memory model - -- header -- immediate -- opaque (bytearray) - - -### Frame to context - - -### Frames - -Frames are not the same in interpreter or in jit. -The PC is different. - -### Calling conventions - - - - - - -### Cog vs. CogIt - -- Cog VM -- CogIt compiler inside the VM - - - - diff --git a/Chapters/0-RuntimeSystemOverview/figures/Makefile b/Part0-Preamble/0-RuntimeSystemOverview/figures/Makefile similarity index 100% rename from Chapters/0-RuntimeSystemOverview/figures/Makefile rename to Part0-Preamble/0-RuntimeSystemOverview/figures/Makefile diff --git a/Chapters/0-RuntimeSystemOverview/figures/runtime-system-ascii.txt b/Part0-Preamble/0-RuntimeSystemOverview/figures/runtime-system-ascii.txt similarity index 100% rename from Chapters/0-RuntimeSystemOverview/figures/runtime-system-ascii.txt rename to Part0-Preamble/0-RuntimeSystemOverview/figures/runtime-system-ascii.txt diff --git a/Chapters/0-RuntimeSystemOverview/figures/runtime-system.pdf b/Part0-Preamble/0-RuntimeSystemOverview/figures/runtime-system.pdf similarity index 100% rename from Chapters/0-RuntimeSystemOverview/figures/runtime-system.pdf rename to Part0-Preamble/0-RuntimeSystemOverview/figures/runtime-system.pdf diff --git a/Chapters/0-RuntimeSystemOverview/runtime.md b/Part0-Preamble/0-RuntimeSystemOverview/runtime.md similarity index 100% rename from Chapters/0-RuntimeSystemOverview/runtime.md rename to Part0-Preamble/0-RuntimeSystemOverview/runtime.md diff --git a/Chapters/1-ObjectStructure/figures/.goutputstream-F0OPR2 b/Part0-Preamble/1-ObjectStructure/figures/.goutputstream-F0OPR2 similarity index 100% rename from Chapters/1-ObjectStructure/figures/.goutputstream-F0OPR2 rename to Part0-Preamble/1-ObjectStructure/figures/.goutputstream-F0OPR2 diff --git a/Chapters/1-ObjectStructure/figures/32IndexableLastField.png b/Part0-Preamble/1-ObjectStructure/figures/32IndexableLastField.png similarity index 100% rename from Chapters/1-ObjectStructure/figures/32IndexableLastField.png rename to Part0-Preamble/1-ObjectStructure/figures/32IndexableLastField.png diff --git a/Chapters/1-ObjectStructure/figures/32bitsEmpty.graffle b/Part0-Preamble/1-ObjectStructure/figures/32bitsEmpty.graffle similarity index 100% rename from Chapters/1-ObjectStructure/figures/32bitsEmpty.graffle rename to Part0-Preamble/1-ObjectStructure/figures/32bitsEmpty.graffle diff --git a/Chapters/1-ObjectStructure/figures/32bitsImmediate.graffle b/Part0-Preamble/1-ObjectStructure/figures/32bitsImmediate.graffle similarity index 100% rename from Chapters/1-ObjectStructure/figures/32bitsImmediate.graffle rename to Part0-Preamble/1-ObjectStructure/figures/32bitsImmediate.graffle diff --git a/Chapters/1-ObjectStructure/figures/32bitsImmediate.pdf b/Part0-Preamble/1-ObjectStructure/figures/32bitsImmediate.pdf similarity index 100% rename from Chapters/1-ObjectStructure/figures/32bitsImmediate.pdf rename to Part0-Preamble/1-ObjectStructure/figures/32bitsImmediate.pdf diff --git a/Chapters/1-ObjectStructure/figures/64bitsFloatImmediate.graffle b/Part0-Preamble/1-ObjectStructure/figures/64bitsFloatImmediate.graffle similarity index 100% rename from Chapters/1-ObjectStructure/figures/64bitsFloatImmediate.graffle rename to Part0-Preamble/1-ObjectStructure/figures/64bitsFloatImmediate.graffle diff --git a/Chapters/1-ObjectStructure/figures/64bitsFloatImmediate.pdf b/Part0-Preamble/1-ObjectStructure/figures/64bitsFloatImmediate.pdf similarity index 100% rename from Chapters/1-ObjectStructure/figures/64bitsFloatImmediate.pdf rename to Part0-Preamble/1-ObjectStructure/figures/64bitsFloatImmediate.pdf diff --git a/Chapters/1-ObjectStructure/figures/64bitsImmediate.graffle b/Part0-Preamble/1-ObjectStructure/figures/64bitsImmediate.graffle similarity index 100% rename from Chapters/1-ObjectStructure/figures/64bitsImmediate.graffle rename to Part0-Preamble/1-ObjectStructure/figures/64bitsImmediate.graffle diff --git a/Chapters/1-ObjectStructure/figures/64bitsImmediate.pdf b/Part0-Preamble/1-ObjectStructure/figures/64bitsImmediate.pdf similarity index 100% rename from Chapters/1-ObjectStructure/figures/64bitsImmediate.pdf rename to Part0-Preamble/1-ObjectStructure/figures/64bitsImmediate.pdf diff --git a/Chapters/1-ObjectStructure/figures/Aligment2.graffle b/Part0-Preamble/1-ObjectStructure/figures/Aligment2.graffle similarity index 100% rename from Chapters/1-ObjectStructure/figures/Aligment2.graffle rename to Part0-Preamble/1-ObjectStructure/figures/Aligment2.graffle diff --git a/Chapters/1-ObjectStructure/figures/Aligment2.pdf b/Part0-Preamble/1-ObjectStructure/figures/Aligment2.pdf similarity index 100% rename from Chapters/1-ObjectStructure/figures/Aligment2.pdf rename to Part0-Preamble/1-ObjectStructure/figures/Aligment2.pdf diff --git a/Chapters/1-ObjectStructure/figures/Alignment.graffle b/Part0-Preamble/1-ObjectStructure/figures/Alignment.graffle similarity index 100% rename from Chapters/1-ObjectStructure/figures/Alignment.graffle rename to Part0-Preamble/1-ObjectStructure/figures/Alignment.graffle diff --git a/Chapters/1-ObjectStructure/figures/Alignment.pdf b/Part0-Preamble/1-ObjectStructure/figures/Alignment.pdf similarity index 100% rename from Chapters/1-ObjectStructure/figures/Alignment.pdf rename to Part0-Preamble/1-ObjectStructure/figures/Alignment.pdf diff --git a/Chapters/1-ObjectStructure/figures/DecodingTobeRedone.png b/Part0-Preamble/1-ObjectStructure/figures/DecodingTobeRedone.png similarity index 100% rename from Chapters/1-ObjectStructure/figures/DecodingTobeRedone.png rename to Part0-Preamble/1-ObjectStructure/figures/DecodingTobeRedone.png diff --git a/Chapters/1-ObjectStructure/figures/LittleBigEndian.drawio b/Part0-Preamble/1-ObjectStructure/figures/LittleBigEndian.drawio similarity index 100% rename from Chapters/1-ObjectStructure/figures/LittleBigEndian.drawio rename to Part0-Preamble/1-ObjectStructure/figures/LittleBigEndian.drawio diff --git a/Chapters/1-ObjectStructure/figures/LittleBigEndian.drawio.pdf b/Part0-Preamble/1-ObjectStructure/figures/LittleBigEndian.drawio.pdf similarity index 100% rename from Chapters/1-ObjectStructure/figures/LittleBigEndian.drawio.pdf rename to Part0-Preamble/1-ObjectStructure/figures/LittleBigEndian.drawio.pdf diff --git a/Chapters/1-ObjectStructure/figures/LittleBigEndian.drawio.svg b/Part0-Preamble/1-ObjectStructure/figures/LittleBigEndian.drawio.svg similarity index 100% rename from Chapters/1-ObjectStructure/figures/LittleBigEndian.drawio.svg rename to Part0-Preamble/1-ObjectStructure/figures/LittleBigEndian.drawio.svg diff --git a/Chapters/1-ObjectStructure/figures/LittleEndian.graffle b/Part0-Preamble/1-ObjectStructure/figures/LittleEndian.graffle similarity index 100% rename from Chapters/1-ObjectStructure/figures/LittleEndian.graffle rename to Part0-Preamble/1-ObjectStructure/figures/LittleEndian.graffle diff --git a/Chapters/1-ObjectStructure/figures/LittleEndian.pdf b/Part0-Preamble/1-ObjectStructure/figures/LittleEndian.pdf similarity index 100% rename from Chapters/1-ObjectStructure/figures/LittleEndian.pdf rename to Part0-Preamble/1-ObjectStructure/figures/LittleEndian.pdf diff --git a/Chapters/1-ObjectStructure/figures/Makefile b/Part0-Preamble/1-ObjectStructure/figures/Makefile similarity index 100% rename from Chapters/1-ObjectStructure/figures/Makefile rename to Part0-Preamble/1-ObjectStructure/figures/Makefile diff --git a/Chapters/1-ObjectStructure/figures/ObjectHeader.graffle b/Part0-Preamble/1-ObjectStructure/figures/ObjectHeader.graffle similarity index 100% rename from Chapters/1-ObjectStructure/figures/ObjectHeader.graffle rename to Part0-Preamble/1-ObjectStructure/figures/ObjectHeader.graffle diff --git a/Chapters/1-ObjectStructure/figures/ObjectHeader.pdf b/Part0-Preamble/1-ObjectStructure/figures/ObjectHeader.pdf similarity index 100% rename from Chapters/1-ObjectStructure/figures/ObjectHeader.pdf rename to Part0-Preamble/1-ObjectStructure/figures/ObjectHeader.pdf diff --git a/Chapters/1-ObjectStructure/figures/architecture32vs64.pdf b/Part0-Preamble/1-ObjectStructure/figures/architecture32vs64.pdf similarity index 100% rename from Chapters/1-ObjectStructure/figures/architecture32vs64.pdf rename to Part0-Preamble/1-ObjectStructure/figures/architecture32vs64.pdf diff --git a/Chapters/1-ObjectStructure/figures/architecture32vs64.svg b/Part0-Preamble/1-ObjectStructure/figures/architecture32vs64.svg similarity index 100% rename from Chapters/1-ObjectStructure/figures/architecture32vs64.svg rename to Part0-Preamble/1-ObjectStructure/figures/architecture32vs64.svg diff --git a/Chapters/1-ObjectStructure/figures/classtable-ascii.txt b/Part0-Preamble/1-ObjectStructure/figures/classtable-ascii.txt similarity index 100% rename from Chapters/1-ObjectStructure/figures/classtable-ascii.txt rename to Part0-Preamble/1-ObjectStructure/figures/classtable-ascii.txt diff --git a/Chapters/1-ObjectStructure/figures/classtable.pdf b/Part0-Preamble/1-ObjectStructure/figures/classtable.pdf similarity index 100% rename from Chapters/1-ObjectStructure/figures/classtable.pdf rename to Part0-Preamble/1-ObjectStructure/figures/classtable.pdf diff --git a/Chapters/1-ObjectStructure/figures/compile_method_shape-ascii.txt b/Part0-Preamble/1-ObjectStructure/figures/compile_method_shape-ascii.txt similarity index 100% rename from Chapters/1-ObjectStructure/figures/compile_method_shape-ascii.txt rename to Part0-Preamble/1-ObjectStructure/figures/compile_method_shape-ascii.txt diff --git a/Chapters/1-ObjectStructure/figures/compile_method_shape.pdf b/Part0-Preamble/1-ObjectStructure/figures/compile_method_shape.pdf similarity index 100% rename from Chapters/1-ObjectStructure/figures/compile_method_shape.pdf rename to Part0-Preamble/1-ObjectStructure/figures/compile_method_shape.pdf diff --git a/Chapters/1-ObjectStructure/figures/objectLayout.pdf b/Part0-Preamble/1-ObjectStructure/figures/objectLayout.pdf similarity index 100% rename from Chapters/1-ObjectStructure/figures/objectLayout.pdf rename to Part0-Preamble/1-ObjectStructure/figures/objectLayout.pdf diff --git a/Chapters/1-ObjectStructure/figures/objectLayout.svg b/Part0-Preamble/1-ObjectStructure/figures/objectLayout.svg similarity index 100% rename from Chapters/1-ObjectStructure/figures/objectLayout.svg rename to Part0-Preamble/1-ObjectStructure/figures/objectLayout.svg diff --git a/Chapters/1-ObjectStructure/figures/references.drawio b/Part0-Preamble/1-ObjectStructure/figures/references.drawio similarity index 100% rename from Chapters/1-ObjectStructure/figures/references.drawio rename to Part0-Preamble/1-ObjectStructure/figures/references.drawio diff --git a/Chapters/1-ObjectStructure/figures/references.pdf b/Part0-Preamble/1-ObjectStructure/figures/references.pdf similarity index 100% rename from Chapters/1-ObjectStructure/figures/references.pdf rename to Part0-Preamble/1-ObjectStructure/figures/references.pdf diff --git a/Chapters/1-ObjectStructure/objectStructure.md b/Part0-Preamble/1-ObjectStructure/objectStructure.md similarity index 100% rename from Chapters/1-ObjectStructure/objectStructure.md rename to Part0-Preamble/1-ObjectStructure/objectStructure.md diff --git a/Chapters/2-MethodsAndBytecode/contextReification.md b/Part1-InterpreterAndBytecode/2-MethodsAndBytecode/contextReification.md similarity index 100% rename from Chapters/2-MethodsAndBytecode/contextReification.md rename to Part1-InterpreterAndBytecode/2-MethodsAndBytecode/contextReification.md diff --git a/Chapters/2-MethodsAndBytecode/figures/20220928_114230.jpg b/Part1-InterpreterAndBytecode/2-MethodsAndBytecode/figures/20220928_114230.jpg similarity index 100% rename from Chapters/2-MethodsAndBytecode/figures/20220928_114230.jpg rename to Part1-InterpreterAndBytecode/2-MethodsAndBytecode/figures/20220928_114230.jpg diff --git a/Chapters/2-MethodsAndBytecode/figures/Makefile b/Part1-InterpreterAndBytecode/2-MethodsAndBytecode/figures/Makefile similarity index 100% rename from Chapters/2-MethodsAndBytecode/figures/Makefile rename to Part1-InterpreterAndBytecode/2-MethodsAndBytecode/figures/Makefile diff --git a/Chapters/2-MethodsAndBytecode/figures/README.md b/Part1-InterpreterAndBytecode/2-MethodsAndBytecode/figures/README.md similarity index 100% rename from Chapters/2-MethodsAndBytecode/figures/README.md rename to Part1-InterpreterAndBytecode/2-MethodsAndBytecode/figures/README.md diff --git a/Chapters/2-MethodsAndBytecode/figures/frames.jpg b/Part1-InterpreterAndBytecode/2-MethodsAndBytecode/figures/frames.jpg similarity index 100% rename from Chapters/2-MethodsAndBytecode/figures/frames.jpg rename to Part1-InterpreterAndBytecode/2-MethodsAndBytecode/figures/frames.jpg diff --git a/Chapters/2-MethodsAndBytecode/methodsbytecode.md b/Part1-InterpreterAndBytecode/2-MethodsAndBytecode/methodsbytecode.md similarity index 90% rename from Chapters/2-MethodsAndBytecode/methodsbytecode.md rename to Part1-InterpreterAndBytecode/2-MethodsAndBytecode/methodsbytecode.md index e376248..a15cdf7 100644 --- a/Chapters/2-MethodsAndBytecode/methodsbytecode.md +++ b/Part1-InterpreterAndBytecode/2-MethodsAndBytecode/methodsbytecode.md @@ -158,3 +158,12 @@ If the check succeeds, the primitive performs its operation and returns without This first execution path is the _fast path_. If the check fails, the primitive fails and the method's fallback bytecode implements the slower type conversion for the other type combinations. + +### Conclusion + +In this chapter we studied how the Pharo virtual machine represents code. +- The Pharo VM defines a stack machine: computation is expressed by manipulating a stack with push and pop operations. These operations are called bytecode instructions and primitive instructions. +- Code is organized in methods. Methods contain at most one primitive, a sequence of bytecode instructions and a list of literal values. +- bytecode instructions manipulating variables carry semantic information about them: there are special instructions for instance variables, class variables and temporary variables. This allows the VM to concentrate on the execution and not to do name analysis at runtime to guess what kind of variable is each name +- primitive instructions can fail. If they succeed in their computation they pop their arguments and push the result. If they fail, they leave the stack untouched and return an error code. +- primitive methods make a strong distinction between slow and fast paths: in the fast path they execute the primitive instruction. If it was a success, execution continues in the sender. Otherwise, the method's bytecode is executed. \ No newline at end of file diff --git a/Chapters/3-SemanticsByExample/basicsOnExecution.md b/Part1-InterpreterAndBytecode/3-SemanticsByExample/basicsOnExecution.md similarity index 100% rename from Chapters/3-SemanticsByExample/basicsOnExecution.md rename to Part1-InterpreterAndBytecode/3-SemanticsByExample/basicsOnExecution.md diff --git a/Chapters/3-SemanticsByExample/figures/Makefile b/Part1-InterpreterAndBytecode/3-SemanticsByExample/figures/Makefile similarity index 100% rename from Chapters/3-SemanticsByExample/figures/Makefile rename to Part1-InterpreterAndBytecode/3-SemanticsByExample/figures/Makefile diff --git a/Chapters/3-SemanticsByExample/figures/README.md b/Part1-InterpreterAndBytecode/3-SemanticsByExample/figures/README.md similarity index 100% rename from Chapters/3-SemanticsByExample/figures/README.md rename to Part1-InterpreterAndBytecode/3-SemanticsByExample/figures/README.md diff --git a/Chapters/3-SemanticsByExample/figures/interpreter_activation-ascii.txt b/Part1-InterpreterAndBytecode/3-SemanticsByExample/figures/interpreter_activation-ascii.txt similarity index 100% rename from Chapters/3-SemanticsByExample/figures/interpreter_activation-ascii.txt rename to Part1-InterpreterAndBytecode/3-SemanticsByExample/figures/interpreter_activation-ascii.txt diff --git a/Chapters/3-SemanticsByExample/figures/interpreter_activation-step01-ascii.txt b/Part1-InterpreterAndBytecode/3-SemanticsByExample/figures/interpreter_activation-step01-ascii.txt similarity index 100% rename from Chapters/3-SemanticsByExample/figures/interpreter_activation-step01-ascii.txt rename to Part1-InterpreterAndBytecode/3-SemanticsByExample/figures/interpreter_activation-step01-ascii.txt diff --git a/Chapters/3-SemanticsByExample/figures/interpreter_activation-step01.pdf b/Part1-InterpreterAndBytecode/3-SemanticsByExample/figures/interpreter_activation-step01.pdf similarity index 100% rename from Chapters/3-SemanticsByExample/figures/interpreter_activation-step01.pdf rename to Part1-InterpreterAndBytecode/3-SemanticsByExample/figures/interpreter_activation-step01.pdf diff --git a/Chapters/3-SemanticsByExample/figures/interpreter_activation-step02-ascii.txt b/Part1-InterpreterAndBytecode/3-SemanticsByExample/figures/interpreter_activation-step02-ascii.txt similarity index 100% rename from Chapters/3-SemanticsByExample/figures/interpreter_activation-step02-ascii.txt rename to Part1-InterpreterAndBytecode/3-SemanticsByExample/figures/interpreter_activation-step02-ascii.txt diff --git a/Chapters/3-SemanticsByExample/figures/interpreter_activation-step02.pdf b/Part1-InterpreterAndBytecode/3-SemanticsByExample/figures/interpreter_activation-step02.pdf similarity index 100% rename from Chapters/3-SemanticsByExample/figures/interpreter_activation-step02.pdf rename to Part1-InterpreterAndBytecode/3-SemanticsByExample/figures/interpreter_activation-step02.pdf diff --git a/Chapters/3-SemanticsByExample/figures/interpreter_activation-step03-ascii.txt b/Part1-InterpreterAndBytecode/3-SemanticsByExample/figures/interpreter_activation-step03-ascii.txt similarity index 100% rename from Chapters/3-SemanticsByExample/figures/interpreter_activation-step03-ascii.txt rename to Part1-InterpreterAndBytecode/3-SemanticsByExample/figures/interpreter_activation-step03-ascii.txt diff --git a/Chapters/3-SemanticsByExample/figures/interpreter_activation-step03.pdf b/Part1-InterpreterAndBytecode/3-SemanticsByExample/figures/interpreter_activation-step03.pdf similarity index 100% rename from Chapters/3-SemanticsByExample/figures/interpreter_activation-step03.pdf rename to Part1-InterpreterAndBytecode/3-SemanticsByExample/figures/interpreter_activation-step03.pdf diff --git a/Chapters/3-SemanticsByExample/figures/interpreter_activation-step04-ascii.txt b/Part1-InterpreterAndBytecode/3-SemanticsByExample/figures/interpreter_activation-step04-ascii.txt similarity index 100% rename from Chapters/3-SemanticsByExample/figures/interpreter_activation-step04-ascii.txt rename to Part1-InterpreterAndBytecode/3-SemanticsByExample/figures/interpreter_activation-step04-ascii.txt diff --git a/Chapters/3-SemanticsByExample/figures/interpreter_activation-step04.pdf b/Part1-InterpreterAndBytecode/3-SemanticsByExample/figures/interpreter_activation-step04.pdf similarity index 100% rename from Chapters/3-SemanticsByExample/figures/interpreter_activation-step04.pdf rename to Part1-InterpreterAndBytecode/3-SemanticsByExample/figures/interpreter_activation-step04.pdf diff --git a/Chapters/3-SemanticsByExample/figures/interpreter_activation-step05-ascii.txt b/Part1-InterpreterAndBytecode/3-SemanticsByExample/figures/interpreter_activation-step05-ascii.txt similarity index 100% rename from Chapters/3-SemanticsByExample/figures/interpreter_activation-step05-ascii.txt rename to Part1-InterpreterAndBytecode/3-SemanticsByExample/figures/interpreter_activation-step05-ascii.txt diff --git a/Chapters/3-SemanticsByExample/figures/interpreter_activation-step05.pdf b/Part1-InterpreterAndBytecode/3-SemanticsByExample/figures/interpreter_activation-step05.pdf similarity index 100% rename from Chapters/3-SemanticsByExample/figures/interpreter_activation-step05.pdf rename to Part1-InterpreterAndBytecode/3-SemanticsByExample/figures/interpreter_activation-step05.pdf diff --git a/Chapters/3-SemanticsByExample/figures/interpreter_activation-step06-ascii.txt b/Part1-InterpreterAndBytecode/3-SemanticsByExample/figures/interpreter_activation-step06-ascii.txt similarity index 100% rename from Chapters/3-SemanticsByExample/figures/interpreter_activation-step06-ascii.txt rename to Part1-InterpreterAndBytecode/3-SemanticsByExample/figures/interpreter_activation-step06-ascii.txt diff --git a/Chapters/3-SemanticsByExample/figures/interpreter_activation-step06.pdf b/Part1-InterpreterAndBytecode/3-SemanticsByExample/figures/interpreter_activation-step06.pdf similarity index 100% rename from Chapters/3-SemanticsByExample/figures/interpreter_activation-step06.pdf rename to Part1-InterpreterAndBytecode/3-SemanticsByExample/figures/interpreter_activation-step06.pdf diff --git a/Chapters/3-SemanticsByExample/figures/interpreter_activation-step07-ascii.txt b/Part1-InterpreterAndBytecode/3-SemanticsByExample/figures/interpreter_activation-step07-ascii.txt similarity index 100% rename from Chapters/3-SemanticsByExample/figures/interpreter_activation-step07-ascii.txt rename to Part1-InterpreterAndBytecode/3-SemanticsByExample/figures/interpreter_activation-step07-ascii.txt diff --git a/Chapters/3-SemanticsByExample/figures/interpreter_activation-step07.pdf b/Part1-InterpreterAndBytecode/3-SemanticsByExample/figures/interpreter_activation-step07.pdf similarity index 100% rename from Chapters/3-SemanticsByExample/figures/interpreter_activation-step07.pdf rename to Part1-InterpreterAndBytecode/3-SemanticsByExample/figures/interpreter_activation-step07.pdf diff --git a/Chapters/3-SemanticsByExample/figures/interpreter_activation-step08-ascii.txt b/Part1-InterpreterAndBytecode/3-SemanticsByExample/figures/interpreter_activation-step08-ascii.txt similarity index 100% rename from Chapters/3-SemanticsByExample/figures/interpreter_activation-step08-ascii.txt rename to Part1-InterpreterAndBytecode/3-SemanticsByExample/figures/interpreter_activation-step08-ascii.txt diff --git a/Chapters/3-SemanticsByExample/figures/interpreter_activation-step08.pdf b/Part1-InterpreterAndBytecode/3-SemanticsByExample/figures/interpreter_activation-step08.pdf similarity index 100% rename from Chapters/3-SemanticsByExample/figures/interpreter_activation-step08.pdf rename to Part1-InterpreterAndBytecode/3-SemanticsByExample/figures/interpreter_activation-step08.pdf diff --git a/Chapters/3-SemanticsByExample/figures/interpreter_activation-step09-ascii.txt b/Part1-InterpreterAndBytecode/3-SemanticsByExample/figures/interpreter_activation-step09-ascii.txt similarity index 100% rename from Chapters/3-SemanticsByExample/figures/interpreter_activation-step09-ascii.txt rename to Part1-InterpreterAndBytecode/3-SemanticsByExample/figures/interpreter_activation-step09-ascii.txt diff --git a/Chapters/3-SemanticsByExample/figures/interpreter_activation-step09.pdf b/Part1-InterpreterAndBytecode/3-SemanticsByExample/figures/interpreter_activation-step09.pdf similarity index 100% rename from Chapters/3-SemanticsByExample/figures/interpreter_activation-step09.pdf rename to Part1-InterpreterAndBytecode/3-SemanticsByExample/figures/interpreter_activation-step09.pdf diff --git a/Chapters/3-SemanticsByExample/figures/interpreter_activation-step10-ascii.txt b/Part1-InterpreterAndBytecode/3-SemanticsByExample/figures/interpreter_activation-step10-ascii.txt similarity index 100% rename from Chapters/3-SemanticsByExample/figures/interpreter_activation-step10-ascii.txt rename to Part1-InterpreterAndBytecode/3-SemanticsByExample/figures/interpreter_activation-step10-ascii.txt diff --git a/Chapters/3-SemanticsByExample/figures/interpreter_activation-step10.pdf b/Part1-InterpreterAndBytecode/3-SemanticsByExample/figures/interpreter_activation-step10.pdf similarity index 100% rename from Chapters/3-SemanticsByExample/figures/interpreter_activation-step10.pdf rename to Part1-InterpreterAndBytecode/3-SemanticsByExample/figures/interpreter_activation-step10.pdf diff --git a/Chapters/3-SemanticsByExample/figures/interpreter_activation-step11-ascii.txt b/Part1-InterpreterAndBytecode/3-SemanticsByExample/figures/interpreter_activation-step11-ascii.txt similarity index 100% rename from Chapters/3-SemanticsByExample/figures/interpreter_activation-step11-ascii.txt rename to Part1-InterpreterAndBytecode/3-SemanticsByExample/figures/interpreter_activation-step11-ascii.txt diff --git a/Chapters/3-SemanticsByExample/figures/interpreter_activation-step11.pdf b/Part1-InterpreterAndBytecode/3-SemanticsByExample/figures/interpreter_activation-step11.pdf similarity index 100% rename from Chapters/3-SemanticsByExample/figures/interpreter_activation-step11.pdf rename to Part1-InterpreterAndBytecode/3-SemanticsByExample/figures/interpreter_activation-step11.pdf diff --git a/Chapters/3-SemanticsByExample/figures/interpreter_activation-step1213-ascii.txt b/Part1-InterpreterAndBytecode/3-SemanticsByExample/figures/interpreter_activation-step1213-ascii.txt similarity index 100% rename from Chapters/3-SemanticsByExample/figures/interpreter_activation-step1213-ascii.txt rename to Part1-InterpreterAndBytecode/3-SemanticsByExample/figures/interpreter_activation-step1213-ascii.txt diff --git a/Chapters/3-SemanticsByExample/figures/interpreter_activation-step1213.pdf b/Part1-InterpreterAndBytecode/3-SemanticsByExample/figures/interpreter_activation-step1213.pdf similarity index 100% rename from Chapters/3-SemanticsByExample/figures/interpreter_activation-step1213.pdf rename to Part1-InterpreterAndBytecode/3-SemanticsByExample/figures/interpreter_activation-step1213.pdf diff --git a/Chapters/3-SemanticsByExample/figures/interpreter_activation-step14-ascii.txt b/Part1-InterpreterAndBytecode/3-SemanticsByExample/figures/interpreter_activation-step14-ascii.txt similarity index 100% rename from Chapters/3-SemanticsByExample/figures/interpreter_activation-step14-ascii.txt rename to Part1-InterpreterAndBytecode/3-SemanticsByExample/figures/interpreter_activation-step14-ascii.txt diff --git a/Chapters/3-SemanticsByExample/figures/interpreter_activation-step14.pdf b/Part1-InterpreterAndBytecode/3-SemanticsByExample/figures/interpreter_activation-step14.pdf similarity index 100% rename from Chapters/3-SemanticsByExample/figures/interpreter_activation-step14.pdf rename to Part1-InterpreterAndBytecode/3-SemanticsByExample/figures/interpreter_activation-step14.pdf diff --git a/Chapters/3-SemanticsByExample/figures/interpreter_activation.pdf b/Part1-InterpreterAndBytecode/3-SemanticsByExample/figures/interpreter_activation.pdf similarity index 100% rename from Chapters/3-SemanticsByExample/figures/interpreter_activation.pdf rename to Part1-InterpreterAndBytecode/3-SemanticsByExample/figures/interpreter_activation.pdf diff --git a/Chapters/4-Interpreter/figures/Makefile b/Part1-InterpreterAndBytecode/4-Interpreter/figures/Makefile similarity index 100% rename from Chapters/4-Interpreter/figures/Makefile rename to Part1-InterpreterAndBytecode/4-Interpreter/figures/Makefile diff --git a/Chapters/4-Interpreter/figures/README.md b/Part1-InterpreterAndBytecode/4-Interpreter/figures/README.md similarity index 100% rename from Chapters/4-Interpreter/figures/README.md rename to Part1-InterpreterAndBytecode/4-Interpreter/figures/README.md diff --git a/Chapters/4-Interpreter/figures/interpreter_activation-ascii.txt b/Part1-InterpreterAndBytecode/4-Interpreter/figures/interpreter_activation-ascii.txt similarity index 100% rename from Chapters/4-Interpreter/figures/interpreter_activation-ascii.txt rename to Part1-InterpreterAndBytecode/4-Interpreter/figures/interpreter_activation-ascii.txt diff --git a/Chapters/4-Interpreter/figures/interpreter_activation.pdf b/Part1-InterpreterAndBytecode/4-Interpreter/figures/interpreter_activation.pdf similarity index 100% rename from Chapters/4-Interpreter/figures/interpreter_activation.pdf rename to Part1-InterpreterAndBytecode/4-Interpreter/figures/interpreter_activation.pdf diff --git a/Chapters/4-Interpreter/figures/interpreter_call_stack-ascii.txt b/Part1-InterpreterAndBytecode/4-Interpreter/figures/interpreter_call_stack-ascii.txt similarity index 100% rename from Chapters/4-Interpreter/figures/interpreter_call_stack-ascii.txt rename to Part1-InterpreterAndBytecode/4-Interpreter/figures/interpreter_call_stack-ascii.txt diff --git a/Chapters/4-Interpreter/figures/interpreter_call_stack.pdf b/Part1-InterpreterAndBytecode/4-Interpreter/figures/interpreter_call_stack.pdf similarity index 100% rename from Chapters/4-Interpreter/figures/interpreter_call_stack.pdf rename to Part1-InterpreterAndBytecode/4-Interpreter/figures/interpreter_call_stack.pdf diff --git a/Chapters/4-Interpreter/figures/interpreter_dnu-ascii.txt b/Part1-InterpreterAndBytecode/4-Interpreter/figures/interpreter_dnu-ascii.txt similarity index 100% rename from Chapters/4-Interpreter/figures/interpreter_dnu-ascii.txt rename to Part1-InterpreterAndBytecode/4-Interpreter/figures/interpreter_dnu-ascii.txt diff --git a/Chapters/4-Interpreter/figures/interpreter_dnu.pdf b/Part1-InterpreterAndBytecode/4-Interpreter/figures/interpreter_dnu.pdf similarity index 100% rename from Chapters/4-Interpreter/figures/interpreter_dnu.pdf rename to Part1-InterpreterAndBytecode/4-Interpreter/figures/interpreter_dnu.pdf diff --git a/Chapters/4-Interpreter/figures/interpreter_flags-ascii.txt b/Part1-InterpreterAndBytecode/4-Interpreter/figures/interpreter_flags-ascii.txt similarity index 100% rename from Chapters/4-Interpreter/figures/interpreter_flags-ascii.txt rename to Part1-InterpreterAndBytecode/4-Interpreter/figures/interpreter_flags-ascii.txt diff --git a/Chapters/4-Interpreter/figures/interpreter_flags.pdf b/Part1-InterpreterAndBytecode/4-Interpreter/figures/interpreter_flags.pdf similarity index 100% rename from Chapters/4-Interpreter/figures/interpreter_flags.pdf rename to Part1-InterpreterAndBytecode/4-Interpreter/figures/interpreter_flags.pdf diff --git a/Chapters/4-Interpreter/figures/interpreter_method_dictionary-ascii.txt b/Part1-InterpreterAndBytecode/4-Interpreter/figures/interpreter_method_dictionary-ascii.txt similarity index 100% rename from Chapters/4-Interpreter/figures/interpreter_method_dictionary-ascii.txt rename to Part1-InterpreterAndBytecode/4-Interpreter/figures/interpreter_method_dictionary-ascii.txt diff --git a/Chapters/4-Interpreter/figures/interpreter_method_dictionary.pdf b/Part1-InterpreterAndBytecode/4-Interpreter/figures/interpreter_method_dictionary.pdf similarity index 100% rename from Chapters/4-Interpreter/figures/interpreter_method_dictionary.pdf rename to Part1-InterpreterAndBytecode/4-Interpreter/figures/interpreter_method_dictionary.pdf diff --git a/Chapters/4-Interpreter/figures/interpreter_return-ascii.txt b/Part1-InterpreterAndBytecode/4-Interpreter/figures/interpreter_return-ascii.txt similarity index 100% rename from Chapters/4-Interpreter/figures/interpreter_return-ascii.txt rename to Part1-InterpreterAndBytecode/4-Interpreter/figures/interpreter_return-ascii.txt diff --git a/Chapters/4-Interpreter/figures/interpreter_return.pdf b/Part1-InterpreterAndBytecode/4-Interpreter/figures/interpreter_return.pdf similarity index 100% rename from Chapters/4-Interpreter/figures/interpreter_return.pdf rename to Part1-InterpreterAndBytecode/4-Interpreter/figures/interpreter_return.pdf diff --git a/Chapters/4-Interpreter/figures/interpreter_send-ascii.txt b/Part1-InterpreterAndBytecode/4-Interpreter/figures/interpreter_send-ascii.txt similarity index 100% rename from Chapters/4-Interpreter/figures/interpreter_send-ascii.txt rename to Part1-InterpreterAndBytecode/4-Interpreter/figures/interpreter_send-ascii.txt diff --git a/Chapters/4-Interpreter/figures/interpreter_send.pdf b/Part1-InterpreterAndBytecode/4-Interpreter/figures/interpreter_send.pdf similarity index 100% rename from Chapters/4-Interpreter/figures/interpreter_send.pdf rename to Part1-InterpreterAndBytecode/4-Interpreter/figures/interpreter_send.pdf diff --git a/Chapters/4-Interpreter/figures/interpreter_variables-ascii.txt b/Part1-InterpreterAndBytecode/4-Interpreter/figures/interpreter_variables-ascii.txt similarity index 100% rename from Chapters/4-Interpreter/figures/interpreter_variables-ascii.txt rename to Part1-InterpreterAndBytecode/4-Interpreter/figures/interpreter_variables-ascii.txt diff --git a/Chapters/4-Interpreter/figures/interpreter_variables.pdf b/Part1-InterpreterAndBytecode/4-Interpreter/figures/interpreter_variables.pdf similarity index 100% rename from Chapters/4-Interpreter/figures/interpreter_variables.pdf rename to Part1-InterpreterAndBytecode/4-Interpreter/figures/interpreter_variables.pdf diff --git a/Chapters/4-Interpreter/theInterpreter.md b/Part1-InterpreterAndBytecode/4-Interpreter/theInterpreter.md similarity index 100% rename from Chapters/4-Interpreter/theInterpreter.md rename to Part1-InterpreterAndBytecode/4-Interpreter/theInterpreter.md diff --git a/Chapters/5-DeeperBytecode/contextReification.md b/Part1-InterpreterAndBytecode/5-DeeperBytecode/contextReification.md similarity index 100% rename from Chapters/5-DeeperBytecode/contextReification.md rename to Part1-InterpreterAndBytecode/5-DeeperBytecode/contextReification.md diff --git a/Chapters/5-DeeperBytecode/figures/20220928_114230.jpg b/Part1-InterpreterAndBytecode/5-DeeperBytecode/figures/20220928_114230.jpg similarity index 100% rename from Chapters/5-DeeperBytecode/figures/20220928_114230.jpg rename to Part1-InterpreterAndBytecode/5-DeeperBytecode/figures/20220928_114230.jpg diff --git a/Chapters/5-DeeperBytecode/figures/Makefile b/Part1-InterpreterAndBytecode/5-DeeperBytecode/figures/Makefile similarity index 100% rename from Chapters/5-DeeperBytecode/figures/Makefile rename to Part1-InterpreterAndBytecode/5-DeeperBytecode/figures/Makefile diff --git a/Chapters/5-DeeperBytecode/figures/README.md b/Part1-InterpreterAndBytecode/5-DeeperBytecode/figures/README.md similarity index 100% rename from Chapters/5-DeeperBytecode/figures/README.md rename to Part1-InterpreterAndBytecode/5-DeeperBytecode/figures/README.md diff --git a/Chapters/5-DeeperBytecode/figures/compile_method_shape-ascii.txt b/Part1-InterpreterAndBytecode/5-DeeperBytecode/figures/compile_method_shape-ascii.txt similarity index 100% rename from Chapters/5-DeeperBytecode/figures/compile_method_shape-ascii.txt rename to Part1-InterpreterAndBytecode/5-DeeperBytecode/figures/compile_method_shape-ascii.txt diff --git a/Chapters/5-DeeperBytecode/figures/compile_method_shape.pdf b/Part1-InterpreterAndBytecode/5-DeeperBytecode/figures/compile_method_shape.pdf similarity index 100% rename from Chapters/5-DeeperBytecode/figures/compile_method_shape.pdf rename to Part1-InterpreterAndBytecode/5-DeeperBytecode/figures/compile_method_shape.pdf diff --git a/Chapters/5-DeeperBytecode/figures/frames.jpg b/Part1-InterpreterAndBytecode/5-DeeperBytecode/figures/frames.jpg similarity index 100% rename from Chapters/5-DeeperBytecode/figures/frames.jpg rename to Part1-InterpreterAndBytecode/5-DeeperBytecode/figures/frames.jpg diff --git a/Chapters/5-DeeperBytecode/methodsbytecode.md b/Part1-InterpreterAndBytecode/5-DeeperBytecode/methodsbytecode.md similarity index 97% rename from Chapters/5-DeeperBytecode/methodsbytecode.md rename to Part1-InterpreterAndBytecode/5-DeeperBytecode/methodsbytecode.md index 27e6b60..a0158f3 100644 --- a/Chapters/5-DeeperBytecode/methodsbytecode.md +++ b/Part1-InterpreterAndBytecode/5-DeeperBytecode/methodsbytecode.md @@ -352,12 +352,13 @@ Some of the most notable instructions are: ### Conclusion -In this chapter we studied how the Pharo virtual machine represents code. -The Pharo VM defines a stack machine: computation is expressed by manipulating a stack with push and pop operations. -Code is organized in methods. Methods contain at most one primitive, a sequence of bytecode instructions and a list of literal values. +In this chapter we studied the actual encoding of Pharo instructions. +Moreover, we explored many optimizations that can be done at the level of bytecode encoding. -We explored many optimizations that can be done at the level of bytecode encoding. -Encoding optimizations help make methods shorter by having smaller bytecode sequences and less method literals. +- Pharo's bytecode set has a variable encoding with instructions taking between 1 and 3 bytes +- Encoding optimizations make methods shorter by having smaller bytecode sequencesx and less method literals +- common bytecode instructions can be shortened and made special instructions, avoiding expensive literals and arguments +- common bytecode sequences can be combined into (shorter!) super instructions too In the following chapters we will study the implementation of the Pharo interpreter and several of its portable optimizations. In later chapters we will study low-level optimizations of the interpreter thanks to the Slang framework that applies indirect threading, inlinings, and variable autolocalization. diff --git a/Chapters/6-InterpreterOptimizations/interpreteroptimizations.md b/Part1-InterpreterAndBytecode/6-InterpreterOptimizations/interpreteroptimizations.md similarity index 100% rename from Chapters/6-InterpreterOptimizations/interpreteroptimizations.md rename to Part1-InterpreterAndBytecode/6-InterpreterOptimizations/interpreteroptimizations.md diff --git a/Chapters/CallingConventions/CallingConventions.md b/Part2-JIT/CallingConventions/CallingConventions.md similarity index 100% rename from Chapters/CallingConventions/CallingConventions.md rename to Part2-JIT/CallingConventions/CallingConventions.md diff --git a/Chapters/CallingConventions/figures/20220928_114230.jpg b/Part2-JIT/CallingConventions/figures/20220928_114230.jpg similarity index 100% rename from Chapters/CallingConventions/figures/20220928_114230.jpg rename to Part2-JIT/CallingConventions/figures/20220928_114230.jpg diff --git a/Chapters/CallingConventions/figures/frames.jpg b/Part2-JIT/CallingConventions/figures/frames.jpg similarity index 100% rename from Chapters/CallingConventions/figures/frames.jpg rename to Part2-JIT/CallingConventions/figures/frames.jpg diff --git a/Chapters/JIT/Jit-Introduction.md b/Part2-JIT/JIT/Jit-Introduction.md similarity index 100% rename from Chapters/JIT/Jit-Introduction.md rename to Part2-JIT/JIT/Jit-Introduction.md diff --git a/Chapters/JIT/figures/lookupcache.JPG b/Part2-JIT/JIT/figures/lookupcache.JPG similarity index 100% rename from Chapters/JIT/figures/lookupcache.JPG rename to Part2-JIT/JIT/figures/lookupcache.JPG diff --git a/Chapters/JIT/figures/pic.JPG b/Part2-JIT/JIT/figures/pic.JPG similarity index 100% rename from Chapters/JIT/figures/pic.JPG rename to Part2-JIT/JIT/figures/pic.JPG diff --git a/Chapters/JIT/stackStructure.md b/Part2-JIT/JIT/stackStructure.md similarity index 100% rename from Chapters/JIT/stackStructure.md rename to Part2-JIT/JIT/stackStructure.md diff --git a/Chapters/GarbageCollector/ephemerons.md b/Part3-MemoryManagement/GarbageCollector/ephemerons.md similarity index 100% rename from Chapters/GarbageCollector/ephemerons.md rename to Part3-MemoryManagement/GarbageCollector/ephemerons.md diff --git a/Chapters/GarbageCollector/figures/32bitsImmediate.pdf b/Part3-MemoryManagement/GarbageCollector/figures/32bitsImmediate.pdf similarity index 100% rename from Chapters/GarbageCollector/figures/32bitsImmediate.pdf rename to Part3-MemoryManagement/GarbageCollector/figures/32bitsImmediate.pdf diff --git a/Chapters/GarbageCollector/figures/64bitsImmediate.pdf b/Part3-MemoryManagement/GarbageCollector/figures/64bitsImmediate.pdf similarity index 100% rename from Chapters/GarbageCollector/figures/64bitsImmediate.pdf rename to Part3-MemoryManagement/GarbageCollector/figures/64bitsImmediate.pdf diff --git a/Chapters/GarbageCollector/figures/Aligment.pdf b/Part3-MemoryManagement/GarbageCollector/figures/Aligment.pdf similarity index 100% rename from Chapters/GarbageCollector/figures/Aligment.pdf rename to Part3-MemoryManagement/GarbageCollector/figures/Aligment.pdf diff --git a/Chapters/GarbageCollector/figures/Aligment2.pdf b/Part3-MemoryManagement/GarbageCollector/figures/Aligment2.pdf similarity index 100% rename from Chapters/GarbageCollector/figures/Aligment2.pdf rename to Part3-MemoryManagement/GarbageCollector/figures/Aligment2.pdf diff --git a/Chapters/GarbageCollector/figures/TreeList.graffle b/Part3-MemoryManagement/GarbageCollector/figures/TreeList.graffle similarity index 100% rename from Chapters/GarbageCollector/figures/TreeList.graffle rename to Part3-MemoryManagement/GarbageCollector/figures/TreeList.graffle diff --git a/Chapters/GarbageCollector/figures/TreeList.pdf b/Part3-MemoryManagement/GarbageCollector/figures/TreeList.pdf similarity index 100% rename from Chapters/GarbageCollector/figures/TreeList.pdf rename to Part3-MemoryManagement/GarbageCollector/figures/TreeList.pdf diff --git a/Chapters/GarbageCollector/figures/freeListBasic.graffle b/Part3-MemoryManagement/GarbageCollector/figures/freeListBasic.graffle similarity index 100% rename from Chapters/GarbageCollector/figures/freeListBasic.graffle rename to Part3-MemoryManagement/GarbageCollector/figures/freeListBasic.graffle diff --git a/Chapters/GarbageCollector/figures/freeListBasic.pdf b/Part3-MemoryManagement/GarbageCollector/figures/freeListBasic.pdf similarity index 100% rename from Chapters/GarbageCollector/figures/freeListBasic.pdf rename to Part3-MemoryManagement/GarbageCollector/figures/freeListBasic.pdf diff --git a/Chapters/GarbageCollector/figures/freeListMemory.graffle b/Part3-MemoryManagement/GarbageCollector/figures/freeListMemory.graffle similarity index 100% rename from Chapters/GarbageCollector/figures/freeListMemory.graffle rename to Part3-MemoryManagement/GarbageCollector/figures/freeListMemory.graffle diff --git a/Chapters/GarbageCollector/figures/freeListMemory.pdf b/Part3-MemoryManagement/GarbageCollector/figures/freeListMemory.pdf similarity index 100% rename from Chapters/GarbageCollector/figures/freeListMemory.pdf rename to Part3-MemoryManagement/GarbageCollector/figures/freeListMemory.pdf diff --git a/Chapters/GarbageCollector/figures/freeListMemory2.graffle b/Part3-MemoryManagement/GarbageCollector/figures/freeListMemory2.graffle similarity index 100% rename from Chapters/GarbageCollector/figures/freeListMemory2.graffle rename to Part3-MemoryManagement/GarbageCollector/figures/freeListMemory2.graffle diff --git a/Chapters/GarbageCollector/figures/freeListMemory2.pdf b/Part3-MemoryManagement/GarbageCollector/figures/freeListMemory2.pdf similarity index 100% rename from Chapters/GarbageCollector/figures/freeListMemory2.pdf rename to Part3-MemoryManagement/GarbageCollector/figures/freeListMemory2.pdf diff --git a/Chapters/GarbageCollector/figures/memoryMap.graffle b/Part3-MemoryManagement/GarbageCollector/figures/memoryMap.graffle similarity index 100% rename from Chapters/GarbageCollector/figures/memoryMap.graffle rename to Part3-MemoryManagement/GarbageCollector/figures/memoryMap.graffle diff --git a/Chapters/GarbageCollector/figures/memoryMap.pdf b/Part3-MemoryManagement/GarbageCollector/figures/memoryMap.pdf similarity index 100% rename from Chapters/GarbageCollector/figures/memoryMap.pdf rename to Part3-MemoryManagement/GarbageCollector/figures/memoryMap.pdf diff --git a/Chapters/GarbageCollector/figures/newSpace.graffle b/Part3-MemoryManagement/GarbageCollector/figures/newSpace.graffle similarity index 100% rename from Chapters/GarbageCollector/figures/newSpace.graffle rename to Part3-MemoryManagement/GarbageCollector/figures/newSpace.graffle diff --git a/Chapters/GarbageCollector/figures/newSpace.pdf b/Part3-MemoryManagement/GarbageCollector/figures/newSpace.pdf similarity index 100% rename from Chapters/GarbageCollector/figures/newSpace.pdf rename to Part3-MemoryManagement/GarbageCollector/figures/newSpace.pdf diff --git a/Chapters/GarbageCollector/figures/oldSpace.graffle b/Part3-MemoryManagement/GarbageCollector/figures/oldSpace.graffle similarity index 100% rename from Chapters/GarbageCollector/figures/oldSpace.graffle rename to Part3-MemoryManagement/GarbageCollector/figures/oldSpace.graffle diff --git a/Chapters/GarbageCollector/figures/oldSpace.pdf b/Part3-MemoryManagement/GarbageCollector/figures/oldSpace.pdf similarity index 100% rename from Chapters/GarbageCollector/figures/oldSpace.pdf rename to Part3-MemoryManagement/GarbageCollector/figures/oldSpace.pdf diff --git a/Chapters/GarbageCollector/freeList.md b/Part3-MemoryManagement/GarbageCollector/freeList.md similarity index 100% rename from Chapters/GarbageCollector/freeList.md rename to Part3-MemoryManagement/GarbageCollector/freeList.md diff --git a/Chapters/GarbageCollector/memoryStructure.md b/Part3-MemoryManagement/GarbageCollector/memoryStructure.md similarity index 100% rename from Chapters/GarbageCollector/memoryStructure.md rename to Part3-MemoryManagement/GarbageCollector/memoryStructure.md diff --git a/Chapters/GarbageCollector/newSpace.md b/Part3-MemoryManagement/GarbageCollector/newSpace.md similarity index 100% rename from Chapters/GarbageCollector/newSpace.md rename to Part3-MemoryManagement/GarbageCollector/newSpace.md diff --git a/Chapters/GarbageCollector/oldSpace.md b/Part3-MemoryManagement/GarbageCollector/oldSpace.md similarity index 100% rename from Chapters/GarbageCollector/oldSpace.md rename to Part3-MemoryManagement/GarbageCollector/oldSpace.md diff --git a/Chapters/HandonsStatic/handonsstatic.md b/Part4-Tutorials/HandonsStatic/handonsstatic.md similarity index 100% rename from Chapters/HandonsStatic/handonsstatic.md rename to Part4-Tutorials/HandonsStatic/handonsstatic.md diff --git a/index-part1.md b/index-part1.md index 397bacd..f16622b 100644 --- a/index-part1.md +++ b/index-part1.md @@ -17,19 +17,19 @@ _Acknowledgements._ This work is supported by Ministry of Higher Education and R The work is supported by I-Site ERC-Generator Multi project 2018-2022. We gratefully acknowledge the financial support of the Métropole Européenne de Lille. This work is also supported by the Action Exploratoire Alamvic led by G. Polito and S. Ducasse. - + # The Basics - - + + # Bytecode Execution - - - + + + %# Optimizations -% \ No newline at end of file +% \ No newline at end of file diff --git a/index.md b/index.md index acff8bf..d7675a8 100644 --- a/index.md +++ b/index.md @@ -17,35 +17,35 @@ _Acknowledgements._ This work is supported by Ministry of Higher Education and R The work is supported by I-Site ERC-Generator Multi project 2018-2022. We gratefully acknowledge the financial support of the Métropole Européenne de Lille. This work is also supported by the Action Exploratoire Alamvic led by G. Polito and S. Ducasse. - + # The Basics - - + + # Bytecode Execution - - + + # Optimizations - - + + # The Memory Manager - - - - - + + + + + # JIT Compilation - - + + ## Slang @cha:Slang @@ -53,4 +53,4 @@ Just here so that we can refer to it # Exercises - \ No newline at end of file + \ No newline at end of file diff --git a/pillar.conf b/pillar.conf index f4435ee..3cabbbc 100644 --- a/pillar.conf +++ b/pillar.conf @@ -1 +1 @@ -{ "series" : "Square Bracket tutorials", "base_url" : "", "\"tocFile\": \"index.md\" if you have a index.pillar file containing the table of contents of your book" : "comment", "attribution" : "The Pharo team", "latexWriter" : "miclatex:sbabook", "keywords" : "Virtual machine, object encodings, garbage collection, Pharo, Smalltalk", "htmlWriter" : "html", "title" : "[DRAFT/WIP] The Pharo Virtual Machine Explained", "site_name" : "Pharo Book", "bibFile" : "vmbib.bib" } \ No newline at end of file +{ "series" : "Square Bracket tutorials", "base_url" : "", "\"tocFile\": \"index.md\" if you have a index.pillar file containing the table of contents of your book" : "comment", "attribution" : "The Pharo team", "latexWriter" : "miclatex:sbabook", "keywords" : "Virtual machine, object encodings, garbage collection, Pharo, Smalltalk", "htmlWriter" : "html", "title" : "Unveiling the Pharo Virtual Machine", "site_name" : "Pharo Book", "bibFile" : "vmbib.bib" } \ No newline at end of file