Skip to content

Added Vector support for primitive methods. #68

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Open
wants to merge 67 commits into
base: master
Choose a base branch
from
Open
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
67 commits
Select commit Hold shift + click to select a range
dfd64bf
Implement Vector.som methods as primitives
rhys-h-walker May 21, 2025
243abc4
Change VMVector to have three explicit fields: first, last, storage
smarr May 21, 2025
32a822a
Fix various bugs
rhys-h-walker May 22, 2025
ad84242
Implement more Vector methods as primitives
rhys-h-walker May 22, 2025
3d52563
Primitive methods for the Vector class no longer need to be registere…
rhys-h-walker May 27, 2025
b6db063
clang formatted
rhys-h-walker May 27, 2025
469e443
Primitive methods now register for Vector without the need to explici…
rhys-h-walker May 27, 2025
f9cc6aa
Implement more Vector methods as primitives
rhys-h-walker May 27, 2025
efb5073
Fix subclassing for Vector class
rhys-h-walker May 29, 2025
5f235b5
Cleanup changes
rhys-h-walker May 29, 2025
a502ed1
Moved longer methods out of header file. Smaller methods left for inl…
rhys-h-walker May 30, 2025
7d2dbc2
Updated include statements, and made method static.
rhys-h-walker May 30, 2025
21a7e6d
More formatting changes applied
rhys-h-walker May 30, 2025
83531c9
Updated return type of vecAtPut
rhys-h-walker Jun 2, 2025
55e639b
#contains: and #indexOf: can’t be supported as primitives
rhys-h-walker Jun 2, 2025
5bbffbb
Allow toggling of vector primitives at compilation
smarr Jun 18, 2025
acf82b7
Vector can now determine the difference between AWFY/Vector and core-…
rhys-h-walker Jun 5, 2025
94c2630
Implement #capacity and #removeAll methods as primitive for the AWFY …
rhys-h-walker Jun 5, 2025
59e47ef
refactors the hashing in Universe
rhys-h-walker Jun 6, 2025
5751c25
Updated CI
rhys-h-walker Jun 6, 2025
feac71e
Updated to not register Primitives when USE_VECTOR_PRIMITIVES is false
rhys-h-walker Jun 6, 2025
a7f4a48
[GHA] Refactor to cmake_flags in ci.yml
smarr Jun 16, 2025
cca622c
Minor improvements for integration with SOMpp
rhys-h-walker Jun 16, 2025
24f87da
Expanding an Array can now be done without making all terms nil and s…
rhys-h-walker Jun 17, 2025
4b98a51
Method bytecode hashing instead of whole class hashing
rhys-h-walker Jun 18, 2025
bc3d862
Make sure USE_VECTOR_PRIMITIVES consistently defaults to true
smarr Jun 18, 2025
45d76b9
Make VMMethod->GetBytecodes() public for now
smarr Jun 18, 2025
fdf9358
In CMake, disable vector primitives when USE_VECTOR_PRIMITIVES is not…
smarr Jun 18, 2025
55f63b0
Return result of IndexOutOfBounds()
smarr Jun 18, 2025
0e49b65
Remove dead code
smarr Jun 18, 2025
59906b5
Show primitive warnings only for non-system classes
smarr Jun 18, 2025
6841c49
Rename accessors for storage to avoid overloading GetIndexableField
smarr Jun 18, 2025
aa85e8b
Update Xcode project
smarr Jun 18, 2025
aa86749
Remove Hasher class and make it just a method in VMMethod
smarr Jun 19, 2025
2f944d6
Update Xcode project
smarr Jun 19, 2025
bb43c81
Adapt PrimitiveContainer to store a pair of primitives, with their by…
smarr Jun 19, 2025
602fa9f
Move bytecode hash handling and primitive install logic into existing…
smarr Jun 19, 2025
0624ecf
Format
smarr Jun 19, 2025
584d447
Lint Fixes
smarr Jun 19, 2025
5711290
Show VM config after compilation and for testing
smarr Jun 19, 2025
3f2a885
Updated to pass clang-tidy
rhys-h-walker Jun 23, 2025
8875d87
New hashing algorithm and unitest added
rhys-h-walker Jun 23, 2025
e9319cc
Vector primitives now applied correctly
rhys-h-walker Jun 23, 2025
835e7a9
Changed to actually check the second hash
rhys-h-walker Jun 23, 2025
64f3328
Actually passing clang-tidy now
rhys-h-walker Jun 23, 2025
a874f4c
clang-tidy
rhys-h-walker Jun 23, 2025
84abea0
Passing clang-tidy and fixed some comments
rhys-h-walker Jun 25, 2025
aa6313e
Method implementations now match that of AWFY
rhys-h-walker Jun 25, 2025
3d193bd
Removed cout that was left
rhys-h-walker Jun 25, 2025
ccbdc81
Updated to use a different core-lib and run Integration tests in CI
rhys-h-walker Jul 3, 2025
9419587
Update IndexOutOfBounds in VMVector to now be in line with standard n…
rhys-h-walker Jul 3, 2025
8c446a1
clang-tidy violations fixed and clang-format violations fixed
rhys-h-walker Jul 3, 2025
ba27256
Re added defs to pass clang-tidy
rhys-h-walker Jul 4, 2025
7c82b3b
Changed again to pass clang-tidy
rhys-h-walker Jul 4, 2025
df23af6
Added version without vector primitives to benchmarking setup
smarr Jul 5, 2025
3b185f2
Fix double definition
smarr Jul 5, 2025
d300297
Fix binary name in rebench
smarr Jul 5, 2025
082d7aa
First, build and test debug version, before the release
smarr Jul 5, 2025
ac0295e
Fix HashingTest definition
smarr Jul 5, 2025
5960e80
Update Xcode project
smarr Jul 5, 2025
f3905d6
Added src/*.cpp to clang-tidy instructions
smarr Jul 5, 2025
f3b3eec
[Extract] Disable Integration Tests
smarr Jul 5, 2025
30d1deb
Make murmur3_32 a simple function and simplify tests
smarr Jul 5, 2025
5b50ed4
Vector hashes updated to match changes. Hashes can now be shown by ru…
rhys-h-walker Jul 7, 2025
09b8e9c
Basic refactoring and renaming of showing hashes to -prim-hashes flag…
smarr Jul 8, 2025
2b522f0
Make the new flag be -prim-hash-check
smarr Jul 8, 2025
c704ef4
Remove unused include and use NOLINT for option
smarr Jul 8, 2025
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
21 changes: 16 additions & 5 deletions .github/workflows/ci.yml
Original file line number Diff line number Diff line change
Expand Up @@ -4,17 +4,18 @@ on: [push, pull_request]

jobs:
test_soms:
name: Run (Compiler=${{matrix.compiler}} GC=${{matrix.gc}} ${{matrix.cmake_flags}}
runs-on: ubuntu-24.04
# continue-on-error: true
strategy:
fail-fast: false # we want all jobs to run, because they may fail independently
matrix:
compiler: [clang, gcc]
gc: [GENERATIONAL, MARK_SWEEP, COPYING]
integers:
cmake_flags:
- "-DUSE_TAGGING=true"
- "-DUSE_TAGGING=false -DCACHE_INTEGER=true"
- "-DUSE_TAGGING=false -DCACHE_INTEGER=false"
- "-DUSE_TAGGING=false -DCACHE_INTEGER=false -DUSE_VECTOR_PRIMITIVES=false"

steps:
- name: Checkout SOM Repository
Expand All @@ -26,6 +27,11 @@ jobs:
run: |
sudo apt-get install libcppunit-dev

# - name: Install PyTest
# run: |
# python3 -m pip install --upgrade pip
# python3 -m pip install pytest

- name: Install Clang 19
run: |
wget -O - https://apt.llvm.org/llvm-snapshot.gpg.key | sudo apt-key add -
Expand All @@ -49,16 +55,21 @@ jobs:
export CXX=g++
fi
echo $CC $CXX
echo cmake . -DGC_TYPE=${{ matrix.gc}} ${{ matrix.integers }}
echo cmake . -DGC_TYPE=${{ matrix.gc}} ${{ matrix.cmake_flags }}
mkdir cmake-build
cd cmake-build
cmake .. -DGC_TYPE=${{ matrix.gc}} ${{ matrix.integers }} -DCMAKE_BUILD_TYPE=Debug
cmake .. -DGC_TYPE=${{ matrix.gc}} ${{ matrix.cmake_flags }} -DCMAKE_BUILD_TYPE=Debug
make -j5

- name: Run Unit Tests
run: |
cd cmake-build
./unittests -cp ../Smalltalk:../TestSuite/BasicInterpreterTests ../Examples/Hello.som
./SOM++ -prim-hash-check -cp ../Smalltalk ../Examples/Benchmarks/BenchmarkHarness.som VectorBenchmark 1 1

# - name: Run Integration Tests
# run: |
# EXECUTABLE=./cmake-build/SOM++ CLASSPATH=./Smalltalk pytest

- name: Run Tests on SOM VM
run: |
Expand All @@ -68,7 +79,7 @@ jobs:
- name: Clang Tidy
if: matrix.compiler == 'clang'
run: |
clang-tidy-19 --config-file=.clang-tidy src/**/*.cpp -- -fdiagnostics-absolute-paths -DGC_TYPE=${{ matrix.gc}} ${{ matrix.integers }} -DUNITTESTS
clang-tidy-19 --config-file=.clang-tidy src/*.cpp src/**/*.cpp -- -fdiagnostics-absolute-paths -DGC_TYPE=${{ matrix.gc}} ${{ matrix.cmake_flags }} -DUNITTESTS

- name: Clang Format
if: matrix.compiler == 'clang' && matrix.gc == 'GENERATIONAL'
Expand Down
35 changes: 21 additions & 14 deletions .gitlab-ci.yml
Original file line number Diff line number Diff line change
Expand Up @@ -23,30 +23,32 @@ build_and_test:
- yuria3
COMPILER: [clang]
GC: [COPYING]
INTEGERS:
CMAKE_FLAGS:
- "-DUSE_TAGGING=true"
- "-DUSE_TAGGING=false -DCACHE_INTEGER=true"
- "-DUSE_TAGGING=false -DCACHE_INTEGER=false"
- "-DUSE_TAGGING=false -DCACHE_INTEGER=false -DUSE_VECTOR_PRIMITIVES=false"

# Track GCC only for one configuration
- MACHINE: [yuria, yuria2, yuria3]
COMPILER: [gcc]
GC: [COPYING]
INTEGERS: ["-DUSE_TAGGING=true"]
CMAKE_FLAGS: ["-DUSE_TAGGING=true"]

- MACHINE: [zullie1]
COMPILER: [clang]
GC: [GENERATIONAL]
INTEGERS:
CMAKE_FLAGS:
- "-DUSE_TAGGING=true"
- "-DUSE_TAGGING=false -DCACHE_INTEGER=true"
- "-DUSE_TAGGING=false -DCACHE_INTEGER=false"
- "-DUSE_TAGGING=false -DCACHE_INTEGER=false -DUSE_VECTOR_PRIMITIVES=false"

# Mark-Sweep working, but not super exciting
- MACHINE: [yuria, yuria2, yuria3]
COMPILER: [gcc]
GC: [MARK_SWEEP]
INTEGERS: ["-DUSE_TAGGING=true"]
CMAKE_FLAGS: ["-DUSE_TAGGING=true"]

tags: [$MACHINE]
script:
Expand All @@ -59,35 +61,40 @@ build_and_test:
# compose a name for this configuration
- |+
export NAME="som-$COMPILER-$GC"
if [[ $INTEGERS =~ "USE_TAGGING=true" ]]; then
if [[ $CMAKE_FLAGS =~ "USE_TAGGING=true" ]]; then
NAME="$NAME-inttag"
else
NAME="$NAME-intbox"
fi
if [[ $INTEGERS =~ "CACHE_INTEGER=true" ]]; then
if [[ $CMAKE_FLAGS =~ "CACHE_INTEGER=true" ]]; then
NAME="$NAME-intcache"
fi
if [[ $CMAKE_FLAGS =~ "DUSE_VECTOR_PRIMITIVES=false" ]]; then
NAME="$NAME-somvec"
fi
NAME=`echo "$NAME" | tr '[:upper:]' '[:lower:]'`

- cd release
- cmake .. $INTEGERS -DGC_TYPE=$GC -DCMAKE_BUILD_TYPE=Release
- cd debug
- cmake .. $CMAKE_FLAGS -DGC_TYPE=$GC -DCMAKE_BUILD_TYPE=Debug
- make -j
- mv SOM++ ../$NAME
- ./SOM++ -cfg -cp ../Smalltalk ../TestSuite/TestHarness.som
- ./unittests -cfg -cp ../Smalltalk:../TestSuite/BasicInterpreterTests ../Examples/Hello.som
- ./SOM++ -prim-hash-check -cp ../Smalltalk ../Examples/Benchmarks/BenchmarkHarness.som VectorBenchmark 1 1
- cd ..

- cd debug
- cmake .. $INTEGERS -DGC_TYPE=$GC -DCMAKE_BUILD_TYPE=Debug
- cd release
- cmake .. $CMAKE_FLAGS -DGC_TYPE=$GC -DCMAKE_BUILD_TYPE=Release
- make -j
- ./SOM++ -cp ../Smalltalk ../TestSuite/TestHarness.som
- ./unittests -cp ../Smalltalk:../TestSuite/BasicInterpreterTests ../Examples/Hello.som
- ./SOM++ -cfg -cp ../Smalltalk ../TestSuite/TestHarness.som
- mv SOM++ ../$NAME
- cd ..

- |+
# Test SomSom
if [ "$COMPILER" = "clang" ]; then
# this is to load balance the SomSom testing
# only when compiling with Clang, and only on one machine for each integer configuration
if [ "$MACHINE $INTEGERS" = "zullie1 -DUSE_TAGGING=true" ] || [ "$MACHINE $INTEGERS" = "yuria2 -DUSE_TAGGING=false -DCACHE_INTEGER=true" ] || [ "$MACHINE $INTEGERS" = "yuria3 -DUSE_TAGGING=false -DCACHE_INTEGER=false" ]; then
if [ "$MACHINE $CMAKE_FLAGS" = "zullie1 -DUSE_TAGGING=true" ] || [ "$MACHINE $CMAKE_FLAGS" = "yuria2 -DUSE_TAGGING=false -DCACHE_INTEGER=true" ] || [ "$MACHINE $CMAKE_FLAGS" = "yuria3 -DUSE_TAGGING=false -DCACHE_INTEGER=false" ]; then
./$NAME -cp Smalltalk:TestSuite:core-lib/SomSom/src/compiler:core-lib/SomSom/src/interpreter:core-lib/SomSom/src/primitives:core-lib/SomSom/src/vm:core-lib/SomSom/src/vmobjects core-lib/SomSom/tests/SomSomTests.som
fi
fi
Expand Down
7 changes: 7 additions & 0 deletions CMakeLists.txt
Original file line number Diff line number Diff line change
Expand Up @@ -57,6 +57,8 @@ set(INT_CACHE_MIN_VALUE -5 CACHE STRING "Lower bound of cached integers")
set(INT_CACHE_MAX_VALUE 100 CACHE STRING "Upper bound of cached integers")
option(GENERATE_INTEGER_HISTOGRAM "Generate histogram of allocated integers" FALSE)

option(USE_VECTOR_PRIMITIVES "Use Vector primitives" TRUE)

option(GENERATE_ALLOCATION_STATISTICS "Generate allocation statistics" FALSE)

option(LOG_RECEIVER_TYPES "Log types of receivers" FALSE)
Expand All @@ -82,6 +84,11 @@ endif ()
if (GENERATE_INTEGER_HISTOGRAM)
add_definitions(-DGENERATE_INTEGER_HISTOGRAM)
endif ()
if(USE_VECTOR_PRIMITIVES)
add_definitions(-DUSE_VECTOR_PRIMITIVES=true)
else ()
add_definitions(-DUSE_VECTOR_PRIMITIVES=false)
endif ()
if (GENERATE_ALLOCATION_STATISTICS)
add_definitions(-DGENERATE_ALLOCATION_STATISTICS)
endif ()
Expand Down
42 changes: 30 additions & 12 deletions SOM.xcodeproj/project.pbxproj
Original file line number Diff line number Diff line change
Expand Up @@ -62,6 +62,9 @@
0A1C98762C5526AD00735850 /* DebugCopyingCollector.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 0A1C98752C5526AD00735850 /* DebugCopyingCollector.cpp */; };
0A1C98772C5526AD00735850 /* DebugCopyingCollector.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 0A1C98752C5526AD00735850 /* DebugCopyingCollector.cpp */; };
0A32B7FE199D6143002825DF /* IntegerBox.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 0A32B7FC199D6143002825DF /* IntegerBox.cpp */; };
0A32D54E2E198C610019DDCD /* Murmur3Hash.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 0A32D54D2E198C610019DDCD /* Murmur3Hash.cpp */; };
0A32D54F2E198C610019DDCD /* Murmur3Hash.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 0A32D54D2E198C610019DDCD /* Murmur3Hash.cpp */; };
0A32D5552E198EC40019DDCD /* HashingTest.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 0A32D5542E198EC40019DDCD /* HashingTest.cpp */; };
0A3A3C921A5D546D004CB03B /* Array.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 3F5203120FA6624C00E75857 /* Array.cpp */; };
0A3A3C931A5D546D004CB03B /* Block.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 3F5203160FA6624C00E75857 /* Block.cpp */; };
0A3A3C941A5D546D004CB03B /* Class.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 3F5203180FA6624C00E75857 /* Class.cpp */; };
Expand Down Expand Up @@ -142,6 +145,10 @@
0AB80AD42C392B78006B6419 /* Print.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 0AB80AD12C392B78006B6419 /* Print.cpp */; };
0AB80AD82C394806006B6419 /* Globals.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 0AB80AD72C394806006B6419 /* Globals.cpp */; };
0AB80AD92C394806006B6419 /* Globals.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 0AB80AD72C394806006B6419 /* Globals.cpp */; };
0AEFFE542E01A97E00CA4C4C /* Vector.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 0AEFFE532E01A97E00CA4C4C /* Vector.cpp */; };
0AEFFE552E01A97E00CA4C4C /* Vector.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 0AEFFE532E01A97E00CA4C4C /* Vector.cpp */; };
0AEFFE582E01A99300CA4C4C /* VMVector.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 0AEFFE572E01A99300CA4C4C /* VMVector.cpp */; };
0AEFFE592E01A99300CA4C4C /* VMVector.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 0AEFFE572E01A99300CA4C4C /* VMVector.cpp */; };
/* End PBXBuildFile section */

/* Begin PBXCopyFilesBuildPhase section */
Expand Down Expand Up @@ -220,6 +227,10 @@
0A32B7FC199D6143002825DF /* IntegerBox.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = IntegerBox.cpp; sourceTree = "<group>"; };
0A32B7FD199D6143002825DF /* IntegerBox.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = IntegerBox.h; sourceTree = "<group>"; };
0A32B80119A12A03002825DF /* VMObjectBase.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = VMObjectBase.h; sourceTree = "<group>"; };
0A32D54C2E198C610019DDCD /* Murmur3Hash.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = Murmur3Hash.h; sourceTree = "<group>"; };
0A32D54D2E198C610019DDCD /* Murmur3Hash.cpp */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; path = Murmur3Hash.cpp; sourceTree = "<group>"; };
0A32D5532E198EC40019DDCD /* HashingTest.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = HashingTest.h; path = unitTests/HashingTest.h; sourceTree = "<group>"; };
0A32D5542E198EC40019DDCD /* HashingTest.cpp */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = HashingTest.cpp; path = unitTests/HashingTest.cpp; sourceTree = "<group>"; };
0A335F6B1832D64100D7CFC8 /* Method.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = Method.cpp; sourceTree = "<group>"; };
0A335F6C1832D64100D7CFC8 /* Method.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = Method.h; sourceTree = "<group>"; };
0A335F6F1832D65100D7CFC8 /* Primitive.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = Primitive.cpp; sourceTree = "<group>"; };
Expand Down Expand Up @@ -251,7 +262,10 @@
0AB80AD52C392BAD006B6419 /* Print.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = Print.h; sourceTree = "<group>"; };
0AB80AD62C3947F7006B6419 /* Globals.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = Globals.h; sourceTree = "<group>"; };
0AB80AD72C394806006B6419 /* Globals.cpp */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; path = Globals.cpp; sourceTree = "<group>"; };
0AB80ADA2C39AC27006B6419 /* InterpreterLoop.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = InterpreterLoop.h; sourceTree = "<group>"; };
0AEFFE522E01A97E00CA4C4C /* Vector.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = Vector.h; sourceTree = "<group>"; };
0AEFFE532E01A97E00CA4C4C /* Vector.cpp */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; path = Vector.cpp; sourceTree = "<group>"; };
0AEFFE562E01A99300CA4C4C /* VMVector.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = VMVector.h; sourceTree = "<group>"; };
0AEFFE572E01A99300CA4C4C /* VMVector.cpp */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; path = VMVector.cpp; sourceTree = "<group>"; };
3F5202F10FA6624C00E75857 /* BytecodeGenerator.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = BytecodeGenerator.cpp; sourceTree = "<group>"; };
3F5202F20FA6624C00E75857 /* BytecodeGenerator.h */ = {isa = PBXFileReference; fileEncoding = 4; indentWidth = 4; lastKnownFileType = sourcecode.c.h; path = BytecodeGenerator.h; sourceTree = "<group>"; tabWidth = 4; };
3F5202F30FA6624C00E75857 /* ClassGenerationContext.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = ClassGenerationContext.cpp; sourceTree = "<group>"; };
Expand Down Expand Up @@ -304,7 +318,6 @@
3F5203320FA6624C00E75857 /* Universe.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = Universe.cpp; sourceTree = "<group>"; };
3F5203330FA6624C00E75857 /* Universe.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = Universe.h; sourceTree = "<group>"; };
3F5203350FA6624C00E75857 /* ObjectFormats.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = ObjectFormats.h; sourceTree = "<group>"; };
3F5203360FA6624C00E75857 /* PrimitiveRoutine.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = PrimitiveRoutine.h; sourceTree = "<group>"; };
3F5203370FA6624C00E75857 /* Signature.cpp */ = {isa = PBXFileReference; fileEncoding = 4; indentWidth = 4; lastKnownFileType = sourcecode.cpp.cpp; path = Signature.cpp; sourceTree = "<group>"; tabWidth = 4; };
3F5203380FA6624C00E75857 /* Signature.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = Signature.h; sourceTree = "<group>"; };
3F52033B0FA6624C00E75857 /* VMArray.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = VMArray.cpp; sourceTree = "<group>"; };
Expand Down Expand Up @@ -438,20 +451,15 @@
name = Products;
sourceTree = "<group>";
};
0A1886C71832BBC900A2CBCA /* SOM++ */ = {
isa = PBXGroup;
children = (
);
path = "SOM++";
sourceTree = "<group>";
};
0A67EA7A19ACD44000830E3B /* unittests */ = {
isa = PBXGroup;
children = (
0A3FABE724F4670D002D4D69 /* BasicInterpreterTests.h */,
0A67EA7019ACD43A00830E3B /* CloneObjectsTest.cpp */,
0A67EA7119ACD43A00830E3B /* main.cpp */,
0A67EAA319ACE09700830E3B /* CloneObjectsTest.h */,
0A32D5532E198EC40019DDCD /* HashingTest.h */,
0A32D5542E198EC40019DDCD /* HashingTest.cpp */,
0A67EAA519ACE09700830E3B /* WalkObjectsTest.h */,
0A67EAA619ACE09700830E3B /* WriteBarrierTest.h */,
0A67EA7319ACD43A00830E3B /* WalkObjectsTest.cpp */,
Expand Down Expand Up @@ -479,7 +487,6 @@
E18AE29C0FB1C45E00EE6540 /* Examples */,
E18AE27F0FB1C44700EE6540 /* Smalltalk */,
3F5202EF0FA6624C00E75857 /* src */,
0A1886C71832BBC900A2CBCA /* SOM++ */,
0A1886C61832BBC900A2CBCA /* Products */,
);
sourceTree = "<group>";
Expand Down Expand Up @@ -533,7 +540,6 @@
3F5203020FA6624C00E75857 /* bytecodes.h */,
3F5203030FA6624C00E75857 /* Interpreter.cpp */,
3F5203040FA6624C00E75857 /* Interpreter.h */,
0AB80ADA2C39AC27006B6419 /* InterpreterLoop.h */,
);
path = interpreter;
sourceTree = "<group>";
Expand Down Expand Up @@ -570,6 +576,8 @@
3F52030C0FA6624C00E75857 /* debug.h */,
3F52030D0FA6624C00E75857 /* defs.h */,
3F52030F0FA6624C00E75857 /* gettimeofday.h */,
0A32D54C2E198C610019DDCD /* Murmur3Hash.h */,
0A32D54D2E198C610019DDCD /* Murmur3Hash.cpp */,
0A1887371832C12E00A2CBCA /* Timer.cpp */,
0A1887381832C12E00A2CBCA /* Timer.h */,
0A707528297DF36F00EB9F59 /* ParseInteger.h */,
Expand Down Expand Up @@ -606,6 +614,8 @@
3F5203250FA6624C00E75857 /* Symbol.h */,
3F5203260FA6624C00E75857 /* System.cpp */,
3F5203270FA6624C00E75857 /* System.h */,
0AEFFE522E01A97E00CA4C4C /* Vector.h */,
0AEFFE532E01A97E00CA4C4C /* Vector.cpp */,
);
path = primitives;
sourceTree = "<group>";
Expand Down Expand Up @@ -649,7 +659,6 @@
0A1887091832C0E400A2CBCA /* AbstractObject.cpp */,
0A18870A1832C0E400A2CBCA /* AbstractObject.h */,
3F5203350FA6624C00E75857 /* ObjectFormats.h */,
3F5203360FA6624C00E75857 /* PrimitiveRoutine.h */,
0A32B7FC199D6143002825DF /* IntegerBox.cpp */,
0A32B7FD199D6143002825DF /* IntegerBox.h */,
3F5203370FA6624C00E75857 /* Signature.cpp */,
Expand Down Expand Up @@ -685,6 +694,8 @@
0A5A7E902C5D45A00011C783 /* VMSafePrimitive.cpp */,
0A5A7E942C602E8C0011C783 /* VMTrivialMethod.h */,
0A5A7E952C60F5BB0011C783 /* VMTrivialMethod.cpp */,
0AEFFE562E01A99300CA4C4C /* VMVector.h */,
0AEFFE572E01A99300CA4C4C /* VMVector.cpp */,
);
path = vmobjects;
sourceTree = "<group>";
Expand Down Expand Up @@ -907,6 +918,7 @@
0A1887351832C10E00A2CBCA /* MarkSweepCollector.cpp in Sources */,
0A5A7E912C5D45A00011C783 /* VMSafePrimitive.cpp in Sources */,
0A1886FB1832BCF500A2CBCA /* VMBlock.cpp in Sources */,
0AEFFE592E01A99300CA4C4C /* VMVector.cpp in Sources */,
0A1887391832C12E00A2CBCA /* Timer.cpp in Sources */,
0A1887021832BCFA00A2CBCA /* VMMethod.cpp in Sources */,
0AB80AD32C392B78006B6419 /* Print.cpp in Sources */,
Expand All @@ -931,6 +943,7 @@
0A1887051832BCFA00A2CBCA /* VMString.cpp in Sources */,
0A3A3C9A1A5D546D004CB03B /* String.cpp in Sources */,
0A3A3C951A5D546D004CB03B /* Double.cpp in Sources */,
0AEFFE552E01A97E00CA4C4C /* Vector.cpp in Sources */,
0A1C986E2C4F1D3900735850 /* debug.cpp in Sources */,
0A1886F61832BCED00A2CBCA /* Universe.cpp in Sources */,
0AB80ACF2C392811006B6419 /* IsValidObject.cpp in Sources */,
Expand All @@ -950,13 +963,15 @@
0A1886FE1832BCF500A2CBCA /* VMEvaluationPrimitive.cpp in Sources */,
0A1887311832C10E00A2CBCA /* CopyingCollector.cpp in Sources */,
0A1886DE1832BCC800A2CBCA /* Disassembler.cpp in Sources */,
0A32D54F2E198C610019DDCD /* Murmur3Hash.cpp in Sources */,
);
runOnlyForDeploymentPostprocessing = 0;
};
0A67EA6319ACD37200830E3B /* Sources */ = {
isa = PBXSourcesBuildPhase;
buildActionMask = 2147483647;
files = (
0A32D5552E198EC40019DDCD /* HashingTest.cpp in Sources */,
0A3A3CAB1A5D546D004CB03B /* System.cpp in Sources */,
0A3A3CA31A5D546D004CB03B /* Class.cpp in Sources */,
0A67EA9019ACD83200830E3B /* Lexer.cpp in Sources */,
Expand All @@ -976,8 +991,10 @@
0A3A3CAA1A5D546D004CB03B /* Symbol.cpp in Sources */,
0A67EA8619ACD74800830E3B /* VMMethod.cpp in Sources */,
0A67EA7519ACD43A00830E3B /* CloneObjectsTest.cpp in Sources */,
0AEFFE582E01A99300CA4C4C /* VMVector.cpp in Sources */,
0A67EA7919ACD43A00830E3B /* WriteBarrierTest.cpp in Sources */,
0A67EA9819ACD85300830E3B /* GenerationalCollector.cpp in Sources */,
0A32D54E2E198C610019DDCD /* Murmur3Hash.cpp in Sources */,
0A67EA7B19ACD72C00830E3B /* VMInvokable.cpp in Sources */,
0A67EA9119ACD83200830E3B /* MethodGenerationContext.cpp in Sources */,
0A3A3CA61A5D546D004CB03B /* Method.cpp in Sources */,
Expand Down Expand Up @@ -1007,6 +1024,7 @@
0A67EA9619ACD84300830E3B /* Timer.cpp in Sources */,
0A67EA8D19ACD83200830E3B /* BytecodeGenerator.cpp in Sources */,
0A1C98612C43D6E200735850 /* Variable.cpp in Sources */,
0AEFFE542E01A97E00CA4C4C /* Vector.cpp in Sources */,
0A67EA7619ACD43A00830E3B /* main.cpp in Sources */,
0A67EA8819ACD74800830E3B /* VMPrimitive.cpp in Sources */,
0A3A3CA21A5D546D004CB03B /* Block.cpp in Sources */,
Expand Down
Loading